|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sourceforge.webcompmath.data.ConditionalExpression
public class ConditionalExpression
A "conditional expression" is an expression using the ? operator. An example is "(x > 0)? x : -x" or "x <>3 ? 1 / (x - 3)". Note that the second case, which follows the ":", is optional. If not present, the expression has the value Double.NaN when the boolean condition evaluates to false. A ConditionalExpression object is generated by a parser when it encounters a "?" operator in the string it is parsing (provided the BOOLEANS option is turned on in that parser).
A ConditionalExpression object holds the two expressions that are the cases in a conditional expression. Note that the boolean condition is NOT stored in the ConditionalExpression object; it is part of the ExpressionProgram for the expression in which the conditional expression occurs. A ConditionalExpression is an ExpressionCommand, meaning that it can occur in an ExpressionProgram. When the apply() method in this class is called, the boolean condition has already been evaluated, and the result is on the top of the stack. The ConditionalExpression will look at this result and replace it with the value of one of the two expressions that it contains.
It is unlikely that there will be any reason for anyone to use or understand this class, except possibly as an example of an ExpressionCommand.
Constructor Summary | |
---|---|
ConditionalExpression(ExpressionProgram trueCase,
ExpressionProgram falseCase)
Create a ConditionalExpression object containing the two given expressions. |
Method Summary | |
---|---|
void |
appendOutputString(ExpressionProgram prog,
int myIndex,
java.lang.StringBuffer buffer)
Append the string representation of the expression (including the boolean condition) to the buffer. |
void |
apply(StackOfDouble stack,
Cases cases)
Apply this ConditionalExpression to the stack. |
void |
compileDerivative(ExpressionProgram prog,
int myIndex,
ExpressionProgram deriv,
Variable wrt)
Add commands to deriv that evaluate the derivative of this conditional expression with respect to the variable wrt. |
boolean |
dependsOn(Variable x)
Returns true if x occurs in either the trueCase or the falseCase expression. |
int |
extent(ExpressionProgram prog,
int myIndex)
Assume that this ConditionalExpression object occurs in prog at index myIndex. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ConditionalExpression(ExpressionProgram trueCase, ExpressionProgram falseCase)
trueCase
- the true case to usefalseCase
- the false case to use, or nullMethod Detail |
---|
public void apply(StackOfDouble stack, Cases cases)
apply
in interface ExpressionCommand
stack
- the stack to usecases
- the cases to usepublic void compileDerivative(ExpressionProgram prog, int myIndex, ExpressionProgram deriv, Variable wrt)
compileDerivative
in interface ExpressionCommand
prog
- program containing the cond. expr.myIndex
- location of the cond. expr.deriv
- derivative expression programwrt
- variable with respect topublic int extent(ExpressionProgram prog, int myIndex)
extent
in interface ExpressionCommand
prog
- program containing the cond. expr.myIndex
- location of the cond. expr.
public boolean dependsOn(Variable x)
dependsOn
in interface ExpressionCommand
x
- variable to check for
public void appendOutputString(ExpressionProgram prog, int myIndex, java.lang.StringBuffer buffer)
appendOutputString
in interface ExpressionCommand
prog
- program containing the cond. expr.myIndex
- location of the cond. expr.buffer
- string to append
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |