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
,Serializable
- Direct Known Subclasses:
BigDecPow
Computes the power of a 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:
-
Field Summary
Fields inherited from class com.singularsys.jep.functions.PostfixMathCommand
curNumberOfParameters, name, NaN, numberOfParameters
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiondouble
evaluate
(double l, double r) boolean
Whether complex results are allowed for number arguments.static double
power
(double l, int n) A fast routine for computing integer powers.static Object
static Object
static Object
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
-
Field Details
-
strict
protected boolean strict
-
-
Constructor Details
-
Power
public Power()Standard constructor, Complex results for x < 0, y non integral. -
Power
public Power(boolean strict) If strict is true then returns NaN for x < 0, y non-integral.- Parameters:
strict
- true to force real results
-
-
Method Details
-
eval
- Specified by:
eval
in classBinaryFunction
- Throws:
EvaluationException
-
power
- Throws:
EvaluationException
-
power
-
power
-
power
-
power
-
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)
-