Class JELFunction

java.lang.Object
uk.ac.starlink.ttools.jel.JELFunction
All Implemented Interfaces:
DoubleUnaryOperator

public class JELFunction extends Object implements DoubleUnaryOperator
Provides a double precision function of one double precision variable which can be evaluated using JEL. The variable name and an expression giving the result in terms of that variable name are supplied.

Instances of this class are not threadsafe, but could be made so by putting a lock on the evaluate(double) method.

Since:
14 Jun 2012
Author:
Mark Taylor
  • Constructor Details

    • JELFunction

      public JELFunction(String xvarname, String fexpr) throws gnu.jel.CompilationException
      Constructor.
      Parameters:
      xvarname - name of the independent variable (for instance "x")
      fexpr - text of expression giving the function value, in terms of xvarname (for instance "x+1")
      Throws:
      gnu.jel.CompilationException
  • Method Details

    • evaluate

      public double evaluate(double x)
      Evaluates this function at a given value of the independent variable. In case of an evaluation error of some kind, NaN is returned.
      Parameters:
      x - variable value
      Returns:
      function value
    • applyAsDouble

      public double applyAsDouble(double x)
      Does exactly the same as evaluate(double).
      Specified by:
      applyAsDouble in interface DoubleUnaryOperator
    • getXVarName

      public String getXVarName()
      Returns the name of the independent variable.
      Returns:
      x variable name
    • getExpression

      public String getExpression()
      Returns the text of the function expression.
      Returns:
      function expression
    • main

      public static void main(String[] args)
      Main method tests this class. Args are varname, expr, varvalue, for instance "x", "3x+1", "29"