org.lsmp.djep.matrixJep.function
Class MAssign
java.lang.Object
org.nfunk.jep.function.PostfixMathCommand
org.nfunk.jep.function.Assign
org.lsmp.djep.matrixJep.function.MAssign
- All Implemented Interfaces:
- MatrixSpecialEvaluationI, SpecialPreProcessorI, CallbackEvaluationI, PostfixMathCommandI
public class MAssign
- extends Assign
- implements MatrixSpecialEvaluationI, SpecialPreProcessorI
A matrix enabled assignment function.
The lhs of an assignment must be a variable.
- Author:
- Rich Morris
Created on 23-Feb-2004
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MAssign
public MAssign()
run
public void run(java.util.Stack s)
throws ParseException
- The run 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:
run
in interface PostfixMathCommandI
- Overrides:
run
in class PostfixMathCommand
- Throws:
ParseException
evaluate
public MatrixValueI evaluate(MatrixNodeI node,
MatrixEvaluator visitor,
MatrixJep j)
throws ParseException
- A special methods for evaluating an assignment.
When an assignment is encountered, first
evaluate the rhs. Then set the value
of the lhs to the result.
- Specified by:
evaluate
in interface MatrixSpecialEvaluationI
- Parameters:
node
- The top node.visitor
- The parser visitorj
- The current MatrixJep instance.
- Returns:
- Value after evaluation.
- Throws:
ParseException
preprocess
public MatrixNodeI preprocess(ASTFunNode node,
MatrixPreprocessor visitor,
MatrixJep mjep,
MatrixNodeFactory nf)
throws ParseException
- Description copied from interface:
SpecialPreProcessorI
- Subverts the preprocessing stage.
Preprocessing performs a number of operations:
- Converts each node into one of the subtypes of MatrixNodeI
- Calculate the dimensions for the results
- Performs any special symbolic operations such as differentation
In general the first step in preprocessing is to run the preprocessor on the children of the node.
This can be done using
MatrixNodeI children[] = visitor.visitChildrenAsArray(node,null);
The final step is to construct a node of the correct type. The MatrixNodeFactory
argument has a number of methods to do this. For example
return (ASTMFunNode) nf.buildOperatorNode(node.getOperator(),children,rhsDim);
Note how the dimension is specified.
- Specified by:
preprocess
in interface SpecialPreProcessorI
- Parameters:
node
- the top node of the tree representing the function and its arguments.visitor
- A reference to the preprocessing visitor.mjep
- A reference of the MatrixJep instance.nf
- A reference to the node factory object.
- Returns:
- A new MatrixNodeI representing the converted function.
- Throws:
ParseException
- if some error occurs.
http://www.singularsys.com/jep Copyright © 2007 Singular Systems