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
@@ -9,18 +9,18 @@
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
11
 
12
- #include "rb_gsl_sf.h"
12
+ #include "include/rb_gsl_sf.h"
13
13
 
14
14
  static VALUE rb_gsl_sf_log(VALUE obj, VALUE x)
15
15
  {
16
- if (COMPLEX_P(x) || VECTOR_COMPLEX_P(x) || MATRIX_COMPLEX_P(x))
16
+ if (COMPLEX_P(x) || VECTOR_COMPLEX_P(x) || MATRIX_COMPLEX_P(x))
17
17
  return rb_gsl_math_complex_eval(gsl_complex_log, x);
18
18
  return rb_gsl_sf_eval1(gsl_sf_log, x);
19
19
  }
20
20
 
21
21
  static VALUE rb_gsl_sf_log10(VALUE obj, VALUE x)
22
22
  {
23
- if (COMPLEX_P(x) || VECTOR_COMPLEX_P(x) || MATRIX_COMPLEX_P(x))
23
+ if (COMPLEX_P(x) || VECTOR_COMPLEX_P(x) || MATRIX_COMPLEX_P(x))
24
24
  return rb_gsl_math_complex_eval(gsl_complex_log10, x);
25
25
  return rb_gsl_sf_eval1(log10, x);
26
26
  }
@@ -93,7 +93,7 @@ static VALUE rb_gsl_sf_log_1plusx_mx_e(VALUE obj, VALUE x)
93
93
  void Init_gsl_sf_log(VALUE module)
94
94
  {
95
95
  rb_define_module_function(module, "log", rb_gsl_sf_log, 1);
96
- rb_define_module_function(module, "log10", rb_gsl_sf_log10, 1);
96
+ rb_define_module_function(module, "log10", rb_gsl_sf_log10, 1);
97
97
  rb_define_module_function(module, "log_e", rb_gsl_sf_log_e, 1);
98
98
  rb_define_module_function(module, "log_abs", rb_gsl_sf_log_abs, 1);
99
99
  rb_define_module_function(module, "log_abs_e", rb_gsl_sf_log_abs_e, 1);
@@ -0,0 +1,235 @@
1
+ #include "include/rb_gsl.h"
2
+
3
+ static VALUE cWorkspace;
4
+
5
+ static VALUE rb_gsl_sf_mathieu_alloc(VALUE klass, VALUE n, VALUE q)
6
+ {
7
+ gsl_sf_mathieu_workspace *w;
8
+ w = gsl_sf_mathieu_alloc((size_t) FIX2INT(n), NUM2DBL(q));
9
+ return Data_Wrap_Struct(klass, 0, gsl_sf_mathieu_free, w);
10
+ }
11
+
12
+ static VALUE sf_mathieu_eval(VALUE order, VALUE qq,
13
+ int (*f)(int, double, gsl_sf_result*))
14
+ {
15
+ gsl_sf_result r;
16
+ (*f)(FIX2INT(order), NUM2DBL(qq), &r);
17
+ return rb_float_new(r.val);
18
+ }
19
+
20
+ static VALUE sf_mathieu_eval2(VALUE n1, VALUE n2, VALUE q, VALUE x,
21
+ int (*f)(int, int, double, double, gsl_sf_result*))
22
+ {
23
+ gsl_sf_result r;
24
+ (*f)(FIX2INT(n1),FIX2INT(n2), NUM2DBL(q), NUM2DBL(x), &r);
25
+ return rb_float_new(r.val);
26
+ }
27
+
28
+ static VALUE sf_mathieu_array_eval(int argc, VALUE *argv,
29
+ int (*f)(int, int, double, gsl_sf_mathieu_workspace*, double[]))
30
+ {
31
+ gsl_sf_mathieu_workspace *w;
32
+ gsl_vector *v;
33
+ int n1, n2;
34
+ double q;
35
+ switch (argc) {
36
+ case 4:
37
+ if (!rb_obj_is_kind_of(argv[3], cWorkspace)) {
38
+ rb_raise(rb_eTypeError, "Wrong argument type 3 (%s detected, %s expected)",
39
+ rb_class2name(CLASS_OF(argv[3])), rb_class2name(cWorkspace));
40
+ }
41
+ n1 = FIX2INT(argv[0]);
42
+ n2 = FIX2INT(argv[1]);
43
+ q = NUM2DBL(argv[2]);
44
+ Data_Get_Struct(argv[3], gsl_sf_mathieu_workspace, w);
45
+ break;
46
+ default:
47
+ rb_raise(rb_eArgError, "Wrong number of arguments. (%d for 4)", argc);
48
+ }
49
+ v = gsl_vector_alloc(n2 - n1 + 1);
50
+ (*f)(n1, n2, q, w, v->data);
51
+ return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
52
+ }
53
+
54
+ static VALUE sf_mathieu_array_eval2(int argc, VALUE *argv,
55
+ int (*f)(int, int, double, double, gsl_sf_mathieu_workspace*, double[]))
56
+ {
57
+ gsl_sf_mathieu_workspace *w;
58
+ gsl_vector *v;
59
+ int n1, n2;
60
+ double q, x;
61
+ switch (argc) {
62
+ case 5:
63
+ if (!rb_obj_is_kind_of(argv[4], cWorkspace)) {
64
+ rb_raise(rb_eTypeError, "Wrong argument type 4 (%s detected, %s expected)",
65
+ rb_class2name(CLASS_OF(argv[4])), rb_class2name(cWorkspace));
66
+ }
67
+ n1 = FIX2INT(argv[0]);
68
+ n2 = FIX2INT(argv[1]);
69
+ q = NUM2DBL(argv[2]);
70
+ x = NUM2DBL(argv[3]);
71
+ Data_Get_Struct(argv[4], gsl_sf_mathieu_workspace, w);
72
+ break;
73
+ default:
74
+ rb_raise(rb_eArgError, "Wrong number of arguments. (%d for 5)", argc);
75
+ }
76
+ v = gsl_vector_alloc(n2 - n1 + 1);
77
+ (*f)(n1, n2, q, x, w, v->data);
78
+ return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
79
+ }
80
+ static VALUE sf_mathieu_array_eval3(int argc, VALUE *argv,
81
+ int (*f)(int, int, int, double, double, gsl_sf_mathieu_workspace*, double[]))
82
+ {
83
+ gsl_sf_mathieu_workspace *w;
84
+ gsl_vector *v;
85
+ int n1, n2, n3;
86
+ double q, x;
87
+ switch (argc) {
88
+ case 6:
89
+ if (!rb_obj_is_kind_of(argv[5], cWorkspace)) {
90
+ rb_raise(rb_eTypeError, "Wrong argument type 5 (%s detected, %s expected)",
91
+ rb_class2name(CLASS_OF(argv[5])), rb_class2name(cWorkspace));
92
+ }
93
+ n1 = FIX2INT(argv[0]);
94
+ n2 = FIX2INT(argv[1]);
95
+ n3 = FIX2INT(argv[2]);
96
+ q = NUM2DBL(argv[3]);
97
+ x = NUM2DBL(argv[4]);
98
+ Data_Get_Struct(argv[5], gsl_sf_mathieu_workspace, w);
99
+ break;
100
+ default:
101
+ rb_raise(rb_eArgError, "Wrong number of arguments. (%d for 6)", argc);
102
+ }
103
+ v = gsl_vector_alloc(n3 - n2 + 1);
104
+ (*f)(n1, n2, n3, q, x, w, v->data);
105
+ return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
106
+ }
107
+ static VALUE sf_mathieu_eval_int_double2(VALUE order, VALUE qq, VALUE zz,
108
+ int (*f)(int, double, double, gsl_sf_result*))
109
+ {
110
+ gsl_sf_result r;
111
+ (*f)(FIX2INT(order), NUM2DBL(qq), NUM2DBL(zz), &r);
112
+ return rb_float_new(r.val);
113
+ }
114
+ static VALUE sf_mathieu_eval_e_int_double2(VALUE order, VALUE qq, VALUE zz,
115
+ int (*f)(int, double, double, gsl_sf_result*))
116
+ {
117
+ gsl_sf_result *r;
118
+ VALUE val;
119
+ val = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, r);
120
+ (*f)(FIX2INT(order), NUM2DBL(qq), NUM2DBL(zz), r);
121
+ return val;
122
+ }
123
+
124
+ static VALUE sf_mathieu_eval_e_int2_double2(VALUE n1, VALUE n2, VALUE qq, VALUE zz,
125
+ int (*f)(int, int, double, double, gsl_sf_result*))
126
+ {
127
+ gsl_sf_result *r;
128
+ VALUE val;
129
+ val = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, r);
130
+ (*f)(FIX2INT(n1), FIX2INT(n2), NUM2DBL(qq), NUM2DBL(zz), r);
131
+ return val;
132
+ }
133
+ /**********/
134
+ static VALUE rb_gsl_sf_mathieu_a_e(VALUE module, VALUE order, VALUE qq)
135
+ {
136
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_mathieu_a, order, qq);
137
+ }
138
+ static VALUE rb_gsl_sf_mathieu_a(VALUE module, VALUE order, VALUE qq)
139
+ {
140
+ return sf_mathieu_eval(order, qq, gsl_sf_mathieu_a);
141
+ }
142
+ static VALUE rb_gsl_sf_mathieu_a_array(VALUE module, int argc, VALUE *argv)
143
+ {
144
+ return sf_mathieu_array_eval(argc, argv, gsl_sf_mathieu_a_array);
145
+ }
146
+ static VALUE rb_gsl_sf_mathieu_b_e(VALUE module, VALUE order, VALUE qq)
147
+ {
148
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_mathieu_b, order, qq);
149
+ }
150
+ static VALUE rb_gsl_sf_mathieu_b(VALUE module, VALUE order, VALUE qq)
151
+ {
152
+ return sf_mathieu_eval(order, qq, gsl_sf_mathieu_b);
153
+ }
154
+ static VALUE rb_gsl_sf_mathieu_b_array(VALUE module, int argc, VALUE *argv)
155
+ {
156
+ return sf_mathieu_array_eval(argc, argv, gsl_sf_mathieu_b_array);
157
+ }
158
+ static VALUE rb_gsl_sf_mathieu_ce_e(VALUE module, VALUE order, VALUE qq, VALUE zz)
159
+ {
160
+ return sf_mathieu_eval_e_int_double2(order, qq, zz, gsl_sf_mathieu_ce);
161
+ }
162
+ static VALUE rb_gsl_sf_mathieu_ce(VALUE module, VALUE order, VALUE qq, VALUE zz)
163
+ {
164
+ return sf_mathieu_eval_int_double2(order, qq, zz, gsl_sf_mathieu_ce);
165
+ }
166
+ static VALUE rb_gsl_sf_mathieu_ce_array(VALUE module, int argc, VALUE *argv)
167
+ {
168
+ return sf_mathieu_array_eval2(argc, argv, gsl_sf_mathieu_ce_array);
169
+ }
170
+ static VALUE rb_gsl_sf_mathieu_se_e(VALUE module, VALUE order, VALUE qq, VALUE zz)
171
+ {
172
+ return sf_mathieu_eval_e_int_double2(order, qq, zz, gsl_sf_mathieu_se);
173
+ }
174
+ static VALUE rb_gsl_sf_mathieu_se(VALUE module, VALUE order, VALUE qq, VALUE zz)
175
+ {
176
+ return sf_mathieu_eval_int_double2(order, qq, zz, gsl_sf_mathieu_se);
177
+ }
178
+ static VALUE rb_gsl_sf_mathieu_se_array(VALUE module, int argc, VALUE *argv)
179
+ {
180
+ return sf_mathieu_array_eval2(argc, argv, gsl_sf_mathieu_se_array);
181
+ }
182
+
183
+ /*****/
184
+ static VALUE rb_gsl_sf_mathieu_Mc_e(VALUE module, VALUE n1, VALUE n2, VALUE q, VALUE x)
185
+ {
186
+ return sf_mathieu_eval_e_int2_double2(n1, n2, q, x, gsl_sf_mathieu_Mc);
187
+ }
188
+ static VALUE rb_gsl_sf_mathieu_Mc(VALUE module, VALUE n1, VALUE n2, VALUE q, VALUE x)
189
+ {
190
+ return sf_mathieu_eval2(n1, n2, q, x, gsl_sf_mathieu_Mc);
191
+ }
192
+ static VALUE rb_gsl_sf_mathieu_Mc_array(VALUE module, int argc, VALUE *argv)
193
+ {
194
+ return sf_mathieu_array_eval3(argc, argv, gsl_sf_mathieu_Mc_array);
195
+ }
196
+ static VALUE rb_gsl_sf_mathieu_Ms_e(VALUE module, VALUE n1, VALUE n2, VALUE q, VALUE x)
197
+ {
198
+ return sf_mathieu_eval_e_int2_double2(n1, n2, q, x, gsl_sf_mathieu_Ms);
199
+ }
200
+ static VALUE rb_gsl_sf_mathieu_Ms(VALUE module, VALUE n1, VALUE n2, VALUE q, VALUE x)
201
+ {
202
+ return sf_mathieu_eval2(n1, n2, q, x, gsl_sf_mathieu_Ms);
203
+ }
204
+ static VALUE rb_gsl_sf_mathieu_Ms_array(VALUE module, int argc, VALUE *argv)
205
+ {
206
+ return sf_mathieu_array_eval3(argc, argv, gsl_sf_mathieu_Ms_array);
207
+ }
208
+ /*****/
209
+ void Init_sf_mathieu(VALUE module)
210
+ {
211
+ VALUE mMathieu;
212
+
213
+ mMathieu = rb_define_module_under(module, "Mathieu");
214
+ cWorkspace = rb_define_class_under(mMathieu, "Workspace", cGSL_Object);
215
+ rb_define_singleton_method(cWorkspace, "alloc", rb_gsl_sf_mathieu_alloc, 2);
216
+
217
+ rb_define_module_function(module, "mathieu_a", rb_gsl_sf_mathieu_a, 2);
218
+ rb_define_module_function(module, "mathieu_a_e", rb_gsl_sf_mathieu_a_e, 2);
219
+ rb_define_module_function(module, "mathieu_a_array", rb_gsl_sf_mathieu_a_array, -1);
220
+ rb_define_module_function(module, "mathieu_b", rb_gsl_sf_mathieu_b, 2);
221
+ rb_define_module_function(module, "mathieu_b_e", rb_gsl_sf_mathieu_b_e, 2);
222
+ rb_define_module_function(module, "mathieu_b_array", rb_gsl_sf_mathieu_b_array, -1);
223
+ rb_define_module_function(module, "mathieu_ce", rb_gsl_sf_mathieu_ce, 3);
224
+ rb_define_module_function(module, "mathieu_ce_e", rb_gsl_sf_mathieu_ce_e, 3);
225
+ rb_define_module_function(module, "mathieu_ce_array", rb_gsl_sf_mathieu_ce_array, -1);
226
+ rb_define_module_function(module, "mathieu_se", rb_gsl_sf_mathieu_se, 3);
227
+ rb_define_module_function(module, "mathieu_se_e", rb_gsl_sf_mathieu_se_e, 3);
228
+ rb_define_module_function(module, "mathieu_se_array", rb_gsl_sf_mathieu_se_array, -1);
229
+ rb_define_module_function(module, "mathieu_Mc", rb_gsl_sf_mathieu_Mc, 4);
230
+ rb_define_module_function(module, "mathieu_Mc_e", rb_gsl_sf_mathieu_Mc_e, 4);
231
+ rb_define_module_function(module, "mathieu_Mc_array", rb_gsl_sf_mathieu_Mc_array, -1);
232
+ rb_define_module_function(module, "mathieu_Ms", rb_gsl_sf_mathieu_Ms, 4);
233
+ rb_define_module_function(module, "mathieu_Ms_e", rb_gsl_sf_mathieu_Ms_e, 4);
234
+ rb_define_module_function(module, "mathieu_Ms_array", rb_gsl_sf_mathieu_Ms_array, -1);
235
+ }
@@ -9,7 +9,7 @@
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
11
 
12
- #include "rb_gsl_sf.h"
12
+ #include "include/rb_gsl_sf.h"
13
13
 
14
14
  VALUE rb_gsl_complex_pow(int argc, VALUE *argv, VALUE obj);
15
15
  static VALUE rb_gsl_sf_pow_int(VALUE obj, VALUE x, VALUE n)
@@ -9,7 +9,7 @@
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
11
 
12
- #include "rb_gsl_sf.h"
12
+ #include "include/rb_gsl_sf.h"
13
13
 
14
14
  static VALUE rb_gsl_sf_psi_int(VALUE obj, VALUE n)
15
15
  {
@@ -31,19 +31,15 @@ static VALUE rb_gsl_sf_psi_e(VALUE obj, VALUE x)
31
31
  return rb_gsl_sf_eval_e(gsl_sf_psi_e, x);
32
32
  }
33
33
 
34
- #ifdef GSL_1_6_LATER
35
34
  static VALUE rb_gsl_sf_psi_1(VALUE obj, VALUE x)
36
35
  {
37
36
  return rb_gsl_sf_eval1(gsl_sf_psi_1, x);
38
37
  }
39
- #endif
40
38
 
41
- #ifdef GSL_1_4_9_LATER
42
39
  static VALUE rb_gsl_sf_psi_1_e(VALUE obj, VALUE x)
43
40
  {
44
41
  return rb_gsl_sf_eval_e(gsl_sf_psi_1_e, x);
45
42
  }
46
- #endif
47
43
 
48
44
  static VALUE rb_gsl_sf_psi_1piy(VALUE obj, VALUE x)
49
45
  {
@@ -88,11 +84,6 @@ void Init_gsl_sf_psi(VALUE module)
88
84
 
89
85
  rb_define_module_function(module, "psi", rb_gsl_sf_psi, 1);
90
86
  rb_define_module_function(module, "psi_e", rb_gsl_sf_psi_e, 1);
91
-
92
- #ifdef GSL_1_6_LATER
93
- rb_define_module_function(module, "psi_1", rb_gsl_sf_psi_1, 1);
94
- #endif
95
- #ifdef GSL_1_4_9_LATER
96
- rb_define_module_function(module, "psi_1_e", rb_gsl_sf_psi_1_e, 1);
97
- #endif
87
+ rb_define_module_function(module, "psi_1", rb_gsl_sf_psi_1, 1);
88
+ rb_define_module_function(module, "psi_1_e", rb_gsl_sf_psi_1_e, 1);
98
89
  }
@@ -9,7 +9,7 @@
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
11
 
12
- #include "rb_gsl_sf.h"
12
+ #include "include/rb_gsl_sf.h"
13
13
 
14
14
  static VALUE rb_gsl_sf_synchrotron_1(VALUE obj, VALUE x)
15
15
  {
@@ -9,7 +9,7 @@
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
11
 
12
- #include "rb_gsl_sf.h"
12
+ #include "include/rb_gsl_sf.h"
13
13
 
14
14
  static VALUE rb_gsl_sf_transport_2(VALUE obj, VALUE x)
15
15
  {
@@ -9,11 +9,11 @@
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
11
 
12
- #include "rb_gsl_sf.h"
12
+ #include "include/rb_gsl_sf.h"
13
13
 
14
14
  static VALUE rb_gsl_sf_sin(VALUE obj, VALUE x)
15
15
  {
16
- if (COMPLEX_P(x) || VECTOR_COMPLEX_P(x) || MATRIX_COMPLEX_P(x))
16
+ if (COMPLEX_P(x) || VECTOR_COMPLEX_P(x) || MATRIX_COMPLEX_P(x))
17
17
  return rb_gsl_math_complex_eval(gsl_complex_sin, x);
18
18
  return rb_gsl_sf_eval1(gsl_sf_sin, x);
19
19
  }
@@ -25,7 +25,7 @@ static VALUE rb_gsl_sf_sin_e(VALUE obj, VALUE x)
25
25
 
26
26
  static VALUE rb_gsl_sf_cos(VALUE obj, VALUE x)
27
27
  {
28
- if (COMPLEX_P(x) || VECTOR_COMPLEX_P(x) || MATRIX_COMPLEX_P(x))
28
+ if (COMPLEX_P(x) || VECTOR_COMPLEX_P(x) || MATRIX_COMPLEX_P(x))
29
29
  return rb_gsl_math_complex_eval(gsl_complex_cos, x);
30
30
  return rb_gsl_sf_eval1(gsl_sf_cos, x);
31
31
  }
@@ -57,7 +57,7 @@ static VALUE rb_gsl_sf_sinc_e(VALUE obj, VALUE x)
57
57
  }
58
58
 
59
59
  static VALUE rb_gsl_sf_complex_XXX_e(int argc, VALUE *argv, VALUE obj,
60
- int (*f)(double, double, gsl_sf_result*, gsl_sf_result*))
60
+ int (*f)(double, double, gsl_sf_result*, gsl_sf_result*))
61
61
  {
62
62
  gsl_sf_result *r1, *r2;
63
63
  gsl_complex *z;
@@ -9,7 +9,7 @@
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
11
 
12
- #include "rb_gsl_sf.h"
12
+ #include "include/rb_gsl_sf.h"
13
13
 
14
14
  static VALUE rb_gsl_sf_zeta_int(VALUE obj, VALUE n)
15
15
  {
@@ -68,7 +68,6 @@ static VALUE rb_gsl_sf_eta_e(VALUE obj, VALUE x)
68
68
  return rb_gsl_sf_eval_e(gsl_sf_eta_e, x);
69
69
  }
70
70
 
71
- #ifdef GSL_1_4_9_LATER
72
71
  static VALUE rb_gsl_sf_zetam1_int(VALUE obj, VALUE n)
73
72
  {
74
73
  VALUE nn;
@@ -94,7 +93,6 @@ static VALUE rb_gsl_sf_zetam1_e(VALUE obj, VALUE x)
94
93
  {
95
94
  return rb_gsl_sf_eval_e(gsl_sf_zetam1_e, x);
96
95
  }
97
- #endif
98
96
 
99
97
  void Init_gsl_sf_zeta(VALUE module)
100
98
  {
@@ -110,10 +108,8 @@ void Init_gsl_sf_zeta(VALUE module)
110
108
  rb_define_module_function(module, "eta", rb_gsl_sf_eta, 1);
111
109
  rb_define_module_function(module, "eta_e", rb_gsl_sf_eta_e, 1);
112
110
 
113
- #ifdef GSL_1_4_9_LATER
114
111
  rb_define_module_function(module, "zetam1_int", rb_gsl_sf_zetam1_int, 1);
115
112
  rb_define_module_function(module, "zetam1_int_e", rb_gsl_sf_zetam1_int_e, 1);
116
113
  rb_define_module_function(module, "zetam1", rb_gsl_sf_zetam1, 1);
117
114
  rb_define_module_function(module, "zetam1_e", rb_gsl_sf_zetam1_e, 1);
118
- #endif
119
115
  }
@@ -9,51 +9,50 @@
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
11
 
12
- #include "rb_gsl_config.h"
13
- #include "rb_gsl_fft.h"
12
+ #include "include/rb_gsl_fft.h"
14
13
 
15
14
  enum FFT_CONV_CORR {
16
15
  RB_GSL_FFT_CONVOLVE = 0,
17
16
  RB_GSL_FFT_CORRELATE = 1,
18
17
  RB_GSL_FFT_REAL = 2,
19
18
  RB_GSL_FFT_HALFCOMPLEX = 3,
20
- RB_GSL_FFT_DECONVOLVE = 4,
19
+ RB_GSL_FFT_DECONVOLVE = 4,
21
20
  };
22
21
 
23
22
  #ifndef WAVETABLE_P
24
- #define WAVETABLE_P(x) (rb_obj_is_kind_of(x,cgsl_fft_halfcomplex_wavetable)?1:0)
23
+ #define WAVETABLE_P(x) (rb_obj_is_kind_of(x,cgsl_fft_halfcomplex_wavetable) ? 1 : 0)
25
24
  #endif
26
25
 
27
26
  #ifndef CHECK_WAVETABLE
28
- #define CHECK_WAVETABLE(x) if(!rb_obj_is_kind_of(x,cgsl_fft_halfcomplex_wavetable))\
27
+ #define CHECK_WAVETABLE(x) if(!rb_obj_is_kind_of(x,cgsl_fft_halfcomplex_wavetable)) \
29
28
  rb_raise(rb_eTypeError, "wrong argument type (FFT::HalfComplex::Wavetable expected)");
30
29
  #endif
31
30
 
32
31
  #ifndef WORKSPACE_P
33
- #define WORKSPACE_P(x) (rb_obj_is_kind_of(x,cgsl_fft_real_workspace)?1:0)
32
+ #define WORKSPACE_P(x) (rb_obj_is_kind_of(x,cgsl_fft_real_workspace) ? 1 : 0)
34
33
  #endif
35
34
 
36
35
  #ifndef CHECK_WORKSPACE
37
- #define CHECK_WORKSPACE(x) if(!rb_obj_is_kind_of(x,cgsl_fft_real_workspace))\
36
+ #define CHECK_WORKSPACE(x) if(!rb_obj_is_kind_of(x,cgsl_fft_real_workspace)) \
38
37
  rb_raise(rb_eTypeError, "wrong argument type (FFT::Real::Workspace expected)");
39
38
  #endif
40
39
 
41
40
  static void complex_mul(double re1, double im1, double re2, double im2,
42
- double *re, double *im)
41
+ double *re, double *im)
43
42
  {
44
43
  *re = re1*re2 - im1*im2;
45
44
  *im = re1*im2 + im1*re2;
46
45
  }
47
46
 
48
47
  static void complex_conj_mul(double re1, double im1, double re2, double im2,
49
- double *re, double *im)
48
+ double *re, double *im)
50
49
  {
51
50
  *re = re1*re2 + im1*im2;
52
51
  *im = -re1*im2 + im1*re2;
53
52
  }
54
53
 
55
54
  static void complex_div(double re1, double im1, double re2, double im2,
56
- double *re, double *im)
55
+ double *re, double *im)
57
56
  {
58
57
  double factor = re2*re2 + im2*im2;
59
58
  complex_conj_mul(re1, im1, re2, im2, re, im);
@@ -62,55 +61,50 @@ static void complex_div(double re1, double im1, double re2, double im2,
62
61
  }
63
62
 
64
63
  /* data1, data2: FFTed data */
65
- static void rbgsl_calc_conv_corr_c(const double *data1, const double *data2,
66
- double *data3, size_t size,
67
- gsl_fft_halfcomplex_wavetable *table,
68
- gsl_fft_real_workspace *space, enum FFT_CONV_CORR calcflag)
64
+ static void rbgsl_calc_conv_corr_c(const double *data1, const double *data2,
65
+ double *data3, size_t size,
66
+ gsl_fft_halfcomplex_wavetable *table,
67
+ gsl_fft_real_workspace *space, enum FFT_CONV_CORR calcflag)
69
68
  {
70
69
  size_t i;
71
70
  double re1, re2, im1, im2;
72
71
  void (*complex_cal)(double, double, double, double, double*, double*);
73
-
72
+
74
73
  switch (calcflag) {
75
74
  case RB_GSL_FFT_CONVOLVE:
76
75
  complex_cal = complex_mul;
77
76
  data3[0] = data1[0]*data2[0];
78
- data3[size-1] = data1[size-1]*data2[size-1];
77
+ data3[size-1] = data1[size-1]*data2[size-1];
79
78
  break;
80
- case RB_GSL_FFT_CORRELATE:
81
- data3[0] = data1[0]*data2[0];
82
- data3[size-1] = data1[size-1]*data2[size-1];
79
+ case RB_GSL_FFT_CORRELATE:
80
+ data3[0] = data1[0]*data2[0];
81
+ data3[size-1] = data1[size-1]*data2[size-1];
83
82
  complex_cal = complex_conj_mul;
84
83
  break;
85
84
  case RB_GSL_FFT_DECONVOLVE:
86
85
  complex_cal = complex_div;
87
86
  data3[0] = data1[0]/data2[0];
88
- data3[size-1] = data1[size-1]/data2[size-1];
87
+ data3[size-1] = data1[size-1]/data2[size-1];
89
88
  break;
90
89
  default:
91
90
  rb_raise(rb_eArgError, "Wrong flag.");
92
91
  break;
93
92
  }
94
-
95
- for (i = 1; i < size-1; i+=2) {
93
+
94
+ for (i = 1; i < size-1; i += 2) {
96
95
  re1 = data1[i]; im1 = data1[i+1];
97
96
  re2 = data2[i]; im2 = data2[i+1];
98
97
  (*complex_cal)(re1, im1, re2, im2, &data3[i], &data3[i+1]);
99
98
  }
100
-
101
99
  }
102
100
 
103
101
  static VALUE rb_gsl_fft_conv_corr(int argc, VALUE *argv, VALUE obj,
104
- enum FFT_CONV_CORR flag1,
105
- enum FFT_CONV_CORR flag2)
102
+ enum FFT_CONV_CORR flag1,
103
+ enum FFT_CONV_CORR flag2)
106
104
  {
107
- double *data1, *data2, *data3;
105
+ double *data1, *data2, *data3 = NULL;
108
106
  size_t stride1, stride2, size1, size2;
109
- #ifdef HAVE_NARRAY_H
110
- int naflag1, naflag2, shape;
111
- #else
112
107
  int naflag1, naflag2;
113
- #endif
114
108
  gsl_vector *v = NULL;
115
109
  gsl_fft_halfcomplex_wavetable *table = NULL;
116
110
  gsl_fft_real_wavetable *rtable = NULL;
@@ -118,7 +112,7 @@ static VALUE rb_gsl_fft_conv_corr(int argc, VALUE *argv, VALUE obj,
118
112
  int flagt = 0, flagw = 0;
119
113
  // size_t i;
120
114
  gsl_vector *vtmp1 = NULL, *vtmp2 = NULL;
121
- VALUE ary;
115
+ VALUE ary = Qnil;
122
116
  switch (argc) {
123
117
  case 3:
124
118
  data1 = get_ptr_double3(obj, &size1, &stride1, &naflag1);
@@ -140,10 +134,10 @@ static VALUE rb_gsl_fft_conv_corr(int argc, VALUE *argv, VALUE obj,
140
134
  table = gsl_fft_halfcomplex_wavetable_alloc(size1);
141
135
  flagt = 1;
142
136
  } else {
143
- rb_raise(rb_eTypeError,
144
- "wrong argument type %s "
145
- "(FFT::HalfComplex::Wavetable or FFT::Real::Workspace expected)",
146
- rb_class2name(CLASS_OF(argv[2])));
137
+ rb_raise(rb_eTypeError,
138
+ "wrong argument type %s "
139
+ "(FFT::HalfComplex::Wavetable or FFT::Real::Workspace expected)",
140
+ rb_class2name(CLASS_OF(argv[2])));
147
141
  }
148
142
  break;
149
143
  case 1:
@@ -165,7 +159,7 @@ static VALUE rb_gsl_fft_conv_corr(int argc, VALUE *argv, VALUE obj,
165
159
  case RB_GSL_FFT_REAL:
166
160
  ary = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
167
161
  break;
168
- default:
162
+ default:
169
163
  ary = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
170
164
  break;
171
165
  }
@@ -173,9 +167,11 @@ static VALUE rb_gsl_fft_conv_corr(int argc, VALUE *argv, VALUE obj,
173
167
  break;
174
168
  case 1:
175
169
  #ifdef HAVE_NARRAY_H
176
- shape = (int) size1;
177
- ary = na_make_object(NA_DFLOAT, 1, &shape, cNArray);
178
- data3 = NA_PTR_TYPE(ary, double*);
170
+ {
171
+ int shape = (int) size1;
172
+ ary = na_make_object(NA_DFLOAT, 1, &shape, cNArray);
173
+ data3 = NA_PTR_TYPE(ary, double*);
174
+ }
179
175
  #endif
180
176
  break;
181
177
  default:
@@ -191,10 +187,10 @@ static VALUE rb_gsl_fft_conv_corr(int argc, VALUE *argv, VALUE obj,
191
187
  data2 = vtmp2->data;
192
188
  rtable = gsl_fft_real_wavetable_alloc(size1);
193
189
  if (size1 == space->n) {
194
- gsl_fft_real_transform(data1, stride1, size1, rtable, space);
190
+ gsl_fft_real_transform(data1, stride1, size1, rtable, space);
195
191
  } else {
196
192
  space2 = gsl_fft_real_workspace_alloc(size1);
197
- gsl_fft_real_transform(data1, stride1, size1, rtable, space2);
193
+ gsl_fft_real_transform(data1, stride1, size1, rtable, space2);
198
194
  /* no freeing space2 here */
199
195
  }
200
196
  if (size1 != size2) {
@@ -202,14 +198,14 @@ static VALUE rb_gsl_fft_conv_corr(int argc, VALUE *argv, VALUE obj,
202
198
  rtable = gsl_fft_real_wavetable_alloc(size2);
203
199
  }
204
200
  if (size2 == space->n) {
205
- gsl_fft_real_transform(data2, stride2, size2, rtable, space);
201
+ gsl_fft_real_transform(data2, stride2, size2, rtable, space);
206
202
  } else if (size2 == size1) {
207
- gsl_fft_real_transform(data2, stride2, size2, rtable, space2);
203
+ gsl_fft_real_transform(data2, stride2, size2, rtable, space2);
208
204
  gsl_fft_real_workspace_free(space2);
209
205
  } else {
210
206
  if (space2) gsl_fft_real_workspace_free(space2);
211
207
  space2 = gsl_fft_real_workspace_alloc(size2);
212
- gsl_fft_real_transform(data2, stride2, size2, rtable, space2);
208
+ gsl_fft_real_transform(data2, stride2, size2, rtable, space2);
213
209
  gsl_fft_real_workspace_free(space2);
214
210
  }
215
211
  gsl_fft_real_wavetable_free(rtable);
@@ -223,14 +219,13 @@ static VALUE rb_gsl_fft_conv_corr(int argc, VALUE *argv, VALUE obj,
223
219
  /* not occur */
224
220
  break;
225
221
  }
226
-
222
+
227
223
  rbgsl_calc_conv_corr_c(data1, data2, data3, size1, table, space, flag2);
228
224
 
229
225
  if (flag1 == RB_GSL_FFT_REAL) {
230
226
  gsl_fft_halfcomplex_inverse(data3, 1, size1, table, space);
231
227
  // for (i = 0; i < size1; i++) data3[i] /= size1;
232
228
  }
233
-
234
229
  if (flagt == 1) gsl_fft_halfcomplex_wavetable_free(table);
235
230
  if (flagw == 1) gsl_fft_real_workspace_free(space);
236
231
  if (vtmp1) gsl_vector_free(vtmp1);
@@ -241,61 +236,61 @@ static VALUE rb_gsl_fft_conv_corr(int argc, VALUE *argv, VALUE obj,
241
236
  /* GSL::Vector#convolve */
242
237
  static VALUE rb_gsl_fft_real_convolve(int argc, VALUE *argv, VALUE obj)
243
238
  {
244
- return rb_gsl_fft_conv_corr(argc, argv, obj,
245
- RB_GSL_FFT_REAL,
246
- RB_GSL_FFT_CONVOLVE);
239
+ return rb_gsl_fft_conv_corr(argc, argv, obj,
240
+ RB_GSL_FFT_REAL,
241
+ RB_GSL_FFT_CONVOLVE);
247
242
  }
248
243
  /* GSL::Vector#deconvolve */
249
244
  static VALUE rb_gsl_fft_real_deconvolve(int argc, VALUE *argv, VALUE obj)
250
245
  {
251
- return rb_gsl_fft_conv_corr(argc, argv, obj,
252
- RB_GSL_FFT_REAL,
253
- RB_GSL_FFT_DECONVOLVE);
246
+ return rb_gsl_fft_conv_corr(argc, argv, obj,
247
+ RB_GSL_FFT_REAL,
248
+ RB_GSL_FFT_DECONVOLVE);
254
249
  }
255
250
 
256
251
  /* GSL::Vector#correlate */
257
252
  static VALUE rb_gsl_fft_real_correlate(int argc, VALUE *argv, VALUE obj)
258
253
  {
259
- return rb_gsl_fft_conv_corr(argc, argv, obj,
260
- RB_GSL_FFT_REAL,
261
- RB_GSL_FFT_CORRELATE);
254
+ return rb_gsl_fft_conv_corr(argc, argv, obj,
255
+ RB_GSL_FFT_REAL,
256
+ RB_GSL_FFT_CORRELATE);
262
257
  }
263
258
 
264
259
  /* GSL::Vector#halfcomplex_convolve */
265
260
  static VALUE rb_gsl_fft_halfcomplex_convolve(int argc, VALUE *argv, VALUE obj)
266
261
  {
267
- return rb_gsl_fft_conv_corr(argc, argv, obj,
268
- RB_GSL_FFT_HALFCOMPLEX,
269
- RB_GSL_FFT_CONVOLVE);
262
+ return rb_gsl_fft_conv_corr(argc, argv, obj,
263
+ RB_GSL_FFT_HALFCOMPLEX,
264
+ RB_GSL_FFT_CONVOLVE);
270
265
  }
271
266
  /* GSL::Vector#halfcomplex_deconvolve */
272
267
  static VALUE rb_gsl_fft_halfcomplex_deconvolve(int argc, VALUE *argv, VALUE obj)
273
268
  {
274
- return rb_gsl_fft_conv_corr(argc, argv, obj,
275
- RB_GSL_FFT_HALFCOMPLEX,
276
- RB_GSL_FFT_DECONVOLVE);
269
+ return rb_gsl_fft_conv_corr(argc, argv, obj,
270
+ RB_GSL_FFT_HALFCOMPLEX,
271
+ RB_GSL_FFT_DECONVOLVE);
277
272
  }
278
273
  /* GSL::Vector#halfcomplex_correlate */
279
274
  static VALUE rb_gsl_fft_halfcomplex_correlate(int argc, VALUE *argv, VALUE obj)
280
275
  {
281
- return rb_gsl_fft_conv_corr(argc, argv, obj,
282
- RB_GSL_FFT_HALFCOMPLEX,
283
- RB_GSL_FFT_CORRELATE);
276
+ return rb_gsl_fft_conv_corr(argc, argv, obj,
277
+ RB_GSL_FFT_HALFCOMPLEX,
278
+ RB_GSL_FFT_CORRELATE);
284
279
  }
285
280
 
286
281
  void Init_gsl_signal(VALUE module)
287
282
  {
288
283
  rb_define_method(cgsl_vector, "real_convolve", rb_gsl_fft_real_convolve, -1);
289
- rb_define_method(cgsl_vector, "real_deconvolve", rb_gsl_fft_real_deconvolve, -1);
290
- rb_define_method(cgsl_vector, "real_correlate", rb_gsl_fft_real_correlate, -1);
284
+ rb_define_method(cgsl_vector, "real_deconvolve", rb_gsl_fft_real_deconvolve, -1);
285
+ rb_define_method(cgsl_vector, "real_correlate", rb_gsl_fft_real_correlate, -1);
291
286
 
292
287
  rb_define_alias(cgsl_vector, "convolve", "real_convolve");
293
288
  rb_define_alias(cgsl_vector, "deconvolve", "real_deconvolve");
294
289
  rb_define_alias(cgsl_vector, "correlate", "real_correlate");
295
290
 
296
291
  rb_define_method(cgsl_vector, "halfcomplex_convolve", rb_gsl_fft_halfcomplex_convolve, -1);
297
- rb_define_method(cgsl_vector, "halfcomplex_deconvolve", rb_gsl_fft_halfcomplex_deconvolve, -1);
298
- rb_define_method(cgsl_vector, "halfcomplex_correlate", rb_gsl_fft_halfcomplex_correlate, -1);
292
+ rb_define_method(cgsl_vector, "halfcomplex_deconvolve", rb_gsl_fft_halfcomplex_deconvolve, -1);
293
+ rb_define_method(cgsl_vector, "halfcomplex_correlate", rb_gsl_fft_halfcomplex_correlate, -1);
299
294
 
300
295
  rb_define_alias(cgsl_vector, "hc_convolve", "halfcomplex_convolve");
301
296
  rb_define_alias(cgsl_vector, "hc_deconvolve", "halfcomplex_deconvolve");