gmp 0.2.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'gmp'
4
+
5
+ a=GMP::Q.new(200,11)
6
+ b=-a
7
+ c=a.floor
8
+ d=a.ceil
9
+ e=a.trunc
10
+ f=b.floor
11
+ g=b.ceil
12
+ h=b.trunc
13
+
14
+ [c,d,e,f,g,h].each { |var| p var }
data/test/test-19.rb ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'gmp'
4
+
5
+ a=GMP::Z.new(5)
6
+ b=GMP::Z.new(7)
7
+ c=GMP::Q.new(3,11)
8
+ d=GMP::F.new(3.14)
9
+ e=2**32
10
+
11
+ f=[a/b,a/3,3/a,a/c,c/a,a/d,d/a,a/e,e/a]
12
+
13
+ f.each {|var| p var}
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
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'gmp'
4
+
5
+ a = GMP::F.new 0
6
+ b = GMP::F.new 1
7
+ c = b / a
8
+ d = -c
9
+ e = a * c
10
+
11
+ [a,b,c,d,e].map{|x| p [x, x.finite?, x.infinite?] }
12
+ [a,b,c,d,e].map{|x| p [x, x.number?, x.nan?] }
data/test/test-23.rb ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'gmp'
4
+
5
+ a = GMP::F.new 256
6
+ b = GMP::F.new 10
7
+ c = GMP::F.new 0.5
8
+
9
+ [a,b].map{|x| p x.sqrt }
10
+ [a,b].map{|x| p x ** c }
11
+
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.2.2
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: 2009-12-22 00:00:00 -07:00
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/gmpq.h
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
- - test/README
39
+ - ext/extconf.rb
39
40
  - test/tc_cmp.rb
40
- - test/tc_f_precision.rb
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/tc_zerodivisionexceptions.rb
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: false
85
+ has_rdoc: true
65
86
  homepage: http://github.com/srawlins/gmp
66
87
  licenses: []
67
88