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,122 @@
1
+ #
2
+ # = Discrete Hankel Transforms
3
+ # This chapter describes functions for performing Discrete Hankel Transforms
4
+ # (DHTs).
5
+ #
6
+ # 1. {Definitions}[link:files/rdoc/dht_rdoc.html#1]
7
+ # 1. {Initialization}[link:files/rdoc/dht_rdoc.html#2]
8
+ # 1. {Methods}[link:files/rdoc/dht_rdoc.html#3]
9
+ #
10
+ # == {}[link:index.html"name="1] Definitions
11
+ # The discrete Hankel transform acts on a vector of sampled data, where the
12
+ # samples are assumed to have been taken at points related to the zeroes of a
13
+ # Bessel function of fixed order; compare this to the case of the discrete
14
+ # Fourier transform, where samples are taken at points related to the zeroes
15
+ # of the sine or cosine function.
16
+ #
17
+ # Specifically, let f(t) be a function on the unit interval. Then the finite
18
+ # \nu-Hankel transform of f(t) is defined to be the set of numbers g_m given by,
19
+ # so that, Suppose that f is band-limited in the sense that g_m=0 for m > M.
20
+ # Then we have the following fundamental sampling theorem. It is this discrete
21
+ # expression which defines the discrete Hankel transform. The kernel in the
22
+ # summation above defines the matrix of the \nu-Hankel transform of size M-1.
23
+ # The coefficients of this matrix, being dependent on \nu and M, must be
24
+ # precomputed and stored; the <tt>GSL::Dht</tt> object encapsulates this data.
25
+ # The constructor <tt>GSL::Dht.alloc</tt> returns a <tt>GSL::Dht</tt> object
26
+ # which must be properly initialized with <tt>GSL::Dht#init</tt> before
27
+ # it can be used to perform transforms on data sample vectors,
28
+ # for fixed \nu and M, using the <tt>GSL::Dht#apply</tt> method.
29
+ # The implementation allows a scaling of the fundamental
30
+ # interval, for convenience, so that one can assume the function is defined on
31
+ # the interval [0,X], rather than the unit interval.
32
+ #
33
+ # Notice that by assumption f(t) vanishes at the endpoints of the interval,
34
+ # consistent with the inversion formula and the sampling formula given above.
35
+ # Therefore, this transform corresponds to an orthogonal expansion in
36
+ # eigenfunctions of the Dirichlet problem for the Bessel differential equation.
37
+ #
38
+ #
39
+ # == {}[link:index.html"name="2] Initialization
40
+ #
41
+ # ---
42
+ # * GSL::Dht.alloc(size)
43
+ # * GSL::Dht.alloc(size, nu, xmax)
44
+ #
45
+ # These methods allocate a Discrete Hankel transform object <tt>GSL::Dht</tt>
46
+ # of size <tt>size</tt>.
47
+ # If three arguments are given, the object is initialized with the values of
48
+ # <tt>nu, xmax</tt>.
49
+ #
50
+ # ---
51
+ # * GSL::Dht#init(nu, xmax)
52
+ #
53
+ # This initializes the transform <tt>self</tt> for the given values of <tt>nu</tt> and <tt>xmax</tt>.
54
+ #
55
+ # == {}[link:index.html"name="3] Methods
56
+ # ---
57
+ # * GSL::Dht#apply(vin, vout)
58
+ # * GSL::Dht#apply(vin)
59
+ #
60
+ # This applies the transform <tt>self</tt> to the vector <tt>vin</tt> whose size is
61
+ # equal to the size of the transform.
62
+ #
63
+ # ---
64
+ # * GSL::Dht#x_sample(n)
65
+ #
66
+ # This method returns the value of the n'th sample point in the unit interval,
67
+ # (j_{nu,n+1}/j_{nu,M}) X. These are the points where the function f(t) is
68
+ # assumed to be sampled.
69
+ #
70
+ # ---
71
+ # * GSL::Dht#k_sample(n)
72
+ #
73
+ # This method returns the value of the n'th sample point in "k-space",
74
+ # j_{nu,n+1}/X.
75
+ #
76
+ # ---
77
+ # * GSL::Dht#size
78
+ #
79
+ # Returns the size of the sample arrays to be transformed
80
+ # ---
81
+ # * GSL::Dht#nu
82
+ #
83
+ # Returns the Bessel function order
84
+ # ---
85
+ # * GSL::Dht#xmax
86
+ #
87
+ # Returns the upper limit to the x-sampling domain
88
+ # ---
89
+ # * GSL::Dht#kmax
90
+ #
91
+ # Returns the upper limit to the k-sampling domain
92
+ #
93
+ # ---
94
+ # * GSL::Dht#j
95
+ #
96
+ # Returns an array of computed J_nu zeros, j_{nu,s} = j[s]
97
+ # as a <tt>GSL::Vector::View</tt>.
98
+ #
99
+ # ---
100
+ # * GSL::Dht#Jjj
101
+ #
102
+ # Returns an array of transform numerator, J_nu(j_i j_m / j_N)
103
+ # as a <tt>GSL::Vector::View</tt>.
104
+ #
105
+ # ---
106
+ # * GSL::Dht#J2
107
+ #
108
+ # Returns an array of transform numerator, J_nu(j_i j_m / j_N).
109
+ #
110
+ # ---
111
+ # * GSL::Dht#coef
112
+ # * GSL::Dht#coef(n, m)
113
+ #
114
+ # Return the (n,m)-th transform coefficient.
115
+ #
116
+ # {prev}[link:files/rdoc/sum_rdoc.html]
117
+ # {next}[link:files/rdoc/roots_rdoc.html]
118
+ #
119
+ # {Reference index}[link:files/rdoc/ref_rdoc.html]
120
+ # {top}[link:files/rdoc/index_rdoc.html]
121
+ #
122
+ #
@@ -0,0 +1,133 @@
1
+ #
2
+ # = Numerical Differentiation
3
+ # The functions described in this chapter compute numerical derivatives by
4
+ # finite differencing. An adaptive algorithm is used to find the best choice
5
+ # of finite difference and to estimate the error in the derivative.
6
+ #
7
+ # Contentes:
8
+ # 1. {Deriv methods}[link:files/rdoc/diff_rdoc.html#1]
9
+ # 1. {Diff methods}[link:files/rdoc/diff_rdoc.html#2]
10
+ #
11
+ # == {}[link:index.html"name="1] Deriv methods (for GSL 1.4.90 or later)
12
+ # Numerical derivatives should now be calculated using the
13
+ # <tt>GSL::Deriv.forward, GSL::Deriv.central</tt> and <tt>GSL::Deriv.backward</tt> methods,
14
+ # which accept a step-size argument in addition to the position x. The
15
+ # original <tt>GSL::Diff</tt> methods (without the step-size) are deprecated.
16
+ #
17
+ # ---
18
+ # * GSL::Deriv.central(f, x, h = 1e-8)
19
+ # * GSL::Function#deriv_central(x, h = 1e-8)
20
+ #
21
+ # These methods compute the numerical derivative of the function <tt>f</tt>
22
+ # at the point <tt>x</tt> using an adaptive central difference algorithm with a
23
+ # step-size of <tt>h</tt>. If a scalar <tt>x</tt> is given, the derivative and an
24
+ # estimate of its absolute error are returned as an array, [<tt>result, abserr, status</tt>].
25
+ # If a vector/matrix/array <tt>x</tt> is given, an array of two elements are returned,
26
+ # [<tt>result, abserr</tt>], here each them is also a vector/matrix/array of the same
27
+ # dimension of <tt>x</tt>.
28
+ #
29
+ # The initial value of <tt>h</tt> is used to estimate an optimal step-size,
30
+ # based on the scaling of the truncation error and round-off error in the
31
+ # derivative calculation. The derivative is computed using a 5-point rule for
32
+ # equally spaced abscissae at x-h, x-h/2, x, x+h/2, x, with an error estimate
33
+ # taken from the difference between the 5-point rule and the corresponding 3-point
34
+ # rule x-h, x, x+h. Note that the value of the function at x does not contribute
35
+ # to the derivative calculation, so only 4-points are actually used.
36
+ #
37
+ # ---
38
+ # * GSL::Deriv.forward(f, x, h = 1e-8)
39
+ # * GSL::Function#deriv_forward(x, h = 1e-8)
40
+ #
41
+ # These methods compute the numerical derivative of the function <tt>f</tt> at
42
+ # the point <tt>x</tt> using an adaptive forward difference algorithm with a step-size
43
+ # of <tt>h</tt>. The function is evaluated only at points greater than <tt>x</tt>,
44
+ # and never at <tt>x</tt> itself. The derivative and an estimate of its absolute error
45
+ # are returned as an array, [<tt>result, abserr</tt>].
46
+ # These methods should be used if f(x) has a
47
+ # discontinuity at <tt>x</tt>, or is undefined for values less than <tt>x</tt>.
48
+ #
49
+ # The initial value of <tt>h</tt> is used to estimate an optimal step-size, based on the
50
+ # scaling of the truncation error and round-off error in the derivative calculation.
51
+ # The derivative at x is computed using an "open" 4-point rule for equally spaced
52
+ # abscissae at x+h/4, x+h/2, x+3h/4, x+h, with an error estimate taken from the
53
+ # difference between the 4-point rule and the corresponding 2-point rule x+h/2, x+h.
54
+ #
55
+ # ---
56
+ # * GSL::Deriv.backward(f, x, h)
57
+ # * GSL::Function#deriv_backward(x, h)
58
+ #
59
+ # These methods compute the numerical derivative of the function <tt>f</tt> at the
60
+ # point <tt>x</tt> using an adaptive backward difference algorithm with a step-size
61
+ # of <tt>h</tt>. The function is evaluated only at points less than <tt>x</tt>,
62
+ # and never at <tt>x</tt> itself. The derivative and an estimate of its absolute error
63
+ # are returned as an array, [<tt>result, abserr</tt>].
64
+ # This function should be used if f(x) has a discontinuity at <tt>x</tt>,
65
+ # or is undefined for values greater than <tt>x</tt>.
66
+ #
67
+ # These methods are equivalent to calling the method <tt>forward</tt>
68
+ # with a negative step-size.
69
+ #
70
+ # == {}[link:index.html"name="2] Diff Methods (obsolete)
71
+ #
72
+ # ---
73
+ # * GSL::Diff.central(f, x)
74
+ # * GSL::Function#diff_central(x)
75
+ #
76
+ # These compute the numerical derivative of the function <tt>f</tt> ( {GSL::Function}[link:files/rdoc/function_rdoc.html] object) at the point <tt>x</tt>
77
+ # using an adaptive central difference algorithm. The result is returned as an array
78
+ # which contains the derivative and an estimate of its absolute error.
79
+ #
80
+ # ---
81
+ # * GSL::Diff.forward(f, x)
82
+ # * GSL::Function#diff_forward(x)
83
+ #
84
+ # These compute the numerical derivative of the function at the point x using an adaptive forward difference algorithm.
85
+ #
86
+ # ---
87
+ # * GSL::Diff.backward(f, x)
88
+ # * GSL::Function#diff_backward(x)
89
+ #
90
+ # These compute the numerical derivative of the function at the point x using an adaptive backward difference algorithm.
91
+ #
92
+ # == {}[link:index.html"name="3] Example
93
+ #
94
+ # #!/usr/bin/env ruby
95
+ # require "gsl"
96
+ #
97
+ # f = GSL::Function.alloc { |x|
98
+ # pow(x, 1.5)
99
+ # }
100
+ #
101
+ # printf ("f(x) = x^(3/2)\n");
102
+ #
103
+ # x = 2.0
104
+ # h = 1e-8
105
+ # result, abserr = f.deriv_central(x, h)
106
+ # printf("x = 2.0\n");
107
+ # printf("f'(x) = %.10f +/- %.10f\n", result, abserr);
108
+ # printf("exact = %.10f\n\n", 1.5 * Math::sqrt(2.0));
109
+ #
110
+ # x = 0.0
111
+ # result, abserr = Deriv.forward(f, x, h) # equivalent to f.deriv_forward(x, h)
112
+ # printf("x = 0.0\n");
113
+ # printf("f'(x) = %.10f +/- %.10f\n", result, abserr);
114
+ # printf("exact = %.10f\n", 0.0);
115
+ #
116
+ # The results are
117
+ #
118
+ # f(x) = x^(3/2)
119
+ # x = 2.0
120
+ # f'(x) = 2.1213203120 +/- 0.0000004064
121
+ # exact = 2.1213203436
122
+ #
123
+ # x = 0.0
124
+ # f'(x) = 0.0000000160 +/- 0.0000000339
125
+ # exact = 0.0000000000
126
+ #
127
+ # {prev}[link:files/rdoc/interp_rdoc.html]
128
+ # {next}[link:files/rdoc/cheb_rdoc.html]
129
+ #
130
+ # {Reference index}[link:files/rdoc/ref_rdoc.html]
131
+ # {top}[link:files/rdoc/index_rdoc.html]
132
+ #
133
+ #
@@ -0,0 +1,50 @@
1
+ #
2
+ # = Error Handling
3
+ #
4
+ # == {}[link:index.html"name="1] Error codes
5
+ # The GSL routines report an error whenever they cannot perform the task
6
+ # requested of them. For example, a root-finding function would return a
7
+ # non-zero error code if could not converge to the requested accuracy,
8
+ # or exceeded a limit on the number of iterations. Situations like this
9
+ # are a normal occurrence when using any mathematical library and
10
+ # you should check the return status of the functions that you call.
11
+ #
12
+ # Whenever a routine reports an error the return value specifies the type of error.
13
+ # The return value is analogous to the value of the variable errno in the C library.
14
+ # The caller can examine the return code and decide what action to take, including
15
+ # ignoring the error if it is not considered serious.
16
+ #
17
+ # The error code numbers in GSL as <tt>GSL_EDOM</tt> are defined in Ruby/GSL
18
+ # as Ruby constants under the <tt>GSL</tt> module. Here are some of them:
19
+ # * <tt>GSL::EDOM</tt> - Domain error; used by mathematical functions when an
20
+ # argument value does not fall into the domain over which the function is
21
+ # defined (like <tt>EDOM</tt> in the C library)
22
+ # * <tt>GSL::ERANGE</tt> - Range error; used by mathematical functions when the
23
+ # result value is not representable because of overflow or underflow
24
+ # (like <tt>ERANGE</tt> in the C library)
25
+ # * <tt>GSL::ENOMEM</tt> - No memory available. The system cannot allocate more
26
+ # virtual memory because its capacity is full (like <tt>ENOMEM</tt> in the
27
+ # C library). This error is reported when a GSL routine encounters problems
28
+ # when trying to allocate memory with malloc.
29
+ # * <tt>GSL::EINVAL</tt> - Invalid argument. This is used to indicate various
30
+ # kinds of problems with passing the wrong argument to a library function
31
+ # (like <tt>EINVAL</tt> in the C library).
32
+ #
33
+ # == {}[link:index.html"name="2] Error handler
34
+ # In Ruby/GSL, the default GSL error handler is replaced by an other one which calls
35
+ # <tt>rb_raise()</tt>. Thus whenever a GSL routine reports a fatal error,
36
+ # a Ruby Exception is generated.
37
+ #
38
+ # ---
39
+ # * GSL::set_error_handler(proc)
40
+ # * GSL::set_error_handler { |reason, file, line, errno| ... }
41
+ #
42
+ # This replaces the Ruby/GSL default error handler by a user-defined handler
43
+ # given by a Proc object <tt>proc</tt> or a block.
44
+ #
45
+ # {prev}[link:files/rdoc/use_rdoc.html]
46
+ # {next}[link:files/rdoc/math_rdoc.html]
47
+ #
48
+ # {Reference index}[link:files/rdoc/ref_rdoc.html]
49
+ # {top}[link:files/rdoc/index_rdoc.html]
50
+ #
@@ -0,0 +1,401 @@
1
+ #
2
+ # = Eigensystems
3
+ # === {}[link:index.html"name="0.1] Contentes
4
+ # 1. {Modules and classes}[link:files/rdoc/eigen_rdoc.html#1]
5
+ # 1. {Real Symmetric Matrices}[link:files/rdoc/eigen_rdoc.html#2]
6
+ # 1. {Complex Hermitian Matrices}[link:files/rdoc/eigen_rdoc.html#3]
7
+ # 1. {Real Nonsymmetric Matrices}[link:files/rdoc/eigen_rdoc.html#4] (>= GSL-1.9)
8
+ # 1. {Real Generalized Symmetric-Definite Eigensystems}[link:files/rdoc/eigen_rdoc.html#5] (>= GSL-1.10)
9
+ # 1. {Complex Generalized Hermitian-Definite Eigensystems}[link:files/rdoc/eigen_rdoc.html#6] (>= GSL-1.10)
10
+ # 1. {Real Generalized Nonsymmetric Eigensystems}[link:files/rdoc/eigen_rdoc.html#7] (>= GSL-1.10)
11
+ # 1. {Sorting Eigenvalues and Eigenvectors }[link:files/rdoc/eigen_rdoc.html#8]
12
+ #
13
+ # == {}[link:index.html"name="1] Modules and classes
14
+ #
15
+ # * GSL
16
+ # * Eigen
17
+ # * EigenValues < Vector
18
+ # * EigenVectors < Matrix
19
+ # * Symm (Module)
20
+ # * Workspace (Class)
21
+ # * Symmv (Module)
22
+ # * Workspace (Class)
23
+ # * Nonsymm (Module, >= GSL-1.9)
24
+ # * Workspace (Class)
25
+ # * Nonsymmv (Module, >= GSL-1.9)
26
+ # * Workspace (Class)
27
+ # * Gensymm (Module, >= GSL-1.10)
28
+ # * Workspace (Class)
29
+ # * Gensymmv (Module, >= GSL-1.10)
30
+ # * Workspace (Class)
31
+ # * Herm (Module)
32
+ # * Workspace (Class)
33
+ # * Hermv (Module)
34
+ # * Workspace (Class)
35
+ # * Vectors < Matrix::Complex
36
+ # * Genherm (Module, >= GSL-1.10)
37
+ # * Workspace (Class)
38
+ # * Genhermv (Module, >= GSL-1.10)
39
+ # * Workspace (Class)
40
+ # * Gen (Module, >= GSL-1.10)
41
+ # * Workspace (Class)
42
+ # * Genv (Module, >= GSL-1.10)
43
+ # * Workspace (Class)
44
+ #
45
+ # == {}[link:index.html"name="2] Real Symmetric Matrices, GSL::Eigen::Symm module
46
+ # === {}[link:index.html"name="2.1] Workspace classes
47
+ # ---
48
+ # * GSL::Eigen::Symm::Workspace.alloc(n)
49
+ # * GSL::Eigen::Symmv::Workspace.alloc(n)
50
+ # * GSL::Eigen::Herm::Workspace.alloc(n)
51
+ # * GSL::Eigen::Hermv::Workspace.alloc(n)
52
+ #
53
+ #
54
+ # === {}[link:index.html"name="2.2] Methods to solve eigensystems
55
+ # ---
56
+ # * GSL::Eigen::symm(A)
57
+ # * GSL::Eigen::symm(A, workspace)
58
+ # * GSL::Matrix#eigen_symm
59
+ # * GSL::Matrix#eigen_symm(workspace)
60
+ #
61
+ # These methods compute the eigenvalues of the real symmetric matrix.
62
+ # The workspace object <tt>workspace</tt> can be omitted.
63
+ #
64
+ # ---
65
+ # * GSL::Eigen::symmv(A)
66
+ # * GSL::Matrix#eigen_symmv
67
+ #
68
+ # These methods compute the eigenvalues and eigenvectors of the real symmetric
69
+ # matrix, and return an array of two elements:
70
+ # The first is a <tt>GSL::Vector</tt> object which stores all the eigenvalues.
71
+ # The second is a <tt>GSL::Matrix object</tt>, whose columns contain
72
+ # eigenvectors.
73
+ #
74
+ # 1. Singleton method of the <tt>GSL::Eigen</tt> module, <tt>GSL::Eigen::symm</tt>
75
+ #
76
+ # m = GSL::Matrix.alloc([1.0, 1/2.0, 1/3.0, 1/4.0], [1/2.0, 1/3.0, 1/4.0, 1/5.0],
77
+ # [1/3.0, 1/4.0, 1/5.0, 1/6.0], [1/4.0, 1/5.0, 1/6.0, 1/7.0])
78
+ # eigval, eigvec = Eigen::symmv(m)
79
+ #
80
+ # 1. Instance method of <tt>GSL::Matrix</tt> class
81
+ #
82
+ # eigval, eigvec = m.eigen_symmv
83
+ #
84
+ # == {}[link:index.html"name="3] Complex Hermitian Matrices
85
+ # ---
86
+ # * GSL::Eigen::herm(A)
87
+ # * GSL::Eigen::herm(A, workspace)
88
+ # * GSL::Matrix::Complex#eigen_herm
89
+ # * GSL::Matrix::Complex#eigen_herm(workspace)
90
+ #
91
+ # These methods compute the eigenvalues of the complex hermitian matrix.
92
+ #
93
+ # ---
94
+ # * GSL::Eigen::hermv(A)
95
+ # * GSL::Eigen::hermv(A, workspace)
96
+ # * GSL::Matrix::Complex#eigen_hermv
97
+ # * GSL::Matrix::Complex#eigen_hermv(workspace
98
+ #
99
+ #
100
+ # == {}[link:index.html"name="4] Real Nonsymmetric Matrices (>= GSL-1.9)
101
+ #
102
+ # ---
103
+ # * GSL::Eigen::Nonsymm.alloc(n)
104
+ #
105
+ # This allocates a workspace for computing eigenvalues of n-by-n real
106
+ # nonsymmetric matrices. The size of the workspace is O(2n).
107
+ #
108
+ # ---
109
+ # * GSL::Eigen::Nonsymm::params(compute_t, balance, wspace)
110
+ # * GSL::Eigen::Nonsymm::Workspace#params(compute_t, balance)
111
+ #
112
+ # This method sets some parameters which determine how the eigenvalue
113
+ # problem is solved in subsequent calls to <tt>GSL::Eigen::nonsymm</tt>.
114
+ # If <tt>compute_t</tt> is set to 1, the full Schur form <tt>T</tt> will be
115
+ # computed by gsl_eigen_nonsymm. If it is set to 0, <tt>T</tt> will not be
116
+ # computed (this is the default setting).
117
+ # Computing the full Schur form <tt>T</tt> requires approximately 1.5-2 times
118
+ # the number of flops.
119
+ #
120
+ # If <tt>balance</tt> is set to 1, a balancing transformation is applied to
121
+ # the matrix prior to computing eigenvalues. This transformation is designed
122
+ # to make the rows and columns of the matrix have comparable norms, and can
123
+ # result in more accurate eigenvalues for matrices whose entries vary widely
124
+ # in magnitude. See section Balancing for more information. Note that the
125
+ # balancing transformation does not preserve the orthogonality of the Schur
126
+ # vectors, so if you wish to compute the Schur vectors with
127
+ # <tt>GSL::Eigen::nonsymm_Z</tt> you will obtain the Schur vectors of the
128
+ # balanced matrix instead of the original matrix. The relationship will be
129
+ # where Q is the matrix of Schur vectors for the balanced matrix, and <tt>D</tt>
130
+ # is the balancing transformation. Then <tt>GSL::Eigen::nonsymm_Z</tt> will
131
+ # compute a matrix <tt>Z</tt> which satisfies with <tt>Z = D Q</tt>.
132
+ # Note that <tt>Z</tt> will not be orthogonal. For this reason, balancing is
133
+ # not performed by default.
134
+ #
135
+ # ---
136
+ # * GSL::Eigen::nonsymm(m, eval, wspace)
137
+ # * GSL::Eigen::nonsymm(m)
138
+ # * GSL::Matrix#eigen_nonsymm()
139
+ # * GSL::Matrix#eigen_nonsymm(wspace)
140
+ # * GSL::Matrix#eigen_nonsymm(eval, wspace)
141
+ #
142
+ # These methods compute the eigenvalues of the real nonsymmetric matrix <tt>m</tt>
143
+ # and return them, or store in the vector <tt>eval</tt> if it given.
144
+ # If <tt>T</tt> is desired, it is stored in <tt>m</tt> on output, however the lower
145
+ # triangular portion will not be zeroed out. Otherwise, on output, the diagonal
146
+ # of <tt>m</tt> will contain the 1-by-1 real eigenvalues and 2-by-2 complex
147
+ # conjugate eigenvalue systems, and the rest of <tt>m</tt> is destroyed.
148
+ #
149
+ # ---
150
+ # * GSL::Eigen::nonsymm_Z(m, eval, Z, wspace)
151
+ # * GSL::Eigen::nonsymm_Z(m)
152
+ # * GSL::Matrix#eigen_nonsymm_Z()
153
+ # * GSL::Matrix#eigen_nonsymm(eval, Z, wspace)
154
+ #
155
+ # These methods are identical to <tt>GSL::Eigen::nonsymm</tt> except they also
156
+ # compute the Schur vectors and return them (or store into <tt>Z</tt>).
157
+ #
158
+ # ---
159
+ # * GSL::Eigen::Nonsymmv.alloc(n)
160
+ #
161
+ # Allocates a workspace for computing eigenvalues and eigenvectors
162
+ # of n-by-n real nonsymmetric matrices. The size of the workspace is O(5n).
163
+ # ---
164
+ # * GSL::Eigen::nonsymm(m)
165
+ # * GSL::Eigen::nonsymm(m, wspace)
166
+ # * GSL::Eigen::nonsymm(m, eval, evec)
167
+ # * GSL::Eigen::nonsymm(m, eval, evec, wspace)
168
+ # * GSL::Matrix#eigen_nonsymmv()
169
+ # * GSL::Matrix#eigen_nonsymmv(wspace)
170
+ # * GSL::Matrix#eigen_nonsymmv(eval, evec)
171
+ # * GSL::Matrix#eigen_nonsymmv(eval, evec, wspace)
172
+ #
173
+ # Compute eigenvalues and right eigenvectors of the n-by-n real nonsymmetric
174
+ # matrix. The computed eigenvectors are normalized to have Euclidean norm 1.
175
+ # On output, the upper portion of <tt>m</tt> contains the Schur form <tt>T</tt>.
176
+ #
177
+ # == {}[link:index.html"name="5] Real Generalized Symmetric-Definite Eigensystems (GSL-1.10)
178
+ # The real generalized symmetric-definite eigenvalue problem is to
179
+ # find eigenvalues <tt>lambda</tt> and eigenvectors <tt>x</tt> such that
180
+ # where <tt>A</tt> and <tt>B</tt> are symmetric matrices, and <tt>B</tt>
181
+ # is positive-definite. This problem reduces to the standard symmetric eigenvalue
182
+ # problem by applying the Cholesky decomposition to <tt>B</tt>:
183
+ # Therefore, the problem becomes <tt>C y = lambda y</tt>
184
+ # where <tt>C = L^{-1} A L^{-t}</tt> is symmetric, and <tt>y = L^t x</tt>.
185
+ # The standard symmetric eigensolver can be applied to the matrix <tt>C</tt>.
186
+ # The resulting eigenvectors are backtransformed to find the vectors of the
187
+ # original problem. The eigenvalues and eigenvectors of the generalized
188
+ # symmetric-definite eigenproblem are always real.
189
+ #
190
+ # ---
191
+ # * GSL::Eigen::Gensymm.alloc(n)
192
+ # * GSL::Eigen::Gensymm::Workspace.alloc(n)
193
+ #
194
+ # Allocates a workspace for computing eigenvalues of n-by-n real
195
+ # generalized symmetric-definite eigensystems.
196
+ # The size of the workspace is O(2n).
197
+ # ---
198
+ # * GSL::Eigen::gensymm(A, B, w)
199
+ #
200
+ # Computes the eigenvalues of the real generalized symmetric-definite matrix
201
+ # pair <tt>A, B</tt>, and returns them as a <tt>GSL::Vector</tt>,
202
+ # using the method outlined above. On output, B contains its Cholesky
203
+ # decomposition.
204
+ # ---
205
+ # * GSL::Eigen::gensymmv(A, B, w)
206
+ #
207
+ # Computes the eigenvalues and eigenvectors of the real generalized
208
+ # symmetric-definite matrix pair <tt>A, B</tt>, and returns
209
+ # them as a <tt>GSL::Vector</tt> and a <tt>GSL::Matrix</tt>.
210
+ # The computed eigenvectors are normalized to have unit magnitude.
211
+ # On output, <tt>B</tt> contains its Cholesky decomposition.
212
+ #
213
+ # == {}[link:index.html"name="6] Complex Generalized Hermitian-Definite Eigensystems (>= GSL-1.10)
214
+ # The complex generalized hermitian-definite eigenvalue problem is to
215
+ # find eigenvalues <tt>lambda</tt> and eigenvectors <tt>x</tt> such that
216
+ # where <tt>A</tt> and <tt>B</tt> are hermitian matrices, and <tt>B</tt>
217
+ # is positive-definite. Similarly to the real case, this can be reduced to
218
+ # <tt>C y = lambda y</tt> where <tt>C = L^{-1} A L^{-H}</tt> is hermitian,
219
+ # and <tt>y = L^H x</tt>. The standard hermitian eigensolver can be applied to
220
+ # the matrix <tt>C</tt>. The resulting eigenvectors are backtransformed
221
+ # to find the vectors of the original problem.
222
+ # The eigenvalues of the generalized hermitian-definite eigenproblem are always
223
+ # real.
224
+ #
225
+ # ---
226
+ # * GSL::Eigen::Genherm.alloc(n)
227
+ #
228
+ # Allocates a workspace for computing eigenvalues of n-by-n complex
229
+ # generalized hermitian-definite eigensystems.
230
+ # The size of the workspace is O(3n).
231
+ # ---
232
+ # * GSL::Eigen::genherm(A, B, w)
233
+ #
234
+ # Computes the eigenvalues of the complex generalized hermitian-definite
235
+ # matrix pair <tt>A, B</tt>, and returns them as a <tt>GSL::Vector</tt>,
236
+ # using the method outlined above.
237
+ # On output, <tt>B</tt> contains its Cholesky decomposition.
238
+ # ---
239
+ # * GSL::Eigen::genherm(A, B, w)
240
+ #
241
+ # Computes the eigenvalues and eigenvectors of the complex generalized
242
+ # hermitian-definite matrix pair <tt>A, B</tt>,
243
+ # and returns them as a <tt>GSL::Vector</tt> and a <tt>GSL::Matrix::Complex</tt>.
244
+ # The computed eigenvectors are normalized to have unit magnitude.
245
+ # On output, <tt>B</tt> contains its Cholesky decomposition.
246
+ #
247
+ # == {}[link:index.html"name="7] Real Generalized Nonsymmetric Eigensystems (>= GSL-1.10)
248
+ #
249
+ # ---
250
+ # * GSL::Eigen::Gen.alloc(n)
251
+ # * GSL::Eigen::Gen::Workspace.alloc(n)
252
+ #
253
+ # Allocates a workspace for computing eigenvalues of n-by-n real generalized
254
+ # nonsymmetric eigensystems. The size of the workspace is O(n).
255
+ #
256
+ # ---
257
+ # * GSL::Eigen::Gen::params(compute_s, compute_t, balance, w)
258
+ # * GSL::Eigen::gen_params(compute_s, compute_t, balance, w)
259
+ #
260
+ # Set some parameters which determine how the eigenvalue problem is solved
261
+ # in subsequent calls to <tt>GSL::Eigen::gen</tt>.
262
+ #
263
+ # If <tt>compute_s</tt> is set to 1, the full Schur form <tt>S</tt> will be
264
+ # computed by <tt>GSL::Eigen::gen</tt>. If it is set to 0, <tt>S</tt> will
265
+ # not be computed (this is the default setting). <tt>S</tt> is a quasi upper
266
+ # triangular matrix with 1-by-1 and 2-by-2 blocks on its diagonal.
267
+ # 1-by-1 blocks correspond to real eigenvalues, and 2-by-2 blocks
268
+ # correspond to complex eigenvalues.
269
+ #
270
+ # If <tt>compute_t</tt> is set to 1, the full Schur form <tt>T</tt> will
271
+ # be computed by <tt>GSL::Eigen::gen</tt>. If it is set to 0, <tt>T</tt>
272
+ # will not be computed (this is the default setting). <tt>T</tt>
273
+ # is an upper triangular matrix with non-negative elements on its diagonal.
274
+ # Any 2-by-2 blocks in <tt>S</tt> will correspond to a 2-by-2 diagonal block
275
+ # in <tt>T</tt>.
276
+ #
277
+ # The <tt>balance</tt> parameter is currently ignored, since generalized
278
+ # balancing is not yet implemented.
279
+ #
280
+ # ---
281
+ # * GSL::Eigen::gen(A, B, w)
282
+ #
283
+ # Computes the eigenvalues of the real generalized nonsymmetric matrix pair
284
+ # <tt>A, B</tt>, and returns them as pairs in (alpha, beta),
285
+ # where alpha is <tt>GSL::Vector::Complex</tt> and beta is <tt>GSL::Vector</tt>.
286
+ # If beta_i is non-zero, then lambda = alpha_i / beta_i is an eigenvalue.
287
+ # Likewise, if alpha_i is non-zero, then mu = beta_i / alpha_i is an
288
+ # eigenvalue of the alternate problem mu A y = B y.
289
+ # The elements of <tt>beta</tt> are normalized to be non-negative.
290
+ #
291
+ # If <tt>S</tt> is desired, it is stored in <tt>A</tt> on output.
292
+ # If <tt>T</tt> is desired, it is stored in <tt>B</tt> on output.
293
+ # The ordering of eigenvalues in <tt>alpha, beta</tt>
294
+ # follows the ordering of the diagonal blocks in the Schur forms <tt>S</tt>
295
+ # and <tt>T</tt>.
296
+ #
297
+ # ---
298
+ # * GSL::Eigen::gen_QZ(A, B, w)
299
+ #
300
+ # This method is identical to <tt>GSL::Eigen::gen</tt> except it also computes
301
+ # the left and right Schur vectors and returns them.
302
+ #
303
+ # ---
304
+ # * GSL::Eigen::Genv.alloc(n)
305
+ # * GSL::Eigen::Genv::Workspace.alloc(n)
306
+ #
307
+ # Allocatesa workspace for computing eigenvalues and eigenvectors of
308
+ # n-by-n real generalized nonsymmetric eigensystems.
309
+ # The size of the workspace is O(7n).
310
+ #
311
+ # ---
312
+ # * GSL::Eigen::genv(A, B, w)
313
+ #
314
+ # Computes eigenvalues and right eigenvectors of the n-by-n real generalized
315
+ # nonsymmetric matrix pair <tt>A, B</tt>. The eigenvalues and eigenvectors
316
+ # are returned in <tt>alpha, beta, evec</tt>.
317
+ # On output, <tt>A, B</tt> contains the generalized Schur form <tt>S, T</tt>.
318
+ #
319
+ # ---
320
+ # * GSL::Eigen::genv_QZ(A, B, w)
321
+ #
322
+ # This method is identical to <tt>GSL::Eigen::genv</tt> except it also computes
323
+ # the left and right Schur vectors and returns them.
324
+ #
325
+ # == {}[link:index.html"name="8] Sorting Eigenvalues and Eigenvectors
326
+ # ---
327
+ # * GSL::Eigen::symmv_sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
328
+ # * GSL::Eigen::Symmv::sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
329
+ #
330
+ # These methods simultaneously sort the eigenvalues stored in the vector
331
+ # <tt>eval</tt> and the corresponding real eigenvectors stored in the
332
+ # columns of the matrix <tt>evec</tt> into ascending or descending order
333
+ # according to the value of the parameter <tt>type</tt>,
334
+ #
335
+ # * <tt>GSL::Eigen::SORT_VAL_ASC</tt>
336
+ # ascending order in numerical value
337
+ # * <tt>GSL::Eigen::SORT_VAL_DESC</tt>
338
+ # escending order in numerical value
339
+ # * <tt>GSL::Eigen::SORT_ABS_ASC</tt>
340
+ # scending order in magnitude
341
+ # * <tt>GSL::Eigen::SORT_ABS_DESC</tt>
342
+ # descending order in magnitude
343
+ #
344
+ # The sorting is carried out in-place!
345
+ #
346
+ # ---
347
+ # * GSL::Eigen::hermv_sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
348
+ # * GSL::Eigen::Hermv::sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
349
+ #
350
+ # These methods simultaneously sort the eigenvalues stored in the vector
351
+ # <tt>eval</tt> and the corresponding complex eigenvectors stored in the columns
352
+ # of the matrix <tt>evec</tt> into ascending or descending order according
353
+ # to the value of the parameter <tt>type</tt> as shown above.
354
+ #
355
+ # ---
356
+ # * GSL::Eigen::nonsymmv_sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
357
+ # * GSL::Eigen::Nonsymmv::sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
358
+ #
359
+ # Sorts the eigenvalues stored in the vector <tt>eval</tt> and the corresponding
360
+ # complex eigenvectors stored in the columns of the matrix <tt>evec</tt>
361
+ # into ascending or descending order according to the value of the
362
+ # parameter <tt>type</tt> as shown above.
363
+ # Only <tt>GSL::EIGEN_SORT_ABS_ASC</tt> and <tt>GSL::EIGEN_SORT_ABS_DESC</tt>
364
+ # are supported due to the eigenvalues being complex.
365
+ #
366
+ # ---
367
+ # * GSL::Eigen::gensymmv_sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
368
+ # * GSL::Eigen::Gensymmv::sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
369
+ #
370
+ # Sorts the eigenvalues stored in the vector <tt>eval</tt> and the
371
+ # corresponding real eigenvectors stored in the columns of the matrix
372
+ # <tt>evec</tt> into ascending or descending order according to the value of
373
+ # the parameter <tt>type</tt> as shown above.
374
+ #
375
+ # ---
376
+ # * GSL::Eigen::gensymmv_sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
377
+ # * GSL::Eigen::Gensymmv::sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
378
+ #
379
+ # Sorts the eigenvalues stored in the vector <tt>eval</tt> and the
380
+ # corresponding complex eigenvectors stored in the columns of the matrix
381
+ # <tt>evec</tt> into ascending or descending order according to the value of
382
+ # the parameter <tt>type</tt> as shown above.
383
+ #
384
+ # ---
385
+ # * GSL::Eigen::genv_sort(alpha, beta, evec, type = GSL::Eigen::SORT_VAL_ASC)
386
+ # * GSL::Eigen::Genv::sort(alpha, beta, evec, type = GSL::Eigen::SORT_VAL_ASC)
387
+ #
388
+ # Sorts the eigenvalues stored in the vectors <tt>alpha, beta</tt> and the
389
+ # corresponding complex eigenvectors stored in the columns of the matrix
390
+ # <tt>evec</tt> into ascending or descending order according to the value of
391
+ # the parameter <tt>type</tt> as shown above. Only <tt>GSL::EIGEN_SORT_ABS_ASC</tt>
392
+ # and <tt>GSL::EIGEN_SORT_ABS_DESC</tt> are supported due to the eigenvalues
393
+ # being complex.
394
+ #
395
+ # {prev}[link:files/rdoc/linalg_rdoc.html]
396
+ # {next}[link:files/rdoc/fft_rdoc.html]
397
+ #
398
+ # {Reference index}[link:files/rdoc/ref_rdoc.html]
399
+ # {top}[link:files/rdoc/index_rdoc.html]
400
+ #
401
+ #