rb-gsl 1.15.3.1 → 1.15.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (222) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHORS +2 -2
  3. data/ChangeLog +8 -0
  4. data/Rakefile +39 -96
  5. data/VERSION +1 -1
  6. data/ext/array.c +2 -2
  7. data/ext/block_source.c +1 -1
  8. data/ext/dirac.c +1 -1
  9. data/ext/eigen.c +13 -13
  10. data/ext/extconf.rb +17 -11
  11. data/ext/function.c +5 -5
  12. data/ext/gsl_narray.c +6 -6
  13. data/ext/histogram.c +7 -6
  14. data/ext/histogram2d.c +4 -4
  15. data/ext/interp.c +1 -1
  16. data/ext/linalg.c +13 -11
  17. data/ext/linalg_complex.c +8 -6
  18. data/ext/math.c +1 -1
  19. data/ext/matrix_complex.c +6 -6
  20. data/ext/matrix_source.c +10 -10
  21. data/ext/monte.c +2 -2
  22. data/ext/multimin.c +4 -4
  23. data/ext/multiroots.c +8 -8
  24. data/ext/nmf.c +6 -6
  25. data/ext/ntuple.c +4 -4
  26. data/ext/odeiv.c +2 -2
  27. data/ext/permutation.c +1 -1
  28. data/ext/poly2.c +6 -6
  29. data/ext/poly_source.c +9 -6
  30. data/ext/sf.c +31 -45
  31. data/ext/signal.c +2 -2
  32. data/ext/vector_complex.c +11 -10
  33. data/ext/vector_double.c +7 -4
  34. data/ext/vector_source.c +29 -26
  35. data/ext/wavelet.c +1 -1
  36. data/include/rb_gsl_common.h +12 -0
  37. data/include/rb_gsl_config.h +10 -1
  38. data/rdoc/blas.rdoc +4 -4
  39. data/rdoc/bspline.rdoc +8 -8
  40. data/rdoc/cheb.rdoc +9 -9
  41. data/rdoc/cholesky_complex.rdoc +1 -1
  42. data/rdoc/combi.rdoc +10 -10
  43. data/rdoc/complex.rdoc +12 -12
  44. data/rdoc/const.rdoc +21 -21
  45. data/rdoc/dht.rdoc +7 -7
  46. data/rdoc/diff.rdoc +7 -7
  47. data/rdoc/ehandling.rdoc +4 -4
  48. data/rdoc/eigen.rdoc +12 -12
  49. data/rdoc/fft.rdoc +27 -27
  50. data/rdoc/fit.rdoc +19 -19
  51. data/rdoc/function.rdoc +1 -1
  52. data/rdoc/graph.rdoc +3 -3
  53. data/rdoc/hist.rdoc +17 -17
  54. data/rdoc/hist2d.rdoc +5 -5
  55. data/rdoc/hist3d.rdoc +4 -4
  56. data/rdoc/index.rdoc +4 -4
  57. data/rdoc/integration.rdoc +17 -17
  58. data/rdoc/interp.rdoc +12 -12
  59. data/rdoc/intro.rdoc +4 -4
  60. data/rdoc/linalg.rdoc +21 -21
  61. data/rdoc/linalg_complex.rdoc +1 -1
  62. data/rdoc/math.rdoc +14 -14
  63. data/rdoc/matrix.rdoc +21 -21
  64. data/rdoc/min.rdoc +10 -10
  65. data/rdoc/monte.rdoc +4 -4
  66. data/rdoc/multimin.rdoc +13 -13
  67. data/rdoc/multiroot.rdoc +13 -13
  68. data/rdoc/narray.rdoc +10 -10
  69. data/rdoc/ndlinear.rdoc +5 -5
  70. data/rdoc/nonlinearfit.rdoc +18 -18
  71. data/rdoc/ntuple.rdoc +6 -6
  72. data/rdoc/odeiv.rdoc +13 -13
  73. data/rdoc/perm.rdoc +12 -12
  74. data/rdoc/poly.rdoc +18 -18
  75. data/rdoc/qrng.rdoc +10 -10
  76. data/rdoc/randist.rdoc +11 -11
  77. data/rdoc/ref.rdoc +50 -50
  78. data/rdoc/rng.rdoc +10 -10
  79. data/rdoc/rngextra.rdoc +5 -5
  80. data/rdoc/roots.rdoc +13 -13
  81. data/rdoc/sf.rdoc +36 -36
  82. data/rdoc/siman.rdoc +4 -4
  83. data/rdoc/sort.rdoc +7 -7
  84. data/rdoc/start.rdoc +1 -1
  85. data/rdoc/stats.rdoc +14 -14
  86. data/rdoc/sum.rdoc +5 -5
  87. data/rdoc/tensor.rdoc +4 -4
  88. data/rdoc/tut.rdoc +1 -1
  89. data/rdoc/use.rdoc +5 -5
  90. data/rdoc/vector.rdoc +29 -29
  91. data/rdoc/vector_complex.rdoc +6 -6
  92. data/rdoc/wavelet.rdoc +9 -9
  93. data/test/gsl/blas_test.rb +79 -0
  94. data/test/gsl/bspline_test.rb +63 -0
  95. data/test/gsl/cdf_test.rb +1512 -0
  96. data/test/gsl/cheb_test.rb +80 -0
  97. data/test/gsl/combination_test.rb +100 -0
  98. data/test/gsl/complex_test.rb +20 -0
  99. data/test/gsl/const_test.rb +29 -0
  100. data/test/gsl/deriv_test.rb +62 -0
  101. data/test/gsl/dht_test.rb +79 -0
  102. data/test/gsl/diff_test.rb +53 -0
  103. data/test/gsl/eigen_test.rb +563 -0
  104. data/test/gsl/err_test.rb +23 -0
  105. data/test/gsl/fit_test.rb +101 -0
  106. data/test/gsl/histo_test.rb +14 -0
  107. data/test/gsl/integration_test.rb +274 -0
  108. data/test/gsl/interp_test.rb +27 -0
  109. data/test/gsl/linalg_test.rb +463 -0
  110. data/test/gsl/matrix_nmf_test.rb +37 -0
  111. data/test/gsl/matrix_test.rb +77 -0
  112. data/test/gsl/min_test.rb +89 -0
  113. data/test/gsl/monte_test.rb +77 -0
  114. data/test/gsl/multifit_test.rb +753 -0
  115. data/test/gsl/multimin_test.rb +157 -0
  116. data/test/gsl/multiroot_test.rb +135 -0
  117. data/test/gsl/multiset_test.rb +52 -0
  118. data/test/gsl/odeiv_test.rb +275 -0
  119. data/test/gsl/poly_test.rb +338 -0
  120. data/test/gsl/qrng_test.rb +94 -0
  121. data/test/gsl/quartic_test.rb +28 -0
  122. data/test/gsl/randist_test.rb +122 -0
  123. data/test/gsl/rng_test.rb +303 -0
  124. data/test/gsl/roots_test.rb +78 -0
  125. data/test/gsl/sf_test.rb +2079 -0
  126. data/test/gsl/stats_test.rb +122 -0
  127. data/test/gsl/sum_test.rb +69 -0
  128. data/test/gsl/tensor_test.rb +396 -0
  129. data/test/gsl/vector_test.rb +223 -0
  130. data/test/gsl/wavelet_test.rb +130 -0
  131. data/test/gsl_test.rb +321 -0
  132. data/test/test_helper.rb +42 -0
  133. metadata +107 -150
  134. data/setup.rb +0 -1585
  135. data/tests/blas/amax.rb +0 -14
  136. data/tests/blas/asum.rb +0 -16
  137. data/tests/blas/axpy.rb +0 -25
  138. data/tests/blas/copy.rb +0 -23
  139. data/tests/blas/dot.rb +0 -23
  140. data/tests/bspline.rb +0 -53
  141. data/tests/cdf.rb +0 -1388
  142. data/tests/cheb.rb +0 -112
  143. data/tests/combination.rb +0 -123
  144. data/tests/complex.rb +0 -17
  145. data/tests/const.rb +0 -24
  146. data/tests/deriv.rb +0 -85
  147. data/tests/dht/dht1.rb +0 -17
  148. data/tests/dht/dht2.rb +0 -23
  149. data/tests/dht/dht3.rb +0 -23
  150. data/tests/dht/dht4.rb +0 -23
  151. data/tests/diff.rb +0 -78
  152. data/tests/eigen/eigen.rb +0 -220
  153. data/tests/eigen/gen.rb +0 -105
  154. data/tests/eigen/genherm.rb +0 -66
  155. data/tests/eigen/gensymm.rb +0 -68
  156. data/tests/eigen/nonsymm.rb +0 -53
  157. data/tests/eigen/nonsymmv.rb +0 -53
  158. data/tests/eigen/symm-herm.rb +0 -74
  159. data/tests/err.rb +0 -58
  160. data/tests/fit.rb +0 -124
  161. data/tests/gsl_test.rb +0 -118
  162. data/tests/gsl_test2.rb +0 -110
  163. data/tests/histo.rb +0 -12
  164. data/tests/integration/integration1.rb +0 -72
  165. data/tests/integration/integration2.rb +0 -71
  166. data/tests/integration/integration3.rb +0 -71
  167. data/tests/integration/integration4.rb +0 -71
  168. data/tests/interp.rb +0 -45
  169. data/tests/linalg/HH.rb +0 -64
  170. data/tests/linalg/LU.rb +0 -47
  171. data/tests/linalg/QR.rb +0 -77
  172. data/tests/linalg/SV.rb +0 -24
  173. data/tests/linalg/TDN.rb +0 -116
  174. data/tests/linalg/TDS.rb +0 -122
  175. data/tests/linalg/bidiag.rb +0 -73
  176. data/tests/linalg/cholesky.rb +0 -20
  177. data/tests/linalg/linalg.rb +0 -158
  178. data/tests/matrix/matrix_complex_test.rb +0 -36
  179. data/tests/matrix/matrix_nmf_test.rb +0 -39
  180. data/tests/matrix/matrix_test.rb +0 -48
  181. data/tests/min.rb +0 -99
  182. data/tests/monte/miser.rb +0 -31
  183. data/tests/monte/vegas.rb +0 -45
  184. data/tests/multifit/test_2dgauss.rb +0 -112
  185. data/tests/multifit/test_brown.rb +0 -90
  186. data/tests/multifit/test_enso.rb +0 -246
  187. data/tests/multifit/test_filip.rb +0 -155
  188. data/tests/multifit/test_gauss.rb +0 -97
  189. data/tests/multifit/test_longley.rb +0 -110
  190. data/tests/multifit/test_multifit.rb +0 -52
  191. data/tests/multimin.rb +0 -139
  192. data/tests/multiroot.rb +0 -131
  193. data/tests/multiset.rb +0 -52
  194. data/tests/narray/blas_dnrm2.rb +0 -20
  195. data/tests/odeiv.rb +0 -353
  196. data/tests/poly/poly.rb +0 -290
  197. data/tests/poly/special.rb +0 -65
  198. data/tests/qrng.rb +0 -131
  199. data/tests/quartic.rb +0 -29
  200. data/tests/randist.rb +0 -134
  201. data/tests/rng.rb +0 -305
  202. data/tests/roots.rb +0 -76
  203. data/tests/run-test.sh +0 -17
  204. data/tests/sf/gsl_test_sf.rb +0 -249
  205. data/tests/sf/test_airy.rb +0 -83
  206. data/tests/sf/test_bessel.rb +0 -306
  207. data/tests/sf/test_coulomb.rb +0 -17
  208. data/tests/sf/test_dilog.rb +0 -25
  209. data/tests/sf/test_gamma.rb +0 -209
  210. data/tests/sf/test_hyperg.rb +0 -356
  211. data/tests/sf/test_legendre.rb +0 -227
  212. data/tests/sf/test_mathieu.rb +0 -59
  213. data/tests/sf/test_mode.rb +0 -19
  214. data/tests/sf/test_sf.rb +0 -839
  215. data/tests/stats.rb +0 -174
  216. data/tests/stats_mt.rb +0 -16
  217. data/tests/sum.rb +0 -98
  218. data/tests/sys.rb +0 -323
  219. data/tests/tensor.rb +0 -419
  220. data/tests/vector/vector_complex_test.rb +0 -101
  221. data/tests/vector/vector_test.rb +0 -141
  222. data/tests/wavelet.rb +0 -142
@@ -1,141 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require("gsl")
4
- require("test/unit")
5
-
6
- class VectorTest < Test::Unit::TestCase
7
- def test_vector_get
8
- v = GSL::Vector::Int.indgen(5)
9
- assert_equal(GSL::Vector::Int[3, 1, 2], v.get([3, 1, 2]))
10
- end
11
-
12
- def test_vector_addsub
13
- a = GSL::Vector::Int[2, 5, 4]
14
- b = GSL::Vector::Int[10, 30, 20]
15
- c = GSL::Vector::Int[12, 35, 24]
16
- d = GSL::Vector::Int[8, 25, 16]
17
- assert_equal(c, a+b)
18
- assert_equal(d, b-a)
19
- end
20
-
21
- def test_vector_collect
22
- v = GSL::Vector::Int.indgen(5)
23
- u = GSL::Vector::Int[0, 1, 4, 9, 16]
24
- w = v.collect { |val| val*val }
25
- assert_equal(u, w)
26
- end
27
-
28
- def test_vector_ispos_neg
29
- v = GSL::Vector::Int.indgen(5)
30
- assert_equal(v.ispos, 0)
31
- assert_equal(v.ispos?, false)
32
- assert_equal(v.isneg, 0)
33
- assert_equal(v.isneg?, false)
34
-
35
- v += 1
36
- assert_equal(v.ispos, 1)
37
- assert_equal(v.ispos?, true)
38
- assert_equal(v.isneg, 0)
39
- assert_equal(v.isneg?, false)
40
-
41
- v -= 100
42
- assert_equal(v.ispos, 0)
43
- assert_equal(v.ispos?, false)
44
- assert_equal(v.isneg, 1)
45
- assert_equal(v.isneg?, true)
46
- end
47
-
48
- def test_vector_isnonneg
49
- v = GSL::Vector::Int.indgen(5)
50
- assert_equal(v.isnonneg, 1)
51
- assert_equal(v.isnonneg?, true)
52
- assert_equal(v.isneg, 0)
53
- assert_equal(v.isneg?, false)
54
-
55
- v -= 100
56
- assert_equal(v.isnonneg, 0)
57
- assert_equal(v.isnonneg?, false)
58
- assert_equal(v.isneg, 1)
59
- assert_equal(v.isneg?, true)
60
-
61
- v += 200
62
- assert_equal(v.isnonneg, 1)
63
- assert_equal(v.isnonneg?, true)
64
- assert_equal(v.ispos, 1)
65
- assert_equal(v.ispos?, true)
66
- end
67
-
68
- def test_vector_subvector
69
- v = GSL::Vector::Int.indgen(12)
70
-
71
- # args = []
72
- vv = v.subvector
73
- assert_not_equal(v.object_id, vv.object_id)
74
- assert_equal(v.subvector, v)
75
-
76
- # args = [Fixnum]
77
- vv = v.subvector(3)
78
- assert_equal([0, 1, 2], vv.to_a)
79
- assert_nothing_raised("subvector(-1)") {v.subvector(-1)}
80
- vv = v.subvector(-1)
81
- assert_equal([11], vv.to_a)
82
- vv = v.subvector(-2)
83
- assert_equal([10, 11], vv.to_a)
84
- assert_raise(RangeError) {v.subvector(-13)}
85
-
86
- # args = [Fixnum, Fixnum]
87
- vv = v.subvector(2, 3)
88
- assert_equal([2, 3, 4], vv.to_a)
89
-
90
- vv = v.subvector(-4, 3)
91
- assert_equal([8, 9, 10], vv.to_a)
92
- assert_nothing_raised("subvector(-4, -3)") {v.subvector(-4, -3)}
93
- vv = v.subvector(-4, -3)
94
- assert_equal([8, 7, 6], vv.to_a)
95
- assert_raise(GSL::ERROR::EINVAL) {v.subvector(-11, -3)}
96
-
97
- # args = [Fixnum, Fixnum, Fixnum]
98
- vv = v.subvector(1, 3, 4)
99
- assert_equal([1, 4, 7, 10], vv.to_a)
100
-
101
- # args = [Range]
102
- tests = {
103
- # ( range ) => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
104
- ( 1.. 3) => [ 1, 2, 3 ],
105
- ( 1... 3) => [ 1, 2 ],
106
- ( 3.. 1) => [ 3, 2, 1 ],
107
- ( 3... 1) => [ 3, 2 ],
108
- (-7.. 9) => [ 5, 6, 7, 8, 9 ],
109
- (-7... 9) => [ 5, 6, 7, 8 ],
110
- ( 4.. -3) => [ 4, 5, 6, 7, 8, 9 ],
111
- ( 4...-3) => [ 4, 5, 6, 7, 8 ],
112
- ( 2.. -2) => [ 2, 3, 4, 5, 6, 7, 8, 9, 10 ],
113
- ( 2...-2) => [ 2, 3, 4, 5, 6, 7, 8, 9 ],
114
- (-2.. 2) => [ 10, 9, 8, 7, 6, 5, 4, 3, 2 ],
115
- (-2... 2) => [ 10, 9, 8, 7, 6, 5, 4, 3 ],
116
- (-3.. -1) => [ 9, 10, 11],
117
- (-3...-1) => [ 9, 10 ],
118
- (-1.. -3) => [ 11, 10, 9],
119
- (-1...-3) => [ 11, 10 ],
120
- # Add more test cases here...
121
- }
122
- tests.each do |r, x|
123
- assert_nothing_raised("subvector(#{r})") {v.subvector(r)}
124
- assert_equal(x, v.subvector(r).to_a, "subvector(#{r})")
125
- end
126
-
127
- # args = [Range, Fixnum]
128
- tests = {
129
- # [( range ), s] => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
130
- [( 1.. 6), 2] => [ 1, 3, 5 ],
131
- [( 1... 6), 2] => [ 1, 3, 5 ],
132
- [( 0.. 6), 3] => [0, 3, 6 ],
133
- [( 0... 6), 3] => [0, 3 ],
134
- # Add more test cases here...
135
- }
136
- tests.each do |(r,s), x|
137
- assert_nothing_raised("subvector(#{r},#{s})") {v.subvector(r)}
138
- assert_equal(x, v.subvector(r,s).to_a, "subvector(#{r},#{s})")
139
- end
140
- end
141
- end
@@ -1,142 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require("gsl")
3
- require("./gsl_test2.rb")
4
- include GSL::Test
5
- include Math
6
-
7
- N_BS = 11
8
-
9
- def urand()
10
- x = 1
11
- x = (1103515245 * x + 12345) & 0x7fffffff
12
- return x / 2147483648.0
13
- end
14
-
15
- def test_1d(n, stride, type, member)
16
- nn = n*stride
17
- data = GSL::Vector.alloc(nn)
18
- for i in 0...nn
19
- data[i] = 12345.0 + i
20
- end
21
- v1 = data.view_with_stride(0, stride, n)
22
- for i in 0...n
23
- v1[i] = urand()
24
- end
25
-
26
- v2 = GSL::Vector.alloc(n)
27
- GSL::Vector.memcpy(v2, v1)
28
-
29
- vdelta = GSL::Vector.alloc(n)
30
-
31
- work = GSL::Wavelet::Workspace.alloc(n)
32
- w = GSL::Wavelet.alloc(type, member)
33
- w.transform_forward(v2, work)
34
- w.transform_inverse(v2, work)
35
- for i in 0...n
36
- x1 = v1[i]
37
- x2 = v2[i]
38
- vdelta[i] = (x1 - x2).abs
39
- end
40
- i = vdelta.max_index
41
- x1 = v1[i]
42
- x2 = v2[i]
43
- GSL::Test::test((x2 - x1).abs > n*1e-15 ? 1 : 0, "#{w.name}(#{member}), n = #{n}, stride = #{stride}, maxerr = #{(x2 - x1).abs}")
44
-
45
- if stride > 1
46
- status = 0
47
- for i in 0...nn
48
- next if i%stride == 0
49
- status |= (data[i] != 12345.0 + i) ? 1 : 0
50
- end
51
- GSL::Test::test(status, "#{w.name}(#{member}) other data untouched, n = #{n}, stride = #{stride}")
52
- end
53
- end
54
-
55
- def test_2d(n, tda, t, member, type)
56
- nn = n*tda
57
- data = GSL::Vector.alloc(nn)
58
- typename = (type == 1) ? "standard" : "nonstd"
59
- for i in 0...nn
60
- data[i] = 12345.0 + i
61
- end
62
- m1 = data.matrix_view_with_tda(n, n, tda)
63
- for i in 0...n
64
- for j in 0...n
65
- m1.set(i, j, urand())
66
- end
67
- end
68
- m2 = GSL::Matrix.alloc(n, n)
69
- GSL::Matrix.memcpy(m2, m1)
70
- mdelta = GSL::Matrix.alloc(n, n)
71
- work = GSL::Wavelet::Workspace.alloc(n)
72
- w = GSL::Wavelet.alloc(t, member)
73
- case type
74
- when 1
75
- GSL::Wavelet2d::transform_matrix_forward(w, m2, work)
76
- GSL::Wavelet2d::transform_matrix_inverse(w, m2, work)
77
- when 2
78
- GSL::Wavelet2d::nstransform_matrix_forward(w, m2, work)
79
- GSL::Wavelet2d::nstransform_matrix_inverse(w, m2, work)
80
- end
81
-
82
- for i in 0...n
83
- for j in 0...n
84
- x1 = m1[i,j]
85
- x2 = m2[i,j]
86
- mdelta.set(i, j, (x1 - x2).abs)
87
- end
88
- end
89
- i, j = mdelta.max_index
90
- x1 = m1[i,j]
91
- x2 = m1[i,j]
92
- GSL::Test::test((x2 - x1).abs > n*1e-15 ? 1 : 0, "#{w.name}(#{member})-2d #{typename}, n = #{n}, tda = #{tda}, maxerr = #{(x2 - x1).abs}")
93
- if tda > n
94
- status = 0
95
- for i in 0...n
96
- for j in n...tda
97
- status |= (data[i*tda+j] != (12345.0 + (i*tda+j))) ? 1 : 0
98
- end
99
- end
100
- GSL::Test::test(status, "#{w.name}(#{member})-2d #{typename} other data untouched, n = #{n}, tda = #{tda}")
101
- end
102
- end
103
-
104
- Member = [309, 307, 305, 303, 301, 208, 206, 204, 202, 105, 103]
105
- S = 1
106
- NS = 2
107
-
108
- n = 1
109
- while n <= 16384
110
- for stride in 1..1
111
- for i in 0...N_BS
112
- test_1d(n, stride, "bspline", Member[i]);
113
- test_1d(n, stride, "bspline_centered", Member[i]);
114
- end
115
- i = 4
116
- while i <= 20
117
- test_1d(n, stride, "daubechies", i)
118
- test_1d(n, stride, "daubechies_centered", i)
119
- i += 2
120
- end
121
- test_1d(n, stride, "haar", 2)
122
- test_1d(n, stride, "haar_centered", 2)
123
- end
124
- n *= 2
125
- end
126
-
127
- n = 1
128
- while n <= 64
129
- for tda in n..n
130
- for i in 0...N_BS
131
- test_2d(n, tda, "bspline", Member[i], S);
132
- test_2d(n, tda, "bspline_centered", Member[i], S);
133
-
134
- test_2d(n, tda, "bspline", Member[i], NS);
135
- test_2d(n, tda, "bspline_centered", Member[i], NS);
136
- end
137
- end
138
- n *= 2
139
- end
140
-
141
-
142
-