commons-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From l..@apache.org
Subject svn commit: r951633 [46/49] - in /websites/production/commons/content/proper/commons-math: xref-test/ xref-test/org/apache/commons/math3/ xref-test/org/apache/commons/math3/analysis/ xref-test/org/apache/commons/math3/analysis/differentiation/ xref-tes...
Date Sun, 17 May 2015 17:05:54 GMT
Modified: websites/production/commons/content/proper/commons-math/xref/org/apache/commons/math3/util/FastMath.html
==============================================================================
--- websites/production/commons/content/proper/commons-math/xref/org/apache/commons/math3/util/FastMath.html (original)
+++ websites/production/commons/content/proper/commons-math/xref/org/apache/commons/math3/util/FastMath.html Sun May 17 17:05:50 2015
@@ -1470,616 +1470,616 @@
 <a class="jxr_linenumber" name="L1462" href="#L1462">1462</a> 
 <a class="jxr_linenumber" name="L1463" href="#L1463">1463</a>         <strong class="jxr_keyword">if</strong> (y == 0.0) {
 <a class="jxr_linenumber" name="L1464" href="#L1464">1464</a>             <strong class="jxr_keyword">return</strong> 1.0;
-<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a>         }
-<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a> 
-<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a>         <strong class="jxr_keyword">if</strong> (x != x) { <em class="jxr_comment">// X is NaN</em>
-<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a>             <strong class="jxr_keyword">return</strong> x;
-<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a>         }
-<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a> 
-<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a> 
-<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a>         <strong class="jxr_keyword">if</strong> (x == 0) {
-<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a>             <strong class="jxr_keyword">long</strong> bits = Double.doubleToRawLongBits(x);
-<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a>             <strong class="jxr_keyword">if</strong> ((bits &amp; 0x8000000000000000L) != 0) {
-<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a>                 <em class="jxr_comment">// -zero</em>
-<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a>                 <strong class="jxr_keyword">long</strong> yi = (<strong class="jxr_keyword">long</strong>) y;
-<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a> 
-<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a>                 <strong class="jxr_keyword">if</strong> (y &lt; 0 &amp;&amp; y == yi &amp;&amp; (yi &amp; 1) == 1) {
-<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a>                     <strong class="jxr_keyword">return</strong> Double.NEGATIVE_INFINITY;
-<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a>                 }
-<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a> 
-<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a>                 <strong class="jxr_keyword">if</strong> (y &gt; 0 &amp;&amp; y == yi &amp;&amp; (yi &amp; 1) == 1) {
-<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a>                     <strong class="jxr_keyword">return</strong> -0.0;
-<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a>                 }
-<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a>             }
-<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a> 
-<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a>             <strong class="jxr_keyword">if</strong> (y &lt; 0) {
-<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a>                 <strong class="jxr_keyword">return</strong> Double.POSITIVE_INFINITY;
+<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (x != x) { <em class="jxr_comment">// X is NaN</em>
+<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a>             <strong class="jxr_keyword">return</strong> x;
+<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (y != y) { <em class="jxr_comment">// y is NaN</em>
+<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a>             <strong class="jxr_keyword">return</strong> y;
+<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (x == 0) {
+<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a>             <strong class="jxr_keyword">long</strong> bits = Double.doubleToRawLongBits(x);
+<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a>             <strong class="jxr_keyword">if</strong> ((bits &amp; 0x8000000000000000L) != 0) {
+<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a>                 <em class="jxr_comment">// -zero</em>
+<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a>                 <strong class="jxr_keyword">long</strong> yi = (<strong class="jxr_keyword">long</strong>) y;
+<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a> 
+<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a>                 <strong class="jxr_keyword">if</strong> (y &lt; 0 &amp;&amp; y == yi &amp;&amp; (yi &amp; 1) == 1) {
+<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a>                     <strong class="jxr_keyword">return</strong> Double.NEGATIVE_INFINITY;
+<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a>                 }
+<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a> 
+<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a>                 <strong class="jxr_keyword">if</strong> (y &gt; 0 &amp;&amp; y == yi &amp;&amp; (yi &amp; 1) == 1) {
+<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a>                     <strong class="jxr_keyword">return</strong> -0.0;
+<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a>                 }
+<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a>             }
+<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a> 
+<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a>             <strong class="jxr_keyword">if</strong> (y &lt; 0) {
+<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a>                 <strong class="jxr_keyword">return</strong> Double.POSITIVE_INFINITY;
+<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a>             }
+<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a>             <strong class="jxr_keyword">if</strong> (y &gt; 0) {
+<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a>                 <strong class="jxr_keyword">return</strong> 0.0;
 <a class="jxr_linenumber" name="L1489" href="#L1489">1489</a>             }
-<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a>             <strong class="jxr_keyword">if</strong> (y &gt; 0) {
-<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a>                 <strong class="jxr_keyword">return</strong> 0.0;
-<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a>             }
-<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a> 
-<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a>             <strong class="jxr_keyword">return</strong> Double.NaN;
-<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a>         }
-<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a> 
-<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a>         <strong class="jxr_keyword">if</strong> (x == Double.POSITIVE_INFINITY) {
-<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a>             <strong class="jxr_keyword">if</strong> (y != y) { <em class="jxr_comment">// y is NaN</em>
-<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a>                 <strong class="jxr_keyword">return</strong> y;
-<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a>             }
-<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a>             <strong class="jxr_keyword">if</strong> (y &lt; 0.0) {
-<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a>                 <strong class="jxr_keyword">return</strong> 0.0;
-<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a> 
+<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a>             <strong class="jxr_keyword">return</strong> Double.NaN;
+<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (x == Double.POSITIVE_INFINITY) {
+<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a>             <strong class="jxr_keyword">if</strong> (y &lt; 0.0) {
+<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a>                 <strong class="jxr_keyword">return</strong> 0.0;
+<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a>                 <strong class="jxr_keyword">return</strong> Double.POSITIVE_INFINITY;
+<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a>             }
+<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (y == Double.POSITIVE_INFINITY) {
+<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a>             <strong class="jxr_keyword">if</strong> (x * x == 1.0) {
+<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a>                 <strong class="jxr_keyword">return</strong> Double.NaN;
+<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a>             }
+<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a> 
+<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>             <strong class="jxr_keyword">if</strong> (x * x &gt; 1.0) {
 <a class="jxr_linenumber" name="L1504" href="#L1504">1504</a>                 <strong class="jxr_keyword">return</strong> Double.POSITIVE_INFINITY;
-<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>             }
-<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a>         }
-<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a> 
-<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a>         <strong class="jxr_keyword">if</strong> (y == Double.POSITIVE_INFINITY) {
-<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a>             <strong class="jxr_keyword">if</strong> (x * x == 1.0) {
-<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a>                 <strong class="jxr_keyword">return</strong> Double.NaN;
-<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a>             }
-<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a> 
-<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a>             <strong class="jxr_keyword">if</strong> (x * x &gt; 1.0) {
-<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a>                 <strong class="jxr_keyword">return</strong> Double.POSITIVE_INFINITY;
-<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a>                 <strong class="jxr_keyword">return</strong> 0.0;
-<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a>             }
-<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a>         }
-<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a> 
-<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a>         <strong class="jxr_keyword">if</strong> (x == Double.NEGATIVE_INFINITY) {
-<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a>             <strong class="jxr_keyword">if</strong> (y != y) { <em class="jxr_comment">// y is NaN</em>
-<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a>                 <strong class="jxr_keyword">return</strong> y;
-<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a>             }
-<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a> 
-<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a>             <strong class="jxr_keyword">if</strong> (y &lt; 0) {
-<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a>                 <strong class="jxr_keyword">long</strong> yi = (<strong class="jxr_keyword">long</strong>) y;
-<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a>                 <strong class="jxr_keyword">if</strong> (y == yi &amp;&amp; (yi &amp; 1) == 1) {
-<a class="jxr_linenumber" name="L1528" href="#L1528">1528</a>                     <strong class="jxr_keyword">return</strong> -0.0;
-<a class="jxr_linenumber" name="L1529" href="#L1529">1529</a>                 }
+<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a>                 <strong class="jxr_keyword">return</strong> 0.0;
+<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a>             }
+<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (x == Double.NEGATIVE_INFINITY) {
+<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a>             <strong class="jxr_keyword">if</strong> (y &lt; 0) {
+<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a>                 <strong class="jxr_keyword">long</strong> yi = (<strong class="jxr_keyword">long</strong>) y;
+<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a>                 <strong class="jxr_keyword">if</strong> (y == yi &amp;&amp; (yi &amp; 1) == 1) {
+<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a>                     <strong class="jxr_keyword">return</strong> -0.0;
+<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a>                 }
+<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a> 
+<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a>                 <strong class="jxr_keyword">return</strong> 0.0;
+<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a>             }
+<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a> 
+<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a>             <strong class="jxr_keyword">if</strong> (y &gt; 0)  {
+<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a>                 <strong class="jxr_keyword">long</strong> yi = (<strong class="jxr_keyword">long</strong>) y;
+<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a>                 <strong class="jxr_keyword">if</strong> (y == yi &amp;&amp; (yi &amp; 1) == 1) {
+<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a>                     <strong class="jxr_keyword">return</strong> Double.NEGATIVE_INFINITY;
+<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a>                 }
+<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a> 
+<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a>                 <strong class="jxr_keyword">return</strong> Double.POSITIVE_INFINITY;
+<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a>             }
+<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (y == Double.NEGATIVE_INFINITY) {
+<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a>             <strong class="jxr_keyword">if</strong> (x * x == 1.0) {
+<a class="jxr_linenumber" name="L1528" href="#L1528">1528</a>                 <strong class="jxr_keyword">return</strong> Double.NaN;
+<a class="jxr_linenumber" name="L1529" href="#L1529">1529</a>             }
 <a class="jxr_linenumber" name="L1530" href="#L1530">1530</a> 
-<a class="jxr_linenumber" name="L1531" href="#L1531">1531</a>                 <strong class="jxr_keyword">return</strong> 0.0;
-<a class="jxr_linenumber" name="L1532" href="#L1532">1532</a>             }
-<a class="jxr_linenumber" name="L1533" href="#L1533">1533</a> 
-<a class="jxr_linenumber" name="L1534" href="#L1534">1534</a>             <strong class="jxr_keyword">if</strong> (y &gt; 0)  {
-<a class="jxr_linenumber" name="L1535" href="#L1535">1535</a>                 <strong class="jxr_keyword">long</strong> yi = (<strong class="jxr_keyword">long</strong>) y;
-<a class="jxr_linenumber" name="L1536" href="#L1536">1536</a>                 <strong class="jxr_keyword">if</strong> (y == yi &amp;&amp; (yi &amp; 1) == 1) {
-<a class="jxr_linenumber" name="L1537" href="#L1537">1537</a>                     <strong class="jxr_keyword">return</strong> Double.NEGATIVE_INFINITY;
-<a class="jxr_linenumber" name="L1538" href="#L1538">1538</a>                 }
-<a class="jxr_linenumber" name="L1539" href="#L1539">1539</a> 
-<a class="jxr_linenumber" name="L1540" href="#L1540">1540</a>                 <strong class="jxr_keyword">return</strong> Double.POSITIVE_INFINITY;
-<a class="jxr_linenumber" name="L1541" href="#L1541">1541</a>             }
-<a class="jxr_linenumber" name="L1542" href="#L1542">1542</a>         }
-<a class="jxr_linenumber" name="L1543" href="#L1543">1543</a> 
-<a class="jxr_linenumber" name="L1544" href="#L1544">1544</a>         <strong class="jxr_keyword">if</strong> (y == Double.NEGATIVE_INFINITY) {
-<a class="jxr_linenumber" name="L1545" href="#L1545">1545</a> 
-<a class="jxr_linenumber" name="L1546" href="#L1546">1546</a>             <strong class="jxr_keyword">if</strong> (x * x == 1.0) {
-<a class="jxr_linenumber" name="L1547" href="#L1547">1547</a>                 <strong class="jxr_keyword">return</strong> Double.NaN;
-<a class="jxr_linenumber" name="L1548" href="#L1548">1548</a>             }
+<a class="jxr_linenumber" name="L1531" href="#L1531">1531</a>             <strong class="jxr_keyword">if</strong> (x * x &lt; 1.0) {
+<a class="jxr_linenumber" name="L1532" href="#L1532">1532</a>                 <strong class="jxr_keyword">return</strong> Double.POSITIVE_INFINITY;
+<a class="jxr_linenumber" name="L1533" href="#L1533">1533</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1534" href="#L1534">1534</a>                 <strong class="jxr_keyword">return</strong> 0.0;
+<a class="jxr_linenumber" name="L1535" href="#L1535">1535</a>             }
+<a class="jxr_linenumber" name="L1536" href="#L1536">1536</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (x &lt; 0) { <em class="jxr_comment">// Handle special case x&lt;0</em>
+<a class="jxr_linenumber" name="L1537" href="#L1537">1537</a>             <em class="jxr_comment">// y is an even integer in this case</em>
+<a class="jxr_linenumber" name="L1538" href="#L1538">1538</a>             <strong class="jxr_keyword">if</strong> (y &gt;= TWO_POWER_53 || y &lt;= -TWO_POWER_53) {
+<a class="jxr_linenumber" name="L1539" href="#L1539">1539</a>                 <strong class="jxr_keyword">return</strong> pow(-x, y);
+<a class="jxr_linenumber" name="L1540" href="#L1540">1540</a>             }
+<a class="jxr_linenumber" name="L1541" href="#L1541">1541</a> 
+<a class="jxr_linenumber" name="L1542" href="#L1542">1542</a>             <strong class="jxr_keyword">if</strong> (y == (<strong class="jxr_keyword">long</strong>) y) {
+<a class="jxr_linenumber" name="L1543" href="#L1543">1543</a>                 <em class="jxr_comment">// If y is an integer</em>
+<a class="jxr_linenumber" name="L1544" href="#L1544">1544</a>                 <strong class="jxr_keyword">return</strong> ((<strong class="jxr_keyword">long</strong>)y &amp; 1) == 0 ? pow(-x, y) : -pow(-x, y);
+<a class="jxr_linenumber" name="L1545" href="#L1545">1545</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1546" href="#L1546">1546</a>                 <strong class="jxr_keyword">return</strong> Double.NaN;
+<a class="jxr_linenumber" name="L1547" href="#L1547">1547</a>             }
+<a class="jxr_linenumber" name="L1548" href="#L1548">1548</a>         }
 <a class="jxr_linenumber" name="L1549" href="#L1549">1549</a> 
-<a class="jxr_linenumber" name="L1550" href="#L1550">1550</a>             <strong class="jxr_keyword">if</strong> (x * x &lt; 1.0) {
-<a class="jxr_linenumber" name="L1551" href="#L1551">1551</a>                 <strong class="jxr_keyword">return</strong> Double.POSITIVE_INFINITY;
-<a class="jxr_linenumber" name="L1552" href="#L1552">1552</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L1553" href="#L1553">1553</a>                 <strong class="jxr_keyword">return</strong> 0.0;
-<a class="jxr_linenumber" name="L1554" href="#L1554">1554</a>             }
-<a class="jxr_linenumber" name="L1555" href="#L1555">1555</a>         }
-<a class="jxr_linenumber" name="L1556" href="#L1556">1556</a> 
-<a class="jxr_linenumber" name="L1557" href="#L1557">1557</a>         <em class="jxr_comment">/* Handle special case x&lt;0 */</em>
-<a class="jxr_linenumber" name="L1558" href="#L1558">1558</a>         <strong class="jxr_keyword">if</strong> (x &lt; 0) {
-<a class="jxr_linenumber" name="L1559" href="#L1559">1559</a>             <em class="jxr_comment">// y is an even integer in this case</em>
-<a class="jxr_linenumber" name="L1560" href="#L1560">1560</a>             <strong class="jxr_keyword">if</strong> (y &gt;= TWO_POWER_53 || y &lt;= -TWO_POWER_53) {
-<a class="jxr_linenumber" name="L1561" href="#L1561">1561</a>                 <strong class="jxr_keyword">return</strong> pow(-x, y);
-<a class="jxr_linenumber" name="L1562" href="#L1562">1562</a>             }
+<a class="jxr_linenumber" name="L1550" href="#L1550">1550</a>         <em class="jxr_comment">/* Split y into ya and yb such that y = ya+yb */</em>
+<a class="jxr_linenumber" name="L1551" href="#L1551">1551</a>         <strong class="jxr_keyword">double</strong> ya;
+<a class="jxr_linenumber" name="L1552" href="#L1552">1552</a>         <strong class="jxr_keyword">double</strong> yb;
+<a class="jxr_linenumber" name="L1553" href="#L1553">1553</a>         <strong class="jxr_keyword">if</strong> (y &lt; 8e298 &amp;&amp; y &gt; -8e298) {
+<a class="jxr_linenumber" name="L1554" href="#L1554">1554</a>             <strong class="jxr_keyword">double</strong> tmp1 = y * HEX_40000000;
+<a class="jxr_linenumber" name="L1555" href="#L1555">1555</a>             ya = y + tmp1 - tmp1;
+<a class="jxr_linenumber" name="L1556" href="#L1556">1556</a>             yb = y - ya;
+<a class="jxr_linenumber" name="L1557" href="#L1557">1557</a>         } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1558" href="#L1558">1558</a>             <strong class="jxr_keyword">double</strong> tmp1 = y * 9.31322574615478515625E-10;
+<a class="jxr_linenumber" name="L1559" href="#L1559">1559</a>             <strong class="jxr_keyword">double</strong> tmp2 = tmp1 * 9.31322574615478515625E-10;
+<a class="jxr_linenumber" name="L1560" href="#L1560">1560</a>             ya = (tmp1 + tmp2 - tmp1) * HEX_40000000 * HEX_40000000;
+<a class="jxr_linenumber" name="L1561" href="#L1561">1561</a>             yb = y - ya;
+<a class="jxr_linenumber" name="L1562" href="#L1562">1562</a>         }
 <a class="jxr_linenumber" name="L1563" href="#L1563">1563</a> 
-<a class="jxr_linenumber" name="L1564" href="#L1564">1564</a>             <strong class="jxr_keyword">if</strong> (y == (<strong class="jxr_keyword">long</strong>) y) {
-<a class="jxr_linenumber" name="L1565" href="#L1565">1565</a>                 <em class="jxr_comment">// If y is an integer</em>
-<a class="jxr_linenumber" name="L1566" href="#L1566">1566</a>                 <strong class="jxr_keyword">return</strong> ((<strong class="jxr_keyword">long</strong>)y &amp; 1) == 0 ? pow(-x, y) : -pow(-x, y);
-<a class="jxr_linenumber" name="L1567" href="#L1567">1567</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L1568" href="#L1568">1568</a>                 <strong class="jxr_keyword">return</strong> Double.NaN;
-<a class="jxr_linenumber" name="L1569" href="#L1569">1569</a>             }
-<a class="jxr_linenumber" name="L1570" href="#L1570">1570</a>         }
-<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a> 
-<a class="jxr_linenumber" name="L1572" href="#L1572">1572</a>         <em class="jxr_comment">/* Split y into ya and yb such that y = ya+yb */</em>
-<a class="jxr_linenumber" name="L1573" href="#L1573">1573</a>         <strong class="jxr_keyword">double</strong> ya;
-<a class="jxr_linenumber" name="L1574" href="#L1574">1574</a>         <strong class="jxr_keyword">double</strong> yb;
-<a class="jxr_linenumber" name="L1575" href="#L1575">1575</a>         <strong class="jxr_keyword">if</strong> (y &lt; 8e298 &amp;&amp; y &gt; -8e298) {
-<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a>             <strong class="jxr_keyword">double</strong> tmp1 = y * HEX_40000000;
-<a class="jxr_linenumber" name="L1577" href="#L1577">1577</a>             ya = y + tmp1 - tmp1;
-<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a>             yb = y - ya;
-<a class="jxr_linenumber" name="L1579" href="#L1579">1579</a>         } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L1580" href="#L1580">1580</a>             <strong class="jxr_keyword">double</strong> tmp1 = y * 9.31322574615478515625E-10;
-<a class="jxr_linenumber" name="L1581" href="#L1581">1581</a>             <strong class="jxr_keyword">double</strong> tmp2 = tmp1 * 9.31322574615478515625E-10;
-<a class="jxr_linenumber" name="L1582" href="#L1582">1582</a>             ya = (tmp1 + tmp2 - tmp1) * HEX_40000000 * HEX_40000000;
-<a class="jxr_linenumber" name="L1583" href="#L1583">1583</a>             yb = y - ya;
-<a class="jxr_linenumber" name="L1584" href="#L1584">1584</a>         }
+<a class="jxr_linenumber" name="L1564" href="#L1564">1564</a>         <em class="jxr_comment">/* Compute ln(x) */</em>
+<a class="jxr_linenumber" name="L1565" href="#L1565">1565</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> lores = log(x, lns);
+<a class="jxr_linenumber" name="L1566" href="#L1566">1566</a>         <strong class="jxr_keyword">if</strong> (Double.isInfinite(lores)){ <em class="jxr_comment">// don't allow this to be converted to NaN</em>
+<a class="jxr_linenumber" name="L1567" href="#L1567">1567</a>             <strong class="jxr_keyword">return</strong> lores;
+<a class="jxr_linenumber" name="L1568" href="#L1568">1568</a>         }
+<a class="jxr_linenumber" name="L1569" href="#L1569">1569</a> 
+<a class="jxr_linenumber" name="L1570" href="#L1570">1570</a>         <strong class="jxr_keyword">double</strong> lna = lns[0];
+<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a>         <strong class="jxr_keyword">double</strong> lnb = lns[1];
+<a class="jxr_linenumber" name="L1572" href="#L1572">1572</a> 
+<a class="jxr_linenumber" name="L1573" href="#L1573">1573</a>         <em class="jxr_comment">/* resplit lns */</em>
+<a class="jxr_linenumber" name="L1574" href="#L1574">1574</a>         <strong class="jxr_keyword">double</strong> tmp1 = lna * HEX_40000000;
+<a class="jxr_linenumber" name="L1575" href="#L1575">1575</a>         <strong class="jxr_keyword">double</strong> tmp2 = lna + tmp1 - tmp1;
+<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a>         lnb += lna - tmp2;
+<a class="jxr_linenumber" name="L1577" href="#L1577">1577</a>         lna = tmp2;
+<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a> 
+<a class="jxr_linenumber" name="L1579" href="#L1579">1579</a>         <em class="jxr_comment">// y*ln(x) = (aa+ab)</em>
+<a class="jxr_linenumber" name="L1580" href="#L1580">1580</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> aa = lna * ya;
+<a class="jxr_linenumber" name="L1581" href="#L1581">1581</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> ab = lna * yb + lnb * ya + lnb * yb;
+<a class="jxr_linenumber" name="L1582" href="#L1582">1582</a> 
+<a class="jxr_linenumber" name="L1583" href="#L1583">1583</a>         lna = aa+ab;
+<a class="jxr_linenumber" name="L1584" href="#L1584">1584</a>         lnb = -(lna - aa - ab);
 <a class="jxr_linenumber" name="L1585" href="#L1585">1585</a> 
-<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a>         <em class="jxr_comment">/* Compute ln(x) */</em>
-<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> lores = log(x, lns);
-<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a>         <strong class="jxr_keyword">if</strong> (Double.isInfinite(lores)){ <em class="jxr_comment">// don't allow this to be converted to NaN</em>
-<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a>             <strong class="jxr_keyword">return</strong> lores;
-<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a>         }
-<a class="jxr_linenumber" name="L1591" href="#L1591">1591</a> 
-<a class="jxr_linenumber" name="L1592" href="#L1592">1592</a>         <strong class="jxr_keyword">double</strong> lna = lns[0];
-<a class="jxr_linenumber" name="L1593" href="#L1593">1593</a>         <strong class="jxr_keyword">double</strong> lnb = lns[1];
-<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a> 
-<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a>         <em class="jxr_comment">/* resplit lns */</em>
-<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a>         <strong class="jxr_keyword">double</strong> tmp1 = lna * HEX_40000000;
-<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a>         <strong class="jxr_keyword">double</strong> tmp2 = lna + tmp1 - tmp1;
-<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a>         lnb += lna - tmp2;
-<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a>         lna = tmp2;
-<a class="jxr_linenumber" name="L1600" href="#L1600">1600</a> 
-<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a>         <em class="jxr_comment">// y*ln(x) = (aa+ab)</em>
-<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> aa = lna * ya;
-<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> ab = lna * yb + lnb * ya + lnb * yb;
-<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a> 
-<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a>         lna = aa+ab;
-<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a>         lnb = -(lna - aa - ab);
-<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a> 
-<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a>         <strong class="jxr_keyword">double</strong> z = 1.0 / 120.0;
-<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a>         z = z * lnb + (1.0 / 24.0);
-<a class="jxr_linenumber" name="L1610" href="#L1610">1610</a>         z = z * lnb + (1.0 / 6.0);
-<a class="jxr_linenumber" name="L1611" href="#L1611">1611</a>         z = z * lnb + 0.5;
-<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a>         z = z * lnb + 1.0;
-<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a>         z *= lnb;
-<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a> 
-<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> result = exp(lna, z, <strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a>         <em class="jxr_comment">//result = result + result * z;</em>
-<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a>         <strong class="jxr_keyword">return</strong> result;
-<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a>     }
-<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a> 
+<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a>         <strong class="jxr_keyword">double</strong> z = 1.0 / 120.0;
+<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a>         z = z * lnb + (1.0 / 24.0);
+<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a>         z = z * lnb + (1.0 / 6.0);
+<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a>         z = z * lnb + 0.5;
+<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a>         z = z * lnb + 1.0;
+<a class="jxr_linenumber" name="L1591" href="#L1591">1591</a>         z *= lnb;
+<a class="jxr_linenumber" name="L1592" href="#L1592">1592</a> 
+<a class="jxr_linenumber" name="L1593" href="#L1593">1593</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> result = exp(lna, z, <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a>         <em class="jxr_comment">//result = result + result * z;</em>
+<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a>         <strong class="jxr_keyword">return</strong> result;
+<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a>     }
+<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a> 
+<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a> 
+<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1600" href="#L1600">1600</a> <em class="jxr_javadoccomment">     * Raise a double to an int power.</em>
+<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a> <em class="jxr_javadoccomment">     * @param d Number to raise.</em>
+<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a> <em class="jxr_javadoccomment">     * @param e Exponent.</em>
+<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a> <em class="jxr_javadoccomment">     * @return d&lt;sup&gt;e&lt;/sup&gt;</em>
+<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a> <em class="jxr_javadoccomment">     * @since 3.1</em>
+<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">double</strong> pow(<strong class="jxr_keyword">double</strong> d, <strong class="jxr_keyword">int</strong> e) {
+<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a> 
+<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a>         <strong class="jxr_keyword">if</strong> (e == 0) {
+<a class="jxr_linenumber" name="L1610" href="#L1610">1610</a>             <strong class="jxr_keyword">return</strong> 1.0;
+<a class="jxr_linenumber" name="L1611" href="#L1611">1611</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (e &lt; 0) {
+<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a>             e = -e;
+<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a>             d = 1.0 / d;
+<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a>         }
+<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a> 
+<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a>         <em class="jxr_comment">// split d as one 26 bits number and one 27 bits number</em>
+<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a>         <em class="jxr_comment">// beware the following expressions must NOT be simplified, they rely on floating point arithmetic properties</em>
+<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> d1High = Double.longBitsToDouble(Double.doubleToRawLongBits(d) &amp; ((-1L) &lt;&lt; 27));
+<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> d1Low  = d - d1High;
 <a class="jxr_linenumber" name="L1620" href="#L1620">1620</a> 
-<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a> <em class="jxr_javadoccomment">     * Raise a double to an int power.</em>
-<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a> <em class="jxr_javadoccomment">     * @param d Number to raise.</em>
-<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a> <em class="jxr_javadoccomment">     * @param e Exponent.</em>
-<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a> <em class="jxr_javadoccomment">     * @return d&lt;sup&gt;e&lt;/sup&gt;</em>
-<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a> <em class="jxr_javadoccomment">     * @since 3.1</em>
-<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">double</strong> pow(<strong class="jxr_keyword">double</strong> d, <strong class="jxr_keyword">int</strong> e) {
-<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a> 
-<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a>         <strong class="jxr_keyword">if</strong> (e == 0) {
-<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a>             <strong class="jxr_keyword">return</strong> 1.0;
-<a class="jxr_linenumber" name="L1633" href="#L1633">1633</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (e &lt; 0) {
-<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a>             e = -e;
-<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a>             d = 1.0 / d;
-<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a>         }
-<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a> 
-<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a>         <em class="jxr_comment">// split d as two 26 bits numbers</em>
-<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a>         <em class="jxr_comment">// beware the following expressions must NOT be simplified, they rely on floating point arithmetic properties</em>
-<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> splitFactor = 0x8000001;
-<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> cd       = splitFactor * d;
-<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> d1High   = cd - (cd - d);
-<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> d1Low    = d - d1High;
-<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a> 
-<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>         <em class="jxr_comment">// prepare result</em>
-<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>         <strong class="jxr_keyword">double</strong> resultHigh = 1;
-<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>         <strong class="jxr_keyword">double</strong> resultLow  = 0;
-<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a> 
-<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a>         <em class="jxr_comment">// d^(2p)</em>
-<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a>         <strong class="jxr_keyword">double</strong> d2p     = d;
-<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a>         <strong class="jxr_keyword">double</strong> d2pHigh = d1High;
-<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a>         <strong class="jxr_keyword">double</strong> d2pLow  = d1Low;
+<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a>         <em class="jxr_comment">// prepare result</em>
+<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a>         <strong class="jxr_keyword">double</strong> resultHigh = 1;
+<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a>         <strong class="jxr_keyword">double</strong> resultLow  = 0;
+<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a> 
+<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a>         <em class="jxr_comment">// d^(2p)</em>
+<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a>         <strong class="jxr_keyword">double</strong> d2p     = d;
+<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a>         <strong class="jxr_keyword">double</strong> d2pHigh = d1High;
+<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a>         <strong class="jxr_keyword">double</strong> d2pLow  = d1Low;
+<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a> 
+<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a>         <strong class="jxr_keyword">while</strong> (e != 0) {
+<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a> 
+<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a>             <strong class="jxr_keyword">if</strong> ((e &amp; 0x1) != 0) {
+<a class="jxr_linenumber" name="L1633" href="#L1633">1633</a>                 <em class="jxr_comment">// accurate multiplication result = result * d^(2p) using Veltkamp TwoProduct algorithm</em>
+<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a>                 <em class="jxr_comment">// beware the following expressions must NOT be simplified, they rely on floating point arithmetic properties</em>
+<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a>                 <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> tmpHigh = resultHigh * d2p;
+<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a>                 <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> rHH     = Double.longBitsToDouble(Double.doubleToRawLongBits(resultHigh) &amp; ((-1L) &lt;&lt; 27));
+<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a>                 <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> rHL     = resultHigh - rHH;
+<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a>                 <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> tmpLow  = rHL * d2pLow - (((tmpHigh - rHH * d2pHigh) - rHL * d2pHigh) - rHH * d2pLow);
+<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a>                 resultHigh = tmpHigh;
+<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a>                 resultLow  = resultLow * d2p + tmpLow;
+<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a>             }
+<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a> 
+<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a>             <em class="jxr_comment">// accurate squaring d^(2(p+1)) = d^(2p) * d^(2p) using Veltkamp TwoProduct algorithm</em>
+<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a>             <em class="jxr_comment">// beware the following expressions must NOT be simplified, they rely on floating point arithmetic properties</em>
+<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> tmpHigh = d2pHigh * d2p;
+<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> cD2pH   = Double.longBitsToDouble(Double.doubleToRawLongBits(d2pHigh) &amp; ((-1L) &lt;&lt; 27));
+<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> d2pHH   = cD2pH - (cD2pH - d2pHigh);
+<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> d2pHL   = d2pHigh - d2pHH;
+<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> tmpLow  = d2pHL * d2pLow - (((tmpHigh - d2pHH * d2pHigh) - d2pHL * d2pHigh) - d2pHH * d2pLow);
+<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a>             d2pHigh = Double.longBitsToDouble(Double.doubleToRawLongBits(tmpHigh) &amp; ((-1L) &lt;&lt; 27));
+<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a>             d2pLow  = d2pLow * d2p + tmpLow + (tmpHigh - d2pHigh);
+<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a>             d2p     = d2pHigh + d2pLow;
 <a class="jxr_linenumber" name="L1653" href="#L1653">1653</a> 
-<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a>         <strong class="jxr_keyword">while</strong> (e != 0) {
+<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a>             e &gt;&gt;= 1;
 <a class="jxr_linenumber" name="L1655" href="#L1655">1655</a> 
-<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a>             <strong class="jxr_keyword">if</strong> ((e &amp; 0x1) != 0) {
-<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a>                 <em class="jxr_comment">// accurate multiplication result = result * d^(2p) using Veltkamp TwoProduct algorithm</em>
-<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a>                 <em class="jxr_comment">// beware the following expressions must NOT be simplified, they rely on floating point arithmetic properties</em>
-<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a>                 <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> tmpHigh = resultHigh * d2p;
-<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a>                 <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> cRH     = splitFactor * resultHigh;
-<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a>                 <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> rHH     = cRH - (cRH - resultHigh);
-<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a>                 <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> rHL     = resultHigh - rHH;
-<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>                 <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> tmpLow  = rHL * d2pLow - (((tmpHigh - rHH * d2pHigh) - rHL * d2pHigh) - rHH * d2pLow);
-<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a>                 resultHigh = tmpHigh;
-<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>                 resultLow  = resultLow * d2p + tmpLow;
-<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a>             }
-<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a> 
-<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a>             <em class="jxr_comment">// accurate squaring d^(2(p+1)) = d^(2p) * d^(2p) using Veltkamp TwoProduct algorithm</em>
-<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a>             <em class="jxr_comment">// beware the following expressions must NOT be simplified, they rely on floating point arithmetic properties</em>
-<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> tmpHigh = d2pHigh * d2p;
-<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> cD2pH   = splitFactor * d2pHigh;
-<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> d2pHH   = cD2pH - (cD2pH - d2pHigh);
-<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> d2pHL   = d2pHigh - d2pHH;
-<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> tmpLow  = d2pHL * d2pLow - (((tmpHigh - d2pHH * d2pHigh) - d2pHL * d2pHigh) - d2pHH * d2pLow);
-<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> cTmpH   = splitFactor * tmpHigh;
-<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a>             d2pHigh = cTmpH - (cTmpH - tmpHigh);
-<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a>             d2pLow  = d2pLow * d2p + tmpLow + (tmpHigh - d2pHigh);
-<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a>             d2p     = d2pHigh + d2pLow;
-<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a> 
-<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a>             e &gt;&gt;= 1;
-<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a> 
-<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a>         }
+<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a>         }
+<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a> 
+<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> result = resultHigh + resultLow;
+<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a> 
+<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a>         <strong class="jxr_keyword">if</strong> (Double.isNaN(result)) {
+<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a>             <strong class="jxr_keyword">if</strong> (Double.isNaN(d)) {
+<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a>                 <strong class="jxr_keyword">return</strong> Double.NaN;
+<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a>                 <em class="jxr_comment">// some intermediate numbers exceeded capacity,</em>
+<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>                 <em class="jxr_comment">// and the low order bits became NaN (because infinity - infinity = NaN)</em>
+<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a>                 <strong class="jxr_keyword">return</strong> (d &lt; 0 &amp;&amp; (e &amp; 0x1) == 1) ? Double.NEGATIVE_INFINITY : Double.POSITIVE_INFINITY;
+<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a>             }
+<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a>         } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a>             <strong class="jxr_keyword">return</strong> result;
+<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a>         }
+<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a> 
+<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a>     }
+<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a> 
+<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a> <em class="jxr_javadoccomment">     *  Computes sin(x) - x, where |x| &lt; 1/16.</em>
+<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a> <em class="jxr_javadoccomment">     *  Use a Remez polynomial approximation.</em>
+<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a> <em class="jxr_javadoccomment">     *  @param x a number smaller than 1/16</em>
+<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a> <em class="jxr_javadoccomment">     *  @return sin(x) - x</em>
+<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">double</strong> polySine(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> x)
+<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a>     {
+<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a>         <strong class="jxr_keyword">double</strong> x2 = x*x;
 <a class="jxr_linenumber" name="L1683" href="#L1683">1683</a> 
-<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a>         <strong class="jxr_keyword">return</strong> resultHigh + resultLow;
-<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a> 
-<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a>     }
-<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a> 
-<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a> <em class="jxr_javadoccomment">     *  Computes sin(x) - x, where |x| &lt; 1/16.</em>
-<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a> <em class="jxr_javadoccomment">     *  Use a Remez polynomial approximation.</em>
-<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a> <em class="jxr_javadoccomment">     *  @param x a number smaller than 1/16</em>
-<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a> <em class="jxr_javadoccomment">     *  @return sin(x) - x</em>
-<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">double</strong> polySine(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> x)
-<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a>     {
-<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a>         <strong class="jxr_keyword">double</strong> x2 = x*x;
-<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a> 
-<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a>         <strong class="jxr_keyword">double</strong> p = 2.7553817452272217E-6;
-<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a>         p = p * x2 + -1.9841269659586505E-4;
-<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a>         p = p * x2 + 0.008333333333329196;
-<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a>         p = p * x2 + -0.16666666666666666;
-<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a>         <em class="jxr_comment">//p *= x2;</em>
-<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a>         <em class="jxr_comment">//p *= x;</em>
-<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a>         p = p * x2 * x;
-<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a> 
-<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>         <strong class="jxr_keyword">return</strong> p;
-<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a>     }
-<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a> 
-<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1710" href="#L1710">1710</a> <em class="jxr_javadoccomment">     *  Computes cos(x) - 1, where |x| &lt; 1/16.</em>
-<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a> <em class="jxr_javadoccomment">     *  Use a Remez polynomial approximation.</em>
-<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a> <em class="jxr_javadoccomment">     *  @param x a number smaller than 1/16</em>
-<a class="jxr_linenumber" name="L1713" href="#L1713">1713</a> <em class="jxr_javadoccomment">     *  @return cos(x) - 1</em>
-<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">double</strong> polyCosine(<strong class="jxr_keyword">double</strong> x) {
-<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a>         <strong class="jxr_keyword">double</strong> x2 = x*x;
-<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a> 
-<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a>         <strong class="jxr_keyword">double</strong> p = 2.479773539153719E-5;
-<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a>         p = p * x2 + -0.0013888888689039883;
-<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a>         p = p * x2 + 0.041666666666621166;
-<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a>         p = p * x2 + -0.49999999999999994;
-<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a>         p *= x2;
+<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a>         <strong class="jxr_keyword">double</strong> p = 2.7553817452272217E-6;
+<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a>         p = p * x2 + -1.9841269659586505E-4;
+<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a>         p = p * x2 + 0.008333333333329196;
+<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a>         p = p * x2 + -0.16666666666666666;
+<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>         <em class="jxr_comment">//p *= x2;</em>
+<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a>         <em class="jxr_comment">//p *= x;</em>
+<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a>         p = p * x2 * x;
+<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a> 
+<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a>         <strong class="jxr_keyword">return</strong> p;
+<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a>     }
+<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a> 
+<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a> <em class="jxr_javadoccomment">     *  Computes cos(x) - 1, where |x| &lt; 1/16.</em>
+<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a> <em class="jxr_javadoccomment">     *  Use a Remez polynomial approximation.</em>
+<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a> <em class="jxr_javadoccomment">     *  @param x a number smaller than 1/16</em>
+<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a> <em class="jxr_javadoccomment">     *  @return cos(x) - 1</em>
+<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">double</strong> polyCosine(<strong class="jxr_keyword">double</strong> x) {
+<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a>         <strong class="jxr_keyword">double</strong> x2 = x*x;
+<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a> 
+<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a>         <strong class="jxr_keyword">double</strong> p = 2.479773539153719E-5;
+<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a>         p = p * x2 + -0.0013888888689039883;
+<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>         p = p * x2 + 0.041666666666621166;
+<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a>         p = p * x2 + -0.49999999999999994;
+<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a>         p *= x2;
+<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a> 
+<a class="jxr_linenumber" name="L1710" href="#L1710">1710</a>         <strong class="jxr_keyword">return</strong> p;
+<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a>     }
+<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a> 
+<a class="jxr_linenumber" name="L1713" href="#L1713">1713</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a> <em class="jxr_javadoccomment">     *  Compute sine over the first quadrant (0 &lt; x &lt; pi/2).</em>
+<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a> <em class="jxr_javadoccomment">     *  Use combination of table lookup and rational polynomial expansion.</em>
+<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a> <em class="jxr_javadoccomment">     *  @param xa number from which sine is requested</em>
+<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a> <em class="jxr_javadoccomment">     *  @param xb extra bits for x (may be 0.0)</em>
+<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a> <em class="jxr_javadoccomment">     *  @return sin(xa + xb)</em>
+<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">double</strong> sinQ(<strong class="jxr_keyword">double</strong> xa, <strong class="jxr_keyword">double</strong> xb) {
+<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a>         <strong class="jxr_keyword">int</strong> idx = (<strong class="jxr_keyword">int</strong>) ((xa * 8.0) + 0.5);
+<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> epsilon = xa - EIGHTHS[idx]; <em class="jxr_comment">//idx*0.125;</em>
 <a class="jxr_linenumber" name="L1723" href="#L1723">1723</a> 
-<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a>         <strong class="jxr_keyword">return</strong> p;
-<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a>     }
-<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a> 
-<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a> <em class="jxr_javadoccomment">     *  Compute sine over the first quadrant (0 &lt; x &lt; pi/2).</em>
-<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a> <em class="jxr_javadoccomment">     *  Use combination of table lookup and rational polynomial expansion.</em>
-<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a> <em class="jxr_javadoccomment">     *  @param xa number from which sine is requested</em>
-<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a> <em class="jxr_javadoccomment">     *  @param xb extra bits for x (may be 0.0)</em>
-<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a> <em class="jxr_javadoccomment">     *  @return sin(xa + xb)</em>
-<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">double</strong> sinQ(<strong class="jxr_keyword">double</strong> xa, <strong class="jxr_keyword">double</strong> xb) {
-<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a>         <strong class="jxr_keyword">int</strong> idx = (<strong class="jxr_keyword">int</strong>) ((xa * 8.0) + 0.5);
-<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> epsilon = xa - EIGHTHS[idx]; <em class="jxr_comment">//idx*0.125;</em>
-<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a> 
-<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a>         <em class="jxr_comment">// Table lookups</em>
-<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> sintA = SINE_TABLE_A[idx];
-<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> sintB = SINE_TABLE_B[idx];
-<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> costA = COSINE_TABLE_A[idx];
-<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> costB = COSINE_TABLE_B[idx];
-<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a> 
-<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a>         <em class="jxr_comment">// Polynomial eval of sin(epsilon), cos(epsilon)</em>
-<a class="jxr_linenumber" name="L1745" href="#L1745">1745</a>         <strong class="jxr_keyword">double</strong> sinEpsA = epsilon;
-<a class="jxr_linenumber" name="L1746" href="#L1746">1746</a>         <strong class="jxr_keyword">double</strong> sinEpsB = polySine(epsilon);
-<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> cosEpsA = 1.0;
-<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> cosEpsB = polyCosine(epsilon);
-<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a> 
-<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a>         <em class="jxr_comment">// Split epsilon   xa + xb = x</em>
-<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> temp = sinEpsA * HEX_40000000;
-<a class="jxr_linenumber" name="L1752" href="#L1752">1752</a>         <strong class="jxr_keyword">double</strong> temp2 = (sinEpsA + temp) - temp;
-<a class="jxr_linenumber" name="L1753" href="#L1753">1753</a>         sinEpsB +=  sinEpsA - temp2;
-<a class="jxr_linenumber" name="L1754" href="#L1754">1754</a>         sinEpsA = temp2;
-<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a> 
-<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a>         <em class="jxr_comment">/* Compute sin(x) by angle addition formula */</em>
-<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a>         <strong class="jxr_keyword">double</strong> result;
-<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a> 
-<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a>         <em class="jxr_comment">/* Compute the following sum:</em>
-<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a> <em class="jxr_comment">         *</em>
-<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a> <em class="jxr_comment">         * result = sintA + costA*sinEpsA + sintA*cosEpsB + costA*sinEpsB +</em>
-<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a> <em class="jxr_comment">         *          sintB + costB*sinEpsA + sintB*cosEpsB + costB*sinEpsB;</em>
-<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a> <em class="jxr_comment">         *</em>
-<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a> <em class="jxr_comment">         * Ranges of elements</em>
-<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a> <em class="jxr_comment">         *</em>
-<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a> <em class="jxr_comment">         * xxxtA   0            PI/2</em>
-<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a> <em class="jxr_comment">         * xxxtB   -1.5e-9      1.5e-9</em>
-<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a> <em class="jxr_comment">         * sinEpsA -0.0625      0.0625</em>
-<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a> <em class="jxr_comment">         * sinEpsB -6e-11       6e-11</em>
-<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a> <em class="jxr_comment">         * cosEpsA  1.0</em>
-<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a> <em class="jxr_comment">         * cosEpsB  0           -0.0625</em>
-<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a> <em class="jxr_comment">         *</em>
-<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a> <em class="jxr_comment">         */</em>
+<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a>         <em class="jxr_comment">// Table lookups</em>
+<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> sintA = SINE_TABLE_A[idx];
+<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> sintB = SINE_TABLE_B[idx];
+<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> costA = COSINE_TABLE_A[idx];
+<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> costB = COSINE_TABLE_B[idx];
+<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a> 
+<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a>         <em class="jxr_comment">// Polynomial eval of sin(epsilon), cos(epsilon)</em>
+<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a>         <strong class="jxr_keyword">double</strong> sinEpsA = epsilon;
+<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a>         <strong class="jxr_keyword">double</strong> sinEpsB = polySine(epsilon);
+<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> cosEpsA = 1.0;
+<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> cosEpsB = polyCosine(epsilon);
+<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a> 
+<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a>         <em class="jxr_comment">// Split epsilon   xa + xb = x</em>
+<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> temp = sinEpsA * HEX_40000000;
+<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a>         <strong class="jxr_keyword">double</strong> temp2 = (sinEpsA + temp) - temp;
+<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a>         sinEpsB +=  sinEpsA - temp2;
+<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a>         sinEpsA = temp2;
+<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a> 
+<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a>         <em class="jxr_comment">/* Compute sin(x) by angle addition formula */</em>
+<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a>         <strong class="jxr_keyword">double</strong> result;
+<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a> 
+<a class="jxr_linenumber" name="L1745" href="#L1745">1745</a>         <em class="jxr_comment">/* Compute the following sum:</em>
+<a class="jxr_linenumber" name="L1746" href="#L1746">1746</a> <em class="jxr_comment">         *</em>
+<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a> <em class="jxr_comment">         * result = sintA + costA*sinEpsA + sintA*cosEpsB + costA*sinEpsB +</em>
+<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a> <em class="jxr_comment">         *          sintB + costB*sinEpsA + sintB*cosEpsB + costB*sinEpsB;</em>
+<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a> <em class="jxr_comment">         *</em>
+<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a> <em class="jxr_comment">         * Ranges of elements</em>
+<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a> <em class="jxr_comment">         *</em>
+<a class="jxr_linenumber" name="L1752" href="#L1752">1752</a> <em class="jxr_comment">         * xxxtA   0            PI/2</em>
+<a class="jxr_linenumber" name="L1753" href="#L1753">1753</a> <em class="jxr_comment">         * xxxtB   -1.5e-9      1.5e-9</em>
+<a class="jxr_linenumber" name="L1754" href="#L1754">1754</a> <em class="jxr_comment">         * sinEpsA -0.0625      0.0625</em>
+<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a> <em class="jxr_comment">         * sinEpsB -6e-11       6e-11</em>
+<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a> <em class="jxr_comment">         * cosEpsA  1.0</em>
+<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a> <em class="jxr_comment">         * cosEpsB  0           -0.0625</em>
+<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a> <em class="jxr_comment">         *</em>
+<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a> <em class="jxr_comment">         */</em>
+<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a> 
+<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a>         <em class="jxr_comment">//result = sintA + costA*sinEpsA + sintA*cosEpsB + costA*sinEpsB +</em>
+<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a>         <em class="jxr_comment">//          sintB + costB*sinEpsA + sintB*cosEpsB + costB*sinEpsB;</em>
+<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a> 
+<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a>         <em class="jxr_comment">//result = sintA + sintA*cosEpsB + sintB + sintB * cosEpsB;</em>
+<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a>         <em class="jxr_comment">//result += costA*sinEpsA + costA*sinEpsB + costB*sinEpsA + costB * sinEpsB;</em>
+<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a>         <strong class="jxr_keyword">double</strong> a = 0;
+<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a>         <strong class="jxr_keyword">double</strong> b = 0;
+<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a> 
+<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a>         <strong class="jxr_keyword">double</strong> t = sintA;
+<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a>         <strong class="jxr_keyword">double</strong> c = a + t;
+<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a>         <strong class="jxr_keyword">double</strong> d = -(c - a - t);
+<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a>         a = c;
+<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a>         b += d;
 <a class="jxr_linenumber" name="L1774" href="#L1774">1774</a> 
-<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a>         <em class="jxr_comment">//result = sintA + costA*sinEpsA + sintA*cosEpsB + costA*sinEpsB +</em>
-<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a>         <em class="jxr_comment">//          sintB + costB*sinEpsA + sintB*cosEpsB + costB*sinEpsB;</em>
-<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a> 
-<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a>         <em class="jxr_comment">//result = sintA + sintA*cosEpsB + sintB + sintB * cosEpsB;</em>
-<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a>         <em class="jxr_comment">//result += costA*sinEpsA + costA*sinEpsB + costB*sinEpsA + costB * sinEpsB;</em>
-<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a>         <strong class="jxr_keyword">double</strong> a = 0;
-<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a>         <strong class="jxr_keyword">double</strong> b = 0;
-<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a> 
-<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a>         <strong class="jxr_keyword">double</strong> t = sintA;
-<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a>         <strong class="jxr_keyword">double</strong> c = a + t;
-<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a>         <strong class="jxr_keyword">double</strong> d = -(c - a - t);
-<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a>         a = c;
-<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a>         b += d;
+<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a>         t = costA * sinEpsA;
+<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a>         c = a + t;
+<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a>         d = -(c - a - t);
+<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a>         a = c;
+<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a>         b += d;
+<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a> 
+<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a>         b = b + sintA * cosEpsB + costA * sinEpsB;
+<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a>         <em class="jxr_comment">/*</em>
+<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a> <em class="jxr_comment">    t = sintA*cosEpsB;</em>
+<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a> <em class="jxr_comment">    c = a + t;</em>
+<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a> <em class="jxr_comment">    d = -(c - a - t);</em>
+<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a> <em class="jxr_comment">    a = c;</em>
+<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a> <em class="jxr_comment">    b = b + d;</em>
 <a class="jxr_linenumber" name="L1788" href="#L1788">1788</a> 
-<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a>         t = costA * sinEpsA;
-<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a>         c = a + t;
-<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a>         d = -(c - a - t);
-<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a>         a = c;
-<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a>         b += d;
-<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a> 
-<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a>         b = b + sintA * cosEpsB + costA * sinEpsB;
-<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a>         <em class="jxr_comment">/*</em>
-<a class="jxr_linenumber" name="L1797" href="#L1797">1797</a> <em class="jxr_comment">    t = sintA*cosEpsB;</em>
-<a class="jxr_linenumber" name="L1798" href="#L1798">1798</a> <em class="jxr_comment">    c = a + t;</em>
-<a class="jxr_linenumber" name="L1799" href="#L1799">1799</a> <em class="jxr_comment">    d = -(c - a - t);</em>
-<a class="jxr_linenumber" name="L1800" href="#L1800">1800</a> <em class="jxr_comment">    a = c;</em>
-<a class="jxr_linenumber" name="L1801" href="#L1801">1801</a> <em class="jxr_comment">    b = b + d;</em>
-<a class="jxr_linenumber" name="L1802" href="#L1802">1802</a> 
-<a class="jxr_linenumber" name="L1803" href="#L1803">1803</a> <em class="jxr_comment">    t = costA*sinEpsB;</em>
-<a class="jxr_linenumber" name="L1804" href="#L1804">1804</a> <em class="jxr_comment">    c = a + t;</em>
-<a class="jxr_linenumber" name="L1805" href="#L1805">1805</a> <em class="jxr_comment">    d = -(c - a - t);</em>
-<a class="jxr_linenumber" name="L1806" href="#L1806">1806</a> <em class="jxr_comment">    a = c;</em>
-<a class="jxr_linenumber" name="L1807" href="#L1807">1807</a> <em class="jxr_comment">    b = b + d;</em>
-<a class="jxr_linenumber" name="L1808" href="#L1808">1808</a> <em class="jxr_comment">         */</em>
+<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a> <em class="jxr_comment">    t = costA*sinEpsB;</em>
+<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a> <em class="jxr_comment">    c = a + t;</em>
+<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a> <em class="jxr_comment">    d = -(c - a - t);</em>
+<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a> <em class="jxr_comment">    a = c;</em>
+<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a> <em class="jxr_comment">    b = b + d;</em>
+<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a> <em class="jxr_comment">         */</em>
+<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a> 
+<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a>         b = b + sintB + costB * sinEpsA + sintB * cosEpsB + costB * sinEpsB;
+<a class="jxr_linenumber" name="L1797" href="#L1797">1797</a>         <em class="jxr_comment">/*</em>
+<a class="jxr_linenumber" name="L1798" href="#L1798">1798</a> <em class="jxr_comment">    t = sintB;</em>
+<a class="jxr_linenumber" name="L1799" href="#L1799">1799</a> <em class="jxr_comment">    c = a + t;</em>
+<a class="jxr_linenumber" name="L1800" href="#L1800">1800</a> <em class="jxr_comment">    d = -(c - a - t);</em>
+<a class="jxr_linenumber" name="L1801" href="#L1801">1801</a> <em class="jxr_comment">    a = c;</em>
+<a class="jxr_linenumber" name="L1802" href="#L1802">1802</a> <em class="jxr_comment">    b = b + d;</em>
+<a class="jxr_linenumber" name="L1803" href="#L1803">1803</a> 
+<a class="jxr_linenumber" name="L1804" href="#L1804">1804</a> <em class="jxr_comment">    t = costB*sinEpsA;</em>
+<a class="jxr_linenumber" name="L1805" href="#L1805">1805</a> <em class="jxr_comment">    c = a + t;</em>
+<a class="jxr_linenumber" name="L1806" href="#L1806">1806</a> <em class="jxr_comment">    d = -(c - a - t);</em>
+<a class="jxr_linenumber" name="L1807" href="#L1807">1807</a> <em class="jxr_comment">    a = c;</em>
+<a class="jxr_linenumber" name="L1808" href="#L1808">1808</a> <em class="jxr_comment">    b = b + d;</em>
 <a class="jxr_linenumber" name="L1809" href="#L1809">1809</a> 
-<a class="jxr_linenumber" name="L1810" href="#L1810">1810</a>         b = b + sintB + costB * sinEpsA + sintB * cosEpsB + costB * sinEpsB;
-<a class="jxr_linenumber" name="L1811" href="#L1811">1811</a>         <em class="jxr_comment">/*</em>
-<a class="jxr_linenumber" name="L1812" href="#L1812">1812</a> <em class="jxr_comment">    t = sintB;</em>
-<a class="jxr_linenumber" name="L1813" href="#L1813">1813</a> <em class="jxr_comment">    c = a + t;</em>
-<a class="jxr_linenumber" name="L1814" href="#L1814">1814</a> <em class="jxr_comment">    d = -(c - a - t);</em>
-<a class="jxr_linenumber" name="L1815" href="#L1815">1815</a> <em class="jxr_comment">    a = c;</em>
-<a class="jxr_linenumber" name="L1816" href="#L1816">1816</a> <em class="jxr_comment">    b = b + d;</em>
-<a class="jxr_linenumber" name="L1817" href="#L1817">1817</a> 
-<a class="jxr_linenumber" name="L1818" href="#L1818">1818</a> <em class="jxr_comment">    t = costB*sinEpsA;</em>
-<a class="jxr_linenumber" name="L1819" href="#L1819">1819</a> <em class="jxr_comment">    c = a + t;</em>
-<a class="jxr_linenumber" name="L1820" href="#L1820">1820</a> <em class="jxr_comment">    d = -(c - a - t);</em>
-<a class="jxr_linenumber" name="L1821" href="#L1821">1821</a> <em class="jxr_comment">    a = c;</em>
-<a class="jxr_linenumber" name="L1822" href="#L1822">1822</a> <em class="jxr_comment">    b = b + d;</em>
-<a class="jxr_linenumber" name="L1823" href="#L1823">1823</a> 
-<a class="jxr_linenumber" name="L1824" href="#L1824">1824</a> <em class="jxr_comment">    t = sintB*cosEpsB;</em>
-<a class="jxr_linenumber" name="L1825" href="#L1825">1825</a> <em class="jxr_comment">    c = a + t;</em>
-<a class="jxr_linenumber" name="L1826" href="#L1826">1826</a> <em class="jxr_comment">    d = -(c - a - t);</em>
-<a class="jxr_linenumber" name="L1827" href="#L1827">1827</a> <em class="jxr_comment">    a = c;</em>
-<a class="jxr_linenumber" name="L1828" href="#L1828">1828</a> <em class="jxr_comment">    b = b + d;</em>
-<a class="jxr_linenumber" name="L1829" href="#L1829">1829</a> 
-<a class="jxr_linenumber" name="L1830" href="#L1830">1830</a> <em class="jxr_comment">    t = costB*sinEpsB;</em>
-<a class="jxr_linenumber" name="L1831" href="#L1831">1831</a> <em class="jxr_comment">    c = a + t;</em>
-<a class="jxr_linenumber" name="L1832" href="#L1832">1832</a> <em class="jxr_comment">    d = -(c - a - t);</em>
-<a class="jxr_linenumber" name="L1833" href="#L1833">1833</a> <em class="jxr_comment">    a = c;</em>
-<a class="jxr_linenumber" name="L1834" href="#L1834">1834</a> <em class="jxr_comment">    b = b + d;</em>
-<a class="jxr_linenumber" name="L1835" href="#L1835">1835</a> <em class="jxr_comment">         */</em>
+<a class="jxr_linenumber" name="L1810" href="#L1810">1810</a> <em class="jxr_comment">    t = sintB*cosEpsB;</em>
+<a class="jxr_linenumber" name="L1811" href="#L1811">1811</a> <em class="jxr_comment">    c = a + t;</em>
+<a class="jxr_linenumber" name="L1812" href="#L1812">1812</a> <em class="jxr_comment">    d = -(c - a - t);</em>
+<a class="jxr_linenumber" name="L1813" href="#L1813">1813</a> <em class="jxr_comment">    a = c;</em>
+<a class="jxr_linenumber" name="L1814" href="#L1814">1814</a> <em class="jxr_comment">    b = b + d;</em>
+<a class="jxr_linenumber" name="L1815" href="#L1815">1815</a> 
+<a class="jxr_linenumber" name="L1816" href="#L1816">1816</a> <em class="jxr_comment">    t = costB*sinEpsB;</em>
+<a class="jxr_linenumber" name="L1817" href="#L1817">1817</a> <em class="jxr_comment">    c = a + t;</em>
+<a class="jxr_linenumber" name="L1818" href="#L1818">1818</a> <em class="jxr_comment">    d = -(c - a - t);</em>
+<a class="jxr_linenumber" name="L1819" href="#L1819">1819</a> <em class="jxr_comment">    a = c;</em>
+<a class="jxr_linenumber" name="L1820" href="#L1820">1820</a> <em class="jxr_comment">    b = b + d;</em>
+<a class="jxr_linenumber" name="L1821" href="#L1821">1821</a> <em class="jxr_comment">         */</em>
+<a class="jxr_linenumber" name="L1822" href="#L1822">1822</a> 
+<a class="jxr_linenumber" name="L1823" href="#L1823">1823</a>         <strong class="jxr_keyword">if</strong> (xb != 0.0) {
+<a class="jxr_linenumber" name="L1824" href="#L1824">1824</a>             t = ((costA + costB) * (cosEpsA + cosEpsB) -
+<a class="jxr_linenumber" name="L1825" href="#L1825">1825</a>                  (sintA + sintB) * (sinEpsA + sinEpsB)) * xb;  <em class="jxr_comment">// approximate cosine*xb</em>
+<a class="jxr_linenumber" name="L1826" href="#L1826">1826</a>             c = a + t;
+<a class="jxr_linenumber" name="L1827" href="#L1827">1827</a>             d = -(c - a - t);
+<a class="jxr_linenumber" name="L1828" href="#L1828">1828</a>             a = c;
+<a class="jxr_linenumber" name="L1829" href="#L1829">1829</a>             b += d;
+<a class="jxr_linenumber" name="L1830" href="#L1830">1830</a>         }
+<a class="jxr_linenumber" name="L1831" href="#L1831">1831</a> 
+<a class="jxr_linenumber" name="L1832" href="#L1832">1832</a>         result = a + b;
+<a class="jxr_linenumber" name="L1833" href="#L1833">1833</a> 
+<a class="jxr_linenumber" name="L1834" href="#L1834">1834</a>         <strong class="jxr_keyword">return</strong> result;
+<a class="jxr_linenumber" name="L1835" href="#L1835">1835</a>     }
 <a class="jxr_linenumber" name="L1836" href="#L1836">1836</a> 
-<a class="jxr_linenumber" name="L1837" href="#L1837">1837</a>         <strong class="jxr_keyword">if</strong> (xb != 0.0) {
-<a class="jxr_linenumber" name="L1838" href="#L1838">1838</a>             t = ((costA + costB) * (cosEpsA + cosEpsB) -
-<a class="jxr_linenumber" name="L1839" href="#L1839">1839</a>                  (sintA + sintB) * (sinEpsA + sinEpsB)) * xb;  <em class="jxr_comment">// approximate cosine*xb</em>
-<a class="jxr_linenumber" name="L1840" href="#L1840">1840</a>             c = a + t;
-<a class="jxr_linenumber" name="L1841" href="#L1841">1841</a>             d = -(c - a - t);
-<a class="jxr_linenumber" name="L1842" href="#L1842">1842</a>             a = c;
-<a class="jxr_linenumber" name="L1843" href="#L1843">1843</a>             b += d;
-<a class="jxr_linenumber" name="L1844" href="#L1844">1844</a>         }
-<a class="jxr_linenumber" name="L1845" href="#L1845">1845</a> 
-<a class="jxr_linenumber" name="L1846" href="#L1846">1846</a>         result = a + b;
+<a class="jxr_linenumber" name="L1837" href="#L1837">1837</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1838" href="#L1838">1838</a> <em class="jxr_javadoccomment">     * Compute cosine in the first quadrant by subtracting input from PI/2 and</em>

[... 4646 lines stripped ...]


Mime
View raw message