org.lsmp.djep.matrixJep.function
Class MIf

java.lang.Object
  extended byorg.nfunk.jep.function.PostfixMathCommand
      extended byorg.lsmp.djep.matrixJep.function.MIf
All Implemented Interfaces:
MatrixSpecialEvaluationI, NaryOperatorI, PostfixMathCommandI

public class MIf
extends PostfixMathCommand
implements NaryOperatorI, MatrixSpecialEvaluationI

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 availiable. Note most computations are caried out over floating point doubles so testing for zero can be dangerous.

This function implements the SpecialEvaluationI interface so that it handles seting 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
MIf()
           
 
Method Summary
 Dimensions calcDim(Dimensions[] dims)
          Find the dimension of this node.
 MatrixValueI calcValue(MatrixValueI res, MatrixValueI[] inputs)
          This method should not be called.
 MatrixValueI 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 Detail

MIf

public MIf()
Method Detail

calcDim

public Dimensions calcDim(Dimensions[] dims)
                   throws ParseException
Find the dimension of this node.

Specified by:
calcDim in interface NaryOperatorI
Throws:
ParseException

calcValue

public MatrixValueI calcValue(MatrixValueI res,
                              MatrixValueI[] inputs)
                       throws ParseException
This method should not be called. Use evaluate(org.lsmp.djep.matrixJep.nodeTypes.MatrixNodeI, org.lsmp.djep.matrixJep.MatrixEvaluator, org.lsmp.djep.matrixJep.MatrixJep) instead.

Specified by:
calcValue in interface NaryOperatorI
Throws:
ParseException

evaluate

public MatrixValueI evaluate(MatrixNodeI node,
                             MatrixEvaluator visitor,
                             MatrixJep j)
                      throws ParseException
Evaluate the node, uses lazy evaluation.

Specified by:
evaluate in interface MatrixSpecialEvaluationI
Parameters:
node - The top node.
visitor - The parser visitor
j - The current MatrixJep instance.
Returns:
Value after evaluation.
Throws:
ParseException


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