rb-gsl 1.15.3.1

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 (660) hide show
  1. checksums.yaml +7 -0
  2. data/AUTHORS +6 -0
  3. data/COPYING +339 -0
  4. data/ChangeLog +567 -0
  5. data/README +32 -0
  6. data/Rakefile +99 -0
  7. data/THANKS +17 -0
  8. data/VERSION +1 -0
  9. data/examples/alf/alf.gp +15 -0
  10. data/examples/alf/alf.rb +32 -0
  11. data/examples/blas/blas.rb +13 -0
  12. data/examples/blas/dnrm2.rb +16 -0
  13. data/examples/blas/level1.rb +81 -0
  14. data/examples/blas/level2.rb +11 -0
  15. data/examples/blas/level3.rb +12 -0
  16. data/examples/bspline.rb +57 -0
  17. data/examples/cdf.rb +16 -0
  18. data/examples/cheb.rb +21 -0
  19. data/examples/combination.rb +23 -0
  20. data/examples/complex/RC-lpf.rb +47 -0
  21. data/examples/complex/add.rb +36 -0
  22. data/examples/complex/coerce.rb +14 -0
  23. data/examples/complex/complex.rb +25 -0
  24. data/examples/complex/fpmi.rb +70 -0
  25. data/examples/complex/functions.rb +77 -0
  26. data/examples/complex/michelson.rb +36 -0
  27. data/examples/complex/mul.rb +28 -0
  28. data/examples/complex/oscillator.rb +17 -0
  29. data/examples/complex/set.rb +37 -0
  30. data/examples/const/physconst.rb +151 -0
  31. data/examples/const/travel.rb +45 -0
  32. data/examples/deriv/demo.rb +13 -0
  33. data/examples/deriv/deriv.rb +36 -0
  34. data/examples/deriv/diff.rb +35 -0
  35. data/examples/dht.rb +42 -0
  36. data/examples/dirac.rb +56 -0
  37. data/examples/eigen/eigen.rb +34 -0
  38. data/examples/eigen/herm.rb +22 -0
  39. data/examples/eigen/narray.rb +9 -0
  40. data/examples/eigen/nonsymm.rb +37 -0
  41. data/examples/eigen/nonsymmv.rb +43 -0
  42. data/examples/eigen/qhoscillator.gp +35 -0
  43. data/examples/eigen/qhoscillator.rb +90 -0
  44. data/examples/eigen/vander.rb +41 -0
  45. data/examples/fft/fft.rb +17 -0
  46. data/examples/fft/fft2.rb +17 -0
  47. data/examples/fft/forward.rb +25 -0
  48. data/examples/fft/forward2.rb +26 -0
  49. data/examples/fft/radix2.rb +18 -0
  50. data/examples/fft/real-halfcomplex.rb +33 -0
  51. data/examples/fft/real-halfcomplex2.rb +30 -0
  52. data/examples/fft/realradix2.rb +19 -0
  53. data/examples/fft/sunspot.dat +256 -0
  54. data/examples/fft/sunspot.rb +16 -0
  55. data/examples/fit/expdata.dat +20 -0
  56. data/examples/fit/expfit.rb +31 -0
  57. data/examples/fit/gaussfit.rb +29 -0
  58. data/examples/fit/gaussian_2peaks.rb +34 -0
  59. data/examples/fit/hillfit.rb +40 -0
  60. data/examples/fit/lognormal.rb +26 -0
  61. data/examples/fit/lorentzfit.rb +22 -0
  62. data/examples/fit/multifit.rb +72 -0
  63. data/examples/fit/ndlinear.rb +133 -0
  64. data/examples/fit/nonlinearfit.rb +89 -0
  65. data/examples/fit/plot.gp +36 -0
  66. data/examples/fit/polyfit.rb +9 -0
  67. data/examples/fit/powerfit.rb +21 -0
  68. data/examples/fit/sigmoidfit.rb +40 -0
  69. data/examples/fit/sinfit.rb +22 -0
  70. data/examples/fit/wlinear.rb +46 -0
  71. data/examples/fresnel.rb +11 -0
  72. data/examples/function/function.rb +36 -0
  73. data/examples/function/log.rb +7 -0
  74. data/examples/function/min.rb +33 -0
  75. data/examples/function/sin.rb +10 -0
  76. data/examples/function/synchrotron.rb +18 -0
  77. data/examples/gallery/butterfly.rb +7 -0
  78. data/examples/gallery/cayley.rb +12 -0
  79. data/examples/gallery/cornu.rb +23 -0
  80. data/examples/gallery/eight.rb +11 -0
  81. data/examples/gallery/koch.rb +40 -0
  82. data/examples/gallery/lemniscate.rb +11 -0
  83. data/examples/gallery/polar.rb +11 -0
  84. data/examples/gallery/rgplot/cossin.rb +35 -0
  85. data/examples/gallery/rgplot/rgplot.replaced +0 -0
  86. data/examples/gallery/rgplot/roesller.rb +55 -0
  87. data/examples/gallery/roesller.rb +39 -0
  88. data/examples/gallery/scarabaeus.rb +14 -0
  89. data/examples/histogram/cauchy.rb +27 -0
  90. data/examples/histogram/cauchy.sh +2 -0
  91. data/examples/histogram/exponential.rb +19 -0
  92. data/examples/histogram/gauss.rb +16 -0
  93. data/examples/histogram/gsl-histogram.rb +40 -0
  94. data/examples/histogram/histo2d.rb +31 -0
  95. data/examples/histogram/histo3d.rb +34 -0
  96. data/examples/histogram/histogram-pdf.rb +27 -0
  97. data/examples/histogram/histogram.rb +26 -0
  98. data/examples/histogram/integral.rb +28 -0
  99. data/examples/histogram/poisson.rb +27 -0
  100. data/examples/histogram/power.rb +25 -0
  101. data/examples/histogram/rebin.rb +17 -0
  102. data/examples/histogram/smp.dat +5 -0
  103. data/examples/histogram/xexp.rb +21 -0
  104. data/examples/integration/ahmed.rb +21 -0
  105. data/examples/integration/cosmology.rb +75 -0
  106. data/examples/integration/friedmann.gp +16 -0
  107. data/examples/integration/friedmann.rb +35 -0
  108. data/examples/integration/gamma-zeta.rb +35 -0
  109. data/examples/integration/integration.rb +22 -0
  110. data/examples/integration/qag.rb +8 -0
  111. data/examples/integration/qag2.rb +14 -0
  112. data/examples/integration/qag3.rb +8 -0
  113. data/examples/integration/qagi.rb +28 -0
  114. data/examples/integration/qagi2.rb +49 -0
  115. data/examples/integration/qagiu.rb +29 -0
  116. data/examples/integration/qagp.rb +20 -0
  117. data/examples/integration/qags.rb +14 -0
  118. data/examples/integration/qawc.rb +18 -0
  119. data/examples/integration/qawf.rb +41 -0
  120. data/examples/integration/qawo.rb +29 -0
  121. data/examples/integration/qaws.rb +30 -0
  122. data/examples/integration/qng.rb +17 -0
  123. data/examples/interp/demo.gp +20 -0
  124. data/examples/interp/demo.rb +45 -0
  125. data/examples/interp/interp.rb +37 -0
  126. data/examples/interp/points +10 -0
  127. data/examples/interp/spline.rb +20 -0
  128. data/examples/jacobi/deriv.rb +40 -0
  129. data/examples/jacobi/integrate.rb +34 -0
  130. data/examples/jacobi/interp.rb +43 -0
  131. data/examples/jacobi/jacobi.rb +11 -0
  132. data/examples/linalg/HH.rb +15 -0
  133. data/examples/linalg/HH_narray.rb +13 -0
  134. data/examples/linalg/LQ_solve.rb +73 -0
  135. data/examples/linalg/LU.rb +84 -0
  136. data/examples/linalg/LU2.rb +31 -0
  137. data/examples/linalg/LU_narray.rb +24 -0
  138. data/examples/linalg/PTLQ.rb +47 -0
  139. data/examples/linalg/QR.rb +18 -0
  140. data/examples/linalg/QRPT.rb +47 -0
  141. data/examples/linalg/QR_solve.rb +78 -0
  142. data/examples/linalg/QR_solve_narray.rb +13 -0
  143. data/examples/linalg/SV.rb +16 -0
  144. data/examples/linalg/SV_narray.rb +12 -0
  145. data/examples/linalg/SV_solve.rb +49 -0
  146. data/examples/linalg/chol.rb +29 -0
  147. data/examples/linalg/chol_narray.rb +15 -0
  148. data/examples/linalg/complex.rb +57 -0
  149. data/examples/linalg/invert_narray.rb +10 -0
  150. data/examples/math/const.rb +67 -0
  151. data/examples/math/elementary.rb +35 -0
  152. data/examples/math/functions.rb +41 -0
  153. data/examples/math/inf_nan.rb +34 -0
  154. data/examples/math/minmax.rb +22 -0
  155. data/examples/math/power.rb +18 -0
  156. data/examples/math/test.rb +31 -0
  157. data/examples/matrix/a.dat +0 -0
  158. data/examples/matrix/add.rb +45 -0
  159. data/examples/matrix/b.dat +4 -0
  160. data/examples/matrix/cat.rb +31 -0
  161. data/examples/matrix/colvectors.rb +24 -0
  162. data/examples/matrix/complex.rb +41 -0
  163. data/examples/matrix/det.rb +29 -0
  164. data/examples/matrix/diagonal.rb +23 -0
  165. data/examples/matrix/get_all.rb +159 -0
  166. data/examples/matrix/hilbert.rb +31 -0
  167. data/examples/matrix/iterator.rb +19 -0
  168. data/examples/matrix/matrix.rb +57 -0
  169. data/examples/matrix/minmax.rb +53 -0
  170. data/examples/matrix/mul.rb +39 -0
  171. data/examples/matrix/rand.rb +20 -0
  172. data/examples/matrix/read.rb +29 -0
  173. data/examples/matrix/rowcol.rb +47 -0
  174. data/examples/matrix/set.rb +41 -0
  175. data/examples/matrix/set_all.rb +100 -0
  176. data/examples/matrix/view.rb +32 -0
  177. data/examples/matrix/view_all.rb +148 -0
  178. data/examples/matrix/write.rb +23 -0
  179. data/examples/min.rb +29 -0
  180. data/examples/monte/miser.rb +47 -0
  181. data/examples/monte/monte.rb +47 -0
  182. data/examples/monte/plain.rb +47 -0
  183. data/examples/monte/vegas.rb +46 -0
  184. data/examples/multimin/bundle.rb +66 -0
  185. data/examples/multimin/cqp.rb +109 -0
  186. data/examples/multimin/fdfminimizer.rb +40 -0
  187. data/examples/multimin/fminimizer.rb +41 -0
  188. data/examples/multiroot/demo.rb +36 -0
  189. data/examples/multiroot/fdfsolver.rb +50 -0
  190. data/examples/multiroot/fsolver.rb +33 -0
  191. data/examples/multiroot/fsolver2.rb +32 -0
  192. data/examples/multiroot/fsolver3.rb +26 -0
  193. data/examples/narray/histogram.rb +14 -0
  194. data/examples/narray/mandel.rb +27 -0
  195. data/examples/narray/narray.rb +28 -0
  196. data/examples/narray/narray2.rb +44 -0
  197. data/examples/narray/sf.rb +26 -0
  198. data/examples/ntuple/create.rb +17 -0
  199. data/examples/ntuple/project.rb +31 -0
  200. data/examples/odeiv/binarysystem.gp +23 -0
  201. data/examples/odeiv/binarysystem.rb +104 -0
  202. data/examples/odeiv/demo.gp +24 -0
  203. data/examples/odeiv/demo.rb +69 -0
  204. data/examples/odeiv/demo2.gp +26 -0
  205. data/examples/odeiv/duffing.rb +45 -0
  206. data/examples/odeiv/frei1.rb +109 -0
  207. data/examples/odeiv/frei2.rb +76 -0
  208. data/examples/odeiv/legendre.rb +52 -0
  209. data/examples/odeiv/odeiv.rb +32 -0
  210. data/examples/odeiv/odeiv2.rb +45 -0
  211. data/examples/odeiv/oscillator.rb +42 -0
  212. data/examples/odeiv/sedov.rb +97 -0
  213. data/examples/odeiv/whitedwarf.gp +40 -0
  214. data/examples/odeiv/whitedwarf.rb +158 -0
  215. data/examples/ool/conmin.rb +100 -0
  216. data/examples/ool/gencan.rb +99 -0
  217. data/examples/ool/pgrad.rb +100 -0
  218. data/examples/ool/spg.rb +100 -0
  219. data/examples/pdf/bernoulli.rb +5 -0
  220. data/examples/pdf/beta.rb +7 -0
  221. data/examples/pdf/binomiral.rb +10 -0
  222. data/examples/pdf/cauchy.rb +6 -0
  223. data/examples/pdf/chisq.rb +8 -0
  224. data/examples/pdf/exponential.rb +7 -0
  225. data/examples/pdf/exppow.rb +6 -0
  226. data/examples/pdf/fdist.rb +7 -0
  227. data/examples/pdf/flat.rb +7 -0
  228. data/examples/pdf/gamma.rb +8 -0
  229. data/examples/pdf/gauss-tail.rb +5 -0
  230. data/examples/pdf/gauss.rb +6 -0
  231. data/examples/pdf/geometric.rb +5 -0
  232. data/examples/pdf/gumbel.rb +6 -0
  233. data/examples/pdf/hypergeometric.rb +11 -0
  234. data/examples/pdf/landau.rb +5 -0
  235. data/examples/pdf/laplace.rb +7 -0
  236. data/examples/pdf/logarithmic.rb +5 -0
  237. data/examples/pdf/logistic.rb +6 -0
  238. data/examples/pdf/lognormal.rb +6 -0
  239. data/examples/pdf/neg-binomiral.rb +10 -0
  240. data/examples/pdf/pareto.rb +7 -0
  241. data/examples/pdf/pascal.rb +10 -0
  242. data/examples/pdf/poisson.rb +5 -0
  243. data/examples/pdf/rayleigh-tail.rb +6 -0
  244. data/examples/pdf/rayleigh.rb +6 -0
  245. data/examples/pdf/tdist.rb +6 -0
  246. data/examples/pdf/weibull.rb +8 -0
  247. data/examples/permutation/ex1.rb +22 -0
  248. data/examples/permutation/permutation.rb +16 -0
  249. data/examples/poly/bell.rb +6 -0
  250. data/examples/poly/bessel.rb +6 -0
  251. data/examples/poly/cheb.rb +6 -0
  252. data/examples/poly/cheb_II.rb +6 -0
  253. data/examples/poly/cubic.rb +9 -0
  254. data/examples/poly/demo.rb +20 -0
  255. data/examples/poly/eval.rb +28 -0
  256. data/examples/poly/eval_derivs.rb +14 -0
  257. data/examples/poly/fit.rb +21 -0
  258. data/examples/poly/hermite.rb +6 -0
  259. data/examples/poly/poly.rb +13 -0
  260. data/examples/poly/quadratic.rb +25 -0
  261. data/examples/random/diffusion.rb +34 -0
  262. data/examples/random/gaussian.rb +9 -0
  263. data/examples/random/generator.rb +27 -0
  264. data/examples/random/hdsobol.rb +21 -0
  265. data/examples/random/poisson.rb +9 -0
  266. data/examples/random/qrng.rb +19 -0
  267. data/examples/random/randomwalk.rb +37 -0
  268. data/examples/random/randomwalk2d.rb +19 -0
  269. data/examples/random/rayleigh.rb +36 -0
  270. data/examples/random/rng.rb +33 -0
  271. data/examples/random/rngextra.rb +14 -0
  272. data/examples/roots/bisection.rb +25 -0
  273. data/examples/roots/brent.rb +43 -0
  274. data/examples/roots/demo.rb +30 -0
  275. data/examples/roots/newton.rb +46 -0
  276. data/examples/roots/recombination.gp +12 -0
  277. data/examples/roots/recombination.rb +61 -0
  278. data/examples/roots/steffenson.rb +48 -0
  279. data/examples/sf/ShiChi.rb +6 -0
  280. data/examples/sf/SiCi.rb +6 -0
  281. data/examples/sf/airy_Ai.rb +8 -0
  282. data/examples/sf/airy_Bi.rb +8 -0
  283. data/examples/sf/bessel_IK.rb +12 -0
  284. data/examples/sf/bessel_JY.rb +13 -0
  285. data/examples/sf/beta_inc.rb +9 -0
  286. data/examples/sf/clausen.rb +6 -0
  287. data/examples/sf/dawson.rb +5 -0
  288. data/examples/sf/debye.rb +9 -0
  289. data/examples/sf/dilog.rb +6 -0
  290. data/examples/sf/ellint.rb +6 -0
  291. data/examples/sf/expint.rb +8 -0
  292. data/examples/sf/fermi.rb +10 -0
  293. data/examples/sf/gamma_inc_P.rb +9 -0
  294. data/examples/sf/gegenbauer.rb +8 -0
  295. data/examples/sf/hyperg.rb +7 -0
  296. data/examples/sf/laguerre.rb +19 -0
  297. data/examples/sf/lambertW.rb +5 -0
  298. data/examples/sf/legendre_P.rb +10 -0
  299. data/examples/sf/lngamma.rb +5 -0
  300. data/examples/sf/psi.rb +54 -0
  301. data/examples/sf/sphbessel.gp +27 -0
  302. data/examples/sf/sphbessel.rb +30 -0
  303. data/examples/sf/synchrotron.rb +5 -0
  304. data/examples/sf/transport.rb +10 -0
  305. data/examples/sf/zetam1.rb +5 -0
  306. data/examples/siman.rb +44 -0
  307. data/examples/sort/heapsort.rb +23 -0
  308. data/examples/sort/heapsort_vector_complex.rb +21 -0
  309. data/examples/sort/sort.rb +23 -0
  310. data/examples/sort/sort2.rb +16 -0
  311. data/examples/stats/mean.rb +17 -0
  312. data/examples/stats/statistics.rb +18 -0
  313. data/examples/stats/test.rb +9 -0
  314. data/examples/sum.rb +34 -0
  315. data/examples/tamu_anova.rb +18 -0
  316. data/examples/vector/a.dat +0 -0
  317. data/examples/vector/add.rb +56 -0
  318. data/examples/vector/b.dat +4 -0
  319. data/examples/vector/c.dat +3 -0
  320. data/examples/vector/collect.rb +26 -0
  321. data/examples/vector/compare.rb +28 -0
  322. data/examples/vector/complex.rb +51 -0
  323. data/examples/vector/complex_get_all.rb +85 -0
  324. data/examples/vector/complex_set_all.rb +131 -0
  325. data/examples/vector/complex_view_all.rb +77 -0
  326. data/examples/vector/connect.rb +22 -0
  327. data/examples/vector/decimate.rb +38 -0
  328. data/examples/vector/diff.rb +31 -0
  329. data/examples/vector/filescan.rb +17 -0
  330. data/examples/vector/floor.rb +23 -0
  331. data/examples/vector/get_all.rb +82 -0
  332. data/examples/vector/gnuplot.rb +38 -0
  333. data/examples/vector/graph.rb +28 -0
  334. data/examples/vector/histogram.rb +22 -0
  335. data/examples/vector/linspace.rb +24 -0
  336. data/examples/vector/log.rb +17 -0
  337. data/examples/vector/logic.rb +33 -0
  338. data/examples/vector/logspace.rb +25 -0
  339. data/examples/vector/minmax.rb +47 -0
  340. data/examples/vector/mul.rb +49 -0
  341. data/examples/vector/narray.rb +46 -0
  342. data/examples/vector/read.rb +29 -0
  343. data/examples/vector/set.rb +35 -0
  344. data/examples/vector/set_all.rb +121 -0
  345. data/examples/vector/smpv.dat +15 -0
  346. data/examples/vector/test.rb +43 -0
  347. data/examples/vector/test_gslblock.rb +58 -0
  348. data/examples/vector/vector.rb +110 -0
  349. data/examples/vector/view.rb +35 -0
  350. data/examples/vector/view_all.rb +73 -0
  351. data/examples/vector/where.rb +29 -0
  352. data/examples/vector/write.rb +24 -0
  353. data/examples/vector/zip.rb +34 -0
  354. data/examples/wavelet/ecg.dat +256 -0
  355. data/examples/wavelet/wavelet1.rb +50 -0
  356. data/ext/alf.c +206 -0
  357. data/ext/array.c +642 -0
  358. data/ext/array_complex.c +248 -0
  359. data/ext/blas.c +29 -0
  360. data/ext/blas1.c +734 -0
  361. data/ext/blas2.c +1093 -0
  362. data/ext/blas3.c +881 -0
  363. data/ext/block.c +44 -0
  364. data/ext/block_source.c +887 -0
  365. data/ext/bspline.c +130 -0
  366. data/ext/bundle.c +3 -0
  367. data/ext/cdf.c +754 -0
  368. data/ext/cheb.c +542 -0
  369. data/ext/combination.c +283 -0
  370. data/ext/common.c +325 -0
  371. data/ext/complex.c +1004 -0
  372. data/ext/const.c +673 -0
  373. data/ext/const_additional.c +120 -0
  374. data/ext/cqp.c +283 -0
  375. data/ext/deriv.c +195 -0
  376. data/ext/dht.c +361 -0
  377. data/ext/diff.c +166 -0
  378. data/ext/dirac.c +389 -0
  379. data/ext/eigen.c +2373 -0
  380. data/ext/error.c +193 -0
  381. data/ext/extconf.rb +303 -0
  382. data/ext/fcmp.c +66 -0
  383. data/ext/fft.c +1102 -0
  384. data/ext/fit.c +205 -0
  385. data/ext/fresnel.c +312 -0
  386. data/ext/function.c +524 -0
  387. data/ext/geometry.c +139 -0
  388. data/ext/graph.c +1640 -0
  389. data/ext/gsl.c +280 -0
  390. data/ext/gsl_narray.c +804 -0
  391. data/ext/histogram.c +1991 -0
  392. data/ext/histogram2d.c +1068 -0
  393. data/ext/histogram3d.c +884 -0
  394. data/ext/histogram3d_source.c +750 -0
  395. data/ext/histogram_find.c +101 -0
  396. data/ext/histogram_oper.c +159 -0
  397. data/ext/ieee.c +100 -0
  398. data/ext/integration.c +1179 -0
  399. data/ext/interp.c +512 -0
  400. data/ext/jacobi.c +739 -0
  401. data/ext/linalg.c +4042 -0
  402. data/ext/linalg_complex.c +739 -0
  403. data/ext/math.c +725 -0
  404. data/ext/matrix.c +39 -0
  405. data/ext/matrix_complex.c +1737 -0
  406. data/ext/matrix_double.c +560 -0
  407. data/ext/matrix_int.c +256 -0
  408. data/ext/matrix_source.c +2734 -0
  409. data/ext/min.c +250 -0
  410. data/ext/monte.c +992 -0
  411. data/ext/multifit.c +1871 -0
  412. data/ext/multimin.c +806 -0
  413. data/ext/multimin_fsdf.c +156 -0
  414. data/ext/multiroots.c +955 -0
  415. data/ext/multiset.c +214 -0
  416. data/ext/ndlinear.c +321 -0
  417. data/ext/nmf.c +171 -0
  418. data/ext/nmf_wrap.c +75 -0
  419. data/ext/ntuple.c +469 -0
  420. data/ext/odeiv.c +962 -0
  421. data/ext/ool.c +879 -0
  422. data/ext/oper_complex_source.c +253 -0
  423. data/ext/permutation.c +596 -0
  424. data/ext/poly.c +42 -0
  425. data/ext/poly2.c +265 -0
  426. data/ext/poly_source.c +1915 -0
  427. data/ext/qrng.c +171 -0
  428. data/ext/randist.c +1873 -0
  429. data/ext/rational.c +480 -0
  430. data/ext/rng.c +612 -0
  431. data/ext/root.c +408 -0
  432. data/ext/sf.c +1494 -0
  433. data/ext/sf_airy.c +200 -0
  434. data/ext/sf_bessel.c +871 -0
  435. data/ext/sf_clausen.c +28 -0
  436. data/ext/sf_coulomb.c +206 -0
  437. data/ext/sf_coupling.c +121 -0
  438. data/ext/sf_dawson.c +29 -0
  439. data/ext/sf_debye.c +157 -0
  440. data/ext/sf_dilog.c +43 -0
  441. data/ext/sf_elementary.c +46 -0
  442. data/ext/sf_ellint.c +206 -0
  443. data/ext/sf_elljac.c +30 -0
  444. data/ext/sf_erfc.c +93 -0
  445. data/ext/sf_exp.c +169 -0
  446. data/ext/sf_expint.c +211 -0
  447. data/ext/sf_fermi_dirac.c +148 -0
  448. data/ext/sf_gamma.c +347 -0
  449. data/ext/sf_gegenbauer.c +97 -0
  450. data/ext/sf_hyperg.c +203 -0
  451. data/ext/sf_laguerre.c +113 -0
  452. data/ext/sf_lambert.c +47 -0
  453. data/ext/sf_legendre.c +368 -0
  454. data/ext/sf_log.c +105 -0
  455. data/ext/sf_mathieu.c +238 -0
  456. data/ext/sf_power.c +47 -0
  457. data/ext/sf_psi.c +98 -0
  458. data/ext/sf_synchrotron.c +48 -0
  459. data/ext/sf_transport.c +76 -0
  460. data/ext/sf_trigonometric.c +210 -0
  461. data/ext/sf_zeta.c +119 -0
  462. data/ext/signal.c +308 -0
  463. data/ext/siman.c +717 -0
  464. data/ext/sort.c +208 -0
  465. data/ext/spline.c +395 -0
  466. data/ext/stats.c +800 -0
  467. data/ext/sum.c +168 -0
  468. data/ext/tamu_anova.c +56 -0
  469. data/ext/tensor.c +38 -0
  470. data/ext/tensor_source.c +1123 -0
  471. data/ext/vector.c +38 -0
  472. data/ext/vector_complex.c +2246 -0
  473. data/ext/vector_double.c +1438 -0
  474. data/ext/vector_int.c +204 -0
  475. data/ext/vector_source.c +3336 -0
  476. data/ext/wavelet.c +945 -0
  477. data/include/rb_gsl.h +158 -0
  478. data/include/rb_gsl_array.h +238 -0
  479. data/include/rb_gsl_cheb.h +21 -0
  480. data/include/rb_gsl_common.h +348 -0
  481. data/include/rb_gsl_complex.h +25 -0
  482. data/include/rb_gsl_config.h +62 -0
  483. data/include/rb_gsl_const.h +29 -0
  484. data/include/rb_gsl_dirac.h +13 -0
  485. data/include/rb_gsl_eigen.h +17 -0
  486. data/include/rb_gsl_fft.h +62 -0
  487. data/include/rb_gsl_fit.h +25 -0
  488. data/include/rb_gsl_function.h +27 -0
  489. data/include/rb_gsl_graph.h +70 -0
  490. data/include/rb_gsl_histogram.h +63 -0
  491. data/include/rb_gsl_histogram3d.h +97 -0
  492. data/include/rb_gsl_integration.h +17 -0
  493. data/include/rb_gsl_interp.h +46 -0
  494. data/include/rb_gsl_linalg.h +25 -0
  495. data/include/rb_gsl_math.h +26 -0
  496. data/include/rb_gsl_odeiv.h +21 -0
  497. data/include/rb_gsl_poly.h +71 -0
  498. data/include/rb_gsl_rational.h +37 -0
  499. data/include/rb_gsl_rng.h +21 -0
  500. data/include/rb_gsl_root.h +22 -0
  501. data/include/rb_gsl_sf.h +119 -0
  502. data/include/rb_gsl_statistics.h +17 -0
  503. data/include/rb_gsl_tensor.h +45 -0
  504. data/include/rb_gsl_with_narray.h +29 -0
  505. data/include/templates_off.h +87 -0
  506. data/include/templates_on.h +241 -0
  507. data/lib/gsl.rb +3 -0
  508. data/lib/gsl/gnuplot.rb +41 -0
  509. data/lib/gsl/oper.rb +68 -0
  510. data/lib/ool.rb +22 -0
  511. data/lib/ool/conmin.rb +30 -0
  512. data/lib/rbgsl.rb +3 -0
  513. data/rdoc/alf.rdoc +77 -0
  514. data/rdoc/blas.rdoc +269 -0
  515. data/rdoc/bspline.rdoc +42 -0
  516. data/rdoc/changes.rdoc +164 -0
  517. data/rdoc/cheb.rdoc +99 -0
  518. data/rdoc/cholesky_complex.rdoc +46 -0
  519. data/rdoc/combi.rdoc +125 -0
  520. data/rdoc/complex.rdoc +210 -0
  521. data/rdoc/const.rdoc +546 -0
  522. data/rdoc/dht.rdoc +122 -0
  523. data/rdoc/diff.rdoc +133 -0
  524. data/rdoc/ehandling.rdoc +50 -0
  525. data/rdoc/eigen.rdoc +401 -0
  526. data/rdoc/fft.rdoc +535 -0
  527. data/rdoc/fit.rdoc +284 -0
  528. data/rdoc/function.rdoc +94 -0
  529. data/rdoc/graph.rdoc +137 -0
  530. data/rdoc/hist.rdoc +409 -0
  531. data/rdoc/hist2d.rdoc +279 -0
  532. data/rdoc/hist3d.rdoc +112 -0
  533. data/rdoc/index.rdoc +62 -0
  534. data/rdoc/integration.rdoc +398 -0
  535. data/rdoc/interp.rdoc +231 -0
  536. data/rdoc/intro.rdoc +27 -0
  537. data/rdoc/linalg.rdoc +681 -0
  538. data/rdoc/linalg_complex.rdoc +88 -0
  539. data/rdoc/math.rdoc +276 -0
  540. data/rdoc/matrix.rdoc +1093 -0
  541. data/rdoc/min.rdoc +189 -0
  542. data/rdoc/monte.rdoc +234 -0
  543. data/rdoc/multimin.rdoc +312 -0
  544. data/rdoc/multiroot.rdoc +293 -0
  545. data/rdoc/narray.rdoc +177 -0
  546. data/rdoc/ndlinear.rdoc +250 -0
  547. data/rdoc/nonlinearfit.rdoc +348 -0
  548. data/rdoc/ntuple.rdoc +88 -0
  549. data/rdoc/odeiv.rdoc +378 -0
  550. data/rdoc/perm.rdoc +221 -0
  551. data/rdoc/poly.rdoc +335 -0
  552. data/rdoc/qrng.rdoc +90 -0
  553. data/rdoc/randist.rdoc +233 -0
  554. data/rdoc/ref.rdoc +93 -0
  555. data/rdoc/rng.rdoc +203 -0
  556. data/rdoc/rngextra.rdoc +11 -0
  557. data/rdoc/roots.rdoc +305 -0
  558. data/rdoc/screenshot.rdoc +40 -0
  559. data/rdoc/sf.rdoc +1622 -0
  560. data/rdoc/siman.rdoc +89 -0
  561. data/rdoc/sort.rdoc +94 -0
  562. data/rdoc/start.rdoc +16 -0
  563. data/rdoc/stats.rdoc +219 -0
  564. data/rdoc/sum.rdoc +65 -0
  565. data/rdoc/tensor.rdoc +251 -0
  566. data/rdoc/tut.rdoc +5 -0
  567. data/rdoc/use.rdoc +177 -0
  568. data/rdoc/vector.rdoc +1243 -0
  569. data/rdoc/vector_complex.rdoc +347 -0
  570. data/rdoc/wavelet.rdoc +218 -0
  571. data/setup.rb +1585 -0
  572. data/tests/blas/amax.rb +14 -0
  573. data/tests/blas/asum.rb +16 -0
  574. data/tests/blas/axpy.rb +25 -0
  575. data/tests/blas/copy.rb +23 -0
  576. data/tests/blas/dot.rb +23 -0
  577. data/tests/bspline.rb +53 -0
  578. data/tests/cdf.rb +1388 -0
  579. data/tests/cheb.rb +112 -0
  580. data/tests/combination.rb +123 -0
  581. data/tests/complex.rb +17 -0
  582. data/tests/const.rb +24 -0
  583. data/tests/deriv.rb +85 -0
  584. data/tests/dht/dht1.rb +17 -0
  585. data/tests/dht/dht2.rb +23 -0
  586. data/tests/dht/dht3.rb +23 -0
  587. data/tests/dht/dht4.rb +23 -0
  588. data/tests/diff.rb +78 -0
  589. data/tests/eigen/eigen.rb +220 -0
  590. data/tests/eigen/gen.rb +105 -0
  591. data/tests/eigen/genherm.rb +66 -0
  592. data/tests/eigen/gensymm.rb +68 -0
  593. data/tests/eigen/nonsymm.rb +53 -0
  594. data/tests/eigen/nonsymmv.rb +53 -0
  595. data/tests/eigen/symm-herm.rb +74 -0
  596. data/tests/err.rb +58 -0
  597. data/tests/fit.rb +124 -0
  598. data/tests/gsl_test.rb +118 -0
  599. data/tests/gsl_test2.rb +110 -0
  600. data/tests/histo.rb +12 -0
  601. data/tests/integration/integration1.rb +72 -0
  602. data/tests/integration/integration2.rb +71 -0
  603. data/tests/integration/integration3.rb +71 -0
  604. data/tests/integration/integration4.rb +71 -0
  605. data/tests/interp.rb +45 -0
  606. data/tests/linalg/HH.rb +64 -0
  607. data/tests/linalg/LU.rb +47 -0
  608. data/tests/linalg/QR.rb +77 -0
  609. data/tests/linalg/SV.rb +24 -0
  610. data/tests/linalg/TDN.rb +116 -0
  611. data/tests/linalg/TDS.rb +122 -0
  612. data/tests/linalg/bidiag.rb +73 -0
  613. data/tests/linalg/cholesky.rb +20 -0
  614. data/tests/linalg/linalg.rb +158 -0
  615. data/tests/matrix/matrix_complex_test.rb +36 -0
  616. data/tests/matrix/matrix_nmf_test.rb +39 -0
  617. data/tests/matrix/matrix_test.rb +48 -0
  618. data/tests/min.rb +99 -0
  619. data/tests/monte/miser.rb +31 -0
  620. data/tests/monte/vegas.rb +45 -0
  621. data/tests/multifit/test_2dgauss.rb +112 -0
  622. data/tests/multifit/test_brown.rb +90 -0
  623. data/tests/multifit/test_enso.rb +246 -0
  624. data/tests/multifit/test_filip.rb +155 -0
  625. data/tests/multifit/test_gauss.rb +97 -0
  626. data/tests/multifit/test_longley.rb +110 -0
  627. data/tests/multifit/test_multifit.rb +52 -0
  628. data/tests/multimin.rb +139 -0
  629. data/tests/multiroot.rb +131 -0
  630. data/tests/multiset.rb +52 -0
  631. data/tests/narray/blas_dnrm2.rb +20 -0
  632. data/tests/odeiv.rb +353 -0
  633. data/tests/poly/poly.rb +290 -0
  634. data/tests/poly/special.rb +65 -0
  635. data/tests/qrng.rb +131 -0
  636. data/tests/quartic.rb +29 -0
  637. data/tests/randist.rb +134 -0
  638. data/tests/rng.rb +305 -0
  639. data/tests/roots.rb +76 -0
  640. data/tests/run-test.sh +17 -0
  641. data/tests/sf/gsl_test_sf.rb +249 -0
  642. data/tests/sf/test_airy.rb +83 -0
  643. data/tests/sf/test_bessel.rb +306 -0
  644. data/tests/sf/test_coulomb.rb +17 -0
  645. data/tests/sf/test_dilog.rb +25 -0
  646. data/tests/sf/test_gamma.rb +209 -0
  647. data/tests/sf/test_hyperg.rb +356 -0
  648. data/tests/sf/test_legendre.rb +227 -0
  649. data/tests/sf/test_mathieu.rb +59 -0
  650. data/tests/sf/test_mode.rb +19 -0
  651. data/tests/sf/test_sf.rb +839 -0
  652. data/tests/stats.rb +174 -0
  653. data/tests/stats_mt.rb +16 -0
  654. data/tests/sum.rb +98 -0
  655. data/tests/sys.rb +323 -0
  656. data/tests/tensor.rb +419 -0
  657. data/tests/vector/vector_complex_test.rb +101 -0
  658. data/tests/vector/vector_test.rb +141 -0
  659. data/tests/wavelet.rb +142 -0
  660. metadata +789 -0
@@ -0,0 +1,28 @@
1
+ /*
2
+ sf_clausen.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 "rb_gsl_sf.h"
13
+
14
+ static VALUE rb_gsl_sf_clausen(VALUE obj, VALUE x)
15
+ {
16
+ return rb_gsl_sf_eval1(gsl_sf_clausen, x);
17
+ }
18
+
19
+ static VALUE rb_gsl_sf_clausen_e(VALUE obj, VALUE x)
20
+ {
21
+ return rb_gsl_sf_eval_e(gsl_sf_clausen_e, x);
22
+ }
23
+
24
+ void Init_gsl_sf_clausen(VALUE module)
25
+ {
26
+ rb_define_module_function(module, "clausen", rb_gsl_sf_clausen, 1);
27
+ rb_define_module_function(module, "clausen_e", rb_gsl_sf_clausen_e, 1);
28
+ }
@@ -0,0 +1,206 @@
1
+ /*
2
+ sf_coulomb.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; without even the implied warranty of
10
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
+ */
12
+
13
+ #include "rb_gsl_sf.h"
14
+ EXTERN VALUE cgsl_vector;
15
+
16
+ static VALUE rb_gsl_sf_hydrogenicR_1(VALUE obj, VALUE Z, VALUE r)
17
+ {
18
+ return rb_gsl_sf_eval_double_double(gsl_sf_hydrogenicR_1, Z, r);
19
+ }
20
+
21
+ static VALUE rb_gsl_sf_hydrogenicR_1_e(VALUE obj, VALUE Z, VALUE r)
22
+ {
23
+ return rb_gsl_sf_eval_e_double2(gsl_sf_hydrogenicR_1_e, Z, r);
24
+ }
25
+
26
+ static VALUE rb_gsl_sf_hydrogenicR(VALUE obj, VALUE n, VALUE l,
27
+ VALUE Z, VALUE r)
28
+ {
29
+ return rb_float_new(gsl_sf_hydrogenicR(FIX2INT(n), FIX2INT(l),
30
+ NUM2DBL(Z), NUM2DBL(r)));
31
+ }
32
+
33
+ static VALUE rb_gsl_sf_hydrogenicR_e(VALUE obj, VALUE n, VALUE l,
34
+ VALUE Z, VALUE r)
35
+ {
36
+ gsl_sf_result *rslt = NULL;
37
+ VALUE v;
38
+ // local variable "status" declared and set, but never used
39
+ //int status;
40
+ CHECK_FIXNUM(n); CHECK_FIXNUM(l);
41
+ Need_Float(Z); Need_Float(r);
42
+ v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
43
+ /*status =*/ gsl_sf_hydrogenicR_e(FIX2INT(n), FIX2INT(l),
44
+ NUM2DBL(Z), NUM2DBL(r), rslt);
45
+ return v;
46
+ }
47
+
48
+ static VALUE rb_gsl_sf_coulomb_wave_FG_e(VALUE obj, VALUE eta, VALUE x,
49
+ VALUE L_F, VALUE k)
50
+
51
+ {
52
+ gsl_sf_result *F, *Fp, *G, *Gp;
53
+ VALUE vF, vFp, vG, vGp;
54
+ double exp_G, exp_F;
55
+ int status;
56
+ Need_Float(eta); Need_Float(x); Need_Float(L_F);
57
+ CHECK_FIXNUM(k);
58
+ vF = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, F);
59
+ vFp = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, Fp);
60
+ vG = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, G);
61
+ vGp = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, Gp);
62
+ status = gsl_sf_coulomb_wave_FG_e(NUM2DBL(eta), NUM2DBL(x), NUM2DBL(L_F),
63
+ FIX2INT(k), F, Fp, G, Gp, &exp_F, &exp_G);
64
+ return rb_ary_new3(7, vF, vFp, vG, vGp,
65
+ rb_float_new(exp_F), rb_float_new(exp_G), INT2FIX(status));
66
+ }
67
+
68
+ static VALUE rb_gsl_sf_coulomb_wave_F_array(VALUE obj, VALUE Lmin, VALUE kmax,
69
+ VALUE eta, VALUE x)
70
+ {
71
+ double F_exponent;
72
+ int status;
73
+ size_t size;
74
+ gsl_vector *v = NULL;
75
+ CHECK_FIXNUM(kmax);
76
+ Need_Float(Lmin); Need_Float(eta); Need_Float(x);
77
+ size = FIX2INT(kmax);
78
+ v = gsl_vector_alloc(size);
79
+ status = gsl_sf_coulomb_wave_F_array(NUM2DBL(Lmin), size, NUM2DBL(eta),
80
+ NUM2DBL(x), v->data, &F_exponent);
81
+
82
+ return rb_ary_new3(3, Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v),
83
+ rb_float_new(F_exponent), INT2FIX(status));
84
+ }
85
+
86
+ static VALUE rb_gsl_sf_coulomb_wave_FG_array(VALUE obj, VALUE Lmin, VALUE kmax,
87
+ VALUE eta, VALUE x)
88
+ {
89
+ double F_exponent, G_exponent;
90
+ int status;
91
+ size_t size;
92
+ gsl_vector *vf = NULL, *vg = NULL;
93
+ VALUE fary, gary;
94
+ CHECK_FIXNUM(kmax);
95
+ Need_Float(Lmin); Need_Float(eta); Need_Float(x);
96
+ size = FIX2INT(kmax);
97
+ vf = gsl_vector_alloc(size);
98
+ vg = gsl_vector_alloc(size);
99
+
100
+ status = gsl_sf_coulomb_wave_FG_array(NUM2DBL(Lmin), size, NUM2DBL(eta),
101
+ NUM2DBL(x), vf->data, vg->data,
102
+ &F_exponent, &G_exponent);
103
+ fary = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vf);
104
+ gary = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vf);
105
+ return rb_ary_new3(5, fary, gary,
106
+ rb_float_new(F_exponent), rb_float_new(G_exponent),
107
+ INT2FIX(status));
108
+ }
109
+
110
+ static VALUE rb_gsl_sf_coulomb_wave_FGp_array(VALUE obj, VALUE Lmin, VALUE kmax,
111
+ VALUE eta, VALUE x)
112
+ {
113
+ double F_exponent, G_exponent;
114
+ int status;
115
+ size_t size;
116
+ gsl_vector *vf = NULL, *vg = NULL, *vfp = NULL, *vgp = NULL;
117
+ VALUE fary, gary, fpary, gpary;
118
+ CHECK_FIXNUM(kmax);
119
+ Need_Float(Lmin); Need_Float(eta); Need_Float(x);
120
+ size = FIX2INT(kmax);
121
+ vf = gsl_vector_alloc(size);
122
+ vfp = gsl_vector_alloc(size);
123
+ vg = gsl_vector_alloc(size);
124
+ vgp = gsl_vector_alloc(size);
125
+
126
+ status = gsl_sf_coulomb_wave_FGp_array(NUM2DBL(Lmin), size, NUM2DBL(eta),
127
+ NUM2DBL(x), vf->data, vfp->data,
128
+ vg->data, vgp->data,
129
+ &F_exponent, &G_exponent);
130
+ fary = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vf);
131
+ fpary =Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vfp);
132
+ gary = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vg);
133
+ gpary =Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vgp);
134
+ return rb_ary_new3(7, fary, fpary, gary, gpary,
135
+ rb_float_new(F_exponent), rb_float_new(G_exponent),
136
+ INT2FIX(status));
137
+ }
138
+
139
+ static VALUE rb_gsl_sf_coulomb_wave_sphF_array(VALUE obj, VALUE Lmin, VALUE kmax,
140
+ VALUE eta, VALUE x)
141
+ {
142
+ int status;
143
+ size_t size;
144
+ gsl_vector *v = NULL, *v2 = NULL;
145
+ CHECK_FIXNUM(kmax);
146
+ Need_Float(Lmin); Need_Float(eta); Need_Float(x);
147
+ size = FIX2INT(kmax);
148
+ v = gsl_vector_alloc(size);
149
+ v2 = gsl_vector_alloc(size);
150
+ status = gsl_sf_coulomb_wave_sphF_array(NUM2DBL(Lmin), size, NUM2DBL(eta),
151
+ NUM2DBL(x), v->data, v2->data);
152
+ return rb_ary_new3(3, Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v),
153
+ Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v2),
154
+ INT2FIX(status));
155
+ }
156
+
157
+ static VALUE rb_gsl_sf_coulomb_CL_e(VALUE obj, VALUE L, VALUE eta)
158
+ {
159
+ return rb_gsl_sf_eval_e_double2(gsl_sf_coulomb_CL_e, L, eta);
160
+ }
161
+
162
+ static VALUE rb_gsl_sf_coulomb_CL_array(VALUE obj, VALUE Lmin, VALUE kmax,
163
+ VALUE eta)
164
+ {
165
+ gsl_vector *v = NULL;
166
+ size_t size;
167
+ // local variable "status" declared and set, but never used
168
+ //int status;
169
+ CHECK_FIXNUM(kmax);
170
+ Need_Float(Lmin); Need_Float(eta);
171
+ size = FIX2INT(kmax);
172
+ v = gsl_vector_alloc(size);
173
+ /*status =*/ gsl_sf_coulomb_CL_array(NUM2DBL(Lmin), size, NUM2DBL(eta), v->data);
174
+ return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
175
+ }
176
+
177
+ void Init_gsl_sf_coulomb(VALUE module)
178
+ {
179
+ VALUE mgsl_sf_coulomb;
180
+
181
+ rb_define_module_function(module, "hydrogenicR_1", rb_gsl_sf_hydrogenicR_1, 2);
182
+ rb_define_module_function(module, "hydrogenicR_1_e", rb_gsl_sf_hydrogenicR_1_e, 2);
183
+ rb_define_module_function(module, "hydrogenicR", rb_gsl_sf_hydrogenicR, 4);
184
+ rb_define_module_function(module, "hydrogenicR_e", rb_gsl_sf_hydrogenicR_e, 4);
185
+ rb_define_module_function(module, "coulomb_wave_FG_e", rb_gsl_sf_coulomb_wave_FG_e, 4);
186
+ rb_define_module_function(module, "coulomb_wave_F_array", rb_gsl_sf_coulomb_wave_F_array, 4);
187
+ rb_define_module_function(module, "coulomb_wave_FG_array", rb_gsl_sf_coulomb_wave_FG_array, 4);
188
+ rb_define_module_function(module, "coulomb_wave_FGp_array", rb_gsl_sf_coulomb_wave_FGp_array, 4);
189
+ rb_define_module_function(module, "coulomb_wave_sphF_array ", rb_gsl_sf_coulomb_wave_sphF_array, 4);
190
+ rb_define_module_function(module, "coulomb_CL_e", rb_gsl_sf_coulomb_CL_e, 2);
191
+ rb_define_module_function(module, "coulomb_CL_array", rb_gsl_sf_coulomb_CL_array, 3);
192
+
193
+ mgsl_sf_coulomb = rb_define_module_under(module, "Coulomb");
194
+
195
+ rb_define_module_function(mgsl_sf_coulomb, "hydrogenicR_1", rb_gsl_sf_hydrogenicR_1, 2);
196
+ rb_define_module_function(mgsl_sf_coulomb, "hydrogenicR_1_e", rb_gsl_sf_hydrogenicR_1_e, 2);
197
+ rb_define_module_function(mgsl_sf_coulomb, "hydrogenicR", rb_gsl_sf_hydrogenicR, 4);
198
+ rb_define_module_function(mgsl_sf_coulomb, "hydrogenicR_e", rb_gsl_sf_hydrogenicR_e, 4);
199
+ rb_define_module_function(mgsl_sf_coulomb, "wave_FG_e", rb_gsl_sf_coulomb_wave_FG_e, 4);
200
+ rb_define_module_function(mgsl_sf_coulomb, "wave_F_array", rb_gsl_sf_coulomb_wave_F_array, 4);
201
+ rb_define_module_function(mgsl_sf_coulomb, "wave_FG_array", rb_gsl_sf_coulomb_wave_FG_array, 4);
202
+ rb_define_module_function(mgsl_sf_coulomb, "wave_FGp_array", rb_gsl_sf_coulomb_wave_FGp_array, 4);
203
+ rb_define_module_function(mgsl_sf_coulomb, "wave_sphF_array ", rb_gsl_sf_coulomb_wave_sphF_array, 4);
204
+ rb_define_module_function(mgsl_sf_coulomb, "CL_e", rb_gsl_sf_coulomb_CL_e, 2);
205
+ rb_define_module_function(mgsl_sf_coulomb, "CL_array", rb_gsl_sf_coulomb_CL_array, 3);
206
+ }
@@ -0,0 +1,121 @@
1
+ /*
2
+ sf_coupling.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; without even the implied warranty of
10
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
+ */
12
+
13
+ #include "rb_gsl_sf.h"
14
+
15
+ static VALUE rb_gsl_sf_coupling_3j(VALUE obj, VALUE two_ja, VALUE two_jb, VALUE two_jc, VALUE two_ma, VALUE two_mb, VALUE two_mc)
16
+ {
17
+ CHECK_FIXNUM(two_ja); CHECK_FIXNUM(two_jb); CHECK_FIXNUM(two_jc);
18
+ CHECK_FIXNUM(two_ma); CHECK_FIXNUM(two_mb); CHECK_FIXNUM(two_mc);
19
+ return rb_float_new(gsl_sf_coupling_3j(FIX2INT(two_ja), FIX2INT(two_jb),
20
+ FIX2INT(two_jc), FIX2INT(two_ma),
21
+ FIX2INT(two_mb), FIX2INT(two_mc)));
22
+ }
23
+
24
+ static VALUE rb_gsl_sf_coupling_3j_e(VALUE obj, VALUE two_ja, VALUE two_jb, VALUE two_jc, VALUE two_ma, VALUE two_mb, VALUE two_mc)
25
+ {
26
+ gsl_sf_result *rslt = NULL;
27
+ VALUE v;
28
+ // local variable "status" declared and set, but never used
29
+ //int status;
30
+ CHECK_FIXNUM(two_ja); CHECK_FIXNUM(two_jb); CHECK_FIXNUM(two_jc);
31
+ CHECK_FIXNUM(two_ma); CHECK_FIXNUM(two_mb); CHECK_FIXNUM(two_mc);
32
+ v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
33
+ /*status =*/ gsl_sf_coupling_3j_e(FIX2INT(two_ja), FIX2INT(two_jb),
34
+ FIX2INT(two_jc), FIX2INT(two_ma),
35
+ FIX2INT(two_mb), FIX2INT(two_mc),
36
+ rslt);
37
+
38
+ return v;
39
+ }
40
+
41
+ static VALUE rb_gsl_sf_coupling_6j(VALUE obj, VALUE two_ja, VALUE two_jb, VALUE two_jc, VALUE two_jd, VALUE two_je, VALUE two_jf)
42
+ {
43
+ CHECK_FIXNUM(two_ja); CHECK_FIXNUM(two_jb); CHECK_FIXNUM(two_jc);
44
+ CHECK_FIXNUM(two_jd); CHECK_FIXNUM(two_je); CHECK_FIXNUM(two_jf);
45
+ return rb_float_new(gsl_sf_coupling_6j(FIX2INT(two_ja), FIX2INT(two_jb),
46
+ FIX2INT(two_jc), FIX2INT(two_jd),
47
+ FIX2INT(two_je), FIX2INT(two_jf)));
48
+ }
49
+
50
+ static VALUE rb_gsl_sf_coupling_6j_e(VALUE obj, VALUE two_ja, VALUE two_jb, VALUE two_jc, VALUE two_jd, VALUE two_je, VALUE two_jf)
51
+ {
52
+ gsl_sf_result *rslt = NULL;
53
+ VALUE v;
54
+ // local variable "status" declared and set, but never used
55
+ //int status;
56
+ CHECK_FIXNUM(two_ja); CHECK_FIXNUM(two_jb); CHECK_FIXNUM(two_jc);
57
+ CHECK_FIXNUM(two_jd); CHECK_FIXNUM(two_je); CHECK_FIXNUM(two_jf);
58
+ v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
59
+ /*status =*/ gsl_sf_coupling_6j_e(FIX2INT(two_ja), FIX2INT(two_jb),
60
+ FIX2INT(two_jc), FIX2INT(two_jd),
61
+ FIX2INT(two_je), FIX2INT(two_jf),
62
+ rslt);
63
+ return v;
64
+ }
65
+
66
+ static VALUE rb_gsl_sf_coupling_9j(VALUE obj, VALUE two_ja, VALUE two_jb,
67
+ VALUE two_jc, VALUE two_jd, VALUE two_je,
68
+ VALUE two_jf, VALUE two_jg, VALUE two_jh,
69
+ VALUE two_ji)
70
+ {
71
+ CHECK_FIXNUM(two_ja); CHECK_FIXNUM(two_jb); CHECK_FIXNUM(two_jc);
72
+ CHECK_FIXNUM(two_jd); CHECK_FIXNUM(two_je); CHECK_FIXNUM(two_jf);
73
+ CHECK_FIXNUM(two_jg); CHECK_FIXNUM(two_jh); CHECK_FIXNUM(two_ji);
74
+ return rb_float_new(gsl_sf_coupling_9j(FIX2INT(two_ja), FIX2INT(two_jb),
75
+ FIX2INT(two_jc), FIX2INT(two_jd),
76
+ FIX2INT(two_je), FIX2INT(two_jf),
77
+ FIX2INT(two_jg), FIX2INT(two_jh),
78
+ FIX2INT(two_ji)));
79
+ }
80
+
81
+ static VALUE rb_gsl_sf_coupling_9j_e(VALUE obj, VALUE two_ja, VALUE two_jb,
82
+ VALUE two_jc, VALUE two_jd, VALUE two_je,
83
+ VALUE two_jf, VALUE two_jg, VALUE two_jh,
84
+ VALUE two_ji)
85
+ {
86
+ gsl_sf_result *rslt = NULL;
87
+ VALUE v;
88
+ // local variable "status" declared and set, but never used
89
+ //int status;
90
+ CHECK_FIXNUM(two_ja); CHECK_FIXNUM(two_jb); CHECK_FIXNUM(two_jc);
91
+ CHECK_FIXNUM(two_jd); CHECK_FIXNUM(two_je); CHECK_FIXNUM(two_jf);
92
+ CHECK_FIXNUM(two_jg); CHECK_FIXNUM(two_jh); CHECK_FIXNUM(two_ji);
93
+ v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
94
+ /*status =*/ gsl_sf_coupling_9j_e(FIX2INT(two_ja), FIX2INT(two_jb),
95
+ FIX2INT(two_jc), FIX2INT(two_jd),
96
+ FIX2INT(two_je), FIX2INT(two_jf),
97
+ FIX2INT(two_jg), FIX2INT(two_jh),
98
+ FIX2INT(two_ji), rslt);
99
+ return v;
100
+ }
101
+
102
+ void Init_gsl_sf_coupling(VALUE module)
103
+ {
104
+ VALUE mgsl_sf_coupling;
105
+
106
+ rb_define_module_function(module, "coupling_3j", rb_gsl_sf_coupling_3j, 6);
107
+ rb_define_module_function(module, "coupling_3j_e", rb_gsl_sf_coupling_3j_e, 6);
108
+ rb_define_module_function(module, "coupling_6j", rb_gsl_sf_coupling_6j, 6);
109
+ rb_define_module_function(module, "coupling_6j_e", rb_gsl_sf_coupling_6j_e, 6);
110
+ rb_define_module_function(module, "coupling_9j", rb_gsl_sf_coupling_9j, 9);
111
+ rb_define_module_function(module, "coupling_9j_e", rb_gsl_sf_coupling_9j_e, 9);
112
+
113
+ mgsl_sf_coupling = rb_define_module_under(module, "Coupling");
114
+
115
+ rb_define_module_function(mgsl_sf_coupling, "3j", rb_gsl_sf_coupling_3j, 6);
116
+ rb_define_module_function(mgsl_sf_coupling, "3j_e", rb_gsl_sf_coupling_3j_e, 6);
117
+ rb_define_module_function(mgsl_sf_coupling, "6j", rb_gsl_sf_coupling_6j, 6);
118
+ rb_define_module_function(mgsl_sf_coupling, "6j_e", rb_gsl_sf_coupling_6j_e, 6);
119
+ rb_define_module_function(mgsl_sf_coupling, "9j", rb_gsl_sf_coupling_9j, 9);
120
+ rb_define_module_function(mgsl_sf_coupling, "9j_e", rb_gsl_sf_coupling_9j_e, 9);
121
+ }
@@ -0,0 +1,29 @@
1
+ /*
2
+ sf_dawson.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; without even the implied warranty of
10
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
+ */
12
+
13
+ #include "rb_gsl_sf.h"
14
+
15
+ static VALUE rb_gsl_sf_dawson(VALUE obj, VALUE x)
16
+ {
17
+ return rb_gsl_sf_eval1(gsl_sf_dawson, x);
18
+ }
19
+
20
+ static VALUE rb_gsl_sf_dawson_e(VALUE obj, VALUE x)
21
+ {
22
+ return rb_gsl_sf_eval_e(gsl_sf_dawson_e, x);
23
+ }
24
+
25
+ void Init_gsl_sf_dawson(VALUE module)
26
+ {
27
+ rb_define_module_function(module, "dawson", rb_gsl_sf_dawson, 1);
28
+ rb_define_module_function(module, "dawson_e", rb_gsl_sf_dawson_e, 1);
29
+ }
@@ -0,0 +1,157 @@
1
+ /*
2
+ sf_debye.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; without even the implied warranty of
10
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
+ */
12
+
13
+ #include "rb_gsl_sf.h"
14
+
15
+ static VALUE rb_gsl_sf_debye_1(VALUE obj, VALUE x)
16
+ {
17
+ return rb_gsl_sf_eval1(gsl_sf_debye_1, x);
18
+ }
19
+
20
+ static VALUE rb_gsl_sf_debye_1_e(VALUE obj, VALUE x)
21
+ {
22
+ return rb_gsl_sf_eval_e(gsl_sf_debye_1_e, x);
23
+ }
24
+
25
+ static VALUE rb_gsl_sf_debye_2(VALUE obj, VALUE x)
26
+ {
27
+ return rb_gsl_sf_eval1(gsl_sf_debye_2, x);
28
+ }
29
+
30
+ static VALUE rb_gsl_sf_debye_2_e(VALUE obj, VALUE x)
31
+ {
32
+ return rb_gsl_sf_eval_e(gsl_sf_debye_2_e, x);
33
+ }
34
+
35
+ static VALUE rb_gsl_sf_debye_3(VALUE obj, VALUE x)
36
+ {
37
+ return rb_gsl_sf_eval1(gsl_sf_debye_3, x);
38
+ }
39
+
40
+ static VALUE rb_gsl_sf_debye_3_e(VALUE obj, VALUE x)
41
+ {
42
+ return rb_gsl_sf_eval_e(gsl_sf_debye_3_e, x);
43
+ }
44
+
45
+ static VALUE rb_gsl_sf_debye_4(VALUE obj, VALUE x)
46
+ {
47
+ return rb_gsl_sf_eval1(gsl_sf_debye_4, x);
48
+ }
49
+
50
+ static VALUE rb_gsl_sf_debye_4_e(VALUE obj, VALUE x)
51
+ {
52
+ return rb_gsl_sf_eval_e(gsl_sf_debye_4_e, x);
53
+ }
54
+
55
+ static VALUE rb_gsl_sf_debye_n(int argc, VALUE *argv, VALUE obj)
56
+ {
57
+ int n;
58
+ VALUE x;
59
+ switch (argc) {
60
+ case 1:
61
+ n = 1;
62
+ x = argv[0];
63
+ break;
64
+ case 2:
65
+ CHECK_FIXNUM(argv[0]);
66
+ n = FIX2INT(argv[0]);
67
+ x = argv[1];
68
+ break;
69
+ default:
70
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 1 or 2)", argc);
71
+ break;
72
+ }
73
+ switch (n) {
74
+ case 1:
75
+ return rb_gsl_sf_eval1(gsl_sf_debye_1, x);
76
+ break;
77
+ case 2:
78
+ return rb_gsl_sf_eval1(gsl_sf_debye_2, x);
79
+ break;
80
+ case 3:
81
+ return rb_gsl_sf_eval1(gsl_sf_debye_3, x);
82
+ break;
83
+ case 4:
84
+ return rb_gsl_sf_eval1(gsl_sf_debye_4, x);
85
+ break;
86
+ #ifdef GSL_1_8_LATER
87
+ case 5:
88
+ return rb_gsl_sf_eval1(gsl_sf_debye_5, x);
89
+ break;
90
+ case 6:
91
+ return rb_gsl_sf_eval1(gsl_sf_debye_6, x);
92
+ break;
93
+ #endif
94
+ default:
95
+ rb_raise(rb_eRuntimeError, "n must be 1, 2, 3, or 4");
96
+ break;
97
+ }
98
+ }
99
+
100
+ #ifdef GSL_1_8_LATER
101
+ static VALUE rb_gsl_sf_debye_5(VALUE obj, VALUE x)
102
+ {
103
+ return rb_gsl_sf_eval1(gsl_sf_debye_5, x);
104
+ }
105
+
106
+ static VALUE rb_gsl_sf_debye_5_e(VALUE obj, VALUE x)
107
+ {
108
+ return rb_gsl_sf_eval_e(gsl_sf_debye_5_e, x);
109
+ }
110
+ static VALUE rb_gsl_sf_debye_6(VALUE obj, VALUE x)
111
+ {
112
+ return rb_gsl_sf_eval1(gsl_sf_debye_6, x);
113
+ }
114
+
115
+ static VALUE rb_gsl_sf_debye_6_e(VALUE obj, VALUE x)
116
+ {
117
+ return rb_gsl_sf_eval_e(gsl_sf_debye_6_e, x);
118
+ }
119
+
120
+ #endif
121
+
122
+ void Init_gsl_sf_debye(VALUE module)
123
+ {
124
+ VALUE mgsl_sf_debye;
125
+ rb_define_module_function(module, "debye_1", rb_gsl_sf_debye_1, 1);
126
+ rb_define_module_function(module, "debye_1_e", rb_gsl_sf_debye_1_e, 1);
127
+ rb_define_module_function(module, "debye_2", rb_gsl_sf_debye_2, 1);
128
+ rb_define_module_function(module, "debye_2_e", rb_gsl_sf_debye_2_e, 1);
129
+ rb_define_module_function(module, "debye_3", rb_gsl_sf_debye_3, 1);
130
+ rb_define_module_function(module, "debye_3_e", rb_gsl_sf_debye_3_e, 1);
131
+ rb_define_module_function(module, "debye_4", rb_gsl_sf_debye_4, 1);
132
+ rb_define_module_function(module, "debye_4_e", rb_gsl_sf_debye_4_e, 1);
133
+ #ifdef GSL_1_8_LATER
134
+ rb_define_module_function(module, "debye_5", rb_gsl_sf_debye_5, 1);
135
+ rb_define_module_function(module, "debye_5_e", rb_gsl_sf_debye_5_e, 1);
136
+ rb_define_module_function(module, "debye_6", rb_gsl_sf_debye_6, 1);
137
+ rb_define_module_function(module, "debye_6_e", rb_gsl_sf_debye_6_e, 1);
138
+ #endif
139
+ rb_define_module_function(module, "debye_n", rb_gsl_sf_debye_n, -1);
140
+
141
+ mgsl_sf_debye = rb_define_module_under(module, "Debye");
142
+ rb_define_module_function(mgsl_sf_debye, "one", rb_gsl_sf_debye_1, 1);
143
+ rb_define_module_function(mgsl_sf_debye, "one_e", rb_gsl_sf_debye_1_e, 1);
144
+ rb_define_module_function(mgsl_sf_debye, "two", rb_gsl_sf_debye_2, 1);
145
+ rb_define_module_function(mgsl_sf_debye, "two_e", rb_gsl_sf_debye_2_e, 1);
146
+ rb_define_module_function(mgsl_sf_debye, "three", rb_gsl_sf_debye_3, 1);
147
+ rb_define_module_function(mgsl_sf_debye, "three_e", rb_gsl_sf_debye_3_e, 1);
148
+ rb_define_module_function(mgsl_sf_debye, "four", rb_gsl_sf_debye_4, 1);
149
+ rb_define_module_function(mgsl_sf_debye, "four_e", rb_gsl_sf_debye_4_e, 1);
150
+ #ifdef GSL_1_8_LATER
151
+ rb_define_module_function(mgsl_sf_debye, "five", rb_gsl_sf_debye_5, 1);
152
+ rb_define_module_function(mgsl_sf_debye, "five_e", rb_gsl_sf_debye_5_e, 1);
153
+ rb_define_module_function(mgsl_sf_debye, "six", rb_gsl_sf_debye_6, 1);
154
+ rb_define_module_function(mgsl_sf_debye, "six_e", rb_gsl_sf_debye_6_e, 1);
155
+ #endif
156
+ rb_define_module_function(mgsl_sf_debye, "n", rb_gsl_sf_debye_n, -1);
157
+ }