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,8 +9,7 @@
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
11
 
12
- #include "rb_gsl_config.h"
13
- #include "rb_gsl_fit.h"
12
+ #include "include/rb_gsl_fit.h"
14
13
 
15
14
  /* linear fit without weights: y = c0 + c1 x */
16
15
  /* This returns 7 elements array */
@@ -36,10 +35,10 @@ static VALUE rb_gsl_fit_linear(int argc, VALUE *argv, VALUE obj)
36
35
  break;
37
36
  }
38
37
  status = gsl_fit_linear(ptrx, stridex, ptry, stridey, n, &c0, &c1, &cov00,
39
- &cov01, &cov11, &sumsq);
38
+ &cov01, &cov11, &sumsq);
40
39
  return rb_ary_new3(7, rb_float_new(c0), rb_float_new(c1), rb_float_new(cov00),
41
- rb_float_new(cov01), rb_float_new(cov11), rb_float_new(sumsq),
42
- INT2FIX(status));
40
+ rb_float_new(cov01), rb_float_new(cov11), rb_float_new(sumsq),
41
+ INT2FIX(status));
43
42
  }
44
43
 
45
44
  /* linear fit with weights: y = c0 + c1 x */
@@ -55,7 +54,7 @@ static VALUE rb_gsl_fit_wlinear(int argc, VALUE *argv, VALUE obj)
55
54
  ptrw = get_vector_ptr(argv[1], &stridew, &n);
56
55
  ptry = get_vector_ptr(argv[2], &stridey, &n);
57
56
  break;
58
- case 4:
57
+ case 4:
59
58
  CHECK_FIXNUM(argv[3]);
60
59
  ptrx = get_vector_ptr(argv[0], &stridex, &n);
61
60
  ptrw = get_vector_ptr(argv[1], &stridew, &n);
@@ -67,11 +66,11 @@ static VALUE rb_gsl_fit_wlinear(int argc, VALUE *argv, VALUE obj)
67
66
  break;
68
67
  }
69
68
  status = gsl_fit_wlinear(ptrx, stridex, ptrw, stridew, ptry, stridey,
70
- n,
71
- &c0, &c1, &cov00, &cov01, &cov11, &sumsq);
69
+ n,
70
+ &c0, &c1, &cov00, &cov01, &cov11, &sumsq);
72
71
  return rb_ary_new3(7, rb_float_new(c0), rb_float_new(c1), rb_float_new(cov00),
73
- rb_float_new(cov01), rb_float_new(cov11), rb_float_new(sumsq),
74
- INT2FIX(status));
72
+ rb_float_new(cov01), rb_float_new(cov11), rb_float_new(sumsq),
73
+ INT2FIX(status));
75
74
  }
76
75
 
77
76
  static VALUE rb_gsl_fit_linear_est(int argc, VALUE *argv, VALUE obj)
@@ -130,8 +129,8 @@ static VALUE rb_gsl_fit_mul(int argc, VALUE *argv, VALUE obj)
130
129
  break;
131
130
  }
132
131
  status = gsl_fit_mul(ptrx, stridex, ptry, stridey, n, &c1, &cov11, &sumsq);
133
- return rb_ary_new3(4, rb_float_new(c1),
134
- rb_float_new(cov11), rb_float_new(sumsq), INT2FIX(status));
132
+ return rb_ary_new3(4, rb_float_new(c1),
133
+ rb_float_new(cov11), rb_float_new(sumsq), INT2FIX(status));
135
134
  }
136
135
 
137
136
  static VALUE rb_gsl_fit_wmul(int argc, VALUE *argv, VALUE obj)
@@ -146,7 +145,7 @@ static VALUE rb_gsl_fit_wmul(int argc, VALUE *argv, VALUE obj)
146
145
  ptrw = get_vector_ptr(argv[1], &stridew, &n);
147
146
  ptry = get_vector_ptr(argv[2], &stridey, &n);
148
147
  break;
149
- case 4:
148
+ case 4:
150
149
  CHECK_FIXNUM(argv[3]);
151
150
  ptrx = get_vector_ptr(argv[0], &stridex, &n);
152
151
  ptrw = get_vector_ptr(argv[1], &stridew, &n);
@@ -157,10 +156,10 @@ static VALUE rb_gsl_fit_wmul(int argc, VALUE *argv, VALUE obj)
157
156
  rb_raise(rb_eArgError, "wrong number of arguments (%d for 2 or 3)", argc);
158
157
  break;
159
158
  }
160
- status = gsl_fit_wmul(ptrx, stridex, ptrw, stridew, ptry, stridey,
161
- n, &c1, &cov11, &sumsq);
162
- return rb_ary_new3(4, rb_float_new(c1),
163
- rb_float_new(cov11), rb_float_new(sumsq), INT2FIX(status));
159
+ status = gsl_fit_wmul(ptrx, stridex, ptrw, stridew, ptry, stridey,
160
+ n, &c1, &cov11, &sumsq);
161
+ return rb_ary_new3(4, rb_float_new(c1),
162
+ rb_float_new(cov11), rb_float_new(sumsq), INT2FIX(status));
164
163
  }
165
164
 
166
165
  static VALUE rb_gsl_fit_mul_est(int argc, VALUE *argv, VALUE obj)
@@ -195,7 +194,7 @@ static VALUE rb_gsl_fit_mul_est(int argc, VALUE *argv, VALUE obj)
195
194
  void Init_gsl_fit(VALUE module)
196
195
  {
197
196
  VALUE mgsl_fit;
198
- mgsl_fit = rb_define_module_under(module, "Fit");
197
+ mgsl_fit = rb_define_module_under(module, "Fit");
199
198
  rb_define_module_function(mgsl_fit, "linear", rb_gsl_fit_linear, -1);
200
199
  rb_define_module_function(mgsl_fit, "wlinear", rb_gsl_fit_wlinear, -1);
201
200
  rb_define_module_function(mgsl_fit, "linear_est", rb_gsl_fit_linear_est, -1);
@@ -0,0 +1,312 @@
1
+ /****************************************************************************
2
+ * fresnel.c -
3
+ * Calculation of Fresnel integrals by expansion to Chebyshev series
4
+ * Expansions are taken from the book
5
+ * Y.L. Luke. Mathematical functions and their approximations.
6
+ * Moscow, "Mir", 1980. PP. 145-149 (Russian edition)
7
+ ****************************************************************************
8
+ */
9
+ /*
10
+ Modified for Ruby bindings
11
+ 2006/Dec/24 Y. TSUNESADA
12
+ */
13
+ #include <math.h>
14
+ #include "include/rb_gsl.h"
15
+ #include "include/rb_gsl_sf.h"
16
+
17
+ static const double sqrt_pi_2 = 1.2533141373155002512078826424; /* sqrt(pi/2) */
18
+ static const double sqrt_2_pi = 0.7978845608028653558798921199; /* sqrt(2/pi) */
19
+ static const double _1_sqrt_2pi = 0.3989422804014326779399460599; /* 1/sqrt(2*pi) */
20
+ static const double pi_2 = 1.5707963267948966192313216916; /* pi/2 */
21
+
22
+ static double f_data_a[18] =
23
+ {
24
+ 0.76435138664186000189,
25
+ -0.43135547547660179313,
26
+ 0.43288199979726653054,
27
+ -0.26973310338387111029,
28
+ 0.08416045320876935378,
29
+ -0.01546524484461381958,
30
+ 0.00187855423439822018,
31
+ -0.00016264977618887547,
32
+ 0.00001057397656383260,
33
+ -0.00000053609339889243,
34
+ 0.00000002181658454933,
35
+ -0.00000000072901621186,
36
+ 0.00000000002037332546,
37
+ -0.00000000000048344033,
38
+ 0.00000000000000986533,
39
+ -0.00000000000000017502,
40
+ 0.00000000000000000272,
41
+ -0.00000000000000000004
42
+ };
43
+
44
+ static double f_data_b[17] =
45
+ {
46
+ 0.63041404314570539241,
47
+ -0.42344511405705333544,
48
+ 0.37617172643343656625,
49
+ -0.16249489154509567415,
50
+ 0.03822255778633008694,
51
+ -0.00564563477132190899,
52
+ 0.00057454951976897367,
53
+ -0.00004287071532102004,
54
+ 0.00000245120749923299,
55
+ -0.00000011098841840868,
56
+ 0.00000000408249731696,
57
+ -0.00000000012449830219,
58
+ 0.00000000000320048425,
59
+ -0.00000000000007032416,
60
+ 0.00000000000000133638,
61
+ -0.00000000000000002219,
62
+ 0.00000000000000000032
63
+ };
64
+
65
+ static double fresnel_cos_0_8(double x)
66
+ {
67
+ double x_8 = x/8.0;
68
+ double xx = 2.0*x_8*x_8 - 1.0;
69
+
70
+ double t0 = 1.0;
71
+ double t1 = xx;
72
+ double sumC = f_data_a[0] + f_data_a[1]*t1;
73
+ double t2;
74
+ int n;
75
+ for (n = 2; n < 18; n++)
76
+ {
77
+ t2 = 2.0*xx*t1 - t0;
78
+ sumC += f_data_a[n]*t2;
79
+ t0 = t1; t1 = t2;
80
+ }
81
+ return _1_sqrt_2pi*sqrt(x)*sumC;
82
+ }
83
+
84
+ static double fresnel_sin_0_8(double x)
85
+ {
86
+ double x_8 = x/8.0;
87
+ double xx = 2.0*x_8*x_8 - 1.0;
88
+ double t0 = 1.;
89
+ double t1 = xx;
90
+ double ot1 = x_8;
91
+ double ot2 = 2.0*x_8*t1 - ot1;
92
+ double sumS = f_data_b[0]*ot1 + f_data_b[1]*ot2;
93
+ int n;
94
+ double t2;
95
+ for (n = 2; n < 17; n++)
96
+ {
97
+ t2 = 2.0*xx*t1 - t0;
98
+ ot1 = ot2;
99
+ ot2 = 2.0*x_8*t2 - ot1;
100
+ sumS += f_data_b[n]*ot2;
101
+ t0 = t1; t1 = t2;
102
+ }
103
+ return _1_sqrt_2pi*sqrt(x)*sumS;
104
+ }
105
+
106
+ static double f_data_e[41] =
107
+ {
108
+ 0.97462779093296822410,
109
+ -0.02424701873969321371,
110
+ 0.00103400906842977317,
111
+ -0.00008052450246908016,
112
+ 0.00000905962481966582,
113
+ -0.00000131016996757743,
114
+ 0.00000022770820391497,
115
+ -0.00000004558623552026,
116
+ 0.00000001021567537083,
117
+ -0.00000000251114508133,
118
+ 0.00000000066704761275,
119
+ -0.00000000018931512852,
120
+ 0.00000000005689898935,
121
+ -0.00000000001798219359,
122
+ 0.00000000000594162963,
123
+ -0.00000000000204285065,
124
+ 0.00000000000072797580,
125
+ -0.00000000000026797428,
126
+ 0.00000000000010160694,
127
+ -0.00000000000003958559,
128
+ 0.00000000000001581262,
129
+ -0.00000000000000646411,
130
+ 0.00000000000000269981,
131
+ -0.00000000000000115038,
132
+ 0.00000000000000049942,
133
+ -0.00000000000000022064,
134
+ 0.00000000000000009910,
135
+ -0.00000000000000004520,
136
+ 0.00000000000000002092,
137
+ -0.00000000000000000982,
138
+ 0.00000000000000000467,
139
+ -0.00000000000000000225,
140
+ 0.00000000000000000110,
141
+ -0.00000000000000000054,
142
+ 0.00000000000000000027,
143
+ -0.00000000000000000014,
144
+ 0.00000000000000000007,
145
+ -0.00000000000000000004,
146
+ 0.00000000000000000002,
147
+ -0.00000000000000000001,
148
+ 0.00000000000000000001
149
+ };
150
+
151
+ static double f_data_f[35] =
152
+ {
153
+ 0.99461545179407928910,
154
+ -0.00524276766084297210,
155
+ 0.00013325864229883909,
156
+ -0.00000770856452642713,
157
+ 0.00000070848077032045,
158
+ -0.00000008812517411602,
159
+ 0.00000001359784717148,
160
+ -0.00000000246858295747,
161
+ 0.00000000050925789921,
162
+ -0.00000000011653400634,
163
+ 0.00000000002906578309,
164
+ -0.00000000000779847361,
165
+ 0.00000000000222802542,
166
+ -0.00000000000067239338,
167
+ 0.00000000000021296411,
168
+ -0.00000000000007041482,
169
+ 0.00000000000002419805,
170
+ -0.00000000000000861080,
171
+ 0.00000000000000316287,
172
+ -0.00000000000000119596,
173
+ 0.00000000000000046444,
174
+ -0.00000000000000018485,
175
+ 0.00000000000000007527,
176
+ -0.00000000000000003131,
177
+ 0.00000000000000001328,
178
+ -0.00000000000000000574,
179
+ 0.00000000000000000252,
180
+ -0.00000000000000000113,
181
+ 0.00000000000000000051,
182
+ -0.00000000000000000024,
183
+ 0.00000000000000000011,
184
+ -0.00000000000000000005,
185
+ 0.00000000000000000002,
186
+ -0.00000000000000000001,
187
+ 0.00000000000000000001
188
+ };
189
+
190
+ static double fresnel_cos_8_inf(double x)
191
+ {
192
+ double xx = 128.0/(x*x) - 1.0; /* 2.0*(8/x)^2 - 1 */
193
+ double t0 = 1.0;
194
+ double t1 = xx;
195
+ double sumP = f_data_e[0] + f_data_e[1]*t1;
196
+ double sumQ = f_data_f[0] + f_data_f[1]*t1;
197
+ double t2;
198
+ int n;
199
+ for(n = 2; n < 35; n++)
200
+ {
201
+ t2 = 2.0*xx*t1 - t0;
202
+ sumP += f_data_e[n]*t2; /* sumP += f_data_e[n]*ChebyshevT(n,xx) */
203
+ sumQ += f_data_f[n]*t2; /* sumQ += f_data_f[n]*ChebyshevT(n,xx) */
204
+ t0 = t1; t1 = t2;
205
+ }
206
+ for(n = 35; n < 41; n++)
207
+ {
208
+ t2 = 2.0*xx*t1 - t0;
209
+ sumP += f_data_e[n]*t2; /* sumP += f_data_e[n]*ChebyshevT(n,xx) */
210
+ t0 = t1; t1 = t2;
211
+ }
212
+ return 0.5 - _1_sqrt_2pi*(0.5*sumP*cos(x)/x - sumQ*sin(x))/sqrt(x);
213
+ }
214
+
215
+ static double fresnel_sin_8_inf(double x)
216
+ {
217
+ double xx = 128.0/(x*x) - 1.0; /* 2.0*(8/x)^2 - 1 */
218
+ double t0 = 1.0;
219
+ double t1 = xx;
220
+ double sumP = f_data_e[0] + f_data_e[1]*t1;
221
+ double sumQ = f_data_f[0] + f_data_f[1]*t1;
222
+ double t2;
223
+ int n;
224
+ for(n = 2; n < 35; n++)
225
+ {
226
+ t2 = 2.0*xx*t1 - t0;
227
+ sumP += f_data_e[n]*t2; /* sumP += f_data_e[n]*ChebyshevT(n,xx) */
228
+ sumQ += f_data_f[n]*t2; /* sumQ += f_data_f[n]*ChebyshevT(n,xx) */
229
+ t0 = t1; t1 = t2;
230
+ }
231
+ for(n = 35; n < 41; n++)
232
+ {
233
+ t2 = 2.0*xx*t1 - t0;
234
+ sumP += f_data_e[n]*t2; /* sumQ += f_data_f[n]*ChebyshevT(n,xx) */
235
+ t0 = t1; t1 = t2;
236
+ }
237
+ return 0.5 - _1_sqrt_2pi*(0.5*sumP*sin(x)/x + sumQ*cos(x))/sqrt(x);
238
+ }
239
+
240
+
241
+ double fresnel_c(double x)
242
+ {
243
+ double xx = x*x*pi_2;
244
+ double ret_val;
245
+ if(xx<=8.0)
246
+ ret_val = fresnel_cos_0_8(xx);
247
+ else
248
+ ret_val = fresnel_cos_8_inf(xx);
249
+ return (x<0.0) ? -ret_val : ret_val;
250
+ }
251
+
252
+ double fresnel_s(double x)
253
+ {
254
+ double xx = x*x*pi_2;
255
+ double ret_val;
256
+ if(xx<=8.0)
257
+ ret_val = fresnel_sin_0_8(xx);
258
+ else
259
+ ret_val = fresnel_sin_8_inf(xx);
260
+ return (x<0.0) ? -ret_val : ret_val;
261
+ }
262
+
263
+ double fresnel_c1(double x)
264
+ {
265
+ return fresnel_c(x*sqrt_2_pi);
266
+ }
267
+
268
+ double fresnel_s1(double x)
269
+ {
270
+ return fresnel_s(x*sqrt_2_pi);
271
+ }
272
+
273
+ static VALUE rb_fresnel_c(VALUE obj, VALUE x)
274
+ {
275
+ return rb_gsl_sf_eval1(fresnel_c, x);
276
+ }
277
+ static VALUE rb_fresnel_s(VALUE obj, VALUE x)
278
+ {
279
+ return rb_gsl_sf_eval1(fresnel_s, x);
280
+ }
281
+ static VALUE rb_fresnel_c1(VALUE obj, VALUE x)
282
+ {
283
+ return rb_gsl_sf_eval1(fresnel_c1, x);
284
+ }
285
+ static VALUE rb_fresnel_s1(VALUE obj, VALUE x)
286
+ {
287
+ return rb_gsl_sf_eval1(fresnel_s1, x);
288
+ }
289
+ void Init_fresnel(VALUE module)
290
+ {
291
+ VALUE mfresnel;
292
+ mfresnel = rb_define_module_under(module, "Fresnel");
293
+ rb_define_module_function(module, "fresnel_c", rb_fresnel_c, 1);
294
+ rb_define_module_function(module, "fresnel_s", rb_fresnel_s, 1);
295
+ rb_define_module_function(module, "fresnel_c1", rb_fresnel_c1, 1);
296
+ rb_define_module_function(module, "fresnel_s1", rb_fresnel_s1, 1);
297
+ rb_define_module_function(mfresnel, "c", rb_fresnel_c, 1);
298
+ rb_define_module_function(mfresnel, "s", rb_fresnel_s, 1);
299
+ rb_define_module_function(mfresnel, "c1", rb_fresnel_c1, 1);
300
+ rb_define_module_function(mfresnel, "s1", rb_fresnel_s1, 1);
301
+ }
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
@@ -8,17 +8,14 @@
8
8
  This library is distributed in the hope that it will be useful, but
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
- #include "rb_gsl_config.h"
12
- #include "rb_gsl_function.h"
13
- #ifdef HAVE_NARRAY_H
14
- #include "narray.h"
15
- #endif
11
+
12
+ #include "include/rb_gsl_function.h"
16
13
 
17
14
  VALUE cgsl_function;
18
15
  VALUE cgsl_function_fdf;
19
16
 
20
17
  void gsl_function_free(gsl_function *f);
21
- double rb_gsl_function_f(double x, void *p);
18
+ double rb_gsl_function_f(double x, void *p);
22
19
  ID RBGSL_ID_call, RBGSL_ID_arity;
23
20
 
24
21
  static VALUE rb_gsl_function_set_f(int argc, VALUE *argv, VALUE obj)
@@ -52,11 +49,11 @@ static VALUE rb_gsl_function_set_f(int argc, VALUE *argv, VALUE obj)
52
49
  CHECK_PROC(argv[0]);
53
50
  rb_ary_store(ary, 0, argv[0]);
54
51
  ary2 = rb_ary_new2(argc-1);
55
- for (i = 1; i < argc; i++) rb_ary_store(ary2, i-1, argv[i]);
52
+ for (i = 1; (int) i < argc; i++) rb_ary_store(ary2, i-1, argv[i]);
56
53
  rb_ary_store(ary, 1, ary2);
57
54
  break;
58
55
  }
59
- if (rb_block_given_p()) rb_ary_store(ary, 0, RB_GSL_MAKE_PROC);
56
+ if (rb_block_given_p()) rb_ary_store(ary, 0, rb_block_proc());
60
57
  return obj;
61
58
  }
62
59
 
@@ -85,7 +82,7 @@ static VALUE rb_gsl_function_alloc(int argc, VALUE *argv, VALUE klass)
85
82
  obj = Data_Wrap_Struct(klass, gsl_function_mark, gsl_function_free, f);
86
83
  rb_gsl_function_set_f(argc, argv, obj);
87
84
  return obj;
88
- }
85
+ }
89
86
 
90
87
  double rb_gsl_function_f(double x, void *p)
91
88
  {
@@ -108,10 +105,6 @@ static VALUE rb_gsl_function_eval(VALUE obj, VALUE x)
108
105
  gsl_vector *v = NULL, *vnew = NULL;
109
106
  gsl_matrix *m = NULL, *mnew = NULL;
110
107
  size_t i, j, n;
111
- #ifdef HAVE_NARRAY_H
112
- double *ptr1, *ptr2;
113
- struct NARRAY *na;
114
- #endif
115
108
  Data_Get_Struct(obj, gsl_function, F);
116
109
  ary = (VALUE) F->params;
117
110
  proc = rb_ary_entry(ary, 0);
@@ -141,16 +134,18 @@ static VALUE rb_gsl_function_eval(VALUE obj, VALUE x)
141
134
  default:
142
135
  #ifdef HAVE_NARRAY_H
143
136
  if (NA_IsNArray(x)) {
137
+ double *ptr1, *ptr2;
138
+ struct NARRAY *na;
144
139
  GetNArray(x, na);
145
140
  ptr1 = (double *) na->ptr;
146
141
  n = na->total;
147
142
  ary = na_make_object(NA_DFLOAT, na->rank, na->shape, CLASS_OF(x));
148
143
  ptr2 = NA_PTR_TYPE(ary, double*);
149
144
  for (i = 0; i < n; i++) {
150
- x2 = rb_float_new(ptr1[i]);
151
- if (NIL_P(params)) result = rb_funcall(proc, RBGSL_ID_call, 1, x2);
152
- else result = rb_funcall(proc, RBGSL_ID_call, 2, x2, params);
153
- ptr2[i] = NUM2DBL(result);
145
+ x2 = rb_float_new(ptr1[i]);
146
+ if (NIL_P(params)) result = rb_funcall(proc, RBGSL_ID_call, 1, x2);
147
+ else result = rb_funcall(proc, RBGSL_ID_call, 2, x2, params);
148
+ ptr2[i] = NUM2DBL(result);
154
149
  }
155
150
  return ary;
156
151
  }
@@ -159,22 +154,22 @@ static VALUE rb_gsl_function_eval(VALUE obj, VALUE x)
159
154
  Data_Get_Struct(x, gsl_vector, v);
160
155
  vnew = gsl_vector_alloc(v->size);
161
156
  for (i = 0; i < v->size; i++) {
162
- x2 = rb_float_new(gsl_vector_get(v, i));
163
- if (NIL_P(params)) result = rb_funcall(proc, RBGSL_ID_call, 1, x2);
164
- else result = rb_funcall(proc, RBGSL_ID_call, 2, x2, params);
165
- gsl_vector_set(vnew, i, NUM2DBL(result));
157
+ x2 = rb_float_new(gsl_vector_get(v, i));
158
+ if (NIL_P(params)) result = rb_funcall(proc, RBGSL_ID_call, 1, x2);
159
+ else result = rb_funcall(proc, RBGSL_ID_call, 2, x2, params);
160
+ gsl_vector_set(vnew, i, NUM2DBL(result));
166
161
  }
167
162
  return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
168
163
  } else if (MATRIX_P(x)) {
169
164
  Data_Get_Struct(x, gsl_matrix, m);
170
165
  mnew = gsl_matrix_alloc(m->size1, m->size2);
171
166
  for (i = 0; i < m->size1; i++) {
172
- for (j = 0; j < m->size2; j++) {
173
- x2 = rb_float_new(gsl_matrix_get(m, i, j));
174
- if (NIL_P(params)) result = rb_funcall(proc, RBGSL_ID_call, 1, x2);
175
- else result = rb_funcall(proc, RBGSL_ID_call, 2, x2, params);
176
- gsl_matrix_set(mnew, i, j, NUM2DBL(result));
177
- }
167
+ for (j = 0; j < m->size2; j++) {
168
+ x2 = rb_float_new(gsl_matrix_get(m, i, j));
169
+ if (NIL_P(params)) result = rb_funcall(proc, RBGSL_ID_call, 1, x2);
170
+ else result = rb_funcall(proc, RBGSL_ID_call, 2, x2, params);
171
+ gsl_matrix_set(mnew, i, j, NUM2DBL(result));
172
+ }
178
173
  }
179
174
  return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
180
175
  } else {
@@ -221,7 +216,7 @@ static VALUE rb_gsl_function_set_params(int argc, VALUE *argv, VALUE obj)
221
216
  rb_ary_store(ary, 1, argv[0]);
222
217
  } else {
223
218
  ary2 = rb_ary_new2(argc);
224
- for (i = 0; i < argc; i++) rb_ary_store(ary2, i, argv[i]);
219
+ for (i = 0; (int) i < argc; i++) rb_ary_store(ary2, i, argv[i]);
225
220
  rb_ary_store(ary, 1, ary2);
226
221
  }
227
222
  return obj;
@@ -242,7 +237,7 @@ static VALUE rb_gsl_function_graph(int argc, VALUE *argv, VALUE obj)
242
237
  case 2:
243
238
  Check_Type(argv[1], T_STRING);
244
239
  strcpy(opt, STR2CSTR(argv[1]));
245
- /* no break, do next */
240
+ /* no break, do next */
246
241
  case 1:
247
242
  if (CLASS_OF(argv[0]) == rb_cRange) argv[0] = rb_gsl_range2ary(argv[0]);
248
243
  if (TYPE(argv[0]) == T_ARRAY) {
@@ -250,16 +245,16 @@ static VALUE rb_gsl_function_graph(int argc, VALUE *argv, VALUE obj)
250
245
  n = RARRAY_LEN(argv[0]);
251
246
  v = gsl_vector_alloc(n);
252
247
  flag = 1;
253
- for (i = 0; i < n; i++)
254
- gsl_vector_set(v, i, NUM2DBL(rb_ary_entry(argv[0], i)));
248
+ for (i = 0; i < n; i++)
249
+ gsl_vector_set(v, i, NUM2DBL(rb_ary_entry(argv[0], i)));
255
250
  } else if (rb_obj_is_kind_of(argv[0], cgsl_vector)) {
256
251
  Data_Get_Struct(argv[0], gsl_vector, v);
257
252
  n = v->size;
258
253
  flag = 0;
259
254
  } else {
260
- rb_raise(rb_eTypeError,
261
- "wrong argument type %s (Array or GSL::Vector expected)",
262
- rb_class2name(CLASS_OF(argv[0])));
255
+ rb_raise(rb_eTypeError,
256
+ "wrong argument type %s (Array or GSL::Vector expected)",
257
+ rb_class2name(CLASS_OF(argv[0])));
263
258
  }
264
259
  break;
265
260
  default:
@@ -281,7 +276,7 @@ static VALUE rb_gsl_function_graph(int argc, VALUE *argv, VALUE obj)
281
276
  fprintf(fp, "%e %e\n", x, y);
282
277
  }
283
278
  fflush(fp);
284
- pclose(fp);
279
+ pclose(fp);
285
280
  fp = NULL;
286
281
  if (flag == 1) gsl_vector_free(v);
287
282
  return Qtrue;
@@ -310,15 +305,14 @@ static void setfunc(int i, VALUE *argv, gsl_function_fdf *F)
310
305
  } else {
311
306
  ary = (VALUE) F->params;
312
307
  }
313
-
314
308
  if (rb_obj_is_kind_of(argv[i], rb_cProc)) {
315
309
  rb_ary_store(ary, i, argv[i]);
316
- } else if (TYPE(argv[i]) == T_ARRAY || rb_obj_is_kind_of(argv[i], cgsl_vector)
317
- || TYPE(argv[i]) == T_FIXNUM || TYPE(argv[i]) == T_FLOAT) {
310
+ } else if (TYPE(argv[i]) == T_ARRAY || rb_obj_is_kind_of(argv[i], cgsl_vector)
311
+ || TYPE(argv[i]) == T_FIXNUM || TYPE(argv[i]) == T_FLOAT) {
318
312
  rb_ary_store(ary, 3, argv[i]);
319
313
  } else {
320
- rb_raise(rb_eArgError,
321
- "wrong type argument (Proc, Array, GSL::Vector or a number)");
314
+ rb_raise(rb_eArgError,
315
+ "wrong type argument (Proc, Array, GSL::Vector or a number)");
322
316
  }
323
317
  }
324
318
 
@@ -337,7 +331,7 @@ static VALUE rb_gsl_function_fdf_new(int argc, VALUE *argv, VALUE klass)
337
331
  F->params = (void *) ary;
338
332
  rb_ary_store(ary, 2, Qnil);
339
333
  rb_ary_store(ary, 3, Qnil);
340
- for (i = 0; i < argc; i++) setfunc(i, argv, F);
334
+ for (i = 0; (int) i < argc; i++) setfunc(i, argv, F);
341
335
  return Data_Wrap_Struct(klass, gsl_function_fdf_mark, gsl_function_fdf_free, F);
342
336
  }
343
337
 
@@ -360,7 +354,7 @@ static VALUE rb_gsl_function_fdf_set(int argc, VALUE *argv, VALUE obj)
360
354
  ary = (VALUE) F->params;
361
355
  rb_ary_store(ary, 2, Qnil);
362
356
  rb_ary_store(ary, 3, Qnil);
363
- for (i = 0; i < argc; i++) setfunc(i, argv, F);
357
+ for (i = 0; (int) i < argc; i++) setfunc(i, argv, F);
364
358
  return obj;
365
359
  }
366
360
 
@@ -427,7 +421,7 @@ static VALUE rb_gsl_function_fdf_set_params(int argc, VALUE *argv, VALUE obj)
427
421
  rb_ary_store(ary, 3, argv[0]);
428
422
  } else {
429
423
  ary2 = rb_ary_new2(argc);
430
- for (i = 0; i < argc; i++) rb_ary_store(ary2, i, argv[i]);
424
+ for (i = 0; (int) i < argc; i++) rb_ary_store(ary2, i, argv[i]);
431
425
  rb_ary_store(ary, 3, ary2);
432
426
  }
433
427
  return obj;