ubc.cs.JLog.Builtins
Class jIntegerOnlyArithmetic

java.lang.Object
  extended by ubc.cs.JLog.Foundation.jType
      extended by ubc.cs.JLog.Terms.jTerm
          extended by ubc.cs.JLog.Terms.iPredicate
              extended by ubc.cs.JLog.Terms.jBuiltinPredicate
                  extended by ubc.cs.JLog.Terms.jBinaryBuiltinPredicate
                      extended by ubc.cs.JLog.Builtins.jIntegerOnlyArithmetic
All Implemented Interfaces:
iArithmetic, iType, iUnifiable, iConsultable, iName, iNameArity, iTerm, iValue
Direct Known Subclasses:
jBitwiseConjunction, jBitwiseDisjunction, jBitwiseExclusiveDisjunction, jBitwiseLeftShift, jBitwiseRightShift

public abstract class jIntegerOnlyArithmetic
extends jBinaryBuiltinPredicate


Field Summary
 
Fields inherited from class ubc.cs.JLog.Terms.jBinaryBuiltinPredicate
lhs, rhs
 
Fields inherited from class ubc.cs.JLog.Foundation.jType
type
 
Fields inherited from interface ubc.cs.JLog.Builtins.iArithmetic
MAX
 
Fields inherited from interface ubc.cs.JLog.Terms.iTerm
EQUAL, GREATER_THAN, LESS_THAN
 
Fields inherited from interface ubc.cs.JLog.Foundation.iType
TYPE_ARITHMETIC, TYPE_ATOM, TYPE_BUILTINPREDICATE, TYPE_COMMAND, TYPE_COMPARE, TYPE_COMPOUND, TYPE_CONS, TYPE_IF, TYPE_INTEGER, TYPE_LIST, TYPE_NULLLIST, TYPE_NUMERICCOMPARE, TYPE_OBJECT, TYPE_OPERATOR, TYPE_OR, TYPE_ORPREDICATE, TYPE_PREDICATE, TYPE_PREDICATETERMS, TYPE_REAL, TYPE_TYPE, TYPE_UNARYARITHMETIC, TYPE_UNARYOPERATOR, TYPE_UNDEFINED, TYPE_VARIABLE
 
Constructor Summary
jIntegerOnlyArithmetic(jTerm l, jTerm r)
           
 
Method Summary
 void addGoals(jGoal g, iGoalStack goals)
          Arithmetics are intended as expressions for is, if used a predicate they fail.
 void addGoals(jGoal g, jVariable[] vars, iGoalStack goals)
          Arithmetics are intended as expressions for is, if used a predicate they fail.
 jTerm getValue()
          Return the value of this object after.
protected abstract  int operatorInt(int l, int r)
          Perform the integer operations specified by this instance on the two given integers, and return the integer result.
protected  float operatorReal(float l, float r)
          Perform the float operations specified by this instance on the two given floats, and return the float result.
 java.lang.String toString(boolean usename)
          Produces a string identifying this term, suitable for display to the console.
 
Methods inherited from class ubc.cs.JLog.Terms.jBinaryBuiltinPredicate
compareArguments, consult, consultReset, copy, duplicate, duplicate, enumerateVariables, equivalenceArguments, getArguments, getArity, getLHS, getRHS, isConsultNeeded, prove, registerUnboundVariables, registerVariables, unifyArguments
 
Methods inherited from class ubc.cs.JLog.Terms.jBuiltinPredicate
equivalence, unify
 
Methods inherited from class ubc.cs.JLog.Terms.iPredicate
compare
 
Methods inherited from class ubc.cs.JLog.Terms.jTerm
compare, copy, getName, getTerm, requiresCompleteVariableState, toString
 
Methods inherited from class ubc.cs.JLog.Foundation.jType
getType, objectToString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ubc.cs.JLog.Builtins.iArithmetic
getPriority
 
Methods inherited from interface ubc.cs.JLog.Terms.iName
getName
 

Constructor Detail

jIntegerOnlyArithmetic

public jIntegerOnlyArithmetic(jTerm l,
                              jTerm r)
Method Detail

getValue

public jTerm getValue()
Description copied from interface: iValue
Return the value of this object after.

Specified by:
getValue in interface iTerm
Specified by:
getValue in interface iValue
Returns:
jTerm which represents the evaluated value of this instance, or the value bound to this instance, in the case of a variable.

operatorReal

protected float operatorReal(float l,
                             float r)
Perform the float operations specified by this instance on the two given floats, and return the float result.

Parameters:
l - The left operand.
r - The right operand.
Returns:
The result of l op r where op is specified by this instance.

operatorInt

protected abstract int operatorInt(int l,
                                   int r)
Perform the integer operations specified by this instance on the two given integers, and return the integer result.

Parameters:
l - The left operand.
r - The right operand.
Returns:
The result of l op r where op is specified by this instance.

addGoals

public void addGoals(jGoal g,
                     jVariable[] vars,
                     iGoalStack goals)
Arithmetics are intended as expressions for is, if used a predicate they fail.

Overrides:
addGoals in class jBinaryBuiltinPredicate
Parameters:
g - The super-goal jGoal for the sub-goal that this function will add.
vars - The vector of duplicate variables produced from the previous call to registerVariables. Needed for call to duplicate.
goals - The iGoalStack to add the goal to.

addGoals

public void addGoals(jGoal g,
                     iGoalStack goals)
Arithmetics are intended as expressions for is, if used a predicate they fail.

Overrides:
addGoals in class jBinaryBuiltinPredicate
Parameters:
g - The super-goal jGoal for the sub-goal that this function will add.
goals - The iGoalStack to add the goal to.

toString

public java.lang.String toString(boolean usename)
Description copied from class: jTerm
Produces a string identifying this term, suitable for display to the console. param usename determines whether to display variables by name or identity. false is the default for displaying the term, true for displaying this term in a user query.

Specified by:
toString in interface iTerm
Overrides:
toString in class jBinaryBuiltinPredicate
Returns:
String which is a textual representation of this term.