gmp 0.6.47 → 0.7.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG +21 -1
  3. data/README.markdown +29 -9
  4. data/ext/extconf.rb +8 -0
  5. data/ext/gmp.c +7 -7
  6. data/ext/gmpf.c +620 -139
  7. data/ext/gmpq.c +218 -90
  8. data/ext/gmprandstate.c +57 -53
  9. data/ext/gmpz.c +492 -440
  10. data/ext/mprnd.c +44 -35
  11. data/ext/ruby_gmp.h +6 -6
  12. data/manual.pdf +0 -0
  13. data/manual.tex +2 -2
  14. data/test/mpfr_thypot.rb +60 -0
  15. data/test/tc_cmp.rb +1 -1
  16. data/test/tc_constants.rb +1 -1
  17. data/test/tc_division.rb +1 -1
  18. data/test/tc_f_abs_neg.rb +1 -1
  19. data/test/tc_f_arithmetics_coersion.rb +1 -1
  20. data/test/tc_f_precision.rb +2 -1
  21. data/test/tc_f_to_s.rb +1 -1
  22. data/test/tc_hashes.rb +1 -4
  23. data/test/tc_mpfr_cmp.rb +1 -1
  24. data/test/tc_mpfr_constants.rb +1 -1
  25. data/test/tc_mpfr_functions.rb +43 -10
  26. data/test/tc_mpfr_inf_nan_zero.rb +1 -1
  27. data/test/tc_mpfr_integer.rb +1 -1
  28. data/test/tc_mpfr_new_rounding.rb +24 -1
  29. data/test/tc_mpfr_pow.rb +17 -0
  30. data/test/tc_mpfr_random.rb +1 -1
  31. data/test/tc_mpfr_rounding.rb +1 -1
  32. data/test/tc_q.rb +53 -32
  33. data/test/tc_q_basic.rb +1 -1
  34. data/test/{tc_floor_ceil_truncate.rb → tc_q_floor_ceil_truncate.rb} +2 -2
  35. data/test/tc_q_num_den.rb +18 -0
  36. data/test/tc_random.rb +1 -4
  37. data/test/tc_sgn_neg_abs.rb +1 -1
  38. data/test/tc_swap.rb +1 -1
  39. data/test/tc_z.rb +1 -1
  40. data/test/tc_z_addmul.rb +1 -1
  41. data/test/tc_z_basic.rb +3 -2
  42. data/test/tc_z_exponentiation.rb +5 -5
  43. data/test/tc_z_export_import.rb +1 -1
  44. data/test/{tc_fib_fac_nextprime.rb → tc_z_fib_fac_nextprime.rb} +1 -1
  45. data/test/tc_z_functional_mappings.rb +2 -2
  46. data/test/tc_z_gcd_lcm_invert.rb +1 -1
  47. data/test/tc_z_hamdist.rb +1 -1
  48. data/test/tc_z_io.rb +2 -1
  49. data/test/tc_z_jac_leg_rem.rb +1 -1
  50. data/test/tc_z_logic.rb +1 -1
  51. data/test/{tc_logical_roots.rb → tc_z_logical_roots.rb} +7 -7
  52. data/test/tc_z_shifts_last_bits.rb +2 -2
  53. data/test/tc_z_submul.rb +1 -1
  54. data/test/tc_z_to_dis.rb +1 -1
  55. data/test/{tc_zerodivisionexceptions.rb → tc_zero_division_exceptions.rb} +2 -2
  56. data/test/unit_tests.rb +30 -17
  57. metadata +16 -16
  58. data/INSTALL +0 -4
@@ -1,6 +1,6 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
2
2
 
3
- class TC_Z_Logic < Test::Unit::TestCase
3
+ class TcIntegerLogic < Test::Unit::TestCase
4
4
  def setup
5
5
  @a=GMP::Z.new(0xffff00000000ffff)
6
6
  @b=GMP::Z.new(0xffff0000ffff0000)
@@ -1,12 +1,12 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
2
2
 
3
- class TC_logical_roots < Test::Unit::TestCase
3
+ class TcIntegerLogicalRoots < Test::Unit::TestCase
4
4
  def setup
5
5
  @a = GMP::Z.new(100)
6
6
  @b = GMP::Z.new( 27)
7
7
  @c = GMP::Z.new( 99)
8
8
  end
9
-
9
+
10
10
  def test_parity
11
11
  assert @a.even?, "GMP::Z should even? correctly."
12
12
  assert !@b.even?, "GMP::Z should even? correctly."
@@ -15,31 +15,31 @@ class TC_logical_roots < Test::Unit::TestCase
15
15
  assert @b.odd?, "GMP::Z should odd? correctly."
16
16
  assert @c.odd?, "GMP::Z should odd? correctly."
17
17
  end
18
-
18
+
19
19
  def test_square
20
20
  assert @a.square?, "GMP::Z should square? correctly."
21
21
  assert !@b.square?, "GMP::Z should square? correctly."
22
22
  assert !@c.square?, "GMP::Z should square? correctly."
23
23
  end
24
-
24
+
25
25
  def test_power
26
26
  assert @a.power?, "GMP::Z should power? correctly."
27
27
  assert @b.power?, "GMP::Z should power? correctly."
28
28
  assert !@c.power?, "GMP::Z should power? correctly."
29
29
  end
30
-
30
+
31
31
  def sqrtrem
32
32
  assert_equal([10, 0], @a.sqrtrem, "GMP::Z should sqrtrem correctly.")
33
33
  assert_equal([ 5, 2], @b.sqrtrem, "GMP::Z should sqrtrem correctly.")
34
34
  assert_equal([ 9, 18], @c.sqrtrem, "GMP::Z should sqrtrem correctly.")
35
35
  end
36
-
36
+
37
37
  def sqrt
38
38
  assert_equal(10, @a.sqrt, "GMP::Z should sqrt correctly.")
39
39
  assert_equal( 5, @b.sqrt, "GMP::Z should sqrt correctly.")
40
40
  assert_equal( 9, @c.sqrt, "GMP::Z should sqrt correctly.")
41
41
  end
42
-
42
+
43
43
  def root
44
44
  assert_equal(4, @a.root(3), "GMP::Z should root correctly.")
45
45
  assert_equal(3, @b.root(3), "GMP::Z should root correctly.")
@@ -1,9 +1,9 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
2
2
 
3
- class TC_shifts_last_bits < Test::Unit::TestCase
3
+ class TcIntegerShiftsLastBits < Test::Unit::TestCase
4
4
  def setup
5
5
  @a = GMP::Z.new(100) # 01100100
6
- @b =- @a # 10011100
6
+ @b = -@a # 10011100
7
7
  end
8
8
 
9
9
  def test_shifts
@@ -4,7 +4,7 @@ require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
4
4
  # Z op (Fixnum,Z), Z op (Fixnum,Fixnum), Z op (Fixnum,Bignum)
5
5
  # Z op (Bignum,Z), Z op (Bignum,Bignum), Z op (Bignum,Fixnum)]
6
6
  # Things are tested both ways because the implementation is asymetrical
7
- class TC_Z_Submul < Test::Unit::TestCase
7
+ class TcIntegerSubmul < Test::Unit::TestCase
8
8
  def setup
9
9
  @_64bit = 1_000_000_000_000.is_a? Fixnum
10
10
  end
@@ -1,6 +1,6 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
2
2
 
3
- class TC_to_i_to_d < Test::Unit::TestCase
3
+ class TcIntegerToDis < Test::Unit::TestCase
4
4
  def setup
5
5
  @a = GMP::Z.new(100)
6
6
  @b = GMP::Z.pow(2,32)
@@ -1,13 +1,13 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
2
2
 
3
- class TC_ZeroDivisionExceptions < Test::Unit::TestCase
3
+ class TCZeroDivisionExceptions < Test::Unit::TestCase
4
4
  def setup
5
5
  @a = GMP::Z.new(10)
6
6
  @b = GMP::Z.new()
7
7
  @c = GMP::Q.new(1)
8
8
  @d = GMP::Q.new()
9
9
  end
10
-
10
+
11
11
  def test_division_by_zero
12
12
  assert_raise(ZeroDivisionError) { @a.tdiv(0) }
13
13
  assert_raise(ZeroDivisionError) { @a.tdiv(@b) }
@@ -2,37 +2,47 @@
2
2
 
3
3
  DIR = File.expand_path(File.dirname(__FILE__))
4
4
 
5
+ # miscellaneous tests
6
+ require File.join(DIR, 'tc_cmp')
5
7
  require File.join(DIR, 'tc_constants')
6
8
  require File.join(DIR, 'tc_division')
7
- require File.join(DIR, 'tc_f_precision')
9
+ require File.join(DIR, 'tc_hashes')
10
+ require File.join(DIR, 'tc_random')
11
+ require File.join(DIR, 'tc_sgn_neg_abs')
12
+ require File.join(DIR, 'tc_swap')
13
+ require File.join(DIR, 'tc_zero_division_exceptions')
14
+
15
+ # float tests
16
+ require File.join(DIR, 'tc_f_abs_neg')
8
17
  require File.join(DIR, 'tc_f_arithmetics_coersion')
18
+ require File.join(DIR, 'tc_f_precision')
9
19
  require File.join(DIR, 'tc_f_to_s')
20
+
21
+ # integer tests
10
22
  require File.join(DIR, 'tc_z')
11
- require File.join(DIR, 'tc_z_basic')
12
23
  require File.join(DIR, 'tc_z_addmul')
13
- require File.join(DIR, 'tc_z_submul')
14
- require File.join(DIR, 'tc_z_logic')
24
+ require File.join(DIR, 'tc_z_basic')
15
25
  require File.join(DIR, 'tc_z_exponentiation')
16
26
  require File.join(DIR, 'tc_z_export_import')
27
+ require File.join(DIR, 'tc_z_fib_fac_nextprime')
28
+ require File.join(DIR, 'tc_z_functional_mappings')
29
+ require File.join(DIR, 'tc_z_gcd_lcm_invert')
17
30
  require File.join(DIR, 'tc_z_hamdist')
18
31
  require File.join(DIR, 'tc_z_io')
19
- require File.join(DIR, 'tc_z_to_dis')
20
- require File.join(DIR, 'tc_z_shifts_last_bits')
21
32
  require File.join(DIR, 'tc_z_jac_leg_rem')
22
- require File.join(DIR, 'tc_z_gcd_lcm_invert')
33
+ require File.join(DIR, 'tc_z_logic')
34
+ require File.join(DIR, 'tc_z_logical_roots')
35
+ require File.join(DIR, 'tc_z_shifts_last_bits')
36
+ require File.join(DIR, 'tc_z_submul')
37
+ require File.join(DIR, 'tc_z_to_dis')
38
+
39
+ # rational tests
23
40
  require File.join(DIR, 'tc_q')
24
41
  require File.join(DIR, 'tc_q_basic')
25
- require File.join(DIR, 'tc_cmp')
26
- require File.join(DIR, 'tc_zerodivisionexceptions')
27
- require File.join(DIR, 'tc_sgn_neg_abs')
28
- require File.join(DIR, 'tc_fib_fac_nextprime')
29
- require File.join(DIR, 'tc_swap')
30
- require File.join(DIR, 'tc_floor_ceil_truncate')
31
- require File.join(DIR, 'tc_logical_roots')
32
- require File.join(DIR, 'tc_random')
33
- require File.join(DIR, 'tc_hashes')
34
- require File.join(DIR, 'tc_z_functional_mappings')
42
+ require File.join(DIR, 'tc_q_floor_ceil_truncate')
43
+ require File.join(DIR, 'tc_q_num_den')
35
44
 
45
+ # gmp suite tests
36
46
  require File.join(DIR, 'gmp_tcong')
37
47
  require File.join(DIR, 'gmp_tgcd')
38
48
  require File.join(DIR, 'gmp_tlcm')
@@ -44,15 +54,18 @@ if GMP.const_defined? :MPFR_VERSION
44
54
  require File.join(DIR, 'tc_mpfr_constants')
45
55
  require File.join(DIR, 'tc_mpfr_inf_nan_zero')
46
56
  require File.join(DIR, 'tc_mpfr_integer')
57
+ require File.join(DIR, 'tc_mpfr_pow')
47
58
  require File.join(DIR, 'tc_mpfr_random')
48
59
  require File.join(DIR, 'tc_mpfr_functions')
49
60
  require File.join(DIR, 'tc_mpfr_rounding')
50
61
  require File.join(DIR, 'tc_mpfr_new_rounding')
51
62
  require File.join(DIR, 'mpfr_tcbrt')
63
+ require File.join(DIR, 'mpfr_tconst_euler')
52
64
  require File.join(DIR, 'mpfr_tfac')
53
65
  if GMP::MPFR_VERSION >= "3.1.0"
54
66
  require File.join(DIR, 'mpfr_tfrexp')
55
67
  end
68
+ require File.join(DIR, 'mpfr_thypot')
56
69
  require File.join(DIR, 'mpfr_tisnan')
57
70
  require File.join(DIR, 'mpfr_trec_sqrt')
58
71
  require File.join(DIR, 'mpfr_tsqrt')
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gmp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.47
5
- prerelease:
4
+ version: 0.7.19
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tomasz Wegrzanowski
@@ -10,9 +9,9 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-12-31 00:00:00.000000000 Z
12
+ date: 2014-03-12 00:00:00.000000000 Z
14
13
  dependencies: []
15
- description: gmp - providing Ruby bindings to the GMP library.
14
+ description: gmp - providing Ruby bindings to the GMP and MPFR libraries.
16
15
  email:
17
16
  - Tomasz.Wegrzanowski@gmail.com
18
17
  - sam.rawlins@gmail.com
@@ -45,6 +44,7 @@ files:
45
44
  - test/mpfr_tconst_euler.rb
46
45
  - test/mpfr_tfac.rb
47
46
  - test/mpfr_tfrexp.rb
47
+ - test/mpfr_thypot.rb
48
48
  - test/mpfr_tisnan.rb
49
49
  - test/mpfr_trec_sqrt.rb
50
50
  - test/mpfr_tsqrt.rb
@@ -55,20 +55,20 @@ files:
55
55
  - test/tc_f_arithmetics_coersion.rb
56
56
  - test/tc_f_precision.rb
57
57
  - test/tc_f_to_s.rb
58
- - test/tc_fib_fac_nextprime.rb
59
- - test/tc_floor_ceil_truncate.rb
60
58
  - test/tc_hashes.rb
61
- - test/tc_logical_roots.rb
62
59
  - test/tc_mpfr_cmp.rb
63
60
  - test/tc_mpfr_constants.rb
64
61
  - test/tc_mpfr_functions.rb
65
62
  - test/tc_mpfr_inf_nan_zero.rb
66
63
  - test/tc_mpfr_integer.rb
67
64
  - test/tc_mpfr_new_rounding.rb
65
+ - test/tc_mpfr_pow.rb
68
66
  - test/tc_mpfr_random.rb
69
67
  - test/tc_mpfr_rounding.rb
70
68
  - test/tc_q.rb
71
69
  - test/tc_q_basic.rb
70
+ - test/tc_q_floor_ceil_truncate.rb
71
+ - test/tc_q_num_den.rb
72
72
  - test/tc_random.rb
73
73
  - test/tc_sgn_neg_abs.rb
74
74
  - test/tc_swap.rb
@@ -77,16 +77,18 @@ files:
77
77
  - test/tc_z_basic.rb
78
78
  - test/tc_z_exponentiation.rb
79
79
  - test/tc_z_export_import.rb
80
+ - test/tc_z_fib_fac_nextprime.rb
80
81
  - test/tc_z_functional_mappings.rb
81
82
  - test/tc_z_gcd_lcm_invert.rb
82
83
  - test/tc_z_hamdist.rb
83
84
  - test/tc_z_io.rb
84
85
  - test/tc_z_jac_leg_rem.rb
85
86
  - test/tc_z_logic.rb
87
+ - test/tc_z_logical_roots.rb
86
88
  - test/tc_z_shifts_last_bits.rb
87
89
  - test/tc_z_submul.rb
88
90
  - test/tc_z_to_dis.rb
89
- - test/tc_zerodivisionexceptions.rb
91
+ - test/tc_zero_division_exceptions.rb
90
92
  - test/test-20.rb
91
93
  - test/test-21.rb
92
94
  - test/test-22.rb
@@ -102,7 +104,6 @@ files:
102
104
  - benchmark/results-5.1.3_0.6.31.ods
103
105
  - CHANGELOG
104
106
  - COPYING.md
105
- - INSTALL
106
107
  - README.html
107
108
  - README.markdown
108
109
  - manual.pdf
@@ -114,28 +115,27 @@ files:
114
115
  homepage: http://github.com/srawlins/gmp
115
116
  licenses:
116
117
  - Apache License Version 2.0
118
+ metadata: {}
117
119
  post_install_message:
118
120
  rdoc_options: []
119
121
  require_paths:
120
122
  - lib
121
123
  required_ruby_version: !ruby/object:Gem::Requirement
122
- none: false
123
124
  requirements:
124
- - - ! '>='
125
+ - - '>='
125
126
  - !ruby/object:Gem::Version
126
127
  version: 1.8.6
127
128
  required_rubygems_version: !ruby/object:Gem::Requirement
128
- none: false
129
129
  requirements:
130
- - - ! '>='
130
+ - - '>='
131
131
  - !ruby/object:Gem::Version
132
132
  version: '0'
133
133
  requirements:
134
134
  - GMP compiled and working properly.
135
135
  rubyforge_project:
136
- rubygems_version: 1.8.24
136
+ rubygems_version: 2.0.7
137
137
  signing_key:
138
- specification_version: 3
139
- summary: Provides Ruby bindings to the GMP library.
138
+ specification_version: 4
139
+ summary: Provides Ruby bindings to the GMP and MPFR libraries.
140
140
  test_files: []
141
141
  has_rdoc: yard
data/INSTALL DELETED
@@ -1,4 +0,0 @@
1
- To compile:
2
- $ ./extconf.rb
3
- $ make
4
- $ make install