long-decimal 0.01.01 → 0.01.02
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +17 -94
- data/VERSION +1 -1
- data/doc/classes/Integer.html +239 -0
- data/doc/classes/Integer.src/M000036.html +18 -0
- data/doc/classes/Integer.src/M000039.html +145 -0
- data/doc/classes/LongDecimal.html +453 -399
- data/doc/classes/LongDecimal.src/M000040.html +4 -4
- data/doc/classes/LongDecimal.src/M000041.html +4 -4
- data/doc/classes/LongDecimal.src/M000042.html +4 -6
- data/doc/classes/LongDecimal.src/M000043.html +4 -106
- data/doc/classes/LongDecimal.src/M000044.html +4 -21
- data/doc/classes/LongDecimal.src/M000045.html +4 -11
- data/doc/classes/LongDecimal.src/M000046.html +6 -27
- data/doc/classes/LongDecimal.src/M000047.html +103 -16
- data/doc/classes/LongDecimal.src/M000048.html +21 -4
- data/doc/classes/LongDecimal.src/M000049.html +10 -14
- data/doc/classes/LongDecimal.src/M000050.html +22 -36
- data/doc/classes/LongDecimal.src/M000051.html +34 -4
- data/doc/classes/LongDecimal.src/M000052.html +17 -6
- data/doc/classes/LongDecimal.src/M000053.html +4 -6
- data/doc/classes/LongDecimal.src/M000054.html +15 -4
- data/doc/classes/LongDecimal.src/M000055.html +44 -12
- data/doc/classes/LongDecimal.src/M000056.html +4 -7
- data/doc/classes/LongDecimal.src/M000057.html +8 -4
- data/doc/classes/LongDecimal.src/M000058.html +6 -15
- data/doc/classes/LongDecimal.src/M000059.html +4 -13
- data/doc/classes/LongDecimal.src/M000060.html +15 -4
- data/doc/classes/LongDecimal.src/M000061.html +7 -5
- data/doc/classes/LongDecimal.src/M000062.html +4 -4
- data/doc/classes/LongDecimal.src/M000063.html +15 -5
- data/doc/classes/LongDecimal.src/M000064.html +13 -5
- data/doc/classes/LongDecimal.src/M000065.html +4 -4
- data/doc/classes/LongDecimal.src/M000067.html +4 -8
- data/doc/classes/LongDecimal.src/M000068.html +5 -9
- data/doc/classes/LongDecimal.src/M000069.html +5 -9
- data/doc/classes/LongDecimal.src/M000070.html +4 -9
- data/doc/classes/LongDecimal.src/M000071.html +4 -4
- data/doc/classes/LongDecimal.src/M000072.html +6 -17
- data/doc/classes/LongDecimal.src/M000073.html +7 -7
- data/doc/classes/LongDecimal.src/M000074.html +7 -7
- data/doc/classes/LongDecimal.src/M000075.html +7 -19
- data/doc/classes/LongDecimal.src/M000076.html +4 -8
- data/doc/classes/LongDecimal.src/M000077.html +19 -5
- data/doc/classes/LongDecimal.src/M000078.html +7 -7
- data/doc/classes/LongDecimal.src/M000079.html +7 -7
- data/doc/classes/LongDecimal.src/M000080.html +19 -7
- data/doc/classes/LongDecimal.src/M000081.html +8 -4
- data/doc/classes/LongDecimal.src/M000082.html +5 -7
- data/doc/classes/LongDecimal.src/M000083.html +8 -6
- data/doc/classes/LongDecimal.src/M000084.html +9 -4
- data/doc/classes/LongDecimal.src/M000085.html +9 -4
- data/doc/classes/LongDecimal.src/M000086.html +4 -9
- data/doc/classes/LongDecimal.src/M000087.html +6 -8
- data/doc/classes/LongDecimal.src/M000088.html +7 -5
- data/doc/classes/LongDecimal.src/M000089.html +4 -9
- data/doc/classes/LongDecimal.src/M000090.html +4 -4
- data/doc/classes/LongDecimal.src/M000091.html +9 -4
- data/doc/classes/LongDecimal.src/M000092.html +9 -4
- data/doc/classes/LongDecimal.src/M000093.html +5 -4
- data/doc/classes/LongDecimal.src/M000094.html +7 -57
- data/doc/classes/LongDecimal.src/M000095.html +4 -4
- data/doc/classes/LongDecimal.src/M000096.html +4 -4
- data/doc/classes/LongDecimal.src/M000097.html +4 -5
- data/doc/classes/LongDecimal.src/M000098.html +4 -5
- data/doc/classes/LongDecimal.src/M000099.html +59 -5
- data/doc/classes/LongDecimal.src/M000100.html +4 -5
- data/doc/classes/LongDecimal.src/M000101.html +4 -4
- data/doc/classes/LongDecimal.src/M000104.html +19 -0
- data/doc/classes/LongDecimal.src/M000105.html +19 -0
- data/doc/classes/LongDecimal.src/M000106.html +18 -0
- data/doc/classes/LongDecimal.src/M000107.html +18 -0
- data/doc/classes/LongDecimal.src/M000108.html +18 -0
- data/doc/classes/LongDecimal.src/M000109.html +18 -0
- data/doc/classes/LongDecimalBase.html +69 -66
- data/doc/classes/LongDecimalBase.src/M000113.html +4 -9
- data/doc/classes/LongDecimalBase.src/M000114.html +4 -5
- data/doc/classes/LongDecimalBase.src/M000115.html +4 -9
- data/doc/classes/LongDecimalBase.src/M000116.html +4 -9
- data/doc/classes/LongDecimalBase.src/M000117.html +4 -5
- data/doc/classes/LongDecimalBase.src/M000118.html +23 -0
- data/doc/classes/LongDecimalBase.src/M000121.html +23 -0
- data/doc/classes/LongDecimalBase.src/M000122.html +19 -0
- data/doc/classes/LongDecimalBase.src/M000123.html +18 -0
- data/doc/classes/LongDecimalQuot.html +33 -27
- data/doc/classes/LongDecimalQuot.src/M000003.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000004.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000005.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000006.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000007.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000008.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000009.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000010.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000011.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000012.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000013.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000014.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000015.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000016.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000017.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000018.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000019.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000020.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000021.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000022.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000023.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000024.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000025.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000026.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000027.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000028.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000029.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000030.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000031.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000034.html +1 -1
- data/doc/classes/LongDecimalQuot.src/M000035.html +1 -1
- data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.html +25 -24
- data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000156.html +22 -0
- data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000157.html +18 -0
- data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000158.html +18 -0
- data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000159.html +18 -0
- data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000161.html +25 -0
- data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000162.html +18 -0
- data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000163.html +18 -0
- data/doc/classes/LongDecimalRoundingMode/RoundingModeClass.src/M000164.html +18 -0
- data/doc/classes/LongDecimalRoundingMode/ZeroRoundingModeClass.html +178 -0
- data/doc/classes/LongDecimalRoundingMode/ZeroRoundingModeClass.src/M000165.html +25 -0
- data/doc/classes/LongDecimalRoundingMode/ZeroRoundingModeClass.src/M000166.html +18 -0
- data/doc/classes/LongDecimalRoundingMode.html +41 -4
- data/doc/classes/LongMath/CacheKey.html +10 -10
- data/doc/classes/LongMath/CacheKey.src/M000155.html +36 -0
- data/doc/classes/LongMath/CacheKey.src/M000160.html +36 -0
- data/doc/classes/LongMath.html +246 -235
- data/doc/classes/LongMath.src/M000124.html +5 -18
- data/doc/classes/LongMath.src/M000125.html +4 -18
- data/doc/classes/LongMath.src/M000126.html +4 -5
- data/doc/classes/LongMath.src/M000127.html +5 -29
- data/doc/classes/LongMath.src/M000128.html +4 -5
- data/doc/classes/LongMath.src/M000129.html +14 -53
- data/doc/classes/LongMath.src/M000130.html +17 -20
- data/doc/classes/LongMath.src/M000131.html +5 -36
- data/doc/classes/LongMath.src/M000132.html +29 -6
- data/doc/classes/LongMath.src/M000133.html +5 -33
- data/doc/classes/LongMath.src/M000134.html +47 -41
- data/doc/classes/LongMath.src/M000135.html +21 -7
- data/doc/classes/LongMath.src/M000136.html +36 -4
- data/doc/classes/LongMath.src/M000137.html +6 -4
- data/doc/classes/LongMath.src/M000138.html +31 -70
- data/doc/classes/LongMath.src/M000139.html +45 -38
- data/doc/classes/LongMath.src/M000140.html +7 -4
- data/doc/classes/LongMath.src/M000141.html +4 -4
- data/doc/classes/LongMath.src/M000142.html +4 -6
- data/doc/classes/LongMath.src/M000143.html +67 -14
- data/doc/classes/LongMath.src/M000144.html +39 -14
- data/doc/classes/LongMath.src/M000145.html +4 -44
- data/doc/classes/LongMath.src/M000146.html +5 -339
- data/doc/classes/LongMath.src/M000147.html +6 -25
- data/doc/classes/LongMath.src/M000148.html +14 -75
- data/doc/classes/LongMath.src/M000149.html +33 -0
- data/doc/classes/LongMath.src/M000150.html +58 -0
- data/doc/classes/LongMath.src/M000151.html +406 -0
- data/doc/classes/LongMath.src/M000152.html +63 -0
- data/doc/classes/LongMath.src/M000153.html +117 -0
- data/doc/classes/LongMath.src/M000154.html +150 -0
- data/doc/classes/LongMath.src/M000155.html +63 -0
- data/doc/classes/LongMath.src/M000156.html +18 -0
- data/doc/classes/LongMath.src/M000157.html +19 -0
- data/doc/classes/LongMath.src/M000158.html +18 -0
- data/doc/classes/LongMath.src/M000159.html +19 -0
- data/doc/classes/Numeric.html +23 -21
- data/doc/classes/Numeric.src/M000106.html +18 -0
- data/doc/classes/Numeric.src/M000110.html +23 -0
- data/doc/classes/Numeric.src/M000111.html +18 -0
- data/doc/classes/Rational.html +18 -16
- data/doc/classes/Rational.src/M000107.html +23 -0
- data/doc/classes/Rational.src/M000112.html +23 -0
- data/doc/created.rid +1 -1
- data/doc/dot/f_0.dot +23 -1
- data/doc/dot/f_0.png +0 -0
- data/doc/dot/m_0_0.png +0 -0
- data/doc/dot/m_0_1.dot +13 -0
- data/doc/dot/m_0_1.png +0 -0
- data/doc/files/lib/long-decimal_rb.html +15 -13
- data/doc/files/lib/long-decimal_rb.src/M000001.html +1 -1
- data/doc/files/lib/long-decimal_rb.src/M000002.html +1 -1
- data/doc/fr_class_index.html +2 -0
- data/doc/fr_method_index.html +131 -124
- data/lib/long-decimal.rb +373 -49
- data/test/testlongdecimal.rb +689 -7
- data/test/testlongdeclib.rb +51 -11
- data/test/testrandlib.rb +23 -7
- data/test/testrandom.rb +4 -4
- data/test/testrandpower.rb +11 -9
- metadata +48 -3
|
@@ -5,28 +5,15 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>check_word_len (LongMath)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line
|
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">
|
|
15
|
-
<span class="ruby-identifier">
|
|
16
|
-
<span class="ruby-identifier">
|
|
17
|
-
<span class="ruby-identifier">m</span> = <span class="ruby-identifier">x</span>.<span class="ruby-identifier">abs</span>
|
|
18
|
-
<span class="ruby-identifier">s</span> = (<span class="ruby-identifier">x</span> <span class="ruby-operator"><=></span> <span class="ruby-value">0</span>)
|
|
19
|
-
<span class="ruby-identifier">bit_pattern</span> = (<span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">word_len</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
|
|
20
|
-
<span class="ruby-identifier">words</span> = []
|
|
21
|
-
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">m</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">words</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">do</span>
|
|
22
|
-
<span class="ruby-identifier">w</span> = <span class="ruby-identifier">m</span> <span class="ruby-operator">&</span> <span class="ruby-identifier">bit_pattern</span>
|
|
23
|
-
<span class="ruby-identifier">m</span> = <span class="ruby-identifier">m</span> <span class="ruby-operator">>></span> <span class="ruby-identifier">word_len</span>
|
|
24
|
-
<span class="ruby-identifier">words</span>.<span class="ruby-identifier">unshift</span>(<span class="ruby-identifier">w</span>)
|
|
25
|
-
<span class="ruby-keyword kw">end</span>
|
|
26
|
-
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">s</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
|
27
|
-
<span class="ruby-identifier">words</span>[<span class="ruby-value">0</span>] = <span class="ruby-operator">-</span><span class="ruby-identifier">words</span>[<span class="ruby-value">0</span>]
|
|
28
|
-
<span class="ruby-keyword kw">end</span>
|
|
29
|
-
<span class="ruby-identifier">words</span>
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 2258</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">check_word_len</span>(<span class="ruby-identifier">word_len</span>, <span class="ruby-identifier">name</span>=<span class="ruby-value str">"word_len"</span>)
|
|
15
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">"#{name} must be a positive number <= 1024"</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">word_len</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">word_len</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">word_len</span> <span class="ruby-operator"><=</span> <span class="ruby-value">1024</span>
|
|
16
|
+
<span class="ruby-identifier">word_len</span>
|
|
30
17
|
<span class="ruby-keyword kw">end</span></pre>
|
|
31
18
|
</body>
|
|
32
19
|
</html>
|
|
@@ -5,28 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>check_is_int (LongMath)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line
|
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">
|
|
15
|
-
<span class="ruby-identifier">
|
|
16
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">"words must be array of length > 0"</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">words</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Array</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">words</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
17
|
-
<span class="ruby-identifier">y</span> = <span class="ruby-value">0</span>
|
|
18
|
-
<span class="ruby-identifier">s</span> = (<span class="ruby-identifier">words</span>[<span class="ruby-value">0</span>] <span class="ruby-operator"><=></span> <span class="ruby-value">0</span>)
|
|
19
|
-
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">s</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
|
20
|
-
<span class="ruby-identifier">words</span>[<span class="ruby-value">0</span>] = <span class="ruby-operator">-</span><span class="ruby-identifier">words</span>[<span class="ruby-value">0</span>]
|
|
21
|
-
<span class="ruby-keyword kw">end</span>
|
|
22
|
-
<span class="ruby-identifier">words</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">w</span><span class="ruby-operator">|</span>
|
|
23
|
-
<span class="ruby-identifier">y</span> = <span class="ruby-identifier">y</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">word_len</span>
|
|
24
|
-
<span class="ruby-identifier">y</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">w</span>
|
|
25
|
-
<span class="ruby-keyword kw">end</span>
|
|
26
|
-
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">s</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
|
27
|
-
<span class="ruby-identifier">y</span> = <span class="ruby-operator">-</span><span class="ruby-identifier">y</span>
|
|
28
|
-
<span class="ruby-keyword kw">end</span>
|
|
29
|
-
<span class="ruby-identifier">y</span>
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 2266</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">check_is_int</span>(<span class="ruby-identifier">x</span>, <span class="ruby-identifier">name</span>=<span class="ruby-value str">"x"</span>)
|
|
15
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">"#{name}=#{x.inspect} must be Integer"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Integer</span>
|
|
30
16
|
<span class="ruby-keyword kw">end</span></pre>
|
|
31
17
|
</body>
|
|
32
18
|
</html>
|
|
@@ -5,15 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>check_is_ld (LongMath)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line
|
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">
|
|
15
|
-
<span class="ruby-identifier">
|
|
16
|
-
<span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>]
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 2273</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">check_is_ld</span>(<span class="ruby-identifier">x</span>, <span class="ruby-identifier">name</span>=<span class="ruby-value str">"x"</span>)
|
|
15
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">"x=#{x.inspect} must be LongDecimal"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimal</span>
|
|
17
16
|
<span class="ruby-keyword kw">end</span></pre>
|
|
18
17
|
</body>
|
|
19
18
|
</html>
|
|
@@ -5,39 +5,15 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>check_is_prec (LongMath)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line
|
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">
|
|
15
|
-
<span class="ruby-identifier">check_is_int</span>(<span class="ruby-identifier">
|
|
16
|
-
|
|
17
|
-
<span class="ruby-identifier">s</span> = (<span class="ruby-identifier">x</span> <span class="ruby-operator"><=></span> <span class="ruby-value">0</span>)
|
|
18
|
-
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">s</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
|
19
|
-
<span class="ruby-keyword kw">return</span> [<span class="ruby-value">0</span>, <span class="ruby-value">0</span>]
|
|
20
|
-
<span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">s</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>)
|
|
21
|
-
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">sqrtb_with_remainder</span>(<span class="ruby-operator">-</span><span class="ruby-identifier">x</span>)
|
|
22
|
-
<span class="ruby-keyword kw">return</span> [ <span class="ruby-constant">Complex</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>]), <span class="ruby-identifier">a</span>[<span class="ruby-value">1</span>]]
|
|
23
|
-
<span class="ruby-keyword kw">end</span>
|
|
24
|
-
|
|
25
|
-
<span class="ruby-identifier">xwords</span> = <span class="ruby-identifier">split_to_words</span>(<span class="ruby-identifier">x</span>, <span class="ruby-value">2</span>)
|
|
26
|
-
<span class="ruby-identifier">xi</span> = <span class="ruby-identifier">xwords</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
|
|
27
|
-
<span class="ruby-identifier">yi</span> = <span class="ruby-value">1</span>
|
|
28
|
-
|
|
29
|
-
<span class="ruby-value">1</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">xwords</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
30
|
-
<span class="ruby-identifier">xi</span> = (<span class="ruby-identifier">xi</span> <span class="ruby-operator"><<</span> <span class="ruby-value">2</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">xwords</span>[<span class="ruby-identifier">i</span>]
|
|
31
|
-
<span class="ruby-identifier">d0</span> = (<span class="ruby-identifier">yi</span> <span class="ruby-operator"><<</span> <span class="ruby-value">2</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
|
|
32
|
-
<span class="ruby-identifier">r</span> = <span class="ruby-identifier">xi</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">d0</span>
|
|
33
|
-
<span class="ruby-identifier">b</span> = <span class="ruby-value">0</span>
|
|
34
|
-
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">r</span> <span class="ruby-operator">>=</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
|
35
|
-
<span class="ruby-identifier">b</span> = <span class="ruby-value">1</span>
|
|
36
|
-
<span class="ruby-identifier">xi</span> = <span class="ruby-identifier">r</span>
|
|
37
|
-
<span class="ruby-keyword kw">end</span>
|
|
38
|
-
<span class="ruby-identifier">yi</span> = (<span class="ruby-identifier">yi</span> <span class="ruby-operator"><<</span> <span class="ruby-value">1</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">b</span>
|
|
39
|
-
<span class="ruby-keyword kw">end</span>
|
|
40
|
-
<span class="ruby-keyword kw">return</span> [<span class="ruby-identifier">yi</span>, <span class="ruby-identifier">xi</span>]
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 2281</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">check_is_prec</span>(<span class="ruby-identifier">prec</span>, <span class="ruby-identifier">name</span>=<span class="ruby-value str">"prec"</span>)
|
|
15
|
+
<span class="ruby-identifier">check_is_int</span>(<span class="ruby-identifier">prec</span>, <span class="ruby-value str">"prec"</span>)
|
|
16
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">"#{name}=#{prec.inspect} must be >= 0"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">prec</span> <span class="ruby-operator">>=</span> <span class="ruby-value">0</span>
|
|
41
17
|
<span class="ruby-keyword kw">end</span></pre>
|
|
42
18
|
</body>
|
|
43
19
|
</html>
|
|
@@ -5,15 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>check_is_mode (LongMath)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line
|
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">
|
|
15
|
-
<span class="ruby-identifier">
|
|
16
|
-
<span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>]
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 2290</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">check_is_mode</span>(<span class="ruby-identifier">mode</span>, <span class="ruby-identifier">name</span>=<span class="ruby-value str">"mode"</span>)
|
|
15
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">"#{name}=#{mode.inspect} must be legal rounding mode"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">mode</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">RoundingModeClass</span>
|
|
17
16
|
<span class="ruby-keyword kw">end</span></pre>
|
|
18
17
|
</body>
|
|
19
18
|
</html>
|
|
@@ -5,67 +5,28 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>split_to_words (LongMath)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line
|
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 2299</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">split_to_words</span>(<span class="ruby-identifier">x</span>, <span class="ruby-identifier">word_len</span> = <span class="ruby-value">32</span>)
|
|
15
|
+
<span class="ruby-identifier">check_word_len</span>(<span class="ruby-identifier">word_len</span>)
|
|
15
16
|
<span class="ruby-identifier">check_is_int</span>(<span class="ruby-identifier">x</span>, <span class="ruby-value str">"x"</span>)
|
|
16
|
-
<span class="ruby-identifier">
|
|
17
|
-
|
|
18
|
-
<span class="ruby-identifier">n2</span> = <span class="ruby-identifier">n</span><span class="ruby-operator"><<</span><span class="ruby-value">1</span>
|
|
19
|
-
<span class="ruby-identifier">n1</span> = <span class="ruby-identifier">n</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>
|
|
20
|
-
<span class="ruby-identifier">check_word_len</span>(<span class="ruby-identifier">n2</span>, <span class="ruby-value str">"2*n"</span>)
|
|
21
|
-
|
|
17
|
+
<span class="ruby-identifier">m</span> = <span class="ruby-identifier">x</span>.<span class="ruby-identifier">abs</span>
|
|
22
18
|
<span class="ruby-identifier">s</span> = (<span class="ruby-identifier">x</span> <span class="ruby-operator"><=></span> <span class="ruby-value">0</span>)
|
|
23
|
-
<span class="ruby-
|
|
24
|
-
|
|
25
|
-
<span class="ruby-keyword kw">
|
|
26
|
-
<span class="ruby-identifier">
|
|
27
|
-
<span class="ruby-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<span class="ruby-identifier">xwords</span> = <span class="ruby-identifier">split_to_words</span>(<span class="ruby-identifier">x</span>, <span class="ruby-identifier">n2</span>)
|
|
31
|
-
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">xwords</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">then</span>
|
|
32
|
-
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">sqrtb_with_remainder</span>(<span class="ruby-identifier">xwords</span>[<span class="ruby-value">0</span>])
|
|
19
|
+
<span class="ruby-identifier">bit_pattern</span> = (<span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">word_len</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
|
|
20
|
+
<span class="ruby-identifier">words</span> = []
|
|
21
|
+
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">m</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">words</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">do</span>
|
|
22
|
+
<span class="ruby-identifier">w</span> = <span class="ruby-identifier">m</span> <span class="ruby-operator">&</span> <span class="ruby-identifier">bit_pattern</span>
|
|
23
|
+
<span class="ruby-identifier">m</span> = <span class="ruby-identifier">m</span> <span class="ruby-operator">>></span> <span class="ruby-identifier">word_len</span>
|
|
24
|
+
<span class="ruby-identifier">words</span>.<span class="ruby-identifier">unshift</span>(<span class="ruby-identifier">w</span>)
|
|
33
25
|
<span class="ruby-keyword kw">end</span>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">sqrtb_with_remainder</span>(<span class="ruby-identifier">xi</span>)
|
|
37
|
-
<span class="ruby-identifier">yi</span> = <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>]
|
|
38
|
-
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">xwords</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator"><=</span> <span class="ruby-value">2</span>) <span class="ruby-keyword kw">then</span>
|
|
39
|
-
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">a</span>
|
|
40
|
-
<span class="ruby-keyword kw">end</span>
|
|
41
|
-
|
|
42
|
-
<span class="ruby-identifier">xi</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">yi</span><span class="ruby-operator">*</span><span class="ruby-identifier">yi</span>
|
|
43
|
-
<span class="ruby-value">2</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">xwords</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
44
|
-
<span class="ruby-identifier">xi</span> = (<span class="ruby-identifier">xi</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">n2</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">xwords</span>[<span class="ruby-identifier">i</span>]
|
|
45
|
-
<span class="ruby-identifier">d0</span> = (<span class="ruby-identifier">yi</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">n1</span>)
|
|
46
|
-
<span class="ruby-identifier">q</span> = (<span class="ruby-identifier">xi</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">d0</span>).<span class="ruby-identifier">to_i</span>
|
|
47
|
-
<span class="ruby-identifier">q0</span> = <span class="ruby-identifier">q</span>
|
|
48
|
-
<span class="ruby-identifier">j</span> = <span class="ruby-value">0</span>
|
|
49
|
-
<span class="ruby-identifier">was_negative</span> = <span class="ruby-keyword kw">false</span>
|
|
50
|
-
<span class="ruby-keyword kw">while</span> (<span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">do</span>
|
|
51
|
-
<span class="ruby-identifier">d</span> = <span class="ruby-identifier">d0</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">q</span>
|
|
52
|
-
<span class="ruby-identifier">r</span> = <span class="ruby-identifier">xi</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">q</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">d</span>)
|
|
53
|
-
<span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-value">0</span> <span class="ruby-operator"><=</span> <span class="ruby-identifier">r</span> <span class="ruby-operator">&&</span> (<span class="ruby-identifier">r</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">d</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">was_negative</span>))
|
|
54
|
-
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">r</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
|
55
|
-
<span class="ruby-identifier">was_negative</span> = <span class="ruby-keyword kw">true</span>
|
|
56
|
-
<span class="ruby-identifier">q</span> = <span class="ruby-identifier">q</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>
|
|
57
|
-
<span class="ruby-keyword kw">else</span>
|
|
58
|
-
<span class="ruby-identifier">q</span> = <span class="ruby-identifier">q</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>
|
|
59
|
-
<span class="ruby-keyword kw">end</span>
|
|
60
|
-
<span class="ruby-identifier">j</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
61
|
-
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">j</span> <span class="ruby-operator">></span> <span class="ruby-value">10</span>) <span class="ruby-keyword kw">then</span>
|
|
62
|
-
<span class="ruby-keyword kw">break</span>
|
|
63
|
-
<span class="ruby-keyword kw">end</span>
|
|
64
|
-
<span class="ruby-keyword kw">end</span>
|
|
65
|
-
<span class="ruby-identifier">xi</span> = <span class="ruby-identifier">r</span>
|
|
66
|
-
<span class="ruby-identifier">yi</span> = (<span class="ruby-identifier">yi</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">n</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">q</span>
|
|
26
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">s</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
|
27
|
+
<span class="ruby-identifier">words</span>[<span class="ruby-value">0</span>] = <span class="ruby-operator">-</span><span class="ruby-identifier">words</span>[<span class="ruby-value">0</span>]
|
|
67
28
|
<span class="ruby-keyword kw">end</span>
|
|
68
|
-
<span class="ruby-
|
|
29
|
+
<span class="ruby-identifier">words</span>
|
|
69
30
|
<span class="ruby-keyword kw">end</span></pre>
|
|
70
31
|
</body>
|
|
71
32
|
</html>
|
|
@@ -5,31 +5,28 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>merge_from_words (LongMath)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line
|
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">
|
|
15
|
-
<span class="ruby-identifier">
|
|
16
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-constant">
|
|
17
|
-
<span class="ruby-identifier">
|
|
18
|
-
<span class="ruby-identifier">
|
|
19
|
-
<span class="ruby-identifier">s</span> = <span class="ruby-
|
|
20
|
-
|
|
21
|
-
<span class="ruby-identifier">b</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">abs</span>
|
|
22
|
-
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">b</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">s</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">s</span> <span class="ruby-operator"><</span> <span class="ruby-constant">MAX_FLOATABLE</span>)
|
|
23
|
-
<span class="ruby-identifier">exponent</span> = (<span class="ruby-constant">Math</span>.<span class="ruby-identifier">log</span>(<span class="ruby-identifier">s</span>) <span class="ruby-operator">/</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">log</span>(<span class="ruby-identifier">b</span>)).<span class="ruby-identifier">ceil</span>
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 2321</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">merge_from_words</span>(<span class="ruby-identifier">words</span>, <span class="ruby-identifier">word_len</span> = <span class="ruby-value">32</span>)
|
|
15
|
+
<span class="ruby-identifier">check_word_len</span>(<span class="ruby-identifier">word_len</span>)
|
|
16
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">"words must be array of length > 0"</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">words</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Array</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">words</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
17
|
+
<span class="ruby-identifier">y</span> = <span class="ruby-value">0</span>
|
|
18
|
+
<span class="ruby-identifier">s</span> = (<span class="ruby-identifier">words</span>[<span class="ruby-value">0</span>] <span class="ruby-operator"><=></span> <span class="ruby-value">0</span>)
|
|
19
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">s</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
|
20
|
+
<span class="ruby-identifier">words</span>[<span class="ruby-value">0</span>] = <span class="ruby-operator">-</span><span class="ruby-identifier">words</span>[<span class="ruby-value">0</span>]
|
|
24
21
|
<span class="ruby-keyword kw">end</span>
|
|
25
|
-
<span class="ruby-identifier">
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<span class="ruby-identifier">
|
|
31
|
-
<span class="ruby-keyword kw">end</span>
|
|
32
|
-
<span class="ruby-identifier">
|
|
22
|
+
<span class="ruby-identifier">words</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">w</span><span class="ruby-operator">|</span>
|
|
23
|
+
<span class="ruby-identifier">y</span> = <span class="ruby-identifier">y</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">word_len</span>
|
|
24
|
+
<span class="ruby-identifier">y</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">w</span>
|
|
25
|
+
<span class="ruby-keyword kw">end</span>
|
|
26
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">s</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
|
27
|
+
<span class="ruby-identifier">y</span> = <span class="ruby-operator">-</span><span class="ruby-identifier">y</span>
|
|
28
|
+
<span class="ruby-keyword kw">end</span>
|
|
29
|
+
<span class="ruby-identifier">y</span>
|
|
33
30
|
<span class="ruby-keyword kw">end</span></pre>
|
|
34
31
|
</body>
|
|
35
32
|
</html>
|
|
@@ -5,46 +5,15 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>sqrtb (LongMath)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line
|
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">
|
|
15
|
-
|
|
16
|
-
<span class="ruby-
|
|
17
|
-
<span class="ruby-identifier">m1</span> = <span class="ruby-identifier">multiplicity_of_factor</span>(<span class="ruby-identifier">x</span>.<span class="ruby-identifier">numerator</span>, <span class="ruby-identifier">prime_number</span>)
|
|
18
|
-
<span class="ruby-identifier">m2</span> = <span class="ruby-identifier">multiplicity_of_factor</span>(<span class="ruby-identifier">x</span>.<span class="ruby-identifier">denominator</span>, <span class="ruby-identifier">prime_number</span>)
|
|
19
|
-
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">m1</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">m2</span>
|
|
20
|
-
|
|
21
|
-
<span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">x</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">LongDecimal</span>)
|
|
22
|
-
<span class="ruby-identifier">m1</span> = <span class="ruby-identifier">multiplicity_of_factor</span>(<span class="ruby-identifier">x</span>.<span class="ruby-identifier">numerator</span>, <span class="ruby-identifier">prime_number</span>)
|
|
23
|
-
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">prime_number</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">prime_number</span> <span class="ruby-operator">==</span> <span class="ruby-value">5</span>) <span class="ruby-keyword kw">then</span>
|
|
24
|
-
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">m1</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">scale</span>
|
|
25
|
-
<span class="ruby-keyword kw">else</span>
|
|
26
|
-
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">m1</span>
|
|
27
|
-
<span class="ruby-keyword kw">end</span>
|
|
28
|
-
|
|
29
|
-
<span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">x</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Integer</span>)
|
|
30
|
-
|
|
31
|
-
<span class="ruby-identifier">power</span> = <span class="ruby-identifier">gcd_with_high_power</span>(<span class="ruby-identifier">x</span>, <span class="ruby-identifier">prime_number</span>)
|
|
32
|
-
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">power</span>.<span class="ruby-identifier">abs</span> <span class="ruby-operator"><</span> <span class="ruby-constant">MAX_FLOATABLE</span>) <span class="ruby-keyword kw">then</span>
|
|
33
|
-
<span class="ruby-identifier">result</span> = (<span class="ruby-constant">Math</span>.<span class="ruby-identifier">log</span>(<span class="ruby-identifier">power</span>) <span class="ruby-operator">/</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">log</span>(<span class="ruby-identifier">prime_number</span>)).<span class="ruby-identifier">round</span>
|
|
34
|
-
<span class="ruby-keyword kw">else</span>
|
|
35
|
-
<span class="ruby-identifier">e</span> = (<span class="ruby-constant">Math</span>.<span class="ruby-identifier">log</span>(<span class="ruby-constant">MAX_FLOATABLE</span>) <span class="ruby-operator">/</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">log</span>(<span class="ruby-identifier">prime_number</span>)).<span class="ruby-identifier">floor</span>
|
|
36
|
-
<span class="ruby-identifier">result</span> = <span class="ruby-value">0</span>
|
|
37
|
-
<span class="ruby-identifier">partial</span> = <span class="ruby-identifier">prime_number</span> <span class="ruby-operator">**</span> <span class="ruby-identifier">e</span>
|
|
38
|
-
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">power</span> <span class="ruby-operator">></span> <span class="ruby-identifier">partial</span>) <span class="ruby-keyword kw">do</span>
|
|
39
|
-
<span class="ruby-identifier">power</span> <span class="ruby-operator">/=</span> <span class="ruby-identifier">partial</span>
|
|
40
|
-
<span class="ruby-identifier">result</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">e</span>
|
|
41
|
-
<span class="ruby-keyword kw">end</span>
|
|
42
|
-
<span class="ruby-identifier">result</span> <span class="ruby-operator">+=</span> (<span class="ruby-constant">Math</span>.<span class="ruby-identifier">log</span>(<span class="ruby-identifier">power</span>) <span class="ruby-operator">/</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">log</span>(<span class="ruby-identifier">prime_number</span>)).<span class="ruby-identifier">round</span>
|
|
43
|
-
<span class="ruby-keyword kw">end</span>
|
|
44
|
-
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
|
|
45
|
-
<span class="ruby-keyword kw">else</span>
|
|
46
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">"type of x is not supported #{x.class} #{x.inpect}"</span>
|
|
47
|
-
<span class="ruby-keyword kw">end</span>
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 2344</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">sqrtb</span>(<span class="ruby-identifier">x</span>)
|
|
15
|
+
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">sqrtb_with_remainder</span>(<span class="ruby-identifier">x</span>)
|
|
16
|
+
<span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>]
|
|
48
17
|
<span class="ruby-keyword kw">end</span></pre>
|
|
49
18
|
</body>
|
|
50
19
|
</html>
|
|
@@ -5,16 +5,39 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>sqrtb_with_remainder (LongMath)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line
|
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">
|
|
15
|
-
<span class="ruby-identifier">
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 2355</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">sqrtb_with_remainder</span>(<span class="ruby-identifier">x</span>)
|
|
15
|
+
<span class="ruby-identifier">check_is_int</span>(<span class="ruby-identifier">x</span>, <span class="ruby-value str">"x"</span>)
|
|
16
|
+
|
|
17
|
+
<span class="ruby-identifier">s</span> = (<span class="ruby-identifier">x</span> <span class="ruby-operator"><=></span> <span class="ruby-value">0</span>)
|
|
18
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">s</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
|
19
|
+
<span class="ruby-keyword kw">return</span> [<span class="ruby-value">0</span>, <span class="ruby-value">0</span>]
|
|
20
|
+
<span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">s</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>)
|
|
21
|
+
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">sqrtb_with_remainder</span>(<span class="ruby-operator">-</span><span class="ruby-identifier">x</span>)
|
|
22
|
+
<span class="ruby-keyword kw">return</span> [ <span class="ruby-constant">Complex</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>]), <span class="ruby-identifier">a</span>[<span class="ruby-value">1</span>]]
|
|
23
|
+
<span class="ruby-keyword kw">end</span>
|
|
24
|
+
|
|
25
|
+
<span class="ruby-identifier">xwords</span> = <span class="ruby-identifier">split_to_words</span>(<span class="ruby-identifier">x</span>, <span class="ruby-value">2</span>)
|
|
26
|
+
<span class="ruby-identifier">xi</span> = <span class="ruby-identifier">xwords</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
|
|
27
|
+
<span class="ruby-identifier">yi</span> = <span class="ruby-value">1</span>
|
|
28
|
+
|
|
29
|
+
<span class="ruby-value">1</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">xwords</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
30
|
+
<span class="ruby-identifier">xi</span> = (<span class="ruby-identifier">xi</span> <span class="ruby-operator"><<</span> <span class="ruby-value">2</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">xwords</span>[<span class="ruby-identifier">i</span>]
|
|
31
|
+
<span class="ruby-identifier">d0</span> = (<span class="ruby-identifier">yi</span> <span class="ruby-operator"><<</span> <span class="ruby-value">2</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
|
|
32
|
+
<span class="ruby-identifier">r</span> = <span class="ruby-identifier">xi</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">d0</span>
|
|
33
|
+
<span class="ruby-identifier">b</span> = <span class="ruby-value">0</span>
|
|
34
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">r</span> <span class="ruby-operator">>=</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
|
35
|
+
<span class="ruby-identifier">b</span> = <span class="ruby-value">1</span>
|
|
36
|
+
<span class="ruby-identifier">xi</span> = <span class="ruby-identifier">r</span>
|
|
37
|
+
<span class="ruby-keyword kw">end</span>
|
|
38
|
+
<span class="ruby-identifier">yi</span> = (<span class="ruby-identifier">yi</span> <span class="ruby-operator"><<</span> <span class="ruby-value">1</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">b</span>
|
|
39
|
+
<span class="ruby-keyword kw">end</span>
|
|
40
|
+
<span class="ruby-keyword kw">return</span> [<span class="ruby-identifier">yi</span>, <span class="ruby-identifier">xi</span>]
|
|
18
41
|
<span class="ruby-keyword kw">end</span></pre>
|
|
19
42
|
</body>
|
|
20
43
|
</html>
|
|
@@ -5,43 +5,15 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>sqrtw (LongMath)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line
|
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">
|
|
15
|
-
|
|
16
|
-
<span class="ruby-identifier">
|
|
17
|
-
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">zero?</span> <span class="ruby-keyword kw">then</span>
|
|
18
|
-
<span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span>
|
|
19
|
-
<span class="ruby-keyword kw">end</span>
|
|
20
|
-
|
|
21
|
-
<span class="ruby-identifier">id</span> = <span class="ruby-value">1</span>
|
|
22
|
-
<span class="ruby-identifier">powers</span> = []
|
|
23
|
-
<span class="ruby-identifier">power</span> = <span class="ruby-value">10</span>
|
|
24
|
-
<span class="ruby-identifier">idx</span> = <span class="ruby-value">0</span>
|
|
25
|
-
<span class="ruby-keyword kw">until</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">zero?</span> <span class="ruby-keyword kw">do</span>
|
|
26
|
-
<span class="ruby-identifier">expon</span> = <span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">idx</span>
|
|
27
|
-
<span class="ruby-identifier">powers</span>[<span class="ruby-identifier">idx</span>] = <span class="ruby-identifier">power</span>
|
|
28
|
-
<span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">power</span>
|
|
29
|
-
<span class="ruby-identifier">id</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">expon</span>
|
|
30
|
-
<span class="ruby-identifier">n</span> = (<span class="ruby-identifier">n</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">power</span>).<span class="ruby-identifier">to_i</span>
|
|
31
|
-
<span class="ruby-identifier">idx</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
32
|
-
<span class="ruby-identifier">power</span> = <span class="ruby-identifier">power</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">power</span>
|
|
33
|
-
<span class="ruby-keyword kw">end</span>
|
|
34
|
-
|
|
35
|
-
<span class="ruby-keyword kw">until</span> <span class="ruby-identifier">n</span> <span class="ruby-operator"><</span> <span class="ruby-value">10</span> <span class="ruby-keyword kw">do</span>
|
|
36
|
-
<span class="ruby-identifier">idx</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
|
|
37
|
-
<span class="ruby-identifier">expon</span> = <span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">idx</span>
|
|
38
|
-
<span class="ruby-identifier">power</span> = <span class="ruby-identifier">powers</span>[<span class="ruby-identifier">idx</span>]
|
|
39
|
-
<span class="ruby-keyword kw">while</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">>=</span> <span class="ruby-identifier">power</span>
|
|
40
|
-
<span class="ruby-identifier">id</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">expon</span>
|
|
41
|
-
<span class="ruby-identifier">n</span> = (<span class="ruby-identifier">n</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">power</span>).<span class="ruby-identifier">to_i</span>
|
|
42
|
-
<span class="ruby-keyword kw">end</span>
|
|
43
|
-
<span class="ruby-keyword kw">end</span>
|
|
44
|
-
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">id</span>
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/long-decimal.rb, line 2393</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">LongMath</span>.<span class="ruby-identifier">sqrtw</span>(<span class="ruby-identifier">x</span>, <span class="ruby-identifier">n</span> = <span class="ruby-value">16</span>)
|
|
15
|
+
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">sqrtw_with_remainder</span>(<span class="ruby-identifier">x</span>, <span class="ruby-identifier">n</span>)
|
|
16
|
+
<span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>]
|
|
45
17
|
<span class="ruby-keyword kw">end</span></pre>
|
|
46
18
|
</body>
|
|
47
19
|
</html>
|