gmp 0.2.2 → 0.4.0
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/CHANGELOG +33 -0
- data/README.rdoc +117 -17
- data/benchmark/COPYING +674 -0
- data/benchmark/README +75 -0
- data/benchmark/divide +34 -0
- data/benchmark/gcd +38 -0
- data/benchmark/gexpr +0 -0
- data/benchmark/gexpr.c +359 -0
- data/benchmark/multiply +44 -0
- data/benchmark/rsa +93 -0
- data/benchmark/runbench +147 -0
- data/benchmark/version +1 -0
- data/ext/gmp.c +10 -8
- data/ext/gmpbench_timing.c +80 -0
- data/ext/gmprandstate.c +224 -0
- data/ext/gmpz.c +170 -61
- data/ext/ruby_gmp.h +43 -1
- data/manual.pdf +0 -0
- data/manual.tex +214 -20
- data/test/README +4 -11
- data/test/tc_division.rb +109 -0
- data/test/tc_random.rb +54 -0
- data/test/tc_z_gcd_lcm_invert.rb +57 -0
- data/test/test-12.rb +14 -0
- data/test/test-19.rb +13 -0
- data/test/test-20.rb +29 -0
- data/test/test-21.rb +37 -0
- data/test/test-22.rb +12 -0
- data/test/test-23.rb +11 -0
- data/test/test_helper.rb +6 -0
- data/test/unit_tests.rb +9 -94
- metadata +31 -10
data/test/tc_random.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TC_Random < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
end
|
6
|
+
|
7
|
+
def test_urandomb
|
8
|
+
@a = GMP::RandState.new
|
9
|
+
@a.seed(13579)
|
10
|
+
g1 = [ 392, 507, 1657, 3963, 2275, 1264, 2370, 2152, 3282, 407,
|
11
|
+
1746, 2488, 1753, 1639, 721, 3291, 3697, 2258, 3990, 1019]
|
12
|
+
g1.size.times do |i|
|
13
|
+
assert_equal(g1[i], @a.urandomb(12), "GMP::RandState should urandomb predictably.")
|
14
|
+
end
|
15
|
+
|
16
|
+
@b = GMP::RandState.new
|
17
|
+
@b.seed(314159)
|
18
|
+
g2 = [ 20, 5, 40, 228, 223, 205, 1750, 690, 5794, 13752,
|
19
|
+
31377, 49064, 37010, 187285, 489973, 312091, 550520, 916752, 3213943, 1561294]
|
20
|
+
g2.size.times do |i|
|
21
|
+
assert_equal(g2[i], @b.urandomb(i+5), "GMP::RandState should urandomb predictably.")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_reseed
|
26
|
+
@c = GMP::RandState.new
|
27
|
+
@c.seed(1000)
|
28
|
+
assert_equal( 6461, @c.urandomb(16), "GMP::RandState should re-seed correctly.")
|
29
|
+
assert_equal(42961, @c.urandomb(16), "GMP::RandState should re-seed correctly.")
|
30
|
+
assert_equal(44699, @c.urandomb(16), "GMP::RandState should re-seed correctly.")
|
31
|
+
@c.seed(1000)
|
32
|
+
assert_equal( 6461, @c.urandomb(16), "GMP::RandState should re-seed correctly.")
|
33
|
+
assert_equal(42961, @c.urandomb(16), "GMP::RandState should re-seed correctly.")
|
34
|
+
assert_equal(44699, @c.urandomb(16), "GMP::RandState should re-seed correctly.")
|
35
|
+
@c.seed(1000)
|
36
|
+
assert_equal( 6461, @c.urandomb(16), "GMP::RandState should re-seed correctly.")
|
37
|
+
assert_equal(42961, @c.urandomb(16), "GMP::RandState should re-seed correctly.")
|
38
|
+
assert_equal(44699, @c.urandomb(16), "GMP::RandState should re-seed correctly.")
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_random_independent_states
|
42
|
+
@d = GMP::RandState.new
|
43
|
+
@d.seed(13579)
|
44
|
+
@e = GMP::RandState.new
|
45
|
+
@e.seed(13579)
|
46
|
+
|
47
|
+
assert_equal( 392, @d.urandomb(12), "GMP::RandState should be independent correctly.")
|
48
|
+
assert_equal( 507, @d.urandomb(12), "GMP::RandState should be independent correctly.")
|
49
|
+
assert_equal( 392, @e.urandomb(12), "GMP::RandState should be independent correctly.")
|
50
|
+
assert_equal( 507, @e.urandomb(12), "GMP::RandState should be independent correctly.")
|
51
|
+
assert_equal(1657, @d.urandomb(12), "GMP::RandState should be independent correctly.")
|
52
|
+
assert_equal(1657, @e.urandomb(12), "GMP::RandState should be independent correctly.")
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TC_Z_GCD_LCM_Invert < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@a = GMP::Z( 24) # 2^3 * 3
|
6
|
+
@b = GMP::Z( 8) # 2^3
|
7
|
+
@c = GMP::Z( 3) # 3
|
8
|
+
@d = GMP::Z( 7) # 7
|
9
|
+
@e = GMP::Z( 11) # 11
|
10
|
+
@f = GMP::Z( 25) # 25
|
11
|
+
@g = GMP::Z(720) # 2^4 * 3^2 * 5 = 1*2*3*4*5*6
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_gcd
|
15
|
+
assert_equal(GMP::Z( 8), @a.gcd(@b), "GMP::Z should gcd correctly")
|
16
|
+
assert_equal(GMP::Z( 3), @a.gcd(@c), "GMP::Z should gcd correctly")
|
17
|
+
assert_equal(GMP::Z( 1), @c.gcd(@d), "GMP::Z should gcd correctly")
|
18
|
+
assert_equal(GMP::Z( 1), @a.gcd(@f), "GMP::Z should gcd correctly")
|
19
|
+
assert_equal(GMP::Z(24), @a.gcd(@g), "GMP::Z should gcd correctly")
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_gcd2
|
23
|
+
assert_equal(GMP::Z( 8), (-@a).gcd(@b), "GMP::Z should gcd negatives correctly")
|
24
|
+
assert_equal(GMP::Z( 3), (-@a).gcd(@c), "GMP::Z should gcd negatives correctly")
|
25
|
+
assert_equal(GMP::Z( 1), (-@c).gcd(@d), "GMP::Z should gcd correctly")
|
26
|
+
assert_equal(GMP::Z(24), (-@a).gcd(@g), "GMP::Z should gcd correctly")
|
27
|
+
|
28
|
+
assert_equal(GMP::Z( 8), @a.gcd(-@b), "GMP::Z should gcd negatives correctly")
|
29
|
+
assert_equal(GMP::Z( 3), @a.gcd(-@c), "GMP::Z should gcd negatives correctly")
|
30
|
+
assert_equal(GMP::Z( 1), @c.gcd(-@d), "GMP::Z should gcd correctly")
|
31
|
+
assert_equal(GMP::Z(24), @a.gcd(-@g), "GMP::Z should gcd correctly")
|
32
|
+
|
33
|
+
assert_equal(GMP::Z( 8), (-@a).gcd(-@b), "GMP::Z should gcd negatives correctly")
|
34
|
+
assert_equal(GMP::Z( 3), (-@a).gcd(-@c), "GMP::Z should gcd negatives correctly")
|
35
|
+
assert_equal(GMP::Z( 1), (-@c).gcd(-@d), "GMP::Z should gcd correctly")
|
36
|
+
assert_equal(GMP::Z(24), (-@a).gcd(-@g), "GMP::Z should gcd correctly")
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_invert
|
40
|
+
assert_equal(GMP::Z( 1), GMP::Z( 1).invert(@e), "GMP::Z should invert correctly")
|
41
|
+
assert_equal(GMP::Z( 6), GMP::Z( 2).invert(@e), "GMP::Z should invert correctly")
|
42
|
+
assert_equal(GMP::Z( 4), GMP::Z( 3).invert(@e), "GMP::Z should invert correctly")
|
43
|
+
assert_equal(GMP::Z( 3), GMP::Z( 4).invert(@e), "GMP::Z should invert correctly")
|
44
|
+
assert_equal(GMP::Z( 9), GMP::Z( 5).invert(@e), "GMP::Z should invert correctly")
|
45
|
+
assert_equal(GMP::Z( 2), GMP::Z( 6).invert(@e), "GMP::Z should invert correctly")
|
46
|
+
assert_equal(GMP::Z( 8), GMP::Z( 7).invert(@e), "GMP::Z should invert correctly")
|
47
|
+
assert_equal(GMP::Z( 7), GMP::Z( 8).invert(@e), "GMP::Z should invert correctly")
|
48
|
+
assert_equal(GMP::Z( 5), GMP::Z( 9).invert(@e), "GMP::Z should invert correctly")
|
49
|
+
assert_equal(GMP::Z(10), GMP::Z(10).invert(@e), "GMP::Z should invert correctly")
|
50
|
+
assert_equal(GMP::Z( 0), GMP::Z(11).invert(@e), "GMP::Z should invert correctly")
|
51
|
+
|
52
|
+
assert_equal(GMP::Z( 1), GMP::Z(12).invert(@e), "GMP::Z should invert correctly")
|
53
|
+
assert_equal(GMP::Z( 6), GMP::Z(13).invert(@e), "GMP::Z should invert correctly")
|
54
|
+
assert_equal(GMP::Z( 4), GMP::Z(14).invert(@e), "GMP::Z should invert correctly")
|
55
|
+
assert_equal(GMP::Z( 3), GMP::Z(15).invert(@e), "GMP::Z should invert correctly")
|
56
|
+
end
|
57
|
+
end
|
data/test/test-12.rb
ADDED
data/test/test-19.rb
ADDED
data/test/test-20.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'gmp'
|
4
|
+
|
5
|
+
a=GMP::F.new -1
|
6
|
+
b=GMP::F.new 0
|
7
|
+
c=GMP::F.new 0.1
|
8
|
+
d=GMP::F.new 1
|
9
|
+
e=GMP::F.new 2
|
10
|
+
f=GMP::F.new 4
|
11
|
+
g=GMP::F.new 10
|
12
|
+
|
13
|
+
print "exp:\n"
|
14
|
+
[a,b,c,d,e,f,g].map{|x| p x.exp}
|
15
|
+
|
16
|
+
print "log:\n"
|
17
|
+
[c,d,e,f,g].map{|x| p x.log}
|
18
|
+
|
19
|
+
print "log2:\n"
|
20
|
+
[c,d,e,f,g].map{|x| p x.log2}
|
21
|
+
|
22
|
+
print "log10:\n"
|
23
|
+
[c,d,e,f,g].map{|x| p x.log10}
|
24
|
+
|
25
|
+
print "log1p:\n"
|
26
|
+
[c,d,e,f,g].map{|x| p x.log1p}
|
27
|
+
|
28
|
+
print "expm1:\n"
|
29
|
+
[a,b,c,d,e,f,g].map{|x| p x.expm1}
|
data/test/test-21.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'gmp'
|
4
|
+
|
5
|
+
pi = GMP::F.new(1).asin * 2
|
6
|
+
|
7
|
+
a = GMP::F.new 0
|
8
|
+
b = pi / 4
|
9
|
+
c = pi / 2
|
10
|
+
d = -pi / 2
|
11
|
+
|
12
|
+
print "cos:\n"
|
13
|
+
[a,b,c,d].map{|x| p x.cos}
|
14
|
+
|
15
|
+
print "sin:\n"
|
16
|
+
[a,b,c,d].map{|x| p x.sin}
|
17
|
+
|
18
|
+
print "tan:\n"
|
19
|
+
[a,b,c,d].map{|x| p x.tan}
|
20
|
+
|
21
|
+
print "cosh:\n"
|
22
|
+
[a,b,c,d].map{|x| p x.cosh}
|
23
|
+
|
24
|
+
print "sinh:\n"
|
25
|
+
[a,b,c,d].map{|x| p x.sinh}
|
26
|
+
|
27
|
+
print "tanh:\n"
|
28
|
+
[a,b,c,d].map{|x| p x.tanh}
|
29
|
+
|
30
|
+
|
31
|
+
print "inverses:\n"
|
32
|
+
[a,b,c,d].map{|x| p [x,x.cos.acos] }
|
33
|
+
[a,b,c,d].map{|x| p [x,x.sin.asin] }
|
34
|
+
[a,b,c,d].map{|x| p [x,x.tan.atan] }
|
35
|
+
[a,b,c,d].map{|x| p [x,x.cosh.acosh] }
|
36
|
+
[a,b,c,d].map{|x| p [x,x.sinh.asinh] }
|
37
|
+
[a,b,c,d].map{|x| p [x,x.tanh.atanh] }
|
data/test/test-22.rb
ADDED
data/test/test-23.rb
ADDED
data/test/test_helper.rb
CHANGED
@@ -1,2 +1,8 @@
|
|
1
1
|
require 'test/unit'
|
2
|
+
require 'rbconfig'
|
3
|
+
|
4
|
+
ENV['PATH'] = [File.expand_path(
|
5
|
+
File.join(File.dirname(__FILE__), "..", "ext")
|
6
|
+
), ENV['PATH']].compact.join(';') if RbConfig::CONFIG['host_os'] =~ /(mswin|mingw|mingw32)/i
|
7
|
+
|
2
8
|
require File.dirname(__FILE__) + '/../ext/gmp'
|
data/test/unit_tests.rb
CHANGED
@@ -18,107 +18,22 @@ require 'tc_z_shifts_last_bits'
|
|
18
18
|
require 'tc_logical_roots'
|
19
19
|
require 'tc_f_precision'
|
20
20
|
require 'tc_f_arithmetics_coersion'
|
21
|
+
require 'tc_division'
|
21
22
|
require 'tc_z_jac_leg_rem'
|
23
|
+
require 'tc_z_gcd_lcm_invert'
|
24
|
+
require 'tc_random'
|
22
25
|
|
23
26
|
class TC_default_prec < Test::Unit::TestCase
|
24
27
|
def test_default_prec
|
25
28
|
assert_equal( 64, GMP::F.default_prec, "GMP::F.default_prec should be 64.")
|
26
29
|
GMP::F.default_prec = 100
|
27
30
|
assert_equal(128, GMP::F.default_prec, "GMP::F.default_prec should be assignable.")
|
31
|
+
GMP::F.default_prec = 130
|
32
|
+
assert_equal(160, GMP::F.default_prec, "GMP::F.default_prec should be assignable.")
|
33
|
+
GMP::F.default_prec = 1000
|
34
|
+
assert_equal(1024, GMP::F.default_prec, "GMP::F.default_prec should be assignable.")
|
35
|
+
assert_raise(RangeError) { GMP::F.default_prec = -64 }
|
36
|
+
assert_raise(TypeError) { GMP::F.default_prec = "Cow" }
|
28
37
|
GMP::F.default_prec = 64
|
29
38
|
end
|
30
|
-
end
|
31
|
-
|
32
|
-
class TC_division < Test::Unit::TestCase
|
33
|
-
def setup
|
34
|
-
@a = GMP::Z.new(5)
|
35
|
-
@b = GMP::Z.new(7)
|
36
|
-
@c = GMP::Z.new(25)
|
37
|
-
@d = GMP::Q.new(3,11)
|
38
|
-
@e = GMP::F.new(3.14)
|
39
|
-
@f = 2**32
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_z_div
|
43
|
-
assert_equal(GMP::Q, (@a / @b ).class, "GMP::Z / GMP::Z should be GMP::Q.")
|
44
|
-
assert_equal(GMP::Q, (@a / 3 ).class, "GMP::Z / Fixnum should be GMP::Q.")
|
45
|
-
assert_equal(GMP::Q, (@a / 2**32).class, "GMP::Z / Bignum should be GMP::Q.")
|
46
|
-
assert_equal(GMP::Q, (@a / @c ).class, "GMP::Z / GMP::Z should be GMP::Q.")
|
47
|
-
assert_in_delta(0.7142857142, @a / @b, 1e-7, "GMP::Z./ should work.")
|
48
|
-
assert_in_delta(1.4 , @b / @a, 1e-7, "GMP::Z./ should work.")
|
49
|
-
assert_in_delta(1.6666666667, @a / 3, 1e-7, "GMP::Z./ should work.")
|
50
|
-
assert_in_delta(0.6 , 3 / @a, 1e-7, "GMP::Z./ should work.")
|
51
|
-
assert_in_delta(0.2 , @a / @c, 1e-7, "GMP::Z./ should work.")
|
52
|
-
assert_in_delta(5.0 , @c / @a, 1e-7, "GMP::Z./ should work.")
|
53
|
-
end
|
54
|
-
|
55
|
-
def test_z_tdiv
|
56
|
-
assert_equal(GMP::Z, @a.tdiv(@b).class, "GMP::Z.tdiv GMP::Z should be GMP::Z.")
|
57
|
-
assert_equal(GMP::Z, @a.tdiv(3).class, "GMP::Z.tdiv Fixnum should be GMP::Z.")
|
58
|
-
assert_equal(GMP::Z, @a.tdiv(2**32).class, "GMP::Z.tdiv Bignum should be GMP::Z.")
|
59
|
-
assert_equal(GMP::Z, @a.tdiv(@c).class, "GMP::Z.tdiv GMP::Z should be GMP::Z.")
|
60
|
-
assert_equal(0, @a.tdiv(@b), "GMP::Z.tdiv should work.")
|
61
|
-
assert_equal(1, @b.tdiv(@a), "GMP::Z.tdiv should work.")
|
62
|
-
assert_equal(1, @a.tdiv( 3), "GMP::Z.tdiv should work.")
|
63
|
-
assert_equal(0, @a.tdiv(@c), "GMP::Z.tdiv should work.")
|
64
|
-
assert_equal(5, @c.tdiv(@a), "GMP::Z.tdiv should work.")
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_z_fdiv
|
68
|
-
assert_equal(GMP::Z, @a.fdiv(@b).class, "GMP::Z.fdiv GMP::Z should be GMP::Z.")
|
69
|
-
assert_equal(GMP::Z, @a.fdiv(3).class, "GMP::Z.fdiv Fixnum should be GMP::Z.")
|
70
|
-
assert_equal(GMP::Z, @a.fdiv(2**32).class, "GMP::Z.fdiv Bignum should be GMP::Z.")
|
71
|
-
assert_equal(0, @a.fdiv(@b), "GMP::Z.fdiv should work.")
|
72
|
-
assert_equal(1, @b.fdiv(@a), "GMP::Z.fdiv should work.")
|
73
|
-
assert_equal(1, @a.fdiv( 3), "GMP::Z.fdiv should work.")
|
74
|
-
assert_equal(0, @a.fdiv(@c), "GMP::Z.fdiv should work.")
|
75
|
-
assert_equal(5, @c.fdiv(@a), "GMP::Z.fdiv should work.")
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_z_cdiv
|
79
|
-
assert_equal(GMP::Z, @a.cdiv(@b).class, "GMP::Z.cdiv GMP::Z should be GMP::Z.")
|
80
|
-
assert_equal(GMP::Z, @a.cdiv(3).class, "GMP::Z.cdiv Fixnum should be GMP::Z.")
|
81
|
-
assert_equal(GMP::Z, @a.cdiv(2**32).class, "GMP::Z.cdiv Bignum should be GMP::Z.")
|
82
|
-
assert_equal(1, @a.cdiv(@b), "GMP::Z.cdiv should work.")
|
83
|
-
assert_equal(2, @b.cdiv(@a), "GMP::Z.cdiv should work.")
|
84
|
-
assert_equal(2, @a.cdiv( 3), "GMP::Z.cdiv should work.")
|
85
|
-
assert_equal(1, @a.cdiv(@c), "GMP::Z.cdiv should work.")
|
86
|
-
assert_equal(5, @c.cdiv(@a), "GMP::Z.cdiv should work.")
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_z_tmod
|
90
|
-
assert_equal(GMP::Z, @a.tmod(@b).class, "GMP::Z.tmod GMP::Z should be GMP::Z.")
|
91
|
-
assert_equal(GMP::Z, @a.tmod(3).class, "GMP::Z.tmod Fixnum should be GMP::Z.")
|
92
|
-
assert_equal(GMP::Z, @a.tmod(2**32).class, "GMP::Z.tmod Bignum should be GMP::Z.")
|
93
|
-
assert_equal(GMP::Z, @a.tmod(@c).class, "GMP::Z.tmod GMP::Z should be GMP::Z.")
|
94
|
-
assert_equal(5, @a.tmod(@b), "GMP::Z.tmod should work.")
|
95
|
-
assert_equal(2, @b.tmod(@a), "GMP::Z.tmod should work.")
|
96
|
-
assert_equal(2, @a.tmod( 3), "GMP::Z.tmod should work.")
|
97
|
-
assert_equal(5, @a.tmod(@c), "GMP::Z.tmod should work.")
|
98
|
-
assert_equal(0, @c.tmod(@a), "GMP::Z.tmod should work.")
|
99
|
-
end
|
100
|
-
|
101
|
-
def test_z_fmod
|
102
|
-
assert_equal(GMP::Z, @a.fmod(@b).class, "GMP::Z.fmod GMP::Z should be GMP::Z.")
|
103
|
-
assert_equal(GMP::Z, @a.fmod(3).class, "GMP::Z.fmod Fixnum should be GMP::Z.")
|
104
|
-
assert_equal(GMP::Z, @a.fmod(2**32).class, "GMP::Z.fmod Bignum should be GMP::Z.")
|
105
|
-
assert_equal(GMP::Z, @a.fmod(@c).class, "GMP::Z.fmod GMP::Z should be GMP::Z.")
|
106
|
-
assert_equal(5, @a.fmod(@b), "GMP::Z.fmod should work.")
|
107
|
-
assert_equal(2, @b.fmod(@a), "GMP::Z.fmod should work.")
|
108
|
-
assert_equal(2, @a.fmod( 3), "GMP::Z.fmod should work.")
|
109
|
-
assert_equal(5, @a.fmod(@c), "GMP::Z.fmod should work.")
|
110
|
-
assert_equal(0, @c.fmod(@a), "GMP::Z.fmod should work.")
|
111
|
-
end
|
112
|
-
|
113
|
-
def test_z_cmod
|
114
|
-
assert_equal(GMP::Z, @a.cmod(@b).class, "GMP::Z.cmod GMP::Z should be GMP::Z.")
|
115
|
-
assert_equal(GMP::Z, @a.cmod(3).class, "GMP::Z.cmod Fixnum should be GMP::Z.")
|
116
|
-
assert_equal(GMP::Z, @a.cmod(2**32).class, "GMP::Z.cmod Bignum should be GMP::Z.")
|
117
|
-
assert_equal(GMP::Z, @a.cmod(@c).class, "GMP::Z.cmod GMP::Z should be GMP::Z.")
|
118
|
-
assert_equal( -2, @a.cmod(@b), "GMP::Z.cmod should work.")
|
119
|
-
assert_equal( -3, @b.cmod(@a), "GMP::Z.cmod should work.")
|
120
|
-
assert_equal( -1, @a.cmod( 3), "GMP::Z.cmod should work.")
|
121
|
-
assert_equal(-20, @a.cmod(@c), "GMP::Z.cmod should work.")
|
122
|
-
assert_equal( 0, @c.cmod(@a), "GMP::Z.cmod should work.")
|
123
|
-
end
|
124
39
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gmp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomasz Wegrzanowski
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date:
|
13
|
+
date: 2010-01-03 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies: []
|
16
16
|
|
@@ -25,43 +25,64 @@ extensions:
|
|
25
25
|
extra_rdoc_files: []
|
26
26
|
|
27
27
|
files:
|
28
|
-
- ext/extconf.rb
|
29
28
|
- ext/gmp.c
|
29
|
+
- ext/gmpbench_timing.c
|
30
30
|
- ext/gmpf.c
|
31
|
-
- ext/gmpf.h
|
32
31
|
- ext/gmpq.c
|
33
|
-
- ext/
|
32
|
+
- ext/gmprandstate.c
|
34
33
|
- ext/gmpz.c
|
34
|
+
- ext/gmpf.h
|
35
|
+
- ext/gmpq.h
|
35
36
|
- ext/gmpz.h
|
36
37
|
- ext/ruby_gmp.h
|
37
38
|
- ext/takeover.h
|
38
|
-
-
|
39
|
+
- ext/extconf.rb
|
39
40
|
- test/tc_cmp.rb
|
40
|
-
- test/
|
41
|
-
- test/tc_f_arithmetics_coersion.rb
|
41
|
+
- test/tc_division.rb
|
42
42
|
- test/tc_fib_fac_nextprime.rb
|
43
43
|
- test/tc_floor_ceil_truncate.rb
|
44
|
+
- test/tc_f_arithmetics_coersion.rb
|
45
|
+
- test/tc_f_precision.rb
|
44
46
|
- test/tc_logical_roots.rb
|
45
47
|
- test/tc_q.rb
|
46
48
|
- test/tc_q_basic.rb
|
49
|
+
- test/tc_random.rb
|
47
50
|
- test/tc_sgn_neg_abs.rb
|
48
51
|
- test/tc_swap.rb
|
49
52
|
- test/tc_z.rb
|
53
|
+
- test/tc_zerodivisionexceptions.rb
|
50
54
|
- test/tc_z_basic.rb
|
51
55
|
- test/tc_z_exponentiation.rb
|
56
|
+
- test/tc_z_gcd_lcm_invert.rb
|
52
57
|
- test/tc_z_jac_leg_rem.rb
|
53
58
|
- test/tc_z_logic.rb
|
54
59
|
- test/tc_z_shifts_last_bits.rb
|
55
60
|
- test/tc_z_to_d_to_i.rb
|
56
|
-
- test/
|
61
|
+
- test/test-12.rb
|
62
|
+
- test/test-19.rb
|
63
|
+
- test/test-20.rb
|
64
|
+
- test/test-21.rb
|
65
|
+
- test/test-22.rb
|
66
|
+
- test/test-23.rb
|
57
67
|
- test/test_helper.rb
|
58
68
|
- test/unit_tests.rb
|
69
|
+
- test/README
|
70
|
+
- benchmark/COPYING
|
71
|
+
- benchmark/divide
|
72
|
+
- benchmark/gcd
|
73
|
+
- benchmark/gexpr
|
74
|
+
- benchmark/gexpr.c
|
75
|
+
- benchmark/multiply
|
76
|
+
- benchmark/README
|
77
|
+
- benchmark/rsa
|
78
|
+
- benchmark/runbench
|
79
|
+
- benchmark/version
|
59
80
|
- CHANGELOG
|
60
81
|
- INSTALL
|
61
82
|
- README.rdoc
|
62
83
|
- manual.pdf
|
63
84
|
- manual.tex
|
64
|
-
has_rdoc:
|
85
|
+
has_rdoc: true
|
65
86
|
homepage: http://github.com/srawlins/gmp
|
66
87
|
licenses: []
|
67
88
|
|