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.
- checksums.yaml +7 -0
- data/AUTHORS +6 -0
- data/COPYING +339 -0
- data/ChangeLog +567 -0
- data/README +32 -0
- data/Rakefile +99 -0
- data/THANKS +17 -0
- data/VERSION +1 -0
- data/examples/alf/alf.gp +15 -0
- data/examples/alf/alf.rb +32 -0
- data/examples/blas/blas.rb +13 -0
- data/examples/blas/dnrm2.rb +16 -0
- data/examples/blas/level1.rb +81 -0
- data/examples/blas/level2.rb +11 -0
- data/examples/blas/level3.rb +12 -0
- data/examples/bspline.rb +57 -0
- data/examples/cdf.rb +16 -0
- data/examples/cheb.rb +21 -0
- data/examples/combination.rb +23 -0
- data/examples/complex/RC-lpf.rb +47 -0
- data/examples/complex/add.rb +36 -0
- data/examples/complex/coerce.rb +14 -0
- data/examples/complex/complex.rb +25 -0
- data/examples/complex/fpmi.rb +70 -0
- data/examples/complex/functions.rb +77 -0
- data/examples/complex/michelson.rb +36 -0
- data/examples/complex/mul.rb +28 -0
- data/examples/complex/oscillator.rb +17 -0
- data/examples/complex/set.rb +37 -0
- data/examples/const/physconst.rb +151 -0
- data/examples/const/travel.rb +45 -0
- data/examples/deriv/demo.rb +13 -0
- data/examples/deriv/deriv.rb +36 -0
- data/examples/deriv/diff.rb +35 -0
- data/examples/dht.rb +42 -0
- data/examples/dirac.rb +56 -0
- data/examples/eigen/eigen.rb +34 -0
- data/examples/eigen/herm.rb +22 -0
- data/examples/eigen/narray.rb +9 -0
- data/examples/eigen/nonsymm.rb +37 -0
- data/examples/eigen/nonsymmv.rb +43 -0
- data/examples/eigen/qhoscillator.gp +35 -0
- data/examples/eigen/qhoscillator.rb +90 -0
- data/examples/eigen/vander.rb +41 -0
- data/examples/fft/fft.rb +17 -0
- data/examples/fft/fft2.rb +17 -0
- data/examples/fft/forward.rb +25 -0
- data/examples/fft/forward2.rb +26 -0
- data/examples/fft/radix2.rb +18 -0
- data/examples/fft/real-halfcomplex.rb +33 -0
- data/examples/fft/real-halfcomplex2.rb +30 -0
- data/examples/fft/realradix2.rb +19 -0
- data/examples/fft/sunspot.dat +256 -0
- data/examples/fft/sunspot.rb +16 -0
- data/examples/fit/expdata.dat +20 -0
- data/examples/fit/expfit.rb +31 -0
- data/examples/fit/gaussfit.rb +29 -0
- data/examples/fit/gaussian_2peaks.rb +34 -0
- data/examples/fit/hillfit.rb +40 -0
- data/examples/fit/lognormal.rb +26 -0
- data/examples/fit/lorentzfit.rb +22 -0
- data/examples/fit/multifit.rb +72 -0
- data/examples/fit/ndlinear.rb +133 -0
- data/examples/fit/nonlinearfit.rb +89 -0
- data/examples/fit/plot.gp +36 -0
- data/examples/fit/polyfit.rb +9 -0
- data/examples/fit/powerfit.rb +21 -0
- data/examples/fit/sigmoidfit.rb +40 -0
- data/examples/fit/sinfit.rb +22 -0
- data/examples/fit/wlinear.rb +46 -0
- data/examples/fresnel.rb +11 -0
- data/examples/function/function.rb +36 -0
- data/examples/function/log.rb +7 -0
- data/examples/function/min.rb +33 -0
- data/examples/function/sin.rb +10 -0
- data/examples/function/synchrotron.rb +18 -0
- data/examples/gallery/butterfly.rb +7 -0
- data/examples/gallery/cayley.rb +12 -0
- data/examples/gallery/cornu.rb +23 -0
- data/examples/gallery/eight.rb +11 -0
- data/examples/gallery/koch.rb +40 -0
- data/examples/gallery/lemniscate.rb +11 -0
- data/examples/gallery/polar.rb +11 -0
- data/examples/gallery/rgplot/cossin.rb +35 -0
- data/examples/gallery/rgplot/rgplot.replaced +0 -0
- data/examples/gallery/rgplot/roesller.rb +55 -0
- data/examples/gallery/roesller.rb +39 -0
- data/examples/gallery/scarabaeus.rb +14 -0
- data/examples/histogram/cauchy.rb +27 -0
- data/examples/histogram/cauchy.sh +2 -0
- data/examples/histogram/exponential.rb +19 -0
- data/examples/histogram/gauss.rb +16 -0
- data/examples/histogram/gsl-histogram.rb +40 -0
- data/examples/histogram/histo2d.rb +31 -0
- data/examples/histogram/histo3d.rb +34 -0
- data/examples/histogram/histogram-pdf.rb +27 -0
- data/examples/histogram/histogram.rb +26 -0
- data/examples/histogram/integral.rb +28 -0
- data/examples/histogram/poisson.rb +27 -0
- data/examples/histogram/power.rb +25 -0
- data/examples/histogram/rebin.rb +17 -0
- data/examples/histogram/smp.dat +5 -0
- data/examples/histogram/xexp.rb +21 -0
- data/examples/integration/ahmed.rb +21 -0
- data/examples/integration/cosmology.rb +75 -0
- data/examples/integration/friedmann.gp +16 -0
- data/examples/integration/friedmann.rb +35 -0
- data/examples/integration/gamma-zeta.rb +35 -0
- data/examples/integration/integration.rb +22 -0
- data/examples/integration/qag.rb +8 -0
- data/examples/integration/qag2.rb +14 -0
- data/examples/integration/qag3.rb +8 -0
- data/examples/integration/qagi.rb +28 -0
- data/examples/integration/qagi2.rb +49 -0
- data/examples/integration/qagiu.rb +29 -0
- data/examples/integration/qagp.rb +20 -0
- data/examples/integration/qags.rb +14 -0
- data/examples/integration/qawc.rb +18 -0
- data/examples/integration/qawf.rb +41 -0
- data/examples/integration/qawo.rb +29 -0
- data/examples/integration/qaws.rb +30 -0
- data/examples/integration/qng.rb +17 -0
- data/examples/interp/demo.gp +20 -0
- data/examples/interp/demo.rb +45 -0
- data/examples/interp/interp.rb +37 -0
- data/examples/interp/points +10 -0
- data/examples/interp/spline.rb +20 -0
- data/examples/jacobi/deriv.rb +40 -0
- data/examples/jacobi/integrate.rb +34 -0
- data/examples/jacobi/interp.rb +43 -0
- data/examples/jacobi/jacobi.rb +11 -0
- data/examples/linalg/HH.rb +15 -0
- data/examples/linalg/HH_narray.rb +13 -0
- data/examples/linalg/LQ_solve.rb +73 -0
- data/examples/linalg/LU.rb +84 -0
- data/examples/linalg/LU2.rb +31 -0
- data/examples/linalg/LU_narray.rb +24 -0
- data/examples/linalg/PTLQ.rb +47 -0
- data/examples/linalg/QR.rb +18 -0
- data/examples/linalg/QRPT.rb +47 -0
- data/examples/linalg/QR_solve.rb +78 -0
- data/examples/linalg/QR_solve_narray.rb +13 -0
- data/examples/linalg/SV.rb +16 -0
- data/examples/linalg/SV_narray.rb +12 -0
- data/examples/linalg/SV_solve.rb +49 -0
- data/examples/linalg/chol.rb +29 -0
- data/examples/linalg/chol_narray.rb +15 -0
- data/examples/linalg/complex.rb +57 -0
- data/examples/linalg/invert_narray.rb +10 -0
- data/examples/math/const.rb +67 -0
- data/examples/math/elementary.rb +35 -0
- data/examples/math/functions.rb +41 -0
- data/examples/math/inf_nan.rb +34 -0
- data/examples/math/minmax.rb +22 -0
- data/examples/math/power.rb +18 -0
- data/examples/math/test.rb +31 -0
- data/examples/matrix/a.dat +0 -0
- data/examples/matrix/add.rb +45 -0
- data/examples/matrix/b.dat +4 -0
- data/examples/matrix/cat.rb +31 -0
- data/examples/matrix/colvectors.rb +24 -0
- data/examples/matrix/complex.rb +41 -0
- data/examples/matrix/det.rb +29 -0
- data/examples/matrix/diagonal.rb +23 -0
- data/examples/matrix/get_all.rb +159 -0
- data/examples/matrix/hilbert.rb +31 -0
- data/examples/matrix/iterator.rb +19 -0
- data/examples/matrix/matrix.rb +57 -0
- data/examples/matrix/minmax.rb +53 -0
- data/examples/matrix/mul.rb +39 -0
- data/examples/matrix/rand.rb +20 -0
- data/examples/matrix/read.rb +29 -0
- data/examples/matrix/rowcol.rb +47 -0
- data/examples/matrix/set.rb +41 -0
- data/examples/matrix/set_all.rb +100 -0
- data/examples/matrix/view.rb +32 -0
- data/examples/matrix/view_all.rb +148 -0
- data/examples/matrix/write.rb +23 -0
- data/examples/min.rb +29 -0
- data/examples/monte/miser.rb +47 -0
- data/examples/monte/monte.rb +47 -0
- data/examples/monte/plain.rb +47 -0
- data/examples/monte/vegas.rb +46 -0
- data/examples/multimin/bundle.rb +66 -0
- data/examples/multimin/cqp.rb +109 -0
- data/examples/multimin/fdfminimizer.rb +40 -0
- data/examples/multimin/fminimizer.rb +41 -0
- data/examples/multiroot/demo.rb +36 -0
- data/examples/multiroot/fdfsolver.rb +50 -0
- data/examples/multiroot/fsolver.rb +33 -0
- data/examples/multiroot/fsolver2.rb +32 -0
- data/examples/multiroot/fsolver3.rb +26 -0
- data/examples/narray/histogram.rb +14 -0
- data/examples/narray/mandel.rb +27 -0
- data/examples/narray/narray.rb +28 -0
- data/examples/narray/narray2.rb +44 -0
- data/examples/narray/sf.rb +26 -0
- data/examples/ntuple/create.rb +17 -0
- data/examples/ntuple/project.rb +31 -0
- data/examples/odeiv/binarysystem.gp +23 -0
- data/examples/odeiv/binarysystem.rb +104 -0
- data/examples/odeiv/demo.gp +24 -0
- data/examples/odeiv/demo.rb +69 -0
- data/examples/odeiv/demo2.gp +26 -0
- data/examples/odeiv/duffing.rb +45 -0
- data/examples/odeiv/frei1.rb +109 -0
- data/examples/odeiv/frei2.rb +76 -0
- data/examples/odeiv/legendre.rb +52 -0
- data/examples/odeiv/odeiv.rb +32 -0
- data/examples/odeiv/odeiv2.rb +45 -0
- data/examples/odeiv/oscillator.rb +42 -0
- data/examples/odeiv/sedov.rb +97 -0
- data/examples/odeiv/whitedwarf.gp +40 -0
- data/examples/odeiv/whitedwarf.rb +158 -0
- data/examples/ool/conmin.rb +100 -0
- data/examples/ool/gencan.rb +99 -0
- data/examples/ool/pgrad.rb +100 -0
- data/examples/ool/spg.rb +100 -0
- data/examples/pdf/bernoulli.rb +5 -0
- data/examples/pdf/beta.rb +7 -0
- data/examples/pdf/binomiral.rb +10 -0
- data/examples/pdf/cauchy.rb +6 -0
- data/examples/pdf/chisq.rb +8 -0
- data/examples/pdf/exponential.rb +7 -0
- data/examples/pdf/exppow.rb +6 -0
- data/examples/pdf/fdist.rb +7 -0
- data/examples/pdf/flat.rb +7 -0
- data/examples/pdf/gamma.rb +8 -0
- data/examples/pdf/gauss-tail.rb +5 -0
- data/examples/pdf/gauss.rb +6 -0
- data/examples/pdf/geometric.rb +5 -0
- data/examples/pdf/gumbel.rb +6 -0
- data/examples/pdf/hypergeometric.rb +11 -0
- data/examples/pdf/landau.rb +5 -0
- data/examples/pdf/laplace.rb +7 -0
- data/examples/pdf/logarithmic.rb +5 -0
- data/examples/pdf/logistic.rb +6 -0
- data/examples/pdf/lognormal.rb +6 -0
- data/examples/pdf/neg-binomiral.rb +10 -0
- data/examples/pdf/pareto.rb +7 -0
- data/examples/pdf/pascal.rb +10 -0
- data/examples/pdf/poisson.rb +5 -0
- data/examples/pdf/rayleigh-tail.rb +6 -0
- data/examples/pdf/rayleigh.rb +6 -0
- data/examples/pdf/tdist.rb +6 -0
- data/examples/pdf/weibull.rb +8 -0
- data/examples/permutation/ex1.rb +22 -0
- data/examples/permutation/permutation.rb +16 -0
- data/examples/poly/bell.rb +6 -0
- data/examples/poly/bessel.rb +6 -0
- data/examples/poly/cheb.rb +6 -0
- data/examples/poly/cheb_II.rb +6 -0
- data/examples/poly/cubic.rb +9 -0
- data/examples/poly/demo.rb +20 -0
- data/examples/poly/eval.rb +28 -0
- data/examples/poly/eval_derivs.rb +14 -0
- data/examples/poly/fit.rb +21 -0
- data/examples/poly/hermite.rb +6 -0
- data/examples/poly/poly.rb +13 -0
- data/examples/poly/quadratic.rb +25 -0
- data/examples/random/diffusion.rb +34 -0
- data/examples/random/gaussian.rb +9 -0
- data/examples/random/generator.rb +27 -0
- data/examples/random/hdsobol.rb +21 -0
- data/examples/random/poisson.rb +9 -0
- data/examples/random/qrng.rb +19 -0
- data/examples/random/randomwalk.rb +37 -0
- data/examples/random/randomwalk2d.rb +19 -0
- data/examples/random/rayleigh.rb +36 -0
- data/examples/random/rng.rb +33 -0
- data/examples/random/rngextra.rb +14 -0
- data/examples/roots/bisection.rb +25 -0
- data/examples/roots/brent.rb +43 -0
- data/examples/roots/demo.rb +30 -0
- data/examples/roots/newton.rb +46 -0
- data/examples/roots/recombination.gp +12 -0
- data/examples/roots/recombination.rb +61 -0
- data/examples/roots/steffenson.rb +48 -0
- data/examples/sf/ShiChi.rb +6 -0
- data/examples/sf/SiCi.rb +6 -0
- data/examples/sf/airy_Ai.rb +8 -0
- data/examples/sf/airy_Bi.rb +8 -0
- data/examples/sf/bessel_IK.rb +12 -0
- data/examples/sf/bessel_JY.rb +13 -0
- data/examples/sf/beta_inc.rb +9 -0
- data/examples/sf/clausen.rb +6 -0
- data/examples/sf/dawson.rb +5 -0
- data/examples/sf/debye.rb +9 -0
- data/examples/sf/dilog.rb +6 -0
- data/examples/sf/ellint.rb +6 -0
- data/examples/sf/expint.rb +8 -0
- data/examples/sf/fermi.rb +10 -0
- data/examples/sf/gamma_inc_P.rb +9 -0
- data/examples/sf/gegenbauer.rb +8 -0
- data/examples/sf/hyperg.rb +7 -0
- data/examples/sf/laguerre.rb +19 -0
- data/examples/sf/lambertW.rb +5 -0
- data/examples/sf/legendre_P.rb +10 -0
- data/examples/sf/lngamma.rb +5 -0
- data/examples/sf/psi.rb +54 -0
- data/examples/sf/sphbessel.gp +27 -0
- data/examples/sf/sphbessel.rb +30 -0
- data/examples/sf/synchrotron.rb +5 -0
- data/examples/sf/transport.rb +10 -0
- data/examples/sf/zetam1.rb +5 -0
- data/examples/siman.rb +44 -0
- data/examples/sort/heapsort.rb +23 -0
- data/examples/sort/heapsort_vector_complex.rb +21 -0
- data/examples/sort/sort.rb +23 -0
- data/examples/sort/sort2.rb +16 -0
- data/examples/stats/mean.rb +17 -0
- data/examples/stats/statistics.rb +18 -0
- data/examples/stats/test.rb +9 -0
- data/examples/sum.rb +34 -0
- data/examples/tamu_anova.rb +18 -0
- data/examples/vector/a.dat +0 -0
- data/examples/vector/add.rb +56 -0
- data/examples/vector/b.dat +4 -0
- data/examples/vector/c.dat +3 -0
- data/examples/vector/collect.rb +26 -0
- data/examples/vector/compare.rb +28 -0
- data/examples/vector/complex.rb +51 -0
- data/examples/vector/complex_get_all.rb +85 -0
- data/examples/vector/complex_set_all.rb +131 -0
- data/examples/vector/complex_view_all.rb +77 -0
- data/examples/vector/connect.rb +22 -0
- data/examples/vector/decimate.rb +38 -0
- data/examples/vector/diff.rb +31 -0
- data/examples/vector/filescan.rb +17 -0
- data/examples/vector/floor.rb +23 -0
- data/examples/vector/get_all.rb +82 -0
- data/examples/vector/gnuplot.rb +38 -0
- data/examples/vector/graph.rb +28 -0
- data/examples/vector/histogram.rb +22 -0
- data/examples/vector/linspace.rb +24 -0
- data/examples/vector/log.rb +17 -0
- data/examples/vector/logic.rb +33 -0
- data/examples/vector/logspace.rb +25 -0
- data/examples/vector/minmax.rb +47 -0
- data/examples/vector/mul.rb +49 -0
- data/examples/vector/narray.rb +46 -0
- data/examples/vector/read.rb +29 -0
- data/examples/vector/set.rb +35 -0
- data/examples/vector/set_all.rb +121 -0
- data/examples/vector/smpv.dat +15 -0
- data/examples/vector/test.rb +43 -0
- data/examples/vector/test_gslblock.rb +58 -0
- data/examples/vector/vector.rb +110 -0
- data/examples/vector/view.rb +35 -0
- data/examples/vector/view_all.rb +73 -0
- data/examples/vector/where.rb +29 -0
- data/examples/vector/write.rb +24 -0
- data/examples/vector/zip.rb +34 -0
- data/examples/wavelet/ecg.dat +256 -0
- data/examples/wavelet/wavelet1.rb +50 -0
- data/ext/alf.c +206 -0
- data/ext/array.c +642 -0
- data/ext/array_complex.c +248 -0
- data/ext/blas.c +29 -0
- data/ext/blas1.c +734 -0
- data/ext/blas2.c +1093 -0
- data/ext/blas3.c +881 -0
- data/ext/block.c +44 -0
- data/ext/block_source.c +887 -0
- data/ext/bspline.c +130 -0
- data/ext/bundle.c +3 -0
- data/ext/cdf.c +754 -0
- data/ext/cheb.c +542 -0
- data/ext/combination.c +283 -0
- data/ext/common.c +325 -0
- data/ext/complex.c +1004 -0
- data/ext/const.c +673 -0
- data/ext/const_additional.c +120 -0
- data/ext/cqp.c +283 -0
- data/ext/deriv.c +195 -0
- data/ext/dht.c +361 -0
- data/ext/diff.c +166 -0
- data/ext/dirac.c +389 -0
- data/ext/eigen.c +2373 -0
- data/ext/error.c +193 -0
- data/ext/extconf.rb +303 -0
- data/ext/fcmp.c +66 -0
- data/ext/fft.c +1102 -0
- data/ext/fit.c +205 -0
- data/ext/fresnel.c +312 -0
- data/ext/function.c +524 -0
- data/ext/geometry.c +139 -0
- data/ext/graph.c +1640 -0
- data/ext/gsl.c +280 -0
- data/ext/gsl_narray.c +804 -0
- data/ext/histogram.c +1991 -0
- data/ext/histogram2d.c +1068 -0
- data/ext/histogram3d.c +884 -0
- data/ext/histogram3d_source.c +750 -0
- data/ext/histogram_find.c +101 -0
- data/ext/histogram_oper.c +159 -0
- data/ext/ieee.c +100 -0
- data/ext/integration.c +1179 -0
- data/ext/interp.c +512 -0
- data/ext/jacobi.c +739 -0
- data/ext/linalg.c +4042 -0
- data/ext/linalg_complex.c +739 -0
- data/ext/math.c +725 -0
- data/ext/matrix.c +39 -0
- data/ext/matrix_complex.c +1737 -0
- data/ext/matrix_double.c +560 -0
- data/ext/matrix_int.c +256 -0
- data/ext/matrix_source.c +2734 -0
- data/ext/min.c +250 -0
- data/ext/monte.c +992 -0
- data/ext/multifit.c +1871 -0
- data/ext/multimin.c +806 -0
- data/ext/multimin_fsdf.c +156 -0
- data/ext/multiroots.c +955 -0
- data/ext/multiset.c +214 -0
- data/ext/ndlinear.c +321 -0
- data/ext/nmf.c +171 -0
- data/ext/nmf_wrap.c +75 -0
- data/ext/ntuple.c +469 -0
- data/ext/odeiv.c +962 -0
- data/ext/ool.c +879 -0
- data/ext/oper_complex_source.c +253 -0
- data/ext/permutation.c +596 -0
- data/ext/poly.c +42 -0
- data/ext/poly2.c +265 -0
- data/ext/poly_source.c +1915 -0
- data/ext/qrng.c +171 -0
- data/ext/randist.c +1873 -0
- data/ext/rational.c +480 -0
- data/ext/rng.c +612 -0
- data/ext/root.c +408 -0
- data/ext/sf.c +1494 -0
- data/ext/sf_airy.c +200 -0
- data/ext/sf_bessel.c +871 -0
- data/ext/sf_clausen.c +28 -0
- data/ext/sf_coulomb.c +206 -0
- data/ext/sf_coupling.c +121 -0
- data/ext/sf_dawson.c +29 -0
- data/ext/sf_debye.c +157 -0
- data/ext/sf_dilog.c +43 -0
- data/ext/sf_elementary.c +46 -0
- data/ext/sf_ellint.c +206 -0
- data/ext/sf_elljac.c +30 -0
- data/ext/sf_erfc.c +93 -0
- data/ext/sf_exp.c +169 -0
- data/ext/sf_expint.c +211 -0
- data/ext/sf_fermi_dirac.c +148 -0
- data/ext/sf_gamma.c +347 -0
- data/ext/sf_gegenbauer.c +97 -0
- data/ext/sf_hyperg.c +203 -0
- data/ext/sf_laguerre.c +113 -0
- data/ext/sf_lambert.c +47 -0
- data/ext/sf_legendre.c +368 -0
- data/ext/sf_log.c +105 -0
- data/ext/sf_mathieu.c +238 -0
- data/ext/sf_power.c +47 -0
- data/ext/sf_psi.c +98 -0
- data/ext/sf_synchrotron.c +48 -0
- data/ext/sf_transport.c +76 -0
- data/ext/sf_trigonometric.c +210 -0
- data/ext/sf_zeta.c +119 -0
- data/ext/signal.c +308 -0
- data/ext/siman.c +717 -0
- data/ext/sort.c +208 -0
- data/ext/spline.c +395 -0
- data/ext/stats.c +800 -0
- data/ext/sum.c +168 -0
- data/ext/tamu_anova.c +56 -0
- data/ext/tensor.c +38 -0
- data/ext/tensor_source.c +1123 -0
- data/ext/vector.c +38 -0
- data/ext/vector_complex.c +2246 -0
- data/ext/vector_double.c +1438 -0
- data/ext/vector_int.c +204 -0
- data/ext/vector_source.c +3336 -0
- data/ext/wavelet.c +945 -0
- data/include/rb_gsl.h +158 -0
- data/include/rb_gsl_array.h +238 -0
- data/include/rb_gsl_cheb.h +21 -0
- data/include/rb_gsl_common.h +348 -0
- data/include/rb_gsl_complex.h +25 -0
- data/include/rb_gsl_config.h +62 -0
- data/include/rb_gsl_const.h +29 -0
- data/include/rb_gsl_dirac.h +13 -0
- data/include/rb_gsl_eigen.h +17 -0
- data/include/rb_gsl_fft.h +62 -0
- data/include/rb_gsl_fit.h +25 -0
- data/include/rb_gsl_function.h +27 -0
- data/include/rb_gsl_graph.h +70 -0
- data/include/rb_gsl_histogram.h +63 -0
- data/include/rb_gsl_histogram3d.h +97 -0
- data/include/rb_gsl_integration.h +17 -0
- data/include/rb_gsl_interp.h +46 -0
- data/include/rb_gsl_linalg.h +25 -0
- data/include/rb_gsl_math.h +26 -0
- data/include/rb_gsl_odeiv.h +21 -0
- data/include/rb_gsl_poly.h +71 -0
- data/include/rb_gsl_rational.h +37 -0
- data/include/rb_gsl_rng.h +21 -0
- data/include/rb_gsl_root.h +22 -0
- data/include/rb_gsl_sf.h +119 -0
- data/include/rb_gsl_statistics.h +17 -0
- data/include/rb_gsl_tensor.h +45 -0
- data/include/rb_gsl_with_narray.h +29 -0
- data/include/templates_off.h +87 -0
- data/include/templates_on.h +241 -0
- data/lib/gsl.rb +3 -0
- data/lib/gsl/gnuplot.rb +41 -0
- data/lib/gsl/oper.rb +68 -0
- data/lib/ool.rb +22 -0
- data/lib/ool/conmin.rb +30 -0
- data/lib/rbgsl.rb +3 -0
- data/rdoc/alf.rdoc +77 -0
- data/rdoc/blas.rdoc +269 -0
- data/rdoc/bspline.rdoc +42 -0
- data/rdoc/changes.rdoc +164 -0
- data/rdoc/cheb.rdoc +99 -0
- data/rdoc/cholesky_complex.rdoc +46 -0
- data/rdoc/combi.rdoc +125 -0
- data/rdoc/complex.rdoc +210 -0
- data/rdoc/const.rdoc +546 -0
- data/rdoc/dht.rdoc +122 -0
- data/rdoc/diff.rdoc +133 -0
- data/rdoc/ehandling.rdoc +50 -0
- data/rdoc/eigen.rdoc +401 -0
- data/rdoc/fft.rdoc +535 -0
- data/rdoc/fit.rdoc +284 -0
- data/rdoc/function.rdoc +94 -0
- data/rdoc/graph.rdoc +137 -0
- data/rdoc/hist.rdoc +409 -0
- data/rdoc/hist2d.rdoc +279 -0
- data/rdoc/hist3d.rdoc +112 -0
- data/rdoc/index.rdoc +62 -0
- data/rdoc/integration.rdoc +398 -0
- data/rdoc/interp.rdoc +231 -0
- data/rdoc/intro.rdoc +27 -0
- data/rdoc/linalg.rdoc +681 -0
- data/rdoc/linalg_complex.rdoc +88 -0
- data/rdoc/math.rdoc +276 -0
- data/rdoc/matrix.rdoc +1093 -0
- data/rdoc/min.rdoc +189 -0
- data/rdoc/monte.rdoc +234 -0
- data/rdoc/multimin.rdoc +312 -0
- data/rdoc/multiroot.rdoc +293 -0
- data/rdoc/narray.rdoc +177 -0
- data/rdoc/ndlinear.rdoc +250 -0
- data/rdoc/nonlinearfit.rdoc +348 -0
- data/rdoc/ntuple.rdoc +88 -0
- data/rdoc/odeiv.rdoc +378 -0
- data/rdoc/perm.rdoc +221 -0
- data/rdoc/poly.rdoc +335 -0
- data/rdoc/qrng.rdoc +90 -0
- data/rdoc/randist.rdoc +233 -0
- data/rdoc/ref.rdoc +93 -0
- data/rdoc/rng.rdoc +203 -0
- data/rdoc/rngextra.rdoc +11 -0
- data/rdoc/roots.rdoc +305 -0
- data/rdoc/screenshot.rdoc +40 -0
- data/rdoc/sf.rdoc +1622 -0
- data/rdoc/siman.rdoc +89 -0
- data/rdoc/sort.rdoc +94 -0
- data/rdoc/start.rdoc +16 -0
- data/rdoc/stats.rdoc +219 -0
- data/rdoc/sum.rdoc +65 -0
- data/rdoc/tensor.rdoc +251 -0
- data/rdoc/tut.rdoc +5 -0
- data/rdoc/use.rdoc +177 -0
- data/rdoc/vector.rdoc +1243 -0
- data/rdoc/vector_complex.rdoc +347 -0
- data/rdoc/wavelet.rdoc +218 -0
- data/setup.rb +1585 -0
- data/tests/blas/amax.rb +14 -0
- data/tests/blas/asum.rb +16 -0
- data/tests/blas/axpy.rb +25 -0
- data/tests/blas/copy.rb +23 -0
- data/tests/blas/dot.rb +23 -0
- data/tests/bspline.rb +53 -0
- data/tests/cdf.rb +1388 -0
- data/tests/cheb.rb +112 -0
- data/tests/combination.rb +123 -0
- data/tests/complex.rb +17 -0
- data/tests/const.rb +24 -0
- data/tests/deriv.rb +85 -0
- data/tests/dht/dht1.rb +17 -0
- data/tests/dht/dht2.rb +23 -0
- data/tests/dht/dht3.rb +23 -0
- data/tests/dht/dht4.rb +23 -0
- data/tests/diff.rb +78 -0
- data/tests/eigen/eigen.rb +220 -0
- data/tests/eigen/gen.rb +105 -0
- data/tests/eigen/genherm.rb +66 -0
- data/tests/eigen/gensymm.rb +68 -0
- data/tests/eigen/nonsymm.rb +53 -0
- data/tests/eigen/nonsymmv.rb +53 -0
- data/tests/eigen/symm-herm.rb +74 -0
- data/tests/err.rb +58 -0
- data/tests/fit.rb +124 -0
- data/tests/gsl_test.rb +118 -0
- data/tests/gsl_test2.rb +110 -0
- data/tests/histo.rb +12 -0
- data/tests/integration/integration1.rb +72 -0
- data/tests/integration/integration2.rb +71 -0
- data/tests/integration/integration3.rb +71 -0
- data/tests/integration/integration4.rb +71 -0
- data/tests/interp.rb +45 -0
- data/tests/linalg/HH.rb +64 -0
- data/tests/linalg/LU.rb +47 -0
- data/tests/linalg/QR.rb +77 -0
- data/tests/linalg/SV.rb +24 -0
- data/tests/linalg/TDN.rb +116 -0
- data/tests/linalg/TDS.rb +122 -0
- data/tests/linalg/bidiag.rb +73 -0
- data/tests/linalg/cholesky.rb +20 -0
- data/tests/linalg/linalg.rb +158 -0
- data/tests/matrix/matrix_complex_test.rb +36 -0
- data/tests/matrix/matrix_nmf_test.rb +39 -0
- data/tests/matrix/matrix_test.rb +48 -0
- data/tests/min.rb +99 -0
- data/tests/monte/miser.rb +31 -0
- data/tests/monte/vegas.rb +45 -0
- data/tests/multifit/test_2dgauss.rb +112 -0
- data/tests/multifit/test_brown.rb +90 -0
- data/tests/multifit/test_enso.rb +246 -0
- data/tests/multifit/test_filip.rb +155 -0
- data/tests/multifit/test_gauss.rb +97 -0
- data/tests/multifit/test_longley.rb +110 -0
- data/tests/multifit/test_multifit.rb +52 -0
- data/tests/multimin.rb +139 -0
- data/tests/multiroot.rb +131 -0
- data/tests/multiset.rb +52 -0
- data/tests/narray/blas_dnrm2.rb +20 -0
- data/tests/odeiv.rb +353 -0
- data/tests/poly/poly.rb +290 -0
- data/tests/poly/special.rb +65 -0
- data/tests/qrng.rb +131 -0
- data/tests/quartic.rb +29 -0
- data/tests/randist.rb +134 -0
- data/tests/rng.rb +305 -0
- data/tests/roots.rb +76 -0
- data/tests/run-test.sh +17 -0
- data/tests/sf/gsl_test_sf.rb +249 -0
- data/tests/sf/test_airy.rb +83 -0
- data/tests/sf/test_bessel.rb +306 -0
- data/tests/sf/test_coulomb.rb +17 -0
- data/tests/sf/test_dilog.rb +25 -0
- data/tests/sf/test_gamma.rb +209 -0
- data/tests/sf/test_hyperg.rb +356 -0
- data/tests/sf/test_legendre.rb +227 -0
- data/tests/sf/test_mathieu.rb +59 -0
- data/tests/sf/test_mode.rb +19 -0
- data/tests/sf/test_sf.rb +839 -0
- data/tests/stats.rb +174 -0
- data/tests/stats_mt.rb +16 -0
- data/tests/sum.rb +98 -0
- data/tests/sys.rb +323 -0
- data/tests/tensor.rb +419 -0
- data/tests/vector/vector_complex_test.rb +101 -0
- data/tests/vector/vector_test.rb +141 -0
- data/tests/wavelet.rb +142 -0
- metadata +789 -0
data/rdoc/dht.rdoc
ADDED
@@ -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
|
+
#
|
data/rdoc/diff.rdoc
ADDED
@@ -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
|
+
#
|
data/rdoc/ehandling.rdoc
ADDED
@@ -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
|
+
#
|
data/rdoc/eigen.rdoc
ADDED
@@ -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
|
+
#
|