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,7 +9,7 @@
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
11
 
12
- #include "rb_gsl.h"
12
+ #include "include/rb_gsl.h"
13
13
  #include <gsl/gsl_machine.h>
14
14
 
15
15
  ID rb_gsl_id_beg, rb_gsl_id_end, rb_gsl_id_excl, rb_gsl_id_to_a;
@@ -46,11 +46,7 @@ static VALUE rb_gsl_object_info(VALUE obj)
46
46
  char buf[256];
47
47
  VALUE s;
48
48
  sprintf(buf, "Class: %s\n", rb_class2name(CLASS_OF(obj)));
49
- #ifdef RUBY_1_9_LATER
50
49
  sprintf(buf, "%sSuperClass: %s\n", buf, rb_class2name(RCLASS_SUPER(CLASS_OF(obj))));
51
- #else
52
- sprintf(buf, "%sSuperClass: %s\n", buf, rb_class2name(RCLASS(CLASS_OF(obj))->super));
53
- #endif
54
50
  s = rb_rescue(rb_gsl_call_name, obj, rb_gsl_call_rescue, obj);
55
51
  if (s) sprintf(buf, "%sType: %s\n", buf, STR2CSTR(s));
56
52
  s = rb_rescue(rb_gsl_call_size, obj, rb_gsl_call_rescue, obj);
@@ -64,7 +60,7 @@ static VALUE rb_gsl_not_implemeted(VALUE obj)
64
60
  return Qnil;
65
61
  }
66
62
 
67
- void Init_rb_gsl()
63
+ void Init_gsl_native()
68
64
  {
69
65
  VALUE mgsl;
70
66
 
@@ -102,16 +98,14 @@ void Init_rb_gsl()
102
98
  Init_gsl_eigen(mgsl);
103
99
 
104
100
  Init_gsl_fft(mgsl);
105
- Init_gsl_signal(mgsl);
101
+ Init_gsl_signal(mgsl);
106
102
  Init_gsl_function(mgsl);
107
103
  Init_gsl_integration(mgsl);
108
104
 
109
105
  Init_gsl_rng(mgsl);
110
106
  Init_gsl_qrng(mgsl);
111
107
  Init_gsl_ran(mgsl);
112
- #ifdef GSL_1_4_LATER
113
108
  Init_gsl_cdf(mgsl);
114
- #endif
115
109
  Init_gsl_stats(mgsl);
116
110
 
117
111
  Init_gsl_histogram(mgsl);
@@ -125,9 +119,7 @@ void Init_rb_gsl()
125
119
  Init_gsl_interp(mgsl);
126
120
  Init_gsl_spline(mgsl);
127
121
  Init_gsl_diff(mgsl);
128
- #ifdef GSL_1_4_9_LATER
129
122
  Init_gsl_deriv(mgsl);
130
- #endif
131
123
 
132
124
  Init_gsl_cheb(mgsl);
133
125
  Init_gsl_sum(mgsl);
@@ -165,32 +157,28 @@ void Init_rb_gsl()
165
157
  #endif
166
158
 
167
159
  #ifdef HAVE_OOL_OOL_VERSION_H
168
- Init_ool(mgsl);
160
+ Init_ool(mgsl);
169
161
  #endif
170
162
 
171
163
  #ifdef HAVE_JACOBI_H
172
- Init_jacobi(mgsl);
164
+ Init_jacobi(mgsl);
173
165
  #endif
174
166
 
175
167
  #ifdef HAVE_GSL_GSL_CQP_H
176
- Init_cqp(mgsl);
168
+ Init_cqp(mgsl);
177
169
  #endif
178
170
 
179
- Init_fresnel(mgsl);
180
-
181
- #ifdef GSL_1_9_LATER
182
- Init_bspline(mgsl);
183
- #endif
171
+ Init_fresnel(mgsl);
172
+
173
+ Init_bspline(mgsl);
184
174
 
185
175
  #ifdef HAVE_ALF_ALF_H
186
- Init_alf(mgsl);
176
+ Init_alf(mgsl);
187
177
  #endif
188
178
 
189
- Init_geometry(mgsl);
179
+ Init_geometry(mgsl);
190
180
 
191
- #ifdef GSL_1_14_LATER
192
- Init_multiset(mgsl);
193
- #endif
181
+ Init_multiset(mgsl);
194
182
 
195
183
  rb_gsl_define_methods(mgsl);
196
184
  }
@@ -213,14 +201,8 @@ static void rb_gsl_define_const(VALUE module)
213
201
  rb_define_const(module, "PREC_DOUBLE", INT2FIX(GSL_PREC_DOUBLE));
214
202
  rb_define_const(module, "PREC_SINGLE", INT2FIX(GSL_PREC_SINGLE));
215
203
  rb_define_const(module, "PREC_APPROX", INT2FIX(GSL_PREC_APPROX));
216
- #ifdef GSL_VERSION
217
204
  rb_define_const(module, "VERSION", rb_str_new2(GSL_VERSION));
218
205
  rb_define_const(module, "GSL_VERSION", rb_str_new2(GSL_VERSION));
219
- #endif
220
- #ifdef RUBY_GSL_VERSION
221
- rb_define_const(module, "RUBY_GSL_VERSION", rb_str_new2(RUBY_GSL_VERSION));
222
- rb_define_const(module, "RB_GSL_VERSION", rb_str_new2(RUBY_GSL_VERSION));
223
- #endif
224
206
 
225
207
  rb_define_const(module, "DBL_EPSILON", rb_float_new(GSL_DBL_EPSILON));
226
208
  rb_define_const(module, "FLT_EPSILON", rb_float_new(GSL_FLT_EPSILON));
@@ -248,11 +230,8 @@ static void rb_gsl_define_const(VALUE module)
248
230
  rb_define_const(module, "ROOT6_DBL_MIN", rb_float_new(GSL_ROOT6_DBL_MIN));
249
231
  rb_define_const(module, "LOG_DBL_MIN", rb_float_new(GSL_LOG_DBL_MIN));
250
232
 
251
- #ifdef GSL_1_14_LATER
252
233
  rb_define_const(module, "MAJOR_VERSION", INT2FIX(GSL_MAJOR_VERSION));
253
234
  rb_define_const(module, "MINOR_VERSION", INT2FIX(GSL_MINOR_VERSION));
254
- #endif
255
-
256
235
  }
257
236
 
258
237
  static VALUE rb_gsl_have_tensor(VALUE module)
@@ -5,11 +5,9 @@
5
5
  Modified by Seiya Nishizawa 14/Apr/2004
6
6
  */
7
7
 
8
- #include "rb_gsl_config.h"
9
8
  #ifdef HAVE_NARRAY_H
10
- #include "rb_gsl_array.h"
11
- #include "narray.h"
12
- #include "rb_gsl_with_narray.h"
9
+ #include "include/rb_gsl_array.h"
10
+ #include "include/rb_gsl_with_narray.h"
13
11
 
14
12
  static VALUE rb_gsl_na_to_gsl_matrix_method(VALUE nna);
15
13
  static VALUE rb_gsl_na_to_gsl_matrix_int_method(VALUE nna);
@@ -31,7 +29,7 @@ static VALUE rb_gsl_vector_to_narray(VALUE obj, VALUE klass)
31
29
  memcpy(NA_PTR_TYPE(nary,double*), v->data, shape[0]*sizeof(double));
32
30
  } else {
33
31
  int i;
34
- for(i=0; i < v->size; i++) {
32
+ for(i = 0; i < (int) v->size; i++) {
35
33
  (NA_PTR_TYPE(nary,double*))[i] = gsl_vector_get(v, i);
36
34
  }
37
35
  }
@@ -50,7 +48,7 @@ static VALUE rb_gsl_vector_complex_to_narray(VALUE obj, VALUE klass)
50
48
  memcpy(NA_PTR_TYPE(nary,double*), v->data, shape[0]*2*sizeof(double));
51
49
  } else {
52
50
  int i;
53
- for(i=0; i < 2*v->size; i++) {
51
+ for(i = 0; i < (int) (2*v->size); i++) {
54
52
  (NA_PTR_TYPE(nary,gsl_complex*))[i] = gsl_vector_complex_get(v, i);
55
53
  }
56
54
  }
@@ -67,8 +65,7 @@ static VALUE rb_gsl_vector_to_na(VALUE obj)
67
65
  na = rb_gsl_vector_complex_to_narray(obj, cNArray);
68
66
  else
69
67
  rb_raise(rb_eRuntimeError, "unexpected type '%s'",
70
- rb_obj_classname(obj));
71
-
68
+ rb_obj_classname(obj));
72
69
  return na;
73
70
  }
74
71
 
@@ -142,7 +139,7 @@ static VALUE rb_gsl_vector_to_narray_ref(VALUE obj, VALUE klass)
142
139
  na->ptr = (char *) vc->data;
143
140
  } else {
144
141
  rb_raise(rb_eRuntimeError, "cannot convert %s to NArray reference object",
145
- rb_obj_classname(obj));
142
+ rb_obj_classname(obj));
146
143
  }
147
144
  nary = Data_Wrap_Struct(klass, 0, rb_gsl_na_view_free, na);
148
145
  return nary;
@@ -170,7 +167,7 @@ static VALUE rb_gsl_vector_int_to_narray(VALUE obj, VALUE klass)
170
167
  memcpy(NA_PTR_TYPE(nary,int*), v->data, shape[0]*sizeof(int));
171
168
  } else {
172
169
  int i;
173
- for(i=0; i < v->size; i++) {
170
+ for(i = 0; i < (int) v->size; i++) {
174
171
  (NA_PTR_TYPE(nary,int*))[i] = gsl_vector_int_get(v, i);
175
172
  }
176
173
  }
@@ -230,11 +227,10 @@ static VALUE rb_gsl_na_to_gsl_vector_method(VALUE na)
230
227
 
231
228
  if(NA_TYPE(na) == NA_SCOMPLEX || NA_TYPE(na) == NA_DCOMPLEX)
232
229
  v = Data_Wrap_Struct(cgsl_vector_complex, 0, gsl_vector_complex_free,
233
- na_to_gv_complex(na));
230
+ na_to_gv_complex(na));
234
231
  else
235
232
  v = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free,
236
- na_to_gv(na));
237
-
233
+ na_to_gv(na));
238
234
  return v;
239
235
  }
240
236
 
@@ -244,11 +240,10 @@ VALUE rb_gsl_na_to_gsl_vector_view_method(VALUE na)
244
240
 
245
241
  if(NA_TYPE(na) == NA_SCOMPLEX || NA_TYPE(na) == NA_DCOMPLEX)
246
242
  v = Data_Wrap_Struct(cgsl_vector_complex_view, 0, gsl_vector_complex_view_free,
247
- na_to_gv_complex_view(na));
243
+ na_to_gv_complex_view(na));
248
244
  else
249
245
  v = Data_Wrap_Struct(cgsl_vector_view, 0, gsl_vector_view_free,
250
- na_to_gv_view(na));
251
-
246
+ na_to_gv_view(na));
252
247
  return v;
253
248
  }
254
249
 
@@ -283,7 +278,6 @@ gsl_vector_view* na_to_gv_view(VALUE na)
283
278
  // Raise exception if na's type is not NA_DFLOAT.
284
279
  if(NA_TYPE(na) != NA_DFLOAT)
285
280
  rb_raise(rb_eTypeError, "GSL::Vector::View requires NArray be DFLOAT");
286
-
287
281
  v = gsl_vector_view_alloc();
288
282
  v->vector.data = NA_PTR_TYPE(na,double*);
289
283
  v->vector.size = NA_TOTAL(na);
@@ -311,7 +305,6 @@ gsl_vector_complex_view* na_to_gv_complex_view(VALUE na)
311
305
  // Raise exception if na's type is not NA_DCOMPLEX
312
306
  if(NA_TYPE(na) != NA_DCOMPLEX)
313
307
  rb_raise(rb_eTypeError, "GSL::Vector::Complex::View requires NArray be DCOMPLEX");
314
-
315
308
  v = gsl_vector_complex_view_alloc();
316
309
  v->vector.data = NA_PTR_TYPE(na,double*);
317
310
  v->vector.size = NA_TOTAL(na);
@@ -357,8 +350,8 @@ static VALUE rb_gsl_matrix_to_narray(VALUE obj, VALUE klass)
357
350
  shape[0] = m->size2;
358
351
  shape[1] = m->size1;
359
352
  nary = na_make_object(NA_DFLOAT, 2, shape, klass);
360
- for (i = 0; i < shape[1]; i++) {
361
- memcpy(NA_PTR_TYPE(nary,double*)+(i*shape[0]), m->data+(i*m->tda),
353
+ for (i = 0; (int) i < shape[1]; i++) {
354
+ memcpy(NA_PTR_TYPE(nary,double*)+(i*shape[0]), m->data+(i*m->tda),
362
355
  shape[0]*sizeof(double));
363
356
  }
364
357
  return nary;
@@ -384,8 +377,8 @@ static VALUE rb_gsl_matrix_int_to_narray(VALUE obj, VALUE klass)
384
377
  shape[0] = m->size2;
385
378
  shape[1] = m->size1;
386
379
  nary = na_make_object(NA_LINT, 2, shape, klass);
387
- for (i = 0; i < shape[1]; i++) {
388
- memcpy(NA_PTR_TYPE(nary,int*)+(i*shape[0]), m->data+(i*m->tda),
380
+ for (i = 0; (int) i < shape[1]; i++) {
381
+ memcpy(NA_PTR_TYPE(nary,int*)+(i*shape[0]), m->data+(i*m->tda),
389
382
  shape[0]*sizeof(int));
390
383
  }
391
384
  return nary;
@@ -539,7 +532,7 @@ gsl_matrix_view* na_to_gm_view(VALUE nna)
539
532
  m->matrix.data = NA_PTR_TYPE(ary2,double*);
540
533
  m->matrix.size1 = na->shape[1];
541
534
  m->matrix.size2 = na->shape[0];
542
- m->matrix.tda = m->matrix.size2;
535
+ m->matrix.tda = m->matrix.size2;
543
536
  m->matrix.owner = 0;
544
537
  return m;
545
538
  }
@@ -571,19 +564,17 @@ gsl_matrix_int_view* na_to_gm_int_view(VALUE nna)
571
564
  m->matrix.data = NA_PTR_TYPE(ary2,int*);
572
565
  m->matrix.size1 = na->shape[1];
573
566
  m->matrix.size2 = na->shape[0];
574
- m->matrix.tda = m->matrix.size2;
567
+ m->matrix.tda = m->matrix.size2;
575
568
  m->matrix.owner = 0;
576
569
  return m;
577
570
  }
578
571
 
579
- #ifdef HAVE_NARRAY_H
580
- #include "narray.h"
581
572
  #include <gsl/gsl_histogram.h>
582
573
  EXTERN VALUE cgsl_histogram;
583
574
  static VALUE rb_gsl_narray_histogram(int argc, VALUE *argv, VALUE obj)
584
575
  {
585
576
  double *ptr, *ptr_range;
586
- gsl_histogram *h;
577
+ gsl_histogram *h = NULL;
587
578
  gsl_vector *ranges;
588
579
  gsl_vector_view v;
589
580
  double min, max;
@@ -594,7 +585,7 @@ static VALUE rb_gsl_narray_histogram(int argc, VALUE *argv, VALUE obj)
594
585
  v.vector.size = stride;
595
586
  switch (argc) {
596
587
  case 1:
597
- if (rb_obj_is_kind_of(argv[0], rb_cRange))
588
+ if (rb_obj_is_kind_of(argv[0], rb_cRange))
598
589
  argv[0] = rb_gsl_range2ary(argv[0]);
599
590
  switch (TYPE(argv[0])) {
600
591
  case T_FIXNUM:
@@ -653,7 +644,6 @@ static VALUE rb_gsl_narray_histogram(int argc, VALUE *argv, VALUE obj)
653
644
  gsl_histogram_increment(h, ptr[i*stride]);
654
645
  return Data_Wrap_Struct(cgsl_histogram, 0, gsl_histogram_free, h);
655
646
  }
656
- #endif
657
647
 
658
648
  /*void rb_gsl_with_narray_define_methods()*/
659
649
  void Init_gsl_narray(VALUE module)
@@ -766,7 +756,7 @@ void Init_gsl_narray(VALUE module)
766
756
  rb_define_method(cNArray, "to_gslm", rb_gsl_na_to_gsl_matrix_method, 0);
767
757
  rb_define_alias(cNArray, "to_gm", "to_gslm");
768
758
  rb_define_method(cNArray, "to_gslm_view", rb_gsl_na_to_gsl_matrix_view_method, 0);
769
- rb_define_alias(cNArray, "to_gm_view", "to_gslm_view");
759
+ rb_define_alias(cNArray, "to_gm_view", "to_gslm_view");
770
760
 
771
761
  /*****/
772
762
  // TODO Complex matrix
@@ -9,9 +9,8 @@
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
11
 
12
- #include "rb_gsl_config.h"
13
- #include "rb_gsl_histogram.h"
14
- #include "rb_gsl_array.h"
12
+ #include "include/rb_gsl_histogram.h"
13
+ #include "include/rb_gsl_array.h"
15
14
  #include <gsl/gsl_fit.h>
16
15
  #include <gsl/gsl_multifit_nlin.h>
17
16
  #include <gsl/gsl_blas.h>
@@ -22,7 +21,6 @@ VALUE cgsl_histogram_bin;
22
21
  static VALUE cgsl_histogram_integ;
23
22
 
24
23
  static VALUE rb_gsl_histogram_alloc_from_file(VALUE klass, VALUE name);
25
- #ifdef GSL_0_9_4_LATER
26
24
  static VALUE rb_gsl_histogram_alloc(int argc, VALUE *argv, VALUE klass)
27
25
  {
28
26
  gsl_histogram *h = NULL;
@@ -69,8 +67,8 @@ static VALUE rb_gsl_histogram_alloc(int argc, VALUE *argv, VALUE klass)
69
67
  case T_FIXNUM:
70
68
  CHECK_FIXNUM(argv[0]);
71
69
  if (TYPE(argv[1]) != T_ARRAY) {
72
- rb_raise(rb_eTypeError, "wrong argument type %s (Array expected)",
73
- rb_class2name(CLASS_OF(argv[1])));
70
+ rb_raise(rb_eTypeError, "wrong argument type %s (Array expected)",
71
+ rb_class2name(CLASS_OF(argv[1])));
74
72
  }
75
73
  n = FIX2INT(argv[0]);
76
74
  min = NUM2DBL(rb_ary_entry(argv[1], 0));
@@ -114,11 +112,12 @@ static VALUE rb_gsl_histogram_alloc_from_file(VALUE klass, VALUE name)
114
112
  size_t n, i;
115
113
  FILE *fp = NULL;
116
114
  double upper;
117
- strcpy(filename, STR2CHARPTR(name));
115
+ strcpy(filename, StringValuePtr(name));
118
116
  sprintf(buf, "wc %s", filename);
119
117
  fp = popen(buf, "r");
120
118
  if (fp == NULL) rb_raise(rb_eIOError, "popen failed.");
121
- fgets(buf, 1024, fp);
119
+ if (fgets(buf, 1024, fp) == NULL)
120
+ rb_sys_fail(0);
122
121
  pclose(fp);
123
122
  sscanf(buf, "%d", &nn);
124
123
  n = (size_t) nn; /* vector length */
@@ -133,7 +132,7 @@ static VALUE rb_gsl_histogram_alloc_from_file(VALUE klass, VALUE name)
133
132
  h->range[n] = upper;
134
133
  fclose(fp);
135
134
  return Data_Wrap_Struct(klass, 0, gsl_histogram_free, h);
136
-
135
+
137
136
  }
138
137
 
139
138
  /* initialization + set uniform ranges (equal spacing from min to max) */
@@ -172,8 +171,8 @@ static VALUE rb_gsl_histogram_alloc_uniform(int argc, VALUE *argv, VALUE klass)
172
171
  }
173
172
 
174
173
  /* initialization + set ranges with a given spacing from min to max */
175
- static VALUE rb_gsl_histogram_alloc_with_min_max_step(VALUE klass, VALUE vmin,
176
- VALUE vmax, VALUE ss)
174
+ static VALUE rb_gsl_histogram_alloc_with_min_max_step(VALUE klass, VALUE vmin,
175
+ VALUE vmax, VALUE ss)
177
176
  {
178
177
  gsl_histogram *h = NULL;
179
178
  gsl_vector *v = NULL;
@@ -196,7 +195,6 @@ static VALUE rb_gsl_histogram_alloc_with_min_max_step(VALUE klass, VALUE vmin,
196
195
  gsl_vector_free(v);
197
196
  return Data_Wrap_Struct(klass, 0, gsl_histogram_free, h);
198
197
  }
199
- #endif
200
198
 
201
199
  static VALUE rb_gsl_histogram_calloc(VALUE klass, VALUE nn)
202
200
  {
@@ -244,7 +242,7 @@ static VALUE rb_gsl_histogram_set_ranges(int argc, VALUE *argv, VALUE obj)
244
242
  gsl_vector *v = NULL;
245
243
  size_t size;
246
244
  Data_Get_Struct(obj, gsl_histogram, h);
247
- if (argc != 1 && argc != 2)
245
+ if (argc != 1 && argc != 2)
248
246
  rb_raise(rb_eArgError, "wrong number of arguments (%d for 1 or 2)", argc);
249
247
  if (TYPE(argv[0]) == T_ARRAY) {
250
248
  v = make_cvector_from_rarray(argv[0]);
@@ -336,10 +334,6 @@ static VALUE rb_gsl_histogram_accumulate(int argc, VALUE *argv, VALUE obj)
336
334
  gsl_vector_int *vi;
337
335
  size_t i;
338
336
  double weight = 1;
339
- #ifdef HAVE_NARRAY_H
340
- double *ptr;
341
- size_t size, stride;
342
- #endif
343
337
  switch (argc) {
344
338
  case 2:
345
339
  Need_Float(argv[1]);
@@ -355,7 +349,7 @@ static VALUE rb_gsl_histogram_accumulate(int argc, VALUE *argv, VALUE obj)
355
349
  Data_Get_Struct(obj, gsl_histogram, h);
356
350
  if (TYPE(argv[0]) == T_ARRAY) {
357
351
  // for (i = 0; i < RARRAY(argv[0])->len; i++)
358
- for (i = 0; i < RARRAY_LEN(argv[0]); i++)
352
+ for (i = 0; (int) i < RARRAY_LEN(argv[0]); i++)
359
353
  gsl_histogram_accumulate(h, NUM2DBL(rb_ary_entry(argv[0], i)), weight);
360
354
  } else if (VECTOR_P(argv[0])) {
361
355
  Data_Get_Struct(argv[0], gsl_vector, v);
@@ -367,8 +361,10 @@ static VALUE rb_gsl_histogram_accumulate(int argc, VALUE *argv, VALUE obj)
367
361
  gsl_histogram_accumulate(h, (double)gsl_vector_int_get(vi, i), weight);
368
362
  #ifdef HAVE_NARRAY_H
369
363
  } else if (NA_IsNArray(argv[0])) {
364
+ double *ptr;
365
+ size_t size, stride;
370
366
  ptr = get_vector_ptr(argv[0], &stride, &size);
371
- for (i = 0; i < size; i++)
367
+ for (i = 0; i < size; i++)
372
368
  gsl_histogram_accumulate(h, ptr[i], weight);
373
369
  #endif
374
370
  } else {
@@ -386,7 +382,7 @@ static VALUE rb_gsl_histogram_accumulate2(int argc, VALUE *argv, VALUE obj)
386
382
  case 2:
387
383
  Need_Float(argv[1]);
388
384
  weight = NUM2DBL(argv[1]);
389
- /* no break; */
385
+ /* no break; */
390
386
  case 1:
391
387
  Need_Float(argv[0]);
392
388
  x = NUM2DBL(argv[0]);
@@ -494,17 +490,6 @@ static VALUE rb_gsl_histogram_sigma(VALUE obj)
494
490
  return rb_float_new(gsl_histogram_sigma(h));
495
491
  }
496
492
 
497
- #ifndef GSL_1_1_LATER
498
- double gsl_histogram_sum(const gsl_histogram * h)
499
- {
500
- double sum=0;
501
- size_t i=0, n;
502
- n=h->n;
503
- while(i < n) sum += h->bin[i++];
504
- return sum;
505
- }
506
- #endif
507
-
508
493
  static VALUE rb_gsl_histogram_sum(VALUE obj)
509
494
  {
510
495
  gsl_histogram *h = NULL;
@@ -573,7 +558,7 @@ static VALUE rb_gsl_histogram_equal_bins_p(int argc, VALUE *argv, VALUE obj)
573
558
  case T_CLASS:
574
559
  case T_OBJECT:
575
560
  if (argc != 2) rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)",
576
- argc);
561
+ argc);
577
562
  CHECK_HISTOGRAM(argv[0]);
578
563
  CHECK_HISTOGRAM(argv[1]);
579
564
  Data_Get_Struct(argv[0], gsl_histogram, h1);
@@ -581,7 +566,7 @@ static VALUE rb_gsl_histogram_equal_bins_p(int argc, VALUE *argv, VALUE obj)
581
566
  break;
582
567
  default:
583
568
  if (argc != 1) rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)",
584
- argc);
569
+ argc);
585
570
  Data_Get_Struct(obj, gsl_histogram, h1);
586
571
  CHECK_HISTOGRAM(argv[0]);
587
572
  Data_Get_Struct(argv[0], gsl_histogram, h2);
@@ -598,7 +583,7 @@ static VALUE rb_gsl_histogram_equal_bins_p2(int argc, VALUE *argv, VALUE obj)
598
583
  case T_CLASS:
599
584
  case T_OBJECT:
600
585
  if (argc != 2) rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)",
601
- argc);
586
+ argc);
602
587
  CHECK_HISTOGRAM(argv[0]);
603
588
  CHECK_HISTOGRAM(argv[1]);
604
589
  Data_Get_Struct(argv[0], gsl_histogram, h1);
@@ -606,7 +591,7 @@ static VALUE rb_gsl_histogram_equal_bins_p2(int argc, VALUE *argv, VALUE obj)
606
591
  break;
607
592
  default:
608
593
  if (argc != 1) rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)",
609
- argc);
594
+ argc);
610
595
  Data_Get_Struct(obj, gsl_histogram, h1);
611
596
  CHECK_HISTOGRAM(argv[0]);
612
597
  Data_Get_Struct(argv[0], gsl_histogram, h2);
@@ -884,24 +869,17 @@ static VALUE rb_gsl_histogram_pdf_alloc(VALUE klass, VALUE nn)
884
869
  {
885
870
  gsl_histogram_pdf *h = NULL;
886
871
  gsl_histogram *h0 = NULL;
887
- #ifdef GSL_0_9_4_LATER
888
- if (rb_obj_is_kind_of(nn, cgsl_histogram)) {
889
- Data_Get_Struct(nn, gsl_histogram, h0);
890
- h = gsl_histogram_pdf_alloc(h0->n);
891
- gsl_histogram_pdf_init(h, h0);
892
- } else {
893
- CHECK_FIXNUM(nn);
872
+ if (rb_obj_is_kind_of(nn, cgsl_histogram)) {
873
+ Data_Get_Struct(nn, gsl_histogram, h0);
874
+ h = gsl_histogram_pdf_alloc(h0->n);
875
+ gsl_histogram_pdf_init(h, h0);
876
+ } else {
877
+ CHECK_FIXNUM(nn);
894
878
  h = gsl_histogram_pdf_alloc(FIX2INT(nn));
895
879
  }
896
- #else
897
- gsl_histogram *hh = NULL;
898
- Data_Get_Struct(nn, gsl_histogram, hh);
899
- h = gsl_histogram_pdf_alloc(hh);
900
- #endif
901
880
  return Data_Wrap_Struct(klass, 0, gsl_histogram_pdf_free, h);
902
881
  }
903
882
 
904
- #ifdef GSL_0_9_4_LATER
905
883
  static VALUE rb_gsl_histogram_pdf_init(VALUE obj, VALUE hh)
906
884
  {
907
885
  gsl_histogram_pdf *p = NULL;
@@ -912,7 +890,6 @@ static VALUE rb_gsl_histogram_pdf_init(VALUE obj, VALUE hh)
912
890
  gsl_histogram_pdf_init(p, h);
913
891
  return obj;
914
892
  }
915
- #endif
916
893
 
917
894
  static VALUE rb_gsl_histogram_pdf_sample(VALUE obj, VALUE r)
918
895
  {
@@ -971,7 +948,7 @@ static VALUE rb_gsl_histogram_graph(int argc, VALUE *argv, VALUE obj)
971
948
  fprintf(fp, "%e %e\n%e %e\n", v->range[i], v->bin[i], v->range[i+1], v->bin[i]);
972
949
  }
973
950
  fflush(fp);
974
- pclose(fp);
951
+ pclose(fp);
975
952
  fp = NULL;
976
953
  return Qtrue;
977
954
  #else
@@ -996,8 +973,8 @@ static VALUE rb_gsl_histogram_plot(int argc, VALUE *argv, VALUE obj)
996
973
  case 1:
997
974
  fp = popen("gnuplot -persist", "w");
998
975
  if (fp == NULL) rb_raise(rb_eIOError, "GNU graph not found.");
999
- if (TYPE(argv[0]) == T_STRING)
1000
- fprintf(fp, "plot '-' %s\n", STR2CSTR(argv[0]));
976
+ if (TYPE(argv[0]) == T_STRING)
977
+ fprintf(fp, "plot '-' %s\n", STR2CSTR(argv[0]));
1001
978
  else
1002
979
  fprintf(fp, "plot '-' with fsteps\n");
1003
980
  break;
@@ -1048,7 +1025,7 @@ static VALUE rb_gsl_histogram_fit_exponential(int argc, VALUE *argv, VALUE obj)
1048
1025
  }
1049
1026
  n = binend - binstart + 1;
1050
1027
  dof = n - p;
1051
-
1028
+
1052
1029
  x = gsl_vector_alloc(n);
1053
1030
  w = gsl_vector_alloc(n);
1054
1031
  lny = gsl_vector_alloc(n);
@@ -1059,15 +1036,15 @@ static VALUE rb_gsl_histogram_fit_exponential(int argc, VALUE *argv, VALUE obj)
1059
1036
  gsl_vector_set(lny, i, log(h->bin[i+binstart]));
1060
1037
  gsl_vector_set(w, i, h->bin[i+binstart]);
1061
1038
  }
1062
- gsl_fit_wlinear(x->data, 1, w->data, 1, lny->data, 1, n,
1063
- &c0, &c1, &cov00, &cov01, &cov11, &sumsq);
1039
+ gsl_fit_wlinear(x->data, 1, w->data, 1, lny->data, 1, n,
1040
+ &c0, &c1, &cov00, &cov01, &cov11, &sumsq);
1064
1041
  gsl_vector_free(lny);
1065
1042
  gsl_vector_free(w);
1066
1043
  gsl_vector_free(x);
1067
1044
  c0 = exp(c0);
1068
- return rb_ary_new3(6, rb_float_new(c0), rb_float_new(c1),
1069
- rb_float_new(c0*sqrt(cov00)), rb_float_new(sqrt(cov11)),
1070
- rb_float_new(sumsq), INT2FIX(dof));
1045
+ return rb_ary_new3(6, rb_float_new(c0), rb_float_new(c1),
1046
+ rb_float_new(c0*sqrt(cov00)), rb_float_new(sqrt(cov11)),
1047
+ rb_float_new(sumsq), INT2FIX(dof));
1071
1048
  }
1072
1049
 
1073
1050
  static VALUE rb_gsl_histogram_fit_power(int argc, VALUE *argv, VALUE obj)
@@ -1094,7 +1071,7 @@ static VALUE rb_gsl_histogram_fit_power(int argc, VALUE *argv, VALUE obj)
1094
1071
  }
1095
1072
  n = binend - binstart + 1;
1096
1073
  dof = n - p;
1097
-
1074
+
1098
1075
  lnx = gsl_vector_alloc(n);
1099
1076
  w = gsl_vector_alloc(n);
1100
1077
  lny = gsl_vector_alloc(n);
@@ -1105,15 +1082,15 @@ static VALUE rb_gsl_histogram_fit_power(int argc, VALUE *argv, VALUE obj)
1105
1082
  gsl_vector_set(lny, i, log(h->bin[i+binstart]));
1106
1083
  gsl_vector_set(w, i, h->bin[i+binstart]);
1107
1084
  }
1108
- gsl_fit_wlinear(lnx->data, 1, w->data, 1, lny->data, 1, n,
1109
- &c0, &c1, &cov00, &cov01, &cov11, &sumsq);
1085
+ gsl_fit_wlinear(lnx->data, 1, w->data, 1, lny->data, 1, n,
1086
+ &c0, &c1, &cov00, &cov01, &cov11, &sumsq);
1110
1087
  gsl_vector_free(lny);
1111
1088
  gsl_vector_free(w);
1112
1089
  gsl_vector_free(lnx);
1113
1090
  c0 = exp(c0);
1114
- return rb_ary_new3(6, rb_float_new(c0), rb_float_new(c1),
1115
- rb_float_new(c0*sqrt(cov00)), rb_float_new(sqrt(cov11)),
1116
- rb_float_new(sumsq), INT2FIX(dof));
1091
+ return rb_ary_new3(6, rb_float_new(c0), rb_float_new(c1),
1092
+ rb_float_new(c0*sqrt(cov00)), rb_float_new(sqrt(cov11)),
1093
+ rb_float_new(sumsq), INT2FIX(dof));
1117
1094
  }
1118
1095
 
1119
1096
  static int Gaussian_f(const gsl_vector *v, void *params, gsl_vector *f);
@@ -1173,8 +1150,8 @@ static int Gaussian_df(const gsl_vector *v, void *params, gsl_matrix *J)
1173
1150
  return GSL_SUCCESS;
1174
1151
  }
1175
1152
 
1176
- static int Gaussian_fdf(const gsl_vector *v, void *params, gsl_vector *f,
1177
- gsl_matrix *J)
1153
+ static int Gaussian_fdf(const gsl_vector *v, void *params, gsl_vector *f,
1154
+ gsl_matrix *J)
1178
1155
  {
1179
1156
  Gaussian_f(v, params, f);
1180
1157
  Gaussian_df(v, params, J);
@@ -1253,9 +1230,9 @@ static VALUE rb_gsl_histogram_fit_gaussian(int argc, VALUE *argv, VALUE obj)
1253
1230
  gsl_vector_free(x);
1254
1231
  gsl_matrix_free(covar);
1255
1232
  return rb_ary_new3(8, rb_float_new(sigma), rb_float_new(mean),
1256
- rb_float_new(height), rb_float_new(errs),
1257
- rb_float_new(errm), rb_float_new(errh),
1258
- rb_float_new(chi2), INT2FIX(dof));
1233
+ rb_float_new(height), rb_float_new(errs),
1234
+ rb_float_new(errm), rb_float_new(errh),
1235
+ rb_float_new(chi2), INT2FIX(dof));
1259
1236
  }
1260
1237
 
1261
1238
  static int Rayleigh_f(const gsl_vector *v, void *params, gsl_vector *f);
@@ -1308,8 +1285,8 @@ static int Rayleigh_df(const gsl_vector *v, void *params, gsl_matrix *J)
1308
1285
  return GSL_SUCCESS;
1309
1286
  }
1310
1287
 
1311
- static int Rayleigh_fdf(const gsl_vector *v, void *params, gsl_vector *f,
1312
- gsl_matrix *J)
1288
+ static int Rayleigh_fdf(const gsl_vector *v, void *params, gsl_vector *f,
1289
+ gsl_matrix *J)
1313
1290
  {
1314
1291
  Rayleigh_f(v, params, f);
1315
1292
  Rayleigh_df(v, params, J);
@@ -1349,7 +1326,7 @@ static VALUE rb_gsl_histogram_fit_rayleigh(int argc, VALUE *argv, VALUE obj)
1349
1326
  }
1350
1327
  x = gsl_vector_alloc(p);
1351
1328
  gsl_vector_set(x, 0, gsl_pow_2(gsl_histogram_sigma(h))); /* initial values, var = 1 */
1352
- gsl_vector_set(x, 1, gsl_histogram_max_val(h));
1329
+ gsl_vector_set(x, 1, gsl_histogram_max_val(h));
1353
1330
  hh.h = h;
1354
1331
  hh.binstart = binstart;
1355
1332
  hh.binend = binend;
@@ -1385,10 +1362,10 @@ static VALUE rb_gsl_histogram_fit_rayleigh(int argc, VALUE *argv, VALUE obj)
1385
1362
  gsl_multifit_fdfsolver_free(s);
1386
1363
  gsl_vector_free(x);
1387
1364
  gsl_matrix_free(covar);
1388
- return rb_ary_new3(6, rb_float_new(sigma),
1389
- rb_float_new(height), rb_float_new(errs),
1390
- rb_float_new(errh),
1391
- rb_float_new(chi2), INT2FIX(dof));
1365
+ return rb_ary_new3(6, rb_float_new(sigma),
1366
+ rb_float_new(height), rb_float_new(errs),
1367
+ rb_float_new(errh),
1368
+ rb_float_new(chi2), INT2FIX(dof));
1392
1369
  }
1393
1370
 
1394
1371
  /*
@@ -1444,8 +1421,8 @@ static int xExponential_df(const gsl_vector *v, void *params, gsl_matrix *J)
1444
1421
  return GSL_SUCCESS;
1445
1422
  }
1446
1423
 
1447
- static int xExponential_fdf(const gsl_vector *v, void *params, gsl_vector *f,
1448
- gsl_matrix *J)
1424
+ static int xExponential_fdf(const gsl_vector *v, void *params, gsl_vector *f,
1425
+ gsl_matrix *J)
1449
1426
  {
1450
1427
  xExponential_f(v, params, f);
1451
1428
  xExponential_df(v, params, J);
@@ -1485,7 +1462,7 @@ static VALUE rb_gsl_histogram_fit_xexponential(int argc, VALUE *argv, VALUE obj)
1485
1462
  }
1486
1463
  x = gsl_vector_alloc(p);
1487
1464
  gsl_vector_set(x, 0, gsl_histogram_sigma(h)); /* initial values, var = 1 */
1488
- gsl_vector_set(x, 1, gsl_histogram_max_val(h));
1465
+ gsl_vector_set(x, 1, gsl_histogram_max_val(h));
1489
1466
  hh.h = h;
1490
1467
  hh.binstart = binstart;
1491
1468
  hh.binend = binend;
@@ -1521,10 +1498,10 @@ static VALUE rb_gsl_histogram_fit_xexponential(int argc, VALUE *argv, VALUE obj)
1521
1498
  gsl_multifit_fdfsolver_free(s);
1522
1499
  gsl_vector_free(x);
1523
1500
  gsl_matrix_free(covar);
1524
- return rb_ary_new3(6, rb_float_new(b),
1525
- rb_float_new(height), rb_float_new(errs),
1526
- rb_float_new(errh),
1527
- rb_float_new(chi2), INT2FIX(dof));
1501
+ return rb_ary_new3(6, rb_float_new(b),
1502
+ rb_float_new(height), rb_float_new(errs),
1503
+ rb_float_new(errh),
1504
+ rb_float_new(chi2), INT2FIX(dof));
1528
1505
  }
1529
1506
 
1530
1507
  static VALUE rb_gsl_histogram_fit(int argc, VALUE *argv, VALUE obj)
@@ -1539,30 +1516,30 @@ static VALUE rb_gsl_histogram_fit(int argc, VALUE *argv, VALUE obj)
1539
1516
  return rb_gsl_histogram_fit_power(argc-1, argv+1, obj);
1540
1517
  } else if (str_head_grep(fittype, "gaus") == 0) {
1541
1518
  return rb_gsl_histogram_fit_gaussian(argc-1, argv+1, obj);
1542
- } else if (str_head_grep(fittype, "rayleigh") == 0) {
1519
+ } else if (str_head_grep(fittype, "rayleigh") == 0) {
1543
1520
  return rb_gsl_histogram_fit_rayleigh(argc-1, argv+1, obj);
1544
1521
  } else if (str_head_grep(fittype, "xexp") == 0) {
1545
1522
  return rb_gsl_histogram_fit_xexponential(argc-1, argv+1, obj);
1546
1523
  } else {
1547
- rb_raise(rb_eRuntimeError,
1548
- "unknown fitting type %s (exp, power, gaus expected)", fittype);
1524
+ rb_raise(rb_eRuntimeError,
1525
+ "unknown fitting type %s (exp, power, gaus expected)", fittype);
1549
1526
  }
1550
1527
  return Qnil;
1551
1528
  }
1552
1529
 
1553
1530
  /* Integrate histogram: the two histograms must have the same range and bins. */
1554
1531
  void mygsl_histogram_integrate(const gsl_histogram *h, gsl_histogram *hi,
1555
- size_t istart, size_t iend)
1532
+ size_t istart, size_t iend)
1556
1533
  {
1557
1534
  size_t i;
1558
1535
  if (iend >= istart) {
1559
- if (istart < 0) istart = 0;
1536
+ //if (istart < 0) istart = 0;
1560
1537
  if (iend >= h->n) iend = h->n-1;
1561
1538
  hi->bin[istart] = h->bin[istart];
1562
1539
  for (i = istart+1; i <= iend; i++) hi->bin[i] = hi->bin[i-1] + h->bin[i];
1563
1540
  } else {
1564
1541
  if (istart >= h->n) istart = h->n-1;
1565
- if (iend < 0) iend = 0;
1542
+ //if (iend < 0) iend = 0;
1566
1543
  hi->bin[istart] = h->bin[istart];
1567
1544
  for (i = istart-1; i >= iend; i--) {
1568
1545
  hi->bin[i] = hi->bin[i+1] + h->bin[i];
@@ -1580,7 +1557,7 @@ void mygsl_histogram_differentiate(const gsl_histogram *hi, gsl_histogram *h)
1580
1557
 
1581
1558
  /* Create a histogram integrating the given histogram h */
1582
1559
  gsl_histogram* mygsl_histogram_calloc_integrate(const gsl_histogram *h,
1583
- size_t istart, size_t iend)
1560
+ size_t istart, size_t iend)
1584
1561
  {
1585
1562
  gsl_histogram *hi = NULL;
1586
1563
  hi = gsl_histogram_calloc_range(h->n, h->range);
@@ -1616,16 +1593,16 @@ static VALUE rb_gsl_histogram_integrate(int argc, VALUE *argv, VALUE obj)
1616
1593
  case T_FIXNUM:
1617
1594
  itmp = FIX2INT(argv[0]);
1618
1595
  if (itmp == -1) {
1619
- istart = h->n - 1;
1620
- iend = 0;
1596
+ istart = h->n - 1;
1597
+ iend = 0;
1621
1598
  } else {
1622
- istart = 0;
1623
- iend = h->n - 1;
1599
+ istart = 0;
1600
+ iend = h->n - 1;
1624
1601
  }
1625
1602
  break;
1626
1603
  default:
1627
1604
  rb_raise(rb_eArgError, "wrong argument type %s (Arran or Fixnum expected)",
1628
- rb_class2name(CLASS_OF(argv[0])));
1605
+ rb_class2name(CLASS_OF(argv[0])));
1629
1606
  break;
1630
1607
  }
1631
1608
  break;
@@ -1692,27 +1669,27 @@ static VALUE rb_gsl_histogram_rebin(int argc, VALUE *argv, VALUE obj)
1692
1669
  }
1693
1670
 
1694
1671
  static int mygsl_histogram_fread2(FILE * stream, gsl_histogram * h)
1695
- {
1672
+ {
1696
1673
  double min, max;
1697
1674
  int status;
1698
1675
  status = gsl_block_raw_fread(stream, &min, 1, 1);
1699
- if (status) return status;
1676
+ if (status) return status;
1700
1677
  status = gsl_block_raw_fread(stream, &max, 1, 1);
1701
- if (status) return status;
1678
+ if (status) return status;
1702
1679
  gsl_histogram_set_ranges_uniform(h, min, max);
1703
- status = gsl_block_raw_fread (stream, h->bin, h->n, 1);
1704
- if (status) return status;
1680
+ status = gsl_block_raw_fread (stream, h->bin, h->n, 1);
1681
+ if (status) return status;
1705
1682
  return status;
1706
1683
  }
1707
1684
 
1708
1685
  static int mygsl_histogram_fwrite2(FILE * stream, const gsl_histogram * h)
1709
- {
1686
+ {
1710
1687
  int status;
1711
1688
  status = gsl_block_raw_fwrite (stream, h->range, 1, 1);
1712
- if (status) return status;
1689
+ if (status) return status;
1713
1690
  status = gsl_block_raw_fwrite (stream, h->range+h->n, 1, 1);
1714
- if (status) return status;
1715
- status = gsl_block_raw_fwrite (stream, h->bin, h->n, 1);
1691
+ if (status) return status;
1692
+ status = gsl_block_raw_fwrite (stream, h->bin, h->n, 1);
1716
1693
  return status;
1717
1694
  }
1718
1695
 
@@ -1769,7 +1746,7 @@ static VALUE rb_gsl_histogram_reverse(VALUE obj)
1769
1746
  static double histogram_percentile(const gsl_histogram *h, double f)
1770
1747
  {
1771
1748
  double sum = gsl_histogram_sum(h), sf;
1772
- double val, s = 0, x;
1749
+ double val = 0, s = 0, x;
1773
1750
  double ri, ri1;
1774
1751
  size_t i;
1775
1752
  sf = sum * f;
@@ -1806,7 +1783,7 @@ static VALUE rb_gsl_histogram_median(VALUE obj)
1806
1783
  static double histogram_percentile_inv(const gsl_histogram *h, double x)
1807
1784
  {
1808
1785
  double sum = gsl_histogram_sum(h);
1809
- double val, s = 0;
1786
+ double val = 0, s = 0;
1810
1787
  double ri, ri1, q;
1811
1788
  size_t i;
1812
1789
 
@@ -1833,33 +1810,31 @@ void Init_gsl_histogram(VALUE module)
1833
1810
  VALUE cgsl_histogram_pdf;
1834
1811
 
1835
1812
  cgsl_histogram = rb_define_class_under(module, "Histogram", cGSL_Object);
1836
- cgsl_histogram_range = rb_define_class_under(cgsl_histogram, "Range",
1837
- cgsl_vector_view_ro);
1838
- cgsl_histogram_bin = rb_define_class_under(cgsl_histogram, "Bin",
1839
- cgsl_vector_view);
1840
- cgsl_histogram_integ = rb_define_class_under(cgsl_histogram, "Integral",
1841
- cgsl_histogram);
1842
-
1843
- #ifdef GSL_0_9_4_LATER
1813
+ cgsl_histogram_range = rb_define_class_under(cgsl_histogram, "Range",
1814
+ cgsl_vector_view_ro);
1815
+ cgsl_histogram_bin = rb_define_class_under(cgsl_histogram, "Bin",
1816
+ cgsl_vector_view);
1817
+ cgsl_histogram_integ = rb_define_class_under(cgsl_histogram, "Integral",
1818
+ cgsl_histogram);
1819
+
1844
1820
  rb_define_singleton_method(cgsl_histogram, "alloc", rb_gsl_histogram_alloc, -1);
1845
1821
  /* rb_define_singleton_method(cgsl_histogram, "new", rb_gsl_histogram_alloc, -1);*/
1846
1822
  rb_define_singleton_method(cgsl_histogram, "[]", rb_gsl_histogram_alloc, -1);
1847
1823
 
1848
- rb_define_singleton_method(cgsl_histogram, "alloc_uniform",
1849
- rb_gsl_histogram_alloc_uniform, -1);
1850
- rb_define_singleton_method(cgsl_histogram, "new_uniform",
1851
- rb_gsl_histogram_alloc_uniform, -1);
1824
+ rb_define_singleton_method(cgsl_histogram, "alloc_uniform",
1825
+ rb_gsl_histogram_alloc_uniform, -1);
1826
+ rb_define_singleton_method(cgsl_histogram, "new_uniform",
1827
+ rb_gsl_histogram_alloc_uniform, -1);
1852
1828
 
1853
- rb_define_singleton_method(cgsl_histogram, "alloc_with_min_max_step",
1854
- rb_gsl_histogram_alloc_with_min_max_step, 3);
1855
- rb_define_singleton_method(cgsl_histogram, "new_with_min_max_step",
1856
- rb_gsl_histogram_alloc_with_min_max_step, 3);
1857
- #endif
1829
+ rb_define_singleton_method(cgsl_histogram, "alloc_with_min_max_step",
1830
+ rb_gsl_histogram_alloc_with_min_max_step, 3);
1831
+ rb_define_singleton_method(cgsl_histogram, "new_with_min_max_step",
1832
+ rb_gsl_histogram_alloc_with_min_max_step, 3);
1858
1833
 
1859
- rb_define_singleton_method(cgsl_histogram, "calloc",
1860
- rb_gsl_histogram_calloc, 1);
1861
- rb_define_singleton_method(cgsl_histogram, "calloc_range",
1862
- rb_gsl_histogram_calloc_range, -1);
1834
+ rb_define_singleton_method(cgsl_histogram, "calloc",
1835
+ rb_gsl_histogram_calloc, 1);
1836
+ rb_define_singleton_method(cgsl_histogram, "calloc_range",
1837
+ rb_gsl_histogram_calloc_range, -1);
1863
1838
 
1864
1839
  rb_define_method(cgsl_histogram, "bins", rb_gsl_histogram_bins, 0);
1865
1840
  rb_define_alias(cgsl_histogram, "n", "bins");
@@ -1867,8 +1842,8 @@ void Init_gsl_histogram(VALUE module)
1867
1842
  rb_define_method(cgsl_histogram, "set_ranges", rb_gsl_histogram_set_ranges, -1);
1868
1843
  rb_define_method(cgsl_histogram, "range", rb_gsl_histogram_range, 0);
1869
1844
  rb_define_method(cgsl_histogram, "bin", rb_gsl_histogram_bin, 0);
1870
- rb_define_method(cgsl_histogram, "set_ranges_uniform",
1871
- rb_gsl_histogram_set_ranges_uniform, -1);
1845
+ rb_define_method(cgsl_histogram, "set_ranges_uniform",
1846
+ rb_gsl_histogram_set_ranges_uniform, -1);
1872
1847
  rb_define_singleton_method(cgsl_histogram, "memcpy", rb_gsl_histogram_memcpy, 2);
1873
1848
  rb_define_method(cgsl_histogram, "clone", rb_gsl_histogram_clone, 0);
1874
1849
  rb_define_alias(cgsl_histogram, "duplicate", "clone");
@@ -1896,20 +1871,20 @@ void Init_gsl_histogram(VALUE module)
1896
1871
  rb_define_method(cgsl_histogram, "sum", rb_gsl_histogram_integral, -1);
1897
1872
  rb_define_alias(cgsl_histogram, "integral", "sum");
1898
1873
 
1899
- rb_define_method(cgsl_histogram, "equal_bins_p",
1900
- rb_gsl_histogram_equal_bins_p, -1);
1874
+ rb_define_method(cgsl_histogram, "equal_bins_p",
1875
+ rb_gsl_histogram_equal_bins_p, -1);
1901
1876
  rb_define_alias(cgsl_histogram, "equal_bins", "equal_bins_p");
1902
- rb_define_singleton_method(cgsl_histogram, "equal_bins_p",
1903
- rb_gsl_histogram_equal_bins_p, -1);
1904
- rb_define_singleton_method(cgsl_histogram, "equal_bins",
1905
- rb_gsl_histogram_equal_bins_p, -1);
1906
- rb_define_method(cgsl_histogram, "equal_bins_p?",
1907
- rb_gsl_histogram_equal_bins_p2, -1);
1877
+ rb_define_singleton_method(cgsl_histogram, "equal_bins_p",
1878
+ rb_gsl_histogram_equal_bins_p, -1);
1879
+ rb_define_singleton_method(cgsl_histogram, "equal_bins",
1880
+ rb_gsl_histogram_equal_bins_p, -1);
1881
+ rb_define_method(cgsl_histogram, "equal_bins_p?",
1882
+ rb_gsl_histogram_equal_bins_p2, -1);
1908
1883
  rb_define_alias(cgsl_histogram, "equal_bins?", "equal_bins_p?");
1909
- rb_define_singleton_method(cgsl_histogram, "equal_bins_p?",
1910
- rb_gsl_histogram_equal_bins_p2, -1);
1911
- rb_define_singleton_method(cgsl_histogram, "equal_bins?",
1912
- rb_gsl_histogram_equal_bins_p2, -1);
1884
+ rb_define_singleton_method(cgsl_histogram, "equal_bins_p?",
1885
+ rb_gsl_histogram_equal_bins_p2, -1);
1886
+ rb_define_singleton_method(cgsl_histogram, "equal_bins?",
1887
+ rb_gsl_histogram_equal_bins_p2, -1);
1913
1888
 
1914
1889
  rb_define_method(cgsl_histogram, "add", rb_gsl_histogram_add, 1);
1915
1890
  rb_define_alias(cgsl_histogram, "+", "add");
@@ -1940,13 +1915,11 @@ void Init_gsl_histogram(VALUE module)
1940
1915
  rb_define_method(cgsl_histogram, "print", rb_gsl_histogram_print, 0);
1941
1916
 
1942
1917
  cgsl_histogram_pdf = rb_define_class_under(cgsl_histogram, "Pdf", cGSL_Object);
1943
- rb_define_singleton_method(cgsl_histogram_pdf, "alloc",
1944
- rb_gsl_histogram_pdf_alloc, 1);
1945
- /* rb_define_singleton_method(cgsl_histogram_pdf, "new",
1918
+ rb_define_singleton_method(cgsl_histogram_pdf, "alloc",
1919
+ rb_gsl_histogram_pdf_alloc, 1);
1920
+ /* rb_define_singleton_method(cgsl_histogram_pdf, "new",
1946
1921
  rb_gsl_histogram_pdf_alloc, 1);*/
1947
- #ifdef GSL_0_9_4_LATER
1948
1922
  rb_define_method(cgsl_histogram_pdf, "init", rb_gsl_histogram_pdf_init, 1);
1949
- #endif
1950
1923
  rb_define_method(cgsl_histogram_pdf, "sample", rb_gsl_histogram_pdf_sample, 1);
1951
1924
 
1952
1925
  rb_define_method(cgsl_histogram_pdf, "range", rb_gsl_histogram_pdf_range, 0);
@@ -1958,23 +1931,23 @@ void Init_gsl_histogram(VALUE module)
1958
1931
 
1959
1932
  rb_define_method(cgsl_histogram, "plot", rb_gsl_histogram_plot, -1);
1960
1933
 
1961
- rb_define_method(cgsl_histogram, "fit_gaussian",
1962
- rb_gsl_histogram_fit_gaussian, -1);
1963
- rb_define_method(cgsl_histogram, "fit_exponential",
1964
- rb_gsl_histogram_fit_exponential, -1);
1965
- rb_define_method(cgsl_histogram, "fit_xexponential",
1966
- rb_gsl_histogram_fit_xexponential, -1);
1967
- rb_define_method(cgsl_histogram, "fit_power",
1968
- rb_gsl_histogram_fit_power, -1);
1969
- rb_define_method(cgsl_histogram, "fit_rayleigh",
1970
- rb_gsl_histogram_fit_rayleigh, -1);
1971
- rb_define_method(cgsl_histogram, "fit",
1972
- rb_gsl_histogram_fit, -1);
1934
+ rb_define_method(cgsl_histogram, "fit_gaussian",
1935
+ rb_gsl_histogram_fit_gaussian, -1);
1936
+ rb_define_method(cgsl_histogram, "fit_exponential",
1937
+ rb_gsl_histogram_fit_exponential, -1);
1938
+ rb_define_method(cgsl_histogram, "fit_xexponential",
1939
+ rb_gsl_histogram_fit_xexponential, -1);
1940
+ rb_define_method(cgsl_histogram, "fit_power",
1941
+ rb_gsl_histogram_fit_power, -1);
1942
+ rb_define_method(cgsl_histogram, "fit_rayleigh",
1943
+ rb_gsl_histogram_fit_rayleigh, -1);
1944
+ rb_define_method(cgsl_histogram, "fit",
1945
+ rb_gsl_histogram_fit, -1);
1973
1946
 
1974
1947
  rb_define_method(cgsl_histogram, "integrate", rb_gsl_histogram_integrate, -1);
1975
1948
  rb_undef_method(cgsl_histogram_integ, "integrate");
1976
- rb_define_method(cgsl_histogram_integ, "differentiate",
1977
- rb_gsl_histogram_differentiate, 0);
1949
+ rb_define_method(cgsl_histogram_integ, "differentiate",
1950
+ rb_gsl_histogram_differentiate, 0);
1978
1951
  rb_define_alias(cgsl_histogram_integ, "diff", "differentiate");
1979
1952
 
1980
1953
  rb_define_method(cgsl_histogram, "normalize", rb_gsl_histogram_normalize, 0);