Interface IFixedPointStatement<T extends IVariable<T>>
- All Superinterfaces:
INodeWithNumber
- All Known Implementing Classes:
AbstractFixedPointSolver.Statement, AbstractStatement, AssignEquation, BasicNullaryStatement, BasicUnaryStatement, GeneralStatement, NullaryStatement, UnaryStatement
The general form of a statement definition in an iterative solver is: x >= term, where term
can be any complex expression whose free variables are among the IVariables of the constraint
system this
IFixedPointStatementis part of (x represents the left-hand side of the
constraint). The interpretation of term (the right-hand side of the constraint) must be monotone.
The list of free variables in term is obtained by invoking getRHS(), and the left
hand side variable is obtained by calling getLHS(). Intuitively, a statement definition
corresponds to an "equation" in dataflow parlance, or a "constraint" in constraint solvers.
-
Method Summary
Modifier and TypeMethodDescriptionbyteevaluate()Evaluate this statement, setting a new value for the left-hand side.@Nullable TgetLHS()T[]getRHS()returns the list of free variables appearing in the right-hand side of the statementbooleanhasVariable(T v) Does this statement definition contain an appearance of a given variable?Methods inherited from interface INodeWithNumber
getGraphNodeId, setGraphNodeId
-
Method Details
-
getLHS
@Nullable T getLHS()- Returns:
- the left-hand side of this statement.
-
getRHS
T[] getRHS()returns the list of free variables appearing in the right-hand side of the statement -
evaluate
byte evaluate()Evaluate this statement, setting a new value for the left-hand side. The return value is one of the following: -
hasVariable
Does this statement definition contain an appearance of a given variable?- Parameters:
v- the variable in question
-