long-decimal 0.01.01 → 0.01.02

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 (193) hide show
  1. data/README +17 -94
  2. data/VERSION +1 -1
  3. data/doc/classes/Integer.html +239 -0
  4. data/doc/classes/Integer.src/M000036.html +18 -0
  5. data/doc/classes/Integer.src/M000039.html +145 -0
  6. data/doc/classes/LongDecimal.html +453 -399
  7. data/doc/classes/LongDecimal.src/M000040.html +4 -4
  8. data/doc/classes/LongDecimal.src/M000041.html +4 -4
  9. data/doc/classes/LongDecimal.src/M000042.html +4 -6
  10. data/doc/classes/LongDecimal.src/M000043.html +4 -106
  11. data/doc/classes/LongDecimal.src/M000044.html +4 -21
  12. data/doc/classes/LongDecimal.src/M000045.html +4 -11
  13. data/doc/classes/LongDecimal.src/M000046.html +6 -27
  14. data/doc/classes/LongDecimal.src/M000047.html +103 -16
  15. data/doc/classes/LongDecimal.src/M000048.html +21 -4
  16. data/doc/classes/LongDecimal.src/M000049.html +10 -14
  17. data/doc/classes/LongDecimal.src/M000050.html +22 -36
  18. data/doc/classes/LongDecimal.src/M000051.html +34 -4
  19. data/doc/classes/LongDecimal.src/M000052.html +17 -6
  20. data/doc/classes/LongDecimal.src/M000053.html +4 -6
  21. data/doc/classes/LongDecimal.src/M000054.html +15 -4
  22. data/doc/classes/LongDecimal.src/M000055.html +44 -12
  23. data/doc/classes/LongDecimal.src/M000056.html +4 -7
  24. data/doc/classes/LongDecimal.src/M000057.html +8 -4
  25. data/doc/classes/LongDecimal.src/M000058.html +6 -15
  26. data/doc/classes/LongDecimal.src/M000059.html +4 -13
  27. data/doc/classes/LongDecimal.src/M000060.html +15 -4
  28. data/doc/classes/LongDecimal.src/M000061.html +7 -5
  29. data/doc/classes/LongDecimal.src/M000062.html +4 -4
  30. data/doc/classes/LongDecimal.src/M000063.html +15 -5
  31. data/doc/classes/LongDecimal.src/M000064.html +13 -5
  32. data/doc/classes/LongDecimal.src/M000065.html +4 -4
  33. data/doc/classes/LongDecimal.src/M000067.html +4 -8
  34. data/doc/classes/LongDecimal.src/M000068.html +5 -9
  35. data/doc/classes/LongDecimal.src/M000069.html +5 -9
  36. data/doc/classes/LongDecimal.src/M000070.html +4 -9
  37. data/doc/classes/LongDecimal.src/M000071.html +4 -4
  38. data/doc/classes/LongDecimal.src/M000072.html +6 -17
  39. data/doc/classes/LongDecimal.src/M000073.html +7 -7
  40. data/doc/classes/LongDecimal.src/M000074.html +7 -7
  41. data/doc/classes/LongDecimal.src/M000075.html +7 -19
  42. data/doc/classes/LongDecimal.src/M000076.html +4 -8
  43. data/doc/classes/LongDecimal.src/M000077.html +19 -5
  44. data/doc/classes/LongDecimal.src/M000078.html +7 -7
  45. data/doc/classes/LongDecimal.src/M000079.html +7 -7
  46. data/doc/classes/LongDecimal.src/M000080.html +19 -7
  47. data/doc/classes/LongDecimal.src/M000081.html +8 -4
  48. data/doc/classes/LongDecimal.src/M000082.html +5 -7
  49. data/doc/classes/LongDecimal.src/M000083.html +8 -6
  50. data/doc/classes/LongDecimal.src/M000084.html +9 -4
  51. data/doc/classes/LongDecimal.src/M000085.html +9 -4
  52. data/doc/classes/LongDecimal.src/M000086.html +4 -9
  53. data/doc/classes/LongDecimal.src/M000087.html +6 -8
  54. data/doc/classes/LongDecimal.src/M000088.html +7 -5
  55. data/doc/classes/LongDecimal.src/M000089.html +4 -9
  56. data/doc/classes/LongDecimal.src/M000090.html +4 -4
  57. data/doc/classes/LongDecimal.src/M000091.html +9 -4
  58. data/doc/classes/LongDecimal.src/M000092.html +9 -4
  59. data/doc/classes/LongDecimal.src/M000093.html +5 -4
  60. data/doc/classes/LongDecimal.src/M000094.html +7 -57
  61. data/doc/classes/LongDecimal.src/M000095.html +4 -4
  62. data/doc/classes/LongDecimal.src/M000096.html +4 -4
  63. data/doc/classes/LongDecimal.src/M000097.html +4 -5
  64. data/doc/classes/LongDecimal.src/M000098.html +4 -5
  65. data/doc/classes/LongDecimal.src/M000099.html +59 -5
  66. data/doc/classes/LongDecimal.src/M000100.html +4 -5
  67. data/doc/classes/LongDecimal.src/M000101.html +4 -4
  68. data/doc/classes/LongDecimal.src/M000104.html +19 -0
  69. data/doc/classes/LongDecimal.src/M000105.html +19 -0
  70. data/doc/classes/LongDecimal.src/M000106.html +18 -0
  71. data/doc/classes/LongDecimal.src/M000107.html +18 -0
  72. data/doc/classes/LongDecimal.src/M000108.html +18 -0
  73. data/doc/classes/LongDecimal.src/M000109.html +18 -0
  74. data/doc/classes/LongDecimalBase.html +69 -66
  75. data/doc/classes/LongDecimalBase.src/M000113.html +4 -9
  76. data/doc/classes/LongDecimalBase.src/M000114.html +4 -5
  77. data/doc/classes/LongDecimalBase.src/M000115.html +4 -9
  78. data/doc/classes/LongDecimalBase.src/M000116.html +4 -9
  79. data/doc/classes/LongDecimalBase.src/M000117.html +4 -5
  80. data/doc/classes/LongDecimalBase.src/M000118.html +23 -0
  81. data/doc/classes/LongDecimalBase.src/M000121.html +23 -0
  82. data/doc/classes/LongDecimalBase.src/M000122.html +19 -0
  83. data/doc/classes/LongDecimalBase.src/M000123.html +18 -0
  84. data/doc/classes/LongDecimalQuot.html +33 -27
  85. data/doc/classes/LongDecimalQuot.src/M000003.html +1 -1
  86. data/doc/classes/LongDecimalQuot.src/M000004.html +1 -1
  87. data/doc/classes/LongDecimalQuot.src/M000005.html +1 -1
  88. data/doc/classes/LongDecimalQuot.src/M000006.html +1 -1
  89. data/doc/classes/LongDecimalQuot.src/M000007.html +1 -1
  90. data/doc/classes/LongDecimalQuot.src/M000008.html +1 -1
  91. data/doc/classes/LongDecimalQuot.src/M000009.html +1 -1
  92. data/doc/classes/LongDecimalQuot.src/M000010.html +1 -1
  93. data/doc/classes/LongDecimalQuot.src/M000011.html +1 -1
  94. data/doc/classes/LongDecimalQuot.src/M000012.html +1 -1
  95. data/doc/classes/LongDecimalQuot.src/M000013.html +1 -1
  96. data/doc/classes/LongDecimalQuot.src/M000014.html +1 -1
  97. data/doc/classes/LongDecimalQuot.src/M000015.html +1 -1
  98. data/doc/classes/LongDecimalQuot.src/M000016.html +1 -1
  99. data/doc/classes/LongDecimalQuot.src/M000017.html +1 -1
  100. data/doc/classes/LongDecimalQuot.src/M000018.html +1 -1
  101. data/doc/classes/LongDecimalQuot.src/M000019.html +1 -1
  102. data/doc/classes/LongDecimalQuot.src/M000020.html +1 -1
  103. data/doc/classes/LongDecimalQuot.src/M000021.html +1 -1
  104. data/doc/classes/LongDecimalQuot.src/M000022.html +1 -1
  105. data/doc/classes/LongDecimalQuot.src/M000023.html +1 -1
  106. data/doc/classes/LongDecimalQuot.src/M000024.html +1 -1
  107. data/doc/classes/LongDecimalQuot.src/M000025.html +1 -1
  108. data/doc/classes/LongDecimalQuot.src/M000026.html +1 -1
  109. data/doc/classes/LongDecimalQuot.src/M000027.html +1 -1
  110. data/doc/classes/LongDecimalQuot.src/M000028.html +1 -1
  111. data/doc/classes/LongDecimalQuot.src/M000029.html +1 -1
  112. data/doc/classes/LongDecimalQuot.src/M000030.html +1 -1
  113. data/doc/classes/LongDecimalQuot.src/M000031.html +1 -1
  114. data/doc/classes/LongDecimalQuot.src/M000034.html +1 -1
  115. data/doc/classes/LongDecimalQuot.src/M000035.html +1 -1
  116. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.html +25 -24
  117. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000156.html +22 -0
  118. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000157.html +18 -0
  119. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000158.html +18 -0
  120. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000159.html +18 -0
  121. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000161.html +25 -0
  122. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000162.html +18 -0
  123. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000163.html +18 -0
  124. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000164.html +18 -0
  125. data/doc/classes/LongDecimalRoundingMode/ZeroRoundingModeClass.html +178 -0
  126. data/doc/classes/LongDecimalRoundingMode/ZeroRoundingModeClass.src/M000165.html +25 -0
  127. data/doc/classes/LongDecimalRoundingMode/ZeroRoundingModeClass.src/M000166.html +18 -0
  128. data/doc/classes/LongDecimalRoundingMode.html +41 -4
  129. data/doc/classes/LongMath/CacheKey.html +10 -10
  130. data/doc/classes/LongMath/CacheKey.src/M000155.html +36 -0
  131. data/doc/classes/LongMath/CacheKey.src/M000160.html +36 -0
  132. data/doc/classes/LongMath.html +246 -235
  133. data/doc/classes/LongMath.src/M000124.html +5 -18
  134. data/doc/classes/LongMath.src/M000125.html +4 -18
  135. data/doc/classes/LongMath.src/M000126.html +4 -5
  136. data/doc/classes/LongMath.src/M000127.html +5 -29
  137. data/doc/classes/LongMath.src/M000128.html +4 -5
  138. data/doc/classes/LongMath.src/M000129.html +14 -53
  139. data/doc/classes/LongMath.src/M000130.html +17 -20
  140. data/doc/classes/LongMath.src/M000131.html +5 -36
  141. data/doc/classes/LongMath.src/M000132.html +29 -6
  142. data/doc/classes/LongMath.src/M000133.html +5 -33
  143. data/doc/classes/LongMath.src/M000134.html +47 -41
  144. data/doc/classes/LongMath.src/M000135.html +21 -7
  145. data/doc/classes/LongMath.src/M000136.html +36 -4
  146. data/doc/classes/LongMath.src/M000137.html +6 -4
  147. data/doc/classes/LongMath.src/M000138.html +31 -70
  148. data/doc/classes/LongMath.src/M000139.html +45 -38
  149. data/doc/classes/LongMath.src/M000140.html +7 -4
  150. data/doc/classes/LongMath.src/M000141.html +4 -4
  151. data/doc/classes/LongMath.src/M000142.html +4 -6
  152. data/doc/classes/LongMath.src/M000143.html +67 -14
  153. data/doc/classes/LongMath.src/M000144.html +39 -14
  154. data/doc/classes/LongMath.src/M000145.html +4 -44
  155. data/doc/classes/LongMath.src/M000146.html +5 -339
  156. data/doc/classes/LongMath.src/M000147.html +6 -25
  157. data/doc/classes/LongMath.src/M000148.html +14 -75
  158. data/doc/classes/LongMath.src/M000149.html +33 -0
  159. data/doc/classes/LongMath.src/M000150.html +58 -0
  160. data/doc/classes/LongMath.src/M000151.html +406 -0
  161. data/doc/classes/LongMath.src/M000152.html +63 -0
  162. data/doc/classes/LongMath.src/M000153.html +117 -0
  163. data/doc/classes/LongMath.src/M000154.html +150 -0
  164. data/doc/classes/LongMath.src/M000155.html +63 -0
  165. data/doc/classes/LongMath.src/M000156.html +18 -0
  166. data/doc/classes/LongMath.src/M000157.html +19 -0
  167. data/doc/classes/LongMath.src/M000158.html +18 -0
  168. data/doc/classes/LongMath.src/M000159.html +19 -0
  169. data/doc/classes/Numeric.html +23 -21
  170. data/doc/classes/Numeric.src/M000106.html +18 -0
  171. data/doc/classes/Numeric.src/M000110.html +23 -0
  172. data/doc/classes/Numeric.src/M000111.html +18 -0
  173. data/doc/classes/Rational.html +18 -16
  174. data/doc/classes/Rational.src/M000107.html +23 -0
  175. data/doc/classes/Rational.src/M000112.html +23 -0
  176. data/doc/created.rid +1 -1
  177. data/doc/dot/f_0.dot +23 -1
  178. data/doc/dot/f_0.png +0 -0
  179. data/doc/dot/m_0_0.png +0 -0
  180. data/doc/dot/m_0_1.dot +13 -0
  181. data/doc/dot/m_0_1.png +0 -0
  182. data/doc/files/lib/long-decimal_rb.html +15 -13
  183. data/doc/files/lib/long-decimal_rb.src/M000001.html +1 -1
  184. data/doc/files/lib/long-decimal_rb.src/M000002.html +1 -1
  185. data/doc/fr_class_index.html +2 -0
  186. data/doc/fr_method_index.html +131 -124
  187. data/lib/long-decimal.rb +373 -49
  188. data/test/testlongdecimal.rb +689 -7
  189. data/test/testlongdeclib.rb +51 -11
  190. data/test/testrandlib.rb +23 -7
  191. data/test/testrandom.rb +4 -4
  192. data/test/testrandpower.rb +11 -9
  193. metadata +48 -3
@@ -5,14 +5,18 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>~ (LongDecimal)</title>
8
+ <title>divmod (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1009</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">~</span>
15
- <span class="ruby-constant">LongDecimal</span>(<span class="ruby-operator">~</span><span class="ruby-identifier">int_val</span>, <span class="ruby-identifier">scale</span>)
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1223</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>
16
20
  <span class="ruby-keyword kw">end</span></pre>
17
21
  </body>
18
22
  </html>
@@ -5,17 +5,15 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>&lt;&lt; (LongDecimal)</title>
8
+ <title>% (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1016</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">other</span>)
15
- <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Fixnum</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>
16
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;cannot shift by something other than Fixnum &gt;= 0&quot;</span>
17
- <span class="ruby-keyword kw">end</span>
18
- <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">int_val</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">other</span>, <span class="ruby-identifier">scale</span>)
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1234</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>
19
17
  <span class="ruby-keyword kw">end</span></pre>
20
18
  </body>
21
19
  </html>
@@ -5,17 +5,19 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>&gt;&gt; (LongDecimal)</title>
8
+ <title>&amp; (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1026</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&gt;&gt;</span>(<span class="ruby-identifier">other</span>)
15
- <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Fixnum</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>
16
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;cannot shift by something other than Fixnum &gt;= 0&quot;</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1242</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&amp;</span>(<span class="ruby-identifier">other</span>)
15
+ <span class="ruby-identifier">s</span>, <span class="ruby-identifier">o</span> = <span class="ruby-identifier">equalize_scale</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">LongDecimal</span> <span class="ruby-keyword kw">then</span>
17
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">s</span>.<span class="ruby-identifier">int_val</span> <span class="ruby-operator">&amp;</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">int_val</span>, <span class="ruby-identifier">s</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">&amp;</span> <span class="ruby-identifier">o</span>
17
20
  <span class="ruby-keyword kw">end</span>
18
- <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">int_val</span> <span class="ruby-operator">&gt;&gt;</span> <span class="ruby-identifier">other</span>, <span class="ruby-identifier">scale</span>)
19
21
  <span class="ruby-keyword kw">end</span></pre>
20
22
  </body>
21
23
  </html>
@@ -5,14 +5,19 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>[] (LongDecimal)</title>
8
+ <title>| (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1036</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">int_val</span>[<span class="ruby-identifier">other</span>]
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1254</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">s</span>, <span class="ruby-identifier">o</span> = <span class="ruby-identifier">equalize_scale</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">LongDecimal</span> <span class="ruby-keyword kw">then</span>
17
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">s</span>.<span class="ruby-identifier">int_val</span> <span class="ruby-operator">|</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">int_val</span>, <span class="ruby-identifier">s</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>
16
21
  <span class="ruby-keyword kw">end</span></pre>
17
22
  </body>
18
23
  </html>
@@ -5,14 +5,19 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>size (LongDecimal)</title>
8
+ <title>^ (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1043</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">size</span>
15
- <span class="ruby-identifier">int_val</span>.<span class="ruby-identifier">size</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1266</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">s</span>, <span class="ruby-identifier">o</span> = <span class="ruby-identifier">equalize_scale</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">LongDecimal</span> <span class="ruby-keyword kw">then</span>
17
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">s</span>.<span class="ruby-identifier">int_val</span> <span class="ruby-operator">^</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">int_val</span>, <span class="ruby-identifier">s</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>
16
21
  <span class="ruby-keyword kw">end</span></pre>
17
22
  </body>
18
23
  </html>
@@ -5,19 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>move_point_left (LongDecimal)</title>
8
+ <title>~ (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1050</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move_point_left</span>(<span class="ruby-identifier">n</span>)
15
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;only implemented for Fixnum&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Fixnum</span>
16
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
17
- <span class="ruby-identifier">move_point_left_int</span>(<span class="ruby-identifier">n</span>)
18
- <span class="ruby-keyword kw">else</span>
19
- <span class="ruby-identifier">move_point_right_int</span>(<span class="ruby-operator">-</span><span class="ruby-identifier">n</span>)
20
- <span class="ruby-keyword kw">end</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1278</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">~</span>
15
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-operator">~</span><span class="ruby-identifier">int_val</span>, <span class="ruby-identifier">scale</span>)
21
16
  <span class="ruby-keyword kw">end</span></pre>
22
17
  </body>
23
18
  </html>
@@ -5,19 +5,17 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>move_point_right (LongDecimal)</title>
8
+ <title>&lt;&lt; (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1062</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move_point_right</span>(<span class="ruby-identifier">n</span>)
15
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;only implemented for Fixnum&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Fixnum</span>
16
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">n</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
17
- <span class="ruby-identifier">move_point_left_int</span>(<span class="ruby-operator">-</span><span class="ruby-identifier">n</span>)
18
- <span class="ruby-keyword kw">else</span>
19
- <span class="ruby-identifier">move_point_right_int</span>(<span class="ruby-identifier">n</span>)
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1285</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">other</span>)
15
+ <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Fixnum</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>
16
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;cannot shift by something other than Fixnum &gt;= 0&quot;</span>
20
17
  <span class="ruby-keyword kw">end</span>
18
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">int_val</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">other</span>, <span class="ruby-identifier">scale</span>)
21
19
  <span class="ruby-keyword kw">end</span></pre>
22
20
  </body>
23
21
  </html>
@@ -5,15 +5,17 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>move_point_left_int (LongDecimal)</title>
8
+ <title>&gt;&gt; (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1075</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move_point_left_int</span>(<span class="ruby-identifier">n</span>)
15
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;only implemented for Fixnum &gt;= 0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
16
- <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">int_val</span>, <span class="ruby-identifier">scale</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">n</span>)
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1295</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&gt;&gt;</span>(<span class="ruby-identifier">other</span>)
15
+ <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Fixnum</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>
16
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;cannot shift by something other than Fixnum &gt;= 0&quot;</span>
17
+ <span class="ruby-keyword kw">end</span>
18
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">int_val</span> <span class="ruby-operator">&gt;&gt;</span> <span class="ruby-identifier">other</span>, <span class="ruby-identifier">scale</span>)
17
19
  <span class="ruby-keyword kw">end</span></pre>
18
20
  </body>
19
21
  </html>
@@ -5,19 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>move_point_right_int (LongDecimal)</title>
8
+ <title>[] (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1084</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move_point_right_int</span>(<span class="ruby-identifier">n</span>)
15
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;only implemented for Fixnum &gt;= 0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
16
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scale</span>) <span class="ruby-keyword kw">then</span>
17
- <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">int_val</span> <span class="ruby-operator">*</span> <span class="ruby-value">10</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">n</span><span class="ruby-operator">-</span><span class="ruby-identifier">scale</span>), <span class="ruby-value">0</span>)
18
- <span class="ruby-keyword kw">else</span>
19
- <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">int_val</span>, <span class="ruby-identifier">scale</span><span class="ruby-operator">-</span><span class="ruby-identifier">n</span>)
20
- <span class="ruby-keyword kw">end</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1305</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">int_val</span>[<span class="ruby-identifier">other</span>]
21
16
  <span class="ruby-keyword kw">end</span></pre>
22
17
  </body>
23
18
  </html>
@@ -5,14 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>square (LongDecimal)</title>
8
+ <title>size (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1098</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>
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1312</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">size</span>
15
+ <span class="ruby-identifier">int_val</span>.<span class="ruby-identifier">size</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -5,14 +5,19 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>sqrt (LongDecimal)</title>
8
+ <title>move_point_left (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1108</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sqrt</span>(<span class="ruby-identifier">new_scale</span>, <span class="ruby-identifier">rounding_mode</span>)
15
- <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">sqrt</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">new_scale</span>, <span class="ruby-identifier">rounding_mode</span>)
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1319</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move_point_left</span>(<span class="ruby-identifier">n</span>)
15
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;only implemented for Fixnum&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Fixnum</span>
16
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
17
+ <span class="ruby-identifier">move_point_left_int</span>(<span class="ruby-identifier">n</span>)
18
+ <span class="ruby-keyword kw">else</span>
19
+ <span class="ruby-identifier">move_point_right_int</span>(<span class="ruby-operator">-</span><span class="ruby-identifier">n</span>)
20
+ <span class="ruby-keyword kw">end</span>
16
21
  <span class="ruby-keyword kw">end</span></pre>
17
22
  </body>
18
23
  </html>
@@ -5,14 +5,19 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>sqrt_with_remainder (LongDecimal)</title>
8
+ <title>move_point_right (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1118</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sqrt_with_remainder</span>(<span class="ruby-identifier">new_scale</span>)
15
- <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">sqrt_with_remainder</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">new_scale</span>)
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1331</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move_point_right</span>(<span class="ruby-identifier">n</span>)
15
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;only implemented for Fixnum&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Fixnum</span>
16
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">n</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
17
+ <span class="ruby-identifier">move_point_left_int</span>(<span class="ruby-operator">-</span><span class="ruby-identifier">n</span>)
18
+ <span class="ruby-keyword kw">else</span>
19
+ <span class="ruby-identifier">move_point_right_int</span>(<span class="ruby-identifier">n</span>)
20
+ <span class="ruby-keyword kw">end</span>
16
21
  <span class="ruby-keyword kw">end</span></pre>
17
22
  </body>
18
23
  </html>
@@ -5,14 +5,15 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>abs (LongDecimal)</title>
8
+ <title>move_point_left_int (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1125</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">abs</span>
15
- <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">int_val</span>.<span class="ruby-identifier">abs</span>, <span class="ruby-identifier">scale</span>)
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1344</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move_point_left_int</span>(<span class="ruby-identifier">n</span>)
15
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;only implemented for Fixnum &gt;= 0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
16
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">int_val</span>, <span class="ruby-identifier">scale</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">n</span>)
16
17
  <span class="ruby-keyword kw">end</span></pre>
17
18
  </body>
18
19
  </html>
@@ -5,68 +5,18 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>coerce (LongDecimal)</title>
8
+ <title>move_point_right_int (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1134</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coerce</span>(<span class="ruby-identifier">other</span>)
15
-
16
- <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-keyword kw">then</span>
17
- <span class="ruby-comment cmt"># if other is LongDecimal as well, nothing to do</span>
18
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">other</span>, <span class="ruby-keyword kw">self</span>
19
-
20
- <span class="ruby-keyword kw">elsif</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>
21
- <span class="ruby-comment cmt"># if other is LongDecimalQuot, convert self to LongDecimalQuot</span>
22
- <span class="ruby-comment cmt"># as well</span>
23
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">other</span>, <span class="ruby-constant">LongDecimalQuot</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_r</span>, <span class="ruby-identifier">scale</span>)
24
-
25
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Rational</span> <span class="ruby-keyword kw">then</span>
26
- <span class="ruby-comment cmt"># if other is Rational, convert self and other to</span>
27
- <span class="ruby-comment cmt"># LongDecimalQuot. This is well adapted to cover both.</span>
28
- <span class="ruby-identifier">sc</span> = <span class="ruby-identifier">scale</span>
29
- <span class="ruby-identifier">o</span> = <span class="ruby-constant">LongDecimalQuot</span>(<span class="ruby-identifier">other</span>, <span class="ruby-identifier">sc</span>)
30
- <span class="ruby-identifier">s</span> = <span class="ruby-constant">LongDecimalQuot</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_r</span>, <span class="ruby-identifier">sc</span>)
31
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>, <span class="ruby-identifier">s</span>
32
-
33
- <span class="ruby-comment cmt"># we could use BigDecimal as common type for combining Float and</span>
34
- <span class="ruby-comment cmt"># LongDecimal, but this needs a lot of consideration. For the</span>
35
- <span class="ruby-comment cmt"># time being we assume that we live well enough with converting</span>
36
- <span class="ruby-comment cmt"># Float into LongDecimal</span>
37
- <span class="ruby-comment cmt"># elsif (other.kind_of? Float) &amp;&amp; size &gt; 8 then</span>
38
- <span class="ruby-comment cmt"># return coerce(BigDecimal(other.to_s))</span>
39
-
40
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Integer</span>) <span class="ruby-operator">||</span> (<span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Float</span>) <span class="ruby-keyword kw">then</span>
41
- <span class="ruby-comment cmt"># if other is Integer or Float, convert it to LongDecimal</span>
42
- <span class="ruby-identifier">other</span> = <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">other</span>)
43
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">other</span>.<span class="ruby-identifier">scale</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scale</span>) <span class="ruby-keyword kw">then</span>
44
- <span class="ruby-identifier">other</span> = <span class="ruby-identifier">other</span>.<span class="ruby-identifier">round_to_scale</span>(<span class="ruby-identifier">scale</span>, <span class="ruby-constant">ROUND_HALF_UP</span>)
45
- <span class="ruby-keyword kw">end</span>
46
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">other</span>, <span class="ruby-keyword kw">self</span>
47
-
48
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">BigDecimal</span> <span class="ruby-keyword kw">then</span>
49
- <span class="ruby-comment cmt"># if other is BigDecimal convert self to BigDecimal</span>
50
- <span class="ruby-identifier">s</span>, <span class="ruby-identifier">o</span> = <span class="ruby-identifier">other</span>.<span class="ruby-identifier">coerce</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_bd</span>)
51
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>, <span class="ruby-identifier">s</span>
52
-
53
- <span class="ruby-keyword kw">elsif</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>
54
- <span class="ruby-comment cmt"># if other is Complex, convert self to Float and then to</span>
55
- <span class="ruby-comment cmt"># Complex. It need to be observed that this will fail if self</span>
56
- <span class="ruby-comment cmt"># has too many digits before the decimal point to be expressed</span>
57
- <span class="ruby-comment cmt"># as Float.</span>
58
- <span class="ruby-identifier">s</span>, <span class="ruby-identifier">o</span> = <span class="ruby-identifier">other</span>.<span class="ruby-identifier">coerce</span>(<span class="ruby-constant">Complex</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_f</span>, <span class="ruby-value">0</span>))
59
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>, <span class="ruby-identifier">s</span>
60
-
61
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Numeric</span> <span class="ruby-keyword kw">then</span>
62
- <span class="ruby-comment cmt"># all other go by expressing self as Float and seeing how it</span>
63
- <span class="ruby-comment cmt"># combines with other.</span>
64
- <span class="ruby-identifier">s</span>, <span class="ruby-identifier">o</span> = <span class="ruby-identifier">other</span>.<span class="ruby-identifier">coerce</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_f</span>)
65
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>, <span class="ruby-identifier">s</span>
66
-
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1353</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move_point_right_int</span>(<span class="ruby-identifier">n</span>)
15
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;only implemented for Fixnum &gt;= 0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
16
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scale</span>) <span class="ruby-keyword kw">then</span>
17
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">int_val</span> <span class="ruby-operator">*</span> <span class="ruby-value">10</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">n</span><span class="ruby-operator">-</span><span class="ruby-identifier">scale</span>), <span class="ruby-value">0</span>)
67
18
  <span class="ruby-keyword kw">else</span>
68
- <span class="ruby-comment cmt"># non-numeric types do not work here</span>
69
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">&quot;unsupported type #{other.inspect} for coerce of LongDecimal&quot;</span>
19
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">int_val</span>, <span class="ruby-identifier">scale</span><span class="ruby-operator">-</span><span class="ruby-identifier">n</span>)
70
20
  <span class="ruby-keyword kw">end</span>
71
21
  <span class="ruby-keyword kw">end</span></pre>
72
22
  </body>
@@ -5,14 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>is_int? (LongDecimal)</title>
8
+ <title>square (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1196</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_int?</span>
15
- <span class="ruby-identifier">scale</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">int_val</span> <span class="ruby-operator">%</span> <span class="ruby-value">10</span><span class="ruby-operator">**</span><span class="ruby-identifier">scale</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1367</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
16
  <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -5,14 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>sgn (LongDecimal)</title>
8
+ <title>sqrt (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1206</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sgn</span>
15
- <span class="ruby-identifier">int_val</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-value">0</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1377</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sqrt</span>(<span class="ruby-identifier">new_scale</span>, <span class="ruby-identifier">rounding_mode</span>)
15
+ <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">sqrt</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">new_scale</span>, <span class="ruby-identifier">rounding_mode</span>)
16
16
  <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -5,15 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>=== (LongDecimal)</title>
8
+ <title>sqrt_with_remainder (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1156</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">===</span>(<span class="ruby-identifier">other</span>)
15
- <span class="ruby-comment cmt"># (other.kind_of? LongDecimal) &amp;&amp; self.int_val == other.int_val</span>
16
- (<span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">other</span>).<span class="ruby-identifier">zero?</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1387</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sqrt_with_remainder</span>(<span class="ruby-identifier">new_scale</span>)
15
+ <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">sqrt_with_remainder</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">new_scale</span>)
17
16
  <span class="ruby-keyword kw">end</span></pre>
18
17
  </body>
19
18
  </html>
@@ -5,15 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>== (LongDecimal)</title>
8
+ <title>abs (LongDecimal)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1174</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">other</span>)
15
- <span class="ruby-comment cmt"># (other.kind_of? LongDecimal) &amp;&amp; (self &lt;=&gt; other) == 0 &amp;&amp; self.scale == other.scale</span>
16
- (<span class="ruby-identifier">other</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimal</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">int_val</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">int_val</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scale</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">scale</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 1394</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">abs</span>
15
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-identifier">int_val</span>.<span class="ruby-identifier">abs</span>, <span class="ruby-identifier">scale</span>)
17
16
  <span class="ruby-keyword kw">end</span></pre>
18
17
  </body>
19
18
  </html>