Package com.singularsys.jep.functions
Class Power
- java.lang.Object
-
- com.singularsys.jep.functions.PostfixMathCommand
-
- com.singularsys.jep.functions.BinaryFunction
-
- com.singularsys.jep.functions.Power
-
- All Implemented Interfaces:
PostfixMathCommandI
,RealBinaryFunction
,java.io.Serializable
- Direct Known Subclasses:
BigDecPow
public class Power extends BinaryFunction implements RealBinaryFunction
Computes the power of an number. Implements a fast algorithm for integer powers by Patricia Shanahan [email protected].- Since:
- 3.3 Returns NaN rather than throwing and exception for out of range real arguments
- Author:
- N Funk, R Morris, Patricia Shanahan
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
strict
-
Fields inherited from class com.singularsys.jep.functions.PostfixMathCommand
curNumberOfParameters, name, NaN, numberOfParameters
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
eval(java.lang.Object l, java.lang.Object r)
double
evaluate(double l, double r)
boolean
isAllowComplexResults()
Whether complex results are allowed for number arguments.static double
power(double l, int n)
A fast routine for computing integer powers.static java.lang.Object
power(Complex c1, Complex c2)
static java.lang.Object
power(Complex c, java.lang.Number d)
static java.lang.Object
power(java.lang.Number d, Complex c)
java.lang.Object
power(java.lang.Number d1, java.lang.Number d2)
java.lang.Object
power(java.lang.Object param1, java.lang.Object param2)
void
setAllowComplexResults(boolean allowComplexResults)
-
Methods inherited from class com.singularsys.jep.functions.BinaryFunction
instanceOf, instanceOf, run
-
Methods inherited from class com.singularsys.jep.functions.PostfixMathCommand
asArray, asBool, asDouble, asInt, asLong, asStrictInt, asString, checkNumberOfParameters, getName, getNumberOfParameters, setCurNumberOfParameters, setName, toString, toString
-
-
-
-
Method Detail
-
eval
public java.lang.Object eval(java.lang.Object l, java.lang.Object r) throws EvaluationException
- Specified by:
eval
in classBinaryFunction
- Throws:
EvaluationException
-
power
public java.lang.Object power(java.lang.Object param1, java.lang.Object param2) throws EvaluationException
- Throws:
EvaluationException
-
power
public java.lang.Object power(java.lang.Number d1, java.lang.Number d2)
-
power
public static java.lang.Object power(Complex c, java.lang.Number d)
-
power
public static java.lang.Object power(java.lang.Number d, Complex c)
-
power
public static double power(double l, int n)
A fast routine for computing integer powers. Code adapted from efficient power by Patricia Shanahan [email protected] Almost identical to the method Knuth gives on page 462 of The Art of Computer Programming Volume 2 Seminumerical Algorithms.- Parameters:
l
- number to be taken to a power.n
- power- Returns:
- x to the power n
-
evaluate
public double evaluate(double l, double r)
- Specified by:
evaluate
in interfaceRealBinaryFunction
-
isAllowComplexResults
public boolean isAllowComplexResults()
Whether complex results are allowed for number arguments. If l is a negative Number and r is non integral Number then the pow function typically returns a Complex result. If this flag is set then an EvaluationException would be thrown instead.- Returns:
- the status of the allowComplexResults flag.
-
setAllowComplexResults
public void setAllowComplexResults(boolean allowComplexResults)
-
-