Partial Fix #5654 - roojspacker - get it working as a doc tool...
[roojs1] / docs / symbols / src / Roo_util_Math.js.html
1 <html><head><title>../roojs1/Roo/util/Math.js</title><link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">//&lt;script type=&quot;text/javascript&quot;&gt;
2 </span><span class="jsdoc-var">Roo </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">Roo </span><span class="jsdoc-syntax">:  { </span><span class="jsdoc-var">util </span><span class="jsdoc-syntax">: { }};
3
4 </span><span class="jsdoc-comment">/**
5 //+ based on.. Jonas Raoni Soares Silva
6 //@ http://jsfromhell.com/classes/bignumber [rev. #4]
7 **/
8
9
10 /**
11  * @class Roo.util.Math
12  *  based on.. Jonas Raoni Soares Silva
13  *  http://jsfromhell.com/classes/bignumber [rev. #4]
14  * @constructor
15  * @param {Object|Number} number to wrap
16  * @param {number} precision to use when doing calculations
17  * @param {number} rounding type.
18  */
19
20 </span><span class="jsdoc-var">Roo.util.Math </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">num</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">roundType</span><span class="jsdoc-syntax">){
21     </span><span class="jsdoc-var">this.ctor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">num</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">roundType</span><span class="jsdoc-syntax">);
22 };
23
24 </span><span class="jsdoc-var">Roo.util.Math.ROUND_HALF_EVEN </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">Roo.util.Math.ROUND_HALF_DOWN </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">Roo.util.Math.ROUND_HALF_UP </span><span class="jsdoc-syntax">=
25     (</span><span class="jsdoc-var">Roo.util.Math.ROUND_FLOOR </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">Roo.util.Math.ROUND_CEIL </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">Roo.util.Math.ROUND_DOWN 
26     </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">Roo.util.Math.ROUND_UP </span><span class="jsdoc-syntax">= 0) + 1) + 1) + 1) + 1) + 1) + 1;
27     
28 </span><span class="jsdoc-var">Roo.util.Math.defaultPrecision </span><span class="jsdoc-syntax">= 40;
29 </span><span class="jsdoc-var">Roo.util.Math.defaultRoundType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.util.Math.ROUND_HALF_UP</span><span class="jsdoc-syntax">;
30
31     
32 </span><span class="jsdoc-var">Roo.util.Math.prototype </span><span class="jsdoc-syntax">= {
33     </span><span class="jsdoc-var">_s </span><span class="jsdoc-syntax">: 0,
34     </span><span class="jsdoc-var">_f </span><span class="jsdoc-syntax">: 0,
35     </span><span class="jsdoc-var">roundType </span><span class="jsdoc-syntax">: 0,
36     </span><span class="jsdoc-var">precision </span><span class="jsdoc-syntax">: 0,
37     
38     </span><span class="jsdoc-comment">//private
39     </span><span class="jsdoc-var">ctor </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">num</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">roundType</span><span class="jsdoc-syntax">) {
40         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
41         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">num </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">){
42             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
43             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-keyword">in </span><span class="jsdoc-syntax">{</span><span class="jsdoc-var">precision</span><span class="jsdoc-syntax">: 0, </span><span class="jsdoc-var">roundType</span><span class="jsdoc-syntax">: 0, </span><span class="jsdoc-var">_s</span><span class="jsdoc-syntax">: 0, </span><span class="jsdoc-var">_f</span><span class="jsdoc-syntax">: 0}) </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">num</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
44             </span><span class="jsdoc-var">this._d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">num._d.slice</span><span class="jsdoc-syntax">();
45             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
46         }
47         
48         </span><span class="jsdoc-var">this.precision </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">isNaN</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">precision </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.abs</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">precision</span><span class="jsdoc-syntax">)) ? </span><span class="jsdoc-var">Roo.util.Math.defaultPrecision </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">precision</span><span class="jsdoc-syntax">;
49         </span><span class="jsdoc-var">this.roundType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">isNaN</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.abs</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">roundType</span><span class="jsdoc-syntax">)) ? </span><span class="jsdoc-var">Roo.util.Math.defaultRoundType </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">roundType</span><span class="jsdoc-syntax">;
50         
51         </span><span class="jsdoc-var">this._s </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">num </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.charAt</span><span class="jsdoc-syntax">(0) == </span><span class="jsdoc-string">&quot;-&quot;</span><span class="jsdoc-syntax">;
52         </span><span class="jsdoc-var">this._f </span><span class="jsdoc-syntax">= (
53                 (</span><span class="jsdoc-var">num </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">num.replace</span><span class="jsdoc-syntax">(/[^\d.]/g, </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;.&quot;</span><span class="jsdoc-syntax">, 2))[0] = </span><span class="jsdoc-var">num</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/^0+/, </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-string">&quot;0&quot;
54             </span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">;
55         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">num </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this._d </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">num.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-string">&quot;0&quot;</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">))</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">num</span><span class="jsdoc-syntax">[--</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = +</span><span class="jsdoc-var">num</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
56         </span><span class="jsdoc-var">this.round</span><span class="jsdoc-syntax">();
57     },
58 </span><span class="jsdoc-comment">/**
59  * Add number
60  * @param {Object|Number} value to add
61  * @return {Object} The result
62  */
63     </span><span class="jsdoc-var">add </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">num</span><span class="jsdoc-syntax">)
64     {
65         </span><span class="jsdoc-var">num </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">num</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">);
66         
67         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this._s </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">num._s</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">//netagive...
68             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">num._s </span><span class="jsdoc-syntax">^= 1, </span><span class="jsdoc-var">this.subtract</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">num</span><span class="jsdoc-syntax">);
69         }
70         
71         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">), 
72             </span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o._d</span><span class="jsdoc-syntax">, 
73             </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">num._d</span><span class="jsdoc-syntax">, 
74             </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o._f</span><span class="jsdoc-syntax">,
75             </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">num._f</span><span class="jsdoc-syntax">, 
76             </span><span class="jsdoc-var">num </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">la</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">), 
77             </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
78         
79         </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">&amp;&amp; ((</span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">) &gt; 0 ? </span><span class="jsdoc-var">o._zeroes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">, 1) : </span><span class="jsdoc-var">o._zeroes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">, -</span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">, 1));
80         </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">a.length</span><span class="jsdoc-syntax">) == (</span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b.length</span><span class="jsdoc-syntax">) ?
81                 </span><span class="jsdoc-var">a.length </span><span class="jsdoc-syntax">: (
82                     (</span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">) &gt; 0 ? </span><span class="jsdoc-var">o._zeroes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">o._zeroes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">, -</span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">)
83                 )</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">;
84                 
85         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">; 
86             </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[--</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] + </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] + </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">) / 10 &gt;&gt;&gt; 0, 
87             </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] %= 10
88         );
89         </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">&amp;&amp; ++</span><span class="jsdoc-var">num </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">a.unshift</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">);
90         </span><span class="jsdoc-var">o._f </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">num</span><span class="jsdoc-syntax">;
91         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o.round</span><span class="jsdoc-syntax">();
92          
93     },
94     
95 </span><span class="jsdoc-comment">/**
96  * Subtract number
97  * @param {Object|Number} value to subtract
98  * @return {Object} The result
99  */
100     
101     </span><span class="jsdoc-var">subtract </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">){
102         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this._s </span><span class="jsdoc-syntax">!= (</span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">))</span><span class="jsdoc-var">._s</span><span class="jsdoc-syntax">)
103             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">n._s </span><span class="jsdoc-syntax">^= 1, </span><span class="jsdoc-var">this.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">);
104         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.abs</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.compare</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.abs</span><span class="jsdoc-syntax">()) + 1, </span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">a._f</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b._f</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">la</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">;
105         </span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">a._d</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b._d</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">&amp;&amp; ((</span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">) &gt; 0 ? </span><span class="jsdoc-var">o._zeroes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">, 1) : </span><span class="jsdoc-var">o._zeroes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">, -</span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">, 1));
106         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">a.length</span><span class="jsdoc-syntax">) == (</span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b.length</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">a.length </span><span class="jsdoc-syntax">: ((</span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">) &gt; 0 ? </span><span class="jsdoc-var">o._zeroes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">o._zeroes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">, -</span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">))</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;){
107             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[--</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] &lt; </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]){
108                 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[--</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]; </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">] = 9);
109                 --</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] += 10;
110             }
111             </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] - </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
112         }
113         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">|| (</span><span class="jsdoc-var">o._s </span><span class="jsdoc-syntax">^= 1), </span><span class="jsdoc-var">o._f </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o._d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o.round</span><span class="jsdoc-syntax">();
114     },
115     
116     
117 </span><span class="jsdoc-comment">/**
118  * Mulitply number
119  * @param {Object|Number} value to mutiply
120  * @return {Object} The result
121  */    
122     </span><span class="jsdoc-var">multiply </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">)
123     {
124         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">), 
125             </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o._d.length </span><span class="jsdoc-syntax">&gt;= (</span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">))</span><span class="jsdoc-var">._d.length</span><span class="jsdoc-syntax">,
126             </span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">._d</span><span class="jsdoc-syntax">,
127             </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">._d</span><span class="jsdoc-syntax">, 
128             </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">a.length</span><span class="jsdoc-syntax">, 
129             </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b.length</span><span class="jsdoc-syntax">, 
130             </span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(0,</span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">), 
131             </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">;
132             
133         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">;   </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">; 
134                 </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">s.unshift</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">), 
135                 </span><span class="jsdoc-var">x.set</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">)))
136         ) {
137             
138             </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Array</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">- --</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">))</span><span class="jsdoc-var">.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;0&quot;</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// pads 000...
139             </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">la</span><span class="jsdoc-syntax">;
140             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= 0 ; </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[--</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">] * </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">s.unshift</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">% 10), </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">/ 10) &gt;&gt;&gt; 0);
141             
142           </span><span class="jsdoc-comment">//  console.log(s);
143         </span><span class="jsdoc-syntax">}
144         
145        </span><span class="jsdoc-comment">// console.log(o);
146         
147         </span><span class="jsdoc-var">o._s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o._s </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">n._s</span><span class="jsdoc-syntax">;
148         </span><span class="jsdoc-var">o._f </span><span class="jsdoc-syntax">= (
149                     (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">o._f </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">n._f</span><span class="jsdoc-syntax">) &gt;= (</span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">o._d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">x._d</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">) ? 
150                         </span><span class="jsdoc-var">this._zeroes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o._d</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">+ 1, 1)</span><span class="jsdoc-var">.length </span><span class="jsdoc-syntax">: 
151                         </span><span class="jsdoc-var">j
152             </span><span class="jsdoc-syntax">) - </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">; 
153             
154         </span><span class="jsdoc-keyword">return  </span><span class="jsdoc-var">o.round</span><span class="jsdoc-syntax">();
155     },
156     
157     </span><span class="jsdoc-var">divide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">){
158         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">)) == </span><span class="jsdoc-string">&quot;0&quot;</span><span class="jsdoc-syntax">)
159             </span><span class="jsdoc-keyword">throw new </span><span class="jsdoc-var">Error</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;Division by 0&quot;</span><span class="jsdoc-syntax">);
160         </span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;0&quot;</span><span class="jsdoc-syntax">)
161             </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">);
162         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o._d</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n._d</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">a.length </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">o._f</span><span class="jsdoc-syntax">,
163         </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b.length </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">n._f</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">f </span><span class="jsdoc-syntax">= 1, </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">e </span><span class="jsdoc-syntax">= 0;
164         </span><span class="jsdoc-var">r._s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o._s </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">n._s</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r.precision </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">n.precision</span><span class="jsdoc-syntax">),
165         </span><span class="jsdoc-var">r._f </span><span class="jsdoc-syntax">= +</span><span class="jsdoc-var">r._d.pop</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">o._zeroes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Math.abs</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">));
166         </span><span class="jsdoc-var">n._f </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b.length</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b._s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b.round</span><span class="jsdoc-syntax">();
167         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">); </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[0] == </span><span class="jsdoc-string">&quot;0&quot;</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">a.shift</span><span class="jsdoc-syntax">());
168         </span><span class="jsdoc-var">out</span><span class="jsdoc-syntax">:
169         </span><span class="jsdoc-keyword">do</span><span class="jsdoc-syntax">{
170             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;0&quot; </span><span class="jsdoc-syntax">&amp;&amp; (</span><span class="jsdoc-var">n._d </span><span class="jsdoc-syntax">= [], </span><span class="jsdoc-var">n._f </span><span class="jsdoc-syntax">= 0); </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">a.length </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">n.compare</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">) == -1; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">){
171                 (</span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">+ 1 == </span><span class="jsdoc-var">a.length</span><span class="jsdoc-syntax">, (!</span><span class="jsdoc-var">f </span><span class="jsdoc-syntax">&amp;&amp; ++</span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">&gt; 1 || (</span><span class="jsdoc-var">e </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;0&quot; </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] == </span><span class="jsdoc-string">&quot;0&quot;</span><span class="jsdoc-syntax">)))
172                 &amp;&amp; (</span><span class="jsdoc-var">r._f </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">r._d.length </span><span class="jsdoc-syntax">&amp;&amp; ++</span><span class="jsdoc-var">r._f</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r._d.push</span><span class="jsdoc-syntax">(0));
173                 (</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] == </span><span class="jsdoc-string">&quot;0&quot; </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;0&quot;</span><span class="jsdoc-syntax">) || (</span><span class="jsdoc-var">n._d.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]), ++</span><span class="jsdoc-var">n._f</span><span class="jsdoc-syntax">);
174                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
175                     </span><span class="jsdoc-keyword">break </span><span class="jsdoc-var">out</span><span class="jsdoc-syntax">;
176                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">n.compare</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">) == -1 &amp;&amp; (</span><span class="jsdoc-var">r._f </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">r._d.length </span><span class="jsdoc-syntax">&amp;&amp; ++</span><span class="jsdoc-var">r._f</span><span class="jsdoc-syntax">, 1)) || (</span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= 0))
177                     </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r._d.push</span><span class="jsdoc-syntax">(0), </span><span class="jsdoc-var">n._d.push</span><span class="jsdoc-syntax">(0), ++</span><span class="jsdoc-var">n._f</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">n.compare</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">) == -1);
178             }
179             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">n.compare</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">) == -1 &amp;&amp; !(</span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= 0))
180                 </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">r._d.push</span><span class="jsdoc-syntax">(0) : </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= 1, </span><span class="jsdoc-var">n._d.push</span><span class="jsdoc-syntax">(0), ++</span><span class="jsdoc-var">n._f</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">n.compare</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">) == -1);
181             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">n.compare</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">s.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">)) + 1 &amp;&amp; ++</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">s.set</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">));
182             </span><span class="jsdoc-var">n.set</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.subtract</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">)), !</span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">r._f </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">r._d.length </span><span class="jsdoc-syntax">&amp;&amp; ++</span><span class="jsdoc-var">r._f</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r._d.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">);
183         }
184         </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">a.length </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">&quot;0&quot;</span><span class="jsdoc-syntax">) &amp;&amp; (</span><span class="jsdoc-var">r._d.length </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">r._f</span><span class="jsdoc-syntax">) &lt;= </span><span class="jsdoc-var">r.precision</span><span class="jsdoc-syntax">);
185         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">r.round</span><span class="jsdoc-syntax">();
186     },
187         
188 </span><span class="jsdoc-comment">/**
189  * Modulus number
190  * @param {Object|Number} value to modulus by
191  * @return {Object} The result
192  */    
193     
194     </span><span class="jsdoc-var">mod </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">){
195         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.subtract</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.divide</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.intPart</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.multiply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">));
196     },
197     
198 </span><span class="jsdoc-comment">/**
199  * To Power number
200  * @param {Object|Number} value to power by
201  * @return {Object} The result
202  */        
203     </span><span class="jsdoc-var">pow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">){
204         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
205         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">))</span><span class="jsdoc-var">.intPart</span><span class="jsdoc-syntax">()) == 0) </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o.set</span><span class="jsdoc-syntax">(1);
206         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.abs</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">); --</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">o.set</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.multiply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">)));
207         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">&lt; 0 ? </span><span class="jsdoc-var">o.set</span><span class="jsdoc-syntax">((</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(1, </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">))</span><span class="jsdoc-var">.divide</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">)) : </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">;
208     },
209     </span><span class="jsdoc-comment">/**
210  * Set number
211  * @param {Object|Number} value to set object to
212  * @return {Object} This
213  */    
214     
215     </span><span class="jsdoc-var">set </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">)
216     {
217         </span><span class="jsdoc-var">this.ctor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">);
218         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
219     },
220 </span><span class="jsdoc-comment">/**
221  * Compare number
222  * @param {Object|Number} value to compare to
223  * @return {boolean} true if the same
224  */        
225     
226     </span><span class="jsdoc-var">compare </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">){
227         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this._f</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b._f</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= [-1, 1], </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">;
228         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a._s </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">b._s</span><span class="jsdoc-syntax">)
229             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">a._s </span><span class="jsdoc-syntax">? -1 : 1;
230         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">)
231             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">[(</span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">) ^ </span><span class="jsdoc-var">a._s</span><span class="jsdoc-syntax">];
232         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">a._d</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b._d</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= -1, </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">la</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">); ++</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">;)
233             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] != </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">])
234                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">[(</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] &gt; </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]) ^ </span><span class="jsdoc-var">a._s</span><span class="jsdoc-syntax">];
235         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">[(</span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">) ^ </span><span class="jsdoc-var">a._s</span><span class="jsdoc-syntax">] : 0;
236     },
237 </span><span class="jsdoc-comment">/**
238  * negate number 
239  * @return {Object} the result
240  */            
241     </span><span class="jsdoc-var">negate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
242         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">); 
243         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">n._s </span><span class="jsdoc-syntax">^= 1, </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">;
244     },
245 </span><span class="jsdoc-comment">/**
246  * abs number 
247  * @return {Object} the result
248  */                
249     </span><span class="jsdoc-var">abs </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
250         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
251         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">n._s </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">;
252     },
253 </span><span class="jsdoc-comment">/**
254  * integer part of number
255  * @return {Object} the result
256  */        
257     </span><span class="jsdoc-var">intPart </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
258         </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">this._s </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;-&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.precision</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">) + (</span><span class="jsdoc-var">this._d.slice</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">this._f</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-string">&quot;0&quot;</span><span class="jsdoc-syntax">));
259     },
260 </span><span class="jsdoc-comment">/**
261  * value of thenumber
262  * @return {String} the result
263  */        
264     </span><span class="jsdoc-var">valueOf </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
265         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.toString</span><span class="jsdoc-syntax">();
266     },
267 </span><span class="jsdoc-comment">/**
268  * value of the number
269  * @return {String} the result
270  */            
271     </span><span class="jsdoc-var">toString </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
272         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
273         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o._s </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;-&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) + (</span><span class="jsdoc-var">o._d.slice</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">o._f</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-string">&quot;0&quot;</span><span class="jsdoc-syntax">) + (</span><span class="jsdoc-var">o._f </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">o._d.length </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;.&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">o._d.slice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o._f</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
274     },
275 </span><span class="jsdoc-comment">/**
276  * value of the number at a fixed precission
277  * @return {String} the result
278  */                
279     </span><span class="jsdoc-var">toFixed </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">) {
280         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
281         </span><span class="jsdoc-var">n.precision </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">;
282         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n.round</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.toString</span><span class="jsdoc-syntax">();
283         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lr </span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">ret.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.'</span><span class="jsdoc-syntax">);
284         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lr.shift</span><span class="jsdoc-syntax">();
285         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">) {
286             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">;
287         }
288         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lr.length </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">lr</span><span class="jsdoc-syntax">[0] : </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
289         </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">r.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
290             </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">'0'</span><span class="jsdoc-syntax">;
291         }
292         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'.'</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
293         
294     },
295     </span><span class="jsdoc-comment">//private
296     </span><span class="jsdoc-var">_zeroes </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">){
297         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-string">&quot;push&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;unshift&quot;</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">|| 0];
298         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(++</span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">; --</span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">;  </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">](0));
299         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">;
300     },
301     </span><span class="jsdoc-comment">//private    
302     </span><span class="jsdoc-var">round </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
303     {
304         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">m </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.util.Math</span><span class="jsdoc-syntax">;
305         
306         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m._rounding</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// stop recursion..
307         </span><span class="jsdoc-var">m._rounding </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
308         
309         </span><span class="jsdoc-keyword">var   </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.roundType</span><span class="jsdoc-syntax">,
310             </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this._d</span><span class="jsdoc-syntax">, 
311             </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">;
312         </span><span class="jsdoc-comment">//console.log(b.join(','));    
313         </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this._f </span><span class="jsdoc-syntax">&gt; 1 &amp;&amp; !</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[0]) {
314             --</span><span class="jsdoc-var">this._f</span><span class="jsdoc-syntax">;
315             </span><span class="jsdoc-var">b.shift</span><span class="jsdoc-syntax">();
316         }
317         </span><span class="jsdoc-comment">//console.log(b.join(','));    
318         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this._f</span><span class="jsdoc-syntax">, 
319             </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.precision </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">, 
320             </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">];
321             
322             </span><span class="jsdoc-var">b.length </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">b.length </span><span class="jsdoc-syntax">-1]; </span><span class="jsdoc-comment">// condition... 
323          
324             </span><span class="jsdoc-var">b.pop</span><span class="jsdoc-syntax">()
325         );
326             
327          </span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this._s </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;-&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) + (</span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;0.&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this._zeroes</span><span class="jsdoc-syntax">([], </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">- 1)</span><span class="jsdoc-var">.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) + 1;
328         
329        
330          
331         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b.length </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
332         </span><span class="jsdoc-comment">//if(b.length &gt; p &amp;&amp; n){
333             //console.log(&quot;rounding&quot; +n + &quot; Method? &quot; + r);
334             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(
335                 (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">m.ROUND_UP</span><span class="jsdoc-syntax">) ||
336                 (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">m.ROUND_CEIL </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">this._s</span><span class="jsdoc-syntax">) ||
337                 (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">m.ROUND_FLOOR </span><span class="jsdoc-syntax">&amp;&amp;  </span><span class="jsdoc-var">this._s</span><span class="jsdoc-syntax">) ||
338                 (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">m.ROUND_HALF_UP </span><span class="jsdoc-syntax">&amp;&amp;   </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">&gt;= 5) ||
339                 (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">m.ROUND_HALF_DOWN </span><span class="jsdoc-syntax">&amp;&amp;  </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">&gt; 5)  ||
340                 (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">m.ROUND_HALF_EVEN </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">&gt;= 5 &amp;&amp; (</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">- 1] &amp; 1))
341                ) {
342                 </span><span class="jsdoc-comment">//console.log(&quot;add&quot; +x);
343                // this.precision++;
344                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">);
345                 </span><span class="jsdoc-var">this._d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ret._d</span><span class="jsdoc-syntax">;
346                 </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">ret._d</span><span class="jsdoc-syntax">;
347                 </span><span class="jsdoc-comment">//this.precision--;
348             </span><span class="jsdoc-syntax">}
349
350             </span><span class="jsdoc-var">b.splice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b.length </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">);
351         }
352         </span><span class="jsdoc-keyword">return delete </span><span class="jsdoc-var">m._rounding</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
353     }
354 };</span></code></body></html>