long-decimal 0.00.11 → 0.00.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. data/README +6 -3
  2. data/VERSION +1 -1
  3. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.html +5 -5
  4. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000133.html +22 -0
  5. data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000135.html +22 -0
  6. data/doc/classes/LongMath.html +78 -29
  7. data/doc/classes/LongMath.src/M000001.html +1 -1
  8. data/doc/classes/LongMath.src/M000002.html +1 -1
  9. data/doc/classes/LongMath.src/M000003.html +1 -1
  10. data/doc/classes/LongMath.src/M000004.html +1 -1
  11. data/doc/classes/LongMath.src/M000005.html +1 -1
  12. data/doc/classes/LongMath.src/M000006.html +1 -1
  13. data/doc/classes/LongMath.src/M000007.html +1 -1
  14. data/doc/classes/LongMath.src/M000008.html +1 -1
  15. data/doc/classes/LongMath.src/M000009.html +1 -1
  16. data/doc/classes/LongMath.src/M000010.html +1 -1
  17. data/doc/classes/LongMath.src/M000011.html +2 -2
  18. data/doc/classes/LongMath.src/M000012.html +1 -1
  19. data/doc/classes/LongMath.src/M000013.html +1 -1
  20. data/doc/classes/LongMath.src/M000014.html +1 -1
  21. data/doc/classes/LongMath.src/M000015.html +1 -1
  22. data/doc/classes/LongMath.src/M000016.html +14 -11
  23. data/doc/classes/LongMath.src/M000017.html +10 -17
  24. data/doc/classes/LongMath.src/M000018.html +1 -1
  25. data/doc/classes/LongMath.src/M000019.html +2 -1
  26. data/doc/classes/LongMath.src/M000021.html +51 -1
  27. data/doc/classes/LongMath.src/M000022.html +12 -9
  28. data/doc/classes/LongMath.src/M000023.html +28 -5
  29. data/doc/classes/LongMath.src/M000024.html +22 -0
  30. data/doc/classes/LongMath.src/M000025.html +18 -0
  31. data/doc/classes/LongMath/LongDecimal.html +371 -371
  32. data/doc/classes/LongMath/LongDecimal.src/M000058.html +18 -0
  33. data/doc/classes/LongMath/LongDecimal.src/M000059.html +18 -0
  34. data/doc/classes/LongMath/LongDecimal.src/M000060.html +18 -0
  35. data/doc/classes/LongMath/LongDecimal.src/M000061.html +4 -4
  36. data/doc/classes/LongMath/LongDecimal.src/M000062.html +4 -4
  37. data/doc/classes/LongMath/LongDecimal.src/M000063.html +4 -4
  38. data/doc/classes/LongMath/LongDecimal.src/M000064.html +4 -6
  39. data/doc/classes/LongMath/LongDecimal.src/M000065.html +4 -95
  40. data/doc/classes/LongMath/LongDecimal.src/M000066.html +6 -20
  41. data/doc/classes/LongMath/LongDecimal.src/M000067.html +92 -24
  42. data/doc/classes/LongMath/LongDecimal.src/M000068.html +17 -18
  43. data/doc/classes/LongMath/LongDecimal.src/M000069.html +27 -4
  44. data/doc/classes/LongMath/LongDecimal.src/M000070.html +19 -13
  45. data/doc/classes/LongMath/LongDecimal.src/M000071.html +4 -4
  46. data/doc/classes/LongMath/LongDecimal.src/M000072.html +13 -22
  47. data/doc/classes/LongMath/LongDecimal.src/M000073.html +4 -4
  48. data/doc/classes/LongMath/LongDecimal.src/M000074.html +24 -4
  49. data/doc/classes/LongMath/LongDecimal.src/M000075.html +4 -6
  50. data/doc/classes/LongMath/LongDecimal.src/M000076.html +4 -4
  51. data/doc/classes/LongMath/LongDecimal.src/M000077.html +6 -15
  52. data/doc/classes/LongMath/LongDecimal.src/M000078.html +4 -32
  53. data/doc/classes/LongMath/LongDecimal.src/M000079.html +14 -14
  54. data/doc/classes/LongMath/LongDecimal.src/M000080.html +31 -12
  55. data/doc/classes/LongMath/LongDecimal.src/M000081.html +15 -4
  56. data/doc/classes/LongMath/LongDecimal.src/M000082.html +27 -0
  57. data/doc/classes/LongMath/LongDecimal.src/M000083.html +4 -4
  58. data/doc/classes/LongMath/LongDecimal.src/M000085.html +4 -4
  59. data/doc/classes/LongMath/LongDecimal.src/M000086.html +4 -4
  60. data/doc/classes/LongMath/LongDecimal.src/M000087.html +4 -4
  61. data/doc/classes/LongMath/LongDecimal.src/M000088.html +18 -0
  62. data/doc/classes/LongMath/LongDecimal.src/M000089.html +4 -4
  63. data/doc/classes/LongMath/LongDecimal.src/M000090.html +4 -8
  64. data/doc/classes/LongMath/LongDecimal.src/M000091.html +4 -9
  65. data/doc/classes/LongMath/LongDecimal.src/M000092.html +6 -7
  66. data/doc/classes/LongMath/LongDecimal.src/M000093.html +6 -6
  67. data/doc/classes/LongMath/LongDecimal.src/M000094.html +9 -4
  68. data/doc/classes/LongMath/LongDecimal.src/M000095.html +7 -13
  69. data/doc/classes/LongMath/LongDecimal.src/M000096.html +4 -9
  70. data/doc/classes/LongMath/LongDecimal.src/M000097.html +13 -7
  71. data/doc/classes/LongMath/LongDecimal.src/M000098.html +7 -18
  72. data/doc/classes/LongMath/LongDecimal.src/M000099.html +8 -7
  73. data/doc/classes/LongMath/LongDecimal.src/M000100.html +20 -5
  74. data/doc/classes/LongMath/LongDecimal.src/M000101.html +7 -8
  75. data/doc/classes/LongMath/LongDecimal.src/M000102.html +5 -9
  76. data/doc/classes/LongMath/LongDecimal.src/M000103.html +5 -5
  77. data/doc/classes/LongMath/LongDecimal.src/M000104.html +9 -4
  78. data/doc/classes/LongMath/LongDecimal.src/M000105.html +8 -6
  79. data/doc/classes/LongMath/LongDecimal.src/M000106.html +4 -7
  80. data/doc/classes/LongMath/LongDecimal.src/M000107.html +7 -4
  81. data/doc/classes/LongMath/LongDecimal.src/M000108.html +7 -4
  82. data/doc/classes/LongMath/LongDecimal.src/M000109.html +4 -9
  83. data/doc/classes/LongMath/LongDecimal.src/M000110.html +4 -9
  84. data/doc/classes/LongMath/LongDecimal.src/M000111.html +9 -5
  85. data/doc/classes/LongMath/LongDecimal.src/M000112.html +7 -7
  86. data/doc/classes/LongMath/LongDecimal.src/M000113.html +5 -4
  87. data/doc/classes/LongMath/LongDecimal.src/M000114.html +8 -15
  88. data/doc/classes/LongMath/LongDecimal.src/M000115.html +4 -4
  89. data/doc/classes/LongMath/LongDecimal.src/M000116.html +15 -8
  90. data/doc/classes/LongMath/LongDecimal.src/M000117.html +4 -4
  91. data/doc/classes/LongMath/LongDecimal.src/M000119.html +4 -9
  92. data/doc/classes/LongMath/LongDecimal.src/M000121.html +9 -4
  93. data/doc/classes/LongMath/LongDecimal.src/M000122.html +5 -33
  94. data/doc/classes/LongMath/LongDecimal.src/M000123.html +4 -4
  95. data/doc/classes/LongMath/LongDecimal.src/M000124.html +33 -4
  96. data/doc/classes/LongMath/LongDecimal.src/M000125.html +4 -33
  97. data/doc/classes/LongMath/LongDecimal.src/M000126.html +4 -4
  98. data/doc/classes/LongMath/LongDecimal.src/M000128.html +18 -0
  99. data/doc/classes/LongMath/LongDecimal.src/M000129.html +19 -0
  100. data/doc/classes/LongMath/LongDecimal.src/M000130.html +4 -4
  101. data/doc/classes/LongMath/LongDecimal.src/M000131.html +4 -4
  102. data/doc/classes/LongMath/LongDecimal.src/M000132.html +4 -4
  103. data/doc/classes/LongMath/LongDecimal.src/M000133.html +4 -4
  104. data/doc/classes/LongMath/LongDecimalQuot.html +168 -168
  105. data/doc/classes/LongMath/LongDecimalQuot.src/M000026.html +4 -4
  106. data/doc/classes/LongMath/LongDecimalQuot.src/M000027.html +14 -4
  107. data/doc/classes/LongMath/LongDecimalQuot.src/M000028.html +4 -5
  108. data/doc/classes/LongMath/LongDecimalQuot.src/M000029.html +4 -4
  109. data/doc/classes/LongMath/LongDecimalQuot.src/M000030.html +5 -4
  110. data/doc/classes/LongMath/LongDecimalQuot.src/M000031.html +4 -4
  111. data/doc/classes/LongMath/LongDecimalQuot.src/M000032.html +4 -4
  112. data/doc/classes/LongMath/LongDecimalQuot.src/M000033.html +4 -4
  113. data/doc/classes/LongMath/LongDecimalQuot.src/M000034.html +4 -8
  114. data/doc/classes/LongMath/LongDecimalQuot.src/M000035.html +4 -9
  115. data/doc/classes/LongMath/LongDecimalQuot.src/M000036.html +6 -7
  116. data/doc/classes/LongMath/LongDecimalQuot.src/M000037.html +5 -5
  117. data/doc/classes/LongMath/LongDecimalQuot.src/M000038.html +5 -5
  118. data/doc/classes/LongMath/LongDecimalQuot.src/M000039.html +7 -19
  119. data/doc/classes/LongMath/LongDecimalQuot.src/M000040.html +8 -7
  120. data/doc/classes/LongMath/LongDecimalQuot.src/M000041.html +21 -5
  121. data/doc/classes/LongMath/LongDecimalQuot.src/M000042.html +8 -4
  122. data/doc/classes/LongMath/LongDecimalQuot.src/M000043.html +5 -4
  123. data/doc/classes/LongMath/LongDecimalQuot.src/M000044.html +4 -4
  124. data/doc/classes/LongMath/LongDecimalQuot.src/M000045.html +4 -4
  125. data/doc/classes/LongMath/LongDecimalQuot.src/M000046.html +4 -63
  126. data/doc/classes/LongMath/LongDecimalQuot.src/M000047.html +4 -22
  127. data/doc/classes/LongMath/LongDecimalQuot.src/M000048.html +63 -4
  128. data/doc/classes/LongMath/LongDecimalQuot.src/M000049.html +20 -7
  129. data/doc/classes/LongMath/LongDecimalQuot.src/M000050.html +4 -5
  130. data/doc/classes/LongMath/LongDecimalQuot.src/M000051.html +9 -4
  131. data/doc/classes/LongMath/LongDecimalQuot.src/M000052.html +5 -4
  132. data/doc/classes/LongMath/LongDecimalQuot.src/M000053.html +4 -4
  133. data/doc/classes/LongMath/LongDecimalQuot.src/M000054.html +1 -1
  134. data/doc/classes/LongMath/LongDecimalQuot.src/M000055.html +1 -1
  135. data/doc/classes/LongMath/LongDecimalQuot.src/M000056.html +18 -0
  136. data/doc/classes/LongMath/LongDecimalQuot.src/M000057.html +18 -0
  137. data/doc/classes/LongMath/LongDecimalQuot.src/M000058.html +1 -1
  138. data/doc/classes/LongMath/LongDecimalQuot.src/M000059.html +4 -4
  139. data/doc/classes/LongMath/Numeric.html +5 -5
  140. data/doc/classes/LongMath/Numeric.src/M000132.html +18 -0
  141. data/doc/classes/LongMath/Numeric.src/M000134.html +18 -0
  142. data/doc/created.rid +1 -1
  143. data/doc/files/lib/longdecimal_rb.html +2 -2
  144. data/doc/fr_method_index.html +115 -113
  145. data/lib/longdecimal.rb +84 -34
  146. data/test/testlongdecimal.rb +271 -15
  147. metadata +17 -2
@@ -96,7 +96,7 @@
96
96
  <h3 class="section-bar">Methods</h3>
97
97
 
98
98
  <div class="name-list">
99
- <a href="#M000132">to_ld</a>&nbsp;&nbsp;
99
+ <a href="#M000134">to_ld</a>&nbsp;&nbsp;
100
100
  </div>
101
101
  </div>
102
102
 
@@ -118,12 +118,12 @@
118
118
  <div id="methods">
119
119
  <h3 class="section-bar">Public Instance methods</h3>
120
120
 
121
- <div id="method-M000132" class="method-detail">
122
- <a name="M000132"></a>
121
+ <div id="method-M000134" class="method-detail">
122
+ <a name="M000134"></a>
123
123
 
124
124
  <div class="method-heading">
125
- <a href="Numeric.src/M000132.html" target="Code" class="method-signature"
126
- onclick="popupCode('Numeric.src/M000132.html');return false;">
125
+ <a href="Numeric.src/M000134.html" target="Code" class="method-signature"
126
+ onclick="popupCode('Numeric.src/M000134.html');return false;">
127
127
  <span class="method-name">to_ld</span><span class="method-args">()</span>
128
128
  </a>
129
129
  </div>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>to_ld (LongMath::Numeric)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 2190</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ld</span>
15
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-keyword kw">self</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>to_ld (LongMath::Numeric)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/longdecimal.rb, line 2240</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ld</span>
15
+ <span class="ruby-constant">LongDecimal</span>(<span class="ruby-keyword kw">self</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
data/doc/created.rid CHANGED
@@ -1 +1 @@
1
- Tue Mar 14 21:47:11 CET 2006
1
+ Sat Mar 18 07:40:45 CET 2006
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Tue Mar 14 21:43:57 CET 2006</td>
59
+ <td>Sat Mar 18 07:40:05 CET 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -87,7 +87,7 @@ point
87
87
  </p>
88
88
  <p>
89
89
  CVS-ID: $Header: /var/cvs/long-decimal/long-decimal/lib/longdecimal.rb,v
90
- 1.8 2006/03/14 20:25:22 bk1 Exp $ CVS-Label: $Name: PRE_ALPHA_0_11 $
90
+ 1.9 2006/03/18 06:03:58 bk1 Exp $ CVS-Label: $Name: PRE_ALPHA_0_12 $
91
91
  Author: $Author: bk1 $ (Karl Brodowsky)
92
92
  </p>
93
93
 
@@ -20,139 +20,141 @@
20
20
  <div id="index">
21
21
  <h1 class="section-bar">Methods</h1>
22
22
  <div id="index-entries">
23
- <a href="classes/LongMath/LongDecimalQuot.html#M000041">% (LongMath::LongDecimalQuot)</a><br />
24
- <a href="classes/LongMath/LongDecimal.html#M000100">% (LongMath::LongDecimal)</a><br />
25
- <a href="classes/LongMath/LongDecimal.html#M000101">& (LongMath::LongDecimal)</a><br />
26
- <a href="classes/LongMath/LongDecimal.html#M000093">* (LongMath::LongDecimal)</a><br />
27
- <a href="classes/LongMath/LongDecimalQuot.html#M000037">* (LongMath::LongDecimalQuot)</a><br />
28
- <a href="classes/LongMath/LongDecimal.html#M000098">** (LongMath::LongDecimal)</a><br />
29
- <a href="classes/LongMath/LongDecimalQuot.html#M000039">** (LongMath::LongDecimalQuot)</a><br />
30
- <a href="classes/LongMath/LongDecimalQuot.html#M000035">+ (LongMath::LongDecimalQuot)</a><br />
31
- <a href="classes/LongMath/LongDecimal.html#M000091">+ (LongMath::LongDecimal)</a><br />
32
- <a href="classes/LongMath/LongDecimalQuot.html#M000033">+@ (LongMath::LongDecimalQuot)</a><br />
33
- <a href="classes/LongMath/LongDecimal.html#M000089">+@ (LongMath::LongDecimal)</a><br />
34
- <a href="classes/LongMath/LongDecimalQuot.html#M000036">- (LongMath::LongDecimalQuot)</a><br />
35
- <a href="classes/LongMath/LongDecimal.html#M000092">- (LongMath::LongDecimal)</a><br />
36
- <a href="classes/LongMath/LongDecimal.html#M000090">-@ (LongMath::LongDecimal)</a><br />
37
- <a href="classes/LongMath/LongDecimalQuot.html#M000034">-@ (LongMath::LongDecimalQuot)</a><br />
38
- <a href="classes/LongMath/LongDecimalQuot.html#M000038">/ (LongMath::LongDecimalQuot)</a><br />
39
- <a href="classes/LongMath/LongDecimal.html#M000097">/ (LongMath::LongDecimal)</a><br />
40
- <a href="classes/LongMath/LongDecimal.html#M000105"><< (LongMath::LongDecimal)</a><br />
41
- <a href="classes/LongMath/LongDecimal.html#M000119"><=> (LongMath::LongDecimal)</a><br />
42
- <a href="classes/LongMath/LongDecimalQuot.html#M000049"><=> (LongMath::LongDecimalQuot)</a><br />
43
- <a href="classes/LongDecimalRoundingMode/RoundingModeClass.html#M000133"><=> (LongDecimalRoundingMode::RoundingModeClass)</a><br />
44
- <a href="classes/LongMath/LongDecimal.html#M000127">== (LongMath::LongDecimal)</a><br />
45
- <a href="classes/LongMath/LongDecimalQuot.html#M000048">== (LongMath::LongDecimalQuot)</a><br />
46
- <a href="classes/LongMath/LongDecimal.html#M000106">>> (LongMath::LongDecimal)</a><br />
47
- <a href="classes/LongMath.html#M000022">LongDecimal (LongMath)</a><br />
48
- <a href="classes/LongMath.html#M000023">LongDecimalQuot (LongMath)</a><br />
49
- <a href="classes/LongMath/LongDecimal.html#M000107">[] (LongMath::LongDecimal)</a><br />
50
- <a href="classes/LongMath/LongDecimal.html#M000103">^ (LongMath::LongDecimal)</a><br />
51
- <a href="classes/LongMath/LongDecimal.html#M000117">abs (LongMath::LongDecimal)</a><br />
52
- <a href="classes/LongMath/LongDecimalQuot.html#M000044">abs (LongMath::LongDecimalQuot)</a><br />
53
- <a href="classes/LongMath/LongDecimal.html#M000118">abs2 (LongMath::LongDecimal)</a><br />
54
- <a href="classes/LongMath/LongDecimalQuot.html#M000045">abs2 (LongMath::LongDecimalQuot)</a><br />
55
- <a href="classes/LongMath/LongDecimal.html#M000080">anti_equalize_scale (LongMath::LongDecimal)</a><br />
23
+ <a href="classes/LongMath/LongDecimal.html#M000102">% (LongMath::LongDecimal)</a><br />
24
+ <a href="classes/LongMath/LongDecimalQuot.html#M000043">% (LongMath::LongDecimalQuot)</a><br />
25
+ <a href="classes/LongMath/LongDecimal.html#M000103">& (LongMath::LongDecimal)</a><br />
26
+ <a href="classes/LongMath/LongDecimalQuot.html#M000039">* (LongMath::LongDecimalQuot)</a><br />
27
+ <a href="classes/LongMath/LongDecimal.html#M000095">* (LongMath::LongDecimal)</a><br />
28
+ <a href="classes/LongMath/LongDecimalQuot.html#M000041">** (LongMath::LongDecimalQuot)</a><br />
29
+ <a href="classes/LongMath/LongDecimal.html#M000100">** (LongMath::LongDecimal)</a><br />
30
+ <a href="classes/LongMath/LongDecimalQuot.html#M000037">+ (LongMath::LongDecimalQuot)</a><br />
31
+ <a href="classes/LongMath/LongDecimal.html#M000093">+ (LongMath::LongDecimal)</a><br />
32
+ <a href="classes/LongMath/LongDecimal.html#M000091">+@ (LongMath::LongDecimal)</a><br />
33
+ <a href="classes/LongMath/LongDecimalQuot.html#M000035">+@ (LongMath::LongDecimalQuot)</a><br />
34
+ <a href="classes/LongMath/LongDecimalQuot.html#M000038">- (LongMath::LongDecimalQuot)</a><br />
35
+ <a href="classes/LongMath/LongDecimal.html#M000094">- (LongMath::LongDecimal)</a><br />
36
+ <a href="classes/LongMath/LongDecimalQuot.html#M000036">-@ (LongMath::LongDecimalQuot)</a><br />
37
+ <a href="classes/LongMath/LongDecimal.html#M000092">-@ (LongMath::LongDecimal)</a><br />
38
+ <a href="classes/LongMath/LongDecimalQuot.html#M000040">/ (LongMath::LongDecimalQuot)</a><br />
39
+ <a href="classes/LongMath/LongDecimal.html#M000099">/ (LongMath::LongDecimal)</a><br />
40
+ <a href="classes/LongMath/LongDecimal.html#M000107"><< (LongMath::LongDecimal)</a><br />
41
+ <a href="classes/LongMath/LongDecimal.html#M000121"><=> (LongMath::LongDecimal)</a><br />
42
+ <a href="classes/LongMath/LongDecimalQuot.html#M000051"><=> (LongMath::LongDecimalQuot)</a><br />
43
+ <a href="classes/LongDecimalRoundingMode/RoundingModeClass.html#M000135"><=> (LongDecimalRoundingMode::RoundingModeClass)</a><br />
44
+ <a href="classes/LongMath/LongDecimal.html#M000129">== (LongMath::LongDecimal)</a><br />
45
+ <a href="classes/LongMath/LongDecimalQuot.html#M000050">== (LongMath::LongDecimalQuot)</a><br />
46
+ <a href="classes/LongMath/LongDecimal.html#M000108">>> (LongMath::LongDecimal)</a><br />
47
+ <a href="classes/LongMath.html#M000024">LongDecimal (LongMath)</a><br />
48
+ <a href="classes/LongMath.html#M000025">LongDecimalQuot (LongMath)</a><br />
49
+ <a href="classes/LongMath/LongDecimal.html#M000109">[] (LongMath::LongDecimal)</a><br />
50
+ <a href="classes/LongMath/LongDecimal.html#M000105">^ (LongMath::LongDecimal)</a><br />
51
+ <a href="classes/LongMath/LongDecimal.html#M000119">abs (LongMath::LongDecimal)</a><br />
52
+ <a href="classes/LongMath/LongDecimalQuot.html#M000046">abs (LongMath::LongDecimalQuot)</a><br />
53
+ <a href="classes/LongMath/LongDecimal.html#M000120">abs2 (LongMath::LongDecimal)</a><br />
54
+ <a href="classes/LongMath/LongDecimalQuot.html#M000047">abs2 (LongMath::LongDecimalQuot)</a><br />
55
+ <a href="classes/LongMath/LongDecimal.html#M000082">anti_equalize_scale (LongMath::LongDecimal)</a><br />
56
+ <a href="classes/LongMath.html#M000016">calc_iprec_for_exp (LongMath)</a><br />
56
57
  <a href="classes/LongMath.html#M000014">calc_pi (LongMath)</a><br />
57
58
  <a href="classes/LongMath.html#M000002">check_is_int (LongMath)</a><br />
58
59
  <a href="classes/LongMath.html#M000003">check_is_ld (LongMath)</a><br />
59
60
  <a href="classes/LongMath.html#M000005">check_is_mode (LongMath)</a><br />
60
61
  <a href="classes/LongMath.html#M000004">check_is_prec (LongMath)</a><br />
61
62
  <a href="classes/LongMath.html#M000001">check_word_len (LongMath)</a><br />
62
- <a href="classes/LongMath/LongDecimalQuot.html#M000047">coerce (LongMath::LongDecimalQuot)</a><br />
63
- <a href="classes/LongMath/LongDecimal.html#M000122">coerce (LongMath::LongDecimal)</a><br />
64
- <a href="classes/LongMath/LongDecimal.html#M000085">dec (LongMath::LongDecimal)</a><br />
65
- <a href="classes/LongMath/LongDecimal.html#M000087">dec! (LongMath::LongDecimal)</a><br />
66
- <a href="classes/LongMath/LongDecimalQuot.html#M000027">denominator (LongMath::LongDecimalQuot)</a><br />
67
- <a href="classes/LongMath/LongDecimal.html#M000076">denominator (LongMath::LongDecimal)</a><br />
68
- <a href="classes/LongMath/LongDecimal.html#M000094">divide (LongMath::LongDecimal)</a><br />
69
- <a href="classes/LongMath/LongDecimal.html#M000095">divide_s (LongMath::LongDecimal)</a><br />
70
- <a href="classes/LongMath/LongDecimalQuot.html#M000040">divmod (LongMath::LongDecimalQuot)</a><br />
71
- <a href="classes/LongMath/LongDecimal.html#M000099">divmod (LongMath::LongDecimal)</a><br />
72
- <a href="classes/LongMath/LongDecimal.html#M000079">equalize_scale (LongMath::LongDecimal)</a><br />
63
+ <a href="classes/LongMath/LongDecimal.html#M000124">coerce (LongMath::LongDecimal)</a><br />
64
+ <a href="classes/LongMath/LongDecimalQuot.html#M000049">coerce (LongMath::LongDecimalQuot)</a><br />
65
+ <a href="classes/LongMath/LongDecimal.html#M000087">dec (LongMath::LongDecimal)</a><br />
66
+ <a href="classes/LongMath/LongDecimal.html#M000089">dec! (LongMath::LongDecimal)</a><br />
67
+ <a href="classes/LongMath/LongDecimalQuot.html#M000029">denominator (LongMath::LongDecimalQuot)</a><br />
68
+ <a href="classes/LongMath/LongDecimal.html#M000078">denominator (LongMath::LongDecimal)</a><br />
69
+ <a href="classes/LongMath/LongDecimal.html#M000096">divide (LongMath::LongDecimal)</a><br />
70
+ <a href="classes/LongMath/LongDecimal.html#M000097">divide_s (LongMath::LongDecimal)</a><br />
71
+ <a href="classes/LongMath/LongDecimalQuot.html#M000042">divmod (LongMath::LongDecimalQuot)</a><br />
72
+ <a href="classes/LongMath/LongDecimal.html#M000101">divmod (LongMath::LongDecimal)</a><br />
73
+ <a href="classes/LongMath/LongDecimal.html#M000081">equalize_scale (LongMath::LongDecimal)</a><br />
73
74
  <a href="classes/LongMath.html#M000015">exp (LongMath)</a><br />
74
75
  <a href="classes/LongMath.html#M000017">exp_internal (LongMath)</a><br />
75
76
  <a href="classes/LongMath.html#M000012">gcd_with_high_power (LongMath)</a><br />
76
- <a href="classes/LongMath/LongDecimalQuot.html#M000056">hash (LongMath::LongDecimalQuot)</a><br />
77
- <a href="classes/LongMath/LongDecimal.html#M000130">hash (LongMath::LongDecimal)</a><br />
78
- <a href="classes/LongMath/LongDecimal.html#M000084">inc (LongMath::LongDecimal)</a><br />
79
- <a href="classes/LongMath/LongDecimal.html#M000086">inc! (LongMath::LongDecimal)</a><br />
80
- <a href="classes/LongMath/LongDecimalQuot.html#M000057">inspect (LongMath::LongDecimalQuot)</a><br />
81
- <a href="classes/LongMath/LongDecimal.html#M000131">inspect (LongMath::LongDecimal)</a><br />
82
- <a href="classes/LongMath/LongDecimal.html#M000078">int_digits10 (LongMath::LongDecimal)</a><br />
83
- <a href="classes/LongMath/LongDecimal.html#M000077">int_digits2 (LongMath::LongDecimal)</a><br />
84
- <a href="classes/LongMath/LongDecimal.html#M000116">inverse (LongMath::LongDecimal)</a><br />
85
- <a href="classes/LongMath/LongDecimal.html#M000123">is_int? (LongMath::LongDecimal)</a><br />
86
- <a href="classes/LongMath/LongDecimalQuot.html#M000052">is_int? (LongMath::LongDecimalQuot)</a><br />
77
+ <a href="classes/LongMath/LongDecimalQuot.html#M000058">hash (LongMath::LongDecimalQuot)</a><br />
78
+ <a href="classes/LongMath/LongDecimal.html#M000132">hash (LongMath::LongDecimal)</a><br />
79
+ <a href="classes/LongMath/LongDecimal.html#M000086">inc (LongMath::LongDecimal)</a><br />
80
+ <a href="classes/LongMath/LongDecimal.html#M000088">inc! (LongMath::LongDecimal)</a><br />
81
+ <a href="classes/LongMath/LongDecimal.html#M000133">inspect (LongMath::LongDecimal)</a><br />
82
+ <a href="classes/LongMath/LongDecimalQuot.html#M000059">inspect (LongMath::LongDecimalQuot)</a><br />
83
+ <a href="classes/LongMath/LongDecimal.html#M000080">int_digits10 (LongMath::LongDecimal)</a><br />
84
+ <a href="classes/LongMath/LongDecimal.html#M000079">int_digits2 (LongMath::LongDecimal)</a><br />
85
+ <a href="classes/LongMath/LongDecimal.html#M000118">inverse (LongMath::LongDecimal)</a><br />
86
+ <a href="classes/LongMath/LongDecimal.html#M000125">is_int? (LongMath::LongDecimal)</a><br />
87
+ <a href="classes/LongMath/LongDecimalQuot.html#M000054">is_int? (LongMath::LongDecimalQuot)</a><br />
87
88
  <a href="classes/LongMath.html#M000018">log (LongMath)</a><br />
88
89
  <a href="classes/LongMath.html#M000019">log10 (LongMath)</a><br />
89
90
  <a href="classes/LongMath.html#M000020">log2 (LongMath)</a><br />
90
91
  <a href="classes/LongMath.html#M000021">log_internal (LongMath)</a><br />
91
92
  <a href="classes/LongMath.html#M000007">merge_from_words (LongMath)</a><br />
92
- <a href="classes/LongMath/LongDecimal.html#M000063">minus_one! (LongMath::LongDecimal)</a><br />
93
- <a href="classes/LongMath/LongDecimal.html#M000109">move_point_left (LongMath::LongDecimal)</a><br />
94
- <a href="classes/LongMath/LongDecimal.html#M000111">move_point_left_int (LongMath::LongDecimal)</a><br />
95
- <a href="classes/LongMath/LongDecimal.html#M000110">move_point_right (LongMath::LongDecimal)</a><br />
96
- <a href="classes/LongMath/LongDecimal.html#M000112">move_point_right_int (LongMath::LongDecimal)</a><br />
93
+ <a href="classes/LongMath/LongDecimal.html#M000065">minus_one! (LongMath::LongDecimal)</a><br />
94
+ <a href="classes/LongMath/LongDecimal.html#M000111">move_point_left (LongMath::LongDecimal)</a><br />
95
+ <a href="classes/LongMath/LongDecimal.html#M000113">move_point_left_int (LongMath::LongDecimal)</a><br />
96
+ <a href="classes/LongMath/LongDecimal.html#M000112">move_point_right (LongMath::LongDecimal)</a><br />
97
+ <a href="classes/LongMath/LongDecimal.html#M000114">move_point_right_int (LongMath::LongDecimal)</a><br />
97
98
  <a href="classes/LongMath.html#M000013">multiplicity_of_factor (LongMath)</a><br />
98
- <a href="classes/LongMath/LongDecimalQuot.html#M000025">new (LongMath::LongDecimalQuot)</a><br />
99
- <a href="classes/LongMath/LongDecimal.html#M000065">new (LongMath::LongDecimal)</a><br />
100
- <a href="classes/LongMath/LongDecimalQuot.html#M000024">new! (LongMath::LongDecimalQuot)</a><br />
101
- <a href="classes/LongMath/LongDecimal.html#M000058">new! (LongMath::LongDecimal)</a><br />
102
- <a href="classes/LongMath/LongDecimal.html#M000082">next (LongMath::LongDecimal)</a><br />
103
- <a href="classes/LongMath/LongDecimalQuot.html#M000026">numerator (LongMath::LongDecimalQuot)</a><br />
104
- <a href="classes/LongMath/LongDecimal.html#M000060">one! (LongMath::LongDecimal)</a><br />
105
- <a href="classes/LongMath/LongDecimal.html#M000129">one? (LongMath::LongDecimal)</a><br />
106
- <a href="classes/LongMath.html#M000016">power (LongMath)</a><br />
107
- <a href="classes/LongMath/LongDecimal.html#M000064">power_of_ten! (LongMath::LongDecimal)</a><br />
108
- <a href="classes/LongMath/LongDecimal.html#M000083">pred (LongMath::LongDecimal)</a><br />
109
- <a href="classes/LongMath/LongDecimal.html#M000096">rdiv (LongMath::LongDecimal)</a><br />
110
- <a href="classes/LongMath/LongDecimalQuot.html#M000043">reciprocal (LongMath::LongDecimalQuot)</a><br />
111
- <a href="classes/LongMath/LongDecimal.html#M000115">reciprocal (LongMath::LongDecimal)</a><br />
112
- <a href="classes/LongMath/LongDecimal.html#M000067">round_to_scale (LongMath::LongDecimal)</a><br />
113
- <a href="classes/LongMath/LongDecimalQuot.html#M000046">round_to_scale (LongMath::LongDecimalQuot)</a><br />
114
- <a href="classes/LongMath/LongDecimal.html#M000066">scale= (LongMath::LongDecimal)</a><br />
115
- <a href="classes/LongMath/LongDecimal.html#M000121">scale_equal (LongMath::LongDecimal)</a><br />
116
- <a href="classes/LongMath/LongDecimalQuot.html#M000051">scale_equal (LongMath::LongDecimalQuot)</a><br />
117
- <a href="classes/LongMath/LongDecimal.html#M000120">scale_ufo (LongMath::LongDecimal)</a><br />
118
- <a href="classes/LongMath/LongDecimalQuot.html#M000050">scale_ufo (LongMath::LongDecimalQuot)</a><br />
119
- <a href="classes/LongMath/LongDecimalQuot.html#M000053">sgn (LongMath::LongDecimalQuot)</a><br />
120
- <a href="classes/LongMath/LongDecimal.html#M000124">sgn (LongMath::LongDecimal)</a><br />
121
- <a href="classes/LongMath/LongDecimalQuot.html#M000055">sign (LongMath::LongDecimalQuot)</a><br />
122
- <a href="classes/LongMath/LongDecimal.html#M000126">sign (LongMath::LongDecimal)</a><br />
123
- <a href="classes/LongMath/LongDecimalQuot.html#M000054">signum (LongMath::LongDecimalQuot)</a><br />
124
- <a href="classes/LongMath/LongDecimal.html#M000125">signum (LongMath::LongDecimal)</a><br />
125
- <a href="classes/LongMath/LongDecimal.html#M000108">size (LongMath::LongDecimal)</a><br />
99
+ <a href="classes/LongMath/LongDecimalQuot.html#M000027">new (LongMath::LongDecimalQuot)</a><br />
100
+ <a href="classes/LongMath/LongDecimal.html#M000067">new (LongMath::LongDecimal)</a><br />
101
+ <a href="classes/LongMath/LongDecimal.html#M000060">new! (LongMath::LongDecimal)</a><br />
102
+ <a href="classes/LongMath/LongDecimalQuot.html#M000026">new! (LongMath::LongDecimalQuot)</a><br />
103
+ <a href="classes/LongMath/LongDecimal.html#M000084">next (LongMath::LongDecimal)</a><br />
104
+ <a href="classes/LongMath/LongDecimalQuot.html#M000028">numerator (LongMath::LongDecimalQuot)</a><br />
105
+ <a href="classes/LongMath/LongDecimal.html#M000062">one! (LongMath::LongDecimal)</a><br />
106
+ <a href="classes/LongMath/LongDecimal.html#M000131">one? (LongMath::LongDecimal)</a><br />
107
+ <a href="classes/LongMath.html#M000022">power (LongMath)</a><br />
108
+ <a href="classes/LongMath.html#M000023">power_internal (LongMath)</a><br />
109
+ <a href="classes/LongMath/LongDecimal.html#M000066">power_of_ten! (LongMath::LongDecimal)</a><br />
110
+ <a href="classes/LongMath/LongDecimal.html#M000085">pred (LongMath::LongDecimal)</a><br />
111
+ <a href="classes/LongMath/LongDecimal.html#M000098">rdiv (LongMath::LongDecimal)</a><br />
112
+ <a href="classes/LongMath/LongDecimalQuot.html#M000045">reciprocal (LongMath::LongDecimalQuot)</a><br />
113
+ <a href="classes/LongMath/LongDecimal.html#M000117">reciprocal (LongMath::LongDecimal)</a><br />
114
+ <a href="classes/LongMath/LongDecimal.html#M000069">round_to_scale (LongMath::LongDecimal)</a><br />
115
+ <a href="classes/LongMath/LongDecimalQuot.html#M000048">round_to_scale (LongMath::LongDecimalQuot)</a><br />
116
+ <a href="classes/LongMath/LongDecimal.html#M000068">scale= (LongMath::LongDecimal)</a><br />
117
+ <a href="classes/LongMath/LongDecimal.html#M000123">scale_equal (LongMath::LongDecimal)</a><br />
118
+ <a href="classes/LongMath/LongDecimalQuot.html#M000053">scale_equal (LongMath::LongDecimalQuot)</a><br />
119
+ <a href="classes/LongMath/LongDecimal.html#M000122">scale_ufo (LongMath::LongDecimal)</a><br />
120
+ <a href="classes/LongMath/LongDecimalQuot.html#M000052">scale_ufo (LongMath::LongDecimalQuot)</a><br />
121
+ <a href="classes/LongMath/LongDecimal.html#M000126">sgn (LongMath::LongDecimal)</a><br />
122
+ <a href="classes/LongMath/LongDecimalQuot.html#M000055">sgn (LongMath::LongDecimalQuot)</a><br />
123
+ <a href="classes/LongMath/LongDecimalQuot.html#M000057">sign (LongMath::LongDecimalQuot)</a><br />
124
+ <a href="classes/LongMath/LongDecimal.html#M000128">sign (LongMath::LongDecimal)</a><br />
125
+ <a href="classes/LongMath/LongDecimalQuot.html#M000056">signum (LongMath::LongDecimalQuot)</a><br />
126
+ <a href="classes/LongMath/LongDecimal.html#M000127">signum (LongMath::LongDecimal)</a><br />
127
+ <a href="classes/LongMath/LongDecimal.html#M000110">size (LongMath::LongDecimal)</a><br />
126
128
  <a href="classes/LongMath.html#M000006">split_to_words (LongMath)</a><br />
127
- <a href="classes/LongMath/LongDecimal.html#M000114">sqrt (LongMath::LongDecimal)</a><br />
129
+ <a href="classes/LongMath/LongDecimal.html#M000116">sqrt (LongMath::LongDecimal)</a><br />
128
130
  <a href="classes/LongMath.html#M000008">sqrtb (LongMath)</a><br />
129
131
  <a href="classes/LongMath.html#M000009">sqrtb_with_remainder (LongMath)</a><br />
130
132
  <a href="classes/LongMath.html#M000010">sqrtw (LongMath)</a><br />
131
133
  <a href="classes/LongMath.html#M000011">sqrtw_with_remainder (LongMath)</a><br />
132
- <a href="classes/LongMath/LongDecimalQuot.html#M000042">square (LongMath::LongDecimalQuot)</a><br />
133
- <a href="classes/LongMath/LongDecimal.html#M000113">square (LongMath::LongDecimal)</a><br />
134
- <a href="classes/LongMath/LongDecimal.html#M000081">succ (LongMath::LongDecimal)</a><br />
135
- <a href="classes/LongMath/LongDecimal.html#M000062">ten! (LongMath::LongDecimal)</a><br />
136
- <a href="classes/LongMath/LongDecimal.html#M000075">to_bd (LongMath::LongDecimal)</a><br />
137
- <a href="classes/LongMath/LongDecimalQuot.html#M000030">to_f (LongMath::LongDecimalQuot)</a><br />
138
- <a href="classes/LongMath/LongDecimal.html#M000072">to_f (LongMath::LongDecimal)</a><br />
139
- <a href="classes/LongMath/LongDecimal.html#M000073">to_i (LongMath::LongDecimal)</a><br />
140
- <a href="classes/LongMath/LongDecimalQuot.html#M000031">to_i (LongMath::LongDecimalQuot)</a><br />
141
- <a href="classes/LongMath/LongDecimal.html#M000074">to_ld (LongMath::LongDecimal)</a><br />
142
- <a href="classes/LongMath/LongDecimalQuot.html#M000032">to_ld (LongMath::LongDecimalQuot)</a><br />
143
- <a href="classes/LongMath/Numeric.html#M000132">to_ld (LongMath::Numeric)</a><br />
144
- <a href="classes/LongMath/LongDecimalQuot.html#M000029">to_r (LongMath::LongDecimalQuot)</a><br />
145
- <a href="classes/LongMath/LongDecimal.html#M000071">to_r (LongMath::LongDecimal)</a><br />
146
- <a href="classes/LongMath/LongDecimal.html#M000068">to_s (LongMath::LongDecimal)</a><br />
147
- <a href="classes/LongMath/LongDecimalQuot.html#M000028">to_s (LongMath::LongDecimalQuot)</a><br />
148
- <a href="classes/LongMath/LongDecimal.html#M000069">to_s_10 (LongMath::LongDecimal)</a><br />
149
- <a href="classes/LongMath/LongDecimal.html#M000070">to_s_internal (LongMath::LongDecimal)</a><br />
150
- <a href="classes/LongMath/LongDecimal.html#M000061">two! (LongMath::LongDecimal)</a><br />
151
- <a href="classes/LongMath/LongDecimal.html#M000088">unit (LongMath::LongDecimal)</a><br />
152
- <a href="classes/LongMath/LongDecimal.html#M000059">zero! (LongMath::LongDecimal)</a><br />
153
- <a href="classes/LongMath/LongDecimal.html#M000128">zero? (LongMath::LongDecimal)</a><br />
154
- <a href="classes/LongMath/LongDecimal.html#M000102">| (LongMath::LongDecimal)</a><br />
155
- <a href="classes/LongMath/LongDecimal.html#M000104">~ (LongMath::LongDecimal)</a><br />
134
+ <a href="classes/LongMath/LongDecimalQuot.html#M000044">square (LongMath::LongDecimalQuot)</a><br />
135
+ <a href="classes/LongMath/LongDecimal.html#M000115">square (LongMath::LongDecimal)</a><br />
136
+ <a href="classes/LongMath/LongDecimal.html#M000083">succ (LongMath::LongDecimal)</a><br />
137
+ <a href="classes/LongMath/LongDecimal.html#M000064">ten! (LongMath::LongDecimal)</a><br />
138
+ <a href="classes/LongMath/LongDecimal.html#M000077">to_bd (LongMath::LongDecimal)</a><br />
139
+ <a href="classes/LongMath/LongDecimalQuot.html#M000032">to_f (LongMath::LongDecimalQuot)</a><br />
140
+ <a href="classes/LongMath/LongDecimal.html#M000074">to_f (LongMath::LongDecimal)</a><br />
141
+ <a href="classes/LongMath/LongDecimal.html#M000075">to_i (LongMath::LongDecimal)</a><br />
142
+ <a href="classes/LongMath/LongDecimalQuot.html#M000033">to_i (LongMath::LongDecimalQuot)</a><br />
143
+ <a href="classes/LongMath/Numeric.html#M000134">to_ld (LongMath::Numeric)</a><br />
144
+ <a href="classes/LongMath/LongDecimal.html#M000076">to_ld (LongMath::LongDecimal)</a><br />
145
+ <a href="classes/LongMath/LongDecimalQuot.html#M000034">to_ld (LongMath::LongDecimalQuot)</a><br />
146
+ <a href="classes/LongMath/LongDecimal.html#M000073">to_r (LongMath::LongDecimal)</a><br />
147
+ <a href="classes/LongMath/LongDecimalQuot.html#M000031">to_r (LongMath::LongDecimalQuot)</a><br />
148
+ <a href="classes/LongMath/LongDecimalQuot.html#M000030">to_s (LongMath::LongDecimalQuot)</a><br />
149
+ <a href="classes/LongMath/LongDecimal.html#M000070">to_s (LongMath::LongDecimal)</a><br />
150
+ <a href="classes/LongMath/LongDecimal.html#M000071">to_s_10 (LongMath::LongDecimal)</a><br />
151
+ <a href="classes/LongMath/LongDecimal.html#M000072">to_s_internal (LongMath::LongDecimal)</a><br />
152
+ <a href="classes/LongMath/LongDecimal.html#M000063">two! (LongMath::LongDecimal)</a><br />
153
+ <a href="classes/LongMath/LongDecimal.html#M000090">unit (LongMath::LongDecimal)</a><br />
154
+ <a href="classes/LongMath/LongDecimal.html#M000061">zero! (LongMath::LongDecimal)</a><br />
155
+ <a href="classes/LongMath/LongDecimal.html#M000130">zero? (LongMath::LongDecimal)</a><br />
156
+ <a href="classes/LongMath/LongDecimal.html#M000104">| (LongMath::LongDecimal)</a><br />
157
+ <a href="classes/LongMath/LongDecimal.html#M000106">~ (LongMath::LongDecimal)</a><br />
156
158
  </div>
157
159
  </div>
158
160
  </body>
data/lib/longdecimal.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  #
2
2
  # longdecimal.rb -- Arbitrary precision decimals with fixed decimal point
3
3
  #
4
- # CVS-ID: $Header: /var/cvs/long-decimal/long-decimal/lib/longdecimal.rb,v 1.8 2006/03/14 20:25:22 bk1 Exp $
5
- # CVS-Label: $Name: PRE_ALPHA_0_11 $
4
+ # CVS-ID: $Header: /var/cvs/long-decimal/long-decimal/lib/longdecimal.rb,v 1.9 2006/03/18 06:03:58 bk1 Exp $
5
+ # CVS-Label: $Name: PRE_ALPHA_0_12 $
6
6
  # Author: $Author: bk1 $ (Karl Brodowsky)
7
7
  #
8
8
  require "complex"
@@ -65,6 +65,8 @@ module LongMath
65
65
 
66
66
  MAX_FLOATABLE = Float::MAX.to_i
67
67
  MAX_EXP_ABLE = Math.log(MAX_FLOATABLE).to_i
68
+ LOG2 = Math.log(2.0)
69
+ LOG10 = Math.log(10.0)
68
70
 
69
71
  #
70
72
  # helper method for internal use: checks if word_len is a reasonable
@@ -269,7 +271,7 @@ module LongMath
269
271
  end
270
272
  j += 1
271
273
  if (j > 10) then
272
- puts("i=#{i} j=#{j} q=#{q} q0=#{q0} d0=#{d0} d=#{d} r=#{r} yi=#{yi} xi=#{xi}\n")
274
+ # puts("i=#{i} j=#{j} q=#{q} q0=#{q0} d0=#{d0} d=#{d} r=#{r} yi=#{yi} xi=#{xi}\n")
273
275
  break
274
276
  end
275
277
  end
@@ -411,21 +413,25 @@ module LongMath
411
413
  end
412
414
 
413
415
  #
414
- # calc the power of x with exponent y to the given precision as
415
- # LongDecimal. Only supports values of y such that exp(y) still
416
- # fits into a float (y <= 709)
416
+ # private helper method for exponentiation
417
+ # calculate internal precision
417
418
  #
418
- def LongMath.power(x, y, prec, mode = LongDecimal::ROUND_HALF_DOWN)
419
- check_is_ld(x, "x")
420
- check_is_ld(y, "y")
421
- raise TypeError, "y=#{y.inspect} must not be greater #{MAX_EXP_ABLE}" unless y <= MAX_EXP_ABLE
422
- check_is_prec(prec, "prec")
423
- check_is_mode(mode, "mode")
424
- iprec = prec+2
425
- logx = log(x, iprec, mode)
426
- exp_internal(logx * y, prec, mode)
419
+ def LongMath.calc_iprec_for_exp(x, prec)
420
+ iprec_extra = 0
421
+ if (x > 1) then
422
+ xf = x.to_f
423
+ iprec_extra = (xf / LOG10).abs
424
+ end
425
+ iprec = ((prec+10)*1.20 + iprec_extra).round
426
+ if (iprec < prec) then
427
+ iprec = prec
428
+ end
429
+ # puts("calc_iprec_for_exp: x=#{x} prec=#{prec} iprec=#{iprec} iprec_extra=#{iprec_extra}\n")
430
+ iprec
427
431
  end
428
432
 
433
+ # private :calc_iprec_for_exp
434
+
429
435
  #
430
436
  # internal functionality of exp. exposes some more parameters, that
431
437
  # should usually be set to defaut values, in order to allow better testing.
@@ -434,7 +440,7 @@ module LongMath
434
440
  # not work correctly
435
441
  #
436
442
  def LongMath.exp_internal(x, prec = nil, final_mode = LongDecimal::ROUND_HALF_DOWN, j = nil, k = nil, iprec = nil, mode = LongDecimal::ROUND_HALF_DOWN)
437
- check_is_ld(x)
443
+ check_is_ld(x, "x")
438
444
  if (prec == nil) then
439
445
  prec = x.scale
440
446
  end
@@ -448,19 +454,20 @@ module LongMath
448
454
 
449
455
  # if the result would come out to zero anyway, cut the work
450
456
  xi = x.to_i
451
- if (xi < -LongMath::MAX_FLOATABLE) || -((xi.to_f - 1) / Math.log(10)) > prec+1 then
457
+ if (xi < -LongMath::MAX_FLOATABLE) || -((xi.to_f - 1) / LOG10) > prec+1 then
452
458
  return LongDecimal(25, prec+2).round_to_scale(prec, final_mode)
453
459
  end
454
460
 
455
461
  if j == nil || k == nil then
456
- l2 = Math.log(2.0)
457
- lb = Math.log(10.0)
458
- s1 = (prec * lb / l2) ** (1.0/3.0)
462
+ s1 = (prec * LOG10 / LOG2) ** (1.0/3.0)
459
463
  if (j == nil) then
460
464
  j = s1.round
461
465
  end
462
466
  if (k == nil) then
463
- k = (s1 + Math.log([1, prec].max) / l2).round
467
+ k = (s1 + Math.log([1, prec].max) / LOG2).round
468
+ end
469
+ if (x > 1) then
470
+ k += (Math.log(x.to_f) / LOG2).abs.round
464
471
  end
465
472
  end
466
473
  if (j <= 0) then
@@ -472,19 +479,11 @@ module LongMath
472
479
  check_is_int(j, "j")
473
480
  check_is_int(k, "k")
474
481
 
475
- iprec_extra = 0
476
- if (x > 1) then
477
- xf = x.to_f
478
- k += (Math.log(xf) / Math.log(2)).abs.round
479
- iprec_extra = (xf / Math.log(10)).abs
480
- end
481
482
  if (iprec == nil) then
482
- iprec = ((prec+10)*1.20 + iprec_extra).round
483
- end
484
- if (iprec < prec) then
485
- iprec = prec
483
+ iprec = calc_iprec_for_exp(x, prec)
486
484
  end
487
485
  check_is_prec(iprec, "iprec")
486
+ # puts("exp_internal: x=#{x} prec=#{prec} iprec=#{iprec}\n")
488
487
 
489
488
  dprec = [ iprec, (prec + 1) << 1 ].min
490
489
 
@@ -555,6 +554,7 @@ module LongMath
555
554
  lnxx = log_internal(xx, iprec, mode)
556
555
  ln10 = log_internal(10.to_ld, iprec, mode)
557
556
  y = id + (lnxx / ln10).to_ld
557
+ return y.round_to_scale(prec, mode)
558
558
  end
559
559
 
560
560
  #
@@ -673,7 +673,7 @@ module LongMath
673
673
  i += 1
674
674
  sum += d
675
675
 
676
- # puts("s=#{sum} d=#{d} x=#{x} i=#{i}\n")
676
+ # puts("log_internal: s=#{sum} d=#{d} x=#{x} i=#{i} p=#{p} iprec=#{iprec} dprec=#{dprec}\n") if (i & 0x0f == 0x0f)
677
677
  end
678
678
 
679
679
  # puts("y=#{y} s=#{s} f=#{factor} sum=#{sum}\n")
@@ -683,6 +683,56 @@ module LongMath
683
683
 
684
684
  end
685
685
 
686
+ #
687
+ # calc the power of x with exponent y to the given precision as
688
+ # LongDecimal. Only supports values of y such that exp(y) still
689
+ # fits into a float (y <= 709)
690
+ #
691
+ def LongMath.power(x, y, prec, mode = LongDecimal::ROUND_HALF_DOWN)
692
+ check_is_ld(x, "x")
693
+ check_is_ld(y, "y")
694
+ raise TypeError, "y=#{y.inspect} must not be greater #{MAX_EXP_ABLE}" unless y <= MAX_EXP_ABLE
695
+ raise TypeError, "x=#{x.inspect} must not be greater #{MAX_FLOATABLE}" unless x <= MAX_FLOATABLE
696
+ raise TypeError, "x=#{x.inspect} must not positive" unless x > 0
697
+ check_is_prec(prec, "prec")
698
+ check_is_mode(mode, "mode")
699
+ LongMath.power_internal(x, y, prec, mode)
700
+ end
701
+
702
+ #
703
+ # internal functionality of exp. exposes some more parameters, that
704
+ # should usually be set to defaut values, in order to allow better testing.
705
+ # do not actually call this method unless you are testing exp.
706
+ # create a bug report, if the default settings for the parameters do
707
+ # not work correctly
708
+ #
709
+ def LongMath.power_internal(x, y, prec = nil, final_mode = LongDecimal::ROUND_HALF_DOWN, iprec = nil, mode = LongDecimal::ROUND_HALF_DOWN)
710
+ check_is_ld(x, "x")
711
+ if (prec == nil) then
712
+ prec = x.scale
713
+ end
714
+ check_is_prec(prec, "prec")
715
+
716
+ if (final_mode == nil)
717
+ final_mode = LongDecimal::ROUND_HALF_DOWN
718
+ end
719
+ check_is_mode(final_mode, "final_mode")
720
+ check_is_mode(mode, "mode")
721
+
722
+ logx_y_f = Math.log(x.to_f) * (y.to_f)
723
+
724
+ # iprec = (prec * 1.2 + 20 + (y.abs.to_f) * 1.5 * x.int_digits2).round
725
+ if (iprec == nil) then
726
+ iprec = calc_iprec_for_exp(logx_y_f, prec) + 2
727
+ end
728
+ # puts("power_internal: x=#{x} y=#{y} logx_y=#{logx_y_f} iprec=#{iprec} prec=#{prec}\n")
729
+ logx = log(x, iprec, mode)
730
+ logx_y = logx*y
731
+ xy = exp_internal(logx_y, prec + 1, mode)
732
+ # puts("power_internal: x=#{x} logx=#{logx} y=#{y} logx_y=#{logx_y} xy=#{xy} iprec=#{iprec} prec=#{prec}\n")
733
+ xy.round_to_scale(prec, final_mode)
734
+ end
735
+
686
736
  end # LongMath
687
737
 
688
738
  #
@@ -691,7 +741,7 @@ end # LongMath
691
741
  # digits and the other one the position of the decimal point.
692
742
  #
693
743
  class LongDecimal < Numeric
694
- @RCS_ID='-$Id: longdecimal.rb,v 1.8 2006/03/14 20:25:22 bk1 Exp $-'
744
+ @RCS_ID='-$Id: longdecimal.rb,v 1.9 2006/03/18 06:03:58 bk1 Exp $-'
695
745
 
696
746
  include LongDecimalRoundingMode
697
747
 
@@ -1755,7 +1805,7 @@ end # LongDecimal
1755
1805
  #
1756
1806
  class LongDecimalQuot < Numeric
1757
1807
 
1758
- @RCS_ID='-$Id: longdecimal.rb,v 1.8 2006/03/14 20:25:22 bk1 Exp $-'
1808
+ @RCS_ID='-$Id: longdecimal.rb,v 1.9 2006/03/18 06:03:58 bk1 Exp $-'
1759
1809
 
1760
1810
  include LongDecimalRoundingMode
1761
1811