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,23 +9,23 @@
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
11
 
12
- #include "rb_gsl.h"
13
- #include "rb_gsl_array.h"
14
- #include "rb_gsl_function.h"
12
+ #include "include/rb_gsl.h"
13
+ #include "include/rb_gsl_array.h"
14
+ #include "include/rb_gsl_function.h"
15
15
  #include <gsl/gsl_multimin.h>
16
16
 
17
17
  #ifndef CHECK_MULTIMIN_FUNCTION
18
- #define CHECK_MULTIMIN_FUNCTION(x) if(CLASS_OF(x)!=cgsl_multimin_function)\
19
- rb_raise(rb_eTypeError,\
20
- "wrong argument type %s (GSL::MultiMin::Function expected)",\
21
- rb_class2name(CLASS_OF(x)));
18
+ #define CHECK_MULTIMIN_FUNCTION(x) if(CLASS_OF(x)!=cgsl_multimin_function) \
19
+ rb_raise(rb_eTypeError, \
20
+ "wrong argument type %s (GSL::MultiMin::Function expected)", \
21
+ rb_class2name(CLASS_OF(x)));
22
22
  #endif
23
23
 
24
24
  #ifndef CHECK_MULTIMIN_FUNCTION_FDF
25
- #define CHECK_MULTIMIN_FUNCTION_FDF(x) if(CLASS_OF(x)!=cgsl_multimin_function_fdf)\
26
- rb_raise(rb_eTypeError,\
27
- "wrong argument type %s (GSL::MultiMin::Function_fdf expected)",\
28
- rb_class2name(CLASS_OF(x)));
25
+ #define CHECK_MULTIMIN_FUNCTION_FDF(x) if(CLASS_OF(x)!=cgsl_multimin_function_fdf) \
26
+ rb_raise(rb_eTypeError, \
27
+ "wrong argument type %s (GSL::MultiMin::Function_fdf expected)", \
28
+ rb_class2name(CLASS_OF(x)));
29
29
  #endif
30
30
 
31
31
  VALUE cgsl_multimin_function_fdf; /* Used also in multimin_fsdf.c */
@@ -37,18 +37,12 @@ enum {
37
37
  GSL_FDFMINIMIZER_VECTOR_BFGS,
38
38
  GSL_FDFMINIMIZER_STEEPEST_DESCENT,
39
39
  GSL_FMINIMIZER_NMSIMPLEX,
40
- #ifdef GSL_1_9_LATER
41
40
  GSL_FDFMINIMIZER_VECTOR_BFGS2,
42
- #endif
43
- #ifdef GSL_1_13_LATER
44
41
  GSL_FMINIMIZER_NMSIMPLEX2RAND,
45
- #endif
46
42
  };
47
43
 
48
44
  static const gsl_multimin_fdfminimizer_type* get_fdfminimizer_type(VALUE t);
49
- #ifdef GSL_1_3_LATER
50
45
  static const gsl_multimin_fminimizer_type* get_fminimizer_type(VALUE t);
51
- #endif
52
46
  static void define_const();
53
47
 
54
48
  static void gsl_multimin_function_free(gsl_multimin_function *f);
@@ -57,11 +51,11 @@ static void set_function(int i, VALUE *argv, gsl_multimin_function *F);
57
51
 
58
52
  static void gsl_multimin_function_fdf_free(gsl_multimin_function_fdf *f);
59
53
 
60
- double rb_gsl_multimin_function_fdf_f(const gsl_vector *x, void *p);
61
- void rb_gsl_multimin_function_fdf_df(const gsl_vector *x, void *p,
62
- gsl_vector *g);
63
- void rb_gsl_multimin_function_fdf_fdf(const gsl_vector *x, void *p,
64
- double *f, gsl_vector *g);
54
+ double rb_gsl_multimin_function_fdf_f(const gsl_vector *x, void *p);
55
+ void rb_gsl_multimin_function_fdf_df(const gsl_vector *x, void *p,
56
+ gsl_vector *g);
57
+ void rb_gsl_multimin_function_fdf_fdf(const gsl_vector *x, void *p,
58
+ double *f, gsl_vector *g);
65
59
  static void set_function_fdf(int i, VALUE *argv, gsl_multimin_function_fdf *F);
66
60
 
67
61
  /*** multimin_funcion ***/
@@ -88,7 +82,7 @@ static VALUE rb_gsl_multimin_function_new(int argc, VALUE *argv, VALUE klass)
88
82
  ary = rb_ary_new2(2);
89
83
  /* (VALUE) F->params = ary;*/
90
84
  F->params = (void *) ary;
91
- if (rb_block_given_p()) rb_ary_store(ary, 0, RB_GSL_MAKE_PROC);
85
+ if (rb_block_given_p()) rb_ary_store(ary, 0, rb_block_proc());
92
86
  else rb_ary_store(ary, 0, Qnil);
93
87
  rb_ary_store(ary, 1, Qnil);
94
88
  switch (argc) {
@@ -99,7 +93,7 @@ static VALUE rb_gsl_multimin_function_new(int argc, VALUE *argv, VALUE klass)
99
93
  break;
100
94
  case 2:
101
95
  case 3:
102
- for (i = 0; i < argc; i++) set_function(i, argv, F);
96
+ for (i = 0; (int) i < argc; i++) set_function(i, argv, F);
103
97
  break;
104
98
  default:
105
99
  rb_raise(rb_eArgError, "wrong number of arguments");
@@ -148,10 +142,10 @@ static void set_function(int i, VALUE *argv, gsl_multimin_function *F)
148
142
  VALUE ary;
149
143
  ary = (VALUE) F->params;
150
144
  if (TYPE(argv[i]) == T_FIXNUM) F->n = FIX2INT(argv[i]);
151
- else if (rb_obj_is_kind_of(argv[i], rb_cProc))
145
+ else if (rb_obj_is_kind_of(argv[i], rb_cProc))
152
146
  rb_ary_store(ary, 0, argv[i]);
153
147
  else if (TYPE(argv[i]) == T_ARRAY || rb_obj_is_kind_of(argv[i], cgsl_vector)
154
- || TYPE(argv[i]) == T_FIXNUM || TYPE(argv[i]) == T_FLOAT) {
148
+ || TYPE(argv[i]) == T_FIXNUM || TYPE(argv[i]) == T_FLOAT) {
155
149
  rb_ary_store(ary, 1, argv[i]);
156
150
  } else {
157
151
  rb_raise(rb_eTypeError, "wrong type of argument %d (Fixnum or Proc)", i);
@@ -165,14 +159,14 @@ static VALUE rb_gsl_multimin_function_set_f(int argc, VALUE *argv, VALUE obj)
165
159
  size_t i;
166
160
  Data_Get_Struct(obj, gsl_multimin_function, F);
167
161
  ary = (VALUE) F->params;
168
- if (rb_block_given_p()) rb_ary_store(ary, 0, RB_GSL_MAKE_PROC);
162
+ if (rb_block_given_p()) rb_ary_store(ary, 0, rb_block_proc());
169
163
  switch (argc) {
170
164
  case 1:
171
165
  set_function(0, argv, F);
172
166
  break;
173
167
  case 2:
174
168
  case 3:
175
- for (i = 0; i < argc; i++) set_function(i, argv, F);
169
+ for (i = 0; (int) i < argc; i++) set_function(i, argv, F);
176
170
  break;
177
171
  default:
178
172
  rb_raise(rb_eArgError, "wrong number of arguments");
@@ -197,7 +191,7 @@ static VALUE rb_gsl_multimin_function_set_params(int argc, VALUE *argv, VALUE ob
197
191
  if (argc == 1) rb_ary_store(ary, 1, argv[0]);
198
192
  else {
199
193
  ary2 = rb_ary_new2(argc);
200
- for (i = 0; i < argc; i++) rb_ary_store(ary2, i, argv[i]);
194
+ for (i = 0; (int) i < argc; i++) rb_ary_store(ary2, i, argv[i]);
201
195
  rb_ary_store(ary, 1, ary2);
202
196
  }
203
197
  return obj;
@@ -268,8 +262,8 @@ static void set_function_fdf(int argc, VALUE *argv, gsl_multimin_function_fdf *F
268
262
  F->n = FIX2INT(argv[2]);
269
263
  rb_ary_store(ary, 2, Qnil);
270
264
  } else {
271
- rb_ary_store(ary, 2, argv[2]);
272
- }
265
+ rb_ary_store(ary, 2, argv[2]);
266
+ }
273
267
  break;
274
268
  case 4:
275
269
  case 5:
@@ -316,8 +310,8 @@ static VALUE rb_gsl_multimin_function_fdf_set_procs(int argc, VALUE *argv, VALUE
316
310
  F->n = FIX2INT(argv[2]);
317
311
  rb_ary_store(ary, 2, Qnil);
318
312
  } else {
319
- rb_ary_store(ary, 2, argv[2]);
320
- }
313
+ rb_ary_store(ary, 2, argv[2]);
314
+ }
321
315
  break;
322
316
  case 4:
323
317
  case 5:
@@ -355,10 +349,10 @@ static VALUE rb_gsl_multimin_function_fdf_set_params(int argc, VALUE *argv, VALU
355
349
  ary = (VALUE) F->params;
356
350
  }
357
351
  if (argc == 1) {
358
- rb_ary_store(ary, 3, argv[0]);
352
+ rb_ary_store(ary, 3, argv[0]);
359
353
  } else {
360
354
  ary2 = rb_ary_new2(argc);
361
- for (i = 0; i < argc; i++) rb_ary_store(ary2, i, argv[i]);
355
+ for (i = 0; (int) i < argc; i++) rb_ary_store(ary2, i, argv[i]);
362
356
  rb_ary_store(ary, 3, ary2);
363
357
  }
364
358
  return obj;
@@ -384,8 +378,8 @@ double rb_gsl_multimin_function_fdf_f(const gsl_vector *x, void *p)
384
378
  return NUM2DBL(result);
385
379
  }
386
380
 
387
- void rb_gsl_multimin_function_fdf_df(const gsl_vector *x, void *p,
388
- gsl_vector *g)
381
+ void rb_gsl_multimin_function_fdf_df(const gsl_vector *x, void *p,
382
+ gsl_vector *g)
389
383
  {
390
384
  VALUE vx, vg, proc, vp, ary;
391
385
  vx = Data_Wrap_Struct(cgsl_vector, 0, NULL, (gsl_vector *) x);
@@ -400,8 +394,8 @@ void rb_gsl_multimin_function_fdf_df(const gsl_vector *x, void *p,
400
394
  }
401
395
  }
402
396
 
403
- void rb_gsl_multimin_function_fdf_fdf(const gsl_vector *x, void *p,
404
- double *f, gsl_vector *g)
397
+ void rb_gsl_multimin_function_fdf_fdf(const gsl_vector *x, void *p,
398
+ double *f, gsl_vector *g)
405
399
  {
406
400
  VALUE vx, vg, proc_f, proc_df, vp, ary, result;
407
401
  vx = Data_Wrap_Struct(cgsl_vector, 0, NULL, (gsl_vector *) x);
@@ -431,26 +425,20 @@ static VALUE rb_gsl_multimin_function_fdf_params(VALUE obj)
431
425
 
432
426
  static void define_const(VALUE klass1, VALUE klass2)
433
427
  {
434
- rb_define_const(klass1,
435
- "CONJUGATE_FR", INT2FIX(GSL_FDFMINIMIZER_CONJUGATE_FR));
436
- rb_define_const(klass1,
437
- "CONJUGATE_PR", INT2FIX(GSL_FDFMINIMIZER_CONJUGATE_PR));
438
- rb_define_const(klass1,
439
- "VECTOR_BFGS", INT2FIX(GSL_FDFMINIMIZER_VECTOR_BFGS));
440
- rb_define_const(klass1,
441
- "STEEPEST_DESCENT", INT2FIX(GSL_FDFMINIMIZER_STEEPEST_DESCENT));
442
- #ifdef GSL_1_3_LATER
443
- rb_define_const(klass2,
444
- "NMSIMPLEX", INT2FIX(GSL_FMINIMIZER_NMSIMPLEX));
445
- #endif
446
- #ifdef GSL_1_9_LATER
447
- rb_define_const(klass1,
448
- "VECTOR_BFGS2", INT2FIX(GSL_FDFMINIMIZER_VECTOR_BFGS2));
449
- #endif
450
- #ifdef GSL_1_13_LATER
451
- rb_define_const(klass2,
452
- "NMSIMPLEX2RAND", INT2FIX(GSL_FMINIMIZER_NMSIMPLEX2RAND));
453
- #endif
428
+ rb_define_const(klass1,
429
+ "CONJUGATE_FR", INT2FIX(GSL_FDFMINIMIZER_CONJUGATE_FR));
430
+ rb_define_const(klass1,
431
+ "CONJUGATE_PR", INT2FIX(GSL_FDFMINIMIZER_CONJUGATE_PR));
432
+ rb_define_const(klass1,
433
+ "VECTOR_BFGS", INT2FIX(GSL_FDFMINIMIZER_VECTOR_BFGS));
434
+ rb_define_const(klass1,
435
+ "STEEPEST_DESCENT", INT2FIX(GSL_FDFMINIMIZER_STEEPEST_DESCENT));
436
+ rb_define_const(klass2,
437
+ "NMSIMPLEX", INT2FIX(GSL_FMINIMIZER_NMSIMPLEX));
438
+ rb_define_const(klass1,
439
+ "VECTOR_BFGS2", INT2FIX(GSL_FDFMINIMIZER_VECTOR_BFGS2));
440
+ rb_define_const(klass2,
441
+ "NMSIMPLEX2RAND", INT2FIX(GSL_FMINIMIZER_NMSIMPLEX2RAND));
454
442
  }
455
443
 
456
444
  static const gsl_multimin_fdfminimizer_type* get_fdfminimizer_type(VALUE t)
@@ -459,18 +447,16 @@ static const gsl_multimin_fdfminimizer_type* get_fdfminimizer_type(VALUE t)
459
447
  switch (TYPE(t)) {
460
448
  case T_STRING:
461
449
  strcpy(name, STR2CSTR(t));
462
- if (str_tail_grep(name, "conjugate_fr") == 0)
450
+ if (str_tail_grep(name, "conjugate_fr") == 0)
463
451
  return gsl_multimin_fdfminimizer_conjugate_fr;
464
- else if (str_tail_grep(name, "conjugate_pr") == 0)
452
+ else if (str_tail_grep(name, "conjugate_pr") == 0)
465
453
  return gsl_multimin_fdfminimizer_conjugate_pr;
466
- else if (str_tail_grep(name, "vector_bfgs") == 0)
454
+ else if (str_tail_grep(name, "vector_bfgs") == 0)
467
455
  return gsl_multimin_fdfminimizer_vector_bfgs;
468
- else if (str_tail_grep(name, "steepest_descent") == 0)
456
+ else if (str_tail_grep(name, "steepest_descent") == 0)
469
457
  return gsl_multimin_fdfminimizer_steepest_descent;
470
- #ifdef GSL_1_9_LATER
471
- else if (str_tail_grep(name, "vector_bfgs2") == 0)
458
+ else if (str_tail_grep(name, "vector_bfgs2") == 0)
472
459
  return gsl_multimin_fdfminimizer_vector_bfgs2;
473
- #endif
474
460
  else
475
461
  rb_raise(rb_eTypeError, "%s: unknown minimizer type", name);
476
462
  break;
@@ -484,10 +470,8 @@ static const gsl_multimin_fdfminimizer_type* get_fdfminimizer_type(VALUE t)
484
470
  return gsl_multimin_fdfminimizer_vector_bfgs; break;
485
471
  case GSL_FDFMINIMIZER_STEEPEST_DESCENT:
486
472
  return gsl_multimin_fdfminimizer_steepest_descent; break;
487
- #ifdef GSL_1_9_LATER
488
473
  case GSL_FDFMINIMIZER_VECTOR_BFGS2:
489
474
  return gsl_multimin_fdfminimizer_vector_bfgs2; break;
490
- #endif
491
475
  default:
492
476
  rb_raise(rb_eTypeError, "%d: unknown type", FIX2INT(t));
493
477
  break;
@@ -508,8 +492,8 @@ static VALUE rb_gsl_fdfminimizer_new(VALUE klass, VALUE t, VALUE n)
508
492
  return Data_Wrap_Struct(klass, 0, gsl_multimin_fdfminimizer_free, gmf);
509
493
  }
510
494
 
511
- static VALUE rb_gsl_fdfminimizer_set(VALUE obj, VALUE ff, VALUE xx, VALUE ss,
512
- VALUE tt)
495
+ static VALUE rb_gsl_fdfminimizer_set(VALUE obj, VALUE ff, VALUE xx, VALUE ss,
496
+ VALUE tt)
513
497
  {
514
498
  gsl_multimin_fdfminimizer *gmf = NULL;
515
499
  gsl_multimin_function_fdf *F = NULL;
@@ -601,7 +585,6 @@ static VALUE rb_gsl_multimin_test_gradient(VALUE obj, VALUE gg, VALUE ea)
601
585
  }
602
586
 
603
587
  /*****/
604
- #ifdef GSL_1_3_LATER
605
588
  static const gsl_multimin_fminimizer_type* get_fminimizer_type(VALUE t)
606
589
  {
607
590
  char name[64];
@@ -609,12 +592,10 @@ static const gsl_multimin_fminimizer_type* get_fminimizer_type(VALUE t)
609
592
  switch (TYPE(t)) {
610
593
  case T_STRING:
611
594
  strcpy(name, STR2CSTR(t));
612
- if (str_tail_grep(name, "nmsimplex") == 0)
595
+ if (str_tail_grep(name, "nmsimplex") == 0)
613
596
  return gsl_multimin_fminimizer_nmsimplex;
614
- #ifdef GSL_1_13_LATER
615
- if (str_tail_grep(name, "nmsimplex2rand") == 0)
597
+ if (str_tail_grep(name, "nmsimplex2rand") == 0)
616
598
  return gsl_multimin_fminimizer_nmsimplex2rand;
617
- #endif
618
599
  else
619
600
  rb_raise(rb_eTypeError, "unknown type %s (nmsimplex and nmsimplex2rand supported)", name);
620
601
  break;
@@ -622,10 +603,8 @@ static const gsl_multimin_fminimizer_type* get_fminimizer_type(VALUE t)
622
603
  switch (FIX2INT(t)) {
623
604
  case GSL_FMINIMIZER_NMSIMPLEX:
624
605
  return gsl_multimin_fminimizer_nmsimplex; break;
625
- #ifdef GSL_1_13_LATER
626
606
  case GSL_FMINIMIZER_NMSIMPLEX2RAND:
627
607
  return gsl_multimin_fminimizer_nmsimplex2rand; break;
628
- #endif
629
608
  default:
630
609
  rb_raise(rb_eTypeError, "%d: unknown type (not supported)", FIX2INT(t));
631
610
  break;
@@ -633,7 +612,7 @@ static const gsl_multimin_fminimizer_type* get_fminimizer_type(VALUE t)
633
612
  break;
634
613
  default:
635
614
  rb_raise(rb_eTypeError, "wrong argument type %s (String or Fixnum expected)",
636
- rb_class2name(CLASS_OF(t)));
615
+ rb_class2name(CLASS_OF(t)));
637
616
  break;
638
617
  }
639
618
  }
@@ -720,8 +699,6 @@ static VALUE rb_gsl_multimin_test_size(VALUE obj, VALUE ss, VALUE ea)
720
699
  return INT2FIX(gsl_multimin_test_size(NUM2DBL(ss), NUM2DBL(ea)));
721
700
  }
722
701
 
723
- #endif
724
-
725
702
  #ifdef HAVE_GSL_GSL_MULTIMIN_FSDF_H
726
703
  void Init_multimin_fsdf(VALUE module);
727
704
  #endif
@@ -735,18 +712,16 @@ void Init_gsl_multimin(VALUE module)
735
712
 
736
713
  mgsl_multimin = rb_define_module_under(module, "MultiMin");
737
714
  rb_define_singleton_method(mgsl_multimin, "test_gradient", rb_gsl_multimin_test_gradient, 2);
738
- #ifdef GSL_1_3_LATER
739
715
  rb_define_singleton_method(mgsl_multimin, "test_size", rb_gsl_multimin_test_size, 2);
740
- #endif
741
716
 
742
717
  cgsl_multimin_fdfminimizer = rb_define_class_under(mgsl_multimin, "FdfMinimizer", cGSL_Object);
743
718
  cgsl_multimin_fminimizer = rb_define_class_under(mgsl_multimin, "FMinimizer", cGSL_Object);
744
719
  define_const(cgsl_multimin_fdfminimizer, cgsl_multimin_fminimizer);
745
720
 
746
721
  cgsl_multimin_function = rb_define_class_under(mgsl_multimin, "Function",
747
- cgsl_function);
722
+ cgsl_function);
748
723
  rb_define_singleton_method(cgsl_multimin_function, "alloc",
749
- rb_gsl_multimin_function_new, -1);
724
+ rb_gsl_multimin_function_new, -1);
750
725
  rb_define_method(cgsl_multimin_function, "eval", rb_gsl_multimin_function_eval, 1);
751
726
  rb_define_alias(cgsl_multimin_function, "call", "eval");
752
727
  rb_define_method(cgsl_multimin_function, "set_proc", rb_gsl_multimin_function_set_f, -1);
@@ -756,9 +731,9 @@ void Init_gsl_multimin(VALUE module)
756
731
  rb_define_method(cgsl_multimin_function, "n", rb_gsl_multimin_function_n, 0);
757
732
 
758
733
  cgsl_multimin_function_fdf = rb_define_class_under(mgsl_multimin, "Function_fdf",
759
- cGSL_Object);
734
+ cGSL_Object);
760
735
  rb_define_singleton_method(cgsl_multimin_function_fdf, "alloc",
761
- rb_gsl_multimin_function_fdf_new, -1);
736
+ rb_gsl_multimin_function_fdf_new, -1);
762
737
 
763
738
  rb_define_method(cgsl_multimin_function_fdf, "set", rb_gsl_multimin_function_fdf_set, -1);
764
739
  rb_define_method(cgsl_multimin_function_fdf, "set_params", rb_gsl_multimin_function_fdf_set_params, -1);
@@ -779,7 +754,6 @@ void Init_gsl_multimin(VALUE module)
779
754
  rb_define_method(cgsl_multimin_fdfminimizer, "test_gradient", rb_gsl_fdfminimizer_test_gradient, 1);
780
755
 
781
756
  /*****/
782
- #ifdef GSL_1_3_LATER
783
757
  rb_define_singleton_method(cgsl_multimin_fminimizer, "alloc", rb_gsl_fminimizer_new, 2);
784
758
 
785
759
  rb_define_method(cgsl_multimin_fminimizer, "set", rb_gsl_fminimizer_set, 3);
@@ -787,14 +761,12 @@ void Init_gsl_multimin(VALUE module)
787
761
  rb_define_method(cgsl_multimin_fminimizer, "iterate", rb_gsl_fminimizer_iterate, 0);
788
762
  rb_define_method(cgsl_multimin_fminimizer, "x", rb_gsl_fminimizer_x, 0);
789
763
  rb_define_method(cgsl_multimin_fminimizer, "fval", rb_gsl_fminimizer_fval, 0);
790
- rb_define_method(cgsl_multimin_fminimizer, "minimum", rb_gsl_fminimizer_minimum, 0);
791
- rb_define_method(cgsl_multimin_fminimizer, "size", rb_gsl_fminimizer_size, 0);
764
+ rb_define_method(cgsl_multimin_fminimizer, "minimum", rb_gsl_fminimizer_minimum, 0);
765
+ rb_define_method(cgsl_multimin_fminimizer, "size", rb_gsl_fminimizer_size, 0);
792
766
  rb_define_method(cgsl_multimin_fminimizer, "test_size", rb_gsl_fminimizer_test_size, 1);
793
- #endif
794
-
795
767
 
796
768
  #ifdef HAVE_GSL_GSL_MULTIMIN_FSDF_H
797
- Init_multimin_fsdf(mgsl_multimin);
769
+ Init_multimin_fsdf(mgsl_multimin);
798
770
  #endif
799
771
  }
800
772
  #ifdef CHECK_MULTIMIN_FUNCTION
@@ -1,13 +1,13 @@
1
1
  #ifdef HAVE_GSL_GSL_MULTIMIN_FSDF_H
2
- #include "rb_gsl.h"
2
+ #include "include/rb_gsl.h"
3
3
  #include "gsl/gsl_multimin_fsdf.h"
4
4
 
5
5
  static VALUE cfsdf;
6
6
  #ifndef CHECK_MULTIMIN_FUNCTION_FSDF
7
- #define CHECK_MULTIMIN_FUNCTION_FSDF(x) if(CLASS_OF(x)!=cfsdf)\
8
- rb_raise(rb_eTypeError,\
9
- "wrong argument type %s (GSL::MultiMin::Function_fsdf expected)",\
10
- rb_class2name(CLASS_OF(x)));
7
+ #define CHECK_MULTIMIN_FUNCTION_FSDF(x) if(CLASS_OF(x)!=cfsdf) \
8
+ rb_raise(rb_eTypeError, \
9
+ "wrong argument type %s (GSL::MultiMin::Function_fsdf expected)", \
10
+ rb_class2name(CLASS_OF(x)));
11
11
  #endif
12
12
  extern VALUE cgsl_multimin_function_fdf;
13
13
 
@@ -17,7 +17,7 @@ static const gsl_multimin_fsdfminimizer_type* get_fsdfminimizer_type(VALUE t)
17
17
  switch (TYPE(t)) {
18
18
  case T_STRING:
19
19
  strcpy(name, STR2CSTR(t));
20
- if (strcmp(name, "bundle") == 0 || strcmp(name, "bundle_method") == 0)
20
+ if (strcmp(name, "bundle") == 0 || strcmp(name, "bundle_method") == 0)
21
21
  return gsl_multimin_fsdfminimizer_bundle_method;
22
22
  else
23
23
  rb_raise(rb_eTypeError, "%s: unknown minimizer type", name);
@@ -42,13 +42,13 @@ static VALUE rb_gsl_fsdfminimizer_set(VALUE obj, VALUE ff, VALUE xx, VALUE ss)
42
42
  gsl_multimin_fsdfminimizer *gmf = NULL;
43
43
  gsl_multimin_function_fsdf *F = NULL;
44
44
  gsl_vector *x;
45
- size_t bundle_size;
45
+ size_t bundle_size;
46
46
  int status;
47
47
  CHECK_MULTIMIN_FUNCTION_FSDF(ff);
48
48
  Data_Get_Struct(obj, gsl_multimin_fsdfminimizer, gmf);
49
49
  Data_Get_Struct(ff, gsl_multimin_function_fsdf, F);
50
50
  Data_Get_Vector(xx, x);
51
- bundle_size = (size_t) FIX2INT(ss);
51
+ bundle_size = (size_t) FIX2INT(ss);
52
52
  status = gsl_multimin_fsdfminimizer_set(gmf, F, x, bundle_size);
53
53
  return INT2FIX(status);
54
54
  }
@@ -134,12 +134,12 @@ static VALUE rb_gsl_fsdfminimizer_eps(VALUE obj)
134
134
 
135
135
  void Init_multimin_fsdf(VALUE module)
136
136
  {
137
- VALUE cmin;
138
-
139
- cmin = rb_define_class_under(module, "FsdfMinimizer", cGSL_Object);
140
- cfsdf = rb_define_class_under(module, "Function_fsdf", cgsl_multimin_function_fdf);
141
-
142
- rb_define_singleton_method(cmin, "alloc", rb_gsl_fsdfminimizer_alloc, 2);
137
+ VALUE cmin;
138
+
139
+ cmin = rb_define_class_under(module, "FsdfMinimizer", cGSL_Object);
140
+ cfsdf = rb_define_class_under(module, "Function_fsdf", cgsl_multimin_function_fdf);
141
+
142
+ rb_define_singleton_method(cmin, "alloc", rb_gsl_fsdfminimizer_alloc, 2);
143
143
  rb_define_method(cmin, "set", rb_gsl_fsdfminimizer_set, 3);
144
144
  rb_define_method(cmin, "name", rb_gsl_fsdfminimizer_name, 0);
145
145
  rb_define_method(cmin, "iterate", rb_gsl_fsdfminimizer_iterate, 0);
@@ -149,8 +149,8 @@ void Init_multimin_fsdf(VALUE module)
149
149
  rb_define_method(cmin, "minimum", rb_gsl_fsdfminimizer_minimum, 0);
150
150
  rb_define_method(cmin, "restart", rb_gsl_fsdfminimizer_restart, 0);
151
151
  rb_define_method(cmin, "test_gradient", rb_gsl_fsdfminimizer_test_gradient, 1);
152
- rb_define_method(cmin, "test_convergence", rb_gsl_fsdfminimizer_test_convergence, 1);
153
- rb_define_method(cmin, "eps", rb_gsl_fsdfminimizer_eps, 0);
152
+ rb_define_method(cmin, "test_convergence", rb_gsl_fsdfminimizer_test_convergence, 1);
153
+ rb_define_method(cmin, "eps", rb_gsl_fsdfminimizer_eps, 0);
154
154
  }
155
155
 
156
156
  #endif
@@ -8,24 +8,24 @@
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.h"
12
- #include "rb_gsl_common.h"
13
- #include "rb_gsl_array.h"
14
- #include "rb_gsl_function.h"
11
+ #include "include/rb_gsl.h"
12
+ #include "include/rb_gsl_common.h"
13
+ #include "include/rb_gsl_array.h"
14
+ #include "include/rb_gsl_function.h"
15
15
  #include <gsl/gsl_multiroots.h>
16
16
 
17
17
  #ifndef CHECK_MULTIROOT_FUNCTION
18
- #define CHECK_MULTIROOT_FUNCTION(x) if(CLASS_OF(x)!=cgsl_multiroot_function)\
19
- rb_raise(rb_eTypeError,\
20
- "wrong argument type %s (GSL::MultiRoot::Function expected)",\
21
- rb_class2name(CLASS_OF(x)));
18
+ #define CHECK_MULTIROOT_FUNCTION(x) if(CLASS_OF(x)!=cgsl_multiroot_function) \
19
+ rb_raise(rb_eTypeError, \
20
+ "wrong argument type %s (GSL::MultiRoot::Function expected)", \
21
+ rb_class2name(CLASS_OF(x)));
22
22
  #endif
23
23
 
24
24
  #ifndef CHECK_MULTIROOT_FUNCTION_FDF
25
- #define CHECK_MULTIROOT_FUNCTION_FDF(x) if(CLASS_OF(x)!=cgsl_multiroot_function_fdf)\
26
- rb_raise(rb_eTypeError,\
27
- "wrong argument type %s (GSL::MultiRoot::Function_fdf expected)",\
28
- rb_class2name(CLASS_OF(x)));
25
+ #define CHECK_MULTIROOT_FUNCTION_FDF(x) if(CLASS_OF(x)!=cgsl_multiroot_function_fdf) \
26
+ rb_raise(rb_eTypeError, \
27
+ "wrong argument type %s (GSL::MultiRoot::Function_fdf expected)", \
28
+ rb_class2name(CLASS_OF(x)));
29
29
  #endif
30
30
 
31
31
  static VALUE cgsl_multiroot_function;
@@ -49,12 +49,12 @@ static int rb_gsl_multiroot_function_f(const gsl_vector *x, void *p, gsl_vector
49
49
  static void set_function(int i, VALUE *argv, gsl_multiroot_function *F);
50
50
 
51
51
  static void gsl_multiroot_function_fdf_free(gsl_multiroot_function_fdf *f);
52
- static int rb_gsl_multiroot_function_fdf_f(const gsl_vector *x, void *p,
53
- gsl_vector *f);
54
- static int rb_gsl_multiroot_function_fdf_df(const gsl_vector *x, void *p,
55
- gsl_matrix *J);
56
- static int rb_gsl_multiroot_function_fdf_fdf(const gsl_vector *x, void *p,
57
- gsl_vector *f, gsl_matrix *J);
52
+ static int rb_gsl_multiroot_function_fdf_f(const gsl_vector *x, void *p,
53
+ gsl_vector *f);
54
+ static int rb_gsl_multiroot_function_fdf_df(const gsl_vector *x, void *p,
55
+ gsl_matrix *J);
56
+ static int rb_gsl_multiroot_function_fdf_fdf(const gsl_vector *x, void *p,
57
+ gsl_vector *f, gsl_matrix *J);
58
58
  static void set_function_fdf(int i, VALUE *argv, gsl_multiroot_function_fdf *F);
59
59
  static const gsl_multiroot_fsolver_type* get_fsolver_type(VALUE t);
60
60
  static const gsl_multiroot_fdfsolver_type* get_fdfsolver_type(VALUE t);
@@ -69,7 +69,7 @@ static VALUE rb_gsl_multiroot_function_new(int argc, VALUE *argv, VALUE klass)
69
69
  ary = rb_ary_new2(2);
70
70
  /* (VALUE) F->params = ary;*/
71
71
  F->params = (void *) ary;
72
- if (rb_block_given_p()) rb_ary_store(ary, 0, RB_GSL_MAKE_PROC);
72
+ if (rb_block_given_p()) rb_ary_store(ary, 0, rb_block_proc());
73
73
  else rb_ary_store(ary, 0, Qnil);
74
74
  rb_ary_store(ary, 1, Qnil);
75
75
  switch (argc) {
@@ -80,7 +80,7 @@ static VALUE rb_gsl_multiroot_function_new(int argc, VALUE *argv, VALUE klass)
80
80
  break;
81
81
  case 2:
82
82
  case 3:
83
- for (i = 0; i < argc; i++) set_function(i, argv, F);
83
+ for (i = 0; (int) i < argc; i++) set_function(i, argv, F);
84
84
  break;
85
85
  default:
86
86
  rb_raise(rb_eArgError, "wrong number of arguments");
@@ -98,8 +98,8 @@ static void gsl_multiroot_function_mark(gsl_multiroot_function *f)
98
98
  {
99
99
  size_t i;
100
100
  rb_gc_mark((VALUE) f->params);
101
- // for (i = 0; i < RARRAY(f->params)->len; i++)
102
- for (i = 0; i < RARRAY_LEN(f->params); i++)
101
+ // for (i = 0; i < RARRAY(f->params)->len; i++)
102
+ for (i = 0; (int) i < RARRAY_LEN(f->params); i++)
103
103
  rb_gc_mark(rb_ary_entry((VALUE) f->params, i));
104
104
  }
105
105
 
@@ -137,10 +137,10 @@ static void set_function(int i, VALUE *argv, gsl_multiroot_function *F)
137
137
  VALUE ary;
138
138
  ary = (VALUE) F->params;
139
139
  if (TYPE(argv[i]) == T_FIXNUM) F->n = FIX2INT(argv[i]);
140
- else if (rb_obj_is_kind_of(argv[i], rb_cProc))
140
+ else if (rb_obj_is_kind_of(argv[i], rb_cProc))
141
141
  rb_ary_store(ary, 0, argv[i]);
142
142
  else if (TYPE(argv[i]) == T_ARRAY || rb_obj_is_kind_of(argv[i], cgsl_vector)
143
- || TYPE(argv[i]) == T_FIXNUM || TYPE(argv[i]) == T_FLOAT) {
143
+ || TYPE(argv[i]) == T_FIXNUM || TYPE(argv[i]) == T_FLOAT) {
144
144
  rb_ary_store(ary, 1, argv[i]);
145
145
  } else {
146
146
  rb_raise(rb_eTypeError, "wrong type of argument %d (Fixnum or Proc)", i);
@@ -154,14 +154,14 @@ static VALUE rb_gsl_multiroot_function_set_f(int argc, VALUE *argv, VALUE obj)
154
154
  size_t i;
155
155
  Data_Get_Struct(obj, gsl_multiroot_function, F);
156
156
  ary = (VALUE) F->params;
157
- if (rb_block_given_p()) rb_ary_store(ary, 0, RB_GSL_MAKE_PROC);
157
+ if (rb_block_given_p()) rb_ary_store(ary, 0, rb_block_proc());
158
158
  switch (argc) {
159
159
  case 1:
160
160
  set_function(0, argv, F);
161
161
  break;
162
162
  case 2:
163
163
  case 3:
164
- for (i = 0; i < argc; i++) set_function(i, argv, F);
164
+ for (i = 0; (int) i < argc; i++) set_function(i, argv, F);
165
165
  break;
166
166
  default:
167
167
  rb_raise(rb_eArgError, "wrong number of arguments");
@@ -187,7 +187,7 @@ static VALUE rb_gsl_multiroot_function_set_params(int argc, VALUE *argv, VALUE o
187
187
  if (argc == 1) rb_ary_store(ary, 1, argv[0]);
188
188
  else {
189
189
  ary2 = rb_ary_new2(argc);
190
- for (i = 0; i < argc; i++) rb_ary_store(ary2, i, argv[i]);
190
+ for (i = 0; (int) i < argc; i++) rb_ary_store(ary2, i, argv[i]);
191
191
  rb_ary_store(ary, 1, ary2);
192
192
  }
193
193
  return obj;
@@ -235,8 +235,8 @@ static void gsl_multiroot_function_fdf_mark(gsl_multiroot_function_fdf *f)
235
235
  {
236
236
  size_t i;
237
237
  rb_gc_mark((VALUE) f->params);
238
- // for (i = 0; i < RARRAY(f->params)->len; i++)
239
- for (i = 0; i < RARRAY_LEN(f->params); i++)
238
+ // for (i = 0; i < RARRAY(f->params)->len; i++)
239
+ for (i = 0; (int) i < RARRAY_LEN(f->params); i++)
240
240
  rb_gc_mark(rb_ary_entry((VALUE) f->params, i));
241
241
  }
242
242
 
@@ -322,7 +322,7 @@ static VALUE rb_gsl_multiroot_function_fdf_set_params(int argc, VALUE *argv, VAL
322
322
  if (argc == 1) rb_ary_store(ary, 3, argv[0]);
323
323
  else {
324
324
  ary2 = rb_ary_new2(argc);
325
- for (i = 0; i < argc; i++) rb_ary_store(ary2, i, argv[i]);
325
+ for (i = 0; (int) i < argc; i++) rb_ary_store(ary2, i, argv[i]);
326
326
  rb_ary_store(ary, 3, ary2);
327
327
  }
328
328
  return obj;
@@ -336,8 +336,8 @@ static VALUE rb_gsl_multiroot_function_fdf_set(int argc, VALUE *argv, VALUE obj)
336
336
  return obj;
337
337
  }
338
338
 
339
- static int rb_gsl_multiroot_function_fdf_f(const gsl_vector *x, void *p,
340
- gsl_vector *f)
339
+ static int rb_gsl_multiroot_function_fdf_f(const gsl_vector *x, void *p,
340
+ gsl_vector *f)
341
341
  {
342
342
  VALUE vx, vf, ary;
343
343
  VALUE proc, vp;
@@ -351,8 +351,8 @@ static int rb_gsl_multiroot_function_fdf_f(const gsl_vector *x, void *p,
351
351
  return GSL_SUCCESS;
352
352
  }
353
353
 
354
- static int rb_gsl_multiroot_function_fdf_df(const gsl_vector *x, void *p,
355
- gsl_matrix *J)
354
+ static int rb_gsl_multiroot_function_fdf_df(const gsl_vector *x, void *p,
355
+ gsl_matrix *J)
356
356
  {
357
357
  VALUE vx, vJ, ary;
358
358
  VALUE proc, vp;
@@ -366,8 +366,8 @@ static int rb_gsl_multiroot_function_fdf_df(const gsl_vector *x, void *p,
366
366
  return GSL_SUCCESS;
367
367
  }
368
368
 
369
- static int rb_gsl_multiroot_function_fdf_fdf(const gsl_vector *x, void *p,
370
- gsl_vector *f, gsl_matrix *J)
369
+ static int rb_gsl_multiroot_function_fdf_fdf(const gsl_vector *x, void *p,
370
+ gsl_vector *f, gsl_matrix *J)
371
371
  {
372
372
  VALUE vx, vf, vJ, ary;
373
373
  VALUE proc_f, proc_df, proc_fdf, vp;
@@ -671,8 +671,8 @@ static VALUE rb_gsl_multiroot_fdfsolver_test_residual(VALUE obj, VALUE ea)
671
671
  return INT2FIX(gsl_multiroot_test_residual(s->f, NUM2DBL(ea)));
672
672
  }
673
673
 
674
- static VALUE rb_gsl_multiroot_test_delta(VALUE obj, VALUE vdx, VALUE vx,
675
- VALUE ea, VALUE er)
674
+ static VALUE rb_gsl_multiroot_test_delta(VALUE obj, VALUE vdx, VALUE vx,
675
+ VALUE ea, VALUE er)
676
676
  {
677
677
  gsl_vector *dx = NULL, *x = NULL;
678
678
  Need_Float(ea); Need_Float(er);
@@ -717,22 +717,21 @@ static VALUE rb_gsl_multiroot_fsolver_fsolve(int argc, VALUE *argv, VALUE obj)
717
717
  break;
718
718
  default:
719
719
  rb_raise(rb_eTypeError, "wrong type of argument %s (Fixnum or Float expected)",
720
- rb_class2name(CLASS_OF(argv[i])));
720
+ rb_class2name(CLASS_OF(argv[i])));
721
721
  break;
722
722
  }
723
723
  }
724
-
725
724
  do {
726
- iter ++;
725
+ iter++;
727
726
  status = gsl_multiroot_fsolver_iterate (s);
728
727
  if (status) break;
729
728
  status = gsl_multiroot_test_residual(s->f, eps);
730
729
  } while (status == GSL_CONTINUE && iter < max_iter);
731
730
  xnew = gsl_vector_alloc(s->x->size);
732
731
  gsl_vector_memcpy(xnew, gsl_multiroot_fsolver_root(s));
733
- return rb_ary_new3(3,
734
- Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, xnew),
735
- INT2FIX(iter), INT2FIX(status));
732
+ return rb_ary_new3(3,
733
+ Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, xnew),
734
+ INT2FIX(iter), INT2FIX(status));
736
735
  }
737
736
 
738
737
  /* singleton */
@@ -746,7 +745,6 @@ static VALUE rb_gsl_multiroot_fdjacobian(int argc, VALUE *argv, VALUE obj)
746
745
  int status;
747
746
  if (argc != 4 && argc != 5)
748
747
  rb_raise(rb_eArgError, "wrong number of arguments (%d for 4 or 5)", argc);
749
-
750
748
  if (rb_obj_is_kind_of(argv[0], cgsl_multiroot_function_fdf)) {
751
749
  Data_Get_Struct(argv[0], gsl_multiroot_function_fdf, fdf);
752
750
  func.f = fdf->f;
@@ -758,7 +756,6 @@ static VALUE rb_gsl_multiroot_fdjacobian(int argc, VALUE *argv, VALUE obj)
758
756
  } else {
759
757
  rb_raise(rb_eArgError, "wrong argument type %s (MultiRoot::Function or MultiRoot::Function_fdf expected)", rb_class2name(CLASS_OF(argv[0])));
760
758
  }
761
-
762
759
  Need_Float(argv[3]);
763
760
  Data_Get_Vector(argv[1], x);
764
761
  Data_Get_Vector(argv[2], f);
@@ -767,7 +764,7 @@ static VALUE rb_gsl_multiroot_fdjacobian(int argc, VALUE *argv, VALUE obj)
767
764
  J = gsl_matrix_alloc(F->n, F->n);
768
765
  status = gsl_multiroot_fdjacobian(F, x, f, eps, J);
769
766
  return rb_ary_new3(2, Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, J),
770
- INT2FIX(status));
767
+ INT2FIX(status));
771
768
  } else {
772
769
  Data_Get_Struct(argv[4], gsl_matrix, J);
773
770
  status = gsl_multiroot_fdjacobian(F, x, f, eps, J);
@@ -803,7 +800,7 @@ static VALUE rb_gsl_multiroot_function_solve(int argc, VALUE *argv, VALUE obj)
803
800
  int flag = 0;
804
801
  double epsabs = 1e-7;
805
802
  size_t max_iter = 10000, iter = 0, i;
806
- gsl_multiroot_fsolver_type *T
803
+ gsl_multiroot_fsolver_type *T
807
804
  = (gsl_multiroot_fsolver_type *) gsl_multiroot_fsolver_hybrids;
808
805
  gsl_multiroot_fsolver *s = NULL;
809
806
  int status;
@@ -813,28 +810,28 @@ static VALUE rb_gsl_multiroot_function_solve(int argc, VALUE *argv, VALUE obj)
813
810
  case 4:
814
811
  case 3:
815
812
  case 2:
816
- for (i = 1; i < argc; i++) {
813
+ for (i = 1; (int) i < argc; i++) {
817
814
  switch (TYPE(argv[i])) {
818
815
  case T_STRING:
819
- T = (gsl_multiroot_fsolver_type *) get_fsolver_type(argv[i]);
820
- break;
816
+ T = (gsl_multiroot_fsolver_type *) get_fsolver_type(argv[i]);
817
+ break;
821
818
  case T_FLOAT:
822
- epsabs = NUM2DBL(argv[i]);
823
- break;
819
+ epsabs = NUM2DBL(argv[i]);
820
+ break;
824
821
  case T_FIXNUM:
825
- max_iter = FIX2INT(argv[i]);
826
- break;
822
+ max_iter = FIX2INT(argv[i]);
823
+ break;
827
824
  }
828
825
  }
829
- /* no break */
826
+ /* no break */
830
827
  case 1:
831
828
  if (TYPE(argv[0]) == T_ARRAY) {
832
829
  // if (RARRAY(argv[0])->len != F->n)
833
- if (RARRAY_LEN(argv[0]) != F->n)
834
- rb_raise(rb_eRangeError, "array size are different.");
830
+ if (RARRAY_LEN(argv[0]) != (int) F->n)
831
+ rb_raise(rb_eRangeError, "array size are different.");
835
832
  x0 = gsl_vector_alloc(F->n);
836
- for (i = 0; i < x0->size; i++)
837
- gsl_vector_set(x0, i, NUM2DBL(rb_ary_entry(argv[0], i)));
833
+ for (i = 0; i < x0->size; i++)
834
+ gsl_vector_set(x0, i, NUM2DBL(rb_ary_entry(argv[0], i)));
838
835
  flag = 1;
839
836
  } else {
840
837
  Data_Get_Vector(argv[0], x0);
@@ -858,7 +855,7 @@ static VALUE rb_gsl_multiroot_function_solve(int argc, VALUE *argv, VALUE obj)
858
855
  gsl_multiroot_fsolver_free (s);
859
856
  if (flag == 1) gsl_vector_free(x0);
860
857
  return rb_ary_new3(3, Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, xnew),
861
- INT2FIX(iter), INT2FIX(status));
858
+ INT2FIX(iter), INT2FIX(status));
862
859
  }
863
860
 
864
861
  void Init_gsl_multiroot(VALUE module)
@@ -868,19 +865,19 @@ void Init_gsl_multiroot(VALUE module)
868
865
 
869
866
  mgsl_multiroot = rb_define_module_under(module, "MultiRoot");
870
867
 
871
- rb_define_singleton_method(mgsl_multiroot, "test_delta",
872
- rb_gsl_multiroot_test_delta, 4);
873
- rb_define_singleton_method(mgsl_multiroot, "test_residual",
874
- rb_gsl_multiroot_test_residual, 2);
868
+ rb_define_singleton_method(mgsl_multiroot, "test_delta",
869
+ rb_gsl_multiroot_test_delta, 4);
870
+ rb_define_singleton_method(mgsl_multiroot, "test_residual",
871
+ rb_gsl_multiroot_test_residual, 2);
875
872
 
876
- rb_define_singleton_method(mgsl_multiroot, "fdjacobian",
877
- rb_gsl_multiroot_fdjacobian, -1);
873
+ rb_define_singleton_method(mgsl_multiroot, "fdjacobian",
874
+ rb_gsl_multiroot_fdjacobian, -1);
878
875
 
879
876
  /* multiroot_function */
880
877
  cgsl_multiroot_function = rb_define_class_under(mgsl_multiroot, "Function",
881
- cgsl_function);
878
+ cgsl_function);
882
879
  rb_define_singleton_method(cgsl_multiroot_function, "alloc",
883
- rb_gsl_multiroot_function_new, -1);
880
+ rb_gsl_multiroot_function_new, -1);
884
881
  rb_define_method(cgsl_multiroot_function, "eval", rb_gsl_multiroot_function_eval, 1);
885
882
  rb_define_alias(cgsl_multiroot_function, "call", "eval");
886
883
  rb_define_method(cgsl_multiroot_function, "set", rb_gsl_multiroot_function_set_f, -1);
@@ -891,9 +888,9 @@ void Init_gsl_multiroot(VALUE module)
891
888
 
892
889
  /* multiroot_function_fdf */
893
890
  cgsl_multiroot_function_fdf = rb_define_class_under(mgsl_multiroot, "Function_fdf",
894
- cgsl_multiroot_function);
891
+ cgsl_multiroot_function);
895
892
  rb_define_singleton_method(cgsl_multiroot_function_fdf, "alloc",
896
- rb_gsl_multiroot_function_fdf_new, -1);
893
+ rb_gsl_multiroot_function_fdf_new, -1);
897
894
  rb_define_method(cgsl_multiroot_function_fdf, "set", rb_gsl_multiroot_function_fdf_set, -1);
898
895
  rb_define_method(cgsl_multiroot_function_fdf, "set_params", rb_gsl_multiroot_function_fdf_set_params, -1);
899
896
  rb_define_method(cgsl_multiroot_function_fdf, "params", rb_gsl_multiroot_function_fdf_params, 0);
@@ -905,10 +902,10 @@ void Init_gsl_multiroot(VALUE module)
905
902
  cgsl_multiroot_fsolver = rb_define_class_under(mgsl_multiroot, "FSolver", cGSL_Object);
906
903
  cgsl_multiroot_fdfsolver = rb_define_class_under(mgsl_multiroot, "FdfSolver", cgsl_multiroot_fsolver);
907
904
 
908
- rb_define_singleton_method(cgsl_multiroot_fsolver, "alloc",
909
- rb_gsl_multiroot_fsolver_new, 2);
910
- rb_define_singleton_method(cgsl_multiroot_fdfsolver, "alloc",
911
- rb_gsl_multiroot_fdfsolver_new, 2);
905
+ rb_define_singleton_method(cgsl_multiroot_fsolver, "alloc",
906
+ rb_gsl_multiroot_fsolver_new, 2);
907
+ rb_define_singleton_method(cgsl_multiroot_fdfsolver, "alloc",
908
+ rb_gsl_multiroot_fdfsolver_new, 2);
912
909
 
913
910
  rb_define_method(cgsl_multiroot_fsolver, "set", rb_gsl_multiroot_fsolver_set, 2);
914
911
  rb_define_method(cgsl_multiroot_fsolver, "name", rb_gsl_multiroot_fsolver_name, 0);
@@ -935,7 +932,7 @@ void Init_gsl_multiroot(VALUE module)
935
932
  rb_define_method(cgsl_multiroot_fdfsolver, "test_residual", rb_gsl_multiroot_fdfsolver_test_residual, 1);
936
933
 
937
934
 
938
- multiroot_define_const(cgsl_multiroot_fdfsolver, cgsl_multiroot_fsolver);
935
+ multiroot_define_const(cgsl_multiroot_fdfsolver, cgsl_multiroot_fsolver);
939
936
 
940
937
  rb_define_method(cgsl_multiroot_fsolver, "fsolve", rb_gsl_multiroot_fsolver_fsolve, -1);
941
938
  rb_define_alias(cgsl_multiroot_fsolver, "solve", "fsolve");