

PREV PACKAGE NEXT PACKAGE  FRAMES NO FRAMES 
See:
Description
Interface Summary  

UnivariateDfpFunction  An interface representing a univariate Dfp function. 
Class Summary  

BracketingNthOrderBrentSolverDFP  This class implements a modification of the Brent algorithm. 
Dfp  Decimal floating point library for Java 
DfpDec  Subclass of Dfp which hides the radix10000 artifacts of the superclass. 
DfpField  Field for Decimal floating point instances. 
DfpMath  Mathematical routines for use with Dfp . 
Enum Summary  

DfpField.RoundingMode  Enumerate for rounding modes. 
Decimal floating point library for Java
Another floating point class. This one is built using radix 10000 which is 10^{4}, so its almost decimal.
The design goals here are:
Trade offs:
Numbers are represented in the following form:
n = sign × mant × (radix)^{exp};where sign is ±1, mantissa represents a fractional number between zero and one. mant[0] is the least significant digit. exp is in the range of 32767 to 32768
IEEE 8541987 Notes and differences
IEEE 854 requires the radix to be either 2 or 10. The radix here is 10000, so that requirement is not met, but it is possible that a subclassed can be made to make it behave as a radix 10 number. It is my opinion that if it looks and behaves as a radix 10 number then it is one and that requirement would be met.
The radix of 10000 was chosen because it should be faster to operate on 4 decimal digits at once instead of one at a time. Radix 10 behavior can be realized by add an additional rounding step to ensure that the number of decimal digits represented is constant.
The IEEE standard specifically leaves out internal data encoding, so it is reasonable to conclude that such a subclass of this radix 10000 system is merely an encoding of a radix 10 system.
IEEE 854 also specifies the existence of "subnormal" numbers. This class does not contain any such entities. The most significant radix 10000 digit is always nonzero. Instead, we support "gradual underflow" by raising the underflow flag for numbers less with exponent less than expMin, but don't flush to zero until the exponent reaches MIN_EXPdigits. Thus the smallest number we can represent would be: 1E((MIN_EXPdigits1)∗4), eg, for digits=5, MIN_EXP=32767, that would be 1e131092.
IEEE 854 defines that the implied radix point lies just to the right of the most significant digit and to the left of the remaining digits. This implementation puts the implied radix point to the left of all digits including the most significant one. The most significant digit here is the one just to the right of the radix point. This is a fine detail and is really only a matter of definition. Any side effects of this can be rendered invisible by a subclass.


PREV PACKAGE NEXT PACKAGE  FRAMES NO FRAMES 