long-decimal 0.00.10 → 0.00.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. data/VERSION +1 -1
  2. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.html +12 -5
  3. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000136.html +22 -0
  4. data/doc/classes/LongMath/LongDecimal.html +1624 -0
  5. data/doc/classes/LongMath/LongDecimal.src/M000061.html +18 -0
  6. data/doc/classes/LongMath/LongDecimal.src/M000062.html +18 -0
  7. data/doc/classes/LongMath/LongDecimal.src/M000063.html +18 -0
  8. data/doc/classes/LongMath/LongDecimal.src/M000064.html +20 -0
  9. data/doc/classes/LongMath/LongDecimal.src/M000065.html +109 -0
  10. data/doc/classes/LongMath/LongDecimal.src/M000066.html +34 -0
  11. data/doc/classes/LongMath/LongDecimal.src/M000067.html +41 -0
  12. data/doc/classes/LongMath/LongDecimal.src/M000068.html +35 -0
  13. data/doc/classes/LongMath/LongDecimal.src/M000069.html +18 -0
  14. data/doc/classes/LongMath/LongDecimal.src/M000070.html +29 -0
  15. data/doc/classes/LongMath/LongDecimal.src/M000071.html +18 -0
  16. data/doc/classes/LongMath/LongDecimal.src/M000072.html +38 -0
  17. data/doc/classes/LongMath/LongDecimal.src/M000073.html +18 -0
  18. data/doc/classes/LongMath/LongDecimal.src/M000074.html +18 -0
  19. data/doc/classes/LongMath/LongDecimal.src/M000075.html +20 -0
  20. data/doc/classes/LongMath/LongDecimal.src/M000076.html +18 -0
  21. data/doc/classes/LongMath/LongDecimal.src/M000077.html +29 -0
  22. data/doc/classes/LongMath/LongDecimal.src/M000078.html +46 -0
  23. data/doc/classes/LongMath/LongDecimal.src/M000079.html +29 -0
  24. data/doc/classes/LongMath/LongDecimal.src/M000080.html +27 -0
  25. data/doc/classes/LongMath/LongDecimal.src/M000081.html +18 -0
  26. data/doc/classes/LongMath/LongDecimal.src/M000083.html +18 -0
  27. data/doc/classes/LongMath/LongDecimal.src/M000084.html +18 -0
  28. data/doc/classes/LongMath/LongDecimal.src/M000085.html +18 -0
  29. data/doc/classes/LongMath/LongDecimal.src/M000086.html +18 -0
  30. data/doc/classes/LongMath/LongDecimal.src/M000087.html +18 -0
  31. data/doc/classes/LongMath/LongDecimal.src/M000089.html +18 -0
  32. data/doc/classes/LongMath/LongDecimal.src/M000090.html +22 -0
  33. data/doc/classes/LongMath/LongDecimal.src/M000091.html +23 -0
  34. data/doc/classes/LongMath/LongDecimal.src/M000092.html +23 -0
  35. data/doc/classes/LongMath/LongDecimal.src/M000093.html +23 -0
  36. data/doc/classes/LongMath/LongDecimal.src/M000094.html +18 -0
  37. data/doc/classes/LongMath/LongDecimal.src/M000095.html +29 -0
  38. data/doc/classes/LongMath/LongDecimal.src/M000096.html +23 -0
  39. data/doc/classes/LongMath/LongDecimal.src/M000097.html +23 -0
  40. data/doc/classes/LongMath/LongDecimal.src/M000098.html +34 -0
  41. data/doc/classes/LongMath/LongDecimal.src/M000099.html +22 -0
  42. data/doc/classes/LongMath/LongDecimal.src/M000100.html +19 -0
  43. data/doc/classes/LongMath/LongDecimal.src/M000101.html +23 -0
  44. data/doc/classes/LongMath/LongDecimal.src/M000102.html +23 -0
  45. data/doc/classes/LongMath/LongDecimal.src/M000103.html +23 -0
  46. data/doc/classes/LongMath/LongDecimal.src/M000104.html +18 -0
  47. data/doc/classes/LongMath/LongDecimal.src/M000105.html +21 -0
  48. data/doc/classes/LongMath/LongDecimal.src/M000106.html +21 -0
  49. data/doc/classes/LongMath/LongDecimal.src/M000107.html +18 -0
  50. data/doc/classes/LongMath/LongDecimal.src/M000108.html +18 -0
  51. data/doc/classes/LongMath/LongDecimal.src/M000109.html +23 -0
  52. data/doc/classes/LongMath/LongDecimal.src/M000110.html +23 -0
  53. data/doc/classes/LongMath/LongDecimal.src/M000111.html +19 -0
  54. data/doc/classes/LongMath/LongDecimal.src/M000112.html +23 -0
  55. data/doc/classes/LongMath/LongDecimal.src/M000113.html +18 -0
  56. data/doc/classes/LongMath/LongDecimal.src/M000114.html +30 -0
  57. data/doc/classes/LongMath/LongDecimal.src/M000115.html +18 -0
  58. data/doc/classes/LongMath/LongDecimal.src/M000116.html +23 -0
  59. data/doc/classes/LongMath/LongDecimal.src/M000117.html +18 -0
  60. data/doc/classes/LongMath/LongDecimal.src/M000118.html +30 -0
  61. data/doc/classes/LongMath/LongDecimal.src/M000119.html +23 -0
  62. data/doc/classes/LongMath/LongDecimal.src/M000120.html +19 -0
  63. data/doc/classes/LongMath/LongDecimal.src/M000121.html +18 -0
  64. data/doc/classes/LongMath/LongDecimal.src/M000122.html +47 -0
  65. data/doc/classes/LongMath/LongDecimal.src/M000123.html +18 -0
  66. data/doc/classes/LongMath/LongDecimal.src/M000124.html +18 -0
  67. data/doc/classes/LongMath/LongDecimal.src/M000125.html +47 -0
  68. data/doc/classes/LongMath/LongDecimal.src/M000126.html +18 -0
  69. data/doc/classes/LongMath/LongDecimal.src/M000127.html +19 -0
  70. data/doc/classes/LongMath/LongDecimal.src/M000130.html +18 -0
  71. data/doc/classes/LongMath/LongDecimal.src/M000131.html +18 -0
  72. data/doc/classes/LongMath/LongDecimal.src/M000132.html +18 -0
  73. data/doc/classes/LongMath/LongDecimal.src/M000133.html +18 -0
  74. data/doc/classes/LongMath/LongDecimal.src/M000134.html +18 -0
  75. data/doc/classes/LongMath/LongDecimalQuot.html +797 -0
  76. data/doc/classes/LongMath/LongDecimalQuot.src/M000024.html +18 -0
  77. data/doc/classes/LongMath/LongDecimalQuot.src/M000025.html +28 -0
  78. data/doc/classes/LongMath/LongDecimalQuot.src/M000026.html +18 -0
  79. data/doc/classes/LongMath/LongDecimalQuot.src/M000027.html +18 -0
  80. data/doc/classes/LongMath/LongDecimalQuot.src/M000028.html +19 -0
  81. data/doc/classes/LongMath/LongDecimalQuot.src/M000029.html +18 -0
  82. data/doc/classes/LongMath/LongDecimalQuot.src/M000030.html +18 -0
  83. data/doc/classes/LongMath/LongDecimalQuot.src/M000031.html +18 -0
  84. data/doc/classes/LongMath/LongDecimalQuot.src/M000032.html +18 -0
  85. data/doc/classes/LongMath/LongDecimalQuot.src/M000033.html +18 -0
  86. data/doc/classes/LongMath/LongDecimalQuot.src/M000034.html +22 -0
  87. data/doc/classes/LongMath/LongDecimalQuot.src/M000035.html +23 -0
  88. data/doc/classes/LongMath/LongDecimalQuot.src/M000036.html +23 -0
  89. data/doc/classes/LongMath/LongDecimalQuot.src/M000037.html +23 -0
  90. data/doc/classes/LongMath/LongDecimalQuot.src/M000038.html +23 -0
  91. data/doc/classes/LongMath/LongDecimalQuot.src/M000039.html +35 -0
  92. data/doc/classes/LongMath/LongDecimalQuot.src/M000040.html +22 -0
  93. data/doc/classes/LongMath/LongDecimalQuot.src/M000041.html +19 -0
  94. data/doc/classes/LongMath/LongDecimalQuot.src/M000042.html +18 -0
  95. data/doc/classes/LongMath/LongDecimalQuot.src/M000043.html +18 -0
  96. data/doc/classes/LongMath/LongDecimalQuot.src/M000044.html +18 -0
  97. data/doc/classes/LongMath/LongDecimalQuot.src/M000045.html +18 -0
  98. data/doc/classes/LongMath/LongDecimalQuot.src/M000046.html +77 -0
  99. data/doc/classes/LongMath/LongDecimalQuot.src/M000047.html +36 -0
  100. data/doc/classes/LongMath/LongDecimalQuot.src/M000048.html +18 -0
  101. data/doc/classes/LongMath/LongDecimalQuot.src/M000049.html +23 -0
  102. data/doc/classes/LongMath/LongDecimalQuot.src/M000050.html +19 -0
  103. data/doc/classes/LongMath/LongDecimalQuot.src/M000051.html +18 -0
  104. data/doc/classes/LongMath/LongDecimalQuot.src/M000052.html +18 -0
  105. data/doc/classes/LongMath/LongDecimalQuot.src/M000053.html +18 -0
  106. data/doc/classes/LongMath/LongDecimalQuot.src/M000054.html +18 -0
  107. data/doc/classes/LongMath/LongDecimalQuot.src/M000055.html +18 -0
  108. data/doc/classes/LongMath/LongDecimalQuot.src/M000058.html +18 -0
  109. data/doc/classes/LongMath/LongDecimalQuot.src/M000059.html +18 -0
  110. data/doc/classes/LongMath/LongDecimalQuot.src/M000060.html +18 -0
  111. data/doc/classes/LongMath/Numeric.html +150 -0
  112. data/doc/classes/LongMath/Numeric.src/M000135.html +18 -0
  113. data/doc/classes/LongMath.html +70 -37
  114. data/doc/classes/LongMath.src/M000001.html +19 -0
  115. data/doc/classes/LongMath.src/M000002.html +18 -0
  116. data/doc/classes/LongMath.src/M000003.html +18 -0
  117. data/doc/classes/LongMath.src/M000004.html +19 -0
  118. data/doc/classes/LongMath.src/M000005.html +18 -0
  119. data/doc/classes/LongMath.src/M000006.html +32 -0
  120. data/doc/classes/LongMath.src/M000007.html +32 -0
  121. data/doc/classes/LongMath.src/M000008.html +19 -0
  122. data/doc/classes/LongMath.src/M000009.html +43 -0
  123. data/doc/classes/LongMath.src/M000010.html +19 -0
  124. data/doc/classes/LongMath.src/M000011.html +73 -0
  125. data/doc/classes/LongMath.src/M000012.html +35 -0
  126. data/doc/classes/LongMath.src/M000013.html +50 -0
  127. data/doc/classes/LongMath.src/M000014.html +47 -0
  128. data/doc/classes/LongMath.src/M000015.html +22 -0
  129. data/doc/classes/LongMath.src/M000016.html +25 -0
  130. data/doc/classes/LongMath.src/M000017.html +107 -0
  131. data/doc/classes/LongMath.src/M000018.html +21 -0
  132. data/doc/classes/LongMath.src/M000019.html +30 -0
  133. data/doc/classes/LongMath.src/M000020.html +30 -0
  134. data/doc/classes/LongMath.src/M000021.html +115 -0
  135. data/doc/classes/LongMath.src/M000022.html +22 -0
  136. data/doc/classes/LongMath.src/M000023.html +18 -0
  137. data/doc/created.rid +1 -1
  138. data/doc/files/lib/longdecimal_rb.html +2 -2
  139. data/doc/fr_method_index.html +108 -111
  140. data/lib/longdecimal.rb +333 -93
  141. metadata +139 -2
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>new! (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1771</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongDecimalQuot</span>.<span class="ruby-identifier">new!</span>(<span class="ruby-identifier">first</span>, <span class="ruby-identifier">second</span>)
15
+ <span class="ruby-identifier">new</span>(<span class="ruby-identifier">first</span>, <span class="ruby-identifier">second</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>new (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1779</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">first</span>, <span class="ruby-identifier">second</span>)
15
+ <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">first</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Rational</span>) <span class="ruby-operator">||</span> (<span class="ruby-identifier">first</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Integer</span>)) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">second</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Integer</span>) <span class="ruby-keyword kw">then</span>
16
+ <span class="ruby-ivar">@rat</span> = <span class="ruby-constant">Rational</span>(<span class="ruby-identifier">first</span>.<span class="ruby-identifier">numerator</span>, <span class="ruby-identifier">first</span>.<span class="ruby-identifier">denominator</span>)
17
+ <span class="ruby-ivar">@scale</span> = <span class="ruby-identifier">second</span>
18
+ <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">first</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimal</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">second</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimal</span>) <span class="ruby-keyword kw">then</span>
19
+ <span class="ruby-identifier">orig_scale</span> = <span class="ruby-identifier">first</span>.<span class="ruby-identifier">scale</span>
20
+ <span class="ruby-identifier">first</span>, <span class="ruby-identifier">second</span> = <span class="ruby-identifier">first</span>.<span class="ruby-identifier">anti_equalize_scale</span>(<span class="ruby-identifier">second</span>)
21
+ <span class="ruby-ivar">@rat</span> = <span class="ruby-constant">Rational</span>(<span class="ruby-identifier">first</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">second</span>.<span class="ruby-identifier">to_i</span>)
22
+ <span class="ruby-ivar">@scale</span> = <span class="ruby-identifier">orig_scale</span>
23
+ <span class="ruby-keyword kw">else</span>
24
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">&quot;parameters must be (LongDecimal, LongDecimal) or (Rational, Integer): first=#{first.inspect} second=#{second.inspect}&quot;</span>;
25
+ <span class="ruby-keyword kw">end</span>
26
+ <span class="ruby-keyword kw">end</span></pre>
27
+ </body>
28
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>numerator (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1807</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">numerator</span>
15
+ <span class="ruby-identifier">rat</span>.<span class="ruby-identifier">numerator</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>denominator (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1815</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">denominator</span>
15
+ <span class="ruby-identifier">rat</span>.<span class="ruby-identifier">denominator</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>to_s (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1833</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
15
+ <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@rat</span>.<span class="ruby-identifier">to_s</span>
16
+ <span class="ruby-identifier">str</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;[&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">scale</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;]&quot;</span>
17
+ <span class="ruby-keyword kw">end</span></pre>
18
+ </body>
19
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>to_r (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1841</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_r</span>
15
+ <span class="ruby-constant">Rational</span>(<span class="ruby-identifier">numerator</span>, <span class="ruby-identifier">denominator</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>to_f (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1848</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_f</span>
15
+ <span class="ruby-identifier">to_r</span>.<span class="ruby-identifier">to_f</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>to_i (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1855</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_i</span>
15
+ <span class="ruby-identifier">to_r</span>.<span class="ruby-identifier">to_i</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>to_ld (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1862</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ld</span>
15
+ <span class="ruby-identifier">round_to_scale</span>(<span class="ruby-identifier">scale</span>, <span class="ruby-constant">ROUND_HALF_UP</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>+@ (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1869</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+@</span>
15
+ <span class="ruby-keyword kw">self</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>-@ (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1877</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">-@</span>
15
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zero?</span> <span class="ruby-keyword kw">then</span>
16
+ <span class="ruby-keyword kw">self</span>
17
+ <span class="ruby-keyword kw">else</span>
18
+ <span class="ruby-constant">LongDecimalQuot</span>(<span class="ruby-operator">-</span><span class="ruby-identifier">rat</span>, <span class="ruby-identifier">scale</span>)
19
+ <span class="ruby-keyword kw">end</span>
20
+ <span class="ruby-keyword kw">end</span></pre>
21
+ </body>
22
+ </html>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>+ (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1891</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">other</span>)
15
+ <span class="ruby-identifier">o</span>, <span class="ruby-identifier">s</span> = <span class="ruby-identifier">coerce</span>(<span class="ruby-identifier">other</span>)
16
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">s</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimalQuot</span>) <span class="ruby-keyword kw">then</span>
17
+ <span class="ruby-constant">LongDecimalQuot</span>(<span class="ruby-identifier">s</span>.<span class="ruby-identifier">rat</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">rat</span>, [<span class="ruby-identifier">s</span>.<span class="ruby-identifier">scale</span>, <span class="ruby-identifier">o</span>.<span class="ruby-identifier">scale</span>].<span class="ruby-identifier">max</span>)
18
+ <span class="ruby-keyword kw">else</span>
19
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">o</span>
20
+ <span class="ruby-keyword kw">end</span>
21
+ <span class="ruby-keyword kw">end</span></pre>
22
+ </body>
23
+ </html>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>- (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1900</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">other</span>)
15
+ <span class="ruby-identifier">o</span>, <span class="ruby-identifier">s</span> = <span class="ruby-identifier">coerce</span>(<span class="ruby-identifier">other</span>)
16
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">s</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimalQuot</span>) <span class="ruby-keyword kw">then</span>
17
+ <span class="ruby-constant">LongDecimalQuot</span>(<span class="ruby-identifier">s</span>.<span class="ruby-identifier">rat</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">rat</span>, [<span class="ruby-identifier">s</span>.<span class="ruby-identifier">scale</span>, <span class="ruby-identifier">o</span>.<span class="ruby-identifier">scale</span>].<span class="ruby-identifier">max</span>)
18
+ <span class="ruby-keyword kw">else</span>
19
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">o</span>
20
+ <span class="ruby-keyword kw">end</span>
21
+ <span class="ruby-keyword kw">end</span></pre>
22
+ </body>
23
+ </html>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>* (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1909</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">*</span>(<span class="ruby-identifier">other</span>)
15
+ <span class="ruby-identifier">o</span>, <span class="ruby-identifier">s</span> = <span class="ruby-identifier">coerce</span>(<span class="ruby-identifier">other</span>)
16
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">s</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimalQuot</span>) <span class="ruby-keyword kw">then</span>
17
+ <span class="ruby-constant">LongDecimalQuot</span>(<span class="ruby-identifier">s</span>.<span class="ruby-identifier">rat</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">rat</span>, <span class="ruby-identifier">s</span>.<span class="ruby-identifier">scale</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">scale</span>)
18
+ <span class="ruby-keyword kw">else</span>
19
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">o</span>
20
+ <span class="ruby-keyword kw">end</span>
21
+ <span class="ruby-keyword kw">end</span></pre>
22
+ </body>
23
+ </html>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>/ (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1918</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">/</span>(<span class="ruby-identifier">other</span>)
15
+ <span class="ruby-identifier">o</span>, <span class="ruby-identifier">s</span> = <span class="ruby-identifier">coerce</span>(<span class="ruby-identifier">other</span>)
16
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">s</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimalQuot</span>) <span class="ruby-keyword kw">then</span>
17
+ <span class="ruby-constant">LongDecimalQuot</span>(<span class="ruby-identifier">s</span>.<span class="ruby-identifier">rat</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">rat</span>, <span class="ruby-identifier">scale</span>)
18
+ <span class="ruby-keyword kw">else</span>
19
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">o</span>
20
+ <span class="ruby-keyword kw">end</span>
21
+ <span class="ruby-keyword kw">end</span></pre>
22
+ </body>
23
+ </html>
@@ -0,0 +1,35 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>** (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1927</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">**</span>(<span class="ruby-identifier">other</span>)
15
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimal</span>) <span class="ruby-operator">||</span> (<span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimalQuot</span>) <span class="ruby-keyword kw">then</span>
16
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">is_int?</span> <span class="ruby-keyword kw">then</span>
17
+ <span class="ruby-identifier">other</span> = <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_i</span>
18
+ <span class="ruby-keyword kw">else</span>
19
+ <span class="ruby-identifier">other</span> = <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_r</span>
20
+ <span class="ruby-keyword kw">end</span>
21
+ <span class="ruby-keyword kw">end</span>
22
+ <span class="ruby-identifier">rat_result</span> = <span class="ruby-identifier">rat</span> <span class="ruby-operator">**</span> <span class="ruby-identifier">other</span>
23
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rat_result</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Rational</span>) <span class="ruby-keyword kw">then</span>
24
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Integer</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">other</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">then</span>
25
+ <span class="ruby-identifier">new_scale</span> = <span class="ruby-identifier">scale</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">other</span>
26
+ <span class="ruby-keyword kw">else</span>
27
+ <span class="ruby-identifier">new_scale</span> = <span class="ruby-identifier">scale</span>
28
+ <span class="ruby-keyword kw">end</span>
29
+ <span class="ruby-constant">LongDecimalQuot</span>(<span class="ruby-identifier">rat_result</span>, <span class="ruby-identifier">new_scale</span>)
30
+ <span class="ruby-keyword kw">else</span>
31
+ <span class="ruby-identifier">rat_result</span>
32
+ <span class="ruby-keyword kw">end</span>
33
+ <span class="ruby-keyword kw">end</span></pre>
34
+ </body>
35
+ </html>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>divmod (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1948</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">divmod</span>(<span class="ruby-identifier">other</span>)
15
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Complex</span>) <span class="ruby-keyword kw">then</span>
16
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;divmod not supported for Complex&quot;</span>
17
+ <span class="ruby-keyword kw">end</span>
18
+ <span class="ruby-identifier">q</span> = (<span class="ruby-keyword kw">self</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">other</span>).<span class="ruby-identifier">to_i</span>
19
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">q</span>, <span class="ruby-keyword kw">self</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">other</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">q</span>
20
+ <span class="ruby-keyword kw">end</span></pre>
21
+ </body>
22
+ </html>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>% (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1956</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">%</span>(<span class="ruby-identifier">other</span>)
15
+ <span class="ruby-identifier">q</span>, <span class="ruby-identifier">r</span> = <span class="ruby-identifier">divmod</span> <span class="ruby-identifier">other</span>
16
+ <span class="ruby-identifier">r</span>
17
+ <span class="ruby-keyword kw">end</span></pre>
18
+ </body>
19
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>square (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1970</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">square</span>
15
+ <span class="ruby-keyword kw">self</span> <span class="ruby-operator">*</span> <span class="ruby-keyword kw">self</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>reciprocal (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1977</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reciprocal</span>
15
+ <span class="ruby-value">1</span> <span class="ruby-operator">/</span> <span class="ruby-keyword kw">self</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>abs (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1984</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">abs</span>
15
+ <span class="ruby-constant">LongDecimalQuot</span>(<span class="ruby-identifier">rat</span>.<span class="ruby-identifier">abs</span>, <span class="ruby-identifier">scale</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>abs2 (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1988</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">abs2</span>
15
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">abs</span>.<span class="ruby-identifier">square</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,77 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>round_to_scale (LongMath::LongDecimalQuot)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 1996</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">round_to_scale</span>(<span class="ruby-identifier">new_scale</span> = <span class="ruby-ivar">@scale</span>, <span class="ruby-identifier">mode</span> = <span class="ruby-constant">ROUND_UNNECESSARY</span>)
15
+
16
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">&quot;new_scale #{new_scale.inspect} must be integer&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">new_scale</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Integer</span>
17
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">&quot;new_scale #{new_scale.inspect} must be &gt;= 0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">new_scale</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
18
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">&quot;mode #{mode.inspect} must be legal rounding mode&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">mode</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">RoundingModeClass</span>
19
+
20
+ <span class="ruby-identifier">factor</span> = <span class="ruby-value">10</span><span class="ruby-operator">**</span><span class="ruby-identifier">new_scale</span>
21
+ <span class="ruby-identifier">sign_quot</span> = <span class="ruby-identifier">numerator</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-value">0</span>
22
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sign_quot</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">then</span>
23
+ <span class="ruby-keyword kw">return</span> <span class="ruby-constant">LongDecimal</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">new_scale</span>)
24
+ <span class="ruby-keyword kw">end</span>
25
+ <span class="ruby-identifier">prod</span> = <span class="ruby-identifier">numerator</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">factor</span>
26
+ <span class="ruby-identifier">divisor</span> = <span class="ruby-identifier">denominator</span>
27
+ <span class="ruby-identifier">quot</span>, <span class="ruby-identifier">rem</span> = <span class="ruby-identifier">prod</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-identifier">divisor</span>)
28
+ <span class="ruby-identifier">sign_rem</span> = <span class="ruby-identifier">rem</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-value">0</span>
29
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">sign_rem</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>)
30
+ <span class="ruby-keyword kw">return</span> <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">quot</span>, <span class="ruby-identifier">new_scale</span>)
31
+ <span class="ruby-keyword kw">end</span>
32
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-node">&quot;signs do not match self=#{self.to_s} f=#{factor} prod=#{prod} divisor=#{divisor} quot=#{quot} rem=#{rem}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sign_rem</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
33
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">sign_quot</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
34
+ <span class="ruby-identifier">rem</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">divisor</span>
35
+ <span class="ruby-identifier">quot</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
36
+ <span class="ruby-identifier">sign_rem</span> = <span class="ruby-identifier">rem</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-value">0</span>
37
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-node">&quot;signs do not match self=#{self.to_s} f=#{factor} prod=#{prod} divisor=#{divisor} quot=#{quot} rem=#{rem}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sign_rem</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
38
+ <span class="ruby-keyword kw">end</span>
39
+
40
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">ROUND_UNNECESSARY</span> <span class="ruby-keyword kw">then</span>
41
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;mode ROUND_UNNECESSARY not applicable, remainder #{rem.to_s} is not zero&quot;</span>
42
+ <span class="ruby-keyword kw">end</span>
43
+
44
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">ROUND_CEILING</span>)
45
+ <span class="ruby-identifier">mode</span> = (<span class="ruby-identifier">sign_quot</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">ROUND_UP</span> <span class="ruby-operator">:</span> <span class="ruby-constant">ROUND_DOWN</span>
46
+ <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">ROUND_FLOOR</span>)
47
+ <span class="ruby-identifier">mode</span> = (<span class="ruby-identifier">sign_quot</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">ROUND_UP</span> <span class="ruby-operator">:</span> <span class="ruby-constant">ROUND_DOWN</span>
48
+ <span class="ruby-keyword kw">else</span>
49
+ <span class="ruby-identifier">abs_rem</span> = <span class="ruby-identifier">rem</span>.<span class="ruby-identifier">abs</span>
50
+ <span class="ruby-identifier">half</span> = (<span class="ruby-identifier">abs_rem</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">denominator</span>
51
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">ROUND_HALF_UP</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">ROUND_HALF_DOWN</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">ROUND_HALF_EVEN</span>) <span class="ruby-keyword kw">then</span>
52
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">half</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
53
+ <span class="ruby-identifier">mode</span> = <span class="ruby-constant">ROUND_DOWN</span>
54
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">half</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">then</span>
55
+ <span class="ruby-identifier">mode</span> = <span class="ruby-constant">ROUND_UP</span>
56
+ <span class="ruby-keyword kw">else</span>
57
+ <span class="ruby-comment cmt"># half == 0</span>
58
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">ROUND_HALF_UP</span>) <span class="ruby-keyword kw">then</span>
59
+ <span class="ruby-identifier">mode</span> = <span class="ruby-constant">ROUND_UP</span>
60
+ <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">ROUND_HALF_DOWN</span>) <span class="ruby-keyword kw">then</span>
61
+ <span class="ruby-identifier">mode</span> = <span class="ruby-constant">ROUND_DOWN</span>
62
+ <span class="ruby-keyword kw">else</span>
63
+ <span class="ruby-comment cmt"># mode == ROUND_HALF_EVEN</span>
64
+ <span class="ruby-identifier">mode</span> = (<span class="ruby-identifier">quot</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-constant">ROUND_UP</span> <span class="ruby-operator">:</span> <span class="ruby-constant">ROUND_DOWN</span>)
65
+ <span class="ruby-keyword kw">end</span>
66
+ <span class="ruby-keyword kw">end</span>
67
+ <span class="ruby-keyword kw">end</span>
68
+ <span class="ruby-keyword kw">end</span>
69
+
70
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">ROUND_UP</span>
71
+ <span class="ruby-identifier">quot</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sign_quot</span>
72
+ <span class="ruby-keyword kw">end</span>
73
+ <span class="ruby-identifier">new_int_val</span> = <span class="ruby-identifier">quot</span>
74
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">new_int_val</span>, <span class="ruby-identifier">new_scale</span>)
75
+ <span class="ruby-keyword kw">end</span></pre>
76
+ </body>
77
+ </html>