com.singularsys.jep.functions

## Class Logarithm

- java.lang.Object
- - com.singularsys.jep.functions.PostfixMathCommand
  - - com.singularsys.jep.functions.UnaryFunction
    - - com.singularsys.jep.functions.Logarithm

- All Implemented Interfaces:
    PostfixMathCommandI, RealUnaryFunction, java.io.Serializable

      public class Logarithm
      extends UnaryFunction
      implements RealUnaryFunction

  Log base 10. By default negative arguments will return a complex result

      log(|x|) + pi i

  if the strict flag is set in the constructor

  version 3.4: Speedup by using static final fields.

  version 3.4: Change to use Java 5 Math.log10() method.

  version 3.5: For negative arguments log10(-x) =log10(x) + i pi log10(e) as 10^(log10(x) + i log10(e)) = x * e^(i pi) = -x. For complex arguments(x+i y) = r e^(i th) log10(r e^(i th)) = log10(r) + i th log10(e) as 10^(log10(r) + i th log10(e)) = r * e^(i th).

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `strict`

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

      `curNumberOfParameters, name, NaN, numberOfParameters`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Logarithm()` Standard constructor, returns complex results for negative arguments
    `Logarithm(boolean strict)` Constructor with control for behaviour for complex results

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `eval(java.lang.Object arg)`
    `double` | `evaluate(double val)`
    `java.lang.Object` | `log(java.lang.Object param)`

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

      `run`

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

- - ### Field Detail

    - #### strict

          protected final boolean strict

  - ### Constructor Detail

    - #### Logarithm

          public Logarithm(boolean strict)

      Constructor with control for behaviour for complex results
      Parameters:
        `strict` - if true negative real arguments return NaN, otherwise complex results are returned

    - #### Logarithm

          public Logarithm()

      Standard constructor, returns complex results for negative arguments

  - ### Method Detail

    - #### eval

          public java.lang.Object eval(java.lang.Object arg)
                                throws EvaluationException

      Specified by:
        `eval` in class `UnaryFunction`
      Throws:
        `EvaluationException`

    - #### log

          public java.lang.Object log(java.lang.Object param)
                               throws EvaluationException

      Throws:
        `EvaluationException`

    - #### evaluate

          public double evaluate(double val)

      Specified by:
        `evaluate` in interface `RealUnaryFunction`

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