## org.apache.poi.ss.formula.functions
Class MultiOperandNumericFunction

    java.lang.Object
      org.apache.poi.ss.formula.functions.MultiOperandNumericFunction

All Implemented Interfaces:
  Function

Direct Known Subclasses:
  AggregateFunction, MinaMaxa

    public abstract class MultiOperandNumericFunction

extends java.lang.Object
implements Function

Author:
  Amol S. Deshmukh < amolweb at ya hoo dot com > This is the super class for all excel function evaluator classes that take variable number of operands, and where the order of operands does not matter

Constructor Summary
`protected` `MultiOperandNumericFunction(boolean isReferenceBoolCounted, boolean isBlankCounted)`

Method Summary
`protected abstract double` `evaluate(double[] values)`
`ValueEval` `evaluate(ValueEval[] args, int srcCellRow, int srcCellCol)`
`protected int` `getMaxNumOperands()` Maximum number of operands accepted by this function.
`protected double[]` `getNumberArray(ValueEval[] operands)` Returns a double array that contains values for the numeric cells from among the list of operands.
`boolean` `isSubtotalCounted()` Whether to count nested subtotals.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### MultiOperandNumericFunction

    protected MultiOperandNumericFunction(boolean isReferenceBoolCounted,
                                          boolean isBlankCounted)

Method Detail

### evaluate

    public final 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`.

### evaluate

    protected abstract double evaluate(double[] values)
                                throws EvaluationException

  Throws:
    `EvaluationException`

### getMaxNumOperands

    protected int getMaxNumOperands()

  Maximum number of operands accepted by this function. Subclasses may override to change default value.

### getNumberArray

    protected final double[] getNumberArray(ValueEval[] operands)
                                     throws EvaluationException

  Returns a double array that contains values for the numeric cells from among the list of operands. Blanks and Blank equivalent cells are ignored. Error operands or cells containing operands of type that are considered invalid and would result in #VALUE! error in excel cause this function to return `null`.

  Returns:
    never `null`
  Throws:
    `EvaluationException`

### isSubtotalCounted

    public boolean isSubtotalCounted()

  Whether to count nested subtotals.

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