org.apache.poi.ss.formula.functions

## Class Mode

- java.lang.Object
- - org.apache.poi.ss.formula.functions.Mode

- All Implemented Interfaces:
    Function

      public final class Mode
      extends java.lang.Object
      implements Function

  Author:
    Amol S. Deshmukh < amolweb at ya hoo dot com >

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Mode()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static double` | `evaluate(double[] v)` if v is zero length or contains no duplicates, return value is Double.NaN.
    `ValueEval` | `evaluate(ValueEval[] args, int srcCellRow, int srcCellCol)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Mode

          public Mode()

  - ### Method Detail

    - #### evaluate

          public static double evaluate(double[] v)
                                 throws EvaluationException

      if v is zero length or contains no duplicates, return value is Double.NaN. Else returns the value that occurs most times and if there is a tie, returns the first such value.
      Parameters:
        `v` - An array of values on which the mode is computed.
      Throws:
        `EvaluationException`

    - #### evaluate

          public ValueEval evaluate(ValueEval[] args,
                                    int srcCellRow,
                                    int srcCellCol)

      Specified by:
        `evaluate` in interface `Function`
      Parameters:
        `args` - the evaluated function arguments. Empty values are represented with `BlankEval` or `MissingArgEval`, never `null`.
        `srcCellRow` - row index of the cell containing the formula under evaluation
        `srcCellCol` - column index of the cell containing the formula under evaluation
      Returns:
        The evaluated result, possibly an `ErrorEval`, never `null`. Note - Excel uses the error code #NUM! instead of IEEE NaN, so when numeric functions evaluate to `Double.NaN` be sure to translate the result to `ErrorEval.NUM_ERROR`.

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.