| edu.hws.jcm.data.ExpressionCommand
All known Subclasses: edu.hws.jcm.data.ConditionalExpression, edu.hws.jcm.data.Constant, edu.hws.jcm.functions.FunctionParserExtension,
ExpressionCommand | public interface ExpressionCommand extends java.io.Serializable(Code) | | An ExpressionCommand can occur as a command in an ExpressionProgram. ExpressionCommands
exists so that ExprssionPrograms can be extened to include new types of operations beyond
the basic operations (such as PLUS and SIN) which are represented by constants in the
ExpressionProgram class. Examples include ConditionalExpressions and user-defined functions.
This interface is not meant for casual programmers. It is for programmers who want to
extend the notion of Expression in an orginal way.
|
Method Summary | |
public void | appendOutputString(ExpressionProgram prog, int myIndex, StringBuffer buffer) The ExpressionCommand occurs in the program prog at the index indicated by myIndex. | public void | apply(StackOfDouble stack, Cases cases) This routine is called when an ExpressionCommand object is encountered during
the evaluation of an ExpressionProgram. | public void | compileDerivative(ExpressionProgram prog, int myIndex, ExpressionProgram deriv, Variable wrt) The ExpressionCommand occurs in the program prog at the index indicated by myIndex.
Add commands to deriv that will evaluate the derivative of this command with respect to
the variable wrt. | public boolean | dependsOn(Variable x) Return true if this command depends on the value of x, false otherwise. | public int | extent(ExpressionProgram prog, int myIndex) The ExpressionCommand occurs in the program prog at the index indicated by myIndex.
Return the total number of indices in prog occupied by this command and the commands
that generate data used by this command.
Parameters: prog - ExpressionProgram in which this ExpressionCommand occurs. Parameters: myIndex - index at which ExpressionCommand occurs in prog. |
appendOutputString | public void appendOutputString(ExpressionProgram prog, int myIndex, StringBuffer buffer)(Code) | | The ExpressionCommand occurs in the program prog at the index indicated by myIndex.
Add a print string representation of the sub-expression represented by this command
(including any previous commands in the program that generate data used by this
command).
|
apply | public void apply(StackOfDouble stack, Cases cases)(Code) | | This routine is called when an ExpressionCommand object is encountered during
the evaluation of an ExpressionProgram. The stack may contain results of
previous commands in the program. For example, for a ConditionalExpression, it
contains the value of the boolean condition, and for a user-defined function,
it contains the values of the arguments of the function. When apply() is called,
the ExpressionCommand should perform any stack operations that are necessary
to evaluate itself. For example, a user-defined function would remove its arguments
from the stack and replace them with the value of the function at those arguments.
If cases is non-null, then any case information generated during the evaluation
should be recorded in cases. (See the Cases class for more information.)
Parameters: stack - contains results of previous commands in the program. Parameters: cases - if non-null, any case information generated during evaluation should be recorded here. |
compileDerivative | public void compileDerivative(ExpressionProgram prog, int myIndex, ExpressionProgram deriv, Variable wrt)(Code) | | The ExpressionCommand occurs in the program prog at the index indicated by myIndex.
Add commands to deriv that will evaluate the derivative of this command with respect to
the variable wrt. prog and myIndex are provided so that this routine will have access
to any commands in prog that generate data used by this command (for example, the commands
that evaluate the arguments of a user-defined function).
Parameters: prog - program in which ExpressionCommand occurs. Parameters: myIndex - point at which ExpressionCommand occurs in the ExpressionProgram. Parameters: deriv - the derivative of the ExpressionPorgram prog, which is in the process of being computed.Commands should added to deriv that will compute the derivative of this ExpressionCommand. Parameters: wrt - commands are added to deriv with respect to this Variable. |
dependsOn | public boolean dependsOn(Variable x)(Code) | | Return true if this command depends on the value of x, false otherwise.
That is, when apply() is called, can the result depend on the value of x?
|
extent | public int extent(ExpressionProgram prog, int myIndex)(Code) | | The ExpressionCommand occurs in the program prog at the index indicated by myIndex.
Return the total number of indices in prog occupied by this command and the commands
that generate data used by this command.
Parameters: prog - ExpressionProgram in which this ExpressionCommand occurs. Parameters: myIndex - index at which ExpressionCommand occurs in prog. total number of indices in prog occupied by this command and commands that generate data used by this command. |
|
|