rb-gsl 1.16.0.4 → 1.16.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (307) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +12 -0
  3. data/.travis.yml +24 -0
  4. data/AUTHORS +6 -0
  5. data/COPYING +341 -339
  6. data/ChangeLog +608 -587
  7. data/Gemfile +4 -0
  8. data/README.md +77 -0
  9. data/Rakefile +14 -33
  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/{gsl → gsl_native}/alf.c +9 -9
  89. data/ext/{gsl → gsl_native}/array.c +64 -151
  90. data/ext/{gsl → gsl_native}/array_complex.c +61 -63
  91. data/ext/{gsl → gsl_native}/blas.c +0 -0
  92. data/ext/{gsl → gsl_native}/blas1.c +32 -32
  93. data/ext/{gsl → gsl_native}/blas2.c +54 -58
  94. data/ext/{gsl → gsl_native}/blas3.c +54 -54
  95. data/ext/{gsl → gsl_native}/block.c +3 -6
  96. data/ext/{gsl/block_source.c → gsl_native/block_source.h} +109 -111
  97. data/ext/gsl_native/bspline.c +122 -0
  98. data/ext/{gsl → gsl_native}/bundle.c +0 -0
  99. data/ext/{gsl → gsl_native}/cdf.c +76 -88
  100. data/ext/{gsl → gsl_native}/cheb.c +74 -85
  101. data/ext/{gsl → gsl_native}/combination.c +9 -16
  102. data/ext/{gsl → gsl_native}/common.c +7 -37
  103. data/ext/{gsl → gsl_native}/complex.c +113 -115
  104. data/ext/gsl_native/const.c +331 -0
  105. data/ext/{gsl → gsl_native}/const_additional.c +12 -33
  106. data/ext/gsl_native/cqp.c +283 -0
  107. data/ext/{gsl → gsl_native}/deriv.c +22 -30
  108. data/ext/{gsl → gsl_native}/dht.c +20 -28
  109. data/ext/{gsl → gsl_native}/diff.c +23 -25
  110. data/ext/{gsl → gsl_native}/dirac.c +44 -45
  111. data/ext/{gsl → gsl_native}/eigen.c +1031 -1082
  112. data/ext/{gsl → gsl_native}/error.c +13 -13
  113. data/ext/{gsl → gsl_native}/extconf.rb +5 -13
  114. data/ext/{gsl → gsl_native}/fft.c +192 -198
  115. data/ext/{gsl → gsl_native}/fit.c +16 -16
  116. data/ext/gsl_native/fresnel.c +312 -0
  117. data/ext/{gsl → gsl_native}/function.c +29 -35
  118. data/ext/{gsl → gsl_native}/geometry.c +15 -15
  119. data/ext/{gsl → gsl_native}/graph.c +37 -87
  120. data/ext/{gsl → gsl_native}/gsl.c +10 -23
  121. data/ext/{gsl → gsl_native}/gsl_narray.c +15 -24
  122. data/ext/{gsl → gsl_native}/histogram.c +123 -150
  123. data/ext/{gsl → gsl_native}/histogram2d.c +71 -96
  124. data/ext/{gsl → gsl_native}/histogram3d.c +72 -72
  125. data/ext/{gsl → gsl_native}/histogram3d_source.c +195 -196
  126. data/ext/{gsl → gsl_native}/histogram_find.c +31 -33
  127. data/ext/{gsl → gsl_native}/histogram_oper.c +43 -52
  128. data/ext/{gsl → gsl_native}/ieee.c +7 -15
  129. data/ext/{gsl → gsl_native}/include/rb_gsl.h +0 -7
  130. data/ext/{gsl → gsl_native}/include/rb_gsl_array.h +15 -25
  131. data/ext/{gsl → gsl_native}/include/rb_gsl_cheb.h +0 -0
  132. data/ext/{gsl → gsl_native}/include/rb_gsl_common.h +44 -52
  133. data/ext/{gsl → gsl_native}/include/rb_gsl_complex.h +0 -0
  134. data/ext/{gsl → gsl_native}/include/rb_gsl_const.h +0 -5
  135. data/ext/{gsl → gsl_native}/include/rb_gsl_dirac.h +0 -0
  136. data/ext/{gsl → gsl_native}/include/rb_gsl_eigen.h +0 -0
  137. data/ext/{gsl → gsl_native}/include/rb_gsl_fft.h +0 -3
  138. data/ext/{gsl → gsl_native}/include/rb_gsl_fit.h +0 -0
  139. data/ext/{gsl → gsl_native}/include/rb_gsl_function.h +0 -0
  140. data/ext/{gsl → gsl_native}/include/rb_gsl_graph.h +2 -2
  141. data/ext/{gsl → gsl_native}/include/rb_gsl_histogram.h +8 -8
  142. data/ext/{gsl → gsl_native}/include/rb_gsl_histogram3d.h +50 -50
  143. data/ext/{gsl → gsl_native}/include/rb_gsl_integration.h +0 -0
  144. data/ext/{gsl → gsl_native}/include/rb_gsl_interp.h +0 -0
  145. data/ext/{gsl → gsl_native}/include/rb_gsl_linalg.h +0 -1
  146. data/ext/{gsl → gsl_native}/include/rb_gsl_math.h +0 -4
  147. data/ext/{gsl → gsl_native}/include/rb_gsl_odeiv.h +0 -0
  148. data/ext/{gsl → gsl_native}/include/rb_gsl_poly.h +3 -3
  149. data/ext/{gsl → gsl_native}/include/rb_gsl_rational.h +1 -1
  150. data/ext/{gsl → gsl_native}/include/rb_gsl_rng.h +0 -0
  151. data/ext/{gsl → gsl_native}/include/rb_gsl_root.h +0 -0
  152. data/ext/{gsl → gsl_native}/include/rb_gsl_sf.h +39 -43
  153. data/ext/{gsl → gsl_native}/include/rb_gsl_statistics.h +0 -0
  154. data/ext/{gsl → gsl_native}/include/rb_gsl_tensor.h +0 -0
  155. data/ext/{gsl → gsl_native}/include/rb_gsl_with_narray.h +0 -0
  156. data/ext/{gsl → gsl_native}/include/templates_off.h +0 -0
  157. data/ext/{gsl → gsl_native}/include/templates_on.h +1 -1
  158. data/ext/{gsl → gsl_native}/integration.c +160 -183
  159. data/ext/{gsl → gsl_native}/interp.c +23 -31
  160. data/ext/gsl_native/jacobi.c +733 -0
  161. data/ext/{gsl → gsl_native}/linalg.c +448 -576
  162. data/ext/{gsl → gsl_native}/linalg_complex.c +84 -98
  163. data/ext/{gsl → gsl_native}/math.c +45 -63
  164. data/ext/{gsl → gsl_native}/matrix.c +4 -6
  165. data/ext/{gsl → gsl_native}/matrix_complex.c +111 -114
  166. data/ext/{gsl → gsl_native}/matrix_double.c +74 -77
  167. data/ext/{gsl → gsl_native}/matrix_int.c +49 -50
  168. data/ext/{gsl/matrix_source.c → gsl_native/matrix_source.h} +280 -302
  169. data/ext/{gsl → gsl_native}/min.c +43 -74
  170. data/ext/{gsl → gsl_native}/monte.c +45 -59
  171. data/ext/{gsl → gsl_native}/multifit.c +138 -147
  172. data/ext/{gsl → gsl_native}/multimin.c +55 -83
  173. data/ext/{gsl → gsl_native}/multimin_fsdf.c +15 -15
  174. data/ext/{gsl → gsl_native}/multiroots.c +61 -64
  175. data/ext/{gsl → gsl_native}/multiset.c +3 -7
  176. data/ext/{gsl → gsl_native}/ndlinear.c +320 -321
  177. data/ext/{gsl → gsl_native}/nmf.c +11 -11
  178. data/ext/{gsl → gsl_native}/nmf_wrap.c +1 -1
  179. data/ext/{gsl → gsl_native}/ntuple.c +13 -13
  180. data/ext/{gsl → gsl_native}/odeiv.c +95 -106
  181. data/ext/gsl_native/ool.c +879 -0
  182. data/ext/{gsl → gsl_native}/permutation.c +36 -34
  183. data/ext/{gsl → gsl_native}/poly.c +2 -5
  184. data/ext/{gsl → gsl_native}/poly2.c +6 -6
  185. data/ext/{gsl/poly_source.c → gsl_native/poly_source.h} +232 -275
  186. data/ext/{gsl → gsl_native}/qrng.c +6 -17
  187. data/ext/{gsl → gsl_native}/randist.c +218 -243
  188. data/ext/{gsl → gsl_native}/rational.c +9 -9
  189. data/ext/{gsl → gsl_native}/rng.c +29 -45
  190. data/ext/{gsl → gsl_native}/root.c +43 -43
  191. data/ext/{gsl → gsl_native}/sf.c +163 -197
  192. data/ext/{gsl → gsl_native}/sf_airy.c +0 -0
  193. data/ext/{gsl → gsl_native}/sf_bessel.c +6 -6
  194. data/ext/{gsl → gsl_native}/sf_clausen.c +0 -0
  195. data/ext/{gsl → gsl_native}/sf_coulomb.c +39 -39
  196. data/ext/{gsl → gsl_native}/sf_coupling.c +29 -29
  197. data/ext/{gsl → gsl_native}/sf_dawson.c +0 -0
  198. data/ext/{gsl → gsl_native}/sf_debye.c +0 -9
  199. data/ext/{gsl → gsl_native}/sf_dilog.c +0 -0
  200. data/ext/{gsl → gsl_native}/sf_elementary.c +2 -2
  201. data/ext/{gsl → gsl_native}/sf_ellint.c +42 -42
  202. data/ext/{gsl → gsl_native}/sf_elljac.c +2 -2
  203. data/ext/{gsl → gsl_native}/sf_erfc.c +0 -4
  204. data/ext/{gsl → gsl_native}/sf_exp.c +2 -2
  205. data/ext/{gsl → gsl_native}/sf_expint.c +1 -11
  206. data/ext/{gsl → gsl_native}/sf_fermi_dirac.c +0 -0
  207. data/ext/{gsl → gsl_native}/sf_gamma.c +1 -5
  208. data/ext/{gsl → gsl_native}/sf_gegenbauer.c +0 -0
  209. data/ext/{gsl → gsl_native}/sf_hyperg.c +0 -0
  210. data/ext/{gsl → gsl_native}/sf_laguerre.c +3 -3
  211. data/ext/{gsl → gsl_native}/sf_lambert.c +0 -0
  212. data/ext/{gsl → gsl_native}/sf_legendre.c +0 -0
  213. data/ext/{gsl → gsl_native}/sf_log.c +3 -3
  214. data/ext/gsl_native/sf_mathieu.c +235 -0
  215. data/ext/{gsl → gsl_native}/sf_power.c +0 -0
  216. data/ext/{gsl → gsl_native}/sf_psi.c +2 -11
  217. data/ext/{gsl → gsl_native}/sf_synchrotron.c +0 -0
  218. data/ext/{gsl → gsl_native}/sf_transport.c +0 -0
  219. data/ext/{gsl → gsl_native}/sf_trigonometric.c +3 -3
  220. data/ext/{gsl → gsl_native}/sf_zeta.c +0 -4
  221. data/ext/{gsl → gsl_native}/signal.c +60 -64
  222. data/ext/{gsl → gsl_native}/siman.c +36 -40
  223. data/ext/{gsl → gsl_native}/sort.c +3 -4
  224. data/ext/{gsl → gsl_native}/spline.c +25 -43
  225. data/ext/{gsl → gsl_native}/stats.c +102 -115
  226. data/ext/{gsl → gsl_native}/sum.c +32 -32
  227. data/ext/{gsl → gsl_native}/tamu_anova.c +0 -0
  228. data/ext/{gsl → gsl_native}/tensor.c +2 -4
  229. data/ext/{gsl/tensor_source.c → gsl_native/tensor_source.h} +144 -144
  230. data/ext/{gsl → gsl_native}/vector.c +2 -4
  231. data/ext/{gsl → gsl_native}/vector_complex.c +165 -171
  232. data/ext/{gsl → gsl_native}/vector_double.c +167 -174
  233. data/ext/{gsl → gsl_native}/vector_int.c +23 -25
  234. data/ext/{gsl/vector_source.c → gsl_native/vector_source.h} +400 -414
  235. data/ext/{gsl → gsl_native}/wavelet.c +215 -236
  236. data/lib/gsl.rb +1 -7
  237. data/lib/gsl/gnuplot.rb +2 -2
  238. data/lib/gsl/version.rb +1 -3
  239. data/rb-gsl.gemspec +29 -0
  240. data/rdoc/blas.rdoc +3 -3
  241. data/rdoc/bspline.rdoc +7 -7
  242. data/rdoc/cheb.rdoc +8 -8
  243. data/rdoc/cholesky_complex.rdoc +1 -1
  244. data/rdoc/combi.rdoc +9 -9
  245. data/rdoc/complex.rdoc +11 -11
  246. data/rdoc/const.rdoc +20 -20
  247. data/rdoc/dht.rdoc +6 -6
  248. data/rdoc/diff.rdoc +6 -6
  249. data/rdoc/ehandling.rdoc +3 -3
  250. data/rdoc/eigen.rdoc +11 -11
  251. data/rdoc/fft.rdoc +26 -26
  252. data/rdoc/fit.rdoc +18 -18
  253. data/rdoc/graph.rdoc +2 -2
  254. data/rdoc/hist.rdoc +16 -16
  255. data/rdoc/hist2d.rdoc +4 -4
  256. data/rdoc/hist3d.rdoc +3 -3
  257. data/rdoc/integration.rdoc +16 -16
  258. data/rdoc/interp.rdoc +11 -11
  259. data/rdoc/intro.rdoc +3 -3
  260. data/rdoc/linalg.rdoc +20 -20
  261. data/rdoc/linalg_complex.rdoc +1 -1
  262. data/rdoc/math.rdoc +13 -13
  263. data/rdoc/matrix.rdoc +22 -22
  264. data/rdoc/min.rdoc +9 -9
  265. data/rdoc/monte.rdoc +3 -3
  266. data/rdoc/multimin.rdoc +12 -12
  267. data/rdoc/multiroot.rdoc +12 -12
  268. data/rdoc/narray.rdoc +9 -9
  269. data/rdoc/ndlinear.rdoc +4 -4
  270. data/rdoc/nonlinearfit.rdoc +17 -17
  271. data/rdoc/ntuple.rdoc +5 -5
  272. data/rdoc/odeiv.rdoc +12 -12
  273. data/rdoc/perm.rdoc +11 -11
  274. data/rdoc/poly.rdoc +17 -17
  275. data/rdoc/qrng.rdoc +9 -9
  276. data/rdoc/randist.rdoc +10 -10
  277. data/rdoc/ref.rdoc +49 -49
  278. data/rdoc/rng.rdoc +9 -9
  279. data/rdoc/roots.rdoc +12 -12
  280. data/rdoc/sf.rdoc +35 -35
  281. data/rdoc/siman.rdoc +3 -3
  282. data/rdoc/sort.rdoc +6 -6
  283. data/rdoc/start.rdoc +2 -2
  284. data/rdoc/stats.rdoc +13 -13
  285. data/rdoc/sum.rdoc +4 -4
  286. data/rdoc/tensor.rdoc +3 -3
  287. data/rdoc/tut.rdoc +1 -1
  288. data/rdoc/use.rdoc +3 -3
  289. data/rdoc/vector.rdoc +28 -28
  290. data/rdoc/vector_complex.rdoc +6 -6
  291. data/rdoc/wavelet.rdoc +8 -8
  292. data/test/gsl/blas_test.rb +1 -1
  293. data/test/gsl/index_test.rb +61 -0
  294. data/test/gsl/matrix_test.rb +21 -0
  295. data/uncrustify.cfg +1693 -0
  296. metadata +212 -243
  297. data/README +0 -28
  298. data/ext/gsl/bspline.c +0 -130
  299. data/ext/gsl/const.c +0 -672
  300. data/ext/gsl/cqp.c +0 -283
  301. data/ext/gsl/fcmp.c +0 -64
  302. data/ext/gsl/fresnel.c +0 -312
  303. data/ext/gsl/jacobi.c +0 -739
  304. data/ext/gsl/ool.c +0 -879
  305. data/ext/gsl/oper_complex_source.c +0 -251
  306. data/ext/gsl/sf_mathieu.c +0 -238
  307. data/rdoc/index.rdoc +0 -50
@@ -19,8 +19,8 @@ static VALUE rb_gsl_sf_elljac_e(VALUE obj, VALUE n, VALUE m)
19
19
  //int status;
20
20
  Need_Float(n); Need_Float(m);
21
21
  /*status =*/ gsl_sf_elljac_e(NUM2DBL(n), NUM2DBL(m), &sn, &cn, &dn);
22
- return rb_ary_new3(3, rb_float_new(sn),
23
- rb_float_new(cn), rb_float_new(dn));
22
+ return rb_ary_new3(3, rb_float_new(sn),
23
+ rb_float_new(cn), rb_float_new(dn));
24
24
  }
25
25
 
26
26
  void Init_gsl_sf_elljac(VALUE module)
@@ -62,7 +62,6 @@ static VALUE rb_gsl_sf_erf_Q_e(VALUE obj, VALUE x)
62
62
  return rb_gsl_sf_eval_e(gsl_sf_erf_Q_e, x);
63
63
  }
64
64
 
65
- #ifdef GSL_1_4_LATER
66
65
  static VALUE rb_gsl_sf_hazard(VALUE obj, VALUE x)
67
66
  {
68
67
  return rb_gsl_sf_eval1(gsl_sf_hazard, x);
@@ -72,7 +71,6 @@ static VALUE rb_gsl_sf_hazard_e(VALUE obj, VALUE x)
72
71
  {
73
72
  return rb_gsl_sf_eval_e(gsl_sf_hazard_e, x);
74
73
  }
75
- #endif
76
74
 
77
75
  void Init_gsl_sf_erfc(VALUE module)
78
76
  {
@@ -86,8 +84,6 @@ void Init_gsl_sf_erfc(VALUE module)
86
84
  rb_define_module_function(module, "erf_Z_e", rb_gsl_sf_erf_Z_e, 1);
87
85
  rb_define_module_function(module, "erf_Q", rb_gsl_sf_erf_Q, 1);
88
86
  rb_define_module_function(module, "erf_Q_e", rb_gsl_sf_erf_Q_e, 1);
89
- #ifdef GSL_1_4_LATER
90
87
  rb_define_module_function(module, "hazard", rb_gsl_sf_hazard, 1);
91
88
  rb_define_module_function(module, "hazard_e", rb_gsl_sf_hazard_e, 1);
92
- #endif
93
89
  }
@@ -119,7 +119,7 @@ static VALUE rb_gsl_sf_exp_err_e10_e(VALUE obj, VALUE x, VALUE dx)
119
119
  }
120
120
 
121
121
  static VALUE rb_gsl_sf_exp_mult_err_e(VALUE obj, VALUE x, VALUE dx,
122
- VALUE y, VALUE dy)
122
+ VALUE y, VALUE dy)
123
123
  {
124
124
  gsl_sf_result *rslt = NULL;
125
125
  VALUE v;
@@ -133,7 +133,7 @@ static VALUE rb_gsl_sf_exp_mult_err_e(VALUE obj, VALUE x, VALUE dx,
133
133
  }
134
134
 
135
135
  static VALUE rb_gsl_sf_exp_mult_err_e10_e(VALUE obj, VALUE x, VALUE dx,
136
- VALUE y, VALUE dy)
136
+ VALUE y, VALUE dy)
137
137
  {
138
138
  gsl_sf_result_e10 *rslt = NULL;
139
139
  VALUE v;
@@ -102,7 +102,6 @@ static VALUE rb_gsl_sf_atanint_e(VALUE obj, VALUE x)
102
102
  return rb_gsl_sf_eval_e(gsl_sf_atanint_e, x);
103
103
  }
104
104
 
105
- #ifdef GSL_1_3_LATER
106
105
  static VALUE rb_gsl_sf_expint_E1_scaled(VALUE obj, VALUE x)
107
106
  {
108
107
  return rb_gsl_sf_eval1(gsl_sf_expint_E1_scaled, x);
@@ -132,9 +131,7 @@ static VALUE rb_gsl_sf_expint_Ei_scaled_e(VALUE obj, VALUE x)
132
131
  {
133
132
  return rb_gsl_sf_eval_e(gsl_sf_expint_Ei_scaled_e, x);
134
133
  }
135
- #endif
136
134
 
137
- #ifdef GSL_1_10_LATER
138
135
  static VALUE rb_gsl_sf_expint_En(VALUE obj, VALUE n, VALUE x)
139
136
  {
140
137
  return rb_gsl_sf_eval_int_double(gsl_sf_expint_En, n, x);
@@ -148,8 +145,6 @@ static VALUE rb_gsl_sf_expint_En_e(VALUE obj, VALUE n, VALUE x)
148
145
  return val;
149
146
  }
150
147
 
151
- #endif
152
-
153
148
  void Init_gsl_sf_expint(VALUE module)
154
149
  {
155
150
  VALUE mgsl_sf_expint;
@@ -185,7 +180,6 @@ void Init_gsl_sf_expint(VALUE module)
185
180
  rb_define_module_function(mgsl_sf_expint, "three", rb_gsl_sf_expint_3, 1);
186
181
  rb_define_module_function(mgsl_sf_expint, "three_e", rb_gsl_sf_expint_3_e, 1);
187
182
 
188
- #ifdef GSL_1_3_LATER
189
183
  rb_define_module_function(module, "expint_E1_scaled", rb_gsl_sf_expint_E1_scaled, 1);
190
184
  rb_define_module_function(module, "expint_E1_scaled_e", rb_gsl_sf_expint_E1_scaled_e, 1);
191
185
  rb_define_module_function(module, "expint_E2_scaled", rb_gsl_sf_expint_E2_scaled, 1);
@@ -199,13 +193,9 @@ void Init_gsl_sf_expint(VALUE module)
199
193
  rb_define_module_function(mgsl_sf_expint, "E2_scaled_e", rb_gsl_sf_expint_E2_scaled_e, 1);
200
194
  rb_define_module_function(mgsl_sf_expint, "Ei_scaled", rb_gsl_sf_expint_Ei_scaled, 1);
201
195
  rb_define_module_function(mgsl_sf_expint, "Ei_scaled_e", rb_gsl_sf_expint_Ei_scaled_e, 1);
202
- #endif
203
196
 
204
- #ifdef GSL_1_10_LATER
205
197
  rb_define_module_function(module, "expint_En", rb_gsl_sf_expint_En, 2);
206
198
  rb_define_module_function(mgsl_sf_expint, "En", rb_gsl_sf_expint_En, 2);
207
199
  rb_define_module_function(module, "expint_En_e", rb_gsl_sf_expint_En_e, 2);
208
- rb_define_module_function(mgsl_sf_expint, "En_e", rb_gsl_sf_expint_En_e, 2);
209
- #endif
210
-
200
+ rb_define_module_function(mgsl_sf_expint, "En_e", rb_gsl_sf_expint_En_e, 2);
211
201
  }
File without changes
@@ -242,12 +242,10 @@ static VALUE rb_gsl_sf_gamma_inc(VALUE obj, VALUE a, VALUE x)
242
242
  return rb_gsl_sf_eval_double_double(gsl_sf_gamma_inc_P, a, x);
243
243
  }
244
244
 
245
- #ifdef GSL_1_4_LATER
246
245
  static VALUE rb_gsl_sf_gamma_inc_e(VALUE obj, VALUE a, VALUE x)
247
246
  {
248
247
  return rb_gsl_sf_eval_e_double2(gsl_sf_gamma_inc_e, a, x);
249
248
  }
250
- #endif
251
249
 
252
250
  static VALUE rb_gsl_sf_beta(VALUE obj, VALUE a, VALUE b)
253
251
  {
@@ -284,7 +282,7 @@ static VALUE rb_gsl_sf_beta_inc_e(VALUE obj, VALUE a, VALUE b, VALUE x)
284
282
  double mygsl_binomial_coef(unsigned int n, unsigned int k);
285
283
  double mygsl_binomial_coef(unsigned int n, unsigned int k)
286
284
  {
287
- return floor(0.5 + exp(gsl_sf_lnfact(n) - gsl_sf_lnfact(k) - gsl_sf_lnfact(n-k)));
285
+ return floor(0.5 + exp(gsl_sf_lnfact(n) - gsl_sf_lnfact(k) - gsl_sf_lnfact(n-k)));
288
286
  }
289
287
 
290
288
  static VALUE rb_gsl_sf_bincoef(VALUE obj, VALUE n, VALUE k)
@@ -333,9 +331,7 @@ void Init_gsl_sf_gamma(VALUE module)
333
331
  rb_define_module_function(module, "gamma_inc_Q_e", rb_gsl_sf_gamma_inc_Q_e, 2);
334
332
  rb_define_module_function(module, "gamma_inc", rb_gsl_sf_gamma_inc, 2);
335
333
 
336
- #ifdef GSL_1_4_LATER
337
334
  rb_define_module_function(module, "gamma_inc_e", rb_gsl_sf_gamma_inc_e, 2);
338
- #endif
339
335
  rb_define_module_function(module, "beta", rb_gsl_sf_beta, 2);
340
336
  rb_define_module_function(module, "beta_e", rb_gsl_sf_beta_e, 2);
341
337
  rb_define_module_function(module, "lnbeta", rb_gsl_sf_lnbeta, 2);
File without changes
File without changes
@@ -12,7 +12,7 @@
12
12
  #include "include/rb_gsl_sf.h"
13
13
 
14
14
  static VALUE rb_gsl_sf_laguerre_X(int argc, VALUE *argv, VALUE obj,
15
- double (*f)(double, double))
15
+ double (*f)(double, double))
16
16
  {
17
17
  switch (argc) {
18
18
  case 2:
@@ -62,11 +62,11 @@ static VALUE rb_gsl_sf_laguerre_n(int argc, VALUE *argv, VALUE obj)
62
62
  switch (argc) {
63
63
  case 3:
64
64
  return rb_gsl_sf_eval_int_double_double(gsl_sf_laguerre_n, argv[0],
65
- argv[1], argv[2]);
65
+ argv[1], argv[2]);
66
66
  break;
67
67
  case 2:
68
68
  return rb_gsl_sf_eval_int_double_double(gsl_sf_laguerre_n, argv[0],
69
- INT2FIX(0), argv[1]);
69
+ INT2FIX(0), argv[1]);
70
70
  break;
71
71
  default:
72
72
  rb_raise(rb_eArgError, "wrong number of arguments (%d for 1 or 2)", argc);
File without changes
File without changes
@@ -13,14 +13,14 @@
13
13
 
14
14
  static VALUE rb_gsl_sf_log(VALUE obj, VALUE x)
15
15
  {
16
- if (COMPLEX_P(x) || VECTOR_COMPLEX_P(x) || MATRIX_COMPLEX_P(x))
16
+ if (COMPLEX_P(x) || VECTOR_COMPLEX_P(x) || MATRIX_COMPLEX_P(x))
17
17
  return rb_gsl_math_complex_eval(gsl_complex_log, x);
18
18
  return rb_gsl_sf_eval1(gsl_sf_log, x);
19
19
  }
20
20
 
21
21
  static VALUE rb_gsl_sf_log10(VALUE obj, VALUE x)
22
22
  {
23
- if (COMPLEX_P(x) || VECTOR_COMPLEX_P(x) || MATRIX_COMPLEX_P(x))
23
+ if (COMPLEX_P(x) || VECTOR_COMPLEX_P(x) || MATRIX_COMPLEX_P(x))
24
24
  return rb_gsl_math_complex_eval(gsl_complex_log10, x);
25
25
  return rb_gsl_sf_eval1(log10, x);
26
26
  }
@@ -93,7 +93,7 @@ static VALUE rb_gsl_sf_log_1plusx_mx_e(VALUE obj, VALUE x)
93
93
  void Init_gsl_sf_log(VALUE module)
94
94
  {
95
95
  rb_define_module_function(module, "log", rb_gsl_sf_log, 1);
96
- rb_define_module_function(module, "log10", rb_gsl_sf_log10, 1);
96
+ rb_define_module_function(module, "log10", rb_gsl_sf_log10, 1);
97
97
  rb_define_module_function(module, "log_e", rb_gsl_sf_log_e, 1);
98
98
  rb_define_module_function(module, "log_abs", rb_gsl_sf_log_abs, 1);
99
99
  rb_define_module_function(module, "log_abs_e", rb_gsl_sf_log_abs_e, 1);
@@ -0,0 +1,235 @@
1
+ #include "include/rb_gsl.h"
2
+
3
+ static VALUE cWorkspace;
4
+
5
+ static VALUE rb_gsl_sf_mathieu_alloc(VALUE klass, VALUE n, VALUE q)
6
+ {
7
+ gsl_sf_mathieu_workspace *w;
8
+ w = gsl_sf_mathieu_alloc((size_t) FIX2INT(n), NUM2DBL(q));
9
+ return Data_Wrap_Struct(klass, 0, gsl_sf_mathieu_free, w);
10
+ }
11
+
12
+ static VALUE sf_mathieu_eval(VALUE order, VALUE qq,
13
+ int (*f)(int, double, gsl_sf_result*))
14
+ {
15
+ gsl_sf_result r;
16
+ (*f)(FIX2INT(order), NUM2DBL(qq), &r);
17
+ return rb_float_new(r.val);
18
+ }
19
+
20
+ static VALUE sf_mathieu_eval2(VALUE n1, VALUE n2, VALUE q, VALUE x,
21
+ int (*f)(int, int, double, double, gsl_sf_result*))
22
+ {
23
+ gsl_sf_result r;
24
+ (*f)(FIX2INT(n1),FIX2INT(n2), NUM2DBL(q), NUM2DBL(x), &r);
25
+ return rb_float_new(r.val);
26
+ }
27
+
28
+ static VALUE sf_mathieu_array_eval(int argc, VALUE *argv,
29
+ int (*f)(int, int, double, gsl_sf_mathieu_workspace*, double[]))
30
+ {
31
+ gsl_sf_mathieu_workspace *w;
32
+ gsl_vector *v;
33
+ int n1, n2;
34
+ double q;
35
+ switch (argc) {
36
+ case 4:
37
+ if (!rb_obj_is_kind_of(argv[3], cWorkspace)) {
38
+ rb_raise(rb_eTypeError, "Wrong argument type 3 (%s detected, %s expected)",
39
+ rb_class2name(CLASS_OF(argv[3])), rb_class2name(cWorkspace));
40
+ }
41
+ n1 = FIX2INT(argv[0]);
42
+ n2 = FIX2INT(argv[1]);
43
+ q = NUM2DBL(argv[2]);
44
+ Data_Get_Struct(argv[3], gsl_sf_mathieu_workspace, w);
45
+ break;
46
+ default:
47
+ rb_raise(rb_eArgError, "Wrong number of arguments. (%d for 4)", argc);
48
+ }
49
+ v = gsl_vector_alloc(n2 - n1 + 1);
50
+ (*f)(n1, n2, q, w, v->data);
51
+ return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
52
+ }
53
+
54
+ static VALUE sf_mathieu_array_eval2(int argc, VALUE *argv,
55
+ int (*f)(int, int, double, double, gsl_sf_mathieu_workspace*, double[]))
56
+ {
57
+ gsl_sf_mathieu_workspace *w;
58
+ gsl_vector *v;
59
+ int n1, n2;
60
+ double q, x;
61
+ switch (argc) {
62
+ case 5:
63
+ if (!rb_obj_is_kind_of(argv[4], cWorkspace)) {
64
+ rb_raise(rb_eTypeError, "Wrong argument type 4 (%s detected, %s expected)",
65
+ rb_class2name(CLASS_OF(argv[4])), rb_class2name(cWorkspace));
66
+ }
67
+ n1 = FIX2INT(argv[0]);
68
+ n2 = FIX2INT(argv[1]);
69
+ q = NUM2DBL(argv[2]);
70
+ x = NUM2DBL(argv[3]);
71
+ Data_Get_Struct(argv[4], gsl_sf_mathieu_workspace, w);
72
+ break;
73
+ default:
74
+ rb_raise(rb_eArgError, "Wrong number of arguments. (%d for 5)", argc);
75
+ }
76
+ v = gsl_vector_alloc(n2 - n1 + 1);
77
+ (*f)(n1, n2, q, x, w, v->data);
78
+ return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
79
+ }
80
+ static VALUE sf_mathieu_array_eval3(int argc, VALUE *argv,
81
+ int (*f)(int, int, int, double, double, gsl_sf_mathieu_workspace*, double[]))
82
+ {
83
+ gsl_sf_mathieu_workspace *w;
84
+ gsl_vector *v;
85
+ int n1, n2, n3;
86
+ double q, x;
87
+ switch (argc) {
88
+ case 6:
89
+ if (!rb_obj_is_kind_of(argv[5], cWorkspace)) {
90
+ rb_raise(rb_eTypeError, "Wrong argument type 5 (%s detected, %s expected)",
91
+ rb_class2name(CLASS_OF(argv[5])), rb_class2name(cWorkspace));
92
+ }
93
+ n1 = FIX2INT(argv[0]);
94
+ n2 = FIX2INT(argv[1]);
95
+ n3 = FIX2INT(argv[2]);
96
+ q = NUM2DBL(argv[3]);
97
+ x = NUM2DBL(argv[4]);
98
+ Data_Get_Struct(argv[5], gsl_sf_mathieu_workspace, w);
99
+ break;
100
+ default:
101
+ rb_raise(rb_eArgError, "Wrong number of arguments. (%d for 6)", argc);
102
+ }
103
+ v = gsl_vector_alloc(n3 - n2 + 1);
104
+ (*f)(n1, n2, n3, q, x, w, v->data);
105
+ return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
106
+ }
107
+ static VALUE sf_mathieu_eval_int_double2(VALUE order, VALUE qq, VALUE zz,
108
+ int (*f)(int, double, double, gsl_sf_result*))
109
+ {
110
+ gsl_sf_result r;
111
+ (*f)(FIX2INT(order), NUM2DBL(qq), NUM2DBL(zz), &r);
112
+ return rb_float_new(r.val);
113
+ }
114
+ static VALUE sf_mathieu_eval_e_int_double2(VALUE order, VALUE qq, VALUE zz,
115
+ int (*f)(int, double, double, gsl_sf_result*))
116
+ {
117
+ gsl_sf_result *r;
118
+ VALUE val;
119
+ val = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, r);
120
+ (*f)(FIX2INT(order), NUM2DBL(qq), NUM2DBL(zz), r);
121
+ return val;
122
+ }
123
+
124
+ static VALUE sf_mathieu_eval_e_int2_double2(VALUE n1, VALUE n2, VALUE qq, VALUE zz,
125
+ int (*f)(int, int, double, double, gsl_sf_result*))
126
+ {
127
+ gsl_sf_result *r;
128
+ VALUE val;
129
+ val = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, r);
130
+ (*f)(FIX2INT(n1), FIX2INT(n2), NUM2DBL(qq), NUM2DBL(zz), r);
131
+ return val;
132
+ }
133
+ /**********/
134
+ static VALUE rb_gsl_sf_mathieu_a_e(VALUE module, VALUE order, VALUE qq)
135
+ {
136
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_mathieu_a, order, qq);
137
+ }
138
+ static VALUE rb_gsl_sf_mathieu_a(VALUE module, VALUE order, VALUE qq)
139
+ {
140
+ return sf_mathieu_eval(order, qq, gsl_sf_mathieu_a);
141
+ }
142
+ static VALUE rb_gsl_sf_mathieu_a_array(VALUE module, int argc, VALUE *argv)
143
+ {
144
+ return sf_mathieu_array_eval(argc, argv, gsl_sf_mathieu_a_array);
145
+ }
146
+ static VALUE rb_gsl_sf_mathieu_b_e(VALUE module, VALUE order, VALUE qq)
147
+ {
148
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_mathieu_b, order, qq);
149
+ }
150
+ static VALUE rb_gsl_sf_mathieu_b(VALUE module, VALUE order, VALUE qq)
151
+ {
152
+ return sf_mathieu_eval(order, qq, gsl_sf_mathieu_b);
153
+ }
154
+ static VALUE rb_gsl_sf_mathieu_b_array(VALUE module, int argc, VALUE *argv)
155
+ {
156
+ return sf_mathieu_array_eval(argc, argv, gsl_sf_mathieu_b_array);
157
+ }
158
+ static VALUE rb_gsl_sf_mathieu_ce_e(VALUE module, VALUE order, VALUE qq, VALUE zz)
159
+ {
160
+ return sf_mathieu_eval_e_int_double2(order, qq, zz, gsl_sf_mathieu_ce);
161
+ }
162
+ static VALUE rb_gsl_sf_mathieu_ce(VALUE module, VALUE order, VALUE qq, VALUE zz)
163
+ {
164
+ return sf_mathieu_eval_int_double2(order, qq, zz, gsl_sf_mathieu_ce);
165
+ }
166
+ static VALUE rb_gsl_sf_mathieu_ce_array(VALUE module, int argc, VALUE *argv)
167
+ {
168
+ return sf_mathieu_array_eval2(argc, argv, gsl_sf_mathieu_ce_array);
169
+ }
170
+ static VALUE rb_gsl_sf_mathieu_se_e(VALUE module, VALUE order, VALUE qq, VALUE zz)
171
+ {
172
+ return sf_mathieu_eval_e_int_double2(order, qq, zz, gsl_sf_mathieu_se);
173
+ }
174
+ static VALUE rb_gsl_sf_mathieu_se(VALUE module, VALUE order, VALUE qq, VALUE zz)
175
+ {
176
+ return sf_mathieu_eval_int_double2(order, qq, zz, gsl_sf_mathieu_se);
177
+ }
178
+ static VALUE rb_gsl_sf_mathieu_se_array(VALUE module, int argc, VALUE *argv)
179
+ {
180
+ return sf_mathieu_array_eval2(argc, argv, gsl_sf_mathieu_se_array);
181
+ }
182
+
183
+ /*****/
184
+ static VALUE rb_gsl_sf_mathieu_Mc_e(VALUE module, VALUE n1, VALUE n2, VALUE q, VALUE x)
185
+ {
186
+ return sf_mathieu_eval_e_int2_double2(n1, n2, q, x, gsl_sf_mathieu_Mc);
187
+ }
188
+ static VALUE rb_gsl_sf_mathieu_Mc(VALUE module, VALUE n1, VALUE n2, VALUE q, VALUE x)
189
+ {
190
+ return sf_mathieu_eval2(n1, n2, q, x, gsl_sf_mathieu_Mc);
191
+ }
192
+ static VALUE rb_gsl_sf_mathieu_Mc_array(VALUE module, int argc, VALUE *argv)
193
+ {
194
+ return sf_mathieu_array_eval3(argc, argv, gsl_sf_mathieu_Mc_array);
195
+ }
196
+ static VALUE rb_gsl_sf_mathieu_Ms_e(VALUE module, VALUE n1, VALUE n2, VALUE q, VALUE x)
197
+ {
198
+ return sf_mathieu_eval_e_int2_double2(n1, n2, q, x, gsl_sf_mathieu_Ms);
199
+ }
200
+ static VALUE rb_gsl_sf_mathieu_Ms(VALUE module, VALUE n1, VALUE n2, VALUE q, VALUE x)
201
+ {
202
+ return sf_mathieu_eval2(n1, n2, q, x, gsl_sf_mathieu_Ms);
203
+ }
204
+ static VALUE rb_gsl_sf_mathieu_Ms_array(VALUE module, int argc, VALUE *argv)
205
+ {
206
+ return sf_mathieu_array_eval3(argc, argv, gsl_sf_mathieu_Ms_array);
207
+ }
208
+ /*****/
209
+ void Init_sf_mathieu(VALUE module)
210
+ {
211
+ VALUE mMathieu;
212
+
213
+ mMathieu = rb_define_module_under(module, "Mathieu");
214
+ cWorkspace = rb_define_class_under(mMathieu, "Workspace", cGSL_Object);
215
+ rb_define_singleton_method(cWorkspace, "alloc", rb_gsl_sf_mathieu_alloc, 2);
216
+
217
+ rb_define_module_function(module, "mathieu_a", rb_gsl_sf_mathieu_a, 2);
218
+ rb_define_module_function(module, "mathieu_a_e", rb_gsl_sf_mathieu_a_e, 2);
219
+ rb_define_module_function(module, "mathieu_a_array", rb_gsl_sf_mathieu_a_array, -1);
220
+ rb_define_module_function(module, "mathieu_b", rb_gsl_sf_mathieu_b, 2);
221
+ rb_define_module_function(module, "mathieu_b_e", rb_gsl_sf_mathieu_b_e, 2);
222
+ rb_define_module_function(module, "mathieu_b_array", rb_gsl_sf_mathieu_b_array, -1);
223
+ rb_define_module_function(module, "mathieu_ce", rb_gsl_sf_mathieu_ce, 3);
224
+ rb_define_module_function(module, "mathieu_ce_e", rb_gsl_sf_mathieu_ce_e, 3);
225
+ rb_define_module_function(module, "mathieu_ce_array", rb_gsl_sf_mathieu_ce_array, -1);
226
+ rb_define_module_function(module, "mathieu_se", rb_gsl_sf_mathieu_se, 3);
227
+ rb_define_module_function(module, "mathieu_se_e", rb_gsl_sf_mathieu_se_e, 3);
228
+ rb_define_module_function(module, "mathieu_se_array", rb_gsl_sf_mathieu_se_array, -1);
229
+ rb_define_module_function(module, "mathieu_Mc", rb_gsl_sf_mathieu_Mc, 4);
230
+ rb_define_module_function(module, "mathieu_Mc_e", rb_gsl_sf_mathieu_Mc_e, 4);
231
+ rb_define_module_function(module, "mathieu_Mc_array", rb_gsl_sf_mathieu_Mc_array, -1);
232
+ rb_define_module_function(module, "mathieu_Ms", rb_gsl_sf_mathieu_Ms, 4);
233
+ rb_define_module_function(module, "mathieu_Ms_e", rb_gsl_sf_mathieu_Ms_e, 4);
234
+ rb_define_module_function(module, "mathieu_Ms_array", rb_gsl_sf_mathieu_Ms_array, -1);
235
+ }
File without changes
@@ -31,19 +31,15 @@ static VALUE rb_gsl_sf_psi_e(VALUE obj, VALUE x)
31
31
  return rb_gsl_sf_eval_e(gsl_sf_psi_e, x);
32
32
  }
33
33
 
34
- #ifdef GSL_1_6_LATER
35
34
  static VALUE rb_gsl_sf_psi_1(VALUE obj, VALUE x)
36
35
  {
37
36
  return rb_gsl_sf_eval1(gsl_sf_psi_1, x);
38
37
  }
39
- #endif
40
38
 
41
- #ifdef GSL_1_4_9_LATER
42
39
  static VALUE rb_gsl_sf_psi_1_e(VALUE obj, VALUE x)
43
40
  {
44
41
  return rb_gsl_sf_eval_e(gsl_sf_psi_1_e, x);
45
42
  }
46
- #endif
47
43
 
48
44
  static VALUE rb_gsl_sf_psi_1piy(VALUE obj, VALUE x)
49
45
  {
@@ -88,11 +84,6 @@ void Init_gsl_sf_psi(VALUE module)
88
84
 
89
85
  rb_define_module_function(module, "psi", rb_gsl_sf_psi, 1);
90
86
  rb_define_module_function(module, "psi_e", rb_gsl_sf_psi_e, 1);
91
-
92
- #ifdef GSL_1_6_LATER
93
- rb_define_module_function(module, "psi_1", rb_gsl_sf_psi_1, 1);
94
- #endif
95
- #ifdef GSL_1_4_9_LATER
96
- rb_define_module_function(module, "psi_1_e", rb_gsl_sf_psi_1_e, 1);
97
- #endif
87
+ rb_define_module_function(module, "psi_1", rb_gsl_sf_psi_1, 1);
88
+ rb_define_module_function(module, "psi_1_e", rb_gsl_sf_psi_1_e, 1);
98
89
  }