public class ApfloatNum extends ExprImpl implements INum
INum
implementation which wraps a Apfloat
value to
represent a numeric floating-point number.Catalan, Degree, EulerGamma, Glaisher, GoldenRatio, Khinchin
ASTID, BLANKID, COMPLEXID, DOUBLECOMPLEXID, DOUBLEID, FRACTIONID, INTEGERID, METHODSYMBOLID, PATTERNID, STRINGID, SYMBOLID
Modifier and Type | Method and Description |
---|---|
<T> T |
accept(IVisitor<T> visitor)
Accept a visitor with return type T
|
boolean |
accept(IVisitorBoolean visitor)
Accept a visitor with return type
boolean |
int |
accept(IVisitorInt visitor)
Accept a visitor with return type
int |
long |
accept(IVisitorLong visitor)
Accept a visitor with return type
long |
INum |
add(INum val) |
ApcomplexNum |
apcomplexNumValue(long precision)
Get a
Apcomplex number wrapped into an
ApcomplexNum object. |
org.apfloat.Apcomplex |
apcomplexValue(long precision) |
ApfloatNum |
apfloatNumValue(long precision)
Get a
Apfloat number wrapped into an ApfloatNum object. |
org.apfloat.Apfloat |
apfloatValue() |
IInteger |
ceilFraction()
Returns the smallest (closest to negative infinity)
IInteger
value that is not less than this and is equal to a
mathematical integer. |
int |
compareAbsValueToOne()
Compare the absolute value of this number with
1 and return
1 , if the absolute value is greater than 1
0 , if the absolute value equals 1
-1 , if the absolute value is less than 1
|
int |
compareTo(IExpr expr)
Compares this expression with the specified expression for order.
|
ComplexNum |
complexNumValue()
Get a
ComplexNum number bject. |
int |
complexSign()
Gets the signum value of a complex number
|
ISignedNumber |
divideBy(ISignedNumber that)
Divide
this signed number by that signed number. |
double |
doubleValue() |
ApfloatNum |
eabs()
Get the absolute value for a given number
|
boolean |
equals(java.lang.Object arg0)
Test if this is equal to b.
|
boolean |
equalsInt(int i)
Check if this number equals the given
int number? |
IExpr |
evaluate(EvalEngine engine)
Evaluate an expression
|
org.apfloat.Apfloat |
exp() |
IInteger |
floorFraction()
Returns the largest (closest to positive infinity)
IInteger
value that is not greater than this and is equal to a
mathematical integer. |
ISignedNumber |
getIm()
Returns the imaginary part of a complex number
|
double |
getImaginary()
Returns the imaginary part of a complex number
|
ISignedNumber |
getRe()
Returns the real part of a complex number
|
double |
getReal()
Returns the real part of a complex number
|
double |
getRealPart() |
int |
hashCode()
Hashcode of this Element.
|
ISymbol |
head()
If this object is an instance of
IAST get the first element
(offset 0) of the IAST list (i.e. get(0) ). |
int |
hierarchy()
A unique integer ID for the implementation of this expression
|
int |
intValue()
Returns the value of this number as an
int (by simply casting to type int ). |
ApfloatNum |
inverse()
Returns the multiplicative inverse of this object.
|
boolean |
isE()
Test if this expression equals
E (base of the natural
logarithm; approximately equal to 2.71828...) in symbolic or numeric
mode. |
boolean |
isGreaterThan(ISignedNumber that)
Test if
this signed number is greater than that signed number.. |
boolean |
isLessThan(ISignedNumber that)
Test if
this signed number is less than that signed number.. |
boolean |
isMinusOne()
Test if this expression equals
-1 in symbolic or numeric
mode. |
boolean |
isNegative()
Test if this number is negative.
|
boolean |
isNumEqualInteger(IInteger ii)
Check if this expression equals an
IInteger value. |
boolean |
isNumEqualRational(IRational value)
Check if this expression equals an
IRational value. |
boolean |
isNumIntValue()
Check if this expression represents an
int value. |
boolean |
isOne()
Test if this expression equals
1 in symbolic or numeric
mode. |
boolean |
isPi()
Test if this expression equals
Pi (the ratio of a circle's
circumference to its diameter, approx. 3.141592...) in symbolic or
numeric mode. |
boolean |
isPositive()
Test if this number is positive.
|
boolean |
isRationalValue(IRational value)
Test if this expression equals
value in symbolic or numeric
mode. |
boolean |
isSame(IExpr expression,
double epsilon)
Test if this expression equals the given expression.
|
boolean |
isZero()
Test if this expression equals
0 in symbolic or numeric
mode. |
org.apfloat.Apfloat |
log() |
long |
longValue() |
INum |
multiply(INum val) |
ApfloatNum |
negate()
Negate this.
|
Num |
numValue()
Get a Java double number wrapped into a
Num object. |
ApfloatNum |
opposite()
Returns an
IExpr whose value is (-1) * this . |
IExpr |
plus(IExpr that)
Returns an
IExpr whose value is (this + that) . |
INum |
pow(INum val) |
long |
precision() |
IInteger |
round()
Returns the closest
IInteger to the argument. |
int |
sign()
Returns the signum function of this number (i.e., -1, 0 or 1 as the value of this number is negative, zero or positive).
|
org.apfloat.Apfloat |
sqrt() |
ISignedNumber |
subtractFrom(ISignedNumber that)
Subtract
that signed number from this signed number |
IExpr |
times(IExpr that)
Returns an
IExpr whose value is (this * that) . |
int |
toInt()
Converts this double value to an
int value; unlike INum.intValue() this method raises
ArithmeticException if this integer cannot be represented by an int type. |
long |
toLong()
Converts this number to
long ; unlike #longValue this method raises ArithmeticException if this
number cannot be represented by an long type. |
java.lang.String |
toString() |
static ApfloatNum |
valueOf(org.apfloat.Apfloat value) |
static ApfloatNum |
valueOf(java.math.BigInteger numerator,
java.math.BigInteger denominator,
long precision) |
static ApfloatNum |
valueOf(java.math.BigInteger numerator,
long precision) |
static ApfloatNum |
valueOf(double value,
long precision)
Create a new instance.
|
static ApfloatNum |
valueOf(java.lang.String value,
int precision) |
$div, $minus, $plus, $times, $up, abs, and, apply, apply, asType, conjugate, copy, dec, divide, egcd, evalComplex, evalDouble, evalNumber, evalSignedNumber, factory, fullFormString, gcd, getAt, inc, internalFormString, internalJavaString, internalScalaString, leafCount, leaves, minus, mod, multiply, negative, optional, or, power, power, remainder, replaceAll, replaceAll, replacePart, replaceRepeated, replaceRepeated, replaceRepeated, replaceSlots, signum, subtract, sum, topHead, toScript, toScriptFactory, variables2Slots
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
$div, $minus, $plus, $times, $up, and, apply, apply, asType, dec, divide, evalComplex, evalDouble, evalNumber, evalSignedNumber, evaluateHead, fullFormString, getAt, getField, ifPresent, inc, internalFormString, internalJavaString, internalScalaString, isAllExpanded, isAnd, isArcCos, isArcCosh, isArcSin, isArcSinh, isArcTan, isArcTanh, isAST, isAST, isAST, isAST, isAST, isAST, isAST, isASTSizeGE, isAtom, isBlank, isComplex, isComplexInfinity, isComplexNumeric, isCondition, isConstant, isCos, isCosh, isDerivative, isDirectedInfinity, isExpanded, isFalse, isFlatAST, isFraction, isFree, isFree, isFree, isFreeAST, isFreeAST, isFreeOfPatterns, isFunction, isGEOrdered, isGTOrdered, isIndeterminate, isInfinity, isInteger, isIntegerResult, isLEOrdered, isList, isListOfLists, isLog, isLTOrdered, isMatrix, isMember, isMember, isModule, isNegativeInfinity, isNegativeResult, isNonNegativeResult, isNot, isNumber, isNumeric, isNumericFunction, isNumericMode, isONE, isOr, isOrderlessAST, isPattern, isPatternDefault, isPatternExpr, isPatternSequence, isPlus, isPlusTimesPower, isPolynomial, isPolynomial, isPolynomialOfMaxDegree, isPositiveResult, isPower, isPresent, isRational, isRationalResult, isRealResult, isRuleAST, isSame, isSequence, isSignedNumber, isSin, isSinh, isSlot, isSlotSequence, isSpan, isSymbol, isTan, isTanh, isTimes, isTrue, isUnit, isValue, isVariable, isVector, isZERO, leafCount, leaves, minus, mod, multiply, multiply, negative, ofNullable, optional, or, orElse, orElseGet, orElseThrow, power, power, reciprocal, replaceAll, replaceAll, replacePart, replaceRepeated, replaceRepeated, replaceSlots, signum, subtract, sum, timesDistributed, topHead, variables2Slots
public static ApfloatNum valueOf(double value, long precision)
numerator
- public static ApfloatNum valueOf(org.apfloat.Apfloat value)
public static ApfloatNum valueOf(java.math.BigInteger numerator, long precision)
public static ApfloatNum valueOf(java.math.BigInteger numerator, java.math.BigInteger denominator, long precision)
public static ApfloatNum valueOf(java.lang.String value, int precision)
public int hierarchy()
IExpr
public boolean isNumEqualInteger(IInteger ii) throws java.lang.ArithmeticException
IInteger
value. The value
of an INum
or the value of an IInteger
object
can be equal to value
.isNumEqualInteger
in interface IExpr
java.lang.ArithmeticException
public boolean isNumEqualRational(IRational value) throws java.lang.ArithmeticException
IRational
value. The
value of an IInteger
, IFraction
or the value of
an INum
object can be equal to value
.isNumEqualRational
in interface IExpr
java.lang.ArithmeticException
IExpr.isRational()
public boolean isNumIntValue()
int
value. The value
of an INum
object can be an int
value.isNumIntValue
in interface IExpr
isNumIntValue
in interface INum
public boolean isNegative()
isNegative
in interface IExpr
isNegative
in interface ISignedNumber
true
, if this < 0
public boolean isPositive()
isPositive
in interface IExpr
isPositive
in interface ISignedNumber
true
, if this > 0
public boolean equalsInt(int i)
INumber
int
number?public IExpr evaluate(EvalEngine engine)
IExpr
public long precision() throws org.apfloat.ApfloatRuntimeException
org.apfloat.ApfloatRuntimeException
public ApfloatNum eabs()
public int compareAbsValueToOne()
1
and return
1
, if the absolute value is greater than 10
, if the absolute value equals 1-1
, if the absolute value is less than 1compareAbsValueToOne
in interface INumber
public IExpr plus(IExpr that)
ExprImpl
IExpr
whose value is (this + that)
.
Calculates F.eval(F.Plus(this, that))
in the common case and
uses a specialized implementation for derived number classes.public ISignedNumber divideBy(ISignedNumber that)
ISignedNumber
this
signed number by that
signed number.divideBy
in interface ISignedNumber
that
- a signed numberpublic ISignedNumber subtractFrom(ISignedNumber that)
ISignedNumber
that
signed number from this
signed numbersubtractFrom
in interface ISignedNumber
that
- a signed numberpublic double doubleValue()
doubleValue
in interface ISignedNumber
public org.apfloat.Apfloat apfloatValue()
public boolean equals(java.lang.Object arg0)
edu.jas.structure.Element
equals
in interface edu.jas.structure.Element<IExpr>
equals
in class java.lang.Object
public boolean isSame(IExpr expression, double epsilon)
IExpr
public org.apfloat.Apfloat exp()
public final int hashCode()
edu.jas.structure.Element
hashCode
in interface edu.jas.structure.Element<IExpr>
hashCode
in class java.lang.Object
public int intValue()
INum
int
(by simply casting to type int
).public int toInt() throws java.lang.ArithmeticException
int
value; unlike INum.intValue()
this method raises
ArithmeticException
if this integer cannot be represented by an int
type.toInt
in interface INum
toInt
in interface ISignedNumber
int
.java.lang.ArithmeticException
- if conversion to int
is not possible.public long toLong() throws java.lang.ArithmeticException
long
; unlike #longValue
this method raises ArithmeticException
if this
number cannot be represented by an long
type.toLong
in interface ISignedNumber
long
.java.lang.ArithmeticException
- if conversion to int
is not possible.public org.apfloat.Apfloat log()
public long longValue()
public IExpr times(IExpr that)
ExprImpl
IExpr
whose value is (this * that)
.
Calculates F.eval(F.Times(this, that))
in the common case
and uses a specialized implementation for derived number classes.public ApfloatNum negate()
ExprImpl
public ApfloatNum opposite()
ExprImpl
IExpr
whose value is (-1) * this
.
Calculates F.eval(F.Times(F.CN1, this))
in the common case
and uses a specialized implementation for derived number classes.opposite
in interface IExpr
opposite
in interface INumber
opposite
in interface ISignedNumber
opposite
in class ExprImpl
IExpr.negative()
public ApfloatNum inverse()
ExprImpl
this.times(this.inverse()) == ONE
, with ONE
being the multiplicative identity. Calculates
F.eval(F.Power(this, F.CN1))
in the common case and uses a
specialized implmentation for derived number classes.public org.apfloat.Apfloat sqrt()
public double getRealPart()
getRealPart
in interface INum
public boolean isE()
E
(base of the natural
logarithm; approximately equal to 2.71828...) in symbolic or numeric
mode.
public boolean isMinusOne()
-1
in symbolic or numeric
mode.isMinusOne
in interface IExpr
public boolean isOne()
1
in symbolic or numeric
mode.public boolean isPi()
Pi
(the ratio of a circle's
circumference to its diameter, approx. 3.141592...) in symbolic or
numeric mode.
public boolean isRationalValue(IRational value)
value
in symbolic or numeric
mode.isRationalValue
in interface IExpr
public boolean isZero()
0
in symbolic or numeric
mode.isZero
in interface IExpr
isZero
in interface ISignedNumber
public IInteger round()
ISignedNumber
IInteger
to the argument. The result is rounded to an integer by adding 1/2 and taking the
floor of the result.ArithmeticException
if a numeric value cannot be represented by an long
type.round
in interface ISignedNumber
public int sign()
ISignedNumber
sign
in interface ISignedNumber
public int complexSign()
complexSign
in interface INumber
this == 0
; +1 for
real(this) > 0
or
( real(this)==0 && imaginary(this) > 0 )
;
-1 for real(this) < 0 || ( real(this) == 0 &&
imaginary(this) < 0 )
public IInteger ceilFraction()
IInteger
value that is not less than this
and is equal to a
mathematical integer. This method raises ArithmeticException
if a
numeric value cannot be represented by an long
type.ceilFraction
in interface INumber
IInteger
value that is not less than this
and is equal to a
mathematical integer.public IInteger floorFraction()
IInteger
value that is not greater than this
and is equal to a
mathematical integer. ArithmeticException
if a numeric value cannot
be represented by an long
type.floorFraction
in interface INumber
IInteger
value that is not greater than this
and is equal to
a mathematical integer.public int compareTo(IExpr expr)
public boolean isLessThan(ISignedNumber that)
ISignedNumber
this
signed number is less than
that signed number..isLessThan
in interface ISignedNumber
this < that
public boolean isGreaterThan(ISignedNumber that)
ISignedNumber
this
signed number is greater than
that signed number..isGreaterThan
in interface ISignedNumber
this > that
public ISymbol head()
ExprImpl
IAST
get the first element
(offset 0) of the IAST
list (i.e. get(0) ).public java.lang.String toString()
toString
in class java.lang.Object
public <T> T accept(IVisitor<T> visitor)
public boolean accept(IVisitorBoolean visitor)
boolean
public int accept(IVisitorInt visitor)
int
public long accept(IVisitorLong visitor)
IExpr
long
public ISignedNumber getIm()
public ISignedNumber getRe()
public ApfloatNum apfloatNumValue(long precision)
ISignedNumber
Apfloat
number wrapped into an ApfloatNum
object.apfloatNumValue
in interface ISignedNumber
precision
- set the precision of the resulting ApfloatNumpublic Num numValue()
ISignedNumber
Num
object.numValue
in interface ISignedNumber
public org.apfloat.Apcomplex apcomplexValue(long precision)
public ApcomplexNum apcomplexNumValue(long precision)
INumber
Apcomplex
number wrapped into an
ApcomplexNum
object.apcomplexNumValue
in interface INumber
precision
- set the precision of the resulting ApcomplexNumpublic ComplexNum complexNumValue()
INumber
ComplexNum
number bject.complexNumValue
in interface INumber
public double getImaginary()
INumber
getImaginary
in interface INumber