com.singularsys.jep.functions
Class Comparative

java.lang.Object
  extended by com.singularsys.jep.functions.PostfixMathCommand
      extended by com.singularsys.jep.functions.Comparative
All Implemented Interfaces:
PostfixMathCommandI, java.io.Serializable

public class Comparative
extends PostfixMathCommand

Implements the comparative operations <, >, <=, >=, != and ==. The <, >, <=, >= operators only work on Double type, while the != and == operators also work on String and Vector arguments. For other types, care might be needed.

Complex numbers are compared using a tolerance which can be set using setTolerance().

Since:
2.3.0 beta 1 a bit of a rewrite to make sub classing easier, now allows Complex to be compared to Double i.e. 1+0 i == 1., 2.3.0 beta 2 changed the internal lt,gt,le,ge,ne and eq method to return boolean. If this breaks anything use if (lt(obj1,obj2)) inStack.push(new Double(1)); else inStack.push(new Double(0));
Author:
N Funk and R Morris
See Also:
Serialized Form

Field Summary
static int EQ
           
static int GE
           
static int GT
           
protected  int id
          Used to represent which operator the class represents.
static int LE
           
static int LT
           
static int NE
           
 
Fields inherited from class com.singularsys.jep.functions.PostfixMathCommand
curNumberOfParameters, numberOfParameters
 
Constructor Summary
Comparative(int id_in)
          Constructor.
 
Method Summary
 boolean compare(java.lang.Object param1, java.lang.Object param2)
           
 boolean eq(java.lang.Object param1, java.lang.Object param2)
           
 boolean ge(java.lang.Object param1, java.lang.Object param2)
           
 double getTolerance()
          Returns the tolerance used for comparing complex numbers
 boolean gt(java.lang.Object param1, java.lang.Object param2)
           
 boolean le(java.lang.Object param1, java.lang.Object param2)
           
 boolean lt(java.lang.Object param1, java.lang.Object param2)
           
 boolean ne(java.lang.Object param1, java.lang.Object param2)
           
 void run(java.util.Stack<java.lang.Object> inStack)
          Run the function on the stack.
 void setTolerance(double d)
          Sets the tolerance used for comparing complex numbers
 
Methods inherited from class com.singularsys.jep.functions.PostfixMathCommand
checkNumberOfParameters, checkStack, getNumberOfParameters, setCurNumberOfParameters
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

id

protected int id
Used to represent which operator the class represents.


LT

public static final int LT
See Also:
Constant Field Values

GT

public static final int GT
See Also:
Constant Field Values

LE

public static final int LE
See Also:
Constant Field Values

GE

public static final int GE
See Also:
Constant Field Values

NE

public static final int NE
See Also:
Constant Field Values

EQ

public static final int EQ
See Also:
Constant Field Values
Constructor Detail

Comparative

public Comparative(int id_in)
Constructor. Sets the number of parameters to 2. Initializes the tolerance for comparing Complex values.

Parameters:
id_in - The id of the comparative operator.
Method Detail

run

public void run(java.util.Stack<java.lang.Object> inStack)
         throws EvaluationException
Description copied from interface: PostfixMathCommandI
Run the function on the stack. Pops the arguments from the stack, and pushes the result on the top of the stack.

Throws:
EvaluationException

compare

public boolean compare(java.lang.Object param1,
                       java.lang.Object param2)
                throws EvaluationException
Throws:
EvaluationException

lt

public boolean lt(java.lang.Object param1,
                  java.lang.Object param2)
           throws EvaluationException
Throws:
EvaluationException

gt

public boolean gt(java.lang.Object param1,
                  java.lang.Object param2)
           throws EvaluationException
Throws:
EvaluationException

le

public boolean le(java.lang.Object param1,
                  java.lang.Object param2)
           throws EvaluationException
Throws:
EvaluationException

ge

public boolean ge(java.lang.Object param1,
                  java.lang.Object param2)
           throws EvaluationException
Throws:
EvaluationException

eq

public boolean eq(java.lang.Object param1,
                  java.lang.Object param2)
           throws EvaluationException
Throws:
EvaluationException

ne

public boolean ne(java.lang.Object param1,
                  java.lang.Object param2)
           throws EvaluationException
Throws:
EvaluationException

getTolerance

public double getTolerance()
Returns the tolerance used for comparing complex numbers


setTolerance

public void setTolerance(double d)
Sets the tolerance used for comparing complex numbers

Parameters:
d -


Copyright © 2008 Singular Systems http://www.singularsys.com/jep