Package org.lsmp.djep.matrixJep.function
Class MIf
java.lang.Object
org.nfunk.jep.function.PostfixMathCommand
org.lsmp.djep.matrixJep.function.MIf
- All Implemented Interfaces:
MatrixSpecialEvaluationI
,NaryOperatorI
,PostfixMathCommandI
The if(condExpr,posExpr,negExpr) function.
The value of trueExpr will be returned if condExpr is >0 (true)
and value of negExpr will be returned if condExpr is <= 0 (false).
This function performs lazy evaluation so that only posExpr or negExpr will be evaluated. For Complex numbers only the real part is used.
An alternate form if(condExpr,posExpr,negExpr,zeroExpr) is also available. Note most computations are carried out over floating point doubles so testing for zero can be dangerous.
This function implements the SpecialEvaluationI interface so that it handles setting the value of a variable.
- Author:
- Rich Morris Created on 18-Nov-2003
-
Field Summary
Fields inherited from class org.nfunk.jep.function.PostfixMathCommand
curNumberOfParameters, numberOfParameters
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncalcDim
(Dimensions[] dims) Find the dimension of this node.calcValue
(MatrixValueI res, MatrixValueI[] inputs) This method should not be called.boolean
checkNumberOfParameters
(int n) Checks the number of parameters of the function.evaluate
(MatrixNodeI node, MatrixEvaluator visitor, MatrixJep j) Evaluate the node, uses lazy evaluation.Methods inherited from class org.nfunk.jep.function.PostfixMathCommand
checkStack, getNumberOfParameters, run, setCurNumberOfParameters
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.nfunk.jep.function.PostfixMathCommandI
getNumberOfParameters, run, setCurNumberOfParameters
-
Constructor Details
-
MIf
public MIf()
-
-
Method Details
-
calcDim
Find the dimension of this node.- Specified by:
calcDim
in interfaceNaryOperatorI
- Throws:
ParseException
-
calcValue
This method should not be called. Useevaluate(org.lsmp.djep.matrixJep.nodeTypes.MatrixNodeI, org.lsmp.djep.matrixJep.MatrixEvaluator, org.lsmp.djep.matrixJep.MatrixJep)
instead.- Specified by:
calcValue
in interfaceNaryOperatorI
- Throws:
ParseException
-
evaluate
public MatrixValueI evaluate(MatrixNodeI node, MatrixEvaluator visitor, MatrixJep j) throws ParseException Evaluate the node, uses lazy evaluation.- Specified by:
evaluate
in interfaceMatrixSpecialEvaluationI
- Parameters:
node
- The top node.visitor
- The parser visitorj
- The current MatrixJep instance.- Returns:
- Value after evaluation.
- Throws:
ParseException
-
checkNumberOfParameters
public boolean checkNumberOfParameters(int n) Description copied from class:PostfixMathCommand
Checks the number of parameters of the function. Functions which set numberOfParameter=-1 should overload this method- Specified by:
checkNumberOfParameters
in interfacePostfixMathCommandI
- Overrides:
checkNumberOfParameters
in classPostfixMathCommand
- Parameters:
n
- number of parameters function will be called with.- Returns:
- False if an illegal number of parameters is supplied, true otherwise.
-