gsl 1.15.3 → 1.16.0.6

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 (446) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.travis.yml +24 -0
  4. data/AUTHORS +10 -2
  5. data/COPYING +341 -339
  6. data/ChangeLog +612 -554
  7. data/Gemfile +4 -0
  8. data/README.md +77 -0
  9. data/Rakefile +14 -93
  10. data/THANKS +1 -1
  11. data/examples/blas/blas.rb +1 -1
  12. data/examples/bspline.rb +3 -3
  13. data/examples/complex/functions.rb +4 -4
  14. data/examples/complex/mul.rb +1 -1
  15. data/examples/const/physconst.rb +4 -4
  16. data/examples/const/travel.rb +4 -4
  17. data/examples/eigen/nonsymmv.rb +1 -1
  18. data/examples/eigen/qhoscillator.rb +3 -3
  19. data/examples/fft/radix2.rb +1 -1
  20. data/examples/fft/real-halfcomplex.rb +3 -3
  21. data/examples/fft/real-halfcomplex2.rb +3 -3
  22. data/examples/fit/expfit.rb +1 -1
  23. data/examples/fit/multifit.rb +1 -1
  24. data/examples/fit/ndlinear.rb +44 -44
  25. data/examples/fit/nonlinearfit.rb +1 -1
  26. data/examples/fit/wlinear.rb +3 -3
  27. data/examples/function/function.rb +1 -1
  28. data/examples/function/min.rb +1 -1
  29. data/examples/function/synchrotron.rb +2 -2
  30. data/examples/gallery/koch.rb +1 -1
  31. data/examples/histogram/cauchy.rb +2 -2
  32. data/examples/histogram/exponential.rb +1 -1
  33. data/examples/histogram/histo3d.rb +1 -1
  34. data/examples/histogram/histogram-pdf.rb +2 -2
  35. data/examples/histogram/xexp.rb +1 -1
  36. data/examples/integration/ahmed.rb +2 -2
  37. data/examples/integration/cosmology.rb +7 -7
  38. data/examples/integration/friedmann.rb +4 -4
  39. data/examples/integration/qng.rb +1 -1
  40. data/examples/interp/demo.rb +2 -2
  41. data/examples/linalg/LQ_solve.rb +1 -1
  42. data/examples/linalg/LU.rb +1 -1
  43. data/examples/linalg/LU2.rb +1 -1
  44. data/examples/linalg/LU_narray.rb +1 -1
  45. data/examples/linalg/PTLQ.rb +1 -1
  46. data/examples/linalg/QRPT.rb +1 -1
  47. data/examples/linalg/chol.rb +1 -1
  48. data/examples/linalg/chol_narray.rb +1 -1
  49. data/examples/linalg/complex.rb +1 -1
  50. data/examples/math/elementary.rb +1 -1
  51. data/examples/math/functions.rb +1 -1
  52. data/examples/math/inf_nan.rb +1 -1
  53. data/examples/math/minmax.rb +1 -1
  54. data/examples/math/power.rb +1 -1
  55. data/examples/math/test.rb +1 -1
  56. data/examples/min.rb +1 -1
  57. data/examples/multimin/bundle.rb +1 -1
  58. data/examples/multimin/cqp.rb +17 -17
  59. data/examples/multiroot/fsolver3.rb +1 -1
  60. data/examples/odeiv/binarysystem.rb +12 -12
  61. data/examples/odeiv/demo.rb +3 -3
  62. data/examples/odeiv/frei1.rb +7 -7
  63. data/examples/odeiv/frei2.rb +4 -4
  64. data/examples/odeiv/oscillator.rb +1 -1
  65. data/examples/odeiv/sedov.rb +3 -3
  66. data/examples/odeiv/whitedwarf.rb +11 -11
  67. data/examples/permutation/ex1.rb +2 -2
  68. data/examples/permutation/permutation.rb +1 -1
  69. data/examples/poly/demo.rb +1 -1
  70. data/examples/random/diffusion.rb +1 -1
  71. data/examples/random/generator.rb +2 -2
  72. data/examples/random/randomwalk.rb +3 -3
  73. data/examples/random/rng.rb +1 -1
  74. data/examples/roots/bisection.rb +1 -1
  75. data/examples/roots/brent.rb +1 -1
  76. data/examples/roots/demo.rb +1 -1
  77. data/examples/roots/newton.rb +2 -2
  78. data/examples/roots/recombination.gp +0 -1
  79. data/examples/sf/hyperg.rb +1 -1
  80. data/examples/sf/sphbessel.rb +1 -1
  81. data/examples/sort/sort.rb +1 -1
  82. data/examples/tamu_anova.rb +4 -4
  83. data/examples/vector/add.rb +1 -1
  84. data/examples/vector/decimate.rb +1 -1
  85. data/examples/vector/gnuplot.rb +8 -8
  86. data/examples/vector/vector.rb +2 -2
  87. data/examples/wavelet/wavelet1.rb +1 -1
  88. data/ext/{alf.c → gsl_native/alf.c} +10 -10
  89. data/ext/{array.c → gsl_native/array.c} +70 -159
  90. data/ext/{array_complex.c → gsl_native/array_complex.c} +63 -66
  91. data/ext/{blas.c → gsl_native/blas.c} +2 -3
  92. data/ext/{blas1.c → gsl_native/blas1.c} +35 -36
  93. data/ext/{blas2.c → gsl_native/blas2.c} +57 -62
  94. data/ext/{blas3.c → gsl_native/blas3.c} +57 -58
  95. data/ext/{block.c → gsl_native/block.c} +14 -18
  96. data/ext/{block_source.c → gsl_native/block_source.h} +110 -112
  97. data/ext/gsl_native/bspline.c +122 -0
  98. data/ext/{bundle.c → gsl_native/bundle.c} +0 -0
  99. data/ext/{cdf.c → gsl_native/cdf.c} +79 -93
  100. data/ext/{cheb.c → gsl_native/cheb.c} +78 -89
  101. data/ext/{combination.c → gsl_native/combination.c} +11 -19
  102. data/ext/{common.c → gsl_native/common.c} +9 -41
  103. data/ext/{complex.c → gsl_native/complex.c} +116 -118
  104. data/ext/gsl_native/const.c +331 -0
  105. data/ext/{const_additional.c → gsl_native/const_additional.c} +13 -34
  106. data/ext/gsl_native/cqp.c +283 -0
  107. data/ext/{deriv.c → gsl_native/deriv.c} +25 -33
  108. data/ext/{dht.c → gsl_native/dht.c} +23 -31
  109. data/ext/{diff.c → gsl_native/diff.c} +26 -28
  110. data/ext/{dirac.c → gsl_native/dirac.c} +45 -46
  111. data/ext/{eigen.c → gsl_native/eigen.c} +1044 -1095
  112. data/ext/{error.c → gsl_native/error.c} +18 -18
  113. data/ext/gsl_native/extconf.rb +118 -0
  114. data/ext/{fft.c → gsl_native/fft.c} +197 -204
  115. data/ext/{fit.c → gsl_native/fit.c} +17 -18
  116. data/ext/gsl_native/fresnel.c +312 -0
  117. data/ext/{function.c → gsl_native/function.c} +37 -43
  118. data/ext/{geometry.c → gsl_native/geometry.c} +16 -16
  119. data/ext/{graph.c → gsl_native/graph.c} +39 -89
  120. data/ext/{gsl.c → gsl_native/gsl.c} +12 -33
  121. data/ext/{gsl_narray.c → gsl_native/gsl_narray.c} +20 -30
  122. data/ext/{histogram.c → gsl_native/histogram.c} +133 -160
  123. data/ext/{histogram2d.c → gsl_native/histogram2d.c} +78 -104
  124. data/ext/{histogram3d.c → gsl_native/histogram3d.c} +76 -76
  125. data/ext/{histogram3d_source.c → gsl_native/histogram3d_source.c} +196 -197
  126. data/ext/{histogram_find.c → gsl_native/histogram_find.c} +32 -34
  127. data/ext/{histogram_oper.c → gsl_native/histogram_oper.c} +43 -52
  128. data/ext/{ieee.c → gsl_native/ieee.c} +9 -21
  129. data/{include → ext/gsl_native/include}/rb_gsl.h +4 -26
  130. data/{include → ext/gsl_native/include}/rb_gsl_array.h +15 -39
  131. data/{include → ext/gsl_native/include}/rb_gsl_cheb.h +0 -2
  132. data/{include → ext/gsl_native/include}/rb_gsl_common.h +61 -61
  133. data/{include → ext/gsl_native/include}/rb_gsl_complex.h +1 -1
  134. data/{include → ext/gsl_native/include}/rb_gsl_const.h +0 -6
  135. data/ext/gsl_native/include/rb_gsl_dirac.h +6 -0
  136. data/{include → ext/gsl_native/include}/rb_gsl_eigen.h +1 -1
  137. data/{include → ext/gsl_native/include}/rb_gsl_fft.h +0 -13
  138. data/{include → ext/gsl_native/include}/rb_gsl_fit.h +0 -2
  139. data/{include → ext/gsl_native/include}/rb_gsl_function.h +0 -4
  140. data/{include → ext/gsl_native/include}/rb_gsl_graph.h +2 -4
  141. data/{include → ext/gsl_native/include}/rb_gsl_histogram.h +8 -8
  142. data/{include → ext/gsl_native/include}/rb_gsl_histogram3d.h +50 -50
  143. data/{include → ext/gsl_native/include}/rb_gsl_integration.h +1 -1
  144. data/{include → ext/gsl_native/include}/rb_gsl_interp.h +0 -5
  145. data/{include → ext/gsl_native/include}/rb_gsl_linalg.h +2 -6
  146. data/{include → ext/gsl_native/include}/rb_gsl_math.h +0 -6
  147. data/{include → ext/gsl_native/include}/rb_gsl_odeiv.h +0 -3
  148. data/{include → ext/gsl_native/include}/rb_gsl_poly.h +3 -7
  149. data/{include → ext/gsl_native/include}/rb_gsl_rational.h +1 -8
  150. data/{include → ext/gsl_native/include}/rb_gsl_rng.h +0 -1
  151. data/{include → ext/gsl_native/include}/rb_gsl_root.h +1 -1
  152. data/{include → ext/gsl_native/include}/rb_gsl_sf.h +39 -48
  153. data/{include → ext/gsl_native/include}/rb_gsl_statistics.h +1 -1
  154. data/{include → ext/gsl_native/include}/rb_gsl_tensor.h +0 -2
  155. data/{include → ext/gsl_native/include}/rb_gsl_with_narray.h +3 -1
  156. data/{include → ext/gsl_native/include}/templates_off.h +0 -0
  157. data/{include → ext/gsl_native/include}/templates_on.h +1 -1
  158. data/ext/{integration.c → gsl_native/integration.c} +164 -189
  159. data/ext/{interp.c → gsl_native/interp.c} +25 -38
  160. data/ext/gsl_native/jacobi.c +733 -0
  161. data/ext/{linalg.c → gsl_native/linalg.c} +462 -589
  162. data/ext/{linalg_complex.c → gsl_native/linalg_complex.c} +93 -106
  163. data/ext/{math.c → gsl_native/math.c} +48 -67
  164. data/ext/{matrix.c → gsl_native/matrix.c} +13 -16
  165. data/ext/{matrix_complex.c → gsl_native/matrix_complex.c} +119 -123
  166. data/ext/{matrix_double.c → gsl_native/matrix_double.c} +79 -82
  167. data/ext/{matrix_int.c → gsl_native/matrix_int.c} +53 -54
  168. data/ext/{matrix_source.c → gsl_native/matrix_source.h} +292 -318
  169. data/ext/{min.c → gsl_native/min.c} +45 -76
  170. data/ext/{monte.c → gsl_native/monte.c} +50 -64
  171. data/ext/{multifit.c → gsl_native/multifit.c} +142 -151
  172. data/ext/{multimin.c → gsl_native/multimin.c} +64 -92
  173. data/ext/{multimin_fsdf.c → gsl_native/multimin_fsdf.c} +16 -16
  174. data/ext/{multiroots.c → gsl_native/multiroots.c} +73 -76
  175. data/ext/{multiset.c → gsl_native/multiset.c} +4 -8
  176. data/ext/{ndlinear.c → gsl_native/ndlinear.c} +320 -321
  177. data/ext/{nmf.c → gsl_native/nmf.c} +11 -11
  178. data/ext/{nmf_wrap.c → gsl_native/nmf_wrap.c} +1 -1
  179. data/ext/{ntuple.c → gsl_native/ntuple.c} +23 -23
  180. data/ext/{odeiv.c → gsl_native/odeiv.c} +101 -116
  181. data/ext/gsl_native/ool.c +879 -0
  182. data/ext/{permutation.c → gsl_native/permutation.c} +39 -37
  183. data/ext/{poly.c → gsl_native/poly.c} +10 -13
  184. data/ext/{poly2.c → gsl_native/poly2.c} +16 -16
  185. data/ext/{poly_source.c → gsl_native/poly_source.h} +249 -293
  186. data/ext/{qrng.c → gsl_native/qrng.c} +9 -20
  187. data/ext/{randist.c → gsl_native/randist.c} +222 -247
  188. data/ext/{rational.c → gsl_native/rational.c} +12 -12
  189. data/ext/{rng.c → gsl_native/rng.c} +30 -47
  190. data/ext/{root.c → gsl_native/root.c} +47 -48
  191. data/ext/{sf.c → gsl_native/sf.c} +196 -244
  192. data/ext/{sf_airy.c → gsl_native/sf_airy.c} +2 -2
  193. data/ext/{sf_bessel.c → gsl_native/sf_bessel.c} +7 -7
  194. data/ext/{sf_clausen.c → gsl_native/sf_clausen.c} +1 -1
  195. data/ext/{sf_coulomb.c → gsl_native/sf_coulomb.c} +40 -40
  196. data/ext/{sf_coupling.c → gsl_native/sf_coupling.c} +30 -30
  197. data/ext/{sf_dawson.c → gsl_native/sf_dawson.c} +1 -1
  198. data/ext/{sf_debye.c → gsl_native/sf_debye.c} +1 -10
  199. data/ext/{sf_dilog.c → gsl_native/sf_dilog.c} +1 -1
  200. data/ext/{sf_elementary.c → gsl_native/sf_elementary.c} +3 -3
  201. data/ext/{sf_ellint.c → gsl_native/sf_ellint.c} +43 -43
  202. data/ext/{sf_elljac.c → gsl_native/sf_elljac.c} +3 -3
  203. data/ext/{sf_erfc.c → gsl_native/sf_erfc.c} +1 -5
  204. data/ext/{sf_exp.c → gsl_native/sf_exp.c} +3 -3
  205. data/ext/{sf_expint.c → gsl_native/sf_expint.c} +2 -12
  206. data/ext/{sf_fermi_dirac.c → gsl_native/sf_fermi_dirac.c} +1 -1
  207. data/ext/{sf_gamma.c → gsl_native/sf_gamma.c} +2 -6
  208. data/ext/{sf_gegenbauer.c → gsl_native/sf_gegenbauer.c} +1 -1
  209. data/ext/{sf_hyperg.c → gsl_native/sf_hyperg.c} +1 -1
  210. data/ext/{sf_laguerre.c → gsl_native/sf_laguerre.c} +4 -4
  211. data/ext/{sf_lambert.c → gsl_native/sf_lambert.c} +1 -1
  212. data/ext/{sf_legendre.c → gsl_native/sf_legendre.c} +1 -1
  213. data/ext/{sf_log.c → gsl_native/sf_log.c} +4 -4
  214. data/ext/gsl_native/sf_mathieu.c +235 -0
  215. data/ext/{sf_power.c → gsl_native/sf_power.c} +1 -1
  216. data/ext/{sf_psi.c → gsl_native/sf_psi.c} +3 -12
  217. data/ext/{sf_synchrotron.c → gsl_native/sf_synchrotron.c} +1 -1
  218. data/ext/{sf_transport.c → gsl_native/sf_transport.c} +1 -1
  219. data/ext/{sf_trigonometric.c → gsl_native/sf_trigonometric.c} +4 -4
  220. data/ext/{sf_zeta.c → gsl_native/sf_zeta.c} +1 -5
  221. data/ext/{signal.c → gsl_native/signal.c} +63 -68
  222. data/ext/{siman.c → gsl_native/siman.c} +45 -49
  223. data/ext/{sort.c → gsl_native/sort.c} +6 -7
  224. data/ext/{spline.c → gsl_native/spline.c} +28 -46
  225. data/ext/{stats.c → gsl_native/stats.c} +105 -118
  226. data/ext/{sum.c → gsl_native/sum.c} +34 -34
  227. data/ext/{tamu_anova.c → gsl_native/tamu_anova.c} +1 -1
  228. data/ext/{tensor.c → gsl_native/tensor.c} +8 -11
  229. data/ext/{tensor_source.c → gsl_native/tensor_source.h} +147 -148
  230. data/ext/{vector.c → gsl_native/vector.c} +11 -14
  231. data/ext/{vector_complex.c → gsl_native/vector_complex.c} +179 -184
  232. data/ext/{vector_double.c → gsl_native/vector_double.c} +178 -183
  233. data/ext/{vector_int.c → gsl_native/vector_int.c} +27 -29
  234. data/ext/{vector_source.c → gsl_native/vector_source.h} +428 -443
  235. data/ext/{wavelet.c → gsl_native/wavelet.c} +224 -246
  236. data/gsl.gemspec +29 -0
  237. data/lib/gsl.rb +8 -3
  238. data/lib/gsl/gnuplot.rb +3 -3
  239. data/lib/gsl/oper.rb +35 -60
  240. data/lib/gsl/version.rb +3 -0
  241. data/lib/rbgsl.rb +1 -3
  242. data/rdoc/alf.rdoc +5 -5
  243. data/rdoc/blas.rdoc +9 -9
  244. data/rdoc/bspline.rdoc +17 -17
  245. data/rdoc/changes.rdoc +4 -9
  246. data/rdoc/cheb.rdoc +25 -25
  247. data/rdoc/cholesky_complex.rdoc +21 -21
  248. data/rdoc/combi.rdoc +37 -37
  249. data/rdoc/complex.rdoc +22 -22
  250. data/rdoc/const.rdoc +47 -47
  251. data/rdoc/dht.rdoc +49 -49
  252. data/rdoc/diff.rdoc +42 -42
  253. data/rdoc/ehandling.rdoc +6 -6
  254. data/rdoc/eigen.rdoc +153 -153
  255. data/rdoc/fft.rdoc +146 -146
  256. data/rdoc/fit.rdoc +109 -109
  257. data/rdoc/function.rdoc +11 -11
  258. data/rdoc/graph.rdoc +17 -17
  259. data/rdoc/hist.rdoc +103 -103
  260. data/rdoc/hist2d.rdoc +42 -42
  261. data/rdoc/hist3d.rdoc +9 -9
  262. data/rdoc/integration.rdoc +110 -110
  263. data/rdoc/interp.rdoc +71 -71
  264. data/rdoc/intro.rdoc +8 -8
  265. data/rdoc/linalg.rdoc +188 -188
  266. data/rdoc/linalg_complex.rdoc +1 -1
  267. data/rdoc/math.rdoc +58 -58
  268. data/rdoc/matrix.rdoc +275 -275
  269. data/rdoc/min.rdoc +57 -57
  270. data/rdoc/monte.rdoc +22 -22
  271. data/rdoc/multimin.rdoc +95 -95
  272. data/rdoc/multiroot.rdoc +80 -80
  273. data/rdoc/narray.rdoc +32 -32
  274. data/rdoc/ndlinear.rdoc +54 -54
  275. data/rdoc/nonlinearfit.rdoc +100 -100
  276. data/rdoc/ntuple.rdoc +31 -31
  277. data/rdoc/odeiv.rdoc +88 -88
  278. data/rdoc/perm.rdoc +90 -90
  279. data/rdoc/poly.rdoc +66 -66
  280. data/rdoc/qrng.rdoc +21 -21
  281. data/rdoc/randist.rdoc +82 -82
  282. data/rdoc/ref.rdoc +57 -57
  283. data/rdoc/rng.rdoc +85 -85
  284. data/rdoc/roots.rdoc +57 -57
  285. data/rdoc/sf.rdoc +428 -428
  286. data/rdoc/siman.rdoc +19 -19
  287. data/rdoc/sort.rdoc +30 -30
  288. data/rdoc/start.rdoc +8 -8
  289. data/rdoc/stats.rdoc +52 -52
  290. data/rdoc/sum.rdoc +12 -12
  291. data/rdoc/tensor.rdoc +31 -31
  292. data/rdoc/tut.rdoc +1 -1
  293. data/rdoc/use.rdoc +39 -39
  294. data/rdoc/vector.rdoc +188 -188
  295. data/rdoc/vector_complex.rdoc +24 -24
  296. data/rdoc/wavelet.rdoc +46 -46
  297. data/test/gsl/blas_test.rb +79 -0
  298. data/test/gsl/bspline_test.rb +63 -0
  299. data/test/gsl/cdf_test.rb +1512 -0
  300. data/test/gsl/cheb_test.rb +80 -0
  301. data/test/gsl/combination_test.rb +100 -0
  302. data/test/gsl/complex_test.rb +20 -0
  303. data/test/gsl/const_test.rb +29 -0
  304. data/test/gsl/deriv_test.rb +62 -0
  305. data/test/gsl/dht_test.rb +79 -0
  306. data/test/gsl/diff_test.rb +53 -0
  307. data/test/gsl/eigen_test.rb +563 -0
  308. data/test/gsl/err_test.rb +23 -0
  309. data/test/gsl/fit_test.rb +101 -0
  310. data/test/gsl/histo_test.rb +14 -0
  311. data/test/gsl/index_test.rb +61 -0
  312. data/test/gsl/integration_test.rb +274 -0
  313. data/test/gsl/interp_test.rb +27 -0
  314. data/test/gsl/linalg_test.rb +463 -0
  315. data/test/gsl/matrix_nmf_test.rb +37 -0
  316. data/test/gsl/matrix_test.rb +98 -0
  317. data/test/gsl/min_test.rb +89 -0
  318. data/test/gsl/monte_test.rb +77 -0
  319. data/test/gsl/multifit_test.rb +753 -0
  320. data/test/gsl/multimin_test.rb +157 -0
  321. data/test/gsl/multiroot_test.rb +135 -0
  322. data/test/gsl/multiset_test.rb +52 -0
  323. data/test/gsl/odeiv_test.rb +275 -0
  324. data/test/gsl/oper_test.rb +98 -0
  325. data/test/gsl/poly_test.rb +338 -0
  326. data/test/gsl/qrng_test.rb +94 -0
  327. data/test/gsl/quartic_test.rb +28 -0
  328. data/test/gsl/randist_test.rb +122 -0
  329. data/test/gsl/rng_test.rb +303 -0
  330. data/test/gsl/roots_test.rb +78 -0
  331. data/test/gsl/sf_test.rb +2079 -0
  332. data/test/gsl/stats_test.rb +122 -0
  333. data/test/gsl/sum_test.rb +69 -0
  334. data/test/gsl/tensor_test.rb +396 -0
  335. data/test/gsl/vector_test.rb +223 -0
  336. data/test/gsl/wavelet_test.rb +130 -0
  337. data/test/gsl_test.rb +321 -0
  338. data/test/test_helper.rb +42 -0
  339. data/uncrustify.cfg +1693 -0
  340. metadata +337 -378
  341. data/README +0 -32
  342. data/VERSION +0 -1
  343. data/ext/bspline.c +0 -130
  344. data/ext/const.c +0 -673
  345. data/ext/cqp.c +0 -283
  346. data/ext/extconf.rb +0 -295
  347. data/ext/fcmp.c +0 -66
  348. data/ext/fresnel.c +0 -312
  349. data/ext/jacobi.c +0 -739
  350. data/ext/ool.c +0 -879
  351. data/ext/oper_complex_source.c +0 -253
  352. data/ext/sf_mathieu.c +0 -238
  353. data/include/rb_gsl_config.h +0 -62
  354. data/include/rb_gsl_dirac.h +0 -13
  355. data/rdoc/index.rdoc +0 -62
  356. data/rdoc/rngextra.rdoc +0 -11
  357. data/rdoc/screenshot.rdoc +0 -40
  358. data/setup.rb +0 -1585
  359. data/tests/blas/amax.rb +0 -14
  360. data/tests/blas/asum.rb +0 -16
  361. data/tests/blas/axpy.rb +0 -25
  362. data/tests/blas/copy.rb +0 -23
  363. data/tests/blas/dot.rb +0 -23
  364. data/tests/bspline.rb +0 -53
  365. data/tests/cdf.rb +0 -1388
  366. data/tests/cheb.rb +0 -112
  367. data/tests/combination.rb +0 -123
  368. data/tests/complex.rb +0 -17
  369. data/tests/const.rb +0 -24
  370. data/tests/deriv.rb +0 -85
  371. data/tests/dht/dht1.rb +0 -17
  372. data/tests/dht/dht2.rb +0 -23
  373. data/tests/dht/dht3.rb +0 -23
  374. data/tests/dht/dht4.rb +0 -23
  375. data/tests/diff.rb +0 -78
  376. data/tests/eigen/eigen.rb +0 -220
  377. data/tests/eigen/gen.rb +0 -105
  378. data/tests/eigen/genherm.rb +0 -66
  379. data/tests/eigen/gensymm.rb +0 -68
  380. data/tests/eigen/nonsymm.rb +0 -53
  381. data/tests/eigen/nonsymmv.rb +0 -53
  382. data/tests/eigen/symm-herm.rb +0 -74
  383. data/tests/err.rb +0 -58
  384. data/tests/fit.rb +0 -124
  385. data/tests/gsl_test.rb +0 -118
  386. data/tests/gsl_test2.rb +0 -110
  387. data/tests/histo.rb +0 -12
  388. data/tests/integration/integration1.rb +0 -72
  389. data/tests/integration/integration2.rb +0 -71
  390. data/tests/integration/integration3.rb +0 -71
  391. data/tests/integration/integration4.rb +0 -71
  392. data/tests/interp.rb +0 -45
  393. data/tests/linalg/HH.rb +0 -64
  394. data/tests/linalg/LU.rb +0 -47
  395. data/tests/linalg/QR.rb +0 -77
  396. data/tests/linalg/SV.rb +0 -24
  397. data/tests/linalg/TDN.rb +0 -116
  398. data/tests/linalg/TDS.rb +0 -122
  399. data/tests/linalg/bidiag.rb +0 -73
  400. data/tests/linalg/cholesky.rb +0 -20
  401. data/tests/linalg/linalg.rb +0 -158
  402. data/tests/matrix/matrix_complex_test.rb +0 -36
  403. data/tests/matrix/matrix_nmf_test.rb +0 -39
  404. data/tests/matrix/matrix_test.rb +0 -48
  405. data/tests/min.rb +0 -99
  406. data/tests/monte/miser.rb +0 -31
  407. data/tests/monte/vegas.rb +0 -45
  408. data/tests/multifit/test_2dgauss.rb +0 -112
  409. data/tests/multifit/test_brown.rb +0 -90
  410. data/tests/multifit/test_enso.rb +0 -246
  411. data/tests/multifit/test_filip.rb +0 -155
  412. data/tests/multifit/test_gauss.rb +0 -97
  413. data/tests/multifit/test_longley.rb +0 -110
  414. data/tests/multifit/test_multifit.rb +0 -52
  415. data/tests/multimin.rb +0 -139
  416. data/tests/multiroot.rb +0 -131
  417. data/tests/multiset.rb +0 -52
  418. data/tests/narray/blas_dnrm2.rb +0 -20
  419. data/tests/odeiv.rb +0 -353
  420. data/tests/poly/poly.rb +0 -290
  421. data/tests/poly/special.rb +0 -65
  422. data/tests/qrng.rb +0 -131
  423. data/tests/quartic.rb +0 -29
  424. data/tests/randist.rb +0 -134
  425. data/tests/rng.rb +0 -305
  426. data/tests/roots.rb +0 -76
  427. data/tests/run-test.sh +0 -17
  428. data/tests/sf/gsl_test_sf.rb +0 -249
  429. data/tests/sf/test_airy.rb +0 -83
  430. data/tests/sf/test_bessel.rb +0 -306
  431. data/tests/sf/test_coulomb.rb +0 -17
  432. data/tests/sf/test_dilog.rb +0 -25
  433. data/tests/sf/test_gamma.rb +0 -209
  434. data/tests/sf/test_hyperg.rb +0 -356
  435. data/tests/sf/test_legendre.rb +0 -227
  436. data/tests/sf/test_mathieu.rb +0 -59
  437. data/tests/sf/test_mode.rb +0 -19
  438. data/tests/sf/test_sf.rb +0 -839
  439. data/tests/stats.rb +0 -174
  440. data/tests/stats_mt.rb +0 -16
  441. data/tests/sum.rb +0 -98
  442. data/tests/sys.rb +0 -323
  443. data/tests/tensor.rb +0 -419
  444. data/tests/vector/vector_complex_test.rb +0 -101
  445. data/tests/vector/vector_test.rb +0 -141
  446. data/tests/wavelet.rb +0 -142
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
3
+
4
+ gem 'narray' if ENV['NARRAY']
@@ -0,0 +1,77 @@
1
+ # Ruby/GSL, a Ruby interface to GSL (GNU Scientific library)
2
+
3
+ Permission is granted to copy, distribute and/or modify this document under
4
+ the terms of the GNU Free Documentation License.
5
+
6
+ ## Description
7
+
8
+ Ruby/GSL is a Ruby interface to the [GNU Scientific Library](https://gnu.org/software/gsl/)
9
+ (GSL), for numerical computing with [Ruby](http://www.ruby-lang.org/).
10
+
11
+
12
+ ## Installation
13
+
14
+ Ruby/GSL may be installed as a Ruby Gem by simply running
15
+
16
+ gem install rb-gsl
17
+
18
+ Note that the GSL libraries must already be installed before Ruby/GSL
19
+ can be installed:
20
+
21
+ Debian/Ubuntu: +libgsl0-dev+
22
+ Fedora/SuSE: +gsl-devel+
23
+ Gentoo: +sci-libs/gsl+
24
+ OS X: <tt>brew install gsl</tt>
25
+
26
+ It is recommended to install the [GNU plotutils](https://gnu.org/software/plotutils/plotutils.html)
27
+ package. Some of the example scripts in the +examples/+ directory use the
28
+ +graph+ utility included in the package to plot the results. Windows cygwin
29
+ binaries of <tt>GNU plotutils</tt> and related packages are available
30
+ [here](http://gnuwin32.sourceforge.net/packages/plotutils.htm).
31
+
32
+
33
+ ## Reference
34
+
35
+ The [Ruby/GSL reference manual](link:rdoc/ref_rdoc.html) follows and borrows
36
+ large parts of the GSL reference manual.
37
+
38
+
39
+ ## Examples
40
+
41
+ See scripts in +examples/+ and +test/+ directories.
42
+
43
+
44
+ ## Related Projects
45
+
46
+ * [ruby-gsl](http://ruby-gsl.sourceforge.net/): Another Ruby binding,
47
+ developed by Arno Erpenbeck.
48
+
49
+
50
+ ## Licence
51
+
52
+ Ruby/GSL is free software: you can redistribute it and/or modify it
53
+ under the terms of the GNU General Public License.
54
+ This library is distributed in the hope that it will be useful, but
55
+ WITHOUT ANY WARRANTY.
56
+
57
+
58
+ ## Bug Reports
59
+
60
+ Any bug reports are welcome. If you encounter bugs in Ruby/GSL, please
61
+ report them on GitHub(https://github.com/SciRuby/rb-gsl/issues).
62
+
63
+
64
+ ## Links
65
+
66
+ Documentation: https://sciruby.github.com/rb-gsl
67
+ Source code: https://github.com/SciRuby/rb-gsl
68
+ RubyGem: https://rubygems.org/gems/rb-gsl
69
+ Bug tracker: https://github.com/SciRuby/rb-gsl/issues
70
+ Travis CI: https://travis-ci.org/SciRuby/rb-gsl
71
+
72
+
73
+ ## Authors
74
+
75
+ * Yoshiki Tsunesada <y-tsunesada at mm dot em-net dot ne dot jp> (July, 2004)
76
+ * David MacMahon <davidm@astro.berkeley.edu> (November, 2010)
77
+ * Jens Wille <mailto:jens.wille@gmail.com> (November, 2013)
data/Rakefile CHANGED
@@ -1,99 +1,20 @@
1
- require 'rubygems'
2
- require 'rubygems/package_task'
3
- require 'rake/rdoctask'
4
-
5
- RB_GSL_VERSION = File.readlines('VERSION')[0].chomp
6
-
7
- spec = Gem::Specification.new do |s|
8
- # Basics
9
- s.name = 'gsl'
10
- s.version = RB_GSL_VERSION
11
- s.summary = 'Ruby interface to GNU Scientific Library'
12
- s.description = 'Ruby/GSL is a Ruby interface to the GNU Scientific Library, for numerical computing with Ruby'
13
- #s.platform = Gem::Platform::Ruby
14
- s.required_ruby_version = '>= 1.8.1'
15
- s.requirements << 'GSL (http://www.gnu.org/software/gsl/)'
16
- # plotlib?
17
- s.add_dependency('narray', '>= 0.5.9')
18
-
19
- # About
20
- s.authors = ['Yoshiki Tsunesada', 'David MacMahon']
21
- s.email = 'y-tsunesada@mm.em-net.ne.jp'
22
- s.homepage = 'http://rb-gsl.rubyforge.org/'
23
- s.rubyforge_project = 'rb-gsl'
24
-
25
- # Files, Libraries, and Extensions
26
- s.files = FileList[
27
- 'AUTHORS',
28
- 'COPYING',
29
- 'ChangeLog',
30
- 'README',
31
- 'Rakefile',
32
- 'setup.rb',
33
- 'THANKS',
34
- 'VERSION',
35
- 'examples/**/*',
36
- 'ext/extconf.rb',
37
- 'ext/*.c',
38
- 'lib/**/*',
39
- 'include/*',
40
- 'rdoc/*',
41
- 'tests/**/*'
42
- ].to_a
43
- s.require_paths = ['lib', 'lib/gsl', 'lib/ool', 'ext']
44
- #s.autorequire = nil
45
- #s.bindir = 'bin'
46
- #s.executables = []
47
- #s.default_executable = nil
48
-
49
- # C compilation
50
- s.extensions = %w[ ext/extconf.rb ]
51
-
52
- # Documentation
53
- s.has_rdoc = true
54
- s.rdoc_options = [
55
- '--title', 'Ruby/GSL',
56
- '--main', 'rdoc/index.rdoc',
57
- '--exclude', 'ext/',
58
- '--exclude', 'include/',
59
- '--exclude', 'lib/',
60
- ]
61
- s.extra_rdoc_files = FileList['rdoc/*'].to_a
1
+ require File.expand_path(%q{../lib/gsl/version}, __FILE__)
62
2
 
63
- # Testing TODO
64
- #s.test_files = []
65
- end
3
+ require 'bundler/setup'
4
+ require 'rubygems/package_task'
5
+ require 'rake/extensiontask'
6
+ require 'rake/testtask'
66
7
 
67
- Rake::PackageTask.new('rb-gsl', RB_GSL_VERSION) do |pkg|
68
- pkg.need_zip = true
69
- pkg.need_tar = true
70
- pkg.package_files = spec.files
71
- end
8
+ Bundler::GemHelper.install_tasks
72
9
 
73
- Gem::PackageTask.new(spec) do |pkg|
74
- pkg.need_zip = false
75
- pkg.need_tar = false
10
+ Rake::TestTask.new do |t|
11
+ t.libs << 'test'
12
+ t.libs << 'test/gsl'
13
+ t.test_files = FileList['test/*.rb', 'test/gsl/*.rb']
76
14
  end
77
15
 
78
- task :default => [:package, :gem]
16
+ spec = eval(IO.read('gsl.gemspec'))
17
+ Gem::PackageTask.new(spec).define
18
+ Rake::ExtensionTask.new(:gsl_native, spec)
79
19
 
80
- # --------------------------------------------------------------------
81
- # Create a task to build the RDOC documentation tree.
82
-
83
- desc "Create the RDoc html files"
84
- Rake::RDocTask.new("rdoc") { |rdoc|
85
- rdoc.rdoc_dir = 'html'
86
- rdoc.title = 'Ruby/GSL'
87
- rdoc.main = 'rdoc/index.rdoc'
88
- rdoc.options << '--exclude' << 'ext/'
89
- rdoc.options << '--exclude' << 'include/'
90
- rdoc.options << '--exclude' << 'lib/'
91
- rdoc.rdoc_files.include('rdoc/*.rdoc')
92
- }
93
-
94
- desc "Publish the RDoc files on RubyForge"
95
- task :pub_rdoc => ["html/index.html"] do
96
- mkdir_p "emptydir"
97
- sh "scp -rq html/* www.rubyforge.org:/var/www/gforge-projects/rb-gsl/."
98
- rm_r "emptydir"
99
- end
20
+ task :default => [:compile, :test]
data/THANKS CHANGED
@@ -1,5 +1,5 @@
1
1
  Takeshi Horinouchi
2
- Masahide Kikkawa
2
+ Masahide Kikkawa
3
3
  Seiya Nishizawa (Patches, NArray supports)
4
4
  Arno Erpenbeck (ruby-gsl project)
5
5
  Austin Newton
@@ -10,4 +10,4 @@ B = b.matrix_view(3, 2)
10
10
  C = GSL::Blas.dgemm(GSL::Blas::NoTrans, GSL::Blas::NoTrans, 1.0, A, B, 0.0)
11
11
  p C
12
12
 
13
- p A*B
13
+ p A*B
@@ -19,15 +19,15 @@ w = GSL::Vector.alloc(N)
19
19
  for i in 0...N do
20
20
  xi = (15.0/(N-1)/1)*i
21
21
  yi = Math::cos(xi)*Math::exp(-0.1*xi)
22
-
22
+
23
23
  sigma = 0.1
24
24
  dy = GSL::Ran.gaussian(r, sigma)
25
25
  yi += dy
26
-
26
+
27
27
  x[i] = xi
28
28
  y[i] = yi
29
29
  w[i] = sigma
30
-
30
+
31
31
  # printf("%f %f\n", xi, yi)
32
32
  end
33
33
 
@@ -26,8 +26,8 @@ p f.log == z
26
26
  p z.pow(f) # [1.931e-02 1.752e-02], verified with Octave result
27
27
 
28
28
  # The results below are verified with the Octave results
29
- p GSL::Complex.sin(z)
30
- p GSL::Complex.cos(z)
29
+ p GSL::Complex.sin(z)
30
+ p GSL::Complex.cos(z)
31
31
  p GSL::Complex.tan(z)
32
32
  p GSL::Complex.sec(z)
33
33
  p GSL::Complex.csc(z)
@@ -43,8 +43,8 @@ p GSL::Complex.arccsc(z)
43
43
  p GSL::Complex.arccsc_real(2)
44
44
  p GSL::Complex.arccot(z)
45
45
 
46
- p GSL::Complex.sinh(z)
47
- p GSL::Complex.cosh(z)
46
+ p GSL::Complex.sinh(z)
47
+ p GSL::Complex.cosh(z)
48
48
  p GSL::Complex.tanh(z)
49
49
  p GSL::Complex.sech(z)
50
50
  p GSL::Complex.csch(z)
@@ -3,7 +3,7 @@ require 'gsl'
3
3
 
4
4
  a = GSL::Complex.rect(1, 2)
5
5
  b = GSL::Complex[3, 4]
6
-
6
+
7
7
  p a*b # -5 + 10i
8
8
  p a.mul(b)
9
9
  p a
@@ -42,7 +42,7 @@ MENU[2] = ["", "ASTRONOMICAL_UNIT", "GRAVITATIONAL_CONSTANT",
42
42
  MENU[3] = ["", "ELECTRON_CHARGE", "ELECTRON_VOLT", "UNIFIED_ATOMIC_MASS",
43
43
  "MASS_ELECTRON", "MASS_MUON", "MASS_PROTON", "MASS_NEUTRON",
44
44
  "FINE_STRUCTURE", "RYDBERG", "BOHR_RADIUS", "ANGSTROM",
45
- "BARN", "BOHR_MAGNETON", "NUCLEAR_MAGNETON",
45
+ "BARN", "BOHR_MAGNETON", "NUCLEAR_MAGNETON",
46
46
  "ELECTRON_MAGNETIC_MOMENT", "PROTON_MAGNETIC_MOMENT",
47
47
  "THOMSON_CROSS_SECTION"]
48
48
 
@@ -56,10 +56,10 @@ MENU[9] = ["", "POUND_MASS", "OUNCE_MASS", "TON", "METRIC_TON", "UK_TON",
56
56
  "TROY_OUNCE", "CARAT", "GRAM_FORCE", "POUND_FORCE",
57
57
  "KILOPOUND_FORCE", "POUNDAL"]
58
58
  MENU[10] = ["", "CALORIE", "BTU", "THERM", "HORSEPOWER"]
59
- MENU[11] = ["", "BAR", "STD_ATMOSPHERE", "TORR", "METER_OF_MERCURY",
59
+ MENU[11] = ["", "BAR", "STD_ATMOSPHERE", "TORR", "METER_OF_MERCURY",
60
60
  "INCH_OF_MERCURY", "INCH_OF_WATER", "PSI"]
61
61
  MENU[12] = ["", "POISE", "STOKES"]
62
- MENU[13] = ["", "STILB", "LUMEN", "LUX", "PHOT", "FOOTCANDLE",
62
+ MENU[13] = ["", "STILB", "LUMEN", "LUX", "PHOT", "FOOTCANDLE",
63
63
  "LAMBERT", "FOOTLAMBERT"]
64
64
  MENU[14] = ["", "CURIE", "ROENTGEN", "RAD"]
65
65
  MENU[15] = ["", "NEWTON", "DYNE", "JOULE", "ERG"]
@@ -96,7 +96,7 @@ def show_submenu(ind, w)
96
96
  w.setpos(i+=1, 1)
97
97
  str = " ? ['m' to menu]: "
98
98
  w.addstr(str)
99
- w.setpos(i, str.size+1)
99
+ w.setpos(i, str.size+1)
100
100
  w.box('|', '-')
101
101
  w.refresh
102
102
  end
@@ -8,8 +8,8 @@ c = SPEED_OF_LIGHT;
8
8
  au = ASTRONOMICAL_UNIT;
9
9
  minutes = MINUTE;
10
10
 
11
- # distance stored in meters
12
- r_earth = 1.00 * au;
11
+ # distance stored in meters
12
+ r_earth = 1.00 * au;
13
13
  r_mars = 1.52 * au;
14
14
 
15
15
  t_min = (r_mars - r_earth) / c;
@@ -30,8 +30,8 @@ c = SPEED_OF_LIGHT;
30
30
  au = ASTRONOMICAL_UNIT;
31
31
  minutes = MINUTE;
32
32
 
33
- # distance stored in meters
34
- r_earth = 1.00 * au;
33
+ # distance stored in meters
34
+ r_earth = 1.00 * au;
35
35
  r_mars = 1.52 * au;
36
36
 
37
37
  t_min = (r_mars - r_earth) / c;
@@ -13,7 +13,7 @@ p eval
13
13
  p evec
14
14
 
15
15
  =begin
16
- This can be compared with the corresponding output from GNU OCTAVE,
16
+ This can be compared with the corresponding output from GNU OCTAVE,
17
17
 
18
18
  octave> [v,d] = eig(vander([-1 -2 3 4]));
19
19
  octave> diag(d)
@@ -61,13 +61,13 @@ end
61
61
  # The differences with Tabelle 5.1 are from NMAX and dx.
62
62
  # If we use NMAX=512 and dx=0.02, we obtain the same results (but much slower).
63
63
  STDERR.puts(" Eigen values:")
64
- STDERR.printf(" %2s Exact %5s %10s | %2s Exact %5s %10s\n",
64
+ STDERR.printf(" %2s Exact %5s %10s | %2s Exact %5s %10s\n",
65
65
  "n", "E", "err\(\%\)", "n", "E", "err\(\%\)")
66
66
  STDERR.print(" -----------------------------------------------------\n")
67
67
  for n1 in 0..6 do
68
68
  exact1 = n1 + 0.5
69
69
  exact2 = n1 + 7 + 0.5
70
- STDERR.printf(" %2d %4.1f %8.5f %+7.5f | %2d %4.1f %8.5f %+7.5f\n",
70
+ STDERR.printf(" %2d %4.1f %8.5f %+7.5f | %2d %4.1f %8.5f %+7.5f\n",
71
71
  n1, exact1, eval[n1], (exact1 - eval[n1])/exact1*100,
72
72
  n1+7, exact2, eval[n1+7], (exact2-eval[n1+7])/exact2*100)
73
73
  end
@@ -75,7 +75,7 @@ STDERR.flush
75
75
 
76
76
  # Eigen vectors of n = 0, 1, 2, 10. See p217 "Abb 5.3"
77
77
  c = Math::sqrt(1.0/dx)
78
- vec0 = evec.col(0).scale(c)
78
+ vec0 = evec.col(0).scale(c)
79
79
  vec1 = evec.col(1).scale(c)
80
80
  vec2 = evec.col(2).scale(c)
81
81
  vec10 = evec.col(10).scale(c)
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- require("gsl")
2
+ require("gsl")
3
3
 
4
4
  n = 128
5
5
  data = GSL::Vector::Complex.alloc(n)
@@ -11,7 +11,7 @@ end
11
11
 
12
12
  rtable = GSL::FFT::RealWavetable.alloc(n)
13
13
  rwork = GSL::FFT::RealWorkspace.alloc(n)
14
-
14
+
15
15
  #ffted = data.real_transform(rtable, rwork)
16
16
  #ffted = data.real_transform(rtable)
17
17
  #ffted = data.real_transform(rwork)
@@ -22,9 +22,9 @@ ffted = data.real_transform()
22
22
  for i in 11...n do
23
23
  ffted[i] = 0.0
24
24
  end
25
-
25
+
26
26
  hctable = GSL::FFT::HalfComplexWavetable.alloc(n)
27
-
27
+
28
28
  #data2 = ffted.halfcomplex_inverse(hctable, rwork)
29
29
  #data2 = ffted.halfcomplex_inverse()
30
30
  #data2 = ffted.ifft
@@ -12,15 +12,15 @@ org = data.clone
12
12
 
13
13
  rtable = GSL::FFT::RealWavetable.alloc(n)
14
14
  rwork = GSL::FFT::RealWorkspace.alloc(n)
15
-
15
+
16
16
  data.real_transform!(rtable, rwork)
17
17
 
18
18
  for i in 11...n do
19
19
  data[i] = 0.0
20
20
  end
21
-
21
+
22
22
  hctable = GSL::FFT::HalfComplexWavetable.alloc(n)
23
-
23
+
24
24
  #data.halfcomplex_inverse!(hctable, rwork)
25
25
  #data.halfcomplex_inverse!()
26
26
  #data.ifft!
@@ -22,7 +22,7 @@ p err
22
22
  GSL::graph(x, y, y0+amp*GSL::Sf::exp(-b*x))
23
23
 
24
24
  # This will result in
25
- # [ 1.019e+00 5.045e+00 1.040e-01 ]
25
+ # [ 1.019e+00 5.045e+00 1.040e-01 ]
26
26
  # [ 3.385e-02 5.395e-02 2.826e-03 ]
27
27
 
28
28
  # GNUPLOT results:
@@ -2,7 +2,7 @@
2
2
  require("gsl")
3
3
 
4
4
  GSL::Rng.env_setup()
5
-
5
+
6
6
  r = GSL::Rng.alloc(GSL::Rng::DEFAULT)
7
7
 
8
8
  n = 19
@@ -2,8 +2,8 @@
2
2
  require("gsl")
3
3
 
4
4
  unless GSL::MultiFit.const_defined?("Ndlinear")
5
- puts("The extension library NDLINEAR is not installed.")
6
- exit()
5
+ puts("The extension library NDLINEAR is not installed.")
6
+ exit()
7
7
  end
8
8
 
9
9
  N_DIM = 3
@@ -13,33 +13,33 @@ N_SUM_PHI = 9
13
13
  R_MAX = 3.0
14
14
 
15
15
  def psi_real_exact(k, l, m, r, theta, phi)
16
- rr = GSL::pow(r, l)*Math::exp(-r*r)*GSL::Sf::laguerre_n(k, l + 0.5, 2 * r * r)
16
+ rr = GSL::pow(r, l)*Math::exp(-r*r)*GSL::Sf::laguerre_n(k, l + 0.5, 2 * r * r)
17
17
 
18
- tt = GSL::Sf::legendre_sphPlm(l, m, Math::cos(theta))
18
+ tt = GSL::Sf::legendre_sphPlm(l, m, Math::cos(theta))
19
19
 
20
- pp = Math::cos(m*phi)
20
+ pp = Math::cos(m*phi)
21
21
 
22
- rr*tt*pp
22
+ rr*tt*pp
23
23
  end
24
24
 
25
25
  basis_r = Proc.new { |r, y, params|
26
- params.eval(r, y)
26
+ params.eval(r, y)
27
27
  }
28
28
 
29
29
  basis_theta = Proc.new { |theta, y, params|
30
- for i in 0...N_SUM_THETA do
31
- y[i] = GSL::Sf::legendre_Pl(i, Math::cos(theta));
32
- end
30
+ for i in 0...N_SUM_THETA do
31
+ y[i] = GSL::Sf::legendre_Pl(i, Math::cos(theta));
32
+ end
33
33
  }
34
34
 
35
35
  basis_phi = Proc.new { |phi, y, params|
36
- for i in 0...N_SUM_PHI do
37
- if i%2 == 0
38
- y[i] = Math::cos(i*0.5*phi)
39
- else
40
- y[i] = Math::sin((i+1.0)*0.5*phi)
41
- end
42
- end
36
+ for i in 0...N_SUM_PHI do
37
+ if i%2 == 0
38
+ y[i] = Math::cos(i*0.5*phi)
39
+ else
40
+ y[i] = Math::sin((i+1.0)*0.5*phi)
41
+ end
42
+ end
43
43
  }
44
44
 
45
45
 
@@ -67,19 +67,19 @@ data = GSL::Vector.alloc(NDATA)
67
67
 
68
68
  for i in 0...NDATA do
69
69
 
70
- r = rng.uniform()*R_MAX
71
- theta = rng.uniform()*Math::PI
72
- phi = rng.uniform()*2*Math::PI
70
+ r = rng.uniform()*R_MAX
71
+ theta = rng.uniform()*Math::PI
72
+ phi = rng.uniform()*2*Math::PI
73
73
 
74
- psi = psi_real_exact(k, l, m, r, theta, phi)
74
+ psi = psi_real_exact(k, l, m, r, theta, phi)
75
75
 
76
- dpsi = rng.gaussian(0.05*psi)
76
+ dpsi = rng.gaussian(0.05*psi)
77
77
 
78
- vars[i,0] = r
79
- vars[i,1] = theta
80
- vars[i,2] = phi
78
+ vars[i,0] = r
79
+ vars[i,1] = theta
80
+ vars[i,2] = phi
81
81
 
82
- data[i] = psi + dpsi
82
+ data[i] = psi + dpsi
83
83
  end
84
84
 
85
85
  #GSL::MultiFit::Ndlinear::design(vars, X, ndlinear)
@@ -99,18 +99,18 @@ x = GSL::Vector.alloc(N_DIM)
99
99
 
100
100
  r = 0.01
101
101
  while r < R_MAX do
102
- theta = 0.0
103
- while theta < Math::PI do
104
- phi = 0.0
105
- while phi < 2*Math::PI do
106
- dV = r*r*Math::sin(theta)*dr*dtheta*dphi
107
- x[0] = r
108
- x[1] = theta
109
- x[2] = phi
110
-
111
- psi_model, err = GSL::MultiFit::Ndlinear.calc(x, coeffs, cov, ndlinear)
112
- psi = psi_real_exact(k, l, m, r, theta, phi)
113
- err = psi_model - psi
102
+ theta = 0.0
103
+ while theta < Math::PI do
104
+ phi = 0.0
105
+ while phi < 2*Math::PI do
106
+ dV = r*r*Math::sin(theta)*dr*dtheta*dphi
107
+ x[0] = r
108
+ x[1] = theta
109
+ x[2] = phi
110
+
111
+ psi_model, err = GSL::MultiFit::Ndlinear.calc(x, coeffs, cov, ndlinear)
112
+ psi = psi_real_exact(k, l, m, r, theta, phi)
113
+ err = psi_model - psi
114
114
  eps_rms += err * err * dV;
115
115
  volume += dV;
116
116
 
@@ -118,13 +118,13 @@ while r < R_MAX do
118
118
  printf("%e %e %e %e\n", r, theta, psi, psi_model)
119
119
  end
120
120
 
121
- phi += dphi
122
- end
123
- theta += dtheta
124
- end
125
- printf("\n");
121
+ phi += dphi
122
+ end
123
+ theta += dtheta
124
+ end
125
+ printf("\n");
126
126
 
127
- r += dr
127
+ r += dr
128
128
  end
129
129
 
130
130
  eps_rms /= volume