long-decimal 0.01.02 → 0.01.03

Sign up to get free protection for your applications and to get access to all the features.
Files changed (262) hide show
  1. data/README +58 -33
  2. data/Rakefile +1 -1
  3. data/VERSION +1 -1
  4. data/lib/long-decimal-extra.rb +378 -0
  5. data/lib/long-decimal.rb +277 -342
  6. data/test/testlongdecimal-extra.rb +645 -0
  7. data/test/testlongdecimal.rb +4 -605
  8. data/test/testlongdeclib.rb +4 -4
  9. data/test/testrandlib.rb +1 -1
  10. data/test/testrandom-extra.rb +76 -0
  11. data/test/testrandom.rb +4 -7
  12. data/test/testrandpower.rb +7 -4
  13. data/version.rb +1 -1
  14. metadata +5 -268
  15. data/doc/classes/Integer.html +0 -239
  16. data/doc/classes/Integer.src/M000036.html +0 -18
  17. data/doc/classes/Integer.src/M000039.html +0 -145
  18. data/doc/classes/LongDecimal.html +0 -1602
  19. data/doc/classes/LongDecimal.src/M000034.html +0 -18
  20. data/doc/classes/LongDecimal.src/M000035.html +0 -18
  21. data/doc/classes/LongDecimal.src/M000036.html +0 -18
  22. data/doc/classes/LongDecimal.src/M000037.html +0 -18
  23. data/doc/classes/LongDecimal.src/M000038.html +0 -18
  24. data/doc/classes/LongDecimal.src/M000039.html +0 -18
  25. data/doc/classes/LongDecimal.src/M000040.html +0 -18
  26. data/doc/classes/LongDecimal.src/M000041.html +0 -18
  27. data/doc/classes/LongDecimal.src/M000042.html +0 -18
  28. data/doc/classes/LongDecimal.src/M000043.html +0 -18
  29. data/doc/classes/LongDecimal.src/M000044.html +0 -18
  30. data/doc/classes/LongDecimal.src/M000045.html +0 -18
  31. data/doc/classes/LongDecimal.src/M000046.html +0 -20
  32. data/doc/classes/LongDecimal.src/M000047.html +0 -120
  33. data/doc/classes/LongDecimal.src/M000048.html +0 -35
  34. data/doc/classes/LongDecimal.src/M000049.html +0 -25
  35. data/doc/classes/LongDecimal.src/M000050.html +0 -41
  36. data/doc/classes/LongDecimal.src/M000051.html +0 -48
  37. data/doc/classes/LongDecimal.src/M000052.html +0 -33
  38. data/doc/classes/LongDecimal.src/M000053.html +0 -18
  39. data/doc/classes/LongDecimal.src/M000054.html +0 -29
  40. data/doc/classes/LongDecimal.src/M000055.html +0 -61
  41. data/doc/classes/LongDecimal.src/M000056.html +0 -18
  42. data/doc/classes/LongDecimal.src/M000057.html +0 -22
  43. data/doc/classes/LongDecimal.src/M000058.html +0 -20
  44. data/doc/classes/LongDecimal.src/M000059.html +0 -18
  45. data/doc/classes/LongDecimal.src/M000060.html +0 -29
  46. data/doc/classes/LongDecimal.src/M000061.html +0 -21
  47. data/doc/classes/LongDecimal.src/M000062.html +0 -18
  48. data/doc/classes/LongDecimal.src/M000063.html +0 -29
  49. data/doc/classes/LongDecimal.src/M000064.html +0 -27
  50. data/doc/classes/LongDecimal.src/M000065.html +0 -18
  51. data/doc/classes/LongDecimal.src/M000066.html +0 -18
  52. data/doc/classes/LongDecimal.src/M000067.html +0 -18
  53. data/doc/classes/LongDecimal.src/M000068.html +0 -19
  54. data/doc/classes/LongDecimal.src/M000069.html +0 -19
  55. data/doc/classes/LongDecimal.src/M000070.html +0 -18
  56. data/doc/classes/LongDecimal.src/M000071.html +0 -18
  57. data/doc/classes/LongDecimal.src/M000072.html +0 -22
  58. data/doc/classes/LongDecimal.src/M000073.html +0 -23
  59. data/doc/classes/LongDecimal.src/M000074.html +0 -23
  60. data/doc/classes/LongDecimal.src/M000075.html +0 -23
  61. data/doc/classes/LongDecimal.src/M000076.html +0 -18
  62. data/doc/classes/LongDecimal.src/M000077.html +0 -33
  63. data/doc/classes/LongDecimal.src/M000078.html +0 -23
  64. data/doc/classes/LongDecimal.src/M000079.html +0 -23
  65. data/doc/classes/LongDecimal.src/M000080.html +0 -35
  66. data/doc/classes/LongDecimal.src/M000081.html +0 -22
  67. data/doc/classes/LongDecimal.src/M000082.html +0 -19
  68. data/doc/classes/LongDecimal.src/M000083.html +0 -23
  69. data/doc/classes/LongDecimal.src/M000084.html +0 -23
  70. data/doc/classes/LongDecimal.src/M000085.html +0 -23
  71. data/doc/classes/LongDecimal.src/M000086.html +0 -18
  72. data/doc/classes/LongDecimal.src/M000087.html +0 -21
  73. data/doc/classes/LongDecimal.src/M000088.html +0 -21
  74. data/doc/classes/LongDecimal.src/M000089.html +0 -18
  75. data/doc/classes/LongDecimal.src/M000090.html +0 -18
  76. data/doc/classes/LongDecimal.src/M000091.html +0 -23
  77. data/doc/classes/LongDecimal.src/M000092.html +0 -23
  78. data/doc/classes/LongDecimal.src/M000093.html +0 -19
  79. data/doc/classes/LongDecimal.src/M000094.html +0 -23
  80. data/doc/classes/LongDecimal.src/M000095.html +0 -18
  81. data/doc/classes/LongDecimal.src/M000096.html +0 -18
  82. data/doc/classes/LongDecimal.src/M000097.html +0 -18
  83. data/doc/classes/LongDecimal.src/M000098.html +0 -18
  84. data/doc/classes/LongDecimal.src/M000099.html +0 -73
  85. data/doc/classes/LongDecimal.src/M000100.html +0 -18
  86. data/doc/classes/LongDecimal.src/M000101.html +0 -18
  87. data/doc/classes/LongDecimal.src/M000102.html +0 -18
  88. data/doc/classes/LongDecimal.src/M000103.html +0 -18
  89. data/doc/classes/LongDecimal.src/M000104.html +0 -19
  90. data/doc/classes/LongDecimal.src/M000105.html +0 -19
  91. data/doc/classes/LongDecimal.src/M000106.html +0 -18
  92. data/doc/classes/LongDecimal.src/M000107.html +0 -18
  93. data/doc/classes/LongDecimal.src/M000108.html +0 -18
  94. data/doc/classes/LongDecimal.src/M000109.html +0 -18
  95. data/doc/classes/LongDecimalBase.html +0 -359
  96. data/doc/classes/LongDecimalBase.src/M000101.html +0 -18
  97. data/doc/classes/LongDecimalBase.src/M000102.html +0 -18
  98. data/doc/classes/LongDecimalBase.src/M000103.html +0 -18
  99. data/doc/classes/LongDecimalBase.src/M000104.html +0 -18
  100. data/doc/classes/LongDecimalBase.src/M000105.html +0 -18
  101. data/doc/classes/LongDecimalBase.src/M000106.html +0 -18
  102. data/doc/classes/LongDecimalBase.src/M000107.html +0 -18
  103. data/doc/classes/LongDecimalBase.src/M000108.html +0 -18
  104. data/doc/classes/LongDecimalBase.src/M000109.html +0 -18
  105. data/doc/classes/LongDecimalBase.src/M000110.html +0 -18
  106. data/doc/classes/LongDecimalBase.src/M000111.html +0 -18
  107. data/doc/classes/LongDecimalBase.src/M000112.html +0 -18
  108. data/doc/classes/LongDecimalBase.src/M000113.html +0 -18
  109. data/doc/classes/LongDecimalBase.src/M000114.html +0 -18
  110. data/doc/classes/LongDecimalBase.src/M000115.html +0 -18
  111. data/doc/classes/LongDecimalBase.src/M000116.html +0 -18
  112. data/doc/classes/LongDecimalBase.src/M000117.html +0 -18
  113. data/doc/classes/LongDecimalBase.src/M000118.html +0 -23
  114. data/doc/classes/LongDecimalBase.src/M000121.html +0 -23
  115. data/doc/classes/LongDecimalBase.src/M000122.html +0 -19
  116. data/doc/classes/LongDecimalBase.src/M000123.html +0 -18
  117. data/doc/classes/LongDecimalQuot.html +0 -836
  118. data/doc/classes/LongDecimalQuot.src/M000003.html +0 -18
  119. data/doc/classes/LongDecimalQuot.src/M000004.html +0 -46
  120. data/doc/classes/LongDecimalQuot.src/M000005.html +0 -18
  121. data/doc/classes/LongDecimalQuot.src/M000006.html +0 -18
  122. data/doc/classes/LongDecimalQuot.src/M000007.html +0 -20
  123. data/doc/classes/LongDecimalQuot.src/M000008.html +0 -19
  124. data/doc/classes/LongDecimalQuot.src/M000009.html +0 -18
  125. data/doc/classes/LongDecimalQuot.src/M000010.html +0 -18
  126. data/doc/classes/LongDecimalQuot.src/M000011.html +0 -18
  127. data/doc/classes/LongDecimalQuot.src/M000012.html +0 -18
  128. data/doc/classes/LongDecimalQuot.src/M000013.html +0 -32
  129. data/doc/classes/LongDecimalQuot.src/M000014.html +0 -19
  130. data/doc/classes/LongDecimalQuot.src/M000015.html +0 -19
  131. data/doc/classes/LongDecimalQuot.src/M000016.html +0 -22
  132. data/doc/classes/LongDecimalQuot.src/M000017.html +0 -23
  133. data/doc/classes/LongDecimalQuot.src/M000018.html +0 -23
  134. data/doc/classes/LongDecimalQuot.src/M000019.html +0 -23
  135. data/doc/classes/LongDecimalQuot.src/M000020.html +0 -23
  136. data/doc/classes/LongDecimalQuot.src/M000021.html +0 -35
  137. data/doc/classes/LongDecimalQuot.src/M000022.html +0 -22
  138. data/doc/classes/LongDecimalQuot.src/M000023.html +0 -19
  139. data/doc/classes/LongDecimalQuot.src/M000024.html +0 -18
  140. data/doc/classes/LongDecimalQuot.src/M000025.html +0 -127
  141. data/doc/classes/LongDecimalQuot.src/M000026.html +0 -52
  142. data/doc/classes/LongDecimalQuot.src/M000027.html +0 -18
  143. data/doc/classes/LongDecimalQuot.src/M000028.html +0 -18
  144. data/doc/classes/LongDecimalQuot.src/M000029.html +0 -18
  145. data/doc/classes/LongDecimalQuot.src/M000030.html +0 -18
  146. data/doc/classes/LongDecimalQuot.src/M000031.html +0 -18
  147. data/doc/classes/LongDecimalQuot.src/M000032.html +0 -18
  148. data/doc/classes/LongDecimalQuot.src/M000033.html +0 -18
  149. data/doc/classes/LongDecimalQuot.src/M000034.html +0 -18
  150. data/doc/classes/LongDecimalQuot.src/M000035.html +0 -18
  151. data/doc/classes/LongDecimalRoundingMode.html +0 -242
  152. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.html +0 -214
  153. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000135.html +0 -22
  154. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000137.html +0 -22
  155. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000138.html +0 -22
  156. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000141.html +0 -22
  157. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000142.html +0 -18
  158. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000146.html +0 -22
  159. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000147.html +0 -18
  160. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000148.html +0 -22
  161. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000149.html +0 -18
  162. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000150.html +0 -22
  163. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000151.html +0 -18
  164. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000152.html +0 -18
  165. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000156.html +0 -22
  166. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000157.html +0 -18
  167. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000158.html +0 -18
  168. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000159.html +0 -18
  169. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000161.html +0 -25
  170. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000162.html +0 -18
  171. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000163.html +0 -18
  172. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000164.html +0 -18
  173. data/doc/classes/LongDecimalRoundingMode/ZeroRoundingModeClass.html +0 -178
  174. data/doc/classes/LongDecimalRoundingMode/ZeroRoundingModeClass.src/M000165.html +0 -25
  175. data/doc/classes/LongDecimalRoundingMode/ZeroRoundingModeClass.src/M000166.html +0 -18
  176. data/doc/classes/LongMath.html +0 -911
  177. data/doc/classes/LongMath.src/M000112.html +0 -19
  178. data/doc/classes/LongMath.src/M000113.html +0 -19
  179. data/doc/classes/LongMath.src/M000114.html +0 -18
  180. data/doc/classes/LongMath.src/M000115.html +0 -19
  181. data/doc/classes/LongMath.src/M000116.html +0 -19
  182. data/doc/classes/LongMath.src/M000117.html +0 -18
  183. data/doc/classes/LongMath.src/M000118.html +0 -19
  184. data/doc/classes/LongMath.src/M000119.html +0 -19
  185. data/doc/classes/LongMath.src/M000120.html +0 -18
  186. data/doc/classes/LongMath.src/M000121.html +0 -18
  187. data/doc/classes/LongMath.src/M000122.html +0 -19
  188. data/doc/classes/LongMath.src/M000123.html +0 -18
  189. data/doc/classes/LongMath.src/M000124.html +0 -19
  190. data/doc/classes/LongMath.src/M000125.html +0 -18
  191. data/doc/classes/LongMath.src/M000126.html +0 -18
  192. data/doc/classes/LongMath.src/M000127.html +0 -19
  193. data/doc/classes/LongMath.src/M000128.html +0 -18
  194. data/doc/classes/LongMath.src/M000129.html +0 -32
  195. data/doc/classes/LongMath.src/M000130.html +0 -32
  196. data/doc/classes/LongMath.src/M000131.html +0 -19
  197. data/doc/classes/LongMath.src/M000132.html +0 -43
  198. data/doc/classes/LongMath.src/M000133.html +0 -19
  199. data/doc/classes/LongMath.src/M000134.html +0 -71
  200. data/doc/classes/LongMath.src/M000135.html +0 -35
  201. data/doc/classes/LongMath.src/M000136.html +0 -50
  202. data/doc/classes/LongMath.src/M000137.html +0 -20
  203. data/doc/classes/LongMath.src/M000138.html +0 -47
  204. data/doc/classes/LongMath.src/M000139.html +0 -65
  205. data/doc/classes/LongMath.src/M000140.html +0 -21
  206. data/doc/classes/LongMath.src/M000141.html +0 -18
  207. data/doc/classes/LongMath.src/M000142.html +0 -18
  208. data/doc/classes/LongMath.src/M000143.html +0 -87
  209. data/doc/classes/LongMath.src/M000144.html +0 -58
  210. data/doc/classes/LongMath.src/M000145.html +0 -18
  211. data/doc/classes/LongMath.src/M000146.html +0 -18
  212. data/doc/classes/LongMath.src/M000147.html +0 -20
  213. data/doc/classes/LongMath.src/M000148.html +0 -34
  214. data/doc/classes/LongMath.src/M000149.html +0 -33
  215. data/doc/classes/LongMath.src/M000150.html +0 -58
  216. data/doc/classes/LongMath.src/M000151.html +0 -406
  217. data/doc/classes/LongMath.src/M000152.html +0 -63
  218. data/doc/classes/LongMath.src/M000153.html +0 -117
  219. data/doc/classes/LongMath.src/M000154.html +0 -150
  220. data/doc/classes/LongMath.src/M000155.html +0 -63
  221. data/doc/classes/LongMath.src/M000156.html +0 -18
  222. data/doc/classes/LongMath.src/M000157.html +0 -19
  223. data/doc/classes/LongMath.src/M000158.html +0 -18
  224. data/doc/classes/LongMath.src/M000159.html +0 -19
  225. data/doc/classes/LongMath/CacheKey.html +0 -164
  226. data/doc/classes/LongMath/CacheKey.src/M000140.html +0 -36
  227. data/doc/classes/LongMath/CacheKey.src/M000145.html +0 -36
  228. data/doc/classes/LongMath/CacheKey.src/M000147.html +0 -36
  229. data/doc/classes/LongMath/CacheKey.src/M000149.html +0 -36
  230. data/doc/classes/LongMath/CacheKey.src/M000155.html +0 -36
  231. data/doc/classes/LongMath/CacheKey.src/M000160.html +0 -36
  232. data/doc/classes/Numeric.html +0 -177
  233. data/doc/classes/Numeric.src/M000100.html +0 -23
  234. data/doc/classes/Numeric.src/M000102.html +0 -23
  235. data/doc/classes/Numeric.src/M000103.html +0 -18
  236. data/doc/classes/Numeric.src/M000104.html +0 -23
  237. data/doc/classes/Numeric.src/M000105.html +0 -23
  238. data/doc/classes/Numeric.src/M000106.html +0 -18
  239. data/doc/classes/Numeric.src/M000110.html +0 -23
  240. data/doc/classes/Numeric.src/M000111.html +0 -18
  241. data/doc/classes/Rational.html +0 -161
  242. data/doc/classes/Rational.src/M000101.html +0 -23
  243. data/doc/classes/Rational.src/M000103.html +0 -23
  244. data/doc/classes/Rational.src/M000104.html +0 -23
  245. data/doc/classes/Rational.src/M000106.html +0 -23
  246. data/doc/classes/Rational.src/M000107.html +0 -23
  247. data/doc/classes/Rational.src/M000112.html +0 -23
  248. data/doc/created.rid +0 -1
  249. data/doc/dot/f_0.dot +0 -166
  250. data/doc/dot/f_0.png +0 -0
  251. data/doc/dot/m_0_0.dot +0 -59
  252. data/doc/dot/m_0_0.png +0 -0
  253. data/doc/dot/m_0_1.dot +0 -62
  254. data/doc/dot/m_0_1.png +0 -0
  255. data/doc/files/lib/long-decimal_rb.html +0 -191
  256. data/doc/files/lib/long-decimal_rb.src/M000001.html +0 -22
  257. data/doc/files/lib/long-decimal_rb.src/M000002.html +0 -18
  258. data/doc/fr_class_index.html +0 -37
  259. data/doc/fr_file_index.html +0 -27
  260. data/doc/fr_method_index.html +0 -192
  261. data/doc/index.html +0 -24
  262. data/doc/rdoc-style.css +0 -208
@@ -1,239 +0,0 @@
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 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: Integer</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">Integer</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../files/lib/long-decimal_rb.html">
59
- lib/long-decimal.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- Object
69
- </td>
70
- </tr>
71
- </table>
72
- </div>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
-
77
-
78
-
79
- <div id="contextContent">
80
- <div id="diagram">
81
- <map id="map" name="map">
82
- <area shape="rect" coords="94,7,171,55" href="Comparable.html" alt="Comparable" />
83
- <area shape="rect" coords="158,206,235,254" href="LongMath/CacheKey.html" alt="CacheKey" />
84
- <area shape="rect" coords="231,103,356,151" href="LongDecimalRoundingMode/RoundingModeClass.html" alt="RoundingModeClass" />
85
- <area shape="rect" coords="58,103,207,151" href="LongDecimalRoundingMode/ZeroRoundingModeClass.html" alt="ZeroRoundingModeClass" />
86
- <area shape="rect" coords="355,206,470,254" href="LongDecimalBase.html" alt="LongDecimalBase" />
87
- <area shape="rect" coords="294,302,406,350" href="LongDecimalQuot.html" alt="LongDecimalQuot" />
88
- <area shape="rect" coords="195,7,267,55" href="Integer.html" alt="Integer" />
89
- <area shape="rect" coords="430,302,520,350" href="LongDecimal.html" alt="LongDecimal" />
90
- <area shape="rect" coords="407,103,479,151" href="Numeric.html" alt="Numeric" />
91
- <area shape="rect" coords="291,7,363,55" href="Rational.html" alt="Rational" />
92
- <area shape="rect" coords="147,172,272,264" href="LongMath.html" alt="LongMath" />
93
- <area shape="rect" coords="47,70,394,162" href="LongDecimalRoundingMode.html" alt="LongDecimalRoundingMode" />
94
- </map>
95
- <img src="../dot/f_0.png" usemap="#map" border="0" alt="dot/f_0.png">
96
- </div>
97
-
98
- <div id="description">
99
- <p>
100
- add one method to <a href="Integer.html">Integer</a>
101
- </p>
102
-
103
- </div>
104
-
105
-
106
- </div>
107
-
108
- <div id="method-list">
109
- <h3 class="section-bar">Methods</h3>
110
-
111
- <div class="name-list">
112
- <a href="#M000039">round_to_allowed_remainders</a>&nbsp;&nbsp;
113
- <a href="#M000036">sgn</a>&nbsp;&nbsp;
114
- <a href="#M000038">sign</a>&nbsp;&nbsp;
115
- <a href="#M000037">signum</a>&nbsp;&nbsp;
116
- </div>
117
- </div>
118
-
119
- </div>
120
-
121
-
122
- <!-- if includes -->
123
-
124
- <div id="section">
125
-
126
-
127
-
128
-
129
-
130
-
131
-
132
-
133
- <!-- if method_list -->
134
- <div id="methods">
135
- <h3 class="section-bar">Public Instance methods</h3>
136
-
137
- <div id="method-M000039" class="method-detail">
138
- <a name="M000039"></a>
139
-
140
- <div class="method-heading">
141
- <a href="Integer.src/M000039.html" target="Code" class="method-signature"
142
- onclick="popupCode('Integer.src/M000039.html');return false;">
143
- <span class="method-name">round_to_allowed_remainders</span><span class="method-args">(remainders, modulus, rounding_mode = LongDecimalRoundingMode::ROUND_UNNECESSARY, zero_rounding_mode = LongDecimalRoundingMode::ZERO_ROUND_UNNECESSARY)</span>
144
- </a>
145
- </div>
146
-
147
- <div class="method-description">
148
- <p>
149
- create copy of self round in such a way that the result is congruent modulo
150
- modulus to one of the members of remainders
151
- </p>
152
- <p>
153
- param1: remainders array of allowed remainders param2: modulus modulus of
154
- the remainders param3: rounding_mode rounding mode to be applied when
155
- information is
156
- </p>
157
- <pre>
158
- lost. defaults to ROUND_UNNECESSARY, which
159
- means that an exception is thrown if rounding
160
- would actually loose any information.
161
- </pre>
162
- <p>
163
- param4: zero_rounding_mode if self is zero, but zero is not among
164
- </p>
165
- <pre>
166
- the available remainders, it has to be
167
- rounded to positive or negative value.
168
- If the rounding_mode does not allow to
169
- determine which of the two values to
170
- use, zero_rounding_mode has to be used
171
- to decide.
172
- </pre>
173
- </div>
174
- </div>
175
-
176
- <div id="method-M000036" class="method-detail">
177
- <a name="M000036"></a>
178
-
179
- <div class="method-heading">
180
- <a href="Integer.src/M000036.html" target="Code" class="method-signature"
181
- onclick="popupCode('Integer.src/M000036.html');return false;">
182
- <span class="method-name">sgn</span><span class="method-args">()</span>
183
- </a>
184
- </div>
185
-
186
- <div class="method-description">
187
- <p>
188
- get the <a href="Integer.html#M000038">sign</a> of self -1 if self &lt; 0
189
- </p>
190
- <pre>
191
- 0 if self is 0 (with any number of 0s after the decimal point)
192
- </pre>
193
- <p>
194
- +1 if self &gt; 0
195
- </p>
196
- </div>
197
- </div>
198
-
199
- <div id="method-M000038" class="method-detail">
200
- <a name="M000038"></a>
201
-
202
- <div class="method-heading">
203
- <span class="method-name">sign</span><span class="method-args">()</span>
204
- </div>
205
-
206
- <div class="method-description">
207
- <p>
208
- Alias for <a href="Integer.html#M000036">sgn</a>
209
- </p>
210
- </div>
211
- </div>
212
-
213
- <div id="method-M000037" class="method-detail">
214
- <a name="M000037"></a>
215
-
216
- <div class="method-heading">
217
- <span class="method-name">signum</span><span class="method-args">()</span>
218
- </div>
219
-
220
- <div class="method-description">
221
- <p>
222
- Alias for <a href="Integer.html#M000036">sgn</a>
223
- </p>
224
- </div>
225
- </div>
226
-
227
-
228
- </div>
229
-
230
-
231
- </div>
232
-
233
-
234
- <div id="validator-badges">
235
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
236
- </div>
237
-
238
- </body>
239
- </html>
@@ -1,18 +0,0 @@
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>sgn (Integer)</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/long-decimal.rb, line 154</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sgn</span>
15
- <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-value">0</span>
16
- <span class="ruby-keyword kw">end</span></pre>
17
- </body>
18
- </html>
@@ -1,145 +0,0 @@
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_allowed_remainders (Integer)</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/long-decimal.rb, line 179</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">round_to_allowed_remainders</span>(<span class="ruby-identifier">remainders</span>,
15
- <span class="ruby-identifier">modulus</span>,
16
- <span class="ruby-identifier">rounding_mode</span> = <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_UNNECESSARY</span>,
17
- <span class="ruby-identifier">zero_rounding_mode</span> = <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ZERO_ROUND_UNNECESSARY</span>)
18
-
19
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;remainders must be Array&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">remainders</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Array</span>
20
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;remainders must be non-empty Array&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">remainders</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
21
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">&quot;modulus #{modulus.inspect} must be integer&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">modulus</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Integer</span>
22
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">&quot;modulus #{modulus.inspect} must be &gt;= 2&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">modulus</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">2</span>
23
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">&quot;rounding_mode #{rounding_mode.inspect} must be legal rounding rounding_mode&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">rounding_mode</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">RoundingModeClass</span>
24
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;ROUND_HALF_EVEN is not applicable here&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_EVEN</span>
25
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">&quot;zero_rounding_mode #{zero_rounding_mode.inspect} must be legal zero_rounding zero_rounding_mode&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">zero_rounding_mode</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ZeroRoundingModeClass</span>
26
-
27
- <span class="ruby-identifier">r_self</span> = <span class="ruby-keyword kw">self</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">modulus</span>
28
- <span class="ruby-identifier">r_self_00</span> = <span class="ruby-identifier">r_self</span>
29
- <span class="ruby-identifier">remainders</span> = <span class="ruby-identifier">remainders</span>.<span class="ruby-identifier">collect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
30
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;remainders must be numbers&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Integer</span>
31
- <span class="ruby-identifier">r</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">modulus</span>
32
- <span class="ruby-keyword kw">end</span>
33
- <span class="ruby-identifier">remainders</span>.<span class="ruby-identifier">sort!</span>.<span class="ruby-identifier">uniq!</span>
34
- <span class="ruby-identifier">r_first</span> = <span class="ruby-identifier">remainders</span>[<span class="ruby-value">0</span>]
35
- <span class="ruby-identifier">r_last</span> = <span class="ruby-identifier">remainders</span>[<span class="ruby-value">-1</span>]
36
- <span class="ruby-identifier">r_first_again</span> = <span class="ruby-identifier">r_first</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">modulus</span>
37
- <span class="ruby-identifier">remainders</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">r_first_again</span>
38
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">r_self</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">r_first</span>) <span class="ruby-keyword kw">then</span>
39
- <span class="ruby-identifier">r_self</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">modulus</span>
40
- <span class="ruby-keyword kw">end</span>
41
- <span class="ruby-comment cmt"># puts &quot;r_self=#{r_self_00}-&gt;#{r_self} r_first=#{r_first} r_last=#{r_last} r_first_again=#{r_first_again}&quot;</span>
42
- <span class="ruby-identifier">r_lower</span> = <span class="ruby-value">-1</span>
43
- <span class="ruby-identifier">r_upper</span> = <span class="ruby-value">-1</span>
44
- <span class="ruby-identifier">remainders</span>.<span class="ruby-identifier">each_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
45
- <span class="ruby-identifier">r</span> = <span class="ruby-identifier">remainders</span>[<span class="ruby-identifier">i</span>]
46
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">r</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">r_self</span>) <span class="ruby-keyword kw">then</span>
47
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
48
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">r</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">r_self</span>) <span class="ruby-keyword kw">then</span>
49
- <span class="ruby-identifier">r_lower</span> = <span class="ruby-identifier">r</span>
50
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">r</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">r_self</span>) <span class="ruby-keyword kw">then</span>
51
- <span class="ruby-identifier">r_upper</span> = <span class="ruby-identifier">r</span>
52
- <span class="ruby-keyword kw">break</span>
53
- <span class="ruby-keyword kw">end</span>
54
- <span class="ruby-keyword kw">end</span>
55
- <span class="ruby-identifier">lower</span> = <span class="ruby-keyword kw">self</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">r_self</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">r_lower</span>)
56
- <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">self</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">r_upper</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">r_self</span>)
57
- <span class="ruby-comment cmt"># puts &quot;r_lower=#{r_lower} r_upper=#{r_upper} lower=#{lower} upper=#{upper} s=#{self}&quot;</span>
58
-
59
- <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">lower</span> <span class="ruby-operator">&lt;</span> <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">upper</span>)
60
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-node">&quot;self=#{self} not in (#{lower}, #{upper})&quot;</span>
61
- <span class="ruby-keyword kw">end</span>
62
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_UNNECESSARY</span>) <span class="ruby-keyword kw">then</span>
63
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;mode ROUND_UNNECESSARY not applicable, self=#{self.to_s} is in open interval (#{lower}, #{upper})&quot;</span>
64
- <span class="ruby-keyword kw">end</span>
65
-
66
- <span class="ruby-comment cmt"># if (rounding_mode == LongDecimalRoundingMode::ROUND_FLOOR) then</span>
67
- <span class="ruby-comment cmt"># return lower</span>
68
- <span class="ruby-comment cmt"># elsif (rounding_mode == LongDecimalRoundingMode::ROUND_CEILING) then</span>
69
- <span class="ruby-comment cmt"># return upper</span>
70
- <span class="ruby-comment cmt"># end</span>
71
-
72
- <span class="ruby-identifier">sign_self</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sign</span>
73
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">sign_self</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
74
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_UP</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_DOWN</span> \
75
- <span class="ruby-operator">||</span> <span class="ruby-identifier">lower</span> <span class="ruby-operator">==</span> <span class="ruby-operator">-</span><span class="ruby-identifier">upper</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_UP</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_DOWN</span>))
76
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">zero_rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ZERO_ROUND_UNNECESSARY</span>) <span class="ruby-keyword kw">then</span>
77
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;self=#{self.to_s} is 0 in open interval (#{lower}, #{upper}) and cannot be resolved with ZERO_ROUND_UNNECESSARY&quot;</span>
78
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">zero_rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ZERO_ROUND_TO_CLOSEST_PREFER_PLUS</span> \
79
- <span class="ruby-operator">||</span> <span class="ruby-identifier">zero_rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ZERO_ROUND_TO_CLOSEST_PREFER_MINUS</span>) <span class="ruby-keyword kw">then</span>
80
- <span class="ruby-identifier">diff</span> = <span class="ruby-identifier">lower</span>.<span class="ruby-identifier">abs</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">upper</span>.<span class="ruby-identifier">abs</span>
81
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">diff</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
82
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">lower</span>
83
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">diff</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
84
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">upper</span>
85
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">zero_rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ZERO_ROUND_TO_CLOSEST_PREFER_PLUS</span>) <span class="ruby-keyword kw">then</span>
86
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">upper</span>
87
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">zero_rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ZERO_ROUND_TO_CLOSEST_PREFER_MINUS</span>) <span class="ruby-keyword kw">then</span>
88
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">lower</span>
89
- <span class="ruby-keyword kw">else</span>
90
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-node">&quot;this case can never happen: zero_rounding_mode=#{zero_rounding_mode}&quot;</span>
91
- <span class="ruby-keyword kw">end</span>
92
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">zero_rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ZERO_ROUND_TO_PLUS</span>) <span class="ruby-keyword kw">then</span>
93
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">upper</span>
94
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">zero_rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ZERO_ROUND_TO_MINUS</span>) <span class="ruby-keyword kw">then</span>
95
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">lower</span>
96
- <span class="ruby-keyword kw">else</span>
97
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-node">&quot;this case can never happen: zero_rounding_mode=#{zero_rounding_mode}&quot;</span>
98
- <span class="ruby-keyword kw">end</span>
99
- <span class="ruby-keyword kw">end</span>
100
- <span class="ruby-keyword kw">end</span>
101
-
102
- <span class="ruby-comment cmt"># now we can assume that sign_self (and self) is != 0, which allows to decide on the rounding_mode</span>
103
-
104
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_UP</span>)
105
- <span class="ruby-comment cmt"># ROUND_UP goes to the closest possible value away from zero</span>
106
- <span class="ruby-identifier">rounding_mode</span> = (<span class="ruby-identifier">sign_self</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_FLOOR</span> <span class="ruby-operator">:</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_CEILING</span>
107
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_DOWN</span>)
108
- <span class="ruby-comment cmt"># ROUND_DOWN goes to the closest possible value towards zero or beyond zero</span>
109
- <span class="ruby-identifier">rounding_mode</span> = (<span class="ruby-identifier">sign_self</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_CEILING</span> <span class="ruby-operator">:</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_FLOOR</span>
110
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_UP</span>)
111
- <span class="ruby-comment cmt"># ROUND_HALF_UP goes to the closest possible value preferring away from zero</span>
112
- <span class="ruby-identifier">rounding_mode</span> = (<span class="ruby-identifier">sign_self</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_FLOOR</span> <span class="ruby-operator">:</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_CEILING</span>
113
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_DOWN</span>)
114
- <span class="ruby-comment cmt"># ROUND_HALF_DOWN goes to the closest possible value preferring towards zero or beyond zero</span>
115
- <span class="ruby-identifier">rounding_mode</span> = (<span class="ruby-identifier">sign_self</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_CEILING</span> <span class="ruby-operator">:</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_FLOOR</span>
116
- <span class="ruby-keyword kw">end</span>
117
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_FLOOR</span> \
118
- <span class="ruby-operator">||</span> <span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_CEILING</span>) <span class="ruby-keyword kw">then</span>
119
- <span class="ruby-identifier">d_lower</span> = <span class="ruby-keyword kw">self</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">lower</span>
120
- <span class="ruby-identifier">d_upper</span> = <span class="ruby-identifier">upper</span> <span class="ruby-operator">-</span> <span class="ruby-keyword kw">self</span>
121
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">d_lower</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">d_upper</span>) <span class="ruby-keyword kw">then</span>
122
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">lower</span>
123
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">d_upper</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">d_lower</span>) <span class="ruby-keyword kw">then</span>
124
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">upper</span>
125
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_FLOOR</span>) <span class="ruby-keyword kw">then</span>
126
- <span class="ruby-identifier">rounding_mode</span> = <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_FLOOR</span>
127
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_HALF_CEILING</span>) <span class="ruby-keyword kw">then</span>
128
- <span class="ruby-identifier">rounding_mode</span> = <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_CEILING</span>
129
- <span class="ruby-keyword kw">else</span>
130
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-node">&quot;this case can never happen: rounding_mode=#{rounding_mode}&quot;</span>
131
- <span class="ruby-keyword kw">end</span>
132
- <span class="ruby-keyword kw">end</span>
133
-
134
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_FLOOR</span>) <span class="ruby-keyword kw">then</span>
135
- <span class="ruby-comment cmt"># puts &quot;floor/lower r_lower=#{r_lower} r_upper=#{r_upper} lower=#{lower} upper=#{upper} s=#{self}&quot;</span>
136
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">lower</span>
137
- <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">rounding_mode</span> <span class="ruby-operator">==</span> <span class="ruby-constant">LongDecimalRoundingMode</span><span class="ruby-operator">::</span><span class="ruby-constant">ROUND_CEILING</span>) <span class="ruby-keyword kw">then</span>
138
- <span class="ruby-comment cmt"># puts &quot;ceiling/upper r_lower=#{r_lower} r_upper=#{r_upper} lower=#{lower} upper=#{upper} s=#{self}&quot;</span>
139
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">upper</span>
140
- <span class="ruby-keyword kw">else</span>
141
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-node">&quot;this case can never happen: rounding_mode=#{rounding_mode}&quot;</span>
142
- <span class="ruby-keyword kw">end</span>
143
- <span class="ruby-keyword kw">end</span></pre>
144
- </body>
145
- </html>
@@ -1,1602 +0,0 @@
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 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: LongDecimal</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">LongDecimal</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../files/lib/long-decimal_rb.html">
59
- lib/long-decimal.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- <a href="LongDecimalBase.html">
69
- LongDecimalBase
70
- </a>
71
- </td>
72
- </tr>
73
- </table>
74
- </div>
75
- <!-- banner header -->
76
-
77
- <div id="bodyContent">
78
-
79
-
80
-
81
- <div id="contextContent">
82
- <div id="diagram">
83
- <map id="map" name="map">
84
- <area shape="rect" coords="94,7,171,55" href="Comparable.html" alt="Comparable" />
85
- <area shape="rect" coords="158,206,235,254" href="LongMath/CacheKey.html" alt="CacheKey" />
86
- <area shape="rect" coords="231,103,356,151" href="LongDecimalRoundingMode/RoundingModeClass.html" alt="RoundingModeClass" />
87
- <area shape="rect" coords="58,103,207,151" href="LongDecimalRoundingMode/ZeroRoundingModeClass.html" alt="ZeroRoundingModeClass" />
88
- <area shape="rect" coords="355,206,470,254" href="LongDecimalBase.html" alt="LongDecimalBase" />
89
- <area shape="rect" coords="294,302,406,350" href="LongDecimalQuot.html" alt="LongDecimalQuot" />
90
- <area shape="rect" coords="195,7,267,55" href="Integer.html" alt="Integer" />
91
- <area shape="rect" coords="430,302,520,350" href="LongDecimal.html" alt="LongDecimal" />
92
- <area shape="rect" coords="407,103,479,151" href="Numeric.html" alt="Numeric" />
93
- <area shape="rect" coords="291,7,363,55" href="Rational.html" alt="Rational" />
94
- <area shape="rect" coords="147,172,272,264" href="LongMath.html" alt="LongMath" />
95
- <area shape="rect" coords="47,70,394,162" href="LongDecimalRoundingMode.html" alt="LongDecimalRoundingMode" />
96
- </map>
97
- <img src="../dot/f_0.png" usemap="#map" border="0" alt="dot/f_0.png">
98
- </div>
99
-
100
- <div id="description">
101
- <p>
102
- class for holding fixed point long decimal numbers these can be considered
103
- as a pair of two integer. One contains the digits and the other one the
104
- position of the decimal point.
105
- </p>
106
-
107
- </div>
108
-
109
-
110
- </div>
111
-
112
- <div id="method-list">
113
- <h3 class="section-bar">Methods</h3>
114
-
115
- <div class="name-list">
116
- <a href="#M000082">%</a>&nbsp;&nbsp;
117
- <a href="#M000083">&amp;</a>&nbsp;&nbsp;
118
- <a href="#M000075">*</a>&nbsp;&nbsp;
119
- <a href="#M000080">**</a>&nbsp;&nbsp;
120
- <a href="#M000073">+</a>&nbsp;&nbsp;
121
- <a href="#M000074">-</a>&nbsp;&nbsp;
122
- <a href="#M000072">-@</a>&nbsp;&nbsp;
123
- <a href="#M000079">/</a>&nbsp;&nbsp;
124
- <a href="#M000087">&lt;&lt;</a>&nbsp;&nbsp;
125
- <a href="#M000104">==</a>&nbsp;&nbsp;
126
- <a href="#M000105">===</a>&nbsp;&nbsp;
127
- <a href="#M000088">&gt;&gt;</a>&nbsp;&nbsp;
128
- <a href="#M000089">[]</a>&nbsp;&nbsp;
129
- <a href="#M000085">^</a>&nbsp;&nbsp;
130
- <a href="#M000098">abs</a>&nbsp;&nbsp;
131
- <a href="#M000064">anti_equalize_scale</a>&nbsp;&nbsp;
132
- <a href="#M000099">coerce</a>&nbsp;&nbsp;
133
- <a href="#M000069">dec!</a>&nbsp;&nbsp;
134
- <a href="#M000059">denominator</a>&nbsp;&nbsp;
135
- <a href="#M000076">divide</a>&nbsp;&nbsp;
136
- <a href="#M000077">divide_s</a>&nbsp;&nbsp;
137
- <a href="#M000081">divmod</a>&nbsp;&nbsp;
138
- <a href="#M000063">equalize_scale</a>&nbsp;&nbsp;
139
- <a href="#M000108">hash</a>&nbsp;&nbsp;
140
- <a href="#M000068">inc!</a>&nbsp;&nbsp;
141
- <a href="#M000109">inspect</a>&nbsp;&nbsp;
142
- <a href="#M000062">int_digits10</a>&nbsp;&nbsp;
143
- <a href="#M000060">int_digits2</a>&nbsp;&nbsp;
144
- <a href="#M000100">is_int?</a>&nbsp;&nbsp;
145
- <a href="#M000045">minus_one!</a>&nbsp;&nbsp;
146
- <a href="#M000091">move_point_left</a>&nbsp;&nbsp;
147
- <a href="#M000093">move_point_left_int</a>&nbsp;&nbsp;
148
- <a href="#M000092">move_point_right</a>&nbsp;&nbsp;
149
- <a href="#M000094">move_point_right_int</a>&nbsp;&nbsp;
150
- <a href="#M000047">new</a>&nbsp;&nbsp;
151
- <a href="#M000040">new!</a>&nbsp;&nbsp;
152
- <a href="#M000066">next</a>&nbsp;&nbsp;
153
- <a href="#M000042">one!</a>&nbsp;&nbsp;
154
- <a href="#M000107">one?</a>&nbsp;&nbsp;
155
- <a href="#M000046">power_of_ten!</a>&nbsp;&nbsp;
156
- <a href="#M000067">pred</a>&nbsp;&nbsp;
157
- <a href="#M000078">rdiv</a>&nbsp;&nbsp;
158
- <a href="#M000051">round_to_allowed_remainders</a>&nbsp;&nbsp;
159
- <a href="#M000050">round_to_scale</a>&nbsp;&nbsp;
160
- <a href="#M000049">round_trailing_zeros</a>&nbsp;&nbsp;
161
- <a href="#M000048">scale=</a>&nbsp;&nbsp;
162
- <a href="#M000101">sgn</a>&nbsp;&nbsp;
163
- <a href="#M000103">sign</a>&nbsp;&nbsp;
164
- <a href="#M000102">signum</a>&nbsp;&nbsp;
165
- <a href="#M000061">sint_digits10</a>&nbsp;&nbsp;
166
- <a href="#M000090">size</a>&nbsp;&nbsp;
167
- <a href="#M000096">sqrt</a>&nbsp;&nbsp;
168
- <a href="#M000097">sqrt_with_remainder</a>&nbsp;&nbsp;
169
- <a href="#M000095">square</a>&nbsp;&nbsp;
170
- <a href="#M000065">succ</a>&nbsp;&nbsp;
171
- <a href="#M000071">sunit</a>&nbsp;&nbsp;
172
- <a href="#M000044">ten!</a>&nbsp;&nbsp;
173
- <a href="#M000058">to_bd</a>&nbsp;&nbsp;
174
- <a href="#M000055">to_f</a>&nbsp;&nbsp;
175
- <a href="#M000056">to_i</a>&nbsp;&nbsp;
176
- <a href="#M000057">to_ld</a>&nbsp;&nbsp;
177
- <a href="#M000052">to_s</a>&nbsp;&nbsp;
178
- <a href="#M000053">to_s_10</a>&nbsp;&nbsp;
179
- <a href="#M000054">to_s_internal</a>&nbsp;&nbsp;
180
- <a href="#M000043">two!</a>&nbsp;&nbsp;
181
- <a href="#M000070">unit</a>&nbsp;&nbsp;
182
- <a href="#M000041">zero!</a>&nbsp;&nbsp;
183
- <a href="#M000106">zero?</a>&nbsp;&nbsp;
184
- <a href="#M000084">|</a>&nbsp;&nbsp;
185
- <a href="#M000086">~</a>&nbsp;&nbsp;
186
- </div>
187
- </div>
188
-
189
- </div>
190
-
191
-
192
- <!-- if includes -->
193
-
194
- <div id="section">
195
-
196
-
197
-
198
- <div id="aliases-list">
199
- <h3 class="section-bar">External Aliases</h3>
200
-
201
- <div class="name-list">
202
- <table summary="aliases">
203
- <tr class="top-aligned-row context-row">
204
- <td class="context-item-name">int_val</td>
205
- <td>-&gt;</td>
206
- <td class="context-item-value">numerator</td>
207
- </tr>
208
- <tr class="top-aligned-row context-row">
209
- <td>&nbsp;</td>
210
- <td colspan="2" class="context-item-desc">
211
- LongDecimals can be seen as a fraction with its int_val as its numerator
212
- Please observe that there may be common factors of numerator and <a
213
- href="LongDecimal.html#M000059">denominator</a> in case of <a
214
- href="LongDecimal.html">LongDecimal</a>, which does not occur in case of <a
215
- href="Rational.html">Rational</a>
216
-
217
- </td>
218
- </tr>
219
- </table>
220
- </div>
221
- </div>
222
-
223
-
224
- <div id="attribute-list">
225
- <h3 class="section-bar">Attributes</h3>
226
-
227
- <div class="name-list">
228
- <table>
229
- <tr class="top-aligned-row context-row">
230
- <td class="context-item-name">int_val</td>
231
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
232
- <td class="context-item-desc"></td>
233
- </tr>
234
- <tr class="top-aligned-row context-row">
235
- <td class="context-item-name">scale</td>
236
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
237
- <td class="context-item-desc"></td>
238
- </tr>
239
- </table>
240
- </div>
241
- </div>
242
-
243
-
244
-
245
- <!-- if method_list -->
246
- <div id="methods">
247
- <h3 class="section-bar">Public Class methods</h3>
248
-
249
- <div id="method-M000045" class="method-detail">
250
- <a name="M000045"></a>
251
-
252
- <div class="method-heading">
253
- <a href="LongDecimal.src/M000045.html" target="Code" class="method-signature"
254
- onclick="popupCode('LongDecimal.src/M000045.html');return false;">
255
- <span class="method-name">minus_one!</span><span class="method-args">(s = 0)</span>
256
- </a>
257
- </div>
258
-
259
- <div class="method-description">
260
- <p>
261
- creates a <a href="LongDecimal.html">LongDecimal</a> representing minus one
262
- with the given number of digits after the decimal point (scale=s)
263
- </p>
264
- </div>
265
- </div>
266
-
267
- <div id="method-M000047" class="method-detail">
268
- <a name="M000047"></a>
269
-
270
- <div class="method-heading">
271
- <a href="LongDecimal.src/M000047.html" target="Code" class="method-signature"
272
- onclick="popupCode('LongDecimal.src/M000047.html');return false;">
273
- <span class="method-name">new</span><span class="method-args">(x, s)</span>
274
- </a>
275
- </div>
276
-
277
- <div class="method-description">
278
- <p>
279
- initialization parameters: <a
280
- href="LongDecimal.html#M000047">LongDecimal.new</a>(x, s) where x is a
281
- string or a number and s is the scale the resulting <a
282
- href="LongDecimal.html">LongDecimal</a> holds the number x / 10**s
283
- </p>
284
- </div>
285
- </div>
286
-
287
- <div id="method-M000040" class="method-detail">
288
- <a name="M000040"></a>
289
-
290
- <div class="method-heading">
291
- <a href="LongDecimal.src/M000040.html" target="Code" class="method-signature"
292
- onclick="popupCode('LongDecimal.src/M000040.html');return false;">
293
- <span class="method-name">new!</span><span class="method-args">(x, s = 0)</span>
294
- </a>
295
- </div>
296
-
297
- <div class="method-description">
298
- <p>
299
- initialization parameters:
300
- </p>
301
- <ol>
302
- <li><a href="LongDecimal.html#M000047">LongDecimal.new</a>!(x) where x is a
303
- string or a number the resulting <a href="LongDecimal.html">LongDecimal</a>
304
- holds the number x, possibly rounded
305
-
306
- </li>
307
- <li><a href="LongDecimal.html#M000047">LongDecimal.new</a>!(x, s) where x is a
308
- string or a number and s is the scale the resulting <a
309
- href="LongDecimal.html">LongDecimal</a> holds the number x / 10**s
310
-
311
- </li>
312
- </ol>
313
- </div>
314
- </div>
315
-
316
- <div id="method-M000042" class="method-detail">
317
- <a name="M000042"></a>
318
-
319
- <div class="method-heading">
320
- <a href="LongDecimal.src/M000042.html" target="Code" class="method-signature"
321
- onclick="popupCode('LongDecimal.src/M000042.html');return false;">
322
- <span class="method-name">one!</span><span class="method-args">(s = 0)</span>
323
- </a>
324
- </div>
325
-
326
- <div class="method-description">
327
- <p>
328
- creates a <a href="LongDecimal.html">LongDecimal</a> representing one with
329
- the given number of digits after the decimal point (scale=s)
330
- </p>
331
- </div>
332
- </div>
333
-
334
- <div id="method-M000046" class="method-detail">
335
- <a name="M000046"></a>
336
-
337
- <div class="method-heading">
338
- <a href="LongDecimal.src/M000046.html" target="Code" class="method-signature"
339
- onclick="popupCode('LongDecimal.src/M000046.html');return false;">
340
- <span class="method-name">power_of_ten!</span><span class="method-args">(e, s = 0)</span>
341
- </a>
342
- </div>
343
-
344
- <div class="method-description">
345
- <p>
346
- creates a <a href="LongDecimal.html">LongDecimal</a> representing a power
347
- of ten with the given exponent e and with the given number of digits after
348
- the decimal point (scale=s)
349
- </p>
350
- </div>
351
- </div>
352
-
353
- <div id="method-M000044" class="method-detail">
354
- <a name="M000044"></a>
355
-
356
- <div class="method-heading">
357
- <a href="LongDecimal.src/M000044.html" target="Code" class="method-signature"
358
- onclick="popupCode('LongDecimal.src/M000044.html');return false;">
359
- <span class="method-name">ten!</span><span class="method-args">(s = 0)</span>
360
- </a>
361
- </div>
362
-
363
- <div class="method-description">
364
- <p>
365
- creates a <a href="LongDecimal.html">LongDecimal</a> representing ten with
366
- the given number of digits after the decimal point (scale=s)
367
- </p>
368
- </div>
369
- </div>
370
-
371
- <div id="method-M000043" class="method-detail">
372
- <a name="M000043"></a>
373
-
374
- <div class="method-heading">
375
- <a href="LongDecimal.src/M000043.html" target="Code" class="method-signature"
376
- onclick="popupCode('LongDecimal.src/M000043.html');return false;">
377
- <span class="method-name">two!</span><span class="method-args">(s = 0)</span>
378
- </a>
379
- </div>
380
-
381
- <div class="method-description">
382
- <p>
383
- creates a <a href="LongDecimal.html">LongDecimal</a> representing two with
384
- the given number of digits after the decimal point (scale=s)
385
- </p>
386
- </div>
387
- </div>
388
-
389
- <div id="method-M000041" class="method-detail">
390
- <a name="M000041"></a>
391
-
392
- <div class="method-heading">
393
- <a href="LongDecimal.src/M000041.html" target="Code" class="method-signature"
394
- onclick="popupCode('LongDecimal.src/M000041.html');return false;">
395
- <span class="method-name">zero!</span><span class="method-args">(s = 0)</span>
396
- </a>
397
- </div>
398
-
399
- <div class="method-description">
400
- <p>
401
- creates a <a href="LongDecimal.html">LongDecimal</a> representing zero with
402
- the given number of digits after the decimal point (scale=s)
403
- </p>
404
- </div>
405
- </div>
406
-
407
- <h3 class="section-bar">Public Instance methods</h3>
408
-
409
- <div id="method-M000082" class="method-detail">
410
- <a name="M000082"></a>
411
-
412
- <div class="method-heading">
413
- <a href="LongDecimal.src/M000082.html" target="Code" class="method-signature"
414
- onclick="popupCode('LongDecimal.src/M000082.html');return false;">
415
- <span class="method-name">%</span><span class="method-args">(other)</span>
416
- </a>
417
- </div>
418
-
419
- <div class="method-description">
420
- <p>
421
- remainder of integer division by other
422
- </p>
423
- </div>
424
- </div>
425
-
426
- <div id="method-M000083" class="method-detail">
427
- <a name="M000083"></a>
428
-
429
- <div class="method-heading">
430
- <a href="LongDecimal.src/M000083.html" target="Code" class="method-signature"
431
- onclick="popupCode('LongDecimal.src/M000083.html');return false;">
432
- <span class="method-name">&amp;</span><span class="method-args">(other)</span>
433
- </a>
434
- </div>
435
-
436
- <div class="method-description">
437
- <p>
438
- performs bitwise AND between self and other
439
- </p>
440
- </div>
441
- </div>
442
-
443
- <div id="method-M000075" class="method-detail">
444
- <a name="M000075"></a>
445
-
446
- <div class="method-heading">
447
- <a href="LongDecimal.src/M000075.html" target="Code" class="method-signature"
448
- onclick="popupCode('LongDecimal.src/M000075.html');return false;">
449
- <span class="method-name">*</span><span class="method-args">(other)</span>
450
- </a>
451
- </div>
452
-
453
- <div class="method-description">
454
- <p>
455
- multiply two numbers if both can immediately be expressed as <a
456
- href="LongDecimal.html">LongDecimal</a>, the result is a <a
457
- href="LongDecimal.html">LongDecimal</a> as well. The number of digits after
458
- the decimal point is the sum of the scales of both factors. if <a
459
- href="LongDecimal.html">LongDecimal</a> does not cover self and other, the
460
- multiplication of Complex, Float or LongRationalQuot is used
461
- </p>
462
- </div>
463
- </div>
464
-
465
- <div id="method-M000080" class="method-detail">
466
- <a name="M000080"></a>
467
-
468
- <div class="method-heading">
469
- <a href="LongDecimal.src/M000080.html" target="Code" class="method-signature"
470
- onclick="popupCode('LongDecimal.src/M000080.html');return false;">
471
- <span class="method-name">**</span><span class="method-args">(other)</span>
472
- </a>
473
- </div>
474
-
475
- <div class="method-description">
476
- <p>
477
- power of self (<a href="LongDecimal.html">LongDecimal</a>) with other. if
478
- other is expressable as non-negative integer, the power is what would be
479
- obtained by successive multiplications. if other is expressable as negative
480
- integer, the power is a <a href="LongDecimalQuot.html">LongDecimalQuot</a>
481
- as would result by successive division, but with the same scale as the
482
- positive power would get. Explicit rounding is needed to convert into a <a
483
- href="LongDecimal.html">LongDecimal</a> again in all other cases, self is
484
- converted into a <a href="Rational.html">Rational</a> prior to applying
485
- power, usually resulting in a Float as power.
486
- </p>
487
- </div>
488
- </div>
489
-
490
- <div id="method-M000073" class="method-detail">
491
- <a name="M000073"></a>
492
-
493
- <div class="method-heading">
494
- <a href="LongDecimal.src/M000073.html" target="Code" class="method-signature"
495
- onclick="popupCode('LongDecimal.src/M000073.html');return false;">
496
- <span class="method-name">+</span><span class="method-args">(other)</span>
497
- </a>
498
- </div>
499
-
500
- <div class="method-description">
501
- <p>
502
- add two numbers if both can immediately be expressed as <a
503
- href="LongDecimal.html">LongDecimal</a>, the result is a <a
504
- href="LongDecimal.html">LongDecimal</a> as well. The number of digits after
505
- the decimal point is the max of the scales of the summands if <a
506
- href="LongDecimal.html">LongDecimal</a> does not cover the two summands,
507
- call addition of Complex, Float or LongRationalQuot
508
- </p>
509
- </div>
510
- </div>
511
-
512
- <div id="method-M000074" class="method-detail">
513
- <a name="M000074"></a>
514
-
515
- <div class="method-heading">
516
- <a href="LongDecimal.src/M000074.html" target="Code" class="method-signature"
517
- onclick="popupCode('LongDecimal.src/M000074.html');return false;">
518
- <span class="method-name">-</span><span class="method-args">(other)</span>
519
- </a>
520
- </div>
521
-
522
- <div class="method-description">
523
- <p>
524
- subtract two numbers if both can immediately be expressed as <a
525
- href="LongDecimal.html">LongDecimal</a>, the result is a <a
526
- href="LongDecimal.html">LongDecimal</a> as well. The number of digits after
527
- the decimal point is the max of the scales of self and other. if <a
528
- href="LongDecimal.html">LongDecimal</a> does not cover self and other, the
529
- subtraction of Complex, Float or LongRationalQuot is used
530
- </p>
531
- </div>
532
- </div>
533
-
534
- <div id="method-M000072" class="method-detail">
535
- <a name="M000072"></a>
536
-
537
- <div class="method-heading">
538
- <a href="LongDecimal.src/M000072.html" target="Code" class="method-signature"
539
- onclick="popupCode('LongDecimal.src/M000072.html');return false;">
540
- <span class="method-name">-@</span><span class="method-args">()</span>
541
- </a>
542
- </div>
543
-
544
- <div class="method-description">
545
- <p>
546
- apply unary - (returns negated self)
547
- </p>
548
- </div>
549
- </div>
550
-
551
- <div id="method-M000079" class="method-detail">
552
- <a name="M000079"></a>
553
-
554
- <div class="method-heading">
555
- <a href="LongDecimal.src/M000079.html" target="Code" class="method-signature"
556
- onclick="popupCode('LongDecimal.src/M000079.html');return false;">
557
- <span class="method-name">/</span><span class="method-args">(other)</span>
558
- </a>
559
- </div>
560
-
561
- <div class="method-description">
562
- <p>
563
- <a href="LongDecimal.html#M000076">divide</a> self by other and return
564
- result as <a href="LongDecimalQuot.html">LongDecimalQuot</a> because
565
- division does not have an obvious rounding rule like addition, subtraction
566
- and multiplication, the result needs to be rounded afterwards to become a
567
- <a href="LongDecimal.html">LongDecimal</a> again. This way calculations can
568
- still be done in the natural readable way using +, -, *, and /, but the
569
- rounding can be provided later. It is very important in complicated
570
- calculations put the rounding steps in the right places, usually after
571
- having performed a division.
572
- </p>
573
- </div>
574
- </div>
575
-
576
- <div id="method-M000087" class="method-detail">
577
- <a name="M000087"></a>
578
-
579
- <div class="method-heading">
580
- <a href="LongDecimal.src/M000087.html" target="Code" class="method-signature"
581
- onclick="popupCode('LongDecimal.src/M000087.html');return false;">
582
- <span class="method-name">&lt;&lt;</span><span class="method-args">(other)</span>
583
- </a>
584
- </div>
585
-
586
- <div class="method-description">
587
- <p>
588
- performs bitwise left shift of self by other
589
- </p>
590
- </div>
591
- </div>
592
-
593
- <div id="method-M000104" class="method-detail">
594
- <a name="M000104"></a>
595
-
596
- <div class="method-heading">
597
- <a href="LongDecimal.src/M000104.html" target="Code" class="method-signature"
598
- onclick="popupCode('LongDecimal.src/M000104.html');return false;">
599
- <span class="method-name">==</span><span class="method-args">(other)</span>
600
- </a>
601
- </div>
602
-
603
- <div class="method-description">
604
- <p>
605
- comparison of self with other for equality takes into account the values
606
- expressed by self and other and the equality of the number of digits.
607
- </p>
608
- </div>
609
- </div>
610
-
611
- <div id="method-M000105" class="method-detail">
612
- <a name="M000105"></a>
613
-
614
- <div class="method-heading">
615
- <a href="LongDecimal.src/M000105.html" target="Code" class="method-signature"
616
- onclick="popupCode('LongDecimal.src/M000105.html');return false;">
617
- <span class="method-name">===</span><span class="method-args">(other)</span>
618
- </a>
619
- </div>
620
-
621
- <div class="method-description">
622
- <p>
623
- comparison of self with other for equality takes into account the values
624
- expressed by self and other and the equality of the number of digits.
625
- </p>
626
- </div>
627
- </div>
628
-
629
- <div id="method-M000088" class="method-detail">
630
- <a name="M000088"></a>
631
-
632
- <div class="method-heading">
633
- <a href="LongDecimal.src/M000088.html" target="Code" class="method-signature"
634
- onclick="popupCode('LongDecimal.src/M000088.html');return false;">
635
- <span class="method-name">&gt;&gt;</span><span class="method-args">(other)</span>
636
- </a>
637
- </div>
638
-
639
- <div class="method-description">
640
- <p>
641
- performs bitwise right shift of self by other
642
- </p>
643
- </div>
644
- </div>
645
-
646
- <div id="method-M000089" class="method-detail">
647
- <a name="M000089"></a>
648
-
649
- <div class="method-heading">
650
- <a href="LongDecimal.src/M000089.html" target="Code" class="method-signature"
651
- onclick="popupCode('LongDecimal.src/M000089.html');return false;">
652
- <span class="method-name">[]</span><span class="method-args">(other)</span>
653
- </a>
654
- </div>
655
-
656
- <div class="method-description">
657
- <p>
658
- gets binary digit of self
659
- </p>
660
- </div>
661
- </div>
662
-
663
- <div id="method-M000085" class="method-detail">
664
- <a name="M000085"></a>
665
-
666
- <div class="method-heading">
667
- <a href="LongDecimal.src/M000085.html" target="Code" class="method-signature"
668
- onclick="popupCode('LongDecimal.src/M000085.html');return false;">
669
- <span class="method-name">^</span><span class="method-args">(other)</span>
670
- </a>
671
- </div>
672
-
673
- <div class="method-description">
674
- <p>
675
- performs bitwise XOR between self and other
676
- </p>
677
- </div>
678
- </div>
679
-
680
- <div id="method-M000098" class="method-detail">
681
- <a name="M000098"></a>
682
-
683
- <div class="method-heading">
684
- <a href="LongDecimal.src/M000098.html" target="Code" class="method-signature"
685
- onclick="popupCode('LongDecimal.src/M000098.html');return false;">
686
- <span class="method-name">abs</span><span class="method-args">()</span>
687
- </a>
688
- </div>
689
-
690
- <div class="method-description">
691
- <p>
692
- Absolute value
693
- </p>
694
- </div>
695
- </div>
696
-
697
- <div id="method-M000064" class="method-detail">
698
- <a name="M000064"></a>
699
-
700
- <div class="method-heading">
701
- <a href="LongDecimal.src/M000064.html" target="Code" class="method-signature"
702
- onclick="popupCode('LongDecimal.src/M000064.html');return false;">
703
- <span class="method-name">anti_equalize_scale</span><span class="method-args">(other)</span>
704
- </a>
705
- </div>
706
-
707
- <div class="method-description">
708
- <p>
709
- before dividing two <a href="LongDecimal.html">LongDecimal</a> numbers, it
710
- is mandatory to set make them both to integers, so the result is simply
711
- expressable as a rational this method is mostly for internal use
712
- </p>
713
- </div>
714
- </div>
715
-
716
- <div id="method-M000099" class="method-detail">
717
- <a name="M000099"></a>
718
-
719
- <div class="method-heading">
720
- <a href="LongDecimal.src/M000099.html" target="Code" class="method-signature"
721
- onclick="popupCode('LongDecimal.src/M000099.html');return false;">
722
- <span class="method-name">coerce</span><span class="method-args">(other)</span>
723
- </a>
724
- </div>
725
-
726
- <div class="method-description">
727
- <p>
728
- return a pair o, s resembling other, self, but potentially converted to
729
- compatible types and ready for arithmetic operations.
730
- </p>
731
- </div>
732
- </div>
733
-
734
- <div id="method-M000069" class="method-detail">
735
- <a name="M000069"></a>
736
-
737
- <div class="method-heading">
738
- <a href="LongDecimal.src/M000069.html" target="Code" class="method-signature"
739
- onclick="popupCode('LongDecimal.src/M000069.html');return false;">
740
- <span class="method-name">dec!</span><span class="method-args">()</span>
741
- </a>
742
- </div>
743
-
744
- <div class="method-description">
745
- <p>
746
- self -= 1
747
- </p>
748
- </div>
749
- </div>
750
-
751
- <div id="method-M000059" class="method-detail">
752
- <a name="M000059"></a>
753
-
754
- <div class="method-heading">
755
- <a href="LongDecimal.src/M000059.html" target="Code" class="method-signature"
756
- onclick="popupCode('LongDecimal.src/M000059.html');return false;">
757
- <span class="method-name">denominator</span><span class="method-args">()</span>
758
- </a>
759
- </div>
760
-
761
- <div class="method-description">
762
- <p>
763
- LongDecimals can be seen as a fraction with a power of 10 as <a
764
- href="LongDecimal.html#M000059">denominator</a> for compatibility with
765
- other numeric classes this method is included, returning 10**scale. Please
766
- observe that there may be common factors of numerator and <a
767
- href="LongDecimal.html#M000059">denominator</a> in case of <a
768
- href="LongDecimal.html">LongDecimal</a>, which does not occur in case of <a
769
- href="Rational.html">Rational</a>
770
- </p>
771
- </div>
772
- </div>
773
-
774
- <div id="method-M000076" class="method-detail">
775
- <a name="M000076"></a>
776
-
777
- <div class="method-heading">
778
- <a href="LongDecimal.src/M000076.html" target="Code" class="method-signature"
779
- onclick="popupCode('LongDecimal.src/M000076.html');return false;">
780
- <span class="method-name">divide</span><span class="method-args">(other, rounding_mode)</span>
781
- </a>
782
- </div>
783
-
784
- <div class="method-description">
785
- <p>
786
- <a href="LongDecimal.html#M000076">divide</a> self by other and round
787
- result to scale of self using the given rounding mode
788
- </p>
789
- </div>
790
- </div>
791
-
792
- <div id="method-M000077" class="method-detail">
793
- <a name="M000077"></a>
794
-
795
- <div class="method-heading">
796
- <a href="LongDecimal.src/M000077.html" target="Code" class="method-signature"
797
- onclick="popupCode('LongDecimal.src/M000077.html');return false;">
798
- <span class="method-name">divide_s</span><span class="method-args">(other, new_scale, rounding_mode)</span>
799
- </a>
800
- </div>
801
-
802
- <div class="method-description">
803
- <p>
804
- <a href="LongDecimal.html#M000076">divide</a> self by other and round
805
- result to new_scale using the given rounding mode. If new_scale is nil, use
806
- scale of self.
807
- </p>
808
- </div>
809
- </div>
810
-
811
- <div id="method-M000081" class="method-detail">
812
- <a name="M000081"></a>
813
-
814
- <div class="method-heading">
815
- <a href="LongDecimal.src/M000081.html" target="Code" class="method-signature"
816
- onclick="popupCode('LongDecimal.src/M000081.html');return false;">
817
- <span class="method-name">divmod</span><span class="method-args">(other)</span>
818
- </a>
819
- </div>
820
-
821
- <div class="method-description">
822
- <p>
823
- do integer division with remainder, returning two values
824
- </p>
825
- </div>
826
- </div>
827
-
828
- <div id="method-M000063" class="method-detail">
829
- <a name="M000063"></a>
830
-
831
- <div class="method-heading">
832
- <a href="LongDecimal.src/M000063.html" target="Code" class="method-signature"
833
- onclick="popupCode('LongDecimal.src/M000063.html');return false;">
834
- <span class="method-name">equalize_scale</span><span class="method-args">(other)</span>
835
- </a>
836
- </div>
837
-
838
- <div class="method-description">
839
- <p>
840
- before adding or subtracting two <a href="LongDecimal.html">LongDecimal</a>
841
- numbers it is mandatory to set them to the same scale. The maximum of the
842
- two summands is used, in order to avoid loosing any information. this
843
- method is mostly for internal use
844
- </p>
845
- </div>
846
- </div>
847
-
848
- <div id="method-M000108" class="method-detail">
849
- <a name="M000108"></a>
850
-
851
- <div class="method-heading">
852
- <a href="LongDecimal.src/M000108.html" target="Code" class="method-signature"
853
- onclick="popupCode('LongDecimal.src/M000108.html');return false;">
854
- <span class="method-name">hash</span><span class="method-args">()</span>
855
- </a>
856
- </div>
857
-
858
- <div class="method-description">
859
- <p>
860
- Returns a <a href="LongDecimal.html#M000108">hash</a> code for the complex
861
- number.
862
- </p>
863
- </div>
864
- </div>
865
-
866
- <div id="method-M000068" class="method-detail">
867
- <a name="M000068"></a>
868
-
869
- <div class="method-heading">
870
- <a href="LongDecimal.src/M000068.html" target="Code" class="method-signature"
871
- onclick="popupCode('LongDecimal.src/M000068.html');return false;">
872
- <span class="method-name">inc!</span><span class="method-args">()</span>
873
- </a>
874
- </div>
875
-
876
- <div class="method-description">
877
- <p>
878
- self += 1
879
- </p>
880
- </div>
881
- </div>
882
-
883
- <div id="method-M000109" class="method-detail">
884
- <a name="M000109"></a>
885
-
886
- <div class="method-heading">
887
- <a href="LongDecimal.src/M000109.html" target="Code" class="method-signature"
888
- onclick="popupCode('LongDecimal.src/M000109.html');return false;">
889
- <span class="method-name">inspect</span><span class="method-args">()</span>
890
- </a>
891
- </div>
892
-
893
- <div class="method-description">
894
- <p>
895
- Returns &quot;<tt><a
896
- href="LongDecimal.html">LongDecimal</a>(<em>int_val</em>,
897
- <em>scale</em>)</tt>&quot;.
898
- </p>
899
- </div>
900
- </div>
901
-
902
- <div id="method-M000062" class="method-detail">
903
- <a name="M000062"></a>
904
-
905
- <div class="method-heading">
906
- <a href="LongDecimal.src/M000062.html" target="Code" class="method-signature"
907
- onclick="popupCode('LongDecimal.src/M000062.html');return false;">
908
- <span class="method-name">int_digits10</span><span class="method-args">()</span>
909
- </a>
910
- </div>
911
-
912
- <div class="method-description">
913
- <p>
914
- number of decimal digits before the decimal point, not counting a single 0.
915
- 0.0xx -&gt; 0 0.xxx -&gt; 0 1.xxx -&gt; 1 10.xxx -&gt; 2 &#8230;
916
- </p>
917
- </div>
918
- </div>
919
-
920
- <div id="method-M000060" class="method-detail">
921
- <a name="M000060"></a>
922
-
923
- <div class="method-heading">
924
- <a href="LongDecimal.src/M000060.html" target="Code" class="method-signature"
925
- onclick="popupCode('LongDecimal.src/M000060.html');return false;">
926
- <span class="method-name">int_digits2</span><span class="method-args">()</span>
927
- </a>
928
- </div>
929
-
930
- <div class="method-description">
931
- <p>
932
- number of binary digits before the decimal point, not counting a single 0.
933
- 0.xxx -&gt; 0 1.xxx -&gt; 1 2.xxx -&gt; 2 4.xxx -&gt; 3 8.xxx -&gt; 4
934
- &#8230;
935
- </p>
936
- </div>
937
- </div>
938
-
939
- <div id="method-M000100" class="method-detail">
940
- <a name="M000100"></a>
941
-
942
- <div class="method-heading">
943
- <a href="LongDecimal.src/M000100.html" target="Code" class="method-signature"
944
- onclick="popupCode('LongDecimal.src/M000100.html');return false;">
945
- <span class="method-name">is_int?</span><span class="method-args">()</span>
946
- </a>
947
- </div>
948
-
949
- <div class="method-description">
950
- <p>
951
- is self expressable as an integer without loss of digits?
952
- </p>
953
- </div>
954
- </div>
955
-
956
- <div id="method-M000091" class="method-detail">
957
- <a name="M000091"></a>
958
-
959
- <div class="method-heading">
960
- <a href="LongDecimal.src/M000091.html" target="Code" class="method-signature"
961
- onclick="popupCode('LongDecimal.src/M000091.html');return false;">
962
- <span class="method-name">move_point_left</span><span class="method-args">(n)</span>
963
- </a>
964
- </div>
965
-
966
- <div class="method-description">
967
- <p>
968
- <a href="LongDecimal.html#M000076">divide</a> by 10**n
969
- </p>
970
- </div>
971
- </div>
972
-
973
- <div id="method-M000092" class="method-detail">
974
- <a name="M000092"></a>
975
-
976
- <div class="method-heading">
977
- <a href="LongDecimal.src/M000092.html" target="Code" class="method-signature"
978
- onclick="popupCode('LongDecimal.src/M000092.html');return false;">
979
- <span class="method-name">move_point_right</span><span class="method-args">(n)</span>
980
- </a>
981
- </div>
982
-
983
- <div class="method-description">
984
- <p>
985
- multiply by 10**n
986
- </p>
987
- </div>
988
- </div>
989
-
990
- <div id="method-M000066" class="method-detail">
991
- <a name="M000066"></a>
992
-
993
- <div class="method-heading">
994
- <span class="method-name">next</span><span class="method-args">()</span>
995
- </div>
996
-
997
- <div class="method-description">
998
- <p>
999
- Alias for <a href="LongDecimal.html#M000065">succ</a>
1000
- </p>
1001
- </div>
1002
- </div>
1003
-
1004
- <div id="method-M000107" class="method-detail">
1005
- <a name="M000107"></a>
1006
-
1007
- <div class="method-heading">
1008
- <a href="LongDecimal.src/M000107.html" target="Code" class="method-signature"
1009
- onclick="popupCode('LongDecimal.src/M000107.html');return false;">
1010
- <span class="method-name">one?</span><span class="method-args">()</span>
1011
- </a>
1012
- </div>
1013
-
1014
- <div class="method-description">
1015
- <p>
1016
- check if the number expressed by self is 1 (one) with any number of 0s
1017
- after the decimal point.
1018
- </p>
1019
- </div>
1020
- </div>
1021
-
1022
- <div id="method-M000067" class="method-detail">
1023
- <a name="M000067"></a>
1024
-
1025
- <div class="method-heading">
1026
- <a href="LongDecimal.src/M000067.html" target="Code" class="method-signature"
1027
- onclick="popupCode('LongDecimal.src/M000067.html');return false;">
1028
- <span class="method-name">pred</span><span class="method-args">()</span>
1029
- </a>
1030
- </div>
1031
-
1032
- <div class="method-description">
1033
- <p>
1034
- predecessor (opposite of successor) it needs to be observed that this is
1035
- usually not an decrement by 1, but by 1/10**scale.
1036
- </p>
1037
- </div>
1038
- </div>
1039
-
1040
- <div id="method-M000078" class="method-detail">
1041
- <a name="M000078"></a>
1042
-
1043
- <div class="method-heading">
1044
- <a href="LongDecimal.src/M000078.html" target="Code" class="method-signature"
1045
- onclick="popupCode('LongDecimal.src/M000078.html');return false;">
1046
- <span class="method-name">rdiv</span><span class="method-args">(other)</span>
1047
- </a>
1048
- </div>
1049
-
1050
- <div class="method-description">
1051
- <p>
1052
- <a href="LongDecimal.html#M000076">divide</a> self by other and return
1053
- result as <a href="Rational.html">Rational</a>, if other allowed exact
1054
- calculations.
1055
- </p>
1056
- </div>
1057
- </div>
1058
-
1059
- <div id="method-M000051" class="method-detail">
1060
- <a name="M000051"></a>
1061
-
1062
- <div class="method-heading">
1063
- <a href="LongDecimal.src/M000051.html" target="Code" class="method-signature"
1064
- onclick="popupCode('LongDecimal.src/M000051.html');return false;">
1065
- <span class="method-name">round_to_allowed_remainders</span><span class="method-args">(new_scale, remainders, modulus, rounding_mode = LongDecimalRoundingMode::ROUND_UNNECESSARY, zero_rounding_mode = LongDecimalRoundingMode::ZERO_ROUND_UNNECESSARY)</span>
1066
- </a>
1067
- </div>
1068
-
1069
- <div class="method-description">
1070
- <p>
1071
- create copy of self round in such a way that the result times 10**scale is
1072
- congruent modulo modulus to one of the members of remainders
1073
- </p>
1074
- <p>
1075
- param1: new_scale <a href="LongDecimal.html#M000047">new</a> scale for
1076
- result param2: remainders array of allowed remainders param3: modulus
1077
- modulus of the remainders param4: rounding_mode rounding mode to be applied
1078
- when information is
1079
- </p>
1080
- <pre>
1081
- lost. defaults to ROUND_UNNECESSARY, which
1082
- means that an exception is thrown if rounding
1083
- would actually loose any information.
1084
- </pre>
1085
- <p>
1086
- param5: zero_rounding_mode if self is zero, but zero is not among
1087
- </p>
1088
- <pre>
1089
- the available remainders, it has to be
1090
- rounded to positive or negative value.
1091
- If the rounding_mode does not allow to
1092
- determine which of the two values to
1093
- use, zero_rounding_mode has to be used
1094
- to decide.
1095
- </pre>
1096
- </div>
1097
- </div>
1098
-
1099
- <div id="method-M000050" class="method-detail">
1100
- <a name="M000050"></a>
1101
-
1102
- <div class="method-heading">
1103
- <a href="LongDecimal.src/M000050.html" target="Code" class="method-signature"
1104
- onclick="popupCode('LongDecimal.src/M000050.html');return false;">
1105
- <span class="method-name">round_to_scale</span><span class="method-args">(new_scale, mode = ROUND_UNNECESSARY)</span>
1106
- </a>
1107
- </div>
1108
-
1109
- <div class="method-description">
1110
- <p>
1111
- create copy of self with different scale param1: new_scale <a
1112
- href="LongDecimal.html#M000047">new</a> scale for result param2: mode
1113
- rounding mode to be applied when information is
1114
- </p>
1115
- <pre>
1116
- lost. defaults to ROUND_UNNECESSARY, which
1117
- means that an exception is thrown if rounding
1118
- would actually loose any information.
1119
- </pre>
1120
- </div>
1121
- </div>
1122
-
1123
- <div id="method-M000049" class="method-detail">
1124
- <a name="M000049"></a>
1125
-
1126
- <div class="method-heading">
1127
- <a href="LongDecimal.src/M000049.html" target="Code" class="method-signature"
1128
- onclick="popupCode('LongDecimal.src/M000049.html');return false;">
1129
- <span class="method-name">round_trailing_zeros</span><span class="method-args">()</span>
1130
- </a>
1131
- </div>
1132
-
1133
- <div class="method-description">
1134
- <p>
1135
- get rid of trailing zeros
1136
- </p>
1137
- </div>
1138
- </div>
1139
-
1140
- <div id="method-M000101" class="method-detail">
1141
- <a name="M000101"></a>
1142
-
1143
- <div class="method-heading">
1144
- <a href="LongDecimal.src/M000101.html" target="Code" class="method-signature"
1145
- onclick="popupCode('LongDecimal.src/M000101.html');return false;">
1146
- <span class="method-name">sgn</span><span class="method-args">()</span>
1147
- </a>
1148
- </div>
1149
-
1150
- <div class="method-description">
1151
- <p>
1152
- get the <a href="LongDecimal.html#M000103">sign</a> of self -1 if self &lt;
1153
- 0
1154
- </p>
1155
- <pre>
1156
- 0 if self is 0 (with any number of 0s after the decimal point)
1157
- </pre>
1158
- <p>
1159
- +1 if self &gt; 0
1160
- </p>
1161
- </div>
1162
- </div>
1163
-
1164
- <div id="method-M000103" class="method-detail">
1165
- <a name="M000103"></a>
1166
-
1167
- <div class="method-heading">
1168
- <span class="method-name">sign</span><span class="method-args">()</span>
1169
- </div>
1170
-
1171
- <div class="method-description">
1172
- <p>
1173
- Alias for <a href="LongDecimal.html#M000101">sgn</a>
1174
- </p>
1175
- </div>
1176
- </div>
1177
-
1178
- <div id="method-M000102" class="method-detail">
1179
- <a name="M000102"></a>
1180
-
1181
- <div class="method-heading">
1182
- <span class="method-name">signum</span><span class="method-args">()</span>
1183
- </div>
1184
-
1185
- <div class="method-description">
1186
- <p>
1187
- Alias for <a href="LongDecimal.html#M000101">sgn</a>
1188
- </p>
1189
- </div>
1190
- </div>
1191
-
1192
- <div id="method-M000061" class="method-detail">
1193
- <a name="M000061"></a>
1194
-
1195
- <div class="method-heading">
1196
- <a href="LongDecimal.src/M000061.html" target="Code" class="method-signature"
1197
- onclick="popupCode('LongDecimal.src/M000061.html');return false;">
1198
- <span class="method-name">sint_digits10</span><span class="method-args">()</span>
1199
- </a>
1200
- </div>
1201
-
1202
- <div class="method-description">
1203
- <p>
1204
- number of decimal digits before the decimal point, not counting a single 0.
1205
- negative value, if some zeros follow immediately after decimal point
1206
- </p>
1207
- <p>
1208
- 0.000x -&gt; -3 0.00x -&gt; -2 0.0xx -&gt; -1 0.xxx -&gt; 0 1.xxx -&gt; 1
1209
- 10.xxx -&gt; 2 99.xxx -&gt; 2 100.xxx -&gt; 3 &#8230;
1210
- </p>
1211
- </div>
1212
- </div>
1213
-
1214
- <div id="method-M000090" class="method-detail">
1215
- <a name="M000090"></a>
1216
-
1217
- <div class="method-heading">
1218
- <a href="LongDecimal.src/M000090.html" target="Code" class="method-signature"
1219
- onclick="popupCode('LongDecimal.src/M000090.html');return false;">
1220
- <span class="method-name">size</span><span class="method-args">()</span>
1221
- </a>
1222
- </div>
1223
-
1224
- <div class="method-description">
1225
- <p>
1226
- gets <a href="LongDecimal.html#M000090">size</a> of int_val
1227
- </p>
1228
- </div>
1229
- </div>
1230
-
1231
- <div id="method-M000096" class="method-detail">
1232
- <a name="M000096"></a>
1233
-
1234
- <div class="method-heading">
1235
- <a href="LongDecimal.src/M000096.html" target="Code" class="method-signature"
1236
- onclick="popupCode('LongDecimal.src/M000096.html');return false;">
1237
- <span class="method-name">sqrt</span><span class="method-args">(new_scale, rounding_mode)</span>
1238
- </a>
1239
- </div>
1240
-
1241
- <div class="method-description">
1242
- <p>
1243
- calculate the <a href="LongDecimal.html#M000096">sqrt</a> of self provide
1244
- the result with given number new_scale of digits after the decimal point
1245
- use rounding_mode if the result is not exact
1246
- </p>
1247
- </div>
1248
- </div>
1249
-
1250
- <div id="method-M000097" class="method-detail">
1251
- <a name="M000097"></a>
1252
-
1253
- <div class="method-heading">
1254
- <a href="LongDecimal.src/M000097.html" target="Code" class="method-signature"
1255
- onclick="popupCode('LongDecimal.src/M000097.html');return false;">
1256
- <span class="method-name">sqrt_with_remainder</span><span class="method-args">(new_scale)</span>
1257
- </a>
1258
- </div>
1259
-
1260
- <div class="method-description">
1261
- <p>
1262
- calculate the <a href="LongDecimal.html#M000096">sqrt</a> s of self and
1263
- remainder r &gt;= 0 such that s*s+r = self and (s+1)*(s+1) &gt; self
1264
- provide the result with given number new_scale of digits after the decimal
1265
- point
1266
- </p>
1267
- </div>
1268
- </div>
1269
-
1270
- <div id="method-M000095" class="method-detail">
1271
- <a name="M000095"></a>
1272
-
1273
- <div class="method-heading">
1274
- <a href="LongDecimal.src/M000095.html" target="Code" class="method-signature"
1275
- onclick="popupCode('LongDecimal.src/M000095.html');return false;">
1276
- <span class="method-name">square</span><span class="method-args">()</span>
1277
- </a>
1278
- </div>
1279
-
1280
- <div class="method-description">
1281
- <p>
1282
- calculate the <a href="LongDecimal.html#M000095">square</a> of self
1283
- </p>
1284
- </div>
1285
- </div>
1286
-
1287
- <div id="method-M000065" class="method-detail">
1288
- <a name="M000065"></a>
1289
-
1290
- <div class="method-heading">
1291
- <a href="LongDecimal.src/M000065.html" target="Code" class="method-signature"
1292
- onclick="popupCode('LongDecimal.src/M000065.html');return false;">
1293
- <span class="method-name">succ</span><span class="method-args">()</span>
1294
- </a>
1295
- </div>
1296
-
1297
- <div class="method-description">
1298
- <p>
1299
- successor as needed for using <a href="LongDecimal.html">LongDecimal</a> in
1300
- ranges it needs to be observed that this is usually not an increment by 1,
1301
- but by 1/10**scale.
1302
- </p>
1303
- </div>
1304
- </div>
1305
-
1306
- <div id="method-M000071" class="method-detail">
1307
- <a name="M000071"></a>
1308
-
1309
- <div class="method-heading">
1310
- <a href="LongDecimal.src/M000071.html" target="Code" class="method-signature"
1311
- onclick="popupCode('LongDecimal.src/M000071.html');return false;">
1312
- <span class="method-name">sunit</span><span class="method-args">()</span>
1313
- </a>
1314
- </div>
1315
-
1316
- <div class="method-description">
1317
- <p>
1318
- return the <a href="LongDecimal.html#M000070">unit</a> by which self is
1319
- incremented by <a href="LongDecimal.html#M000065">succ</a> times <a
1320
- href="LongDecimal.html#M000103">sign</a>
1321
- </p>
1322
- </div>
1323
- </div>
1324
-
1325
- <div id="method-M000058" class="method-detail">
1326
- <a name="M000058"></a>
1327
-
1328
- <div class="method-heading">
1329
- <a href="LongDecimal.src/M000058.html" target="Code" class="method-signature"
1330
- onclick="popupCode('LongDecimal.src/M000058.html');return false;">
1331
- <span class="method-name">to_bd</span><span class="method-args">()</span>
1332
- </a>
1333
- </div>
1334
-
1335
- <div class="method-description">
1336
- <p>
1337
- convert selt into BigDecimal
1338
- </p>
1339
- </div>
1340
- </div>
1341
-
1342
- <div id="method-M000055" class="method-detail">
1343
- <a name="M000055"></a>
1344
-
1345
- <div class="method-heading">
1346
- <a href="LongDecimal.src/M000055.html" target="Code" class="method-signature"
1347
- onclick="popupCode('LongDecimal.src/M000055.html');return false;">
1348
- <span class="method-name">to_f</span><span class="method-args">()</span>
1349
- </a>
1350
- </div>
1351
-
1352
- <div class="method-description">
1353
- <p>
1354
- convert self into Float this works straitforward by dividing numerator by
1355
- power of 10 in float-arithmetic, in all cases where numerator and <a
1356
- href="LongDecimal.html#M000059">denominator</a> are within the ranges
1357
- expressable as Floats. Goes via string representation otherwise.
1358
- </p>
1359
- </div>
1360
- </div>
1361
-
1362
- <div id="method-M000056" class="method-detail">
1363
- <a name="M000056"></a>
1364
-
1365
- <div class="method-heading">
1366
- <a href="LongDecimal.src/M000056.html" target="Code" class="method-signature"
1367
- onclick="popupCode('LongDecimal.src/M000056.html');return false;">
1368
- <span class="method-name">to_i</span><span class="method-args">()</span>
1369
- </a>
1370
- </div>
1371
-
1372
- <div class="method-description">
1373
- <p>
1374
- convert self into <a href="Integer.html">Integer</a> This may loose
1375
- information. In most cases it is preferred to control this by calling <a
1376
- href="LongDecimal.html#M000050">round_to_scale</a> first and then applying
1377
- <a href="LongDecimal.html#M000056">to_i</a> when the number represented by
1378
- self is actually an integer.
1379
- </p>
1380
- </div>
1381
- </div>
1382
-
1383
- <div id="method-M000057" class="method-detail">
1384
- <a name="M000057"></a>
1385
-
1386
- <div class="method-heading">
1387
- <a href="LongDecimal.src/M000057.html" target="Code" class="method-signature"
1388
- onclick="popupCode('LongDecimal.src/M000057.html');return false;">
1389
- <span class="method-name">to_ld</span><span class="method-args">(prec = nil, mode = LongMath.standard_mode)</span>
1390
- </a>
1391
- </div>
1392
-
1393
- <div class="method-description">
1394
- <p>
1395
- convert self into <a href="LongDecimal.html">LongDecimal</a> (returns self)
1396
- optional first argument gives the precision for the desired result optional
1397
- second argument gives the rouding mode
1398
- </p>
1399
- </div>
1400
- </div>
1401
-
1402
- <div id="method-M000052" class="method-detail">
1403
- <a name="M000052"></a>
1404
-
1405
- <div class="method-heading">
1406
- <a href="LongDecimal.src/M000052.html" target="Code" class="method-signature"
1407
- onclick="popupCode('LongDecimal.src/M000052.html');return false;">
1408
- <span class="method-name">to_s</span><span class="method-args">(shown_scale = @scale, mode = ROUND_UNNECESSARY, base = 10)</span>
1409
- </a>
1410
- </div>
1411
-
1412
- <div class="method-description">
1413
- <p>
1414
- convert self into String, which is the decimal representation. Use trailing
1415
- zeros, if int_val has them.
1416
- </p>
1417
- <p>
1418
- optional parameter shown_scale is the number of digits after the decimal
1419
- point. Defaults to the scale of self. optional parameter mode ist the
1420
- rounding mode to be applied. Defaults to ROUND_UNNECESSARY, in which case
1421
- an exception is thrown if rounding is actually necessary. optional
1422
- parameter base is the base to be used when expressing self as string.
1423
- defaults to 10.
1424
- </p>
1425
- </div>
1426
- </div>
1427
-
1428
- <div id="method-M000070" class="method-detail">
1429
- <a name="M000070"></a>
1430
-
1431
- <div class="method-heading">
1432
- <a href="LongDecimal.src/M000070.html" target="Code" class="method-signature"
1433
- onclick="popupCode('LongDecimal.src/M000070.html');return false;">
1434
- <span class="method-name">unit</span><span class="method-args">()</span>
1435
- </a>
1436
- </div>
1437
-
1438
- <div class="method-description">
1439
- <p>
1440
- return the <a href="LongDecimal.html#M000070">unit</a> by which self is
1441
- incremented by <a href="LongDecimal.html#M000065">succ</a>
1442
- </p>
1443
- </div>
1444
- </div>
1445
-
1446
- <div id="method-M000106" class="method-detail">
1447
- <a name="M000106"></a>
1448
-
1449
- <div class="method-heading">
1450
- <a href="LongDecimal.src/M000106.html" target="Code" class="method-signature"
1451
- onclick="popupCode('LongDecimal.src/M000106.html');return false;">
1452
- <span class="method-name">zero?</span><span class="method-args">()</span>
1453
- </a>
1454
- </div>
1455
-
1456
- <div class="method-description">
1457
- <p>
1458
- check if the number expressed by self is 0 (zero) with any number of 0s
1459
- after the decimal point.
1460
- </p>
1461
- </div>
1462
- </div>
1463
-
1464
- <div id="method-M000084" class="method-detail">
1465
- <a name="M000084"></a>
1466
-
1467
- <div class="method-heading">
1468
- <a href="LongDecimal.src/M000084.html" target="Code" class="method-signature"
1469
- onclick="popupCode('LongDecimal.src/M000084.html');return false;">
1470
- <span class="method-name">|</span><span class="method-args">(other)</span>
1471
- </a>
1472
- </div>
1473
-
1474
- <div class="method-description">
1475
- <p>
1476
- performs bitwise OR between self and other
1477
- </p>
1478
- </div>
1479
- </div>
1480
-
1481
- <div id="method-M000086" class="method-detail">
1482
- <a name="M000086"></a>
1483
-
1484
- <div class="method-heading">
1485
- <a href="LongDecimal.src/M000086.html" target="Code" class="method-signature"
1486
- onclick="popupCode('LongDecimal.src/M000086.html');return false;">
1487
- <span class="method-name">~</span><span class="method-args">()</span>
1488
- </a>
1489
- </div>
1490
-
1491
- <div class="method-description">
1492
- <p>
1493
- bitwise inversion
1494
- </p>
1495
- </div>
1496
- </div>
1497
-
1498
- <h3 class="section-bar">Protected Instance methods</h3>
1499
-
1500
- <div id="method-M000093" class="method-detail">
1501
- <a name="M000093"></a>
1502
-
1503
- <div class="method-heading">
1504
- <a href="LongDecimal.src/M000093.html" target="Code" class="method-signature"
1505
- onclick="popupCode('LongDecimal.src/M000093.html');return false;">
1506
- <span class="method-name">move_point_left_int</span><span class="method-args">(n)</span>
1507
- </a>
1508
- </div>
1509
-
1510
- <div class="method-description">
1511
- <p>
1512
- internal method <a href="LongDecimal.html#M000076">divide</a> by 10**n
1513
- </p>
1514
- </div>
1515
- </div>
1516
-
1517
- <div id="method-M000094" class="method-detail">
1518
- <a name="M000094"></a>
1519
-
1520
- <div class="method-heading">
1521
- <a href="LongDecimal.src/M000094.html" target="Code" class="method-signature"
1522
- onclick="popupCode('LongDecimal.src/M000094.html');return false;">
1523
- <span class="method-name">move_point_right_int</span><span class="method-args">(n)</span>
1524
- </a>
1525
- </div>
1526
-
1527
- <div class="method-description">
1528
- <p>
1529
- internal method multiply by 10**n
1530
- </p>
1531
- </div>
1532
- </div>
1533
-
1534
- <div id="method-M000048" class="method-detail">
1535
- <a name="M000048"></a>
1536
-
1537
- <div class="method-heading">
1538
- <a href="LongDecimal.src/M000048.html" target="Code" class="method-signature"
1539
- onclick="popupCode('LongDecimal.src/M000048.html');return false;">
1540
- <span class="method-name">scale=</span><span class="method-args">(s)</span>
1541
- </a>
1542
- </div>
1543
-
1544
- <div class="method-description">
1545
- <p>
1546
- alter scale (changes self)
1547
- </p>
1548
- <p>
1549
- only for internal use: use <a
1550
- href="LongDecimal.html#M000050">round_to_scale</a> instead
1551
- </p>
1552
- </div>
1553
- </div>
1554
-
1555
- <div id="method-M000053" class="method-detail">
1556
- <a name="M000053"></a>
1557
-
1558
- <div class="method-heading">
1559
- <a href="LongDecimal.src/M000053.html" target="Code" class="method-signature"
1560
- onclick="popupCode('LongDecimal.src/M000053.html');return false;">
1561
- <span class="method-name">to_s_10</span><span class="method-args">()</span>
1562
- </a>
1563
- </div>
1564
-
1565
- <div class="method-description">
1566
- <p>
1567
- internal helper method, converts self to string in decimal system with
1568
- default settings.
1569
- </p>
1570
- </div>
1571
- </div>
1572
-
1573
- <div id="method-M000054" class="method-detail">
1574
- <a name="M000054"></a>
1575
-
1576
- <div class="method-heading">
1577
- <a href="LongDecimal.src/M000054.html" target="Code" class="method-signature"
1578
- onclick="popupCode('LongDecimal.src/M000054.html');return false;">
1579
- <span class="method-name">to_s_internal</span><span class="method-args">(b, sc)</span>
1580
- </a>
1581
- </div>
1582
-
1583
- <div class="method-description">
1584
- <p>
1585
- internal helper method, converts self to string in any number system
1586
- </p>
1587
- </div>
1588
- </div>
1589
-
1590
-
1591
- </div>
1592
-
1593
-
1594
- </div>
1595
-
1596
-
1597
- <div id="validator-badges">
1598
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1599
- </div>
1600
-
1601
- </body>
1602
- </html>