| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <!-- NewPage --> |
| <html lang="en"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"> |
| <title>org.apache.commons.math3.dfp (Apache Commons Math 3.3 API)</title> |
| <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> |
| </head> |
| <body> |
| <script type="text/javascript"><!-- |
| if (location.href.indexOf('is-external=true') == -1) { |
| parent.document.title="org.apache.commons.math3.dfp (Apache Commons Math 3.3 API)"; |
| } |
| //--> |
| </script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="topNav"><a name="navbar_top"> |
| <!-- --> |
| </a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../../overview-summary.html">Overview</a></li> |
| <li class="navBarCell1Rev">Package</li> |
| <li>Class</li> |
| <li><a href="package-use.html">Use</a></li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../../help-doc.html">Help</a></li> |
| </ul> |
| <div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div> |
| </div> |
| <div class="subNav"> |
| <ul class="navList"> |
| <li><a href="../../../../../org/apache/commons/math3/complex/package-summary.html">Prev Package</a></li> |
| <li><a href="../../../../../org/apache/commons/math3/distribution/package-summary.html">Next Package</a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../index.html?org/apache/commons/math3/dfp/package-summary.html" target="_top">Frames</a></li> |
| <li><a href="package-summary.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_top"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| </div> |
| <a name="skip-navbar_top"> |
| <!-- --> |
| </a></div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| <div class="header"> |
| <h1 title="Package" class="title">Package org.apache.commons.math3.dfp</h1> |
| <div class="docSummary"> |
| <div class="block">Decimal floating point library for Java</div> |
| </div> |
| <p>See: <a href="#package_description">Description</a></p> |
| </div> |
| <div class="contentContainer"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation"> |
| <caption><span>Interface Summary</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Interface</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tbody> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/commons/math3/dfp/UnivariateDfpFunction.html" title="interface in org.apache.commons.math3.dfp">UnivariateDfpFunction</a></td> |
| <td class="colLast"> |
| <div class="block">An interface representing a univariate <a href="../../../../../org/apache/commons/math3/dfp/Dfp.html" title="class in org.apache.commons.math3.dfp"><code>Dfp</code></a> function.</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </li> |
| <li class="blockList"> |
| <table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation"> |
| <caption><span>Class Summary</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Class</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tbody> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/commons/math3/dfp/BracketingNthOrderBrentSolverDFP.html" title="class in org.apache.commons.math3.dfp">BracketingNthOrderBrentSolverDFP</a></td> |
| <td class="colLast"> |
| <div class="block">This class implements a modification of the <a |
| href="http://mathworld.wolfram.com/BrentsMethod.html"> Brent algorithm</a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/commons/math3/dfp/Dfp.html" title="class in org.apache.commons.math3.dfp">Dfp</a></td> |
| <td class="colLast"> |
| <div class="block">Decimal floating point library for Java</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/commons/math3/dfp/DfpDec.html" title="class in org.apache.commons.math3.dfp">DfpDec</a></td> |
| <td class="colLast"> |
| <div class="block">Subclass of <a href="../../../../../org/apache/commons/math3/dfp/Dfp.html" title="class in org.apache.commons.math3.dfp"><code>Dfp</code></a> which hides the radix-10000 artifacts of the superclass.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/commons/math3/dfp/DfpField.html" title="class in org.apache.commons.math3.dfp">DfpField</a></td> |
| <td class="colLast"> |
| <div class="block">Field for Decimal floating point instances.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/commons/math3/dfp/DfpMath.html" title="class in org.apache.commons.math3.dfp">DfpMath</a></td> |
| <td class="colLast"> |
| <div class="block">Mathematical routines for use with <a href="../../../../../org/apache/commons/math3/dfp/Dfp.html" title="class in org.apache.commons.math3.dfp"><code>Dfp</code></a>.</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </li> |
| <li class="blockList"> |
| <table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation"> |
| <caption><span>Enum Summary</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Enum</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tbody> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/commons/math3/dfp/DfpField.RoundingMode.html" title="enum in org.apache.commons.math3.dfp">DfpField.RoundingMode</a></td> |
| <td class="colLast"> |
| <div class="block">Enumerate for rounding modes.</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </li> |
| </ul> |
| <a name="package_description"> |
| <!-- --> |
| </a> |
| <h2 title="Package org.apache.commons.math3.dfp Description">Package org.apache.commons.math3.dfp Description</h2> |
| <div class="block">Decimal floating point library for Java |
| |
| <p>Another floating point class. This one is built using radix 10000 |
| which is 10<sup>4</sup>, so its almost decimal.</p> |
| |
| <p>The design goals here are: |
| <ol> |
| <li>Decimal math, or close to it</li> |
| <li>Settable precision (but no mix between numbers using different settings)</li> |
| <li>Portability. Code should be keep as portable as possible.</li> |
| <li>Performance</li> |
| <li>Accuracy - Results should always be +/- 1 ULP for basic |
| algebraic operation</li> |
| <li>Comply with IEEE 854-1987 as much as possible. |
| (See IEEE 854-1987 notes below)</li> |
| </ol></p> |
| |
| <p>Trade offs: |
| <ol> |
| <li>Memory foot print. I'm using more memory than necessary to |
| represent numbers to get better performance.</li> |
| <li>Digits are bigger, so rounding is a greater loss. So, if you |
| really need 12 decimal digits, better use 4 base 10000 digits |
| there can be one partially filled.</li> |
| </ol></p> |
| |
| <p>Numbers are represented in the following form: |
| <pre> |
| n = sign × mant × (radix)<sup>exp</sup>;</p> |
| </pre> |
| 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</p> |
| |
| <p>IEEE 854-1987 Notes and differences</p> |
| |
| <p>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.</p> |
| |
| <p>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.</p> |
| |
| <p>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.</p> |
| |
| <p>IEEE 854 also specifies the existence of "sub-normal" numbers. This |
| class does not contain any such entities. The most significant radix |
| 10000 digit is always non-zero. 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_EXP-digits. |
| Thus the smallest number we can represent would be: |
| 1E(-(MIN_EXP-digits-1)∗4), eg, for digits=5, MIN_EXP=-32767, that would |
| be 1e-131092.</p> |
| |
| <p>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.</p></div> |
| </div> |
| <!-- ======= START OF BOTTOM NAVBAR ====== --> |
| <div class="bottomNav"><a name="navbar_bottom"> |
| <!-- --> |
| </a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../../overview-summary.html">Overview</a></li> |
| <li class="navBarCell1Rev">Package</li> |
| <li>Class</li> |
| <li><a href="package-use.html">Use</a></li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../../help-doc.html">Help</a></li> |
| </ul> |
| <div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div> |
| </div> |
| <div class="subNav"> |
| <ul class="navList"> |
| <li><a href="../../../../../org/apache/commons/math3/complex/package-summary.html">Prev Package</a></li> |
| <li><a href="../../../../../org/apache/commons/math3/distribution/package-summary.html">Next Package</a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../index.html?org/apache/commons/math3/dfp/package-summary.html" target="_top">Frames</a></li> |
| <li><a href="package-summary.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_bottom"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| </div> |
| <a name="skip-navbar_bottom"> |
| <!-- --> |
| </a></div> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| <p class="legalCopy"><small>Copyright © 2003–2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p> |
| </body> |
| </html> |