Class Preprocess

java.lang.Object
com.singularsys.jep.functions.PostfixMathCommand
com.singularsys.extensions.xjep.Preprocess
All Implemented Interfaces:
CallbackEvaluationI, JepComponent, PostfixMathCommandI, Serializable

public class Preprocess extends PostfixMathCommand implements JepComponent, CallbackEvaluationI
Runs the preprocessors on an expression during evaluation. This can be used to perform symbolic operations during evaluation.

 expr:=0;
 for(n=1;n<=4;++n) { preprocess(expr:=eqn(expr)+x^eval(n)); }
 
The for loop from the com.singularsys.extensions.structure package repeatedly evaluates the block. To perform symbolic operations we use the Preprocess function. This in turn uses a symbolic assignment operation XAssign, extracts the current expression for the expr variable using the ExtractEqn function, and evaluates the value of n using the Eval function. evaluate
Since:
Jep 4.0/Extension 2.1
See Also:
  • Constructor Details

    • Preprocess

      public Preprocess()
    • Preprocess

      public Preprocess(XJep xj)
  • Method Details

    • evaluate

      public Object evaluate(Node node, Evaluator pv) throws EvaluationException
      Description copied from interface: CallbackEvaluationI
      Performs some special evaluation on the node. This method has the responsibility for evaluating the children of the node, and it should generally call
       pv.eval(node.jjtGetChild(i))   
       
      for each child. The SymbolTable is not passed as an argument. This is because it is better practice to get and set variable values by using node.getVar().setValue() rather that through the SymbolTable with requires a hashtable lookup.
      Specified by:
      evaluate in interface CallbackEvaluationI
      Parameters:
      node - The current node
      pv - The visitor, can be used evaluate the children
      Returns:
      the value after evaluation. This value will be passed to other functions higher up the node tree. The value can be any type including Double or Vector<Object>
      Throws:
      EvaluationException - if the calculation cannot be performed
      See Also:
    • init

      public void init(Jep jep)
      Description copied from interface: JepComponent
      Initialize the component. This method is called whenever a component is added to Jep. Hence, it allows components to keep track of the other components they may rely on.
      Specified by:
      init in interface JepComponent
      Parameters:
      jep - the current Jep instance
    • getLightWeightInstance

      public JepComponent getLightWeightInstance()
      Description copied from interface: JepComponent
      Gets a light-weight instance suitable for using in multiple threads.
      Specified by:
      getLightWeightInstance in interface JepComponent
      Returns:
      either a new instance, null or 'this'.