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">//<script type="text/javascript">
3 //+ based on.. Jonas Raoni Soares Silva
4 //@ http://jsfromhell.com/classes/bignumber [rev. #4]
7 </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">: { }};
9 </span><span class="jsdoc-comment">/**
10 * @class Roo.util.Math
11 * based on.. Jonas Raoni Soares Silva
12 * http://jsfromhell.com/classes/bignumber [rev. #4]
14 * @param {Object|Number} number to wrap
15 * @param {number} precision to use when doing calculations
16 * @param {number} rounding type.
19 </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">){
20 </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">);
23 </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">=
24 (</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
25 </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 </span><span class="jsdoc-var">Roo.util.Math.defaultPrecision </span><span class="jsdoc-syntax">= 40;
28 </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">;
31 </span><span class="jsdoc-var">Roo.util.Math.prototype </span><span class="jsdoc-syntax">= {
32 </span><span class="jsdoc-var">_s </span><span class="jsdoc-syntax">: 0,
33 </span><span class="jsdoc-var">_f </span><span class="jsdoc-syntax">: 0,
34 </span><span class="jsdoc-var">roundType </span><span class="jsdoc-syntax">: 0,
35 </span><span class="jsdoc-var">precision </span><span class="jsdoc-syntax">: 0,
37 </span><span class="jsdoc-comment">//private
38 </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">) {
39 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
40 </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">){
41 </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">;
42 </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">];
43 </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">();
44 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
47 </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">;
48 </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 </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">""</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.charAt</span><span class="jsdoc-syntax">(0) == </span><span class="jsdoc-string">"-"</span><span class="jsdoc-syntax">;
51 </span><span class="jsdoc-var">this._f </span><span class="jsdoc-syntax">= (
52 (</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">""</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"."</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">""</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-string">"0"
53 </span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">;
54 </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">""</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-string">"0"</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">""</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">]);
55 </span><span class="jsdoc-var">this.round</span><span class="jsdoc-syntax">();
57 </span><span class="jsdoc-comment">/**
59 * @param {Object|Number} value to add
60 * @return {Object} The result
62 </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 </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 </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...
67 </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">);
70 </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">),
71 </span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o._d</span><span class="jsdoc-syntax">,
72 </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">num._d</span><span class="jsdoc-syntax">,
73 </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o._f</span><span class="jsdoc-syntax">,
74 </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">num._f</span><span class="jsdoc-syntax">,
75 </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">),
76 </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
78 </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">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">) > 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));
79 </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">) ?
80 </span><span class="jsdoc-var">a.length </span><span class="jsdoc-syntax">: (
81 (</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">) > 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">)
82 )</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">;
84 </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">;
85 </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 >>> 0,
86 </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] %= 10
88 </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">&& ++</span><span class="jsdoc-var">num </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">a.unshift</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">);
89 </span><span class="jsdoc-var">o._f </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">num</span><span class="jsdoc-syntax">;
90 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o.round</span><span class="jsdoc-syntax">();
94 </span><span class="jsdoc-comment">/**
96 * @param {Object|Number} value to subtract
97 * @return {Object} The result
100 </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">){
101 </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">)
102 </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">);
103 </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">;
104 </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">&& ((</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">) > 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));
105 </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">) > 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">;){
106 </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">]){
107 </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">&& !</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);
108 --</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 </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 </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">();
116 </span><span class="jsdoc-comment">/**
118 * @param {Object|Number} value to mutiply
119 * @return {Object} The result
121 </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 </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">),
124 </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o._d.length </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">._d.length</span><span class="jsdoc-syntax">,
125 </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">,
126 </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">,
127 </span><span class="jsdoc-var">la </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">a.length</span><span class="jsdoc-syntax">,
128 </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b.length</span><span class="jsdoc-syntax">,
129 </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">),
130 </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 </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">;
133 </span><span class="jsdoc-var">r </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">),
134 </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">""</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">)))
137 </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">"0"</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// pads 000...
138 </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">la</span><span class="jsdoc-syntax">;
139 </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) >>> 0);
141 </span><span class="jsdoc-comment">// console.log(s);
142 </span><span class="jsdoc-syntax">}
144 </span><span class="jsdoc-comment">// console.log(o);
146 </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">;
147 </span><span class="jsdoc-var">o._f </span><span class="jsdoc-syntax">= (
148 (</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">) >= (</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">) ?
149 </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">:
150 </span><span class="jsdoc-var">j
151 </span><span class="jsdoc-syntax">) - </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
153 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o.round</span><span class="jsdoc-syntax">();
156 </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">){
157 </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">"0"</span><span class="jsdoc-syntax">)
158 </span><span class="jsdoc-keyword">throw new </span><span class="jsdoc-var">Error</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"Division by 0"</span><span class="jsdoc-syntax">);
159 </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">"0"</span><span class="jsdoc-syntax">)
160 </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">);
161 </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">,
162 </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;
163 </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">),
164 </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">&& </span><span class="jsdoc-var">o._zeroes</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">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">));
165 </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">();
166 </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">"0"</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">a.shift</span><span class="jsdoc-syntax">());
167 </span><span class="jsdoc-var">out</span><span class="jsdoc-syntax">:
168 </span><span class="jsdoc-keyword">do</span><span class="jsdoc-syntax">{
169 </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">"0" </span><span class="jsdoc-syntax">&& (</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">< </span><span class="jsdoc-var">a.length </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; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">){
170 (</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">&& ++</span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">> 1 || (</span><span class="jsdoc-var">e </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-string">"0" </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-string">"0"</span><span class="jsdoc-syntax">)))
171 && (</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">&& ++</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));
172 (</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">"0" </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"0"</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">);
173 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
174 </span><span class="jsdoc-keyword">break </span><span class="jsdoc-var">out</span><span class="jsdoc-syntax">;
175 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">l </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 && (</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">&& ++</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))
176 </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 </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 && !(</span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= 0))
179 </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);
180 </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 && ++</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">));
181 </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">&& </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">&& ++</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 </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </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">"0"</span><span class="jsdoc-syntax">) && (</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">) <= </span><span class="jsdoc-var">r.precision</span><span class="jsdoc-syntax">);
184 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">r.round</span><span class="jsdoc-syntax">();
187 </span><span class="jsdoc-comment">/**
189 * @param {Object|Number} value to modulus by
190 * @return {Object} The result
193 </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">){
194 </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">));
197 </span><span class="jsdoc-comment">/**
199 * @param {Object|Number} value to power by
200 * @return {Object} The result
202 </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">){
203 </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">;
204 </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);
205 </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">)));
206 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">< 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 </span><span class="jsdoc-comment">/**
210 * @param {Object|Number} value to set object to
211 * @return {Object} This
214 </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 </span><span class="jsdoc-var">this.ctor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">);
217 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
219 </span><span class="jsdoc-comment">/**
221 * @param {Object|Number} value to compare to
222 * @return {boolean} true if the same
225 </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">){
226 </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">;
227 </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">)
228 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">a._s </span><span class="jsdoc-syntax">? -1 : 1;
229 </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">)
230 </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">> </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">) ^ </span><span class="jsdoc-var">a._s</span><span class="jsdoc-syntax">];
231 </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">< </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">;)
232 </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">])
233 </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">] > </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">];
234 </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">> </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 </span><span class="jsdoc-comment">/**
238 * @return {Object} the result
240 </span><span class="jsdoc-var">negate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
241 </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">);
242 </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 </span><span class="jsdoc-comment">/**
246 * @return {Object} the result
248 </span><span class="jsdoc-var">abs </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
249 </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">);
250 </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 </span><span class="jsdoc-comment">/**
253 * integer part of number
254 * @return {Object} the result
256 </span><span class="jsdoc-var">intPart </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
257 </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">"-" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">""</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">""</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-string">"0"</span><span class="jsdoc-syntax">));
259 </span><span class="jsdoc-comment">/**
261 * @return {String} the result
263 </span><span class="jsdoc-var">valueOf </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
264 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.toString</span><span class="jsdoc-syntax">();
266 </span><span class="jsdoc-comment">/**
267 * value of the number
268 * @return {String} the result
270 </span><span class="jsdoc-var">toString </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
271 </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">;
272 </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">"-" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">""</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">""</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-string">"0"</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">"." </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">""</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">);
274 </span><span class="jsdoc-comment">/**
275 * value of the number at a fixed precission
276 * @return {String} the result
278 </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">) {
279 </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">);
280 </span><span class="jsdoc-var">n.precision </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">;
281 </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">();
282 </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">);
283 </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">();
284 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">) {
285 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">;
287 </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">;
288 </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">< </span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
289 </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">'0'</span><span class="jsdoc-syntax">;
291 </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">;
294 </span><span class="jsdoc-comment">//private
295 </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">){
296 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-string">"push"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"unshift"</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">|| 0];
297 </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));
298 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">;
300 </span><span class="jsdoc-comment">//private
301 </span><span class="jsdoc-var">round </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
303 </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 </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..
306 </span><span class="jsdoc-var">m._rounding </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
308 </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">,
309 </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this._d</span><span class="jsdoc-syntax">,
310 </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">;
311 </span><span class="jsdoc-comment">//console.log(b.join(','));
312 </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this._f </span><span class="jsdoc-syntax">> 1 && !</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[0]) {
313 --</span><span class="jsdoc-var">this._f</span><span class="jsdoc-syntax">;
314 </span><span class="jsdoc-var">b.shift</span><span class="jsdoc-syntax">();
316 </span><span class="jsdoc-comment">//console.log(b.join(','));
317 </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">,
318 </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">,
319 </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 </span><span class="jsdoc-var">b.length </span><span class="jsdoc-syntax">> </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">&& !</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 </span><span class="jsdoc-var">b.pop</span><span class="jsdoc-syntax">()
326 </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">"-" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">""</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">"0." </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">""</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">) + 1;
330 </span><span class="jsdoc-keyword">if</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">&& </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">) {
331 </span><span class="jsdoc-comment">//if(b.length > p && n){
332 //console.log("rounding" +n + " Method? " + r);
333 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(
334 (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">m.ROUND_UP</span><span class="jsdoc-syntax">) ||
335 (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">m.ROUND_CEIL </span><span class="jsdoc-syntax">&& !</span><span class="jsdoc-var">this._s</span><span class="jsdoc-syntax">) ||
336 (</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">m.ROUND_FLOOR </span><span class="jsdoc-syntax">&& </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_HALF_UP </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">>= 5) ||
338 (</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">&& </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">> 5) ||
339 (</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">&& </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">>= 5 && (</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">- 1] & 1))
341 </span><span class="jsdoc-comment">//console.log("add" +x);
343 </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">);
344 </span><span class="jsdoc-var">this._d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ret._d</span><span class="jsdoc-syntax">;
345 </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">ret._d</span><span class="jsdoc-syntax">;
346 </span><span class="jsdoc-comment">//this.precision--;
347 </span><span class="jsdoc-syntax">}
349 </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 </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 };</span></code></body></html>