Class FloatingPoint
- java.lang.Object
-
- java.lang.Number
-
- org.jscience.mathematics.number.Number<FloatingPoint>
-
- org.jscience.mathematics.number.FloatingPoint
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Comparable<FloatingPoint>,javolution.lang.Immutable,javolution.lang.Realtime,javolution.lang.ValueType,javolution.xml.XMLSerializable,Field<FloatingPoint>,GroupAdditive<FloatingPoint>,GroupMultiplicative<FloatingPoint>,Ring<FloatingPoint>,Structure<FloatingPoint>
public final class FloatingPoint extends Number<FloatingPoint> implements Field<FloatingPoint>
This class represents a floating point number of arbitrary precision. A floating point number consists of a
significandand a decimalexponent: (significand · 10exponent).Unlike
Realnumbers, no calculation error is performed on floating point instances but the number of digits used during calculations can be specified (seesetDigits(int)). The largest the number of digits, the smallest the numeric error. For example:[code] FloatingPoint two = FloatingPoint.valueOf(2); FloatingPoint.setDigits(30); // 30 digits calculations. System.out.println(two.sqrt()); > 0.141421356237309504880168872420E1 [/code]Instances of this class are immutable and can be used to find accurate solutions to linear equations with the
Matrixclass.- Version:
- 4.1, June 8, 2007
- Author:
- Jean-Marie Dautelle
- See Also:
- Wikipedia: Floating point, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static FloatingPointNaNThe Not-a-Number instance (unique).static FloatingPointONEThe floating point instance representing the multiplicative identity.static FloatingPointZEROThe floating point instance representing the additive identity.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description FloatingPointabs()Returns the absolute value of this floating point number.intcompareTo(FloatingPoint that)Compares two floating point number numerically.FloatingPointcopy()Returns a copy of this numberallocatedby the calling thread (possibly on the stack).FloatingPointdivide(FloatingPoint that)Returns this floating point number divided by the one specified.doubledoubleValue()Returns the value of this floating point number as adouble.booleanequals(java.lang.Object that)Compares this floating point number against the specified object.static intgetDigits()Returns thelocalnumber of digits used during calculations (default 20 digits).intgetExponent()Returns the decimal exponent.LargeIntegergetSignificand()Returns the significand value.inthashCode()Returns the hash code for this floating point number.FloatingPointinverse()Returns the inverse of this floating point number.booleanisLargerThan(FloatingPoint that)Compares the absolute value of two FloatingPoint numbers.booleanisNaN()Indicates if this floating point is Not-a-Number.booleanisNegative()Indicates if this rational number is less than zero.booleanisPositive()Indicates if this floating point number is greater than zero.booleanisZero()Indicates if this floating point number is equal to zero.longlongValue()Returns the value of this floating point number as along.FloatingPointminus(FloatingPoint that)Returns the difference between this FloatingPoint number and the one specified.FloatingPointopposite()Returns the opposite of this floating point number.FloatingPointplus(FloatingPoint that)Returns the sum of this floating point number with the one specified.LargeIntegerround()Returns the closest integer to this floating point number.static voidsetDigits(int digits)Sets thelocalnumber of digits to be used during calculations.FloatingPointsqrt()Returns the square root of this floating point number.FloatingPointtimes(long multiplier)Returns the product of this floating point number with the specifiedlongmultiplier.FloatingPointtimes(FloatingPoint that)Returns the product of this floating point number with the one specified.javolution.text.TexttoText()Returns the decimal text representation of this number.static FloatingPointvalueOf(double doubleValue)Returns the floating point number for the specifieddoublevalue (convenience method).static FloatingPointvalueOf(long longValue)Returns the floating point number for the specifiedlongvalue (convenience method).static FloatingPointvalueOf(long significand, int exponent)Returns the floating point number for the specifiedlongsignificand and power of two exponent (convenience method).static FloatingPointvalueOf(java.lang.CharSequence chars)Returns the floating point number for the specified character sequence.static FloatingPointvalueOf(LargeInteger significand, int exponent)Returns the floating point number for the specifiedLargeIntegersignificand and power of two exponent.-
Methods inherited from class org.jscience.mathematics.number.Number
byteValue, floatValue, intValue, isGreaterThan, isLessThan, pow, shortValue, toString
-
-
-
-
Field Detail
-
ZERO
public static final FloatingPoint ZERO
The floating point instance representing the additive identity.
-
ONE
public static final FloatingPoint ONE
The floating point instance representing the multiplicative identity.
-
NaN
public static final FloatingPoint NaN
The Not-a-Number instance (unique).
-
-
Method Detail
-
valueOf
public static FloatingPoint valueOf(LargeInteger significand, int exponent)
Returns the floating point number for the specifiedLargeIntegersignificand and power of two exponent.- Parameters:
significand- the significand value.exponent- the power of two exponent.- Returns:
(significand · 2exponent
-
valueOf
public static FloatingPoint valueOf(long significand, int exponent)
Returns the floating point number for the specifiedlongsignificand and power of two exponent (convenience method).- Parameters:
significand- the significand value.exponent- the power of two exponent.- Returns:
(significand · 2exponent
-
valueOf
public static FloatingPoint valueOf(long longValue)
Returns the floating point number for the specifiedlongvalue (convenience method).- Parameters:
longValue- thelongvalue.- Returns:
FloatingPoint.valueOf(longValue, 0)
-
valueOf
public static FloatingPoint valueOf(double doubleValue)
Returns the floating point number for the specifieddoublevalue (convenience method).- Parameters:
doubleValue- thedoublevalue.- Returns:
FloatingPoint.valueOf(longValue, 0)
-
valueOf
public static FloatingPoint valueOf(java.lang.CharSequence chars)
Returns the floating point number for the specified character sequence. The number of digits- Parameters:
chars- the character sequence.- Returns:
- the corresponding FloatingPoint number.
-
getDigits
public static int getDigits()
Returns thelocalnumber of digits used during calculations (default 20 digits).- Returns:
- the number of digits.
-
setDigits
public static void setDigits(int digits)
Sets thelocalnumber of digits to be used during calculations.- Parameters:
digits- the number of digits.- Throws:
java.lang.IllegalArgumentException- ifdigits <= 0
-
getSignificand
public LargeInteger getSignificand()
Returns the significand value.- Returns:
- this floating point significand.
-
getExponent
public int getExponent()
Returns the decimal exponent.- Returns:
- this floating point decimal exponent.
-
round
public LargeInteger round()
Returns the closest integer to this floating point number.- Returns:
- this floating point rounded to the nearest integer.
-
opposite
public FloatingPoint opposite()
Returns the opposite of this floating point number.- Specified by:
oppositein interfaceGroupAdditive<FloatingPoint>- Returns:
-this.
-
plus
public FloatingPoint plus(FloatingPoint that)
Returns the sum of this floating point number with the one specified.- Specified by:
plusin interfaceGroupAdditive<FloatingPoint>- Parameters:
that- the floating point number to be added.- Returns:
this + that.
-
minus
public FloatingPoint minus(FloatingPoint that)
Returns the difference between this FloatingPoint number and the one specified.- Overrides:
minusin classNumber<FloatingPoint>- Parameters:
that- the floating point number to be subtracted.- Returns:
this - that.
-
times
public FloatingPoint times(long multiplier)
Returns the product of this floating point number with the specifiedlongmultiplier.- Parameters:
multiplier- thelongmultiplier.- Returns:
this · multiplier.
-
times
public FloatingPoint times(FloatingPoint that)
Returns the product of this floating point number with the one specified.- Specified by:
timesin interfaceGroupMultiplicative<FloatingPoint>- Specified by:
timesin interfaceRing<FloatingPoint>- Parameters:
that- the floating point number multiplier.- Returns:
this · that.
-
inverse
public FloatingPoint inverse()
Returns the inverse of this floating point number.- Specified by:
inversein interfaceGroupMultiplicative<FloatingPoint>- Returns:
1 / this.- Throws:
java.lang.ArithmeticException- ifdividend.isZero()
-
divide
public FloatingPoint divide(FloatingPoint that)
Returns this floating point number divided by the one specified.- Parameters:
that- the FloatingPoint number divisor.- Returns:
this / that.- Throws:
java.lang.ArithmeticException- ifthat.equals(ZERO)
-
abs
public FloatingPoint abs()
Returns the absolute value of this floating point number.- Returns:
|this|.
-
sqrt
public FloatingPoint sqrt()
Returns the square root of this floating point number.- Returns:
- the positive square root of this floating point number.
-
isZero
public boolean isZero()
Indicates if this floating point number is equal to zero.- Returns:
this == 0
-
isPositive
public boolean isPositive()
Indicates if this floating point number is greater than zero.- Returns:
this > 0
-
isNegative
public boolean isNegative()
Indicates if this rational number is less than zero.- Returns:
this < 0
-
isNaN
public boolean isNaN()
Indicates if this floating point is Not-a-Number.- Returns:
trueif this number has unbounded value;falseotherwise.
-
isLargerThan
public boolean isLargerThan(FloatingPoint that)
Compares the absolute value of two FloatingPoint numbers.- Specified by:
isLargerThanin classNumber<FloatingPoint>- Parameters:
that- the FloatingPoint number to be compared with.- Returns:
|this| > |that|
-
toText
public javolution.text.Text toText()
Returns the decimal text representation of this number.- Specified by:
toTextin interfacejavolution.lang.Realtime- Specified by:
toTextin classNumber<FloatingPoint>- Returns:
- the text representation of this number.
-
equals
public boolean equals(java.lang.Object that)
Compares this floating point number against the specified object.- Specified by:
equalsin classNumber<FloatingPoint>- Parameters:
that- the object to compare with.- Returns:
trueif the objects are the same;falseotherwise.
-
hashCode
public int hashCode()
Returns the hash code for this floating point number.- Specified by:
hashCodein classNumber<FloatingPoint>- Returns:
- the hash code value.
-
longValue
public long longValue()
Returns the value of this floating point number as along.- Specified by:
longValuein classNumber<FloatingPoint>- Returns:
- the numeric value represented by this floating point
after conversion to type
long.
-
doubleValue
public double doubleValue()
Returns the value of this floating point number as adouble.- Specified by:
doubleValuein classNumber<FloatingPoint>- Returns:
- the numeric value represented by this FloatingPoint after conversion
to type
double.
-
compareTo
public int compareTo(FloatingPoint that)
Compares two floating point number numerically.- Specified by:
compareToin interfacejava.lang.Comparable<FloatingPoint>- Specified by:
compareToin classNumber<FloatingPoint>- Parameters:
that- the floating point number to compare with.- Returns:
- -1, 0 or 1 as this FloatingPoint number is numerically less than,
equal to, or greater than
that.
-
copy
public FloatingPoint copy()
Description copied from class:NumberReturns a copy of this numberallocatedby the calling thread (possibly on the stack).- Specified by:
copyin interfacejavolution.lang.ValueType- Specified by:
copyin classNumber<FloatingPoint>- Returns:
- an identical and independant copy of this number.
-
-