public boolean leq(LispObject a) throws Exception { return (value <= a.doubleValue()); }
public boolean neqn(LispObject a) throws Exception { return (value != a.doubleValue()); }
public boolean ge(LispObject a) throws Exception { return (value > a.doubleValue()); }
public LispObject expt(LispObject a) throws Exception { // it is possible that I should delect cases where a is an integer // and raise to a power using some alternative scheme, like repeated // multiplication. return new LispFloat(Math.pow(value, a.doubleValue())); }
public LispObject min(LispObject a) throws Exception { return (value <= a.doubleValue() ? this : a); }
public LispObject remainder(LispObject a) throws Exception { return new LispFloat(value % a.doubleValue()); }
public LispObject divide(LispObject a) throws Exception { return new LispFloat(value / a.doubleValue()); }
public LispObject multiply(LispObject a) throws Exception { return new LispFloat(value * a.doubleValue()); }
public LispObject subtract(LispObject a) throws Exception { return new LispFloat(value - a.doubleValue()); }
public LispObject add(LispObject a) throws Exception { return new LispFloat(value + a.doubleValue()); }