gmp 0.4.7 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/CHANGELOG +31 -0
  2. data/README.rdoc +16 -8
  3. data/benchmark/multiply +1 -1
  4. data/benchmark/multiply.gc +57 -0
  5. data/benchmark/pi +126 -0
  6. data/benchmark/srb.sh +21 -0
  7. data/ext/extconf.rb +3 -0
  8. data/ext/gmp.c +16 -7
  9. data/ext/gmpbench_timing.c +1 -1
  10. data/ext/gmpf.c +445 -104
  11. data/ext/gmpq.c +25 -17
  12. data/ext/gmpz.c +232 -120
  13. data/ext/mprnd.c +23 -5
  14. data/ext/ruby_gmp.h +75 -9
  15. data/lib/gmp.rb +9 -0
  16. data/manual.pdf +0 -0
  17. data/manual.tex +494 -60
  18. data/test/README +1 -0
  19. data/test/mpfr_tcbrt.rb +95 -0
  20. data/test/mpfr_tisnan.rb +70 -0
  21. data/test/mpfr_trec_sqrt.rb +62 -0
  22. data/test/mpfr_tsqrt.rb +142 -6
  23. data/test/tc_cmp.rb +4 -4
  24. data/test/tc_constants.rb +10 -0
  25. data/test/tc_division.rb +13 -2
  26. data/test/tc_f_arithmetics_coersion.rb +2 -2
  27. data/test/tc_f_precision.rb +4 -3
  28. data/test/tc_fib_fac_nextprime.rb +2 -2
  29. data/test/tc_floor_ceil_truncate.rb +2 -2
  30. data/test/tc_hashes.rb +0 -2
  31. data/test/tc_logical_roots.rb +1 -3
  32. data/test/tc_mpfr_constants.rb +11 -0
  33. data/test/tc_mpfr_functions.rb +22 -9
  34. data/test/tc_mpfr_random.rb +1 -3
  35. data/test/tc_mpfr_rounding.rb +10 -7
  36. data/test/tc_q.rb +1 -3
  37. data/test/tc_q_basic.rb +3 -5
  38. data/test/tc_random.rb +1 -3
  39. data/test/tc_sgn_neg_abs.rb +1 -3
  40. data/test/tc_swap.rb +1 -3
  41. data/test/tc_z.rb +3 -3
  42. data/test/tc_z_addmul.rb +92 -0
  43. data/test/tc_z_basic.rb +6 -8
  44. data/test/tc_z_exponentiation.rb +1 -3
  45. data/test/tc_z_gcd_lcm_invert.rb +1 -3
  46. data/test/tc_z_jac_leg_rem.rb +1 -3
  47. data/test/tc_z_logic.rb +2 -2
  48. data/test/tc_z_shifts_last_bits.rb +2 -2
  49. data/test/tc_z_to_d_to_i.rb +2 -2
  50. data/test/test_helper.rb +1 -1
  51. data/test/test_unit/assertions.rb +31 -0
  52. data/test/unit_tests.rb +33 -27
  53. metadata +31 -6
@@ -1,5 +1,3 @@
1
- require 'test_helper'
2
-
3
1
  class TC_Z_Exponentiation < Test::Unit::TestCase
4
2
  def setup
5
3
  @a = GMP::Z.new(100)
@@ -19,4 +17,4 @@ class TC_Z_Exponentiation < Test::Unit::TestCase
19
17
  assert_equal(GMP::Z(0), @a.powmod(@b,256), "(a : GMP::Z).powmod((b : GMP::Z), (c : Fixnum)) should work correctly")
20
18
  assert_equal(GMP::Z(0), @a.powmod(@b,@c), "(a : GMP::Z).powmod((b : GMP::Z), (c : GMP::Z)) should work correctly")
21
19
  end
22
- end
20
+ end
@@ -1,5 +1,3 @@
1
- require 'test_helper'
2
-
3
1
  class TC_Z_GCD_LCM_Invert < Test::Unit::TestCase
4
2
  def setup
5
3
  @a = GMP::Z( 24) # 2^3 * 3
@@ -54,4 +52,4 @@ class TC_Z_GCD_LCM_Invert < Test::Unit::TestCase
54
52
  assert_equal(GMP::Z( 4), GMP::Z(14).invert(@e), "GMP::Z should invert correctly")
55
53
  assert_equal(GMP::Z( 3), GMP::Z(15).invert(@e), "GMP::Z should invert correctly")
56
54
  end
57
- end
55
+ end
@@ -1,5 +1,3 @@
1
- require 'test_helper'
2
-
3
1
  class TC_Z_Jacobi_Legendre_Remove < Test::Unit::TestCase
4
2
  def setup
5
3
  @one = GMP::Z(1)
@@ -70,4 +68,4 @@ class TC_Z_Jacobi_Legendre_Remove < Test::Unit::TestCase
70
68
  assert_equal(1, @forty_five.remove(@five)[1], "GMP::Z should remove(GMP::Z) correctly.")
71
69
  assert_equal(2, @forty_five.remove(@three)[1], "GMP::Z should remove(GMP::Z) correctly.")
72
70
  end
73
- end
71
+ end
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require './test_helper'
2
2
 
3
3
  class TC_Z_Logic < Test::Unit::TestCase
4
4
  def setup
@@ -51,4 +51,4 @@ class TC_Z_Logic < Test::Unit::TestCase
51
51
  assert_equal(a.scan1(0), 2, "GMP::Z#scan1 should scan for 1s")
52
52
 
53
53
  end
54
- end
54
+ end
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require './test_helper'
2
2
 
3
3
  class TC_shifts_last_bits < Test::Unit::TestCase
4
4
  def setup
@@ -19,4 +19,4 @@ class TC_shifts_last_bits < Test::Unit::TestCase
19
19
  #assert_equal(-4, @b.lastbits_sgn(5), "GMP::Z should lastbits_sgn correctly.")
20
20
  # a.tshr 5 ???
21
21
  end
22
- end
22
+ end
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require './test_helper'
2
2
 
3
3
  class TC_to_i_to_d < Test::Unit::TestCase
4
4
  def setup
@@ -21,4 +21,4 @@ class TC_to_i_to_d < Test::Unit::TestCase
21
21
  #assert_equal(@b.to_d.class, Float, "GMP::Z.to_d should be a Float.")
22
22
  assert_equal(@c.to_d.class, Float, "GMP::Q.to_d should be a Float.")
23
23
  end
24
- end
24
+ end
@@ -1,5 +1,5 @@
1
1
  require 'test/unit'
2
- require 'test_unit/assertions' # Monkey patch
2
+ require './test_unit/assertions' # Monkey patch
3
3
  require 'rbconfig'
4
4
 
5
5
  ENV['PATH'] = [File.expand_path(
@@ -0,0 +1,31 @@
1
+ module Test::Unit::Assertions
2
+ def assert_less_than(expected, actual, message=nil)
3
+ assert_true(actual < expected, message)
4
+ end
5
+ alias :assert_lt :assert_less_than
6
+
7
+ def assert_lte(expected, actual, message=nil)
8
+ assert_true(actual <= expected, message)
9
+ end
10
+
11
+ def assert_greater_than(expected, actual, message=nil)
12
+ assert_true(actual > expected, message)
13
+ end
14
+ alias :assert_gt :assert_greater_than
15
+
16
+ def assert_gte(expected, actual, message=nil)
17
+ assert_true(actual >= expected, message)
18
+ end
19
+
20
+ def assert_between(expected_low, expected_high, actual, message=nil)
21
+ assert_true(actual <= expected_high && actual >= expected_low, message)
22
+ end
23
+
24
+ def assert_true(actual, message=nil)
25
+ assert(actual, message)
26
+ end
27
+
28
+ def assert_false(actual, message=nil)
29
+ assert(!actual, message)
30
+ end
31
+ end
@@ -1,36 +1,42 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'test_helper'
3
+ require './test_helper'
4
4
 
5
- require 'tc_z'
6
- require 'tc_z_basic'
7
- require 'tc_z_logic'
8
- require 'tc_q'
9
- require 'tc_cmp'
10
- require 'tc_q_basic'
11
- require 'tc_z_exponentiation'
12
- require 'tc_zerodivisionexceptions'
13
- require 'tc_sgn_neg_abs'
14
- require 'tc_fib_fac_nextprime'
15
- require 'tc_swap'
16
- require 'tc_floor_ceil_truncate'
17
- require 'tc_z_to_d_to_i'
18
- require 'tc_z_shifts_last_bits'
19
- require 'tc_logical_roots'
20
- require 'tc_f_precision'
21
- require 'tc_f_arithmetics_coersion'
22
- require 'tc_division'
23
- require 'tc_z_jac_leg_rem'
24
- require 'tc_z_gcd_lcm_invert'
25
- require 'tc_random'
26
- require 'tc_hashes'
5
+ require './tc_constants'
6
+ require './tc_z'
7
+ require './tc_z_basic'
8
+ require './tc_z_addmul'
9
+ require './tc_z_logic'
10
+ require './tc_q'
11
+ require './tc_cmp'
12
+ require './tc_q_basic'
13
+ require './tc_z_exponentiation'
14
+ require './tc_zerodivisionexceptions'
15
+ require './tc_sgn_neg_abs'
16
+ require './tc_fib_fac_nextprime'
17
+ require './tc_swap'
18
+ require './tc_floor_ceil_truncate'
19
+ require './tc_z_to_d_to_i'
20
+ require './tc_z_shifts_last_bits'
21
+ require './tc_logical_roots'
22
+ require './tc_f_precision'
23
+ require './tc_f_arithmetics_coersion'
24
+ require './tc_division'
25
+ require './tc_z_jac_leg_rem'
26
+ require './tc_z_gcd_lcm_invert'
27
+ require './tc_random'
28
+ require './tc_hashes'
27
29
 
28
30
  begin
29
31
  GMP::MPFR_VERSION
30
- require 'tc_mpfr_random'
31
- require 'tc_mpfr_functions'
32
- require 'tc_mpfr_rounding'
33
- require 'mpfr_tsqrt'
32
+ require './tc_mpfr_constants'
33
+ require './tc_mpfr_random'
34
+ require './tc_mpfr_functions'
35
+ require './tc_mpfr_rounding'
36
+ require './mpfr_tcbrt'
37
+ require './mpfr_tisnan'
38
+ require './mpfr_trec_sqrt'
39
+ require './mpfr_tsqrt'
34
40
  rescue
35
41
 
36
42
  end
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gmp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.7
4
+ hash: 13
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 5
9
+ - 3
10
+ version: 0.5.3
5
11
  platform: ruby
6
12
  authors:
7
13
  - Tomasz Wegrzanowski
@@ -10,7 +16,7 @@ autorequire:
10
16
  bindir: bin
11
17
  cert_chain: []
12
18
 
13
- date: 2010-03-25 00:00:00 -07:00
19
+ date: 2010-09-20 00:00:00 -07:00
14
20
  default_executable:
15
21
  dependencies: []
16
22
 
@@ -39,8 +45,13 @@ files:
39
45
  - ext/ruby_gmp.h
40
46
  - ext/takeover.h
41
47
  - ext/extconf.rb
48
+ - lib/gmp.rb
49
+ - test/mpfr_tcbrt.rb
50
+ - test/mpfr_tisnan.rb
51
+ - test/mpfr_trec_sqrt.rb
42
52
  - test/mpfr_tsqrt.rb
43
53
  - test/tc_cmp.rb
54
+ - test/tc_constants.rb
44
55
  - test/tc_division.rb
45
56
  - test/tc_fib_fac_nextprime.rb
46
57
  - test/tc_floor_ceil_truncate.rb
@@ -48,6 +59,7 @@ files:
48
59
  - test/tc_f_precision.rb
49
60
  - test/tc_hashes.rb
50
61
  - test/tc_logical_roots.rb
62
+ - test/tc_mpfr_constants.rb
51
63
  - test/tc_mpfr_functions.rb
52
64
  - test/tc_mpfr_random.rb
53
65
  - test/tc_mpfr_rounding.rb
@@ -58,6 +70,7 @@ files:
58
70
  - test/tc_swap.rb
59
71
  - test/tc_z.rb
60
72
  - test/tc_zerodivisionexceptions.rb
73
+ - test/tc_z_addmul.rb
61
74
  - test/tc_z_basic.rb
62
75
  - test/tc_z_exponentiation.rb
63
76
  - test/tc_z_gcd_lcm_invert.rb
@@ -74,15 +87,19 @@ files:
74
87
  - test/test_helper.rb
75
88
  - test/unit_tests.rb
76
89
  - test/README
90
+ - test/test_unit/assertions.rb
77
91
  - benchmark/COPYING
78
92
  - benchmark/divide
79
93
  - benchmark/gcd
80
94
  - benchmark/gexpr
81
95
  - benchmark/gexpr.c
82
96
  - benchmark/multiply
97
+ - benchmark/multiply.gc
98
+ - benchmark/pi
83
99
  - benchmark/README
84
100
  - benchmark/rsa
85
101
  - benchmark/runbench
102
+ - benchmark/srb.sh
86
103
  - benchmark/version
87
104
  - CHANGELOG
88
105
  - INSTALL
@@ -99,21 +116,29 @@ rdoc_options: []
99
116
  require_paths:
100
117
  - lib
101
118
  required_ruby_version: !ruby/object:Gem::Requirement
119
+ none: false
102
120
  requirements:
103
121
  - - ">="
104
122
  - !ruby/object:Gem::Version
105
- version: 1.8.1
106
- version:
123
+ hash: 59
124
+ segments:
125
+ - 1
126
+ - 8
127
+ - 6
128
+ version: 1.8.6
107
129
  required_rubygems_version: !ruby/object:Gem::Requirement
130
+ none: false
108
131
  requirements:
109
132
  - - ">="
110
133
  - !ruby/object:Gem::Version
134
+ hash: 3
135
+ segments:
136
+ - 0
111
137
  version: "0"
112
- version:
113
138
  requirements:
114
139
  - GMP compiled and working properly.
115
140
  rubyforge_project:
116
- rubygems_version: 1.3.5
141
+ rubygems_version: 1.3.7
117
142
  signing_key:
118
143
  specification_version: 3
119
144
  summary: Provides Ruby bindings to the GMP library.