rb-gsl 1.16.0.5 → 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 (612) hide show
  1. checksums.yaml +4 -4
  2. data/rb-gsl.gemspec +5 -10
  3. metadata +10 -713
  4. data/.gitignore +0 -12
  5. data/.travis.yml +0 -24
  6. data/AUTHORS +0 -12
  7. data/COPYING +0 -341
  8. data/ChangeLog +0 -621
  9. data/Gemfile +0 -4
  10. data/README.md +0 -77
  11. data/Rakefile +0 -20
  12. data/THANKS +0 -17
  13. data/examples/alf/alf.gp +0 -15
  14. data/examples/alf/alf.rb +0 -32
  15. data/examples/blas/blas.rb +0 -13
  16. data/examples/blas/dnrm2.rb +0 -16
  17. data/examples/blas/level1.rb +0 -81
  18. data/examples/blas/level2.rb +0 -11
  19. data/examples/blas/level3.rb +0 -12
  20. data/examples/bspline.rb +0 -57
  21. data/examples/cdf.rb +0 -16
  22. data/examples/cheb.rb +0 -21
  23. data/examples/combination.rb +0 -23
  24. data/examples/complex/RC-lpf.rb +0 -47
  25. data/examples/complex/add.rb +0 -36
  26. data/examples/complex/coerce.rb +0 -14
  27. data/examples/complex/complex.rb +0 -25
  28. data/examples/complex/fpmi.rb +0 -70
  29. data/examples/complex/functions.rb +0 -77
  30. data/examples/complex/michelson.rb +0 -36
  31. data/examples/complex/mul.rb +0 -28
  32. data/examples/complex/oscillator.rb +0 -17
  33. data/examples/complex/set.rb +0 -37
  34. data/examples/const/physconst.rb +0 -151
  35. data/examples/const/travel.rb +0 -45
  36. data/examples/deriv/demo.rb +0 -13
  37. data/examples/deriv/deriv.rb +0 -36
  38. data/examples/deriv/diff.rb +0 -35
  39. data/examples/dht.rb +0 -42
  40. data/examples/dirac.rb +0 -56
  41. data/examples/eigen/eigen.rb +0 -34
  42. data/examples/eigen/herm.rb +0 -22
  43. data/examples/eigen/narray.rb +0 -9
  44. data/examples/eigen/nonsymm.rb +0 -37
  45. data/examples/eigen/nonsymmv.rb +0 -43
  46. data/examples/eigen/qhoscillator.gp +0 -35
  47. data/examples/eigen/qhoscillator.rb +0 -90
  48. data/examples/eigen/vander.rb +0 -41
  49. data/examples/fft/fft.rb +0 -17
  50. data/examples/fft/fft2.rb +0 -17
  51. data/examples/fft/forward.rb +0 -25
  52. data/examples/fft/forward2.rb +0 -26
  53. data/examples/fft/radix2.rb +0 -18
  54. data/examples/fft/real-halfcomplex.rb +0 -33
  55. data/examples/fft/real-halfcomplex2.rb +0 -30
  56. data/examples/fft/realradix2.rb +0 -19
  57. data/examples/fft/sunspot.dat +0 -256
  58. data/examples/fft/sunspot.rb +0 -16
  59. data/examples/fit/expdata.dat +0 -20
  60. data/examples/fit/expfit.rb +0 -31
  61. data/examples/fit/gaussfit.rb +0 -29
  62. data/examples/fit/gaussian_2peaks.rb +0 -34
  63. data/examples/fit/hillfit.rb +0 -40
  64. data/examples/fit/lognormal.rb +0 -26
  65. data/examples/fit/lorentzfit.rb +0 -22
  66. data/examples/fit/multifit.rb +0 -72
  67. data/examples/fit/ndlinear.rb +0 -133
  68. data/examples/fit/nonlinearfit.rb +0 -89
  69. data/examples/fit/plot.gp +0 -36
  70. data/examples/fit/polyfit.rb +0 -9
  71. data/examples/fit/powerfit.rb +0 -21
  72. data/examples/fit/sigmoidfit.rb +0 -40
  73. data/examples/fit/sinfit.rb +0 -22
  74. data/examples/fit/wlinear.rb +0 -46
  75. data/examples/fresnel.rb +0 -11
  76. data/examples/function/function.rb +0 -36
  77. data/examples/function/log.rb +0 -7
  78. data/examples/function/min.rb +0 -33
  79. data/examples/function/sin.rb +0 -10
  80. data/examples/function/synchrotron.rb +0 -18
  81. data/examples/gallery/butterfly.rb +0 -7
  82. data/examples/gallery/cayley.rb +0 -12
  83. data/examples/gallery/cornu.rb +0 -23
  84. data/examples/gallery/eight.rb +0 -11
  85. data/examples/gallery/koch.rb +0 -40
  86. data/examples/gallery/lemniscate.rb +0 -11
  87. data/examples/gallery/polar.rb +0 -11
  88. data/examples/gallery/rgplot/cossin.rb +0 -35
  89. data/examples/gallery/rgplot/rgplot.replaced +0 -0
  90. data/examples/gallery/rgplot/roesller.rb +0 -55
  91. data/examples/gallery/roesller.rb +0 -39
  92. data/examples/gallery/scarabaeus.rb +0 -14
  93. data/examples/histogram/cauchy.rb +0 -27
  94. data/examples/histogram/cauchy.sh +0 -2
  95. data/examples/histogram/exponential.rb +0 -19
  96. data/examples/histogram/gauss.rb +0 -16
  97. data/examples/histogram/gsl-histogram.rb +0 -40
  98. data/examples/histogram/histo2d.rb +0 -31
  99. data/examples/histogram/histo3d.rb +0 -34
  100. data/examples/histogram/histogram-pdf.rb +0 -27
  101. data/examples/histogram/histogram.rb +0 -26
  102. data/examples/histogram/integral.rb +0 -28
  103. data/examples/histogram/poisson.rb +0 -27
  104. data/examples/histogram/power.rb +0 -25
  105. data/examples/histogram/rebin.rb +0 -17
  106. data/examples/histogram/smp.dat +0 -5
  107. data/examples/histogram/xexp.rb +0 -21
  108. data/examples/integration/ahmed.rb +0 -21
  109. data/examples/integration/cosmology.rb +0 -75
  110. data/examples/integration/friedmann.gp +0 -16
  111. data/examples/integration/friedmann.rb +0 -35
  112. data/examples/integration/gamma-zeta.rb +0 -35
  113. data/examples/integration/integration.rb +0 -22
  114. data/examples/integration/qag.rb +0 -8
  115. data/examples/integration/qag2.rb +0 -14
  116. data/examples/integration/qag3.rb +0 -8
  117. data/examples/integration/qagi.rb +0 -28
  118. data/examples/integration/qagi2.rb +0 -49
  119. data/examples/integration/qagiu.rb +0 -29
  120. data/examples/integration/qagp.rb +0 -20
  121. data/examples/integration/qags.rb +0 -14
  122. data/examples/integration/qawc.rb +0 -18
  123. data/examples/integration/qawf.rb +0 -41
  124. data/examples/integration/qawo.rb +0 -29
  125. data/examples/integration/qaws.rb +0 -30
  126. data/examples/integration/qng.rb +0 -17
  127. data/examples/interp/demo.gp +0 -20
  128. data/examples/interp/demo.rb +0 -45
  129. data/examples/interp/interp.rb +0 -37
  130. data/examples/interp/points +0 -10
  131. data/examples/interp/spline.rb +0 -20
  132. data/examples/jacobi/deriv.rb +0 -40
  133. data/examples/jacobi/integrate.rb +0 -34
  134. data/examples/jacobi/interp.rb +0 -43
  135. data/examples/jacobi/jacobi.rb +0 -11
  136. data/examples/linalg/HH.rb +0 -15
  137. data/examples/linalg/HH_narray.rb +0 -13
  138. data/examples/linalg/LQ_solve.rb +0 -73
  139. data/examples/linalg/LU.rb +0 -84
  140. data/examples/linalg/LU2.rb +0 -31
  141. data/examples/linalg/LU_narray.rb +0 -24
  142. data/examples/linalg/PTLQ.rb +0 -47
  143. data/examples/linalg/QR.rb +0 -18
  144. data/examples/linalg/QRPT.rb +0 -47
  145. data/examples/linalg/QR_solve.rb +0 -78
  146. data/examples/linalg/QR_solve_narray.rb +0 -13
  147. data/examples/linalg/SV.rb +0 -16
  148. data/examples/linalg/SV_narray.rb +0 -12
  149. data/examples/linalg/SV_solve.rb +0 -49
  150. data/examples/linalg/chol.rb +0 -29
  151. data/examples/linalg/chol_narray.rb +0 -15
  152. data/examples/linalg/complex.rb +0 -57
  153. data/examples/linalg/invert_narray.rb +0 -10
  154. data/examples/math/const.rb +0 -67
  155. data/examples/math/elementary.rb +0 -35
  156. data/examples/math/functions.rb +0 -41
  157. data/examples/math/inf_nan.rb +0 -34
  158. data/examples/math/minmax.rb +0 -22
  159. data/examples/math/power.rb +0 -18
  160. data/examples/math/test.rb +0 -31
  161. data/examples/matrix/a.dat +0 -0
  162. data/examples/matrix/add.rb +0 -45
  163. data/examples/matrix/b.dat +0 -4
  164. data/examples/matrix/cat.rb +0 -31
  165. data/examples/matrix/colvectors.rb +0 -24
  166. data/examples/matrix/complex.rb +0 -41
  167. data/examples/matrix/det.rb +0 -29
  168. data/examples/matrix/diagonal.rb +0 -23
  169. data/examples/matrix/get_all.rb +0 -159
  170. data/examples/matrix/hilbert.rb +0 -31
  171. data/examples/matrix/iterator.rb +0 -19
  172. data/examples/matrix/matrix.rb +0 -57
  173. data/examples/matrix/minmax.rb +0 -53
  174. data/examples/matrix/mul.rb +0 -39
  175. data/examples/matrix/rand.rb +0 -20
  176. data/examples/matrix/read.rb +0 -29
  177. data/examples/matrix/rowcol.rb +0 -47
  178. data/examples/matrix/set.rb +0 -41
  179. data/examples/matrix/set_all.rb +0 -100
  180. data/examples/matrix/view.rb +0 -32
  181. data/examples/matrix/view_all.rb +0 -148
  182. data/examples/matrix/write.rb +0 -23
  183. data/examples/min.rb +0 -29
  184. data/examples/monte/miser.rb +0 -47
  185. data/examples/monte/monte.rb +0 -47
  186. data/examples/monte/plain.rb +0 -47
  187. data/examples/monte/vegas.rb +0 -46
  188. data/examples/multimin/bundle.rb +0 -66
  189. data/examples/multimin/cqp.rb +0 -109
  190. data/examples/multimin/fdfminimizer.rb +0 -40
  191. data/examples/multimin/fminimizer.rb +0 -41
  192. data/examples/multiroot/demo.rb +0 -36
  193. data/examples/multiroot/fdfsolver.rb +0 -50
  194. data/examples/multiroot/fsolver.rb +0 -33
  195. data/examples/multiroot/fsolver2.rb +0 -32
  196. data/examples/multiroot/fsolver3.rb +0 -26
  197. data/examples/narray/histogram.rb +0 -14
  198. data/examples/narray/mandel.rb +0 -27
  199. data/examples/narray/narray.rb +0 -28
  200. data/examples/narray/narray2.rb +0 -44
  201. data/examples/narray/sf.rb +0 -26
  202. data/examples/ntuple/create.rb +0 -17
  203. data/examples/ntuple/project.rb +0 -31
  204. data/examples/odeiv/binarysystem.gp +0 -23
  205. data/examples/odeiv/binarysystem.rb +0 -104
  206. data/examples/odeiv/demo.gp +0 -24
  207. data/examples/odeiv/demo.rb +0 -69
  208. data/examples/odeiv/demo2.gp +0 -26
  209. data/examples/odeiv/duffing.rb +0 -45
  210. data/examples/odeiv/frei1.rb +0 -109
  211. data/examples/odeiv/frei2.rb +0 -76
  212. data/examples/odeiv/legendre.rb +0 -52
  213. data/examples/odeiv/odeiv.rb +0 -32
  214. data/examples/odeiv/odeiv2.rb +0 -45
  215. data/examples/odeiv/oscillator.rb +0 -42
  216. data/examples/odeiv/sedov.rb +0 -97
  217. data/examples/odeiv/whitedwarf.gp +0 -40
  218. data/examples/odeiv/whitedwarf.rb +0 -158
  219. data/examples/ool/conmin.rb +0 -100
  220. data/examples/ool/gencan.rb +0 -99
  221. data/examples/ool/pgrad.rb +0 -100
  222. data/examples/ool/spg.rb +0 -100
  223. data/examples/pdf/bernoulli.rb +0 -5
  224. data/examples/pdf/beta.rb +0 -7
  225. data/examples/pdf/binomiral.rb +0 -10
  226. data/examples/pdf/cauchy.rb +0 -6
  227. data/examples/pdf/chisq.rb +0 -8
  228. data/examples/pdf/exponential.rb +0 -7
  229. data/examples/pdf/exppow.rb +0 -6
  230. data/examples/pdf/fdist.rb +0 -7
  231. data/examples/pdf/flat.rb +0 -7
  232. data/examples/pdf/gamma.rb +0 -8
  233. data/examples/pdf/gauss-tail.rb +0 -5
  234. data/examples/pdf/gauss.rb +0 -6
  235. data/examples/pdf/geometric.rb +0 -5
  236. data/examples/pdf/gumbel.rb +0 -6
  237. data/examples/pdf/hypergeometric.rb +0 -11
  238. data/examples/pdf/landau.rb +0 -5
  239. data/examples/pdf/laplace.rb +0 -7
  240. data/examples/pdf/logarithmic.rb +0 -5
  241. data/examples/pdf/logistic.rb +0 -6
  242. data/examples/pdf/lognormal.rb +0 -6
  243. data/examples/pdf/neg-binomiral.rb +0 -10
  244. data/examples/pdf/pareto.rb +0 -7
  245. data/examples/pdf/pascal.rb +0 -10
  246. data/examples/pdf/poisson.rb +0 -5
  247. data/examples/pdf/rayleigh-tail.rb +0 -6
  248. data/examples/pdf/rayleigh.rb +0 -6
  249. data/examples/pdf/tdist.rb +0 -6
  250. data/examples/pdf/weibull.rb +0 -8
  251. data/examples/permutation/ex1.rb +0 -22
  252. data/examples/permutation/permutation.rb +0 -16
  253. data/examples/poly/bell.rb +0 -6
  254. data/examples/poly/bessel.rb +0 -6
  255. data/examples/poly/cheb.rb +0 -6
  256. data/examples/poly/cheb_II.rb +0 -6
  257. data/examples/poly/cubic.rb +0 -9
  258. data/examples/poly/demo.rb +0 -20
  259. data/examples/poly/eval.rb +0 -28
  260. data/examples/poly/eval_derivs.rb +0 -14
  261. data/examples/poly/fit.rb +0 -21
  262. data/examples/poly/hermite.rb +0 -6
  263. data/examples/poly/poly.rb +0 -13
  264. data/examples/poly/quadratic.rb +0 -25
  265. data/examples/random/diffusion.rb +0 -34
  266. data/examples/random/gaussian.rb +0 -9
  267. data/examples/random/generator.rb +0 -27
  268. data/examples/random/hdsobol.rb +0 -21
  269. data/examples/random/poisson.rb +0 -9
  270. data/examples/random/qrng.rb +0 -19
  271. data/examples/random/randomwalk.rb +0 -37
  272. data/examples/random/randomwalk2d.rb +0 -19
  273. data/examples/random/rayleigh.rb +0 -36
  274. data/examples/random/rng.rb +0 -33
  275. data/examples/random/rngextra.rb +0 -14
  276. data/examples/roots/bisection.rb +0 -25
  277. data/examples/roots/brent.rb +0 -43
  278. data/examples/roots/demo.rb +0 -30
  279. data/examples/roots/newton.rb +0 -46
  280. data/examples/roots/recombination.gp +0 -11
  281. data/examples/roots/recombination.rb +0 -61
  282. data/examples/roots/steffenson.rb +0 -48
  283. data/examples/sf/ShiChi.rb +0 -6
  284. data/examples/sf/SiCi.rb +0 -6
  285. data/examples/sf/airy_Ai.rb +0 -8
  286. data/examples/sf/airy_Bi.rb +0 -8
  287. data/examples/sf/bessel_IK.rb +0 -12
  288. data/examples/sf/bessel_JY.rb +0 -13
  289. data/examples/sf/beta_inc.rb +0 -9
  290. data/examples/sf/clausen.rb +0 -6
  291. data/examples/sf/dawson.rb +0 -5
  292. data/examples/sf/debye.rb +0 -9
  293. data/examples/sf/dilog.rb +0 -6
  294. data/examples/sf/ellint.rb +0 -6
  295. data/examples/sf/expint.rb +0 -8
  296. data/examples/sf/fermi.rb +0 -10
  297. data/examples/sf/gamma_inc_P.rb +0 -9
  298. data/examples/sf/gegenbauer.rb +0 -8
  299. data/examples/sf/hyperg.rb +0 -7
  300. data/examples/sf/laguerre.rb +0 -19
  301. data/examples/sf/lambertW.rb +0 -5
  302. data/examples/sf/legendre_P.rb +0 -10
  303. data/examples/sf/lngamma.rb +0 -5
  304. data/examples/sf/psi.rb +0 -54
  305. data/examples/sf/sphbessel.gp +0 -27
  306. data/examples/sf/sphbessel.rb +0 -30
  307. data/examples/sf/synchrotron.rb +0 -5
  308. data/examples/sf/transport.rb +0 -10
  309. data/examples/sf/zetam1.rb +0 -5
  310. data/examples/siman.rb +0 -44
  311. data/examples/sort/heapsort.rb +0 -23
  312. data/examples/sort/heapsort_vector_complex.rb +0 -21
  313. data/examples/sort/sort.rb +0 -23
  314. data/examples/sort/sort2.rb +0 -16
  315. data/examples/stats/mean.rb +0 -17
  316. data/examples/stats/statistics.rb +0 -18
  317. data/examples/stats/test.rb +0 -9
  318. data/examples/sum.rb +0 -34
  319. data/examples/tamu_anova.rb +0 -18
  320. data/examples/vector/a.dat +0 -0
  321. data/examples/vector/add.rb +0 -56
  322. data/examples/vector/b.dat +0 -4
  323. data/examples/vector/c.dat +0 -3
  324. data/examples/vector/collect.rb +0 -26
  325. data/examples/vector/compare.rb +0 -28
  326. data/examples/vector/complex.rb +0 -51
  327. data/examples/vector/complex_get_all.rb +0 -85
  328. data/examples/vector/complex_set_all.rb +0 -131
  329. data/examples/vector/complex_view_all.rb +0 -77
  330. data/examples/vector/connect.rb +0 -22
  331. data/examples/vector/decimate.rb +0 -38
  332. data/examples/vector/diff.rb +0 -31
  333. data/examples/vector/filescan.rb +0 -17
  334. data/examples/vector/floor.rb +0 -23
  335. data/examples/vector/get_all.rb +0 -82
  336. data/examples/vector/gnuplot.rb +0 -38
  337. data/examples/vector/graph.rb +0 -28
  338. data/examples/vector/histogram.rb +0 -22
  339. data/examples/vector/linspace.rb +0 -24
  340. data/examples/vector/log.rb +0 -17
  341. data/examples/vector/logic.rb +0 -33
  342. data/examples/vector/logspace.rb +0 -25
  343. data/examples/vector/minmax.rb +0 -47
  344. data/examples/vector/mul.rb +0 -49
  345. data/examples/vector/narray.rb +0 -46
  346. data/examples/vector/read.rb +0 -29
  347. data/examples/vector/set.rb +0 -35
  348. data/examples/vector/set_all.rb +0 -121
  349. data/examples/vector/smpv.dat +0 -15
  350. data/examples/vector/test.rb +0 -43
  351. data/examples/vector/test_gslblock.rb +0 -58
  352. data/examples/vector/vector.rb +0 -110
  353. data/examples/vector/view.rb +0 -35
  354. data/examples/vector/view_all.rb +0 -73
  355. data/examples/vector/where.rb +0 -29
  356. data/examples/vector/write.rb +0 -24
  357. data/examples/vector/zip.rb +0 -34
  358. data/examples/wavelet/ecg.dat +0 -256
  359. data/examples/wavelet/wavelet1.rb +0 -50
  360. data/ext/gsl_native/alf.c +0 -206
  361. data/ext/gsl_native/array.c +0 -553
  362. data/ext/gsl_native/array_complex.c +0 -245
  363. data/ext/gsl_native/blas.c +0 -28
  364. data/ext/gsl_native/blas1.c +0 -733
  365. data/ext/gsl_native/blas2.c +0 -1088
  366. data/ext/gsl_native/blas3.c +0 -880
  367. data/ext/gsl_native/block.c +0 -40
  368. data/ext/gsl_native/block_source.h +0 -885
  369. data/ext/gsl_native/bspline.c +0 -122
  370. data/ext/gsl_native/bundle.c +0 -3
  371. data/ext/gsl_native/cdf.c +0 -740
  372. data/ext/gsl_native/cheb.c +0 -531
  373. data/ext/gsl_native/combination.c +0 -275
  374. data/ext/gsl_native/common.c +0 -293
  375. data/ext/gsl_native/complex.c +0 -1002
  376. data/ext/gsl_native/const.c +0 -331
  377. data/ext/gsl_native/const_additional.c +0 -99
  378. data/ext/gsl_native/cqp.c +0 -283
  379. data/ext/gsl_native/deriv.c +0 -187
  380. data/ext/gsl_native/dht.c +0 -353
  381. data/ext/gsl_native/diff.c +0 -164
  382. data/ext/gsl_native/dirac.c +0 -388
  383. data/ext/gsl_native/eigen.c +0 -2322
  384. data/ext/gsl_native/error.c +0 -193
  385. data/ext/gsl_native/extconf.rb +0 -118
  386. data/ext/gsl_native/fft.c +0 -1095
  387. data/ext/gsl_native/fit.c +0 -204
  388. data/ext/gsl_native/fresnel.c +0 -312
  389. data/ext/gsl_native/function.c +0 -518
  390. data/ext/gsl_native/geometry.c +0 -139
  391. data/ext/gsl_native/graph.c +0 -1590
  392. data/ext/gsl_native/gsl.c +0 -259
  393. data/ext/gsl_native/gsl_narray.c +0 -794
  394. data/ext/gsl_native/histogram.c +0 -1964
  395. data/ext/gsl_native/histogram2d.c +0 -1042
  396. data/ext/gsl_native/histogram3d.c +0 -884
  397. data/ext/gsl_native/histogram3d_source.c +0 -749
  398. data/ext/gsl_native/histogram_find.c +0 -99
  399. data/ext/gsl_native/histogram_oper.c +0 -150
  400. data/ext/gsl_native/ieee.c +0 -88
  401. data/ext/gsl_native/include/rb_gsl.h +0 -136
  402. data/ext/gsl_native/include/rb_gsl_array.h +0 -214
  403. data/ext/gsl_native/include/rb_gsl_cheb.h +0 -19
  404. data/ext/gsl_native/include/rb_gsl_common.h +0 -348
  405. data/ext/gsl_native/include/rb_gsl_complex.h +0 -25
  406. data/ext/gsl_native/include/rb_gsl_const.h +0 -23
  407. data/ext/gsl_native/include/rb_gsl_dirac.h +0 -6
  408. data/ext/gsl_native/include/rb_gsl_eigen.h +0 -17
  409. data/ext/gsl_native/include/rb_gsl_fft.h +0 -49
  410. data/ext/gsl_native/include/rb_gsl_fit.h +0 -23
  411. data/ext/gsl_native/include/rb_gsl_function.h +0 -23
  412. data/ext/gsl_native/include/rb_gsl_graph.h +0 -68
  413. data/ext/gsl_native/include/rb_gsl_histogram.h +0 -63
  414. data/ext/gsl_native/include/rb_gsl_histogram3d.h +0 -97
  415. data/ext/gsl_native/include/rb_gsl_integration.h +0 -17
  416. data/ext/gsl_native/include/rb_gsl_interp.h +0 -41
  417. data/ext/gsl_native/include/rb_gsl_linalg.h +0 -21
  418. data/ext/gsl_native/include/rb_gsl_math.h +0 -20
  419. data/ext/gsl_native/include/rb_gsl_odeiv.h +0 -18
  420. data/ext/gsl_native/include/rb_gsl_poly.h +0 -67
  421. data/ext/gsl_native/include/rb_gsl_rational.h +0 -30
  422. data/ext/gsl_native/include/rb_gsl_rng.h +0 -20
  423. data/ext/gsl_native/include/rb_gsl_root.h +0 -22
  424. data/ext/gsl_native/include/rb_gsl_sf.h +0 -110
  425. data/ext/gsl_native/include/rb_gsl_statistics.h +0 -17
  426. data/ext/gsl_native/include/rb_gsl_tensor.h +0 -43
  427. data/ext/gsl_native/include/rb_gsl_with_narray.h +0 -31
  428. data/ext/gsl_native/include/templates_off.h +0 -87
  429. data/ext/gsl_native/include/templates_on.h +0 -241
  430. data/ext/gsl_native/integration.c +0 -1154
  431. data/ext/gsl_native/interp.c +0 -499
  432. data/ext/gsl_native/jacobi.c +0 -733
  433. data/ext/gsl_native/linalg.c +0 -3915
  434. data/ext/gsl_native/linalg_complex.c +0 -726
  435. data/ext/gsl_native/math.c +0 -706
  436. data/ext/gsl_native/matrix.c +0 -36
  437. data/ext/gsl_native/matrix_complex.c +0 -1733
  438. data/ext/gsl_native/matrix_double.c +0 -557
  439. data/ext/gsl_native/matrix_int.c +0 -255
  440. data/ext/gsl_native/matrix_source.h +0 -2708
  441. data/ext/gsl_native/min.c +0 -219
  442. data/ext/gsl_native/monte.c +0 -978
  443. data/ext/gsl_native/multifit.c +0 -1862
  444. data/ext/gsl_native/multimin.c +0 -778
  445. data/ext/gsl_native/multimin_fsdf.c +0 -156
  446. data/ext/gsl_native/multiroots.c +0 -952
  447. data/ext/gsl_native/multiset.c +0 -210
  448. data/ext/gsl_native/ndlinear.c +0 -320
  449. data/ext/gsl_native/nmf.c +0 -171
  450. data/ext/gsl_native/nmf_wrap.c +0 -75
  451. data/ext/gsl_native/ntuple.c +0 -469
  452. data/ext/gsl_native/odeiv.c +0 -947
  453. data/ext/gsl_native/ool.c +0 -879
  454. data/ext/gsl_native/permutation.c +0 -598
  455. data/ext/gsl_native/poly.c +0 -39
  456. data/ext/gsl_native/poly2.c +0 -265
  457. data/ext/gsl_native/poly_source.h +0 -1871
  458. data/ext/gsl_native/qrng.c +0 -160
  459. data/ext/gsl_native/randist.c +0 -1848
  460. data/ext/gsl_native/rational.c +0 -480
  461. data/ext/gsl_native/rng.c +0 -595
  462. data/ext/gsl_native/root.c +0 -407
  463. data/ext/gsl_native/sf.c +0 -1446
  464. data/ext/gsl_native/sf_airy.c +0 -200
  465. data/ext/gsl_native/sf_bessel.c +0 -871
  466. data/ext/gsl_native/sf_clausen.c +0 -28
  467. data/ext/gsl_native/sf_coulomb.c +0 -206
  468. data/ext/gsl_native/sf_coupling.c +0 -121
  469. data/ext/gsl_native/sf_dawson.c +0 -29
  470. data/ext/gsl_native/sf_debye.c +0 -148
  471. data/ext/gsl_native/sf_dilog.c +0 -43
  472. data/ext/gsl_native/sf_elementary.c +0 -46
  473. data/ext/gsl_native/sf_ellint.c +0 -206
  474. data/ext/gsl_native/sf_elljac.c +0 -30
  475. data/ext/gsl_native/sf_erfc.c +0 -89
  476. data/ext/gsl_native/sf_exp.c +0 -169
  477. data/ext/gsl_native/sf_expint.c +0 -201
  478. data/ext/gsl_native/sf_fermi_dirac.c +0 -148
  479. data/ext/gsl_native/sf_gamma.c +0 -343
  480. data/ext/gsl_native/sf_gegenbauer.c +0 -97
  481. data/ext/gsl_native/sf_hyperg.c +0 -203
  482. data/ext/gsl_native/sf_laguerre.c +0 -113
  483. data/ext/gsl_native/sf_lambert.c +0 -47
  484. data/ext/gsl_native/sf_legendre.c +0 -368
  485. data/ext/gsl_native/sf_log.c +0 -105
  486. data/ext/gsl_native/sf_mathieu.c +0 -235
  487. data/ext/gsl_native/sf_power.c +0 -47
  488. data/ext/gsl_native/sf_psi.c +0 -89
  489. data/ext/gsl_native/sf_synchrotron.c +0 -48
  490. data/ext/gsl_native/sf_transport.c +0 -76
  491. data/ext/gsl_native/sf_trigonometric.c +0 -210
  492. data/ext/gsl_native/sf_zeta.c +0 -115
  493. data/ext/gsl_native/signal.c +0 -303
  494. data/ext/gsl_native/siman.c +0 -713
  495. data/ext/gsl_native/sort.c +0 -207
  496. data/ext/gsl_native/spline.c +0 -377
  497. data/ext/gsl_native/stats.c +0 -787
  498. data/ext/gsl_native/sum.c +0 -168
  499. data/ext/gsl_native/tamu_anova.c +0 -56
  500. data/ext/gsl_native/tensor.c +0 -35
  501. data/ext/gsl_native/tensor_source.h +0 -1122
  502. data/ext/gsl_native/vector.c +0 -35
  503. data/ext/gsl_native/vector_complex.c +0 -2241
  504. data/ext/gsl_native/vector_double.c +0 -1433
  505. data/ext/gsl_native/vector_int.c +0 -202
  506. data/ext/gsl_native/vector_source.h +0 -3321
  507. data/ext/gsl_native/wavelet.c +0 -923
  508. data/lib/gsl.rb +0 -8
  509. data/lib/gsl/gnuplot.rb +0 -41
  510. data/lib/gsl/oper.rb +0 -43
  511. data/lib/gsl/version.rb +0 -3
  512. data/lib/ool.rb +0 -22
  513. data/lib/ool/conmin.rb +0 -30
  514. data/lib/rbgsl.rb +0 -1
  515. data/rdoc/alf.rdoc +0 -77
  516. data/rdoc/blas.rdoc +0 -269
  517. data/rdoc/bspline.rdoc +0 -42
  518. data/rdoc/changes.rdoc +0 -159
  519. data/rdoc/cheb.rdoc +0 -99
  520. data/rdoc/cholesky_complex.rdoc +0 -46
  521. data/rdoc/combi.rdoc +0 -125
  522. data/rdoc/complex.rdoc +0 -210
  523. data/rdoc/const.rdoc +0 -546
  524. data/rdoc/dht.rdoc +0 -122
  525. data/rdoc/diff.rdoc +0 -133
  526. data/rdoc/ehandling.rdoc +0 -50
  527. data/rdoc/eigen.rdoc +0 -401
  528. data/rdoc/fft.rdoc +0 -535
  529. data/rdoc/fit.rdoc +0 -284
  530. data/rdoc/function.rdoc +0 -94
  531. data/rdoc/graph.rdoc +0 -137
  532. data/rdoc/hist.rdoc +0 -409
  533. data/rdoc/hist2d.rdoc +0 -279
  534. data/rdoc/hist3d.rdoc +0 -112
  535. data/rdoc/integration.rdoc +0 -398
  536. data/rdoc/interp.rdoc +0 -231
  537. data/rdoc/intro.rdoc +0 -27
  538. data/rdoc/linalg.rdoc +0 -681
  539. data/rdoc/linalg_complex.rdoc +0 -88
  540. data/rdoc/math.rdoc +0 -276
  541. data/rdoc/matrix.rdoc +0 -1093
  542. data/rdoc/min.rdoc +0 -189
  543. data/rdoc/monte.rdoc +0 -234
  544. data/rdoc/multimin.rdoc +0 -312
  545. data/rdoc/multiroot.rdoc +0 -293
  546. data/rdoc/narray.rdoc +0 -177
  547. data/rdoc/ndlinear.rdoc +0 -250
  548. data/rdoc/nonlinearfit.rdoc +0 -348
  549. data/rdoc/ntuple.rdoc +0 -88
  550. data/rdoc/odeiv.rdoc +0 -378
  551. data/rdoc/perm.rdoc +0 -221
  552. data/rdoc/poly.rdoc +0 -335
  553. data/rdoc/qrng.rdoc +0 -90
  554. data/rdoc/randist.rdoc +0 -233
  555. data/rdoc/ref.rdoc +0 -93
  556. data/rdoc/rng.rdoc +0 -203
  557. data/rdoc/roots.rdoc +0 -305
  558. data/rdoc/sf.rdoc +0 -1622
  559. data/rdoc/siman.rdoc +0 -89
  560. data/rdoc/sort.rdoc +0 -94
  561. data/rdoc/start.rdoc +0 -16
  562. data/rdoc/stats.rdoc +0 -219
  563. data/rdoc/sum.rdoc +0 -65
  564. data/rdoc/tensor.rdoc +0 -251
  565. data/rdoc/tut.rdoc +0 -5
  566. data/rdoc/use.rdoc +0 -177
  567. data/rdoc/vector.rdoc +0 -1243
  568. data/rdoc/vector_complex.rdoc +0 -347
  569. data/rdoc/wavelet.rdoc +0 -218
  570. data/test/gsl/blas_test.rb +0 -79
  571. data/test/gsl/bspline_test.rb +0 -63
  572. data/test/gsl/cdf_test.rb +0 -1512
  573. data/test/gsl/cheb_test.rb +0 -80
  574. data/test/gsl/combination_test.rb +0 -100
  575. data/test/gsl/complex_test.rb +0 -20
  576. data/test/gsl/const_test.rb +0 -29
  577. data/test/gsl/deriv_test.rb +0 -62
  578. data/test/gsl/dht_test.rb +0 -79
  579. data/test/gsl/diff_test.rb +0 -53
  580. data/test/gsl/eigen_test.rb +0 -563
  581. data/test/gsl/err_test.rb +0 -23
  582. data/test/gsl/fit_test.rb +0 -101
  583. data/test/gsl/histo_test.rb +0 -14
  584. data/test/gsl/index_test.rb +0 -61
  585. data/test/gsl/integration_test.rb +0 -274
  586. data/test/gsl/interp_test.rb +0 -27
  587. data/test/gsl/linalg_test.rb +0 -463
  588. data/test/gsl/matrix_nmf_test.rb +0 -37
  589. data/test/gsl/matrix_test.rb +0 -98
  590. data/test/gsl/min_test.rb +0 -89
  591. data/test/gsl/monte_test.rb +0 -77
  592. data/test/gsl/multifit_test.rb +0 -753
  593. data/test/gsl/multimin_test.rb +0 -157
  594. data/test/gsl/multiroot_test.rb +0 -135
  595. data/test/gsl/multiset_test.rb +0 -52
  596. data/test/gsl/odeiv_test.rb +0 -275
  597. data/test/gsl/oper_test.rb +0 -98
  598. data/test/gsl/poly_test.rb +0 -338
  599. data/test/gsl/qrng_test.rb +0 -94
  600. data/test/gsl/quartic_test.rb +0 -28
  601. data/test/gsl/randist_test.rb +0 -122
  602. data/test/gsl/rng_test.rb +0 -303
  603. data/test/gsl/roots_test.rb +0 -78
  604. data/test/gsl/sf_test.rb +0 -2079
  605. data/test/gsl/stats_test.rb +0 -122
  606. data/test/gsl/sum_test.rb +0 -69
  607. data/test/gsl/tensor_test.rb +0 -396
  608. data/test/gsl/vector_test.rb +0 -223
  609. data/test/gsl/wavelet_test.rb +0 -130
  610. data/test/gsl_test.rb +0 -321
  611. data/test/test_helper.rb +0 -42
  612. data/uncrustify.cfg +0 -1693
@@ -1,241 +0,0 @@
1
- /* If BASE is undefined we use function names like gsl_name()
2
- and assume that we are using doubles.
3
-
4
- If BASE is defined we used function names like gsl_BASE_name()
5
- and use BASE as the base datatype */
6
-
7
- #if defined(BASE_GSL_COMPLEX_LONG)
8
- #define BASE gsl_complex_long_double
9
- #define SHORT complex_long_double
10
- #define SHORT_REAL long_double
11
- #define ATOMIC long double
12
- #define USES_LONGDOUBLE 1
13
- #define MULTIPLICITY 2
14
- #define IN_FORMAT "%Lg"
15
- #define OUT_FORMAT "%Lg"
16
- #define ATOMIC_IO ATOMIC
17
- #define ZERO {{0.0L,0.0L}}
18
- #define ONE {{1.0L,0.0L}}
19
- #define BASE_EPSILON GSL_DBL_EPSILON
20
-
21
- #elif defined(BASE_GSL_COMPLEX)
22
- #define BASE gsl_complex
23
- #define SHORT complex
24
- #define SHORT_REAL
25
- #define ATOMIC double
26
- #define MULTIPLICITY 2
27
- #define IN_FORMAT "%lg"
28
- #define OUT_FORMAT "%g"
29
- #define ATOMIC_IO ATOMIC
30
- #define ZERO {{0.0,0.0}}
31
- #define ONE {{1.0,0.0}}
32
- #define BASE_EPSILON GSL_DBL_EPSILON
33
-
34
- #elif defined(BASE_GSL_COMPLEX_FLOAT)
35
- #define BASE gsl_complex_float
36
- #define SHORT complex_float
37
- #define SHORT_REAL float
38
- #define ATOMIC float
39
- #define MULTIPLICITY 2
40
- #define IN_FORMAT "%g"
41
- #define OUT_FORMAT "%g"
42
- #define ATOMIC_IO ATOMIC
43
- #define ZERO {{0.0F,0.0F}}
44
- #define ONE {{1.0F,0.0F}}
45
- #define BASE_EPSILON GSL_FLT_EPSILON
46
-
47
- #elif defined(BASE_LONG_DOUBLE)
48
- #define BASE long double
49
- #define SHORT long_double
50
- #define ATOMIC long double
51
- #define USES_LONGDOUBLE 1
52
- #define MULTIPLICITY 1
53
- #define IN_FORMAT "%Lg"
54
- #define OUT_FORMAT "%Lg"
55
- #define ATOMIC_IO ATOMIC
56
- #define ZERO 0.0L
57
- #define ONE 1.0L
58
- #define BASE_EPSILON GSL_DBL_EPSILON
59
-
60
- #elif defined(BASE_DOUBLE)
61
- #define BASE double
62
- #define SHORT
63
- #define ATOMIC double
64
- #define MULTIPLICITY 1
65
- #define IN_FORMAT "%lg"
66
- #define OUT_FORMAT "%g"
67
- #define ATOMIC_IO ATOMIC
68
- #define ZERO 0.0
69
- #define ONE 1.0
70
- #define BASE_EPSILON GSL_DBL_EPSILON
71
-
72
- #elif defined(BASE_FLOAT)
73
- #define BASE float
74
- #define SHORT float
75
- #define ATOMIC float
76
- #define MULTIPLICITY 1
77
- #define IN_FORMAT "%g"
78
- #define OUT_FORMAT "%g"
79
- #define ATOMIC_IO ATOMIC
80
- #define ZERO 0.0F
81
- #define ONE 1.0F
82
- #define BASE_EPSILON GSL_FLT_EPSILON
83
-
84
- #elif defined(BASE_ULONG)
85
- #define BASE unsigned long
86
- #define SHORT ulong
87
- #define ATOMIC unsigned long
88
- #define MULTIPLICITY 1
89
- #define IN_FORMAT "%lu"
90
- #define OUT_FORMAT "%lu"
91
- #define ATOMIC_IO ATOMIC
92
- #define ZERO 0UL
93
- #define ONE 1UL
94
-
95
- #elif defined(BASE_LONG)
96
- #define BASE long
97
- #define SHORT long
98
- #define ATOMIC long
99
- #define MULTIPLICITY 1
100
- #define IN_FORMAT "%ld"
101
- #define OUT_FORMAT "%ld"
102
- #define ATOMIC_IO ATOMIC
103
- #define ZERO 0L
104
- #define ONE 1L
105
-
106
- #elif defined(BASE_UINT)
107
- #define BASE unsigned int
108
- #define SHORT uint
109
- #define ATOMIC unsigned int
110
- #define MULTIPLICITY 1
111
- #define IN_FORMAT "%u"
112
- #define OUT_FORMAT "%u"
113
- #define ATOMIC_IO ATOMIC
114
- #define ZERO 0U
115
- #define ONE 1U
116
-
117
- #elif defined(BASE_INT)
118
- #define BASE int
119
- #define SHORT int
120
- #define ATOMIC int
121
- #define MULTIPLICITY 1
122
- #define IN_FORMAT "%d"
123
- #define OUT_FORMAT "%d"
124
- #define ATOMIC_IO ATOMIC
125
- #define ZERO 0
126
- #define ONE 1
127
-
128
- #elif defined(BASE_USHORT)
129
- #define BASE unsigned short
130
- #define SHORT ushort
131
- #define ATOMIC unsigned short
132
- #define MULTIPLICITY 1
133
- #define IN_FORMAT "%hu"
134
- #define OUT_FORMAT "%hu"
135
- #define ATOMIC_IO ATOMIC
136
- #define ZERO 0U
137
- #define ONE 1U
138
-
139
- #elif defined(BASE_SHORT)
140
- #define BASE short
141
- #define SHORT short
142
- #define ATOMIC short
143
- #define MULTIPLICITY 1
144
- #define IN_FORMAT "%hd"
145
- #define OUT_FORMAT "%hd"
146
- #define ATOMIC_IO ATOMIC
147
- #define ZERO 0
148
- #define ONE 1
149
-
150
- #elif defined(BASE_UCHAR)
151
- #define BASE unsigned char
152
- #define SHORT uchar
153
- #define ATOMIC unsigned char
154
- #define MULTIPLICITY 1
155
- #define IN_FORMAT "%u"
156
- #define OUT_FORMAT "%u"
157
- #define ATOMIC_IO unsigned int
158
- #define ZERO 0U
159
- #define ONE 1U
160
-
161
- #elif defined(BASE_CHAR)
162
- #define BASE char
163
- #define SHORT char
164
- #define ATOMIC char
165
- #define MULTIPLICITY 1
166
- #define IN_FORMAT "%d"
167
- #define OUT_FORMAT "%d"
168
- #define ATOMIC_IO int
169
- #define ZERO 0
170
- #define ONE 1
171
-
172
- #else
173
- #error unknown BASE_ directive in source.h
174
- #endif
175
-
176
- #define CONCAT2x(a,b) a ## _ ## b
177
- #define CONCAT2(a,b) CONCAT2x(a,b)
178
- #define CONCAT3x(a,b,c) a ## _ ## b ## _ ## c
179
- #define CONCAT3(a,b,c) CONCAT3x(a,b,c)
180
- #define CONCAT4x(a,b,c,d) a ## _ ## b ## _ ## c ## _ ## d
181
- #define CONCAT4(a,b,c,d) CONCAT4x(a,b,c,d)
182
-
183
- #ifndef USE_QUALIFIER
184
- #define QUALIFIER
185
- #endif
186
-
187
- #ifdef USE_QUALIFIER
188
- #if defined(BASE_DOUBLE)
189
- #define FUNCTION(dir,name) CONCAT3(dir,QUALIFIER,name)
190
- #define GSL_TYPE(dir) dir
191
- #define VIEW(dir,name) CONCAT2(dir,name)
192
- #define QUALIFIED_GSL_TYPE(dir) QUALIFIER dir
193
- #define QUALIFIED_VIEW(dir,name) CONCAT3(dir,QUALIFIER,name)
194
- #else
195
- #define FUNCTION(a,c) CONCAT4(a,SHORT,QUALIFIER,c)
196
- #define GSL_TYPE(dir) CONCAT2(dir,SHORT)
197
- #define VIEW(dir,name) CONCAT3(dir,SHORT,name)
198
- #define QUALIFIED_GSL_TYPE(dir) QUALIFIER CONCAT2(dir,SHORT)
199
- #define QUALIFIED_VIEW(dir,name) CONCAT4(dir,SHORT,QUALIFIER,name)
200
- #endif
201
- #if defined(BASE_GSL_COMPLEX)
202
- #define REAL_GSL_TYPE(dir) dir
203
- #define REAL_VIEW(dir,name) CONCAT2(dir,name)
204
- #define QUALIFIED_REAL_GSL_TYPE(dir) QUALIFIER dir
205
- #define QUALIFIED_REAL_VIEW(dir,name) CONCAT3(dir,QUALIFIER,name)
206
- #else
207
- #define REAL_GSL_TYPE(dir) CONCAT2(dir,SHORT_REAL)
208
- #define REAL_VIEW(dir,name) CONCAT3(dir,SHORT_REAL,name)
209
- #define QUALIFIED_REAL_GSL_TYPE(dir) QUALIFIER CONCAT2(dir,SHORT_REAL)
210
- #define QUALIFIED_REAL_VIEW(dir,name) CONCAT4(dir,SHORT_REAL,QUALIFIER,name)
211
- #endif
212
- #else
213
- #if defined(BASE_DOUBLE)
214
- #define FUNCTION(dir,name) CONCAT2(dir,name)
215
- #define GSL_TYPE(dir) dir
216
- #define VIEW(dir,name) CONCAT2(dir,name)
217
- #define QUALIFIED_GSL_TYPE(dir) GSL_TYPE(dir)
218
- #define QUALIFIED_VIEW(dir,name) CONCAT2(dir,name)
219
- #else
220
- #define FUNCTION(a,c) CONCAT3(a,SHORT,c)
221
- #define GSL_TYPE(dir) CONCAT2(dir,SHORT)
222
- #define VIEW(dir,name) CONCAT3(dir,SHORT,name)
223
- #define QUALIFIED_GSL_TYPE(dir) GSL_TYPE(dir)
224
- #define QUALIFIED_VIEW(dir,name) CONCAT3(dir,SHORT,name)
225
- #endif
226
- #if defined(BASE_GSL_COMPLEX)
227
- #define REAL_GSL_TYPE(dir) dir
228
- #define REAL_VIEW(dir,name) CONCAT2(dir,name)
229
- #define QUALIFIED_REAL_GSL_TYPE(dir) dir
230
- #define QUALIFIED_REAL_VIEW(dir,name) CONCAT2(dir,name)
231
- #else
232
- #define REAL_GSL_TYPE(dir) CONCAT2(dir,SHORT_REAL)
233
- #define REAL_VIEW(dir,name) CONCAT3(dir,SHORT_REAL,name)
234
- #define QUALIFIED_REAL_GSL_TYPE(dir) CONCAT2(dir,SHORT_REAL)
235
- #define QUALIFIED_REAL_VIEW(dir,name) CONCAT3(dir,SHORT_REAL,name)
236
- #endif
237
- #endif
238
-
239
- #define STRING(x) #x
240
- #define EXPAND(x) STRING(x)
241
- #define NAME(x) EXPAND(GSL_TYPE(x))
@@ -1,1154 +0,0 @@
1
- /*
2
- integration.c
3
- Ruby/GSL: Ruby extension library for GSL (GNU Scientific Library)
4
- (C) Copyright 2001-2006 by Yoshiki Tsunesada
5
-
6
- Ruby/GSL is free software: you can redistribute it and/or modify it
7
- under the terms of the GNU General Public License.
8
- This library is distributed in the hope that it will be useful, but
9
- WITHOUT ANY WARRANTY.
10
- */
11
-
12
- #include "include/rb_gsl_array.h"
13
- #include "include/rb_gsl_function.h"
14
- #include "include/rb_gsl_integration.h"
15
- #include "include/rb_gsl_common.h"
16
-
17
- #ifndef CHECK_WORKSPACE
18
- #define CHECK_WORKSPACE(x) if(CLASS_OF(x)!=cgsl_integration_workspace) \
19
- rb_raise(rb_eTypeError, \
20
- "wrong argument type %s (Integration::Workspace expected)", \
21
- rb_class2name(CLASS_OF(x)));
22
- #endif
23
-
24
- #define EPSABS_DEFAULT 0.0
25
- #define EPSREL_DEFAULT 1e-10
26
- #define LIMIT_DEFAULT 1000
27
- #define KEY_DEFAULT GSL_INTEG_GAUSS61
28
-
29
- static VALUE cgsl_integration_qaws_table, cgsl_integration_qawo_table;
30
-
31
- static VALUE cgsl_integration_workspace;
32
-
33
- static VALUE cgsl_integration_glfixed_table;
34
-
35
- static int get_a_b(int argc, VALUE *argv, int argstart, double *a, double *b);
36
- static int get_epsabs_epsrel(int argc, VALUE *argv, int argstart,
37
- double *epsabs, double *epsrel);
38
- static int get_a_b_epsabs_epsrel(int argc, VALUE *argv, int argstart,
39
- double *a, double *b, double *epsabs,
40
- double *epsrel);
41
- static int get_limit_key_workspace(int argc, VALUE *argv, int argstart,
42
- size_t *limit, int *key,
43
- gsl_integration_workspace **w);
44
- static int get_limit_workspace(int argc, VALUE *argv, int argstart,
45
- size_t *limit,
46
- gsl_integration_workspace **w);
47
- static int get_epsabs_epsrel_limit_workspace(int argc, VALUE *argv, int argstart,
48
- double *epsabs, double *epsrel,
49
- size_t *limit,
50
- gsl_integration_workspace **w);
51
-
52
- static int get_a_b(int argc, VALUE *argv, int argstart, double *a, double *b)
53
- {
54
- int itmp;
55
- VALUE aa, bb;
56
- if (argstart >= argc) return argstart;
57
- if (TYPE(argv[argstart]) == T_ARRAY) {
58
- aa = rb_ary_entry(argv[argstart], 0);
59
- bb = rb_ary_entry(argv[argstart], 1);
60
- Need_Float(aa); Need_Float(bb);
61
- // *a = RFLOAT(aa)->value;
62
- // *b = RFLOAT(bb)->value;
63
- *a = NUM2DBL(aa);
64
- *b = NUM2DBL(bb);
65
- itmp = argstart + 1;
66
- } else {
67
- Need_Float(argv[argstart]); Need_Float(argv[argstart+1]);
68
- *a = NUM2DBL(argv[argstart]);
69
- *b = NUM2DBL(argv[argstart+1]);
70
- itmp = argstart + 2;
71
- }
72
- return itmp;
73
- }
74
-
75
- static int get_epsabs_epsrel(int argc, VALUE *argv, int argstart,
76
- double *epsabs, double *epsrel)
77
- {
78
- int itmp;
79
- VALUE aa, bb;
80
- *epsabs = EPSABS_DEFAULT;
81
- *epsrel = EPSREL_DEFAULT;
82
- if (argstart >= argc) return argstart;
83
- if (TYPE(argv[argstart]) == T_ARRAY) {
84
- aa = rb_ary_entry(argv[argstart], 0);
85
- bb = rb_ary_entry(argv[argstart], 1);
86
- Need_Float(aa); Need_Float(bb);
87
- *epsabs = NUM2DBL(aa);
88
- *epsrel = NUM2DBL(bb);
89
- itmp = 1;
90
- } else {
91
- Need_Float(argv[argstart]); Need_Float(argv[argstart+1]);
92
- *epsabs = NUM2DBL(argv[argstart]);
93
- *epsrel = NUM2DBL(argv[argstart+1]);
94
- itmp = 2;
95
- }
96
- return argstart + itmp;
97
- }
98
-
99
- static int get_a_b_epsabs_epsrel(int argc, VALUE *argv, int argstart,
100
- double *a, double *b, double *epsabs,
101
- double *epsrel)
102
- {
103
- int itmp;
104
- *epsabs = EPSABS_DEFAULT;
105
- *epsrel = EPSREL_DEFAULT;
106
- itmp = get_a_b(argc, argv, argstart, a, b);
107
- itmp = get_epsabs_epsrel(argc, argv, itmp, epsabs, epsrel);
108
- return itmp;
109
- }
110
-
111
- static int get_limit_key_workspace(int argc, VALUE *argv, int argstart,
112
- size_t *limit, int *key,
113
- gsl_integration_workspace **w)
114
- {
115
- int flag = 0;
116
- switch (argc-argstart) {
117
- case 3:
118
- CHECK_FIXNUM(argv[argstart]);
119
- CHECK_FIXNUM(argv[argstart+1]);
120
- CHECK_WORKSPACE(argv[argstart+2]);
121
- *limit = FIX2INT(argv[argstart]);
122
- *key = FIX2INT(argv[argstart+1]);
123
- Data_Get_Struct(argv[argstart+2], gsl_integration_workspace, *w);
124
- flag = 0;
125
- break;
126
- case 1:
127
- CHECK_FIXNUM(argv[argstart]);
128
- *key = FIX2INT(argv[argstart]);
129
- *limit = LIMIT_DEFAULT;
130
- *w = gsl_integration_workspace_alloc(*limit);
131
- flag = 1;
132
- break;
133
- case 2:
134
- if (TYPE(argv[argc-1]) == T_FIXNUM) {
135
- CHECK_FIXNUM(argv[argc-2]);
136
- *limit = FIX2INT(argv[argc-2]);
137
- *key = FIX2INT(argv[argc-1]);
138
- *w = gsl_integration_workspace_alloc(*limit);
139
- flag = 1;
140
- } else {
141
- CHECK_FIXNUM(argv[argc-2]);
142
- CHECK_WORKSPACE(argv[argc-1]);
143
- *key = FIX2INT(argv[argc-2]);
144
- Data_Get_Struct(argv[argc-1], gsl_integration_workspace, *w);
145
- *limit = (*w)->limit;
146
- flag = 0;
147
- }
148
- break;
149
- case 0:
150
- *key = KEY_DEFAULT;
151
- *limit = LIMIT_DEFAULT;
152
- *w = gsl_integration_workspace_alloc(*limit);
153
- flag = 1;
154
- break;
155
- default:
156
- rb_raise(rb_eArgError, "wrong number of arguments");
157
- break;
158
- }
159
- if (*w == NULL) rb_raise(rb_eRuntimeError, "something wrong with workspace");
160
- return flag;
161
- }
162
-
163
- static int get_limit_workspace(int argc, VALUE *argv, int argstart,
164
- size_t *limit,
165
- gsl_integration_workspace **w)
166
- {
167
- int flag = 0;
168
-
169
- switch (argc-argstart) {
170
- case 2:
171
- CHECK_FIXNUM(argv[argstart]);
172
- *limit = FIX2INT(argv[argstart]);
173
- CHECK_WORKSPACE(argv[argstart+1]);
174
- Data_Get_Struct(argv[argstart+1], gsl_integration_workspace, *w);
175
- flag = 0;
176
- break;
177
- case 0:
178
- *limit = LIMIT_DEFAULT;
179
- *w = gsl_integration_workspace_alloc(*limit);
180
- flag = 1;
181
- break;
182
- case 1:
183
- switch (TYPE(argv[argstart])) {
184
- case T_FIXNUM:
185
- case T_BIGNUM:
186
- CHECK_FIXNUM(argv[argstart]);
187
- *limit = FIX2INT(argv[argstart]);
188
- *w = gsl_integration_workspace_alloc(*limit);
189
- flag = 1;
190
- break;
191
- default:
192
- CHECK_WORKSPACE(argv[argc-1]);
193
- Data_Get_Struct(argv[argc-1], gsl_integration_workspace, *w);
194
- *limit = (*w)->limit;
195
- flag = 0;
196
- break;
197
- }
198
- break;
199
- default:
200
- rb_raise(rb_eArgError, "wrong number of arguments");
201
- break;
202
- }
203
- if (*w == NULL) rb_raise(rb_eRuntimeError, "something wrong with workspace");
204
- return flag;
205
- }
206
-
207
- static int get_epsabs_epsrel_limit_workspace(int argc, VALUE *argv, int argstart,
208
- double *epsabs, double *epsrel,
209
- size_t *limit,
210
- gsl_integration_workspace **w)
211
- {
212
- int flag = 0, itmp;
213
- itmp = argstart;
214
- *epsabs = EPSABS_DEFAULT;
215
- *epsrel = EPSREL_DEFAULT;
216
- *limit = LIMIT_DEFAULT;
217
- switch (argc-itmp) {
218
- case 0:
219
- *w = gsl_integration_workspace_alloc(*limit);
220
- flag = 1;
221
- break;
222
- case 1:
223
- if (TYPE(argv[itmp]) == T_ARRAY) {
224
- get_epsabs_epsrel(argc, argv, itmp, epsabs, epsrel);
225
- *w = gsl_integration_workspace_alloc(*limit);
226
- flag = 1;
227
- } else {
228
- flag = get_limit_workspace(argc, argv, itmp, limit, w);
229
- }
230
- break;
231
- case 2:
232
- case 3:
233
- switch (TYPE(argv[itmp])) {
234
- case T_ARRAY:
235
- itmp = get_epsabs_epsrel(argc, argv, itmp, epsabs, epsrel);
236
- flag = get_limit_workspace(argc, argv, itmp, limit, w);
237
- break;
238
- case T_FLOAT:
239
- get_epsabs_epsrel(argc, argv, itmp, epsabs, epsrel);
240
- *w = gsl_integration_workspace_alloc(*limit);
241
- flag = 1;
242
- break;
243
- default:
244
- flag = get_limit_workspace(argc, argv, itmp, limit, w);
245
- break;
246
- }
247
- break;
248
- case 4:
249
- itmp = get_epsabs_epsrel(argc, argv, itmp, epsabs, epsrel);
250
- flag = get_limit_workspace(argc, argv, itmp, limit, w);
251
- break;
252
- default:
253
- rb_raise(rb_eArgError, "wrong number of arguments");
254
- break;
255
- }
256
- if (*w == NULL) rb_raise(rb_eRuntimeError, "something wrong with workspace");
257
- return flag;
258
- }
259
-
260
- static VALUE rb_gsl_integration_qng(int argc, VALUE *argv, VALUE obj)
261
- {
262
- double a, b, epsabs = EPSABS_DEFAULT, epsrel = EPSREL_DEFAULT;
263
- double result, abserr;
264
- size_t neval;
265
- gsl_function *F = NULL;
266
- int status;
267
- // local variable 'itmp' declared and set, but never used
268
- //int itmp;
269
-
270
- if (argc < 1) rb_raise(rb_eArgError,
271
- "wrong number of arguments (%d for >= 1)", argc);
272
- switch (TYPE(obj)) {
273
- case T_MODULE: case T_CLASS: case T_OBJECT:
274
- CHECK_FUNCTION(argv[0]);
275
- Data_Get_Struct(argv[0], gsl_function, F);
276
- /*itmp =*/ get_a_b_epsabs_epsrel(argc, argv, 1, &a, &b, &epsabs, &epsrel);
277
- break;
278
- default:
279
- /*itmp =*/ get_a_b_epsabs_epsrel(argc, argv, 0, &a, &b, &epsabs, &epsrel);
280
- Data_Get_Struct(obj, gsl_function, F);
281
- break;
282
- }
283
- status = gsl_integration_qng(F, a, b, epsabs, epsrel,
284
- &result, &abserr, &neval);
285
-
286
- return rb_ary_new3(4, rb_float_new(result), rb_float_new(abserr),
287
- INT2FIX(neval), INT2FIX(status));
288
- }
289
-
290
- static VALUE rb_gsl_integration_qag(int argc, VALUE *argv, VALUE obj)
291
- {
292
- double a, b, epsabs = EPSABS_DEFAULT, epsrel = EPSREL_DEFAULT;
293
- double result, abserr;
294
- size_t limit = LIMIT_DEFAULT;
295
- gsl_function *F = NULL;
296
- gsl_integration_workspace *w = NULL;
297
- int key = KEY_DEFAULT, status, intervals, itmp, flag = 0;
298
- if (argc < 1) rb_raise(rb_eArgError,
299
- "wrong number of arguments (%d for >= 1)", argc);
300
- switch (TYPE(obj)) {
301
- case T_MODULE: case T_CLASS: case T_OBJECT:
302
- CHECK_FUNCTION(argv[0]);
303
- Data_Get_Struct(argv[0], gsl_function, F);
304
- if (argc == 3) {
305
- CHECK_FIXNUM(argv[2]);
306
- get_a_b(argc, argv, 1, &a, &b);
307
- key = FIX2INT(argv[2]);
308
- w = gsl_integration_workspace_alloc(limit);
309
- flag = 1;
310
- } else if (argc == 4) {
311
- CHECK_FIXNUM(argv[3]);
312
- get_a_b(argc, argv, 1, &a, &b);
313
- key = FIX2INT(argv[3]);
314
- w = gsl_integration_workspace_alloc(limit);
315
- flag = 1;
316
- } else {
317
- itmp = get_a_b_epsabs_epsrel(argc, argv, 1, &a, &b, &epsabs, &epsrel);
318
- flag = get_limit_key_workspace(argc, argv, itmp, &limit, &key, &w);
319
- }
320
- break;
321
- default:
322
- if (argc == 2) {
323
- if (FIXNUM_P(argv[1])) {
324
- key = FIX2INT(argv[1]);
325
- w = gsl_integration_workspace_alloc(limit);
326
- flag = 1;
327
- } else if (rb_obj_is_kind_of(argv[1], cgsl_integration_workspace)) {
328
- Data_Get_Struct(argv[1], gsl_integration_workspace, w);
329
- flag = 0;
330
- } else {
331
- rb_raise(rb_eTypeError, "Key or Workspace expected");
332
- }
333
- itmp = get_a_b(argc, argv, 0, &a, &b);
334
- } else if (argc == 3) {
335
- if (FIXNUM_P(argv[2])) {
336
- key = FIX2INT(argv[2]);
337
- w = gsl_integration_workspace_alloc(limit);
338
- flag = 1;
339
- } else if (rb_obj_is_kind_of(argv[2], cgsl_integration_workspace)) {
340
- Data_Get_Struct(argv[2], gsl_integration_workspace, w);
341
- flag = 0;
342
- } else {
343
- rb_raise(rb_eTypeError, "Key or Workspace expected");
344
- }
345
- itmp = get_a_b(argc, argv, 0, &a, &b);
346
- } else {
347
- itmp = get_a_b_epsabs_epsrel(argc, argv, 0, &a, &b, &epsabs, &epsrel);
348
- flag = get_limit_key_workspace(argc, argv, itmp, &limit, &key, &w);
349
- }
350
- Data_Get_Struct(obj, gsl_function, F);
351
- break;
352
- }
353
- status = gsl_integration_qag(F, a, b, epsabs, epsrel, limit, key, w,
354
- &result, &abserr);
355
- intervals = w->size;
356
- if (flag == 1) gsl_integration_workspace_free(w);
357
- return rb_ary_new3(4, rb_float_new(result), rb_float_new(abserr),
358
- INT2FIX(intervals), INT2FIX(status));
359
- }
360
-
361
- static VALUE rb_gsl_integration_qags(int argc, VALUE *argv, VALUE obj)
362
- {
363
- double a, b, epsabs = EPSABS_DEFAULT, epsrel = EPSREL_DEFAULT;
364
- double result, abserr;
365
- size_t limit = LIMIT_DEFAULT;
366
- gsl_function *F = NULL;
367
- gsl_integration_workspace *w = NULL;
368
- int status, intervals, flag = 0, itmp;
369
- switch (TYPE(obj)) {
370
- case T_MODULE: case T_CLASS: case T_OBJECT:
371
- CHECK_FUNCTION(argv[0]);
372
- Data_Get_Struct(argv[0], gsl_function, F);
373
- itmp = get_a_b(argc, argv, 1, &a, &b);
374
- break;
375
- default:
376
- Data_Get_Struct(obj, gsl_function, F);
377
- itmp = get_a_b(argc, argv, 0, &a, &b);
378
- break;
379
- }
380
- flag = get_epsabs_epsrel_limit_workspace(argc, argv, itmp, &epsabs, &epsrel,
381
- &limit, &w);
382
-
383
- status = gsl_integration_qags(F, a, b, epsabs, epsrel, limit, w,
384
- &result, &abserr);
385
- intervals = w->size;
386
- if (flag == 1) gsl_integration_workspace_free(w);
387
- return rb_ary_new3(4, rb_float_new(result), rb_float_new(abserr),
388
- INT2FIX(intervals), INT2FIX(status));
389
- }
390
-
391
- static VALUE rb_gsl_integration_qagp(int argc, VALUE *argv, VALUE obj)
392
- {
393
- double epsabs, epsrel;
394
- double result, abserr;
395
- size_t limit;
396
- gsl_function *F = NULL;
397
- gsl_vector *v = NULL;
398
- gsl_integration_workspace *w = NULL;
399
- int status, intervals, flag = 0, flag2 = 0, itmp;
400
- switch (TYPE(obj)) {
401
- case T_MODULE: case T_CLASS: case T_OBJECT:
402
- CHECK_FUNCTION(argv[0]);
403
- Data_Get_Struct(argv[0], gsl_function, F);
404
- itmp = 1;
405
- break;
406
- default:
407
- Data_Get_Struct(obj, gsl_function, F);
408
- itmp = 0;
409
- break;
410
- }
411
- if (TYPE(argv[itmp]) == T_ARRAY) {
412
- v = make_cvector_from_rarray(argv[itmp]);
413
- flag2 = 1;
414
- } else {
415
- Data_Get_Vector(argv[itmp], v);
416
- flag2 = 0;
417
- }
418
- itmp += 1;
419
- flag = get_epsabs_epsrel_limit_workspace(argc, argv, itmp, &epsabs, &epsrel,
420
- &limit, &w);
421
-
422
- status = gsl_integration_qagp(F, v->data, v->size, epsabs, epsrel, limit, w,
423
- &result, &abserr);
424
- intervals = w->size;
425
- if (flag == 1) gsl_integration_workspace_free(w);
426
- if (flag2 == 1) gsl_vector_free(v);
427
- return rb_ary_new3(4, rb_float_new(result), rb_float_new(abserr),
428
- INT2FIX(intervals), INT2FIX(status));
429
- }
430
-
431
- /* (-infty --- +infty) */
432
- static VALUE rb_gsl_integration_qagi(int argc, VALUE *argv, VALUE obj)
433
- {
434
- double epsabs, epsrel;
435
- double result, abserr;
436
- size_t limit;
437
- gsl_function *F = NULL;
438
- gsl_integration_workspace *w = NULL;
439
- int status, intervals, flag = 0, itmp;
440
- switch (TYPE(obj)) {
441
- case T_MODULE: case T_CLASS: case T_OBJECT:
442
- CHECK_FUNCTION(argv[0]);
443
- Data_Get_Struct(argv[0], gsl_function, F);
444
- itmp = 1;
445
- break;
446
- default:
447
- Data_Get_Struct(obj, gsl_function, F);
448
- itmp = 0;
449
- break;
450
- }
451
- flag = get_epsabs_epsrel_limit_workspace(argc, argv, itmp, &epsabs, &epsrel,
452
- &limit, &w);
453
- status = gsl_integration_qagi(F, epsabs, epsrel, limit, w,
454
- &result, &abserr);
455
- intervals = w->size;
456
- if (flag == 1) gsl_integration_workspace_free(w);
457
- return rb_ary_new3(4, rb_float_new(result), rb_float_new(abserr),
458
- INT2FIX(intervals), INT2FIX(status));
459
- }
460
-
461
- /* (a --- +infty) */
462
- static VALUE rb_gsl_integration_qagiu(int argc, VALUE *argv, VALUE obj)
463
- {
464
- double a, epsabs, epsrel;
465
- double result, abserr;
466
- size_t limit;
467
- gsl_function *F = NULL;
468
- gsl_integration_workspace *w = NULL;
469
- int status, intervals, flag = 0, itmp;
470
- switch (TYPE(obj)) {
471
- case T_MODULE: case T_CLASS: case T_OBJECT:
472
- CHECK_FUNCTION(argv[0]);
473
- Data_Get_Struct(argv[0], gsl_function, F);
474
- itmp = 1;
475
- break;
476
- default:
477
- Data_Get_Struct(obj, gsl_function, F);
478
- itmp = 0;
479
- break;
480
- }
481
- Need_Float(argv[itmp]);
482
- a = NUM2DBL(argv[itmp]);
483
- itmp += 1;
484
- flag = get_epsabs_epsrel_limit_workspace(argc, argv, itmp, &epsabs, &epsrel,
485
- &limit, &w);
486
- status = gsl_integration_qagiu(F, a, epsabs, epsrel, limit, w,
487
- &result, &abserr);
488
- intervals = w->size;
489
- if (flag == 1) gsl_integration_workspace_free(w);
490
- return rb_ary_new3(4, rb_float_new(result), rb_float_new(abserr),
491
- INT2FIX(intervals), INT2FIX(status));
492
- }
493
-
494
- /* (-infty --- b) */
495
- static VALUE rb_gsl_integration_qagil(int argc, VALUE *argv, VALUE obj)
496
- {
497
- double b, epsabs, epsrel;
498
- double result, abserr;
499
- size_t limit;
500
- gsl_function *F = NULL;
501
- gsl_integration_workspace *w = NULL;
502
- int status, intervals, flag = 0, itmp;
503
- switch (TYPE(obj)) {
504
- case T_MODULE: case T_CLASS: case T_OBJECT:
505
- CHECK_FUNCTION(argv[0]);
506
- Data_Get_Struct(argv[0], gsl_function, F);
507
- itmp = 1;
508
- break;
509
- default:
510
- Data_Get_Struct(obj, gsl_function, F);
511
- itmp = 0;
512
- break;
513
- }
514
- Need_Float(argv[itmp]);
515
- b = NUM2DBL(argv[itmp]);
516
- flag = get_epsabs_epsrel_limit_workspace(argc, argv, itmp+1, &epsabs, &epsrel,
517
- &limit, &w);
518
- Data_Get_Struct(obj, gsl_function, F);
519
-
520
- status = gsl_integration_qagil(F, b, epsabs, epsrel, limit, w,
521
- &result, &abserr);
522
- intervals = w->size;
523
- if (flag == 1) gsl_integration_workspace_free(w);
524
- return rb_ary_new3(4, rb_float_new(result), rb_float_new(abserr),
525
- INT2FIX(intervals), INT2FIX(status));
526
- }
527
-
528
- static VALUE rb_gsl_integration_qawc(int argc, VALUE *argv, VALUE obj)
529
- {
530
- double a, b, c, epsabs, epsrel;
531
- double result, abserr;
532
- size_t limit;
533
- gsl_function *F = NULL;
534
- gsl_integration_workspace *w = NULL;
535
- int status, intervals, itmp, flag = 0;
536
- switch (TYPE(obj)) {
537
- case T_MODULE: case T_CLASS: case T_OBJECT:
538
- CHECK_FUNCTION(argv[0]);
539
- Data_Get_Struct(argv[0], gsl_function, F);
540
- itmp = 1;
541
- break;
542
- default:
543
- Data_Get_Struct(obj, gsl_function, F);
544
- itmp = 0;
545
- break;
546
- }
547
- itmp = get_a_b(argc, argv, itmp, &a, &b);
548
- if (argc-itmp <= 0) rb_raise(rb_eArgError, "The pole is not given");
549
- Need_Float(argv[itmp]);
550
- c = NUM2DBL(argv[itmp]);
551
- flag = get_epsabs_epsrel_limit_workspace(argc, argv, itmp+1, &epsabs, &epsrel,
552
- &limit, &w);
553
- status = gsl_integration_qawc(F, a, b, c, epsabs, epsrel, limit, w, &result, &abserr);
554
- intervals = w->size;
555
- if (flag == 1) gsl_integration_workspace_free(w);
556
- return rb_ary_new3(4, rb_float_new(result), rb_float_new(abserr), INT2FIX(intervals),
557
- INT2FIX(status));
558
- }
559
-
560
- VALUE rb_gsl_integration_qaws_table_alloc(int argc, VALUE *argv, VALUE klass)
561
- {
562
- gsl_integration_qaws_table *t = NULL;
563
- VALUE alpha, beta, mu, nu;
564
-
565
- if (TYPE(argv[0]) == T_ARRAY) {
566
- alpha = rb_ary_entry(argv[0], 0);
567
- beta = rb_ary_entry(argv[0], 1);
568
- mu = rb_ary_entry(argv[0], 2);
569
- nu = rb_ary_entry(argv[0], 3);
570
- } else {
571
- Need_Float(argv[0]); Need_Float(argv[1]);
572
- CHECK_FIXNUM(argv[2]); CHECK_FIXNUM(argv[3]);
573
- alpha = argv[0];
574
- beta = argv[1];
575
- mu = argv[2];
576
- nu = argv[3];
577
- }
578
- t = gsl_integration_qaws_table_alloc(NUM2DBL(alpha), NUM2DBL(beta),
579
- FIX2INT(mu), FIX2INT(nu));
580
- return Data_Wrap_Struct(klass, 0, gsl_integration_qaws_table_free, t);
581
- }
582
-
583
- static VALUE rb_gsl_integration_qaws_table_set(int argc, VALUE *argv, VALUE obj)
584
- {
585
- gsl_integration_qaws_table *t = NULL;
586
- double alpha, beta;
587
- int mu, nu, type;
588
- if (argc != 1 && argc != 4)
589
- rb_raise(rb_eArgError, "wrong number of argument (%d for 1 or 3)", argc);
590
- type = TYPE(argv[0]);
591
- Data_Get_Struct(obj, gsl_integration_qaws_table, t);
592
-
593
- if (type == T_FIXNUM || type == T_BIGNUM || type == T_FLOAT) {
594
- alpha = NUM2DBL(argv[0]);
595
- beta = NUM2DBL(argv[1]);
596
- mu = FIX2INT(argv[2]);
597
- nu = FIX2INT(argv[3]);
598
- } else if (type == T_ARRAY) {
599
- alpha = NUM2DBL(rb_ary_entry(argv[0], 0));
600
- beta = NUM2DBL(rb_ary_entry(argv[0], 1));
601
- mu = FIX2INT(rb_ary_entry(argv[0], 2));
602
- nu = FIX2INT(rb_ary_entry(argv[0], 3));
603
- } else {
604
- rb_raise(rb_eTypeError, "wrong argument type %s", rb_class2name(CLASS_OF(argv[0])));
605
- }
606
- gsl_integration_qaws_table_set(t, alpha, beta, mu, nu);
607
- return obj;
608
- }
609
-
610
- static VALUE rb_gsl_integration_qaws_table_to_a(VALUE obj)
611
- {
612
- gsl_integration_qaws_table *t = NULL;
613
- VALUE ary;
614
- Data_Get_Struct(obj, gsl_integration_qaws_table, t);
615
- ary = rb_ary_new2(4);
616
- rb_ary_store(ary, 0, rb_float_new(t->alpha));
617
- rb_ary_store(ary, 1, rb_float_new(t->beta));
618
- rb_ary_store(ary, 2, INT2FIX(t->mu));
619
- rb_ary_store(ary, 3, INT2FIX(t->nu));
620
- return ary;
621
- }
622
-
623
- static gsl_integration_qaws_table* make_qaws_table(VALUE ary);
624
- static VALUE rb_gsl_ary_to_integration_qaws_table(VALUE ary)
625
- {
626
- gsl_integration_qaws_table *t = NULL;
627
- t = make_qaws_table(ary);
628
- return Data_Wrap_Struct(cgsl_integration_qaws_table,
629
- 0, gsl_integration_qaws_table_free, t);
630
- }
631
-
632
- static gsl_integration_qaws_table* make_qaws_table(VALUE ary)
633
- {
634
- double alpha, beta;
635
- int mu, nu;
636
- alpha = NUM2DBL(rb_ary_entry(ary, 0));
637
- beta = NUM2DBL(rb_ary_entry(ary, 1));
638
- mu = FIX2INT(rb_ary_entry(ary, 2));
639
- nu = FIX2INT(rb_ary_entry(ary, 3));
640
- return gsl_integration_qaws_table_alloc(alpha, beta, mu, nu);
641
- }
642
-
643
- static VALUE rb_gsl_integration_qaws(int argc, VALUE *argv, VALUE obj)
644
- {
645
- double a, b, epsabs, epsrel;
646
- double result, abserr;
647
- size_t limit;
648
- gsl_function *F = NULL;
649
- gsl_integration_workspace *w = NULL;
650
- gsl_integration_qaws_table *t = NULL;
651
- int status, intervals, itmp, flag = 0, flagt = 0;
652
- switch (TYPE(obj)) {
653
- case T_MODULE: case T_CLASS: case T_OBJECT:
654
- if (argc < 2) rb_raise(rb_eArgError, "too few arguments");
655
- CHECK_FUNCTION(argv[0]);
656
- Data_Get_Struct(argv[0], gsl_function, F);
657
- itmp = 1;
658
- break;
659
- default:
660
- if (argc < 1) rb_raise(rb_eArgError, "too few arguments");
661
- Data_Get_Struct(obj, gsl_function, F);
662
- itmp = 0;
663
- break;
664
- }
665
- itmp = get_a_b(argc, argv, itmp, &a, &b);
666
-
667
- if (TYPE(argv[itmp]) == T_ARRAY) {
668
- flagt = 1;
669
- t = make_qaws_table(argv[itmp]);
670
- } else {
671
- flagt = 0;
672
- if (!rb_obj_is_kind_of(argv[itmp], cgsl_integration_qaws_table))
673
- rb_raise(rb_eTypeError, "Integration::QAWS_Table expected");
674
- Data_Get_Struct(argv[itmp], gsl_integration_qaws_table, t);
675
- }
676
- flag = get_epsabs_epsrel_limit_workspace(argc, argv, itmp+1, &epsabs, &epsrel,
677
- &limit, &w);
678
- status = gsl_integration_qaws(F, a, b, t, epsabs, epsrel, limit, w, &result, &abserr);
679
- intervals = w->size;
680
- if (flag == 1) gsl_integration_workspace_free(w);
681
- if (flagt == 1) gsl_integration_qaws_table_free(t);
682
- return rb_ary_new3(4, rb_float_new(result), rb_float_new(abserr), INT2FIX(intervals),
683
- INT2FIX(status));
684
- }
685
-
686
- static gsl_integration_qawo_table* make_qawo_table(VALUE ary);
687
-
688
- static VALUE rb_gsl_integration_qawo_table_alloc(int argc, VALUE *argv,
689
- VALUE klass)
690
- {
691
- gsl_integration_qawo_table *t = NULL;
692
- double omega, L;
693
- enum gsl_integration_qawo_enum sine;
694
- size_t n;
695
- if (argc != 1 && argc != 4)
696
- rb_raise(rb_eArgError, "wrong nubmer of arguments (%d for 1 or 4)", argc);
697
- if (TYPE(argv[0]) == T_ARRAY) {
698
- omega = NUM2DBL(rb_ary_entry(argv[0], 0));
699
- L = NUM2DBL(rb_ary_entry(argv[0], 1));
700
- sine = FIX2INT(rb_ary_entry(argv[0], 2));
701
- n = FIX2INT(rb_ary_entry(argv[0], 3));
702
- } else {
703
- omega = NUM2DBL(argv[0]);
704
- L = NUM2DBL(argv[1]);
705
- sine = FIX2INT(argv[2]);
706
- n = FIX2INT(argv[3]);
707
- }
708
- t = gsl_integration_qawo_table_alloc(omega, L, sine, n);
709
-
710
- return Data_Wrap_Struct(klass, 0, gsl_integration_qawo_table_free, t);
711
- }
712
-
713
- static VALUE rb_gsl_integration_qawo_table_to_a(VALUE obj)
714
- {
715
- gsl_integration_qawo_table *t = NULL;
716
- VALUE ary;
717
- Data_Get_Struct(obj, gsl_integration_qawo_table, t);
718
- ary = rb_ary_new2(4);
719
- rb_ary_store(ary, 0, rb_float_new(t->omega));
720
- rb_ary_store(ary, 1, rb_float_new(t->L));
721
- rb_ary_store(ary, 2, INT2FIX(t->sine));
722
- rb_ary_store(ary, 3, INT2FIX(t->n));
723
- return ary;
724
- }
725
-
726
- static VALUE rb_gsl_ary_to_integration_qawo_table(VALUE ary)
727
- {
728
- gsl_integration_qawo_table *t = NULL;
729
- t = make_qawo_table(ary);
730
- return Data_Wrap_Struct(cgsl_integration_qawo_table,
731
- 0, gsl_integration_qawo_table_free, t);
732
- }
733
-
734
- static gsl_integration_qawo_table* make_qawo_table(VALUE ary)
735
- {
736
- double omega, L;
737
- enum gsl_integration_qawo_enum sine;
738
- size_t n;
739
- omega = NUM2DBL(rb_ary_entry(ary, 0));
740
- L = NUM2DBL(rb_ary_entry(ary, 1));
741
- sine = FIX2INT(rb_ary_entry(ary, 2));
742
- n = FIX2INT(rb_ary_entry(ary, 3));
743
- return gsl_integration_qawo_table_alloc(omega, L, sine, n);
744
- }
745
-
746
- static VALUE rb_gsl_integration_qawo_table_set(int argc, VALUE *argv, VALUE obj)
747
- {
748
- gsl_integration_qawo_table *t = NULL;
749
- double omega, L;
750
- enum gsl_integration_qawo_enum sine;
751
- int type;
752
- if (argc != 1 && argc != 3)
753
- rb_raise(rb_eArgError, "wrong number of argument (%d for 1 or 3)", argc);
754
- type = TYPE(argv[0]);
755
- Data_Get_Struct(obj, gsl_integration_qawo_table, t);
756
- if (type == T_FIXNUM || type == T_BIGNUM || type == T_FLOAT) {
757
- omega = NUM2DBL(argv[0]);
758
- L = NUM2DBL(argv[1]);
759
- sine = FIX2INT(argv[2]);
760
- } else if (type == T_ARRAY) {
761
- omega = NUM2DBL(rb_ary_entry(argv[0], 0));
762
- L = NUM2DBL(rb_ary_entry(argv[0], 1));
763
- sine = FIX2INT(rb_ary_entry(argv[0], 2));
764
- } else {
765
- rb_raise(rb_eTypeError, "wrong argument type %s", rb_class2name(CLASS_OF(argv[0])));
766
- }
767
- gsl_integration_qawo_table_set(t, omega, L, sine);
768
- return obj;
769
- }
770
-
771
- static VALUE rb_gsl_integration_qawo_table_set_length(VALUE obj, VALUE L)
772
- {
773
- gsl_integration_qawo_table *t = NULL;
774
- Need_Float(L);
775
- Data_Get_Struct(obj, gsl_integration_qawo_table, t);
776
- gsl_integration_qawo_table_set_length(t, NUM2DBL(L));
777
- return obj;
778
- }
779
-
780
- static int get_qawo_table(VALUE tt, gsl_integration_qawo_table **t);
781
-
782
- static VALUE rb_gsl_integration_qawo(int argc, VALUE *argv, VALUE obj)
783
- {
784
- double a, epsabs, epsrel;
785
- double result, abserr;
786
- size_t limit;
787
- gsl_function *F = NULL;
788
- gsl_integration_workspace *w = NULL;
789
- gsl_integration_qawo_table *t = NULL;
790
- int status, intervals, itmp, flag = 0, flagt = 0;
791
- switch (TYPE(obj)) {
792
- case T_MODULE: case T_CLASS: case T_OBJECT:
793
- if (argc < 2) rb_raise(rb_eArgError, "too few arguments");
794
- CHECK_FUNCTION(argv[0]);
795
- Data_Get_Struct(argv[0], gsl_function, F);
796
- itmp = 1;
797
- break;
798
- default:
799
- if (argc < 1) rb_raise(rb_eArgError, "too few arguments");
800
- Data_Get_Struct(obj, gsl_function, F);
801
- itmp = 0;
802
- break;
803
- }
804
- Need_Float(argv[itmp]);
805
- a = NUM2DBL(argv[itmp]);
806
- flagt = get_qawo_table(argv[argc-1], &t);
807
- flag = get_epsabs_epsrel_limit_workspace(argc-1, argv, itmp+1, &epsabs, &epsrel,
808
- &limit, &w);
809
- status = gsl_integration_qawo(F, a, epsabs, epsrel, limit, w, t, &result, &abserr);
810
- intervals = w->size;
811
- if (flag == 1) gsl_integration_workspace_free(w);
812
- if (flagt == 1) gsl_integration_qawo_table_free(t);
813
- return rb_ary_new3(4, rb_float_new(result), rb_float_new(abserr), INT2FIX(intervals),
814
- INT2FIX(status));
815
- }
816
-
817
- static int get_qawo_table(VALUE tt,
818
- gsl_integration_qawo_table **t)
819
- {
820
- int flagt;
821
-
822
- if (TYPE(tt) == T_ARRAY) {
823
- flagt = 1;
824
- *t = make_qawo_table(tt);
825
- } else {
826
- flagt = 0;
827
- if (!rb_obj_is_kind_of(tt, cgsl_integration_qawo_table))
828
- rb_raise(rb_eTypeError, "Integration::QAWO_Table expected");
829
- Data_Get_Struct(tt, gsl_integration_qawo_table, *t);
830
- }
831
- return flagt;
832
- }
833
-
834
- static VALUE rb_gsl_integration_qawf(int argc, VALUE *argv, VALUE obj)
835
- {
836
- double a, epsabs = EPSREL_DEFAULT;
837
- double result, abserr;
838
- size_t limit = LIMIT_DEFAULT;
839
- gsl_function *F = NULL;
840
- gsl_integration_workspace *w = NULL, *cw = NULL;
841
- gsl_integration_qawo_table *t = NULL;
842
- int status, intervals, flag = 0, flagt = 0, itmp;
843
- VALUE *vtmp;
844
- switch (TYPE(obj)) {
845
- case T_MODULE: case T_CLASS: case T_OBJECT:
846
- if (argc < 2) rb_raise(rb_eArgError, "too few arguments");
847
- CHECK_FUNCTION(argv[0]);
848
- Data_Get_Struct(argv[0], gsl_function, F);
849
- itmp = 1;
850
- break;
851
- default:
852
- if (argc < 1) rb_raise(rb_eArgError, "too few arguments");
853
- Data_Get_Struct(obj, gsl_function, F);
854
- itmp = 0;
855
- break;
856
- }
857
- Need_Float(argv[itmp]);
858
- a = NUM2DBL(argv[itmp]);
859
- itmp += 1;
860
- if (TYPE(argv[itmp]) == T_FLOAT) {
861
- epsabs = NUM2DBL(argv[itmp]);
862
- itmp += 1;
863
- }
864
- vtmp = argv + itmp;
865
- flagt = get_qawo_table(argv[argc-1], &t);
866
-
867
- switch (argc - 1 - itmp) {
868
- case 0:
869
- w = gsl_integration_workspace_alloc(limit);
870
- cw = gsl_integration_workspace_alloc(limit);
871
- flag = 1;
872
- break;
873
- case 1:
874
- CHECK_FIXNUM(vtmp[0]);
875
- limit = FIX2INT(vtmp[0]);
876
- w = gsl_integration_workspace_alloc(limit);
877
- cw = gsl_integration_workspace_alloc(limit);
878
- flag = 1;
879
- break;
880
- case 2:
881
- CHECK_WORKSPACE(vtmp[0]); CHECK_WORKSPACE(vtmp[1]);
882
- Data_Get_Struct(vtmp[0], gsl_integration_workspace, w);
883
- Data_Get_Struct(vtmp[1], gsl_integration_workspace, cw);
884
- flag = 0;
885
- break;
886
- case 3:
887
- CHECK_FIXNUM(vtmp[0]);
888
- CHECK_WORKSPACE(vtmp[1]); CHECK_WORKSPACE(vtmp[2]);
889
- limit = FIX2INT(vtmp[0]);
890
- Data_Get_Struct(vtmp[1], gsl_integration_workspace, w);
891
- Data_Get_Struct(vtmp[2], gsl_integration_workspace, cw);
892
- flag = 0;
893
- break;
894
- default:
895
- rb_raise(rb_eArgError, "wrong number of arguments");
896
- break;
897
- }
898
-
899
- status = gsl_integration_qawf(F, a, epsabs, limit, w, cw, t, &result, &abserr);
900
- intervals = w->size;
901
- if (flag == 1) {
902
- gsl_integration_workspace_free(w);
903
- gsl_integration_workspace_free(cw);
904
- }
905
- if (flagt == 1) gsl_integration_qawo_table_free(t);
906
- return rb_ary_new3(4, rb_float_new(result), rb_float_new(abserr),
907
- INT2FIX(intervals), INT2FIX(status));
908
- }
909
-
910
-
911
- static void rb_gsl_integration_define_symbols(VALUE module)
912
- {
913
- rb_define_const(module, "GAUSS15", INT2FIX(GSL_INTEG_GAUSS15));
914
- rb_define_const(module, "GAUSS21", INT2FIX(GSL_INTEG_GAUSS21));
915
- rb_define_const(module, "GAUSS31", INT2FIX(GSL_INTEG_GAUSS31));
916
- rb_define_const(module, "GAUSS41", INT2FIX(GSL_INTEG_GAUSS41));
917
- rb_define_const(module, "GAUSS51", INT2FIX(GSL_INTEG_GAUSS51));
918
- rb_define_const(module, "GAUSS61", INT2FIX(GSL_INTEG_GAUSS61));
919
- rb_define_const(module, "COSINE", INT2FIX(GSL_INTEG_COSINE));
920
- rb_define_const(module, "SINE", INT2FIX(GSL_INTEG_SINE));
921
- }
922
-
923
- static VALUE rb_gsl_integration_workspace_alloc(int argc, VALUE *argv,
924
- VALUE klass)
925
- {
926
- size_t limit;
927
- if (argc == 1) limit = FIX2INT(argv[0]);
928
- else limit = LIMIT_DEFAULT;
929
- return Data_Wrap_Struct(klass, 0,
930
- gsl_integration_workspace_free,
931
- gsl_integration_workspace_alloc(limit));
932
- }
933
-
934
- static VALUE rb_gsl_integration_workspace_limit(VALUE obj)
935
- {
936
- gsl_integration_workspace *w = NULL;
937
- Data_Get_Struct(obj, gsl_integration_workspace, w);
938
- return INT2FIX(w->limit);
939
- }
940
-
941
- static VALUE rb_gsl_integration_workspace_size(VALUE obj)
942
- {
943
- gsl_integration_workspace *w = NULL;
944
- Data_Get_Struct(obj, gsl_integration_workspace, w);
945
- return INT2FIX(w->size);
946
- }
947
-
948
- static VALUE rb_gsl_integration_workspace_nrmax(VALUE obj)
949
- {
950
- gsl_integration_workspace *w = NULL;
951
- Data_Get_Struct(obj, gsl_integration_workspace, w);
952
- return INT2FIX(w->nrmax);
953
- }
954
-
955
- static VALUE rb_gsl_integration_workspace_i(VALUE obj)
956
- {
957
- gsl_integration_workspace *w = NULL;
958
- Data_Get_Struct(obj, gsl_integration_workspace, w);
959
- return INT2FIX(w->i);
960
- }
961
-
962
- static VALUE rb_gsl_integration_workspace_maximum_level(VALUE obj)
963
- {
964
- gsl_integration_workspace *w = NULL;
965
- Data_Get_Struct(obj, gsl_integration_workspace, w);
966
- return INT2FIX(w->maximum_level);
967
- }
968
-
969
- static VALUE rb_gsl_integration_workspace_to_a(VALUE obj)
970
- {
971
- gsl_integration_workspace *w = NULL;
972
- Data_Get_Struct(obj, gsl_integration_workspace, w);
973
- return rb_ary_new3(5, INT2FIX(w->limit), INT2FIX(w->size), INT2FIX(w->nrmax),
974
- INT2FIX(w->i), INT2FIX(w->maximum_level));
975
- }
976
-
977
- static VALUE rb_gsl_integration_workspace_alist(VALUE obj)
978
- {
979
- gsl_integration_workspace *w = NULL;
980
- gsl_vector_view *v = NULL;
981
- Data_Get_Struct(obj, gsl_integration_workspace, w);
982
- v = rb_gsl_make_vector_view(w->alist, w->limit, 1);
983
- return Data_Wrap_Struct(cgsl_vector_view_ro, 0, free, v);
984
- }
985
-
986
- static VALUE rb_gsl_integration_workspace_blist(VALUE obj)
987
- {
988
- gsl_integration_workspace *w = NULL;
989
- gsl_vector_view *v = NULL;
990
-
991
- Data_Get_Struct(obj, gsl_integration_workspace, w);
992
- v = rb_gsl_make_vector_view(w->blist, w->limit, 1);
993
- return Data_Wrap_Struct(cgsl_vector_view_ro, 0, free, v);
994
- }
995
-
996
- static VALUE rb_gsl_integration_workspace_rlist(VALUE obj)
997
- {
998
- gsl_integration_workspace *w = NULL;
999
- gsl_vector_view *v = NULL;
1000
- Data_Get_Struct(obj, gsl_integration_workspace, w);
1001
- v = rb_gsl_make_vector_view(w->rlist, w->limit, 1);
1002
- return Data_Wrap_Struct(cgsl_vector_view_ro, 0, free, v);
1003
- }
1004
-
1005
- static VALUE rb_gsl_integration_workspace_elist(VALUE obj)
1006
- {
1007
- gsl_integration_workspace *w = NULL;
1008
- gsl_vector_view *v = NULL;
1009
- Data_Get_Struct(obj, gsl_integration_workspace, w);
1010
- v = rb_gsl_make_vector_view(w->elist, w->limit, 1);
1011
- return Data_Wrap_Struct(cgsl_vector_view_ro, 0, free, v);
1012
- }
1013
-
1014
- static VALUE rb_gsl_integration_glfixed_table_alloc(VALUE klass, VALUE n)
1015
- {
1016
- gsl_integration_glfixed_table *t;
1017
- t = gsl_integration_glfixed_table_alloc(FIX2INT(n));
1018
- return Data_Wrap_Struct(cgsl_integration_glfixed_table, 0, gsl_integration_glfixed_table_free, t);
1019
- }
1020
-
1021
- static VALUE rb_gsl_integration_glfixed(VALUE obj, VALUE aa, VALUE bb, VALUE tt)
1022
- {
1023
- gsl_function *f;
1024
- double a, b;
1025
- gsl_integration_glfixed_table *t;
1026
- double res;
1027
- if (!rb_obj_is_kind_of(tt, cgsl_integration_glfixed_table)) {
1028
- rb_raise(rb_eTypeError, "Wrong arugment type (%s for GSL::Integration::Glfixed_table)",
1029
- rb_class2name(CLASS_OF(tt)));
1030
- }
1031
- Data_Get_Struct(tt, gsl_integration_glfixed_table, t);
1032
- a = NUM2DBL(aa);
1033
- b = NUM2DBL(bb);
1034
- Data_Get_Struct(obj, gsl_function, f);
1035
- res = gsl_integration_glfixed(f, a, b, t);
1036
- return rb_float_new(res);
1037
- }
1038
-
1039
- void Init_gsl_integration(VALUE module)
1040
- {
1041
- VALUE mgsl_integ;
1042
-
1043
- mgsl_integ = rb_define_module_under(module, "Integration");
1044
- rb_gsl_integration_define_symbols(mgsl_integ);
1045
-
1046
- rb_define_method(cgsl_function, "integration_qng", rb_gsl_integration_qng, -1);
1047
- rb_define_method(cgsl_function, "integration_qag", rb_gsl_integration_qag, -1);
1048
- rb_define_method(cgsl_function, "integration_qags", rb_gsl_integration_qags, -1);
1049
- rb_define_method(cgsl_function, "integration_qagp", rb_gsl_integration_qagp, -1);
1050
- rb_define_method(cgsl_function, "integration_qagi", rb_gsl_integration_qagi, -1);
1051
- rb_define_method(cgsl_function, "integration_qagiu", rb_gsl_integration_qagiu, -1);
1052
- rb_define_method(cgsl_function, "integration_qagil", rb_gsl_integration_qagil, -1);
1053
- rb_define_method(cgsl_function, "integration_qawc", rb_gsl_integration_qawc, -1);
1054
- rb_define_alias(cgsl_function, "qng", "integration_qng");
1055
- rb_define_alias(cgsl_function, "qag", "integration_qag");
1056
- rb_define_alias(cgsl_function, "qags", "integration_qags");
1057
- rb_define_alias(cgsl_function, "qagp", "integration_qagp");
1058
- rb_define_alias(cgsl_function, "qagi", "integration_qagi");
1059
- rb_define_alias(cgsl_function, "qagiu", "integration_qagiu");
1060
- rb_define_alias(cgsl_function, "qagil", "integration_qagil");
1061
- rb_define_alias(cgsl_function, "qawc", "integration_qawc");
1062
-
1063
- cgsl_integration_qaws_table = rb_define_class_under(mgsl_integ, "QAWS_Table",
1064
- cGSL_Object);
1065
- rb_define_singleton_method(cgsl_integration_qaws_table, "alloc",
1066
- rb_gsl_integration_qaws_table_alloc, -1);
1067
- /* rb_define_singleton_method(cgsl_integration_qaws_table, "new",
1068
- rb_gsl_integration_qaws_table_alloc, -1);*/
1069
- rb_define_method(cgsl_integration_qaws_table, "to_a",
1070
- rb_gsl_integration_qaws_table_to_a, 0);
1071
- rb_define_method(cgsl_integration_qaws_table, "set",
1072
- rb_gsl_integration_qaws_table_set, -1);
1073
- rb_define_method(rb_cArray, "to_gsl_integration_qaws_table",
1074
- rb_gsl_ary_to_integration_qaws_table, 0);
1075
- rb_define_alias(rb_cArray, "to_qaws_table", "to_gsl_integration_qaws_table");
1076
- rb_define_method(cgsl_function, "integration_qaws", rb_gsl_integration_qaws, -1);
1077
- rb_define_alias(cgsl_function, "qaws", "integration_qaws");
1078
-
1079
- cgsl_integration_qawo_table = rb_define_class_under(mgsl_integ, "QAWO_Table",
1080
- cGSL_Object);
1081
- rb_define_singleton_method(cgsl_integration_qawo_table, "alloc",
1082
- rb_gsl_integration_qawo_table_alloc, -1);
1083
- /* rb_define_singleton_method(cgsl_integration_qawo_table, "new",
1084
- rb_gsl_integration_qawo_table_alloc, -1);*/
1085
- rb_define_method(cgsl_integration_qawo_table, "to_a",
1086
- rb_gsl_integration_qawo_table_to_a, 0);
1087
- rb_define_method(rb_cArray, "to_gsl_integration_qawo_table",
1088
- rb_gsl_ary_to_integration_qawo_table, 0);
1089
- rb_define_method(cgsl_integration_qawo_table, "set",
1090
- rb_gsl_integration_qawo_table_set, -1);
1091
- rb_define_method(cgsl_integration_qawo_table, "set_length",
1092
- rb_gsl_integration_qawo_table_set_length, 1);
1093
- rb_define_method(cgsl_function, "integration_qawo", rb_gsl_integration_qawo, -1);
1094
- rb_define_method(cgsl_function, "integration_qawf", rb_gsl_integration_qawf, -1);
1095
- rb_define_alias(cgsl_function, "qawo", "integration_qawo");
1096
- rb_define_alias(cgsl_function, "qawf", "integration_qawf");
1097
-
1098
- cgsl_integration_workspace = rb_define_class_under(mgsl_integ,
1099
- "Workspace", cGSL_Object);
1100
-
1101
- /* rb_define_singleton_method(cgsl_integration_workspace, "new",
1102
- rb_gsl_integration_workspace_alloc, -1);*/
1103
- rb_define_singleton_method(cgsl_integration_workspace, "alloc",
1104
- rb_gsl_integration_workspace_alloc, -1);
1105
-
1106
- rb_define_method(cgsl_integration_workspace, "limit",
1107
- rb_gsl_integration_workspace_limit, 0);
1108
- rb_define_method(cgsl_integration_workspace, "size",
1109
- rb_gsl_integration_workspace_size, 0);
1110
- rb_define_method(cgsl_integration_workspace, "nrmax",
1111
- rb_gsl_integration_workspace_nrmax, 0);
1112
- rb_define_method(cgsl_integration_workspace, "i",
1113
- rb_gsl_integration_workspace_i, 0);
1114
- rb_define_method(cgsl_integration_workspace, "maximum_level",
1115
- rb_gsl_integration_workspace_maximum_level, 0);
1116
- rb_define_method(cgsl_integration_workspace, "to_a",
1117
- rb_gsl_integration_workspace_to_a, 0);
1118
- rb_define_method(cgsl_integration_workspace, "alist",
1119
- rb_gsl_integration_workspace_alist, 0);
1120
- rb_define_method(cgsl_integration_workspace, "blist",
1121
- rb_gsl_integration_workspace_blist, 0);
1122
- rb_define_method(cgsl_integration_workspace, "rlist",
1123
- rb_gsl_integration_workspace_rlist, 0);
1124
- rb_define_method(cgsl_integration_workspace, "elist",
1125
- rb_gsl_integration_workspace_elist, 0);
1126
-
1127
- /*****/
1128
- rb_define_module_function(mgsl_integ, "qng", rb_gsl_integration_qng, -1);
1129
- rb_define_module_function(mgsl_integ, "qag", rb_gsl_integration_qag, -1);
1130
- rb_define_module_function(mgsl_integ, "qags", rb_gsl_integration_qags, -1);
1131
- rb_define_module_function(mgsl_integ, "qagp", rb_gsl_integration_qagp, -1);
1132
- rb_define_module_function(mgsl_integ, "qagi", rb_gsl_integration_qagi, -1);
1133
- rb_define_module_function(mgsl_integ, "qagiu", rb_gsl_integration_qagiu, -1);
1134
- rb_define_module_function(mgsl_integ, "qagil", rb_gsl_integration_qagil, -1);
1135
- rb_define_module_function(mgsl_integ, "qawc", rb_gsl_integration_qawc, -1);
1136
- rb_define_module_function(mgsl_integ, "qaws", rb_gsl_integration_qaws, -1);
1137
- rb_define_module_function(mgsl_integ, "qawo", rb_gsl_integration_qawo, -1);
1138
- rb_define_module_function(mgsl_integ, "qawf", rb_gsl_integration_qawf, -1);
1139
-
1140
- cgsl_integration_glfixed_table = rb_define_class_under(mgsl_integ, "Glfixed_table", cGSL_Object);
1141
- rb_define_singleton_method(cgsl_integration_glfixed_table, "alloc",
1142
- rb_gsl_integration_glfixed_table_alloc, 1);
1143
- rb_define_method(cgsl_function, "glfixed", rb_gsl_integration_glfixed, 3);
1144
- }
1145
-
1146
- #undef EPSABS_DEFAULT
1147
- #undef EPSREL_DEFAULT
1148
- #undef LIMIT_DEFAULT
1149
- #undef KEY_DEFAULT
1150
-
1151
- #ifdef CHECK_WORKSPACE
1152
- #undef CHECK_WORKSPACE
1153
- #endif
1154
-