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,221 @@
1
+ #
2
+ # = Permutations
3
+ # Contents:
4
+ # 1. {Permuation allocations}[link:files/rdoc/perm_rdoc.html#1]
5
+ # 1. {Methods}[link:files/rdoc/perm_rdoc.html#2]
6
+ # 1. {Accessing permutation elements}[link:files/rdoc/perm_rdoc.html#2.1]
7
+ # 1. {Permuation properties}[link:files/rdoc/perm_rdoc.html#2.2]
8
+ # 1. {Permuation functions}[link:files/rdoc/perm_rdoc.html#2.3]
9
+ # 1. {Reading and writing permutations}[link:files/rdoc/perm_rdoc.html#2.4]
10
+ # 1. {Permutations in cyclic form}[link:files/rdoc/perm_rdoc.html#2.5]
11
+ # 1. {Applying Permutations}[link:files/rdoc/perm_rdoc.html#3]
12
+ #
13
+ # == {}[link:index.html"name="1] Permuation allocations
14
+ # ---
15
+ # * GSL::Permutation.alloc(n)
16
+ #
17
+ # These functions create a new permutation of size <tt>n</tt>.
18
+ # The permutation is not initialized and its elements are undefined.
19
+ # Use <tt>GSL::Permutation.calloc</tt> if you want to create a permutation
20
+ # which is initialized to the identity.
21
+ #
22
+ # ---
23
+ # * GSL::Permutation.calloc(n)
24
+ #
25
+ # This creates a new permutation of size <tt>n</tt> and initializes it to the identity.
26
+ #
27
+ # == {}[link:index.html"name="2] Methods
28
+ # ---
29
+ # * GSL::Permutation#init()
30
+ #
31
+ # This initializes the permutation to the identity, i.e. (0,1,2,...,n-1).
32
+ #
33
+ # ---
34
+ # * GSL::Permutation.memcpy(dest, src)
35
+ #
36
+ # This method copies the elements of the permutation <tt>src</tt>
37
+ # into the permutation <tt>dest</tt>. The two permutations must have the same size.
38
+ #
39
+ # ---
40
+ # * GSL::Permutation#clone
41
+ #
42
+ # This creates a new permutation with the same elements of <tt>self</tt>.
43
+ #
44
+ # === {}[link:index.html"name="2.1] Accessing permutation elements
45
+ #
46
+ # ---
47
+ # * GSL::Permutation#get(i)
48
+ #
49
+ # Returns the value of the <tt>i</tt>-th element of the permutation.
50
+ #
51
+ # ---
52
+ # * GSL::Permutation#swap(i, j)
53
+ #
54
+ # This exchanges the <tt>i</tt>-th and <tt>j</tt>-th elements of the permutation.
55
+ #
56
+ # === {}[link:index.html"name="2.2] Permutation properties
57
+ # ---
58
+ # * GSL::Permutation#size
59
+ #
60
+ # Returns the size of the permutation.
61
+ # ---
62
+ # * GSL::Permutation#valid
63
+ #
64
+ # This checks that the permutation <tt>self</tt> is valid.
65
+ # The n elements should contain each of the numbers 0 .. n-1 once and only once.
66
+ #
67
+ # ---
68
+ # * GSL::Permutation#valid?
69
+ #
70
+ # This returns true if the permutation <tt>self</tt> is valid, and false otherwise.
71
+ #
72
+ # === {}[link:index.html"name="2.3] Permutation functions
73
+ #
74
+ # ---
75
+ # * GSL::Permutation#reverse
76
+ #
77
+ # This reverses the elements of the permutation <tt>self</tt>.
78
+ # ---
79
+ # * GSL::Permutation#inverse
80
+ #
81
+ # This computes the inverse of the permutation <tt>self</tt>, and returns
82
+ # as a new permutation.
83
+ #
84
+ # ---
85
+ # * GSL::Permutation#next
86
+ #
87
+ # This method advances the permutation <tt>self</tt> to the next permutation in
88
+ # lexicographic order and returns <tt>GSL::SUCCESS</tt>. If no further permutations
89
+ # are available it returns <tt>GSL::FAILURE</tt> and leaves <tt>self</tt> unmodified.
90
+ # Starting with the identity permutation and repeatedly applying this function
91
+ # will iterate through all possible permutations of a given order.
92
+ # ---
93
+ # * GSL::Permutation#prev
94
+ #
95
+ # This method steps backwards from the permutation <tt>self</tt> to the previous
96
+ # permutation in lexicographic order, returning <tt>GSL_SUCCESS</tt>.
97
+ # If no previous permutation is available it returns <tt>GSL_FAILURE</tt>
98
+ # and leaves <tt>self</tt> unmodified.
99
+ #
100
+ # === {}[link:index.html"name="2.4] Reading and writing permutations
101
+ # ---
102
+ # * GSL::Permutation#fwrite(io)
103
+ # * GSL::Permutation#fwrite(filename)
104
+ # * GSL::Permutation#fread(io)
105
+ # * GSL::Permutation#fread(filename)
106
+ # * GSL::Permutation#fprintf(io, format = "%u\n")
107
+ # * GSL::Permutation#fprintf(filename, format = "%u\n")
108
+ # * GSL::Permutation#fscanf(io)
109
+ # * GSL::Permutation#fscanf(filename)
110
+ #
111
+ #
112
+ # === {}[link:index.html"name="2.5] Permutations in cyclic Form
113
+ # A permutation can be represented in both <tt>linear</tt> and
114
+ # <tt>cyclic</tt> notations. The functions described in this section convert
115
+ # between the two forms. The linear notation is an index mapping, and has
116
+ # already been described above. The cyclic notation expresses a
117
+ # permutation as a series of circular rearrangements of groups
118
+ # of elements, or <tt>cycles</tt>.
119
+ #
120
+ # For example, under the cycle (1 2 3), 1 is replaced by 2, 2 is replaced
121
+ # by 3 and 3 is replaced by 1 in a circular fashion. Cycles of different
122
+ # sets of elements can be combined independently, for example (1 2 3) (4 5)
123
+ # combines the cycle (1 2 3) with the cycle (4 5), which is an exchange of
124
+ # elements 4 and 5. A cycle of length one represents an element which is
125
+ # unchanged by the permutation and is referred to as a <tt>singleton</tt>.
126
+ #
127
+ # It can be shown that every permutation can be decomposed into combinations
128
+ # of cycles. The decomposition is not unique, but can always be rearranged
129
+ # into a standard <tt>canonical form</tt> by a reordering of elements.
130
+ # The library uses the canonical form defined in Knuth's
131
+ # <tt>Art of Computer Programming</tt> (Vol 1, 3rd Ed, 1997) Section 1.3.3, p.178.
132
+ #
133
+ # The procedure for obtaining the canonical form given by Knuth is,
134
+ #
135
+ #
136
+ # 1. Write all singleton cycles explicitly
137
+ # 1. Within each cycle, put the smallest number first
138
+ # 1. Order the cycles in decreasing order of the first number in the cycle.
139
+ #
140
+ # For example, the linear representation (2 4 3 0 1) is represented as
141
+ # (1 4) (0 2 3) in canonical form. The permutation corresponds to an
142
+ # exchange of elements 1 and 4, and rotation of elements 0, 2 and 3.
143
+ #
144
+ # The important property of the canonical form is that it can be reconstructed
145
+ # from the contents of each cycle without the brackets. In addition, by removing
146
+ # the brackets it can be considered as a linear representation of a different
147
+ # permutation. In the example given above the permutation (2 4 3 0 1) would
148
+ # become (1 4 0 2 3). This mapping has many applications in the theory of
149
+ # permutations.
150
+ #
151
+ # ---
152
+ # * GSL::Permutation#linear_to_canonical
153
+ # * GSL::Permutation#to_canonical
154
+ #
155
+ # Computes the canonical form of the permutation <tt>self</tt> and
156
+ # returns it as a new <tt>GSL::Permutation</tt>.
157
+ #
158
+ # ---
159
+ # * GSL::Permutation#canonical_to_linear
160
+ # * GSL::Permutation#to_linear
161
+ #
162
+ # Converts a permutation <tt>self</tt> in canonical form back into linear
163
+ # form and returns it as a new <tt>GSL::Permutation</tt>.
164
+ #
165
+ #
166
+ # ---
167
+ # * GSL::Permutation#inversions
168
+ #
169
+ # Counts the number of inversions in the permutation <tt>self</tt>.
170
+ # An inversion is any pair of elements that are not in order.
171
+ # For example, the permutation 2031 has three inversions, corresponding
172
+ # to the pairs (2,0) (2,1) and (3,1).
173
+ # The identity permutation has no inversions.
174
+ #
175
+ # ---
176
+ # * GSL::Permutation#linear_cycles
177
+ #
178
+ # Counts the number of cycles in the permutation <tt>self</tt>,
179
+ # given in linear form.
180
+ #
181
+ # ---
182
+ # * GSL::Permutation#canonical_cycles
183
+ #
184
+ # Counts the number of cycles in the permutation <tt>self</tt>,
185
+ # given in canonical form.
186
+ #
187
+ # == {}[link:index.html"name="3] Applying Permutations
188
+ # ---
189
+ # * GSL::Permutation::permute(v)
190
+ #
191
+ # Applies the permutation <tt>self</tt> to the elements of the vector <tt>v</tt>,
192
+ # considered as a row-vector acted on by a permutation matrix from the
193
+ # right, v' = v P. The j-th column of the permutation matrix P is
194
+ # given by the p_j-th column of the identity matrix.
195
+ # The permutation <tt>self</tt> and the vector <tt>v</tt> must have the same length.
196
+ # ---
197
+ # * GSL::Permutation::permute_inverse(v)
198
+ #
199
+ # Applies the inverse of the permutation <tt>self</tt> to the elements of
200
+ # the vector <tt>v</tt>, considered as a row-vector acted on by an inverse
201
+ # permutation matrix from the right, v' = v P^T.
202
+ # Note that for permutation matrices the inverse is the same as the
203
+ # transpose. The j-th column of the permutation matrix P is given by
204
+ # the p_j-th column of the identity matrix.
205
+ # The permutation <tt>self</tt> and the vector <tt>v</tt> must have the same length.
206
+ # ---
207
+ # * GSL::Permutation.mul(pa, pb)
208
+ #
209
+ # Combines the two permutations <tt>pa</tt> and <tt>pb</tt> into a single
210
+ # permutation <tt>p</tt> and returns it.
211
+ # The permutation <tt>p</tt> is equivalent to applying <tt>pb</tt> first
212
+ # and then <tt>pa</tt>.
213
+ #
214
+ #
215
+ # {prev}[link:files/rdoc/matrix_rdoc.html]
216
+ # {next}[link:files/rdoc/combi_rdoc.html]
217
+ #
218
+ # {Reference index}[link:files/rdoc/ref_rdoc.html]
219
+ # {top}[link:files/rdoc/index_rdoc.html]
220
+ #
221
+ #
@@ -0,0 +1,335 @@
1
+ #
2
+ # = Polynomials
3
+ # Contents:
4
+ # 1. {Polynomial Evaluation}[link:files/rdoc/poly_rdoc.html#1]
5
+ # 1. {Solving polynomial equations}[link:files/rdoc/poly_rdoc.html#2]
6
+ # 1. {Quadratic Equations}[link:files/rdoc/poly_rdoc.html#2.1]
7
+ # 1. {Cubic Equations}[link:files/rdoc/poly_rdoc.html#2.2]
8
+ # 1. {General Polynomial Equations}[link:files/rdoc/poly_rdoc.html#2.3]
9
+ # 1. {GSL::Poly Class}[link:files/rdoc/poly_rdoc.html#3]
10
+ # 1. {Constructors}[link:files/rdoc/poly_rdoc.html#3.1]
11
+ # 1. {Methods}[link:files/rdoc/poly_rdoc.html#3.2]
12
+ # 1. {Polynomial Fitting}[link:files/rdoc/poly_rdoc.html#4]
13
+ # 1. {Divided-difference representations}[link:files/rdoc/poly_rdoc.html#5]
14
+ # 1. {Extensions}[link:files/rdoc/poly_rdoc.html#6]
15
+ # 1. {Special Polynomials}[link:files/rdoc/poly_rdoc.html#6.1]
16
+ # 1. {Polynomial Operations}[link:files/rdoc/poly_rdoc.html#6.2]
17
+ #
18
+ # == {}[link:index.html"name="1] Polynomial Evaluation
19
+ # ---
20
+ # * GSL::Poly.eval(c, x)
21
+ #
22
+ # Evaluates the polynomial <tt>c[0] + c[1]x + c[2]x^2 + ...</tt>.
23
+ # The polynomial coefficients <tt>c</tt> can be an <tt>Array</tt>,
24
+ # a <tt>GSL::Vector</tt>, or an <tt>NArray</tt>. The evaluation point <tt>x</tt>
25
+ # is a <tt>Numeric</tt>, <tt>Array</tt>, <tt>GSL::Vector</tt> or <tt>NArray</tt>.
26
+ # From GSL 1.11, <tt>x</tt> can be a complex number, and <tt>c</tt> can be a complex polynomial given by a <tt>GSL::Vector::Complex</tt> or an <tt>Array</tt>.
27
+ #
28
+ # Ex)
29
+ # >> require("gsl")
30
+ # => true
31
+ # >> GSL::Poly.eval([1, 2, 3], 2)
32
+ # => 17.0
33
+ # >> GSL::Poly.eval(GSL::Vector[1, 2, 3], 2)
34
+ # => 17.0
35
+ # >> GSL::Poly.eval(NArray[1.0, 2, 3], 2)
36
+ # => 17.0
37
+ # >> GSL::Poly.eval([1, 2, 3], [1, 2, 3])
38
+ # => [6.0, 17.0, 34.0]
39
+ # >> GSL::Poly.eval([1, 2, 3], GSL::Vector[1, 2, 3])
40
+ # => GSL::Vector
41
+ # [ 6.000e+00 1.700e+01 3.400e+01 ]
42
+ # >> GSL::Poly.eval([1, 2, 3], NArray[1.0, 2, 3])
43
+ # => NArray.float(3):
44
+ # [ 6.0, 17.0, 34.0 ]
45
+ #
46
+ # ---
47
+ # * GSL::Poly.eval_derivs(c, x)
48
+ # * GSL::Poly.eval_derivs(c, x, lenres)
49
+ #
50
+ # (GSL-1.13) Evaluate and return a polynomial and its derivatives. The output contains the values of d^k P/d x^k for the specified value of x starting with k = 0. The input polynomial <tt>c</tt> can be an <tt>Array</tt>, <tt>GSL::Poly</tt> or an <tt>NArray</tt>. If <tt>lenres</tt> is not given, <tt>lenres = LENGTH(c) + 1</tt> is used, therefore the last element of the output is 0.
51
+ #
52
+ # ---
53
+ # * GSL::Poly#eval_derivs(x)
54
+ # * GSL::Poly#eval_derivs(x, lenres)
55
+ #
56
+ # (GSL-1.13) Evaluate and return a polynomial and its derivatives. The output contains the values of d^k P/d x^k for the specified value of x starting with k = 0. If <tt>lenres</tt> is not given, <tt>lenres = LENGTH(self) + 1</tt> is used, therefore the last element of the output is 0.
57
+ #
58
+ # Ex.)
59
+ # >> ary = [1, 2, 3]
60
+ # => [1, 2, 3]
61
+ # >> GSL::Poly.eval_derivs(ary, 1)
62
+ # => [6.0, 8.0, 6.0, 0.0]
63
+ # >> na = NArray[1.0, 2, 3]
64
+ # => NArray.float(3):
65
+ # [ 1.0, 2.0, 3.0 ]
66
+ # >> GSL::Poly.eval_derivs(na, 1)
67
+ # => NArray.float(4):
68
+ # [ 6.0, 8.0, 6.0, 0.0 ]
69
+ # >> poly = GSL::Poly[1.0, 2, 3]
70
+ # => GSL::Poly
71
+ # [ 1.000e+00 2.000e+00 3.000e+00 ]
72
+ # >> GSL::Poly.eval_derivs(poly, 1)
73
+ # => GSL::Poly
74
+ # [ 6.000e+00 8.000e+00 6.000e+00 0.000e+00 ]
75
+ # >> poly.eval_derivs(1)
76
+ # => GSL::Poly
77
+ # [ 6.000e+00 8.000e+00 6.000e+00 0.000e+00 ]
78
+ # >> poly.eval_derivs(1, 3)
79
+ # => GSL::Poly
80
+ # [ 6.000e+00 8.000e+00 6.000e+00 ]
81
+ #
82
+ # == {}[link:index.html"name="2] Solving polynomial equations
83
+ # === {}[link:index.html"name="2.1] Quadratic Equations
84
+ # ---
85
+ # * GSL::Poly::solve_quadratic(a, b, c)
86
+ # * GSL::Poly::solve_quadratic([a, b, c])
87
+ #
88
+ # Find the real roots of the quadratic equation,
89
+ # a x^2 + b x + c = 0
90
+ # The coefficients are given by 3 numbers, or a Ruby array,
91
+ # or a <tt>GSL::Vector</tt> object. The roots are returned as a <tt>GSL::Vector</tt>.
92
+ #
93
+ # * Ex: z^2 - 3z + 2 = 0
94
+ # >> GSL::Poly::solve_quadratic(1, -3, 2)
95
+ # => GSL::Vector:
96
+ # [ 1.000e+00 2.000e+00 ]
97
+ #
98
+ #
99
+ # ---
100
+ # * GSL::Poly::complex_solve_quadratic(a, b, c)
101
+ # * GSL::Poly::complex_solve_quadratic([a, b, c])
102
+ #
103
+ # Find the complex roots of the quadratic equation,
104
+ # a z^2 + b z + z = 0
105
+ # The coefficients are given by 3 numbers or a Ruby array, or a
106
+ # <tt>GSL::Vector</tt>.
107
+ # The roots are returned as a <tt>GSL::Vector::Complex</tt> of two elements.
108
+ #
109
+ # * Ex: z^2 - 3z + 2 = 0
110
+ # >> require("gsl")
111
+ # => true
112
+ # >> GSL::Poly::complex_solve_quadratic(1, -3, 2)
113
+ # [ [1.000e+00 0.000e+00] [2.000e+00 0.000e+00] ]
114
+ # => #<GSL::Vector::Complex:0x764014>
115
+ # >> GSL::Poly::complex_solve_quadratic(1, -3, 2).real <--- Real part
116
+ # => GSL::Vector::View:
117
+ # [ 1.000e+00 2.000e+00 ]
118
+ #
119
+ # === {}[link:index.html"name="2.2] Cubic Equations
120
+ # ---
121
+ # * GSL::Poly::solve_cubic(same as solve_quadratic)
122
+ #
123
+ # This method finds the real roots of the cubic equation,
124
+ # x^3 + a x^2 + b x + c = 0
125
+ #
126
+ # ---
127
+ # * GSL::Poly::complex_solve_cubic(same as solve_cubic)
128
+ #
129
+ # This method finds the complex roots of the cubic equation,
130
+ # z^3 + a z^2 + b z + c = 0
131
+ #
132
+ # === {}[link:index.html"name="2.3] General Polynomial Equations
133
+ # ---
134
+ # * GSL::Poly::complex_solve(c0, c1, c2,,, )
135
+ # * GSL::Poly::solve(c0, c1, c2,,, )
136
+ #
137
+ # Find the complex roots of the polynomial equation. Note that
138
+ # the coefficients are given by "ascending" order.
139
+ #
140
+ # * Ex: x^2 - 3 x + 2 == 0
141
+ # >> GSL::Poly::complex_solve(2, -3, 1) <--- different from Poly::quadratic_solve
142
+ # [ [1.000e+00 0.000e+00] [2.000e+00 0.000e+00] ]
143
+ # => #<GSL::Vector::Complex:0x75e614>
144
+ #
145
+ # == {}[link:index.html"name="3] GSL::Poly Class
146
+ # This class expresses polynomials of arbitrary orders.
147
+ #
148
+ # === {}[link:index.html"name="3.1] Constructors
149
+ # ---
150
+ # * GSL::Poly.alloc(c0, c1, c2, ....)
151
+ # * GSL::Poly[c0, c1, c2, ....]
152
+ #
153
+ # This creates an instance of the <tt>GSL::Poly</tt> class,
154
+ # which represents a polynomial
155
+ # c0 + c1 x + c2 x^2 + ....
156
+ # This class is derived from <tt>GSL::Vector</tt>.
157
+ #
158
+ # * Ex: x^2 - 3 x + 2
159
+ # poly = GSL::Poly.alloc([2, -3, 1])
160
+ #
161
+ # === {}[link:index.html"name="3.2] Instance Methods
162
+ # ---
163
+ # * GSL::Poly#eval(x)
164
+ # * GSL::Poly#at(x)
165
+ #
166
+ # Evaluates the polynomial
167
+ # c[0] + c[1] x + c[2] x^2 + ... + c[len-1] x^{len-1}
168
+ # using Horner's method for stability. The argument <tt>x</tt> is a
169
+ # <tt>Numeric</tt>, <tt>GSL::Vector, Matrix</tt> or an <tt>Array</tt>.
170
+ #
171
+ # ---
172
+ # * GSL::Poly#solve_quadratic
173
+ #
174
+ # Solve the quadratic equation.
175
+ #
176
+ # * Ex: z^2 - 3 z + 2 = 0:
177
+ # >> a = GSL::Poly[2, -3, 1]
178
+ # => GSL::Poly:
179
+ # [ 2.000e+00 -3.000e+00 1.000e+00 ]
180
+ # >> a.solve_quadratic
181
+ # => GSL::Vector:
182
+ # [ 1.000e+00 2.000e+00 ]
183
+ #
184
+ # ---
185
+ # * GSL::Poly#solve_cubic
186
+ #
187
+ # Solve the cubic equation.
188
+ #
189
+ # ---
190
+ # * GSL::Poly#complex_solve
191
+ # * GSL::Poly#solve
192
+ # * GSL::Poly#roots
193
+ #
194
+ # These methods find the complex roots of the quadratic equation,
195
+ # c0 + c1 z + c2 z^2 + .... = 0
196
+ #
197
+ # * Ex: z^2 - 3 z + 2 = 0:
198
+ # >> a = GSL::Poly[2, -3, 1]
199
+ # => GSL::Poly:
200
+ # [ 2.000e+00 -3.000e+00 1.000e+00 ]
201
+ # >> a.solve
202
+ # [ [1.000e+00 0.000e+00] [2.000e+00 0.000e+00] ]
203
+ # => #<GSL::Vector::Complex:0x35db28>
204
+ #
205
+ # == {}[link:index.html"name="4] Polynomial fitting
206
+ # ---
207
+ # * GSL::Poly.fit(x, y, order)
208
+ # * GSL::Poly.wfit(x, w, y, order)
209
+ #
210
+ # Finds the coefficient of a polynomial of order <tt>order</tt>
211
+ # that fits the vector data (<tt>x, y</tt>) in a least-square sense.
212
+ # This provides a higher-level interface to the method
213
+ # {GSL::Multifit#linear}[link:files/rdoc/fit_rdoc.html] in a case of polynomial fitting.
214
+ #
215
+ # Example:
216
+ # #!/usr/bin/env ruby
217
+ # require("gsl")
218
+ #
219
+ # x = GSL::Vector[1, 2, 3, 4, 5]
220
+ # y = GSL::Vector[5.5, 43.1, 128, 290.7, 498.4]
221
+ # # The results are stored in a polynomial "coef"
222
+ # coef, cov, chisq, status = Poly.fit(x, y, 3)
223
+ #
224
+ # x2 = GSL::Vector.linspace(1, 5, 20)
225
+ # graph([x, y], [x2, coef.eval(x2)], "-C -g 3 -S 4")
226
+ #
227
+ # == {}[link:index.html"name="5] Divided-difference representations
228
+ #
229
+ # ---
230
+ # * GSL::Poly::dd_init(xa, ya)
231
+ #
232
+ # This method computes a divided-difference representation of the
233
+ # interpolating polynomial for the points <tt>(xa, ya)</tt>.
234
+ #
235
+ # ---
236
+ # * GSL::Poly::DividedDifference#eval(x)
237
+ #
238
+ # This method evaluates the polynomial stored in divided-difference form
239
+ # <tt>self</tt> at the point <tt>x</tt>.
240
+ #
241
+ # ---
242
+ # * GSL::Poly::DividedDifference#taylor(xp)
243
+ #
244
+ # This method converts the divided-difference representation of a polynomial
245
+ # to a Taylor expansion. On output the Taylor coefficients of the polynomial
246
+ # expanded about the point <tt>xp</tt> are returned.
247
+ #
248
+ # == {}[link:index.html"name="6] Extensions
249
+ # === {}[link:index.html"name="6.1] Special Polynomials
250
+ # ---
251
+ # * GSL::Poly.hermite(n)
252
+ #
253
+ # This returns coefficients of the <tt>n</tt>-th order Hermite polynomial, <tt>H(x; n)</tt>.
254
+ # For order of <tt>n</tt> >= 3, this method uses the recurrence relation
255
+ # H(x; n+1) = 2 x H(x; n) - 2 n H(x; n-1)
256
+ # * Ex:
257
+ # >> GSL::Poly.hermite(2)
258
+ # => GSL::Poly::Int:
259
+ # [ -2 0 4 ] <----- 4x^2 - 2
260
+ # >> GSL::Poly.hermite(5)
261
+ # => GSL::Poly::Int:
262
+ # [ 0 120 0 -160 0 32 ] <----- 32x^5 - 160x^3 + 120x
263
+ # >> GSL::Poly.hermite(7)
264
+ # => GSL::Poly::Int:
265
+ # [ 0 -1680 0 3360 0 -1344 0 128 ]
266
+ #
267
+ # ---
268
+ # * GSL::Poly.cheb(n)
269
+ # * GSL::Poly.chebyshev(n)
270
+ #
271
+ # Return the coefficients of the <tt>n</tt>-th order Chebyshev polynomial, <tt>T(x; n</tt>.
272
+ # For order of <tt>n</tt> >= 3, this method uses the recurrence relation
273
+ # T(x; n+1) = 2 x T(x; n) - T(x; n-1)
274
+ #
275
+ # ---
276
+ # * GSL::Poly.cheb_II(n)
277
+ # * GSL::Poly.chebyshev_II(n)
278
+ #
279
+ # Return the coefficients of the <tt>n</tt>-th order Chebyshev polynomial of type II,
280
+ # <tt>U(x; n</tt>.
281
+ # U(x; n+1) = 2 x U(x; n) - U(x; n-1)
282
+ #
283
+ # ---
284
+ # * GSL::Poly.bell(n)
285
+ #
286
+ # Bell polynomial
287
+ #
288
+ # ---
289
+ # * GSL::Poly.bessel(n)
290
+ #
291
+ # Bessel polynomial
292
+ #
293
+ # ---
294
+ # * GSL::Poly.laguerre(n)
295
+ #
296
+ # Retunrs the coefficients of the <tt>n</tt>-th order Laguerre polynomial
297
+ # multiplied by n!.
298
+ #
299
+ # Ex:
300
+ # rb(main):001:0> require("gsl")
301
+ # => true
302
+ # >> GSL::Poly.laguerre(0)
303
+ # => GSL::Poly::Int:
304
+ # [ 1 ] <--- 1
305
+ # >> GSL::Poly.laguerre(1)
306
+ # => GSL::Poly::Int:
307
+ # [ 1 -1 ] <--- -x + 1
308
+ # >> GSL::Poly.laguerre(2)
309
+ # => GSL::Poly::Int:
310
+ # [ 2 -4 1 ] <--- (x^2 - 4x + 2)/2!
311
+ # >> GSL::Poly.laguerre(3)
312
+ # => GSL::Poly::Int:
313
+ # [ 6 -18 9 -1 ] <--- (-x^3 + 9x^2 - 18x + 6)/3!
314
+ # >> GSL::Poly.laguerre(4)
315
+ # => GSL::Poly::Int:
316
+ # [ 24 -96 72 -16 1 ] <--- (x^4 - 16x^3 + 72x^2 - 96x + 24)/4!
317
+ #
318
+ # === {}[link:index.html"name="6.2] Polynomial Operations
319
+ # ---
320
+ # * GSL::Poly#conv
321
+ # * GSL::Poly#deconv
322
+ # * GSL::Poly#reduce
323
+ # * GSL::Poly#deriv
324
+ # * GSL::Poly#integ
325
+ # * GSL::Poly#compan
326
+ #
327
+ #
328
+ # {prev}[link:files/rdoc/complex_rdoc.html]
329
+ # {next}[link:files/rdoc/sf_rdoc.html]
330
+ #
331
+ # {Reference index}[link:files/rdoc/ref_rdoc.html]
332
+ # {top}[link:files/rdoc/index_rdoc.html]
333
+ #
334
+ #
335
+ #