org.apache.poi.ss.formula.functions

## Class NumericFunction

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

- All Implemented Interfaces:
    Function
  Direct Known Subclasses:
    IPMT, PPMT

      public abstract class NumericFunction
      extends java.lang.Object
      implements Function

  Author:
    Amol S. Deshmukh < amolweb at ya hoo dot com >, Josh Micich, Stephen Wolke (smwolke at geistig.com)

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `NumericFunction.OneArg`
    `static class` | `NumericFunction.TwoArg`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static Function` | `ABS`
    `static Function` | `ACOS`
    `static Function` | `ACOSH`
    `static Function` | `ASIN`
    `static Function` | `ASINH`
    `static Function` | `ATAN`
    `static Function` | `ATAN2`
    `static Function` | `ATANH`
    `static Function` | `CEILING`
    `static Function` | `COMBIN`
    `static Function` | `COS`
    `static Function` | `COSH`
    `static Function` | `DEGREES`
    `static Function` | `DOLLAR`
    `static Function` | `EXP`
    `static Function` | `FACT`
    `static Function` | `FLOOR`
    `static Function` | `INT`
    `static Function` | `LN`
    `static Function` | `LOG`
    `static Function` | `LOG10`
    `static Function` | `MOD`
    `static Function` | `PI`
    `static Function` | `POISSON`
    `static Function` | `POWER`
    `static Function` | `RADIANS`
    `static Function` | `RAND`
    `static Function` | `ROUND`
    `static Function` | `ROUNDDOWN`
    `static Function` | `ROUNDUP`
    `static Function` | `SIGN`
    `static Function` | `SIN`
    `static Function` | `SINH`
    `static Function` | `SQRT`
    `static Function` | `TAN`
    `static Function` | `TANH`
    `static Function` | `TRUNC`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `NumericFunction()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `checkValue(double result)`
    `protected abstract double` | `eval(ValueEval[] args, int srcCellRow, int srcCellCol)`
    `ValueEval` | `evaluate(ValueEval[] args, int srcCellRow, int srcCellCol)`
    `protected static double` | `singleOperandEvaluate(ValueEval arg, int srcRowIndex, int srcColumnIndex)`

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

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

- - ### Field Detail

    - #### ABS

          public static final Function ABS

    - #### ACOS

          public static final Function ACOS

    - #### ACOSH

          public static final Function ACOSH

    - #### ASIN

          public static final Function ASIN

    - #### ASINH

          public static final Function ASINH

    - #### ATAN

          public static final Function ATAN

    - #### ATANH

          public static final Function ATANH

    - #### COS

          public static final Function COS

    - #### COSH

          public static final Function COSH

    - #### DEGREES

          public static final Function DEGREES

    - #### DOLLAR

          public static final Function DOLLAR

    - #### EXP

          public static final Function EXP

    - #### FACT

          public static final Function FACT

    - #### INT

          public static final Function INT

    - #### LN

          public static final Function LN

    - #### LOG10

          public static final Function LOG10

    - #### RADIANS

          public static final Function RADIANS

    - #### SIGN

          public static final Function SIGN

    - #### SIN

          public static final Function SIN

    - #### SINH

          public static final Function SINH

    - #### SQRT

          public static final Function SQRT

    - #### TAN

          public static final Function TAN

    - #### TANH

          public static final Function TANH

    - #### ATAN2

          public static final Function ATAN2

    - #### CEILING

          public static final Function CEILING

    - #### COMBIN

          public static final Function COMBIN

    - #### FLOOR

          public static final Function FLOOR

    - #### MOD

          public static final Function MOD

    - #### POWER

          public static final Function POWER

    - #### ROUND

          public static final Function ROUND

    - #### ROUNDDOWN

          public static final Function ROUNDDOWN

    - #### ROUNDUP

          public static final Function ROUNDUP

    - #### TRUNC

          public static final Function TRUNC

    - #### LOG

          public static final Function LOG

    - #### PI

          public static final Function PI

    - #### RAND

          public static final Function RAND

    - #### POISSON

          public static final Function POISSON

  - ### Constructor Detail

    - #### NumericFunction

          public NumericFunction()

  - ### Method Detail

    - #### singleOperandEvaluate

          protected static double singleOperandEvaluate(ValueEval arg,
                                                        int srcRowIndex,
                                                        int srcColumnIndex)
                                                 throws EvaluationException

      Throws:
        `EvaluationException`

    - #### checkValue

          public static void checkValue(double result)
                                 throws EvaluationException

      Throws:
        `EvaluationException` - (#NUM!) if `result` is `NaN or `Infinity``

    - #### 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`.

    - #### eval

          protected abstract double eval(ValueEval[] args,
                                         int srcCellRow,
                                         int srcCellCol)
                                  throws EvaluationException

      Throws:
        `EvaluationException`

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