gsl 1.12.109 → 1.14.5

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 (511) hide show
  1. data/AUTHORS +6 -0
  2. data/COPYING +339 -0
  3. data/ChangeLog +556 -0
  4. data/{README.rdoc → README} +3 -0
  5. data/Rakefile +54 -10
  6. data/THANKS +17 -0
  7. data/VERSION +1 -2
  8. data/examples/alf/alf.gp +15 -0
  9. data/examples/alf/alf.rb +32 -0
  10. data/examples/blas/blas.rb +13 -0
  11. data/examples/blas/dnrm2.rb +16 -0
  12. data/examples/blas/level1.rb +81 -0
  13. data/examples/blas/level2.rb +11 -0
  14. data/examples/blas/level3.rb +12 -0
  15. data/examples/bspline.rb +57 -0
  16. data/examples/cdf.rb +16 -0
  17. data/examples/cheb.rb +21 -0
  18. data/examples/combination.rb +23 -0
  19. data/examples/complex/RC-lpf.rb +47 -0
  20. data/examples/complex/add.rb +36 -0
  21. data/examples/complex/coerce.rb +14 -0
  22. data/examples/complex/complex.rb +25 -0
  23. data/examples/complex/fpmi.rb +70 -0
  24. data/examples/complex/functions.rb +77 -0
  25. data/examples/complex/michelson.rb +36 -0
  26. data/examples/complex/mul.rb +28 -0
  27. data/examples/complex/oscillator.rb +17 -0
  28. data/examples/complex/set.rb +37 -0
  29. data/examples/const/physconst.rb +151 -0
  30. data/examples/const/travel.rb +45 -0
  31. data/examples/deriv/demo.rb +13 -0
  32. data/examples/deriv/deriv.rb +36 -0
  33. data/examples/deriv/diff.rb +35 -0
  34. data/examples/dht.rb +42 -0
  35. data/examples/dirac.rb +56 -0
  36. data/examples/eigen/eigen.rb +34 -0
  37. data/examples/eigen/herm.rb +22 -0
  38. data/examples/eigen/narray.rb +9 -0
  39. data/examples/eigen/nonsymm.rb +37 -0
  40. data/examples/eigen/nonsymmv.rb +43 -0
  41. data/examples/eigen/qhoscillator.gp +35 -0
  42. data/examples/eigen/qhoscillator.rb +90 -0
  43. data/examples/eigen/vander.rb +41 -0
  44. data/examples/fft/fft.rb +17 -0
  45. data/examples/fft/fft2.rb +17 -0
  46. data/examples/fft/forward.rb +25 -0
  47. data/examples/fft/forward2.rb +26 -0
  48. data/examples/fft/radix2.rb +18 -0
  49. data/examples/fft/real-halfcomplex.rb +33 -0
  50. data/examples/fft/real-halfcomplex2.rb +30 -0
  51. data/examples/fft/realradix2.rb +19 -0
  52. data/examples/fft/sunspot.dat +256 -0
  53. data/examples/fft/sunspot.rb +16 -0
  54. data/examples/fit/expdata.dat +20 -0
  55. data/examples/fit/expfit.rb +31 -0
  56. data/examples/fit/gaussfit.rb +29 -0
  57. data/examples/fit/gaussian_2peaks.rb +34 -0
  58. data/examples/fit/hillfit.rb +40 -0
  59. data/examples/fit/lognormal.rb +26 -0
  60. data/examples/fit/lorentzfit.rb +22 -0
  61. data/examples/fit/multifit.rb +72 -0
  62. data/examples/fit/ndlinear.rb +133 -0
  63. data/examples/fit/nonlinearfit.rb +89 -0
  64. data/examples/fit/plot.gp +36 -0
  65. data/examples/fit/polyfit.rb +9 -0
  66. data/examples/fit/powerfit.rb +21 -0
  67. data/examples/fit/sigmoidfit.rb +40 -0
  68. data/examples/fit/sinfit.rb +22 -0
  69. data/examples/fit/wlinear.rb +46 -0
  70. data/examples/fresnel.rb +11 -0
  71. data/examples/function/function.rb +36 -0
  72. data/examples/function/log.rb +7 -0
  73. data/examples/function/min.rb +33 -0
  74. data/examples/function/sin.rb +10 -0
  75. data/examples/function/synchrotron.rb +18 -0
  76. data/examples/gallery/butterfly.rb +7 -0
  77. data/examples/gallery/cayley.rb +12 -0
  78. data/examples/gallery/cornu.rb +23 -0
  79. data/examples/gallery/eight.rb +11 -0
  80. data/examples/gallery/koch.rb +40 -0
  81. data/examples/gallery/lemniscate.rb +11 -0
  82. data/examples/gallery/polar.rb +11 -0
  83. data/examples/gallery/rgplot/cossin.rb +35 -0
  84. data/examples/gallery/rgplot/rgplot.replaced +0 -0
  85. data/examples/gallery/rgplot/roesller.rb +55 -0
  86. data/examples/gallery/roesller.rb +39 -0
  87. data/examples/gallery/scarabaeus.rb +14 -0
  88. data/examples/histogram/cauchy.rb +27 -0
  89. data/examples/histogram/cauchy.sh +2 -0
  90. data/examples/histogram/exponential.rb +19 -0
  91. data/examples/histogram/gauss.rb +16 -0
  92. data/examples/histogram/gsl-histogram.rb +40 -0
  93. data/examples/histogram/histo2d.rb +31 -0
  94. data/examples/histogram/histo3d.rb +34 -0
  95. data/examples/histogram/histogram-pdf.rb +27 -0
  96. data/examples/histogram/histogram.rb +26 -0
  97. data/examples/histogram/integral.rb +28 -0
  98. data/examples/histogram/poisson.rb +27 -0
  99. data/examples/histogram/power.rb +25 -0
  100. data/examples/histogram/rebin.rb +17 -0
  101. data/examples/histogram/smp.dat +5 -0
  102. data/examples/histogram/xexp.rb +21 -0
  103. data/examples/integration/ahmed.rb +21 -0
  104. data/examples/integration/cosmology.rb +75 -0
  105. data/examples/integration/friedmann.gp +16 -0
  106. data/examples/integration/friedmann.rb +35 -0
  107. data/examples/integration/gamma-zeta.rb +35 -0
  108. data/examples/integration/integration.rb +22 -0
  109. data/examples/integration/qag.rb +8 -0
  110. data/examples/integration/qag2.rb +14 -0
  111. data/examples/integration/qag3.rb +8 -0
  112. data/examples/integration/qagi.rb +28 -0
  113. data/examples/integration/qagi2.rb +49 -0
  114. data/examples/integration/qagiu.rb +29 -0
  115. data/examples/integration/qagp.rb +20 -0
  116. data/examples/integration/qags.rb +14 -0
  117. data/examples/integration/qawc.rb +18 -0
  118. data/examples/integration/qawf.rb +41 -0
  119. data/examples/integration/qawo.rb +29 -0
  120. data/examples/integration/qaws.rb +30 -0
  121. data/examples/integration/qng.rb +17 -0
  122. data/examples/interp/demo.gp +20 -0
  123. data/examples/interp/demo.rb +45 -0
  124. data/examples/interp/interp.rb +37 -0
  125. data/examples/interp/points +10 -0
  126. data/examples/interp/spline.rb +20 -0
  127. data/examples/jacobi/deriv.rb +40 -0
  128. data/examples/jacobi/integrate.rb +34 -0
  129. data/examples/jacobi/interp.rb +43 -0
  130. data/examples/jacobi/jacobi.rb +11 -0
  131. data/examples/linalg/HH.rb +15 -0
  132. data/examples/linalg/HH_narray.rb +13 -0
  133. data/examples/linalg/LQ_solve.rb +73 -0
  134. data/examples/linalg/LU.rb +84 -0
  135. data/examples/linalg/LU2.rb +31 -0
  136. data/examples/linalg/LU_narray.rb +24 -0
  137. data/examples/linalg/PTLQ.rb +47 -0
  138. data/examples/linalg/QR.rb +18 -0
  139. data/examples/linalg/QRPT.rb +47 -0
  140. data/examples/linalg/QR_solve.rb +78 -0
  141. data/examples/linalg/QR_solve_narray.rb +13 -0
  142. data/examples/linalg/SV.rb +16 -0
  143. data/examples/linalg/SV_narray.rb +12 -0
  144. data/examples/linalg/SV_solve.rb +49 -0
  145. data/examples/linalg/chol.rb +29 -0
  146. data/examples/linalg/chol_narray.rb +15 -0
  147. data/examples/linalg/complex.rb +57 -0
  148. data/examples/linalg/invert_narray.rb +10 -0
  149. data/examples/math/const.rb +67 -0
  150. data/examples/math/elementary.rb +35 -0
  151. data/examples/math/functions.rb +41 -0
  152. data/examples/math/inf_nan.rb +34 -0
  153. data/examples/math/minmax.rb +22 -0
  154. data/examples/math/power.rb +18 -0
  155. data/examples/math/test.rb +31 -0
  156. data/examples/matrix/a.dat +0 -0
  157. data/examples/matrix/add.rb +45 -0
  158. data/examples/matrix/b.dat +4 -0
  159. data/examples/matrix/cat.rb +31 -0
  160. data/examples/matrix/colvectors.rb +24 -0
  161. data/examples/matrix/complex.rb +41 -0
  162. data/examples/matrix/det.rb +29 -0
  163. data/examples/matrix/diagonal.rb +23 -0
  164. data/examples/matrix/get_all.rb +159 -0
  165. data/examples/matrix/hilbert.rb +31 -0
  166. data/examples/matrix/iterator.rb +19 -0
  167. data/examples/matrix/matrix.rb +57 -0
  168. data/examples/matrix/minmax.rb +53 -0
  169. data/examples/matrix/mul.rb +39 -0
  170. data/examples/matrix/rand.rb +20 -0
  171. data/examples/matrix/read.rb +29 -0
  172. data/examples/matrix/rowcol.rb +47 -0
  173. data/examples/matrix/set.rb +41 -0
  174. data/examples/matrix/set_all.rb +100 -0
  175. data/examples/matrix/view.rb +32 -0
  176. data/examples/matrix/view_all.rb +148 -0
  177. data/examples/matrix/write.rb +23 -0
  178. data/examples/min.rb +29 -0
  179. data/examples/monte/miser.rb +47 -0
  180. data/examples/monte/monte.rb +47 -0
  181. data/examples/monte/plain.rb +47 -0
  182. data/examples/monte/vegas.rb +46 -0
  183. data/examples/multimin/bundle.rb +66 -0
  184. data/examples/multimin/cqp.rb +109 -0
  185. data/examples/multimin/fdfminimizer.rb +40 -0
  186. data/examples/multimin/fminimizer.rb +41 -0
  187. data/examples/multiroot/demo.rb +36 -0
  188. data/examples/multiroot/fdfsolver.rb +50 -0
  189. data/examples/multiroot/fsolver.rb +33 -0
  190. data/examples/multiroot/fsolver2.rb +32 -0
  191. data/examples/multiroot/fsolver3.rb +26 -0
  192. data/examples/narray/histogram.rb +14 -0
  193. data/examples/narray/mandel.rb +27 -0
  194. data/examples/narray/narray.rb +28 -0
  195. data/examples/narray/narray2.rb +44 -0
  196. data/examples/narray/sf.rb +26 -0
  197. data/examples/ntuple/create.rb +17 -0
  198. data/examples/ntuple/project.rb +31 -0
  199. data/examples/odeiv/binarysystem.gp +23 -0
  200. data/examples/odeiv/binarysystem.rb +104 -0
  201. data/examples/odeiv/demo.gp +24 -0
  202. data/examples/odeiv/demo.rb +69 -0
  203. data/examples/odeiv/demo2.gp +26 -0
  204. data/examples/odeiv/duffing.rb +45 -0
  205. data/examples/odeiv/frei1.rb +109 -0
  206. data/examples/odeiv/frei2.rb +76 -0
  207. data/examples/odeiv/legendre.rb +52 -0
  208. data/examples/odeiv/odeiv.rb +32 -0
  209. data/examples/odeiv/odeiv2.rb +45 -0
  210. data/examples/odeiv/oscillator.rb +42 -0
  211. data/examples/odeiv/sedov.rb +97 -0
  212. data/examples/odeiv/whitedwarf.gp +40 -0
  213. data/examples/odeiv/whitedwarf.rb +158 -0
  214. data/examples/ool/conmin.rb +100 -0
  215. data/examples/ool/gencan.rb +99 -0
  216. data/examples/ool/pgrad.rb +100 -0
  217. data/examples/ool/spg.rb +100 -0
  218. data/examples/pdf/bernoulli.rb +5 -0
  219. data/examples/pdf/beta.rb +7 -0
  220. data/examples/pdf/binomiral.rb +10 -0
  221. data/examples/pdf/cauchy.rb +6 -0
  222. data/examples/pdf/chisq.rb +8 -0
  223. data/examples/pdf/exponential.rb +7 -0
  224. data/examples/pdf/exppow.rb +6 -0
  225. data/examples/pdf/fdist.rb +7 -0
  226. data/examples/pdf/flat.rb +7 -0
  227. data/examples/pdf/gamma.rb +8 -0
  228. data/examples/pdf/gauss-tail.rb +5 -0
  229. data/examples/pdf/gauss.rb +6 -0
  230. data/examples/pdf/geometric.rb +5 -0
  231. data/examples/pdf/gumbel.rb +6 -0
  232. data/examples/pdf/hypergeometric.rb +11 -0
  233. data/examples/pdf/landau.rb +5 -0
  234. data/examples/pdf/laplace.rb +7 -0
  235. data/examples/pdf/logarithmic.rb +5 -0
  236. data/examples/pdf/logistic.rb +6 -0
  237. data/examples/pdf/lognormal.rb +6 -0
  238. data/examples/pdf/neg-binomiral.rb +10 -0
  239. data/examples/pdf/pareto.rb +7 -0
  240. data/examples/pdf/pascal.rb +10 -0
  241. data/examples/pdf/poisson.rb +5 -0
  242. data/examples/pdf/rayleigh-tail.rb +6 -0
  243. data/examples/pdf/rayleigh.rb +6 -0
  244. data/examples/pdf/tdist.rb +6 -0
  245. data/examples/pdf/weibull.rb +8 -0
  246. data/examples/permutation/ex1.rb +22 -0
  247. data/examples/permutation/permutation.rb +16 -0
  248. data/examples/poly/bell.rb +6 -0
  249. data/examples/poly/bessel.rb +6 -0
  250. data/examples/poly/cheb.rb +6 -0
  251. data/examples/poly/cheb_II.rb +6 -0
  252. data/examples/poly/cubic.rb +9 -0
  253. data/examples/poly/demo.rb +20 -0
  254. data/examples/poly/eval.rb +28 -0
  255. data/examples/poly/eval_derivs.rb +14 -0
  256. data/examples/poly/fit.rb +21 -0
  257. data/examples/poly/hermite.rb +6 -0
  258. data/examples/poly/poly.rb +13 -0
  259. data/examples/poly/quadratic.rb +25 -0
  260. data/examples/random/diffusion.rb +34 -0
  261. data/examples/random/gaussian.rb +9 -0
  262. data/examples/random/generator.rb +27 -0
  263. data/examples/random/hdsobol.rb +21 -0
  264. data/examples/random/poisson.rb +9 -0
  265. data/examples/random/qrng.rb +19 -0
  266. data/examples/random/randomwalk.rb +37 -0
  267. data/examples/random/randomwalk2d.rb +19 -0
  268. data/examples/random/rayleigh.rb +36 -0
  269. data/examples/random/rng.rb +33 -0
  270. data/examples/random/rngextra.rb +14 -0
  271. data/examples/roots/bisection.rb +25 -0
  272. data/examples/roots/brent.rb +43 -0
  273. data/examples/roots/demo.rb +30 -0
  274. data/examples/roots/newton.rb +46 -0
  275. data/examples/roots/recombination.gp +12 -0
  276. data/examples/roots/recombination.rb +61 -0
  277. data/examples/roots/steffenson.rb +48 -0
  278. data/examples/sf/ShiChi.rb +6 -0
  279. data/examples/sf/SiCi.rb +6 -0
  280. data/examples/sf/airy_Ai.rb +8 -0
  281. data/examples/sf/airy_Bi.rb +8 -0
  282. data/examples/sf/bessel_IK.rb +12 -0
  283. data/examples/sf/bessel_JY.rb +13 -0
  284. data/examples/sf/beta_inc.rb +9 -0
  285. data/examples/sf/clausen.rb +6 -0
  286. data/examples/sf/dawson.rb +5 -0
  287. data/examples/sf/debye.rb +9 -0
  288. data/examples/sf/dilog.rb +6 -0
  289. data/examples/sf/ellint.rb +6 -0
  290. data/examples/sf/expint.rb +8 -0
  291. data/examples/sf/fermi.rb +10 -0
  292. data/examples/sf/gamma_inc_P.rb +9 -0
  293. data/examples/sf/gegenbauer.rb +8 -0
  294. data/examples/sf/hyperg.rb +7 -0
  295. data/examples/sf/laguerre.rb +19 -0
  296. data/examples/sf/lambertW.rb +5 -0
  297. data/examples/sf/legendre_P.rb +10 -0
  298. data/examples/sf/lngamma.rb +5 -0
  299. data/examples/sf/psi.rb +54 -0
  300. data/examples/sf/sphbessel.gp +27 -0
  301. data/examples/sf/sphbessel.rb +30 -0
  302. data/examples/sf/synchrotron.rb +5 -0
  303. data/examples/sf/transport.rb +10 -0
  304. data/examples/sf/zetam1.rb +5 -0
  305. data/examples/siman.rb +44 -0
  306. data/examples/sort/heapsort.rb +23 -0
  307. data/examples/sort/heapsort_vector_complex.rb +21 -0
  308. data/examples/sort/sort.rb +23 -0
  309. data/examples/sort/sort2.rb +16 -0
  310. data/examples/stats/mean.rb +17 -0
  311. data/examples/stats/statistics.rb +18 -0
  312. data/examples/stats/test.rb +9 -0
  313. data/examples/sum.rb +34 -0
  314. data/examples/tamu_anova.rb +18 -0
  315. data/examples/vector/a.dat +0 -0
  316. data/examples/vector/add.rb +56 -0
  317. data/examples/vector/b.dat +4 -0
  318. data/examples/vector/c.dat +3 -0
  319. data/examples/vector/collect.rb +26 -0
  320. data/examples/vector/compare.rb +28 -0
  321. data/examples/vector/complex.rb +51 -0
  322. data/examples/vector/complex_get_all.rb +85 -0
  323. data/examples/vector/complex_set_all.rb +131 -0
  324. data/examples/vector/complex_view_all.rb +77 -0
  325. data/examples/vector/connect.rb +22 -0
  326. data/examples/vector/decimate.rb +38 -0
  327. data/examples/vector/diff.rb +31 -0
  328. data/examples/vector/filescan.rb +17 -0
  329. data/examples/vector/floor.rb +23 -0
  330. data/examples/vector/get_all.rb +82 -0
  331. data/examples/vector/gnuplot.rb +38 -0
  332. data/examples/vector/graph.rb +28 -0
  333. data/examples/vector/histogram.rb +22 -0
  334. data/examples/vector/linspace.rb +24 -0
  335. data/examples/vector/log.rb +17 -0
  336. data/examples/vector/logic.rb +33 -0
  337. data/examples/vector/logspace.rb +25 -0
  338. data/examples/vector/minmax.rb +47 -0
  339. data/examples/vector/mul.rb +49 -0
  340. data/examples/vector/narray.rb +46 -0
  341. data/examples/vector/read.rb +29 -0
  342. data/examples/vector/set.rb +35 -0
  343. data/examples/vector/set_all.rb +121 -0
  344. data/examples/vector/smpv.dat +15 -0
  345. data/examples/vector/test.rb +43 -0
  346. data/examples/vector/test_gslblock.rb +58 -0
  347. data/examples/vector/vector.rb +110 -0
  348. data/examples/vector/view.rb +35 -0
  349. data/examples/vector/view_all.rb +73 -0
  350. data/examples/vector/where.rb +29 -0
  351. data/examples/vector/write.rb +24 -0
  352. data/examples/vector/zip.rb +34 -0
  353. data/examples/wavelet/ecg.dat +256 -0
  354. data/examples/wavelet/wavelet1.rb +50 -0
  355. data/ext/extconf.rb +9 -0
  356. data/ext/gsl.c +10 -1
  357. data/ext/histogram.c +6 -2
  358. data/ext/integration.c +39 -0
  359. data/ext/matrix_complex.c +1 -1
  360. data/ext/multiset.c +214 -0
  361. data/ext/nmf.c +4 -0
  362. data/ext/nmf_wrap.c +3 -0
  363. data/ext/vector_complex.c +1 -1
  364. data/ext/vector_double.c +3 -3
  365. data/ext/vector_source.c +6 -6
  366. data/include/rb_gsl.h +7 -0
  367. data/include/rb_gsl_common.h +6 -0
  368. data/rdoc/alf.rdoc +77 -0
  369. data/rdoc/blas.rdoc +269 -0
  370. data/rdoc/bspline.rdoc +42 -0
  371. data/rdoc/changes.rdoc +164 -0
  372. data/rdoc/cheb.rdoc +99 -0
  373. data/rdoc/cholesky_complex.rdoc +46 -0
  374. data/rdoc/combi.rdoc +125 -0
  375. data/rdoc/complex.rdoc +210 -0
  376. data/rdoc/const.rdoc +546 -0
  377. data/rdoc/dht.rdoc +122 -0
  378. data/rdoc/diff.rdoc +133 -0
  379. data/rdoc/ehandling.rdoc +50 -0
  380. data/rdoc/eigen.rdoc +401 -0
  381. data/rdoc/fft.rdoc +535 -0
  382. data/rdoc/fit.rdoc +284 -0
  383. data/rdoc/function.rdoc +94 -0
  384. data/rdoc/graph.rdoc +137 -0
  385. data/rdoc/hist.rdoc +409 -0
  386. data/rdoc/hist2d.rdoc +279 -0
  387. data/rdoc/hist3d.rdoc +112 -0
  388. data/rdoc/index.rdoc +62 -0
  389. data/rdoc/integration.rdoc +398 -0
  390. data/rdoc/interp.rdoc +231 -0
  391. data/rdoc/intro.rdoc +27 -0
  392. data/rdoc/linalg.rdoc +681 -0
  393. data/rdoc/linalg_complex.rdoc +88 -0
  394. data/rdoc/math.rdoc +276 -0
  395. data/rdoc/matrix.rdoc +1093 -0
  396. data/rdoc/min.rdoc +189 -0
  397. data/rdoc/monte.rdoc +234 -0
  398. data/rdoc/multimin.rdoc +312 -0
  399. data/rdoc/multiroot.rdoc +293 -0
  400. data/rdoc/narray.rdoc +173 -0
  401. data/rdoc/ndlinear.rdoc +247 -0
  402. data/rdoc/nonlinearfit.rdoc +348 -0
  403. data/rdoc/ntuple.rdoc +88 -0
  404. data/rdoc/odeiv.rdoc +378 -0
  405. data/rdoc/perm.rdoc +221 -0
  406. data/rdoc/poly.rdoc +335 -0
  407. data/rdoc/qrng.rdoc +90 -0
  408. data/rdoc/randist.rdoc +233 -0
  409. data/rdoc/ref.rdoc +93 -0
  410. data/rdoc/rng.rdoc +203 -0
  411. data/rdoc/rngextra.rdoc +11 -0
  412. data/rdoc/roots.rdoc +305 -0
  413. data/rdoc/screenshot.rdoc +40 -0
  414. data/rdoc/sf.rdoc +1622 -0
  415. data/rdoc/siman.rdoc +89 -0
  416. data/rdoc/sort.rdoc +94 -0
  417. data/rdoc/start.rdoc +16 -0
  418. data/rdoc/stats.rdoc +219 -0
  419. data/rdoc/sum.rdoc +65 -0
  420. data/rdoc/tensor.rdoc +251 -0
  421. data/rdoc/tut.rdoc +5 -0
  422. data/rdoc/use.rdoc +177 -0
  423. data/rdoc/vector.rdoc +1243 -0
  424. data/rdoc/vector_complex.rdoc +347 -0
  425. data/rdoc/wavelet.rdoc +218 -0
  426. data/setup.rb +1585 -0
  427. data/tests/blas/amax.rb +14 -0
  428. data/tests/blas/asum.rb +16 -0
  429. data/tests/blas/axpy.rb +25 -0
  430. data/tests/blas/copy.rb +23 -0
  431. data/tests/blas/dot.rb +23 -0
  432. data/tests/bspline.rb +53 -0
  433. data/tests/cdf.rb +1388 -0
  434. data/tests/cheb.rb +112 -0
  435. data/tests/combination.rb +123 -0
  436. data/tests/complex.rb +17 -0
  437. data/tests/const.rb +24 -0
  438. data/tests/deriv.rb +85 -0
  439. data/tests/dht/dht1.rb +17 -0
  440. data/tests/dht/dht2.rb +23 -0
  441. data/tests/dht/dht3.rb +23 -0
  442. data/tests/dht/dht4.rb +23 -0
  443. data/tests/diff.rb +78 -0
  444. data/tests/eigen/eigen.rb +220 -0
  445. data/tests/eigen/gen.rb +105 -0
  446. data/tests/eigen/genherm.rb +66 -0
  447. data/tests/eigen/gensymm.rb +68 -0
  448. data/tests/eigen/nonsymm.rb +53 -0
  449. data/tests/eigen/nonsymmv.rb +53 -0
  450. data/tests/eigen/symm-herm.rb +74 -0
  451. data/tests/err.rb +58 -0
  452. data/tests/fit.rb +124 -0
  453. data/tests/gsl_test.rb +118 -0
  454. data/tests/gsl_test2.rb +107 -0
  455. data/tests/histo.rb +12 -0
  456. data/tests/integration/integration1.rb +72 -0
  457. data/tests/integration/integration2.rb +71 -0
  458. data/tests/integration/integration3.rb +71 -0
  459. data/tests/integration/integration4.rb +71 -0
  460. data/tests/interp.rb +45 -0
  461. data/tests/linalg/HH.rb +64 -0
  462. data/tests/linalg/LU.rb +47 -0
  463. data/tests/linalg/QR.rb +77 -0
  464. data/tests/linalg/SV.rb +24 -0
  465. data/tests/linalg/TDN.rb +116 -0
  466. data/tests/linalg/TDS.rb +122 -0
  467. data/tests/linalg/bidiag.rb +73 -0
  468. data/tests/linalg/cholesky.rb +20 -0
  469. data/tests/linalg/linalg.rb +158 -0
  470. data/tests/matrix/matrix_nmf_test.rb +39 -0
  471. data/tests/matrix/matrix_test.rb +48 -0
  472. data/tests/min.rb +99 -0
  473. data/tests/monte/miser.rb +31 -0
  474. data/tests/monte/vegas.rb +45 -0
  475. data/tests/multifit/test_2dgauss.rb +112 -0
  476. data/tests/multifit/test_brown.rb +90 -0
  477. data/tests/multifit/test_enso.rb +246 -0
  478. data/tests/multifit/test_filip.rb +155 -0
  479. data/tests/multifit/test_gauss.rb +97 -0
  480. data/tests/multifit/test_longley.rb +110 -0
  481. data/tests/multifit/test_multifit.rb +52 -0
  482. data/tests/multimin.rb +139 -0
  483. data/tests/multiroot.rb +131 -0
  484. data/tests/multiset.rb +52 -0
  485. data/tests/odeiv.rb +353 -0
  486. data/tests/poly/poly.rb +242 -0
  487. data/tests/poly/special.rb +65 -0
  488. data/tests/qrng.rb +131 -0
  489. data/tests/quartic.rb +29 -0
  490. data/tests/randist.rb +134 -0
  491. data/tests/rng.rb +305 -0
  492. data/tests/roots.rb +76 -0
  493. data/tests/run-test.sh +17 -0
  494. data/tests/sf/gsl_test_sf.rb +249 -0
  495. data/tests/sf/test_airy.rb +83 -0
  496. data/tests/sf/test_bessel.rb +306 -0
  497. data/tests/sf/test_coulomb.rb +17 -0
  498. data/tests/sf/test_dilog.rb +25 -0
  499. data/tests/sf/test_gamma.rb +209 -0
  500. data/tests/sf/test_hyperg.rb +356 -0
  501. data/tests/sf/test_legendre.rb +227 -0
  502. data/tests/sf/test_mathieu.rb +59 -0
  503. data/tests/sf/test_sf.rb +839 -0
  504. data/tests/stats.rb +174 -0
  505. data/tests/sum.rb +98 -0
  506. data/tests/sys.rb +323 -0
  507. data/tests/tensor.rb +419 -0
  508. data/tests/vector/vector_complex_test.rb +101 -0
  509. data/tests/vector/vector_test.rb +141 -0
  510. data/tests/wavelet.rb +142 -0
  511. metadata +596 -15
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env ruby
2
+ # Turn on warnings
3
+ $-w = true
4
+
5
+ require 'irb/xmp'
6
+ require 'gsl'
7
+
8
+ # Apparently, IRB::Frame has a bug that prevents the defaults from working, so
9
+ # an XMP instance must be created explicitly this way instead of using the
10
+ # otherwise convenient xmp method.
11
+ XMP.new(IRB::Frame.top(-1)).puts <<END
12
+ # Create NMatrix m
13
+ m = NMatrix[[0, 1.2, 1],[1.5, 0, 2]]
14
+
15
+ # Convert NMatrix m to Vector gv
16
+ gv = m.to_gv
17
+
18
+ # Convert Vector gv to NArray m2
19
+ m2 = gv.to_na
20
+ m2.class
21
+
22
+ # Create GSL::Vector v
23
+ v = GSL::Vector.alloc(1..4)
24
+
25
+ # Convert v to NArray na
26
+ na = v.to_na
27
+ na.class
28
+
29
+ # Convert na back to Vector
30
+ v2 = na.to_gv
31
+
32
+ # Create new Vector copy of na
33
+ v3 = GSL::Vector.alloc(na)
34
+
35
+ # Create Vector::View of na
36
+ v4 = na.to_gv_view
37
+
38
+ # Set element of Vector::View
39
+ v4[2] = 123
40
+
41
+ # Show that na was modified
42
+ na
43
+
44
+ # Show that v3 was not modified
45
+ v3
46
+ END
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # Turn on warnings
3
+ $-w = true
4
+
5
+ require 'irb/xmp'
6
+ require 'gsl'
7
+
8
+ # Apparently, IRB::Frame has a bug that prevents the defaults from working, so
9
+ # an XMP instance must be created explicitly this way instead of using the
10
+ # otherwise convenient xmp method.
11
+ XMP.new(IRB::Frame.top(-1)).puts <<END
12
+ # Create test Vector v
13
+ v = GSL::Vector.alloc(4)
14
+
15
+ # Read data into Vector v from binary file a.dat using #fread
16
+ v.fread("a.dat")
17
+
18
+ # Show v
19
+ v
20
+
21
+ # Create another test Vector
22
+ v2 = GSL::Vector.alloc(4)
23
+
24
+ # Read data into Vector v2 from text file b.dat using #fscanf
25
+ v2.fscanf("b.dat")
26
+
27
+ # Show v2
28
+ v2
29
+ END
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+ # Turn on warnings
3
+ $-w = true
4
+
5
+ require 'irb/xmp'
6
+ require 'gsl'
7
+
8
+ # Apparently, IRB::Frame has a bug that prevents the defaults from working, so
9
+ # an XMP instance must be created explicitly this way instead of using the
10
+ # otherwise convenient xmp method.
11
+ XMP.new(IRB::Frame.top(-1)).puts <<END
12
+ # Create test Vector
13
+ v = GSL::Vector.alloc(1, 2, 3, 4, 5)
14
+
15
+ # Show third element
16
+ v[3]
17
+
18
+ # Set all elements to 9
19
+ v.set_all(9)
20
+
21
+ # Set all elements to 0
22
+ v.set_zero
23
+
24
+ # Set all elements to 3
25
+ v[] = 3
26
+
27
+ # Show v
28
+ v
29
+
30
+ # Set all elements to 0, except element 3 which is set to 1
31
+ v.set_basis(3)
32
+
33
+ # Set element 2 to 5.0
34
+ v.set(2, 5)
35
+ END
@@ -0,0 +1,121 @@
1
+ #!/usr/bin/env ruby
2
+ # Turn on warnings
3
+ $-w = true
4
+
5
+ require 'irb/xmp'
6
+ require 'gsl'
7
+
8
+ # Apparently, IRB::Frame has a bug that prevents the defaults from working, so
9
+ # an XMP instance must be created explicitly this way instead of using the
10
+ # otherwise convenient xmp method.
11
+ XMP.new(IRB::Frame.top(-1)).puts <<END
12
+ # These examples show some of the ways that Vector#set or its alias Vector#[]=
13
+ # can be invoked. For a single argument, this is equivalent to Vector#set_all.
14
+ # For two arguments with the first a Fixnum i, this sets the i'th element (or
15
+ # the (size-i)'th element to the value of the second argument. All other forms
16
+ # treat all but the last argument as with Vector#subvector and set the
17
+ # specified elements based on the last argument, which can be a Vector (or
18
+ # Vector::View), an Array, a Range, or a Numeric. Vector, Array, and Range
19
+ # rvalues must have the same number of elements as the specified subvector.
20
+ # For a Numeric rvalue, all elements of the subvector are set to that value.
21
+ #
22
+ # Note the different return values of Vector#set and Vector#[]=. Vector#set
23
+ # return self, but Vector[]= return the value to the right of the = sign. This
24
+ # must be standard Ruby behavior since the underlying code returns the same
25
+ # value to Ruby regardless of whether it is invoked as #set or #[]=.
26
+ #
27
+ # Also be careful is setting part of a Vector from another part of the same
28
+ # vector. The GSL method that performs this operation uses memcpy, which does
29
+ # not handle overlapping memory regions in a well defined way. See the last
30
+ # two examples.
31
+ #
32
+ # See examples/vector/view_all.rb for additional examples of how to specify
33
+ # subvectors.
34
+
35
+ # Create test vector v
36
+ v = GSL::Vector.indgen(9)
37
+
38
+ # Vector#set and Vector#[]= with one arg sets all elements
39
+ v.set(1.2)
40
+ v[] = 3.4
41
+ v
42
+
43
+ # Vector#[i]= Numeric sets the i'th element if i is
44
+ # positive or the (size+i)'th element if i is negative.
45
+ v[3] = 5.6
46
+ v[-8] = 7.8
47
+ v
48
+
49
+ # Specifying subvector using Range with various rvalue types
50
+ v[1..4] = GSL::Vector[2, 3, 5, 7] # rvalue is Vector
51
+ v
52
+
53
+ v[1..4] = [11, 13, 17, 19] # rvalue is Array
54
+ v
55
+
56
+ v[1..4] = 24..27 # rvalue is Range
57
+ v
58
+
59
+ v[1..4] = 1.0 # rvalue is Numeric
60
+ v
61
+
62
+ # Specifying subvector using Range and stride with various rvalue types
63
+ v[0..4, 2] = GSL::Vector[2, 3, 5] # rvalue is Vector
64
+ v
65
+
66
+ v[0..4, 2] = [7, 11, 13] # rvalue is Array
67
+ v
68
+
69
+ v[0..4, 2] = 8..10 # rvalue is Range
70
+ v
71
+
72
+ v[0..4, 2] = 1.0 # rvalue is Numeric
73
+ v
74
+
75
+ # Specifying subvector using two Fixnums (offset, length) with various rvalue
76
+ # types
77
+ v[2, 4] = GSL::Vector[2, 3, 5, 7] # rvalue is Vector
78
+ v
79
+
80
+ v[2, 4] = [11, 13, 17, 19] # rvalue is Array
81
+ v
82
+
83
+ v[2, 4] = 24..27 # rvalue is Range
84
+ v
85
+
86
+ v[2, 4] = 1.0 # rvalue is Numeric
87
+ v
88
+
89
+ # Specifying subvector using three Fixnum arguments (offset, stride, length)
90
+ # with various rvalue types
91
+ v[1, 2, 3] = GSL::Vector[2, 3, 5] # rvalue is Vector
92
+ v
93
+
94
+ v[1, 2, 3] = [7, 11, 13] # rvalue is Array
95
+ v
96
+
97
+ v[1, 2, 3] = 8..10 # rvalue is Range
98
+ v
99
+
100
+ v[1, 2, 3] = 1.0 # rvalue is Numeric
101
+ v
102
+
103
+ # Copying part of a Vector to another part of the same Vector can potentially
104
+ # be problematic if the regions overlap.
105
+ v.indgen!
106
+ v[0, 3] = v[2, 3]
107
+ v
108
+
109
+ v.indgen!
110
+ v[2, 3] = v[0, 3]
111
+ v
112
+
113
+ # But it's OK if the regions do not overlap
114
+ v.indgen!
115
+ v[0, 3] = v[3, 3]
116
+ v
117
+
118
+ v.indgen!
119
+ v[3, 3] = v[0, 3]
120
+ v
121
+ END
@@ -0,0 +1,15 @@
1
+ 1
2
+ 3
3
+ 5
4
+ 75
5
+ 6
6
+ 5
7
+ 568
8
+ 35
9
+ 578
10
+ 54
11
+ 758
12
+ 786
13
+ 23
14
+ 34524
15
+ 13
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env ruby
2
+ # Turn on warnings
3
+ $-w = true
4
+
5
+ require 'irb/xmp'
6
+ require 'gsl'
7
+
8
+ # Apparently, IRB::Frame has a bug that prevents the defaults from working, so
9
+ # an XMP instance must be created explicitly this way instead of using the
10
+ # otherwise convenient xmp method.
11
+ XMP.new(IRB::Frame.top(-1)).puts <<END
12
+ # Create one Vector and two Vector::Ints
13
+ x = GSL::Vector[1, 2, 3]
14
+ y = GSL::Vector::Int[1, 0, 5]
15
+ a = GSL::Vector::Int[0, 0, 0]
16
+
17
+ # Call #any? on them
18
+ x.any?
19
+ y.any?
20
+ a.any?
21
+
22
+ # Call #all? on them
23
+ x.all?
24
+ y.all?
25
+ a.all?
26
+
27
+ # Call #none? on them
28
+ x.none?
29
+ y.none?
30
+ a.none?
31
+
32
+ # Call x.any? with blocks
33
+ x.any? { |val| val > 5 }
34
+ x.any? { |val| val > 2 }
35
+
36
+ # Call x.all? with blocks
37
+ x.all? { |val| val >= 1 }
38
+ x.all? { |val| val >= 2 }
39
+
40
+ # Call x.none? with blocks
41
+ x.none? { |val| val == 1 }
42
+ x.none? { |val| val == 5 }
43
+ END
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env ruby
2
+ # Turn on warnings
3
+ $-w = true
4
+
5
+ # This script is written by Cameron McBride.
6
+ # Thank you Cameron!
7
+
8
+ #gem 'gsl', '=1.10.3'
9
+ require 'irb/xmp'
10
+ require 'gsl'
11
+ puts "Using rb-gsl #{GSL::RB_GSL_VERSION}"
12
+
13
+ # Seed random number generator for repeatable results
14
+ srand(?r-?b+?g-?s-?l)
15
+
16
+ # The creation of the test Vector below can be replaced with any of these lines
17
+ # to show the behavior with GSL::Block, GSL::Vector::Int, and
18
+ # GSL::Vector::Int::Block. Note that the block objects should NOT be created
19
+ # using "v = GSL::Vector[0..9].block" because the Vector object will be subject
20
+ # to garbage collection which will free the memory that the Block object points
21
+ # to. See the BUGS file for more information.
22
+ #
23
+ # vv = GSL::Vector[0..9]; v = vv.block
24
+ # v = GSL::Vector::Int[0..9]
25
+ # vv = GSL::Vector::Int[0..9]; v = vv.block
26
+
27
+ # Apparently, IRB::Frame has a bug that prevents the defaults from working, so
28
+ # an XMP instance must be created explicitly this way instead of using the
29
+ # otherwise convenient xmp method.
30
+ XMP.new(IRB::Frame.top(-1)).puts <<END
31
+ # Create test Vector v
32
+ v = GSL::Vector[0..9]
33
+
34
+ # Create mask
35
+ mask = (v > 2)
36
+
37
+ # Show mask.where with no block
38
+ mask.where
39
+
40
+ # Show mask.where with "true" block
41
+ mask.where { true }
42
+
43
+ # Show mask.where with "false" block
44
+ # NB: Returns nil, not empty object!
45
+ mask.where { false }
46
+
47
+ # Show mask.where with no block
48
+ mask.where2
49
+
50
+ # Show mask.where with "true" block
51
+ mask.where2 { true }
52
+
53
+ # Show mask.where with "false" block
54
+ mask.where2 { false }
55
+
56
+ # Show mask.where with random block
57
+ mask.where2 { rand > 0.5 }
58
+ END
@@ -0,0 +1,110 @@
1
+ #!/usr/bin/env ruby
2
+ # Turn on warnings
3
+ $-w = true
4
+
5
+ require 'irb/xmp'
6
+ require 'gsl'
7
+
8
+ # Apparently, IRB::Frame has a bug that prevents the defaults from working, so
9
+ # an XMP instance must be created explicitly this way instead of using the
10
+ # otherwise convenient xmp method.
11
+ XMP.new(IRB::Frame.top(-1)).puts <<END
12
+ # Create test Vector with 15 elements initialized to 0.0
13
+ v = GSL::Vector::alloc(15)
14
+
15
+ # Set elements of v from file smpv.dat
16
+ File.open("smpv.dat") do |f|
17
+ v.fscanf(f)
18
+ end
19
+
20
+ # Show v
21
+ v
22
+
23
+ # Create another test vector with three elements
24
+ # initialized to 10.0, 1.0, and 3.0.
25
+ v2 = GSL::Vector.alloc(10, 1, 3)
26
+ END
27
+
28
+ __END__
29
+
30
+ # TODO Remove examples below that are duplicated elsewhere
31
+ # TODO Include examples below that are not duplicated elsewhere
32
+ v = GSL::Vector::alloc([9, 1, 2, 3, 12, 6, 0.1, 0.56, 5, 7, 2])
33
+ v.print
34
+ p v.size
35
+ v2 = GSL::Vector::alloc(11)
36
+ v2.set(1, 123)
37
+ p v2.to_a
38
+
39
+ v = GSL::Vector::alloc([1, 2, 3, 4, 5])
40
+ v.print
41
+ a = v.to_a
42
+ p a
43
+ a[2] = 12.0
44
+ v2 = a.to_gv
45
+ v2.print
46
+ __END__
47
+
48
+ p = v.sort_index
49
+ p p.to_a
50
+
51
+ v2 = GSL::Vector::alloc([5, 6, 7])
52
+
53
+ v3 = v2.scale!(2)
54
+ v3.print
55
+ v2.print
56
+
57
+ p v3.minmax
58
+
59
+ p v3.max_index
60
+ p v3.min_index
61
+ p v3.minmax_index
62
+
63
+ a = [1, 2, 3]
64
+ v = a.to_gv
65
+ p v.to_a
66
+
67
+ __END__
68
+
69
+ v3 = v * v2
70
+ v3.print
71
+
72
+ v.print
73
+
74
+ v.mul!(v2)
75
+ v.print
76
+
77
+ __END__
78
+
79
+ v = GSL::Vector::alloc(10)
80
+ for i in 1...10 do
81
+ v.set(i, i.to_f)
82
+ end
83
+ v.print
84
+
85
+ v.swap_elements(3, 5)
86
+ v.print
87
+
88
+ v.reverse.print
89
+
90
+ __END__
91
+
92
+ v2 = v.subvector(2, 3)
93
+ v2.print
94
+
95
+ v3 = v.subvector_with_stride(2, 2, 3)
96
+ v3.print
97
+
98
+ v3.set([2, 3, 9])
99
+ v3.print
100
+
101
+ v4 = GSL::Vector::alloc([1, 2, 3, 5])
102
+ v4.print
103
+
104
+ a = v4.to_a
105
+ p a
106
+
107
+ __END__
108
+ v.each do |x|
109
+ p x
110
+ end