rb-gsl 1.15.3.1 → 1.15.3.2

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.
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,68 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require("gsl")
3
- require("../gsl_test.rb")
4
- require("eigen.rb")
5
- include GSL::Test
6
-
7
- def test_eigen_gensymm_results(a, b, eval, evec, count, desc, desc2)
8
- n = a.size1
9
- # check A v = lambda B v
10
-
11
- for i in 0...n do
12
- ei = eval[i]
13
- vi = evec.column(i)
14
- norm = vi.dnrm2
15
- # check that eigenvector is normalized
16
- GSL::Test::test_rel(norm, 1.0, n * GSL::DBL_EPSILON,
17
- "gensymm(N=#{n},cnt=#{count}), #{desc}, normalized(#{i}), #{desc2}")
18
-
19
- y = a*vi
20
- x = b*vi
21
- x *= ei
22
-
23
- for j in 0...n do
24
- GSL::Test::test_rel(y[j], x[j], 1e9 * GSL::DBL_EPSILON,
25
- "gensymm(N=#{n},cnt=#{count}), #{desc}, eigenvalue(#{i},#{j}), #{desc2}")
26
- end
27
- end
28
- end
29
-
30
- def test_eigen_gensymm()
31
- n_max = 20
32
- rng = GSL::Rng.alloc()
33
- for n in 1..n_max do
34
- w = GSL::Eigen::Gensymm::Workspace.alloc(n)
35
- wv = GSL::Eigen::Gensymmv::Workspace.alloc(n)
36
- for i in 0...5 do
37
- a = create_random_symm_matrix(n, n, rng, -10, 10)
38
- b = create_random_posdef_matrix(n, n, rng)
39
-
40
- aa = a.clone
41
- bb = b.clone
42
- evalv, evec = GSL::Eigen::gensymmv(aa, bb, wv)
43
- test_eigen_gensymm_results(a, b, evalv, evec, i, "random", "unsorted")
44
-
45
- aa = a.clone
46
- bb = b.clone
47
- eval = GSL::Eigen::gensymm(aa, bb, w)
48
-
49
- x = eval.sort
50
- y = evalv.sort
51
-
52
- test_eigenvalues_real(y, x, "gensymm, random", "unsorted");
53
-
54
- GSL::Eigen::Gensymmv::sort(evalv, evec, GSL::EIGEN_SORT_VAL_ASC);
55
- test_eigen_gensymm_results(a, b, evalv, evec, i, "random", "val/asc");
56
-
57
- GSL::Eigen::Gensymmv::sort(evalv, evec, GSL::EIGEN_SORT_VAL_DESC);
58
- test_eigen_gensymm_results(a, b, evalv, evec, i, "random", "val/desc");
59
-
60
- GSL::Eigen::Gensymmv::sort(evalv, evec, GSL::EIGEN_SORT_ABS_ASC);
61
- test_eigen_gensymm_results(a, b, evalv, evec, i, "random", "abs/asc");
62
- GSL::Eigen::Gensymmv::sort(evalv, evec, GSL::EIGEN_SORT_ABS_DESC);
63
- test_eigen_gensymm_results(a, b, evalv, evec, i, "random", "abs/desc");
64
- end
65
- end
66
- end
67
-
68
- test_eigen_gensymm()
@@ -1,53 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require("gsl")
3
- require("../gsl_test.rb")
4
- include GSL::Test
5
-
6
- m = GSL::Matrix[[1, 2], [3, 2]]
7
- p m
8
- eval = m.eigen_nonsymm.real.sort
9
- GSL::Test::test_abs(eval[0], -1, 0, "GSL::Matrix::eigen_nonsymm")
10
- GSL::Test::test_abs(eval[1], 4, 0, "GSL::Matrix::eigen_nonsymm")
11
-
12
- m = GSL::Matrix[[1, 4, 2, 3], 2, 2]
13
- p m
14
- eval = m.eigen_nonsymm.real.sort
15
- GSL::Test::test_abs(eval[0], -1, 0, "GSL::Matrix::eigen_nonsymm")
16
- GSL::Test::test_abs(eval[1], 5, 0, "GSL::Matrix::eigen_nonsymm")
17
-
18
- m = GSL::Matrix[[2, 4], [3, 1]]
19
- p m
20
- eval = m.eigen_nonsymm.real.sort
21
- GSL::Test::test_abs(eval[0], -2, 0, "GSL::Matrix::eigen_nonsymm")
22
- GSL::Test::test_abs(eval[1], 5, 0, "GSL::Matrix::eigen_nonsymm")
23
-
24
- m = GSL::Matrix[[5, 6, 3, 2], 2, 2]
25
- p m
26
- eval = m.eigen_nonsymm.real.sort
27
- GSL::Test::test_abs(eval[0], -1, 0, "GSL::Matrix::eigen_nonsymm")
28
- GSL::Test::test_abs(eval[1], 8, 0, "GSL::Matrix::eigen_nonsymm")
29
-
30
- m = GSL::Matrix[[4, 1, -1, 2, 5, -2, 1, 1, 2], 3, 3]
31
- p m
32
- eval = m.eigen_nonsymm.real.sort
33
- GSL::Test::test_abs(eval[0], 3, 1e-10, "GSL::Matrix::eigen_nonsymm")
34
- GSL::Test::test_abs(eval[1], 3, 0, "GSL::Matrix::eigen_nonsymm")
35
- # 2008/Oct/17 YT
36
- # This test fails in Darwin9.5.0-gcc4.0.1
37
- # expected: 5
38
- # obtained: 4.99999999999999911
39
- GSL::Test::test_abs(eval[2], 5, 0, "GSL::Matrix::eigen_nonsymm")
40
-
41
- m = GSL::Matrix[[-3, 1, -1], [-7, 5, -1], [-6, 6, -2]]
42
- p m
43
- eval = m.eigen_nonsymm.real.sort
44
- GSL::Test::test_abs(eval[0], -2, 1e-6, "GSL::Matrix::eigen_nonsymm")
45
- GSL::Test::test_abs(eval[1], -2, 1e-6, "GSL::Matrix::eigen_nonsymm")
46
- GSL::Test::test_abs(eval[2], 4, 1e-10, "GSL::Matrix::eigen_nonsymm")
47
-
48
- m = GSL::Matrix[[11, -8, 4, -8, -1, -2, 4, -2, -4], 3, 3]
49
- p m
50
- eval = m.eigen_nonsymm.real.sort
51
- GSL::Test::test_abs(eval[0], -5, 1e-10, "GSL::Matrix::eigen_nonsymm")
52
- GSL::Test::test_abs(eval[1], -5, 1e-10, "GSL::Matrix::eigen_nonsymm")
53
- GSL::Test::test_abs(eval[2], 16, 1e-10, "GSL::Matrix::eigen_nonsymm")
@@ -1,53 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require("gsl")
3
- require("../gsl_test.rb")
4
- include GSL::Test
5
-
6
- def test_nonsymmv2(m, eps)
7
- p m
8
- m2 = m.clone
9
- eval, evec = m2.eigen_nonsymmv
10
- evalre = eval.real
11
- evecre = evec.real
12
- a = evecre.inv*m*evecre
13
- GSL::Test::test_abs(a[0,0], evalre[0], eps, "GSL::Matrix::eigen_nonsymmv")
14
- GSL::Test::test_abs(a[1,1], evalre[1], eps, "GSL::Matrix::eigen_nonsymmv")
15
- GSL::Test::test_abs(a[0,1], 0, eps, "GSL::Matrix::eigen_nonsymmv")
16
- GSL::Test::test_abs(a[1,0], 0, eps, "GSL::Matrix::eigen_nonsymmv")
17
- end
18
-
19
- def test_nonsymmv3(m, eps)
20
- p m
21
- m2 = m.clone
22
- eval, evec = m2.eigen_nonsymmv
23
- evalre = eval.real
24
- evecre = evec.real
25
- a = evecre.inv*m*evecre
26
- GSL::Test::test_abs(a[0,0], evalre[0], eps, "GSL::Matrix::eigen_nonsymmv")
27
- GSL::Test::test_abs(a[1,1], evalre[1], eps, "GSL::Matrix::eigen_nonsymmv")
28
- GSL::Test::test_abs(a[2,2], evalre[2], eps, "GSL::Matrix::eigen_nonsymmv")
29
- GSL::Test::test_abs(a[0,1], 0, eps, "GSL::Matrix::eigen_nonsymmv")
30
- GSL::Test::test_abs(a[0,2], 0, eps, "GSL::Matrix::eigen_nonsymmv")
31
- GSL::Test::test_abs(a[1,0], 0, eps, "GSL::Matrix::eigen_nonsymmv")
32
- GSL::Test::test_abs(a[1,2], 0, eps, "GSL::Matrix::eigen_nonsymmv")
33
- GSL::Test::test_abs(a[2,0], 0, eps, "GSL::Matrix::eigen_nonsymmv")
34
- GSL::Test::test_abs(a[2,1], 0, eps, "GSL::Matrix::eigen_nonsymmv")
35
- end
36
-
37
- m = GSL::Matrix[[1, 2], [3, 2]]
38
- test_nonsymmv2(m, 1e-10)
39
-
40
- m = GSL::Matrix[[4, 2, 3, -1], 2, 2]
41
- test_nonsymmv2(m, 1e-10)
42
-
43
- m = GSL::Matrix[[2, 2, -5], [3, 7, -15], [1, 2, -4]]
44
- test_nonsymmv3(m, 1e-10)
45
-
46
- m = GSL::Matrix[[4, 1, -1], [2, 5, -2], [1, 1, 2]]
47
- test_nonsymmv3(m, 1e-10)
48
-
49
- m = GSL::Matrix[[-3, 1, -1], [-7, 5, -1], [-6, 6, -2]]
50
- test_nonsymmv3(m, 1e-6)
51
-
52
- m = GSL::Matrix[[11, -8, 4], [-8, -1, -2], [4, -2, -4]]
53
- test_nonsymmv3(m, 1e-10)
@@ -1,74 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Ruby/GSL implementation of GSL "eigen/test.c"
3
- require("gsl")
4
- require("../gsl_test.rb")
5
- require("eigen.rb")
6
- include GSL::Test
7
-
8
- def test_eigen_symm(desc, m)
9
- n = m.size1
10
- a = GSL::Matrix.alloc(n, n)
11
-
12
- w1 = GSL::Eigen::Symm::Workspace.alloc(n)
13
- w2 = GSL::Eigen::Symmv::Workspace.alloc(n)
14
-
15
- GSL::Matrix.memcpy(a, m)
16
- eval, evec = a.eigen_symmv(w2)
17
- test_eigen_results(n, m, eval, evec, desc, "unsorted")
18
-
19
- GSL::Matrix.memcpy(a, m)
20
- eval2 = a.eigen_symm(w1)
21
- test_eigenvalues(n, eval, eval2, desc, "unsorted")
22
-
23
- GSL::Eigen::Symmv::sort(eval, evec, GSL::Eigen::SORT_VAL_ASC)
24
- test_eigen_results(n, m, eval, evec, desc, "val/asc")
25
- GSL::Eigen::Symmv::sort(eval, evec, GSL::Eigen::SORT_VAL_DESC)
26
- test_eigen_results(n, m, eval, evec, desc, "val/desc")
27
- GSL::Eigen::Symmv::sort(eval, evec, GSL::Eigen::SORT_ABS_ASC)
28
- test_eigen_results(n, m, eval, evec, desc, "abs/asc")
29
- GSL::Eigen::Symmv::sort(eval, evec, GSL::Eigen::SORT_ABS_DESC)
30
- test_eigen_results(n, m, eval, evec, desc, "abs/desc")
31
- end
32
-
33
- def test_eigen_herm(desc, m)
34
- n = m.size1
35
- a = GSL::Matrix::Complex.alloc(n, n)
36
-
37
- w1 = GSL::Eigen::Herm::Workspace.alloc(n)
38
- w2 = GSL::Eigen::Hermv::Workspace.alloc(n)
39
-
40
- GSL::Matrix::Complex.memcpy(a, m)
41
- eval, evec = a.eigen_hermv(w2)
42
- test_eigen_complex_results(n, m, eval, evec, desc, "unsorted")
43
-
44
- GSL::Matrix::Complex.memcpy(a, m)
45
- eval2 = a.eigen_herm(w1)
46
- test_eigenvalues(n, eval, eval2, desc, "unsorted")
47
-
48
- GSL::Eigen::Hermv::sort(eval, evec, GSL::Eigen::SORT_VAL_ASC)
49
- test_eigen_complex_results(n, m, eval, evec, desc, "val/asc")
50
- GSL::Eigen::Hermv::sort(eval, evec, GSL::Eigen::SORT_VAL_DESC)
51
- test_eigen_complex_results(n, m, eval, evec, desc, "val/desc")
52
- GSL::Eigen::Hermv::sort(eval, evec, GSL::Eigen::SORT_ABS_ASC)
53
- test_eigen_complex_results(n, m, eval, evec, desc, "abs/asc")
54
- GSL::Eigen::Hermv::sort(eval, evec, GSL::Eigen::SORT_ABS_DESC)
55
- test_eigen_complex_results(n, m, eval, evec, desc, "abs/desc")
56
- end
57
-
58
-
59
-
60
- r = GSL::Matrix.alloc([0, 0, -1, 0], [0, 1, 0, 1], [-1, 0, 0, 0], [0, 1, 0, 0])
61
- test_eigen_symm("symm(4)", r)
62
-
63
- c = r.to_complex
64
- test_eigen_herm("herm(4)", c)
65
-
66
- r = GSL::Matrix.alloc(4, 4)
67
- r.set_diagonal([1, 2, 3, 4])
68
- test_eigen_symm("symm(4) diag", r)
69
-
70
- c = r.to_complex
71
- test_eigen_herm("herm(4) diag", c)
72
-
73
-
74
-
@@ -1,58 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Ruby/GSL implementation of GSL "sum/test.c"
3
- require("gsl")
4
- require("./gsl_test2.rb")
5
- include GSL::Test
6
-
7
- MAX_ERRS = 64
8
-
9
- class ErrCode
10
- attr_accessor :number
11
- attr_accessor :name
12
- def initialize(number, name)
13
- @number = number
14
- @name = name
15
- end
16
- end
17
-
18
- errors = ["GSL::SUCCESS", "GSL::FAILURE", "GSL::CONTINUE", "GSL::EDOM",
19
- "GSL::ERANGE", "GSL::EFAULT", "GSL::EINVAL", "GSL::EFAILED",
20
- "GSL::EFACTOR", "GSL::ESANITY", "GSL::ENOMEM", "GSL::EBADFUNC",
21
- "GSL::ERUNAWAY", "GSL::EMAXITER", "GSL::EZERODIV", "GSL::EBADTOL",
22
- "GSL::ETOL", "GSL::EUNDRFLW", "GSL::EOVRFLW", "GSL::ELOSS",
23
- "GSL::EROUND", "GSL::EBADLEN", "GSL::ENOTSQR", "GSL::ESING",
24
- "GSL::EDIVERGE", "GSL::EUNSUP", "GSL::EUNIMPL", "GSL::ECACHE",
25
- "GSL::ETABLE", "GSL::ENOPROG", "GSL::ENOPROGJ", "GSL::ETOLF",
26
- "GSL::ETOLX", "GSL::ETOLG", "GSL::EOF"]
27
-
28
- Errors = Array.new(errors.size)
29
-
30
- errors.each_index do |i|
31
- Errors[i] = ErrCode.new(eval("#{errors[i]}"), errors[i])
32
- end
33
-
34
- for i in 0...Errors.size
35
- printf("%s = %d\n", Errors[i].name, Errors[i].number)
36
- end
37
-
38
- for i in 0...Errors.size
39
- status = 0
40
- for j in 0...Errors.size
41
- if j != i
42
- status |= (Errors[i].number == Errors[j].number) ? 1 : 0
43
- end
44
- GSL::Test::test(status, "#{Errors[i].name} is distinct from other error values")
45
- end
46
- end
47
-
48
- for i in 0...Errors.size
49
- status = 0
50
- e1 = Errors[i].number
51
- for j in 0...Errors.size
52
- if j != i
53
- e2 = Errors[j].number
54
- status |= (GSL::strerror(e1) == GSL::strerror(e2)) ? 1 : 0
55
- end
56
- end
57
- GSL::Test::test(status, "#{Errors[i].name} has a distinct error message")
58
- end
@@ -1,124 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Ruby/GSL implementation of GSL "fit/test.c"
3
- require("gsl")
4
- require("./gsl_test.rb")
5
- include GSL::Test
6
- include Math
7
-
8
- GSL::IEEE::env_setup()
9
-
10
- norris_n = 36
11
- norris_x = GSL::Vector.alloc(0.2, 337.4, 118.2, 884.6, 10.1, 226.5, 666.3, 996.3,
12
- 448.6, 777.0, 558.2, 0.4, 0.6, 775.5, 666.9, 338.0,
13
- 447.5, 11.6, 556.0, 228.1, 995.8, 887.6, 120.2, 0.3,
14
- 0.3, 556.8, 339.1, 887.2, 999.0, 779.0, 11.1, 118.3,
15
- 229.2, 669.1, 448.9, 0.5)
16
- norris_y = GSL::Vector.alloc(0.1, 338.8, 118.1, 888.0, 9.2, 228.1, 668.5, 998.5,
17
- 449.1, 778.9, 559.2, 0.3, 0.1, 778.1, 668.8, 339.3,
18
- 448.9, 10.8, 557.7, 228.3, 998.0, 888.8, 119.6, 0.3,
19
- 0.6, 557.6, 339.3, 888.0, 998.5, 778.9, 10.2, 117.6,
20
- 228.9, 668.4, 449.2, 0.2)
21
-
22
- noint1_n = 11
23
- noint1_x = GSL::Vector.alloc(60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70)
24
- noint1_y = GSL::Vector.alloc(130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140)
25
-
26
- noint2_n = 3
27
- noint2_x = GSL::Vector.alloc(4, 5, 6)
28
- noint2_y = GSL::Vector.alloc(3, 4, 4)
29
-
30
- x = GSL::Vector.alloc(1000)
31
- y = GSL::Vector.alloc(1000)
32
- w = GSL::Vector.alloc(1000)
33
-
34
- xstride = 2
35
- wstride = 3
36
- ystride = 5
37
-
38
- x.stride = xstride
39
- w.stride = wstride
40
- y.stride = ystride
41
-
42
- for i in 0...norris_n
43
- x.set(i, norris_x[i])
44
- w.set(i, 1.0)
45
- y.set(i, norris_y[i])
46
- end
47
-
48
- expected_c0 = -0.262323073774029
49
- expected_c1 = 1.00211681802045
50
- expected_cov00 = pow(0.232818234301152, 2.0)
51
- expected_cov01 = -7.74327536339570e-05
52
- expected_cov11 = pow(0.429796848199937E-03, 2.0)
53
- expected_sumsq = 26.6173985294224
54
-
55
- c0, c1, cov00, cov01, cov11, sumsq = GSL::Fit.linear(x, y, norris_n)
56
- GSL::Test::test_rel(c0, expected_c0, 1e-10, "norris gsl_fit_linear c0")
57
- GSL::Test::test_rel(c1, expected_c1, 1e-10, "norris gsl_fit_linear c1")
58
- GSL::Test::test_rel(cov00, expected_cov00, 1e-10, "norris gsl_fit_linear cov00")
59
- GSL::Test::test_rel(cov01, expected_cov01, 1e-10, "norris gsl_fit_linear cov01")
60
- GSL::Test::test_rel(cov11, expected_cov11, 1e-10, "norris gsl_fit_linear cov11")
61
- GSL::Test::test_rel(sumsq, expected_sumsq, 1e-10, "norris gsl_fit_linear sumsq")
62
-
63
- expected_c0 = -0.262323073774029
64
- expected_c1 = 1.00211681802045
65
- expected_cov00 = 6.92384428759429e-02
66
- expected_cov01 = -9.89095016390515e-05
67
- expected_cov11 = 2.35960747164148e-07
68
- expected_sumsq = 26.6173985294224
69
-
70
- c0, c1, cov00, cov01, cov11, sumsq = GSL::Fit.wlinear(x, w, y, norris_n)
71
- GSL::Test::test_rel(c0, expected_c0, 1e-10, "norris gsl_fit_wlinear c0")
72
- GSL::Test::test_rel(c1, expected_c1, 1e-10, "norris gsl_fit_wlinear c1")
73
- GSL::Test::test_rel(cov00, expected_cov00, 1e-10, "norris gsl_fit_wlinear cov00")
74
- GSL::Test::test_rel(cov01, expected_cov01, 1e-10, "norris gsl_fit_wlinear cov01")
75
- GSL::Test::test_rel(cov11, expected_cov11, 1e-10, "norris gsl_fit_wlinear cov11")
76
- GSL::Test::test_rel(sumsq, expected_sumsq, 1e-10, "norris gsl_fit_wlinear sumsq")
77
-
78
- for i in 0...noint1_n
79
- x.set(i, noint1_x[i])
80
- w.set(i, 1.0)
81
- y.set(i, noint1_y[i])
82
- end
83
-
84
- expected_c1 = 2.07438016528926
85
- expected_cov11 = pow(0.165289256198347E-01, 2.0)
86
- expected_sumsq = 127.272727272727
87
-
88
- c1, cov11, sumsq = GSL::Fit.mul(x, y, noint1_n)
89
- GSL::Test::test_rel(c1, expected_c1, 1e-10, "noint1 gsl_fit_mul c1")
90
- GSL::Test::test_rel(cov11, expected_cov11, 1e-10, "noint1 gsl_fit_mul cov11")
91
- GSL::Test::test_rel(sumsq, expected_sumsq, 1e-10, "noint1 gsl_fit_mul sumsq")
92
-
93
- expected_c1 = 2.07438016528926
94
- expected_cov11 = 2.14661371686165e-05
95
- expected_sumsq = 127.272727272727
96
-
97
- c1, cov11, sumsq = GSL::Fit.wmul(x, w, y, noint1_n)
98
- GSL::Test::test_rel(c1, expected_c1, 1e-10, "noint1 gsl_fit_wmul c1")
99
- GSL::Test::test_rel(cov11, expected_cov11, 1e-10, "noint1 gsl_fit_wmul cov11")
100
- GSL::Test::test_rel(sumsq, expected_sumsq, 1e-10, "noint1 gsl_fit_wmul sumsq")
101
-
102
- for i in 0...noint2_n
103
- x.set(i, noint2_x[i])
104
- w.set(i, 1.0)
105
- y.set(i, noint2_y[i])
106
- end
107
-
108
- expected_c1 = 0.727272727272727
109
- expected_cov11 = pow(0.420827318078432E-01, 2.0)
110
- expected_sumsq = 0.272727272727273
111
-
112
- c1, cov11, sumsq = GSL::Fit.mul(x, y, noint2_n)
113
- GSL::Test::test_rel(c1, expected_c1, 1e-10, "noint2 gsl_fit_mul c1")
114
- GSL::Test::test_rel(cov11, expected_cov11, 1e-10, "noint2 gsl_fit_mul cov11")
115
- GSL::Test::test_rel(sumsq, expected_sumsq, 1e-10, "noint2 gsl_fit_mul sumsq")
116
-
117
- expected_c1 = 0.727272727272727
118
- expected_cov11 = 1.29870129870130e-02
119
- expected_sumsq = 0.272727272727273
120
-
121
- c1, cov11, sumsq = GSL::Fit.wmul(x, w, y, noint2_n)
122
- GSL::Test::test_rel(c1, expected_c1, 1e-10, "noint2 gsl_fit_wmul c1")
123
- GSL::Test::test_rel(cov11, expected_cov11, 1e-10, "noint2 gsl_fit_wmul cov11")
124
- GSL::Test::test_rel(sumsq, expected_sumsq, 1e-10, "noint2 gsl_fit_wmul sumsq")
@@ -1,118 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require("gsl")
3
- include GSL
4
-
5
- module GSL
6
- module Test
7
- Verbose = true
8
- $tests = 0
9
- $passed = 0
10
- $failed = 0
11
-
12
- def test(status, desc)
13
- $tests += 1
14
- if !status
15
- $passed += 1
16
- printf("PASS: #{desc}\n")
17
- else
18
- $failed += 1
19
- printf("FAIL: #{desc}\n")
20
- end
21
- end
22
-
23
- def test_factor(result, expected, factor, desc)
24
- status = nil
25
- if result == expected
26
- status = false
27
- elsif expected == 0.0
28
- status = (result > expected or result < expected)
29
- else
30
- u = result/expected
31
- status = (u > factor or u < 1.0/factor)
32
- end
33
- $tests += 1
34
- if !status
35
- $passed += 1
36
- printf("PASS: #{desc} (%g observed vs %g expected)\n", result, expected)
37
- else
38
- $failed += 1
39
- printf("FAIL: #{desc} (%.18g observed vs %.18g expected)\n", result, expected)
40
- end
41
- end
42
-
43
- def test_factor2(result, expected, factor, desc)
44
- status = nil
45
- if result == expected
46
- status = false
47
- elsif expected == 0.0
48
- status = (result > expected or result < expected)
49
- else
50
- u = result/expected
51
- status = (u > factor or u < 1.0/factor)
52
- end
53
- $tests += 1
54
- if !status
55
- $passed += 1
56
- printf("PASS: #{desc} (%.18g observed vs %g expected)\n", result, expected)
57
- else
58
- $failed += 1
59
- printf("FAIL: #{desc} (%.18g observed vs %.18g expected)\n", result, expected)
60
- end
61
- end
62
-
63
- def test_rel(result, expected, relerr, desc)
64
- status = nil
65
- if isnan?(result) or isnan?(expected)
66
- status = isnan?(result) != isnan?(expected)
67
- elsif isinf?(result) or isinf?(expected)
68
- status = isinf?(result) != isinf?(expected)
69
- elsif expected.to_f != 0.0
70
- status = (result - expected).abs/expected.abs > relerr
71
- else
72
- status = result.abs > relerr
73
- end
74
- $tests += 1
75
- if !status
76
- $passed += 1
77
- printf("PASS: #{desc} (%.18g observed vs %g expected)\n", result, expected)
78
- else
79
- $failed += 1
80
- printf("FAIL: #{desc} (%.18g observed vs %.18g expected)\n", result, expected)
81
- end
82
- end
83
-
84
- def test_abs(result, expected, abserr, desc)
85
- status = nil
86
- if isnan?(result) or isnan?(expected)
87
- status = isnan?(result) != isnan?(expected)
88
- elsif isinf?(result) or isinf?(expected)
89
- status = isinf?(result) != isinf?(expected)
90
- else
91
- status = (result - expected).abs > abserr
92
- end
93
- $tests += 1
94
- if !status
95
- $passed += 1
96
- # printf("PASS: #{desc} (%g observed vs %g expected)\n", result, expected)
97
- printf("PASS: #{desc} (%.18g observed vs %g expected)\n", result, expected)
98
- else
99
- $failed += 1
100
- printf("FAIL: #{desc} (%.18g observed vs %.18g expected)\n", result, expected)
101
- end
102
- end
103
-
104
- def test_int(result, expected, desc)
105
- status = (result != expected)
106
- $tests += 1
107
- if !status
108
- $passed += 1
109
- printf("PASS: #{desc} (%d observed vs %d expected)\n", result, expected)
110
- else
111
- $failed += 1
112
- printf("FAIL: #{desc} (%d observed vs %d expected)\n", result, expected)
113
- end
114
- end
115
-
116
- end
117
- end
118
-