com.singularsys.jep.functions

## Class NaryFunction

- java.lang.Object
- - com.singularsys.jep.functions.PostfixMathCommand
  - - com.singularsys.jep.functions.NaryFunction

- All Implemented Interfaces:
    PostfixMathCommandI, java.io.Serializable
  Direct Known Subclasses:
    Ele, FromBase, Mid, NullWrappedNary, NullWrappedNaryBinary, Round, RoundSF, Substring, ToBase

      public abstract class NaryFunction
      extends PostfixMathCommand

  Convenient base class for nary functions. Defines an `Object eval(Object[] args)` method for calculating the result.
  Author:
    Richard Morris
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class com.singularsys.jep.functions.PostfixMathCommand

      `curNumberOfParameters, name, NaN, numberOfParameters`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `NaryFunction()` Standard constructor where any number of arguments is allowed.
    `NaryFunction(int nArgs)` Constructor where a fixed number of arguments is allowed

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract java.lang.Object` | `eval(java.lang.Object[] args)` Evaluate the function
    `void` | `run(java.util.Stack<java.lang.Object> stack)` Creates an array of object then calls `eval(Object[])`

    - ### Methods inherited from class com.singularsys.jep.functions.PostfixMathCommand

      `asArray, asBool, asDouble, asInt, asLong, asStrictInt, asString, checkNumberOfParameters, getName, getNumberOfParameters, setCurNumberOfParameters, setName, toString, toString`

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

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

- - ### Constructor Detail

    - #### NaryFunction

          public NaryFunction()

      Standard constructor where any number of arguments is allowed. Use the PostfixMathCommand.checkNumberOfParameters(int) method to restrict the number of arguments allowed.

    - #### NaryFunction

          public NaryFunction(int nArgs)

      Constructor where a fixed number of arguments is allowed
      Parameters:
        `nArgs` - number of arguments allowed

  - ### Method Detail

    - #### run

          public void run(java.util.Stack<java.lang.Object> stack)
                   throws EvaluationException

      Creates an array of object then calls `eval(Object[])`
      Specified by:
        `run` in interface `PostfixMathCommandI`
      Overrides:
        `run` in class `PostfixMathCommand`
      Parameters:
        `stack` - arguments for function
      Throws:
        `EvaluationException` - if function cannot be evaluated

    - #### eval

          public abstract java.lang.Object eval(java.lang.Object[] args)
                                         throws EvaluationException

      Evaluate the function
      Parameters:
        `args` - arguments to the function
      Returns:
        value returned by the function
      Throws:
        `EvaluationException` - if the calculation cannot be performed

Copyright © 2018 Singular Systems http://www.singularsys.com/jep