Class SuryonoParser

java.lang.Object
org.opensourcephysics.numerics.MathExpParser
org.opensourcephysics.numerics.SuryonoParser
All Implemented Interfaces:
Function, MultiVarFunction

public final class SuryonoParser extends MathExpParser
The class Parser is a mathematical expression parser.

Example of code that uses this class:

 Parser parser = new Parser(1); // creates parser with one variable
 parser.defineVariable(1, "x"); // lets the variable be 'x'
 parser.define("sin(x)/x"); // defines function: sin(x)/x
 parser.parse(); // parses the function

 // calculates: sin(x)/x with x = -5.0 .. +5.0 in 20 steps
 // and prints the result to standard output.

 float result;
 for (i = -10; i <= 10; i++) {
        parser.setVariable(1, (float) i / 2.0f);
        result = parser.evaluate();
        System.out.println(result);
 }
 
  • Field Details

    • PAREN_EXPECTED

      public static final int PAREN_EXPECTED
      Parentheses expected.
      See Also:
    • UNCOMPILED_FUNCTION

      public static final int UNCOMPILED_FUNCTION
      Attempt to evaluate an uncompiled function.
      See Also:
    • EXPRESSION_EXPECTED

      public static final int EXPRESSION_EXPECTED
      Expression expected.
      See Also:
    • UNKNOWN_IDENTIFIER

      public static final int UNKNOWN_IDENTIFIER
      Unknown identifier.
      See Also:
    • OPERATOR_EXPECTED

      public static final int OPERATOR_EXPECTED
      Operator expected.
      See Also:
    • PAREN_NOT_MATCH

      public static final int PAREN_NOT_MATCH
      Parenthesis mismatch.
      See Also:
    • CODE_DAMAGED

      public static final int CODE_DAMAGED
      Code damaged.
      See Also:
    • STACK_OVERFLOW

      public static final int STACK_OVERFLOW
      Stack overflow.
      See Also:
    • TOO_MANY_CONSTS

      public static final int TOO_MANY_CONSTS
      Too many constants.
      See Also:
    • COMMA_EXPECTED

      public static final int COMMA_EXPECTED
      Comma expected.
      See Also:
    • INVALID_OPERAND

      public static final int INVALID_OPERAND
      Invalid operand.
      See Also:
    • INVALID_OPERATOR

      public static final int INVALID_OPERATOR
      Invalid operator.
      See Also:
    • NO_FUNC_DEFINITION

      public static final int NO_FUNC_DEFINITION
      No function definition to parse.
      See Also:
    • REF_NAME_EXPECTED

      public static final int REF_NAME_EXPECTED
      Referenced name could not be found.
      See Also:
    • NULL

      public static final String NULL
      See Also:
    • NULL_D

      public static final String NULL_D
      See Also:
  • Constructor Details

    • SuryonoParser

      public SuryonoParser(String f, String v) throws ParserException
      The constructor of Parser. Added by W. Christian to make it easy to construct a parser for with one variable.
      Parameters:
      f - function
      v - variable
      Throws:
      ParserException
    • SuryonoParser

      public SuryonoParser(String f, String v1, String v2) throws ParserException
      The constructor of Parser. Added by W. Christian to make it easy to construct a parser for with two variables.
      Parameters:
      f - the function
      v1 - variable 1
      v2 - variable 2
      Throws:
      ParserException
    • SuryonoParser

      public SuryonoParser(String f, String[] v) throws ParserException
      The constructor of Parser. Added by W. Christian to make it easy to construct a parser for with multiple variables.
      Parameters:
      f - the function
      v - variables
      Throws:
      ParserException
    • SuryonoParser

      public SuryonoParser(String funcStr, String[] vars, boolean allowUnkownIdentifiers) throws ParserException
      Parameters:
      funcStr -
      vars -
      allowUnkownIdentifiers - always false
      Throws:
      ParserException
    • SuryonoParser

      public SuryonoParser(int nVar)
      The constructor of Parser.
      Parameters:
      nVar - the number of variables
  • Method Details

    • setError

      public void setError(int err)
    • setToZero

      public void setToZero()
      Sets the funtion to zero.
    • useRadian

      public void useRadian()
      Sets the angle unit to radian. Default upon construction.
    • useDegree

      public void useDegree()
      Sets the angle unit to degree.
    • defineVariable

      public void defineVariable(int index, String name)
      Sets the variable names. Nothing happens if variable index > number of variables.
      Parameters:
      index - the variable index (one based)
      name - the variable name
    • setVariable

      public void setVariable(int index, double value)
      Sets the variable value. The variable is accessed by index. Nothing happens if variable index > number of variables.
      Parameters:
      index - the variable index (one based)
      value - the variable value
    • setVariable

      public void setVariable(String name, double value)
      Sets the variable value. The variable is accessed by name. Nothing happens if variable could not be found.
      Parameters:
      name - the variable name
      value - the variable value
    • define

      public void define(String def)
      Defines a function. Current postfix code becomes invalid.
      Parameters:
      def - the function definition
    • parse

      public void parse(String function) throws ParserException
      Parses defined function.
      Throws:
      ParserException
    • parseUnknown

      public String[] parseUnknown(String function) throws ParserException
      Parses a function looking for unknown variables. Unknown tokens are used to create the variable list in the order that they are found.
      Throws:
      ParserException
    • getVariableNames

      public String[] getVariableNames()
    • getFunctionNames

      public String[] getFunctionNames()
      Returns all built-in and extended function names. Added by D. Brown 06 Jul 2008
      Specified by:
      getFunctionNames in class MathExpParser
      Returns:
      array of function names
    • parse

      public void parse()
      Parses defined function.
    • evaluate

      public double evaluate(double x)
      Description copied from interface: Function
      Evaluates the function at x.
      Returns:
      double f(x)
    • evaluate

      public double evaluate(double x, double y)
    • evaluate

      public double evaluate(double x, double y, double z)
    • evaluate

      public double evaluate(double[] v)
    • evaluate

      public double evaluate()
      Evaluates compiled function.
      Returns:
      the result of the functio
    • evaluatedToNaN

      public boolean evaluatedToNaN()
      Determines if last evaluation resulted in NaN. Added by D Brown 15 Sep 2010.
      Returns:
      true if result was converted from NaN to zero
    • getErrorCode

      public int getErrorCode()
      Gets error code of last operation.
      Returns:
      the error code
    • getErrorString

      public String getErrorString()
      Gets error string/message of last operation.
      Returns:
      the error string
    • getErrorPosition

      public int getErrorPosition()
      Gets error position. Valid only if error code != NO_ERROR
      Returns:
      error position (one based)
    • toErrorString

      public static String toErrorString(int errorcode)
      Converts error code to error string.
      Returns:
      the error string
    • getFunction

      public String getFunction()
      Gets function string of last parsing operation. Added by W. Christian to implement the MathExpParser interface.
      Specified by:
      getFunction in class MathExpParser
      Returns:
      the function string
    • setFunction

      public void setFunction(String funcStr) throws ParserException
      Parse the function string using the existing variables. Added by W. Christian to implement the MathExpParser interface.
      Specified by:
      setFunction in class MathExpParser
      Parameters:
      funcStr - the function to be parsed
      Throws:
      ParserException
    • setFunction

      public void setFunction(String funcStr, String[] vars) throws ParserException
      Parse the function string using new variable names. Added by W. Christian to implement the MathExpParser interface.
      Specified by:
      setFunction in class MathExpParser
      Parameters:
      funcStr - the function to be parsed
      vars - the function's variables
      Throws:
      ParserException
    • getNumber

      public static double getNumber(String name)
    • couldBeNumber

      public static boolean couldBeNumber(String n)
      before we test for a NFE, at least check that it COULD be a number. I is for "Infinity"
      Parameters:
      n -
      Returns:
    • toString

      public String toString()
      Overrides:
      toString in class Object