Package com.ibm.wala.fixpoint
Class UnaryOperator<T extends IVariable<T>>
- java.lang.Object
-
- com.ibm.wala.fixpoint.AbstractOperator<T>
-
- com.ibm.wala.fixpoint.UnaryOperator<T>
-
- All Implemented Interfaces:
FixedPointConstants
- Direct Known Subclasses:
BitVectorFilter
,BitVectorIdentity
,BitVectorKillAll
,BitVectorKillGen
,BitVectorMinusVector
,BitVectorOr
,BitVectorUnionConstant
,BitVectorUnionVector
,BooleanIdentity
,TrueOperator
,UnaryBitVectorUnion
,UnaryOr
public abstract class UnaryOperator<T extends IVariable<T>> extends AbstractOperator<T>
An operator of the form lhs = op (rhs)
-
-
Field Summary
-
Fields inherited from interface com.ibm.wala.fixpoint.FixedPointConstants
CHANGED, CHANGED_AND_FIXED, CHANGED_MASK, FIXED_MASK, NOT_CHANGED, NOT_CHANGED_AND_FIXED, SIDE_EFFECT_MASK
-
-
Constructor Summary
Constructors Constructor Description UnaryOperator()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract byte
evaluate(T lhs, T rhs)
Evaluate this equation, setting a new value for the left-hand side.byte
evaluate(T lhs, T[] rhs)
Evaluate this equation, setting a new value for the left-hand side.boolean
isIdentity()
UnaryStatement<T>
makeEquation(T lhs, T rhs)
Create an equation which uses this operator Override in subclasses for efficiency.-
Methods inherited from class com.ibm.wala.fixpoint.AbstractOperator
equals, hashCode, toString
-
-
-
-
Method Detail
-
evaluate
public abstract byte evaluate(T lhs, T rhs)
Evaluate this equation, setting a new value for the left-hand side.- Returns:
- true if the lhs value changes. false otherwise.
-
makeEquation
public UnaryStatement<T> makeEquation(T lhs, T rhs)
Create an equation which uses this operator Override in subclasses for efficiency.
-
isIdentity
public boolean isIdentity()
-
evaluate
public byte evaluate(T lhs, T[] rhs) throws UnimplementedError
Description copied from class:AbstractOperator
Evaluate this equation, setting a new value for the left-hand side.- Specified by:
evaluate
in classAbstractOperator<T extends IVariable<T>>
- Returns:
- a code that indicates: 1) has the lhs value changed? 2) has this equation reached a fixed-point, in that we never have to evaluate the equation again, even if rhs operands change?
- Throws:
UnimplementedError
-
-