gsl 1.15.3 → 1.16.0.6
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/.gitignore +12 -0
- data/.travis.yml +24 -0
- data/AUTHORS +10 -2
- data/COPYING +341 -339
- data/ChangeLog +612 -554
- data/Gemfile +4 -0
- data/README.md +77 -0
- data/Rakefile +14 -93
- data/THANKS +1 -1
- data/examples/blas/blas.rb +1 -1
- data/examples/bspline.rb +3 -3
- data/examples/complex/functions.rb +4 -4
- data/examples/complex/mul.rb +1 -1
- data/examples/const/physconst.rb +4 -4
- data/examples/const/travel.rb +4 -4
- data/examples/eigen/nonsymmv.rb +1 -1
- data/examples/eigen/qhoscillator.rb +3 -3
- data/examples/fft/radix2.rb +1 -1
- data/examples/fft/real-halfcomplex.rb +3 -3
- data/examples/fft/real-halfcomplex2.rb +3 -3
- data/examples/fit/expfit.rb +1 -1
- data/examples/fit/multifit.rb +1 -1
- data/examples/fit/ndlinear.rb +44 -44
- data/examples/fit/nonlinearfit.rb +1 -1
- data/examples/fit/wlinear.rb +3 -3
- data/examples/function/function.rb +1 -1
- data/examples/function/min.rb +1 -1
- data/examples/function/synchrotron.rb +2 -2
- data/examples/gallery/koch.rb +1 -1
- data/examples/histogram/cauchy.rb +2 -2
- data/examples/histogram/exponential.rb +1 -1
- data/examples/histogram/histo3d.rb +1 -1
- data/examples/histogram/histogram-pdf.rb +2 -2
- data/examples/histogram/xexp.rb +1 -1
- data/examples/integration/ahmed.rb +2 -2
- data/examples/integration/cosmology.rb +7 -7
- data/examples/integration/friedmann.rb +4 -4
- data/examples/integration/qng.rb +1 -1
- data/examples/interp/demo.rb +2 -2
- data/examples/linalg/LQ_solve.rb +1 -1
- data/examples/linalg/LU.rb +1 -1
- data/examples/linalg/LU2.rb +1 -1
- data/examples/linalg/LU_narray.rb +1 -1
- data/examples/linalg/PTLQ.rb +1 -1
- data/examples/linalg/QRPT.rb +1 -1
- data/examples/linalg/chol.rb +1 -1
- data/examples/linalg/chol_narray.rb +1 -1
- data/examples/linalg/complex.rb +1 -1
- data/examples/math/elementary.rb +1 -1
- data/examples/math/functions.rb +1 -1
- data/examples/math/inf_nan.rb +1 -1
- data/examples/math/minmax.rb +1 -1
- data/examples/math/power.rb +1 -1
- data/examples/math/test.rb +1 -1
- data/examples/min.rb +1 -1
- data/examples/multimin/bundle.rb +1 -1
- data/examples/multimin/cqp.rb +17 -17
- data/examples/multiroot/fsolver3.rb +1 -1
- data/examples/odeiv/binarysystem.rb +12 -12
- data/examples/odeiv/demo.rb +3 -3
- data/examples/odeiv/frei1.rb +7 -7
- data/examples/odeiv/frei2.rb +4 -4
- data/examples/odeiv/oscillator.rb +1 -1
- data/examples/odeiv/sedov.rb +3 -3
- data/examples/odeiv/whitedwarf.rb +11 -11
- data/examples/permutation/ex1.rb +2 -2
- data/examples/permutation/permutation.rb +1 -1
- data/examples/poly/demo.rb +1 -1
- data/examples/random/diffusion.rb +1 -1
- data/examples/random/generator.rb +2 -2
- data/examples/random/randomwalk.rb +3 -3
- data/examples/random/rng.rb +1 -1
- data/examples/roots/bisection.rb +1 -1
- data/examples/roots/brent.rb +1 -1
- data/examples/roots/demo.rb +1 -1
- data/examples/roots/newton.rb +2 -2
- data/examples/roots/recombination.gp +0 -1
- data/examples/sf/hyperg.rb +1 -1
- data/examples/sf/sphbessel.rb +1 -1
- data/examples/sort/sort.rb +1 -1
- data/examples/tamu_anova.rb +4 -4
- data/examples/vector/add.rb +1 -1
- data/examples/vector/decimate.rb +1 -1
- data/examples/vector/gnuplot.rb +8 -8
- data/examples/vector/vector.rb +2 -2
- data/examples/wavelet/wavelet1.rb +1 -1
- data/ext/{alf.c → gsl_native/alf.c} +10 -10
- data/ext/{array.c → gsl_native/array.c} +70 -159
- data/ext/{array_complex.c → gsl_native/array_complex.c} +63 -66
- data/ext/{blas.c → gsl_native/blas.c} +2 -3
- data/ext/{blas1.c → gsl_native/blas1.c} +35 -36
- data/ext/{blas2.c → gsl_native/blas2.c} +57 -62
- data/ext/{blas3.c → gsl_native/blas3.c} +57 -58
- data/ext/{block.c → gsl_native/block.c} +14 -18
- data/ext/{block_source.c → gsl_native/block_source.h} +110 -112
- data/ext/gsl_native/bspline.c +122 -0
- data/ext/{bundle.c → gsl_native/bundle.c} +0 -0
- data/ext/{cdf.c → gsl_native/cdf.c} +79 -93
- data/ext/{cheb.c → gsl_native/cheb.c} +78 -89
- data/ext/{combination.c → gsl_native/combination.c} +11 -19
- data/ext/{common.c → gsl_native/common.c} +9 -41
- data/ext/{complex.c → gsl_native/complex.c} +116 -118
- data/ext/gsl_native/const.c +331 -0
- data/ext/{const_additional.c → gsl_native/const_additional.c} +13 -34
- data/ext/gsl_native/cqp.c +283 -0
- data/ext/{deriv.c → gsl_native/deriv.c} +25 -33
- data/ext/{dht.c → gsl_native/dht.c} +23 -31
- data/ext/{diff.c → gsl_native/diff.c} +26 -28
- data/ext/{dirac.c → gsl_native/dirac.c} +45 -46
- data/ext/{eigen.c → gsl_native/eigen.c} +1044 -1095
- data/ext/{error.c → gsl_native/error.c} +18 -18
- data/ext/gsl_native/extconf.rb +118 -0
- data/ext/{fft.c → gsl_native/fft.c} +197 -204
- data/ext/{fit.c → gsl_native/fit.c} +17 -18
- data/ext/gsl_native/fresnel.c +312 -0
- data/ext/{function.c → gsl_native/function.c} +37 -43
- data/ext/{geometry.c → gsl_native/geometry.c} +16 -16
- data/ext/{graph.c → gsl_native/graph.c} +39 -89
- data/ext/{gsl.c → gsl_native/gsl.c} +12 -33
- data/ext/{gsl_narray.c → gsl_native/gsl_narray.c} +20 -30
- data/ext/{histogram.c → gsl_native/histogram.c} +133 -160
- data/ext/{histogram2d.c → gsl_native/histogram2d.c} +78 -104
- data/ext/{histogram3d.c → gsl_native/histogram3d.c} +76 -76
- data/ext/{histogram3d_source.c → gsl_native/histogram3d_source.c} +196 -197
- data/ext/{histogram_find.c → gsl_native/histogram_find.c} +32 -34
- data/ext/{histogram_oper.c → gsl_native/histogram_oper.c} +43 -52
- data/ext/{ieee.c → gsl_native/ieee.c} +9 -21
- data/{include → ext/gsl_native/include}/rb_gsl.h +4 -26
- data/{include → ext/gsl_native/include}/rb_gsl_array.h +15 -39
- data/{include → ext/gsl_native/include}/rb_gsl_cheb.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_common.h +61 -61
- data/{include → ext/gsl_native/include}/rb_gsl_complex.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_const.h +0 -6
- data/ext/gsl_native/include/rb_gsl_dirac.h +6 -0
- data/{include → ext/gsl_native/include}/rb_gsl_eigen.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_fft.h +0 -13
- data/{include → ext/gsl_native/include}/rb_gsl_fit.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_function.h +0 -4
- data/{include → ext/gsl_native/include}/rb_gsl_graph.h +2 -4
- data/{include → ext/gsl_native/include}/rb_gsl_histogram.h +8 -8
- data/{include → ext/gsl_native/include}/rb_gsl_histogram3d.h +50 -50
- data/{include → ext/gsl_native/include}/rb_gsl_integration.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_interp.h +0 -5
- data/{include → ext/gsl_native/include}/rb_gsl_linalg.h +2 -6
- data/{include → ext/gsl_native/include}/rb_gsl_math.h +0 -6
- data/{include → ext/gsl_native/include}/rb_gsl_odeiv.h +0 -3
- data/{include → ext/gsl_native/include}/rb_gsl_poly.h +3 -7
- data/{include → ext/gsl_native/include}/rb_gsl_rational.h +1 -8
- data/{include → ext/gsl_native/include}/rb_gsl_rng.h +0 -1
- data/{include → ext/gsl_native/include}/rb_gsl_root.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_sf.h +39 -48
- data/{include → ext/gsl_native/include}/rb_gsl_statistics.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_tensor.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_with_narray.h +3 -1
- data/{include → ext/gsl_native/include}/templates_off.h +0 -0
- data/{include → ext/gsl_native/include}/templates_on.h +1 -1
- data/ext/{integration.c → gsl_native/integration.c} +164 -189
- data/ext/{interp.c → gsl_native/interp.c} +25 -38
- data/ext/gsl_native/jacobi.c +733 -0
- data/ext/{linalg.c → gsl_native/linalg.c} +462 -589
- data/ext/{linalg_complex.c → gsl_native/linalg_complex.c} +93 -106
- data/ext/{math.c → gsl_native/math.c} +48 -67
- data/ext/{matrix.c → gsl_native/matrix.c} +13 -16
- data/ext/{matrix_complex.c → gsl_native/matrix_complex.c} +119 -123
- data/ext/{matrix_double.c → gsl_native/matrix_double.c} +79 -82
- data/ext/{matrix_int.c → gsl_native/matrix_int.c} +53 -54
- data/ext/{matrix_source.c → gsl_native/matrix_source.h} +292 -318
- data/ext/{min.c → gsl_native/min.c} +45 -76
- data/ext/{monte.c → gsl_native/monte.c} +50 -64
- data/ext/{multifit.c → gsl_native/multifit.c} +142 -151
- data/ext/{multimin.c → gsl_native/multimin.c} +64 -92
- data/ext/{multimin_fsdf.c → gsl_native/multimin_fsdf.c} +16 -16
- data/ext/{multiroots.c → gsl_native/multiroots.c} +73 -76
- data/ext/{multiset.c → gsl_native/multiset.c} +4 -8
- data/ext/{ndlinear.c → gsl_native/ndlinear.c} +320 -321
- data/ext/{nmf.c → gsl_native/nmf.c} +11 -11
- data/ext/{nmf_wrap.c → gsl_native/nmf_wrap.c} +1 -1
- data/ext/{ntuple.c → gsl_native/ntuple.c} +23 -23
- data/ext/{odeiv.c → gsl_native/odeiv.c} +101 -116
- data/ext/gsl_native/ool.c +879 -0
- data/ext/{permutation.c → gsl_native/permutation.c} +39 -37
- data/ext/{poly.c → gsl_native/poly.c} +10 -13
- data/ext/{poly2.c → gsl_native/poly2.c} +16 -16
- data/ext/{poly_source.c → gsl_native/poly_source.h} +249 -293
- data/ext/{qrng.c → gsl_native/qrng.c} +9 -20
- data/ext/{randist.c → gsl_native/randist.c} +222 -247
- data/ext/{rational.c → gsl_native/rational.c} +12 -12
- data/ext/{rng.c → gsl_native/rng.c} +30 -47
- data/ext/{root.c → gsl_native/root.c} +47 -48
- data/ext/{sf.c → gsl_native/sf.c} +196 -244
- data/ext/{sf_airy.c → gsl_native/sf_airy.c} +2 -2
- data/ext/{sf_bessel.c → gsl_native/sf_bessel.c} +7 -7
- data/ext/{sf_clausen.c → gsl_native/sf_clausen.c} +1 -1
- data/ext/{sf_coulomb.c → gsl_native/sf_coulomb.c} +40 -40
- data/ext/{sf_coupling.c → gsl_native/sf_coupling.c} +30 -30
- data/ext/{sf_dawson.c → gsl_native/sf_dawson.c} +1 -1
- data/ext/{sf_debye.c → gsl_native/sf_debye.c} +1 -10
- data/ext/{sf_dilog.c → gsl_native/sf_dilog.c} +1 -1
- data/ext/{sf_elementary.c → gsl_native/sf_elementary.c} +3 -3
- data/ext/{sf_ellint.c → gsl_native/sf_ellint.c} +43 -43
- data/ext/{sf_elljac.c → gsl_native/sf_elljac.c} +3 -3
- data/ext/{sf_erfc.c → gsl_native/sf_erfc.c} +1 -5
- data/ext/{sf_exp.c → gsl_native/sf_exp.c} +3 -3
- data/ext/{sf_expint.c → gsl_native/sf_expint.c} +2 -12
- data/ext/{sf_fermi_dirac.c → gsl_native/sf_fermi_dirac.c} +1 -1
- data/ext/{sf_gamma.c → gsl_native/sf_gamma.c} +2 -6
- data/ext/{sf_gegenbauer.c → gsl_native/sf_gegenbauer.c} +1 -1
- data/ext/{sf_hyperg.c → gsl_native/sf_hyperg.c} +1 -1
- data/ext/{sf_laguerre.c → gsl_native/sf_laguerre.c} +4 -4
- data/ext/{sf_lambert.c → gsl_native/sf_lambert.c} +1 -1
- data/ext/{sf_legendre.c → gsl_native/sf_legendre.c} +1 -1
- data/ext/{sf_log.c → gsl_native/sf_log.c} +4 -4
- data/ext/gsl_native/sf_mathieu.c +235 -0
- data/ext/{sf_power.c → gsl_native/sf_power.c} +1 -1
- data/ext/{sf_psi.c → gsl_native/sf_psi.c} +3 -12
- data/ext/{sf_synchrotron.c → gsl_native/sf_synchrotron.c} +1 -1
- data/ext/{sf_transport.c → gsl_native/sf_transport.c} +1 -1
- data/ext/{sf_trigonometric.c → gsl_native/sf_trigonometric.c} +4 -4
- data/ext/{sf_zeta.c → gsl_native/sf_zeta.c} +1 -5
- data/ext/{signal.c → gsl_native/signal.c} +63 -68
- data/ext/{siman.c → gsl_native/siman.c} +45 -49
- data/ext/{sort.c → gsl_native/sort.c} +6 -7
- data/ext/{spline.c → gsl_native/spline.c} +28 -46
- data/ext/{stats.c → gsl_native/stats.c} +105 -118
- data/ext/{sum.c → gsl_native/sum.c} +34 -34
- data/ext/{tamu_anova.c → gsl_native/tamu_anova.c} +1 -1
- data/ext/{tensor.c → gsl_native/tensor.c} +8 -11
- data/ext/{tensor_source.c → gsl_native/tensor_source.h} +147 -148
- data/ext/{vector.c → gsl_native/vector.c} +11 -14
- data/ext/{vector_complex.c → gsl_native/vector_complex.c} +179 -184
- data/ext/{vector_double.c → gsl_native/vector_double.c} +178 -183
- data/ext/{vector_int.c → gsl_native/vector_int.c} +27 -29
- data/ext/{vector_source.c → gsl_native/vector_source.h} +428 -443
- data/ext/{wavelet.c → gsl_native/wavelet.c} +224 -246
- data/gsl.gemspec +29 -0
- data/lib/gsl.rb +8 -3
- data/lib/gsl/gnuplot.rb +3 -3
- data/lib/gsl/oper.rb +35 -60
- data/lib/gsl/version.rb +3 -0
- data/lib/rbgsl.rb +1 -3
- data/rdoc/alf.rdoc +5 -5
- data/rdoc/blas.rdoc +9 -9
- data/rdoc/bspline.rdoc +17 -17
- data/rdoc/changes.rdoc +4 -9
- data/rdoc/cheb.rdoc +25 -25
- data/rdoc/cholesky_complex.rdoc +21 -21
- data/rdoc/combi.rdoc +37 -37
- data/rdoc/complex.rdoc +22 -22
- data/rdoc/const.rdoc +47 -47
- data/rdoc/dht.rdoc +49 -49
- data/rdoc/diff.rdoc +42 -42
- data/rdoc/ehandling.rdoc +6 -6
- data/rdoc/eigen.rdoc +153 -153
- data/rdoc/fft.rdoc +146 -146
- data/rdoc/fit.rdoc +109 -109
- data/rdoc/function.rdoc +11 -11
- data/rdoc/graph.rdoc +17 -17
- data/rdoc/hist.rdoc +103 -103
- data/rdoc/hist2d.rdoc +42 -42
- data/rdoc/hist3d.rdoc +9 -9
- data/rdoc/integration.rdoc +110 -110
- data/rdoc/interp.rdoc +71 -71
- data/rdoc/intro.rdoc +8 -8
- data/rdoc/linalg.rdoc +188 -188
- data/rdoc/linalg_complex.rdoc +1 -1
- data/rdoc/math.rdoc +58 -58
- data/rdoc/matrix.rdoc +275 -275
- data/rdoc/min.rdoc +57 -57
- data/rdoc/monte.rdoc +22 -22
- data/rdoc/multimin.rdoc +95 -95
- data/rdoc/multiroot.rdoc +80 -80
- data/rdoc/narray.rdoc +32 -32
- data/rdoc/ndlinear.rdoc +54 -54
- data/rdoc/nonlinearfit.rdoc +100 -100
- data/rdoc/ntuple.rdoc +31 -31
- data/rdoc/odeiv.rdoc +88 -88
- data/rdoc/perm.rdoc +90 -90
- data/rdoc/poly.rdoc +66 -66
- data/rdoc/qrng.rdoc +21 -21
- data/rdoc/randist.rdoc +82 -82
- data/rdoc/ref.rdoc +57 -57
- data/rdoc/rng.rdoc +85 -85
- data/rdoc/roots.rdoc +57 -57
- data/rdoc/sf.rdoc +428 -428
- data/rdoc/siman.rdoc +19 -19
- data/rdoc/sort.rdoc +30 -30
- data/rdoc/start.rdoc +8 -8
- data/rdoc/stats.rdoc +52 -52
- data/rdoc/sum.rdoc +12 -12
- data/rdoc/tensor.rdoc +31 -31
- data/rdoc/tut.rdoc +1 -1
- data/rdoc/use.rdoc +39 -39
- data/rdoc/vector.rdoc +188 -188
- data/rdoc/vector_complex.rdoc +24 -24
- data/rdoc/wavelet.rdoc +46 -46
- data/test/gsl/blas_test.rb +79 -0
- data/test/gsl/bspline_test.rb +63 -0
- data/test/gsl/cdf_test.rb +1512 -0
- data/test/gsl/cheb_test.rb +80 -0
- data/test/gsl/combination_test.rb +100 -0
- data/test/gsl/complex_test.rb +20 -0
- data/test/gsl/const_test.rb +29 -0
- data/test/gsl/deriv_test.rb +62 -0
- data/test/gsl/dht_test.rb +79 -0
- data/test/gsl/diff_test.rb +53 -0
- data/test/gsl/eigen_test.rb +563 -0
- data/test/gsl/err_test.rb +23 -0
- data/test/gsl/fit_test.rb +101 -0
- data/test/gsl/histo_test.rb +14 -0
- data/test/gsl/index_test.rb +61 -0
- data/test/gsl/integration_test.rb +274 -0
- data/test/gsl/interp_test.rb +27 -0
- data/test/gsl/linalg_test.rb +463 -0
- data/test/gsl/matrix_nmf_test.rb +37 -0
- data/test/gsl/matrix_test.rb +98 -0
- data/test/gsl/min_test.rb +89 -0
- data/test/gsl/monte_test.rb +77 -0
- data/test/gsl/multifit_test.rb +753 -0
- data/test/gsl/multimin_test.rb +157 -0
- data/test/gsl/multiroot_test.rb +135 -0
- data/test/gsl/multiset_test.rb +52 -0
- data/test/gsl/odeiv_test.rb +275 -0
- data/test/gsl/oper_test.rb +98 -0
- data/test/gsl/poly_test.rb +338 -0
- data/test/gsl/qrng_test.rb +94 -0
- data/test/gsl/quartic_test.rb +28 -0
- data/test/gsl/randist_test.rb +122 -0
- data/test/gsl/rng_test.rb +303 -0
- data/test/gsl/roots_test.rb +78 -0
- data/test/gsl/sf_test.rb +2079 -0
- data/test/gsl/stats_test.rb +122 -0
- data/test/gsl/sum_test.rb +69 -0
- data/test/gsl/tensor_test.rb +396 -0
- data/test/gsl/vector_test.rb +223 -0
- data/test/gsl/wavelet_test.rb +130 -0
- data/test/gsl_test.rb +321 -0
- data/test/test_helper.rb +42 -0
- data/uncrustify.cfg +1693 -0
- metadata +337 -378
- data/README +0 -32
- data/VERSION +0 -1
- data/ext/bspline.c +0 -130
- data/ext/const.c +0 -673
- data/ext/cqp.c +0 -283
- data/ext/extconf.rb +0 -295
- data/ext/fcmp.c +0 -66
- data/ext/fresnel.c +0 -312
- data/ext/jacobi.c +0 -739
- data/ext/ool.c +0 -879
- data/ext/oper_complex_source.c +0 -253
- data/ext/sf_mathieu.c +0 -238
- data/include/rb_gsl_config.h +0 -62
- data/include/rb_gsl_dirac.h +0 -13
- data/rdoc/index.rdoc +0 -62
- data/rdoc/rngextra.rdoc +0 -11
- data/rdoc/screenshot.rdoc +0 -40
- data/setup.rb +0 -1585
- data/tests/blas/amax.rb +0 -14
- data/tests/blas/asum.rb +0 -16
- data/tests/blas/axpy.rb +0 -25
- data/tests/blas/copy.rb +0 -23
- data/tests/blas/dot.rb +0 -23
- data/tests/bspline.rb +0 -53
- data/tests/cdf.rb +0 -1388
- data/tests/cheb.rb +0 -112
- data/tests/combination.rb +0 -123
- data/tests/complex.rb +0 -17
- data/tests/const.rb +0 -24
- data/tests/deriv.rb +0 -85
- data/tests/dht/dht1.rb +0 -17
- data/tests/dht/dht2.rb +0 -23
- data/tests/dht/dht3.rb +0 -23
- data/tests/dht/dht4.rb +0 -23
- data/tests/diff.rb +0 -78
- data/tests/eigen/eigen.rb +0 -220
- data/tests/eigen/gen.rb +0 -105
- data/tests/eigen/genherm.rb +0 -66
- data/tests/eigen/gensymm.rb +0 -68
- data/tests/eigen/nonsymm.rb +0 -53
- data/tests/eigen/nonsymmv.rb +0 -53
- data/tests/eigen/symm-herm.rb +0 -74
- data/tests/err.rb +0 -58
- data/tests/fit.rb +0 -124
- data/tests/gsl_test.rb +0 -118
- data/tests/gsl_test2.rb +0 -110
- data/tests/histo.rb +0 -12
- data/tests/integration/integration1.rb +0 -72
- data/tests/integration/integration2.rb +0 -71
- data/tests/integration/integration3.rb +0 -71
- data/tests/integration/integration4.rb +0 -71
- data/tests/interp.rb +0 -45
- data/tests/linalg/HH.rb +0 -64
- data/tests/linalg/LU.rb +0 -47
- data/tests/linalg/QR.rb +0 -77
- data/tests/linalg/SV.rb +0 -24
- data/tests/linalg/TDN.rb +0 -116
- data/tests/linalg/TDS.rb +0 -122
- data/tests/linalg/bidiag.rb +0 -73
- data/tests/linalg/cholesky.rb +0 -20
- data/tests/linalg/linalg.rb +0 -158
- data/tests/matrix/matrix_complex_test.rb +0 -36
- data/tests/matrix/matrix_nmf_test.rb +0 -39
- data/tests/matrix/matrix_test.rb +0 -48
- data/tests/min.rb +0 -99
- data/tests/monte/miser.rb +0 -31
- data/tests/monte/vegas.rb +0 -45
- data/tests/multifit/test_2dgauss.rb +0 -112
- data/tests/multifit/test_brown.rb +0 -90
- data/tests/multifit/test_enso.rb +0 -246
- data/tests/multifit/test_filip.rb +0 -155
- data/tests/multifit/test_gauss.rb +0 -97
- data/tests/multifit/test_longley.rb +0 -110
- data/tests/multifit/test_multifit.rb +0 -52
- data/tests/multimin.rb +0 -139
- data/tests/multiroot.rb +0 -131
- data/tests/multiset.rb +0 -52
- data/tests/narray/blas_dnrm2.rb +0 -20
- data/tests/odeiv.rb +0 -353
- data/tests/poly/poly.rb +0 -290
- data/tests/poly/special.rb +0 -65
- data/tests/qrng.rb +0 -131
- data/tests/quartic.rb +0 -29
- data/tests/randist.rb +0 -134
- data/tests/rng.rb +0 -305
- data/tests/roots.rb +0 -76
- data/tests/run-test.sh +0 -17
- data/tests/sf/gsl_test_sf.rb +0 -249
- data/tests/sf/test_airy.rb +0 -83
- data/tests/sf/test_bessel.rb +0 -306
- data/tests/sf/test_coulomb.rb +0 -17
- data/tests/sf/test_dilog.rb +0 -25
- data/tests/sf/test_gamma.rb +0 -209
- data/tests/sf/test_hyperg.rb +0 -356
- data/tests/sf/test_legendre.rb +0 -227
- data/tests/sf/test_mathieu.rb +0 -59
- data/tests/sf/test_mode.rb +0 -19
- data/tests/sf/test_sf.rb +0 -839
- data/tests/stats.rb +0 -174
- data/tests/stats_mt.rb +0 -16
- data/tests/sum.rb +0 -98
- data/tests/sys.rb +0 -323
- data/tests/tensor.rb +0 -419
- data/tests/vector/vector_complex_test.rb +0 -101
- data/tests/vector/vector_test.rb +0 -141
- data/tests/wavelet.rb +0 -142
data/rdoc/dht.rdoc
CHANGED
@@ -1,48 +1,48 @@
|
|
1
1
|
#
|
2
2
|
# = Discrete Hankel Transforms
|
3
|
-
# This chapter describes functions for performing Discrete Hankel Transforms
|
4
|
-
# (DHTs).
|
5
|
-
#
|
6
|
-
# 1. {Definitions}[link:
|
7
|
-
# 1. {Initialization}[link:
|
8
|
-
# 1. {Methods}[link:
|
9
|
-
#
|
10
|
-
# ==
|
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,
|
3
|
+
# This chapter describes functions for performing Discrete Hankel Transforms
|
4
|
+
# (DHTs).
|
5
|
+
#
|
6
|
+
# 1. {Definitions}[link:rdoc/dht_rdoc.html#label-Definitions]
|
7
|
+
# 1. {Initialization}[link:rdoc/dht_rdoc.html#label-Initialization]
|
8
|
+
# 1. {Methods}[link:rdoc/dht_rdoc.html#label-Methods]
|
9
|
+
#
|
10
|
+
# == 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
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
|
-
# ==
|
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
|
+
# == Initialization
|
40
40
|
#
|
41
41
|
# ---
|
42
42
|
# * GSL::Dht.alloc(size)
|
43
43
|
# * GSL::Dht.alloc(size, nu, xmax)
|
44
44
|
#
|
45
|
-
# These methods allocate a Discrete Hankel transform object <tt>GSL::Dht</tt>
|
45
|
+
# These methods allocate a Discrete Hankel transform object <tt>GSL::Dht</tt>
|
46
46
|
# of size <tt>size</tt>.
|
47
47
|
# If three arguments are given, the object is initialized with the values of
|
48
48
|
# <tt>nu, xmax</tt>.
|
@@ -52,25 +52,25 @@
|
|
52
52
|
#
|
53
53
|
# This initializes the transform <tt>self</tt> for the given values of <tt>nu</tt> and <tt>xmax</tt>.
|
54
54
|
#
|
55
|
-
# ==
|
55
|
+
# == Methods
|
56
56
|
# ---
|
57
57
|
# * GSL::Dht#apply(vin, vout)
|
58
58
|
# * GSL::Dht#apply(vin)
|
59
59
|
#
|
60
|
-
# This applies the transform <tt>self</tt> to the vector <tt>vin</tt> whose size is
|
60
|
+
# This applies the transform <tt>self</tt> to the vector <tt>vin</tt> whose size is
|
61
61
|
# equal to the size of the transform.
|
62
62
|
#
|
63
63
|
# ---
|
64
64
|
# * GSL::Dht#x_sample(n)
|
65
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
|
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
68
|
# assumed to be sampled.
|
69
69
|
#
|
70
70
|
# ---
|
71
71
|
# * GSL::Dht#k_sample(n)
|
72
72
|
#
|
73
|
-
# This method returns the value of the n'th sample point in "k-space",
|
73
|
+
# This method returns the value of the n'th sample point in "k-space",
|
74
74
|
# j_{nu,n+1}/X.
|
75
75
|
#
|
76
76
|
# ---
|
@@ -84,16 +84,16 @@
|
|
84
84
|
# ---
|
85
85
|
# * GSL::Dht#xmax
|
86
86
|
#
|
87
|
-
# Returns the upper limit to the x-sampling domain
|
87
|
+
# Returns the upper limit to the x-sampling domain
|
88
88
|
# ---
|
89
89
|
# * GSL::Dht#kmax
|
90
90
|
#
|
91
|
-
# Returns the upper limit to the k-sampling domain
|
91
|
+
# Returns the upper limit to the k-sampling domain
|
92
92
|
#
|
93
93
|
# ---
|
94
94
|
# * GSL::Dht#j
|
95
95
|
#
|
96
|
-
# Returns an array of computed J_nu zeros, j_{nu,s} = j[s]
|
96
|
+
# Returns an array of computed J_nu zeros, j_{nu,s} = \j[s]
|
97
97
|
# as a <tt>GSL::Vector::View</tt>.
|
98
98
|
#
|
99
99
|
# ---
|
@@ -113,10 +113,10 @@
|
|
113
113
|
#
|
114
114
|
# Return the (n,m)-th transform coefficient.
|
115
115
|
#
|
116
|
-
# {prev}[link:
|
117
|
-
# {next}[link:
|
116
|
+
# {prev}[link:rdoc/sum_rdoc.html]
|
117
|
+
# {next}[link:rdoc/roots_rdoc.html]
|
118
118
|
#
|
119
|
-
# {Reference index}[link:
|
120
|
-
# {top}[link:
|
119
|
+
# {Reference index}[link:rdoc/ref_rdoc.html]
|
120
|
+
# {top}[link:index.html]
|
121
121
|
#
|
122
122
|
#
|
data/rdoc/diff.rdoc
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
#
|
2
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.
|
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
6
|
#
|
7
7
|
# Contentes:
|
8
|
-
# 1. {Deriv methods}[link:
|
9
|
-
# 1. {Diff methods}[link:
|
8
|
+
# 1. {Deriv methods}[link:rdoc/diff_rdoc.html#label-Deriv+methods+%28for+GSL+1.4.90+or+later%29]
|
9
|
+
# 1. {Diff methods}[link:rdoc/diff_rdoc.html#label-Diff+Methods+%28obsolete%29]
|
10
10
|
#
|
11
|
-
# ==
|
11
|
+
# == Deriv methods (for GSL 1.4.90 or later)
|
12
12
|
# Numerical derivatives should now be calculated using the
|
13
13
|
# <tt>GSL::Deriv.forward, GSL::Deriv.central</tt> and <tt>GSL::Deriv.backward</tt> methods,
|
14
14
|
# which accept a step-size argument in addition to the position x. The
|
@@ -18,78 +18,78 @@
|
|
18
18
|
# * GSL::Deriv.central(f, x, h = 1e-8)
|
19
19
|
# * GSL::Function#deriv_central(x, h = 1e-8)
|
20
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
|
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
24
|
# estimate of its absolute error are returned as an array, [<tt>result, abserr, status</tt>].
|
25
25
|
# If a vector/matrix/array <tt>x</tt> is given, an array of two elements are returned,
|
26
26
|
# [<tt>result, abserr</tt>], here each them is also a vector/matrix/array of the same
|
27
27
|
# dimension of <tt>x</tt>.
|
28
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
|
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
35
|
# to the derivative calculation, so only 4-points are actually used.
|
36
36
|
#
|
37
37
|
# ---
|
38
38
|
# * GSL::Deriv.forward(f, x, h = 1e-8)
|
39
39
|
# * GSL::Function#deriv_forward(x, h = 1e-8)
|
40
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
|
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
47
|
# discontinuity at <tt>x</tt>, or is undefined for values less than <tt>x</tt>.
|
48
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
|
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
53
|
# difference between the 4-point rule and the corresponding 2-point rule x+h/2, x+h.
|
54
54
|
#
|
55
55
|
# ---
|
56
56
|
# * GSL::Deriv.backward(f, x, h)
|
57
57
|
# * GSL::Function#deriv_backward(x, h)
|
58
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>,
|
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
65
|
# or is undefined for values greater than <tt>x</tt>.
|
66
66
|
#
|
67
|
-
# These methods are equivalent to calling the method <tt>forward</tt>
|
67
|
+
# These methods are equivalent to calling the method <tt>forward</tt>
|
68
68
|
# with a negative step-size.
|
69
69
|
#
|
70
|
-
# ==
|
70
|
+
# == Diff Methods (obsolete)
|
71
71
|
#
|
72
72
|
# ---
|
73
73
|
# * GSL::Diff.central(f, x)
|
74
74
|
# * GSL::Function#diff_central(x)
|
75
75
|
#
|
76
|
-
# These compute the numerical derivative of the function <tt>f</tt> ( {GSL::Function}[link:
|
77
|
-
# using an adaptive central difference algorithm. The result is returned as an array
|
76
|
+
# These compute the numerical derivative of the function <tt>f</tt> ( {GSL::Function}[link: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
78
|
# which contains the derivative and an estimate of its absolute error.
|
79
79
|
#
|
80
80
|
# ---
|
81
81
|
# * GSL::Diff.forward(f, x)
|
82
82
|
# * GSL::Function#diff_forward(x)
|
83
83
|
#
|
84
|
-
# These compute the numerical derivative of the function at the point x using an adaptive forward difference algorithm.
|
84
|
+
# These compute the numerical derivative of the function at the point x using an adaptive forward difference algorithm.
|
85
85
|
#
|
86
86
|
# ---
|
87
87
|
# * GSL::Diff.backward(f, x)
|
88
88
|
# * GSL::Function#diff_backward(x)
|
89
89
|
#
|
90
|
-
# These compute the numerical derivative of the function at the point x using an adaptive backward difference algorithm.
|
90
|
+
# These compute the numerical derivative of the function at the point x using an adaptive backward difference algorithm.
|
91
91
|
#
|
92
|
-
# ==
|
92
|
+
# == Example
|
93
93
|
#
|
94
94
|
# #!/usr/bin/env ruby
|
95
95
|
# require "gsl"
|
@@ -124,10 +124,10 @@
|
|
124
124
|
# f'(x) = 0.0000000160 +/- 0.0000000339
|
125
125
|
# exact = 0.0000000000
|
126
126
|
#
|
127
|
-
# {prev}[link:
|
128
|
-
# {next}[link:
|
127
|
+
# {prev}[link:rdoc/interp_rdoc.html]
|
128
|
+
# {next}[link:rdoc/cheb_rdoc.html]
|
129
129
|
#
|
130
|
-
# {Reference index}[link:
|
131
|
-
# {top}[link:
|
130
|
+
# {Reference index}[link:rdoc/ref_rdoc.html]
|
131
|
+
# {top}[link:index.html]
|
132
132
|
#
|
133
133
|
#
|
data/rdoc/ehandling.rdoc
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#
|
2
2
|
# = Error Handling
|
3
3
|
#
|
4
|
-
# ==
|
4
|
+
# == Error codes
|
5
5
|
# The GSL routines report an error whenever they cannot perform the task
|
6
6
|
# requested of them. For example, a root-finding function would return a
|
7
7
|
# non-zero error code if could not converge to the requested accuracy,
|
@@ -30,7 +30,7 @@
|
|
30
30
|
# kinds of problems with passing the wrong argument to a library function
|
31
31
|
# (like <tt>EINVAL</tt> in the C library).
|
32
32
|
#
|
33
|
-
# ==
|
33
|
+
# == Error handler
|
34
34
|
# In Ruby/GSL, the default GSL error handler is replaced by an other one which calls
|
35
35
|
# <tt>rb_raise()</tt>. Thus whenever a GSL routine reports a fatal error,
|
36
36
|
# a Ruby Exception is generated.
|
@@ -42,9 +42,9 @@
|
|
42
42
|
# This replaces the Ruby/GSL default error handler by a user-defined handler
|
43
43
|
# given by a Proc object <tt>proc</tt> or a block.
|
44
44
|
#
|
45
|
-
# {prev}[link:
|
46
|
-
# {next}[link:
|
45
|
+
# {prev}[link:rdoc/use_rdoc.html]
|
46
|
+
# {next}[link:rdoc/math_rdoc.html]
|
47
47
|
#
|
48
|
-
# {Reference index}[link:
|
49
|
-
# {top}[link:
|
48
|
+
# {Reference index}[link:rdoc/ref_rdoc.html]
|
49
|
+
# {top}[link:index.html]
|
50
50
|
#
|
data/rdoc/eigen.rdoc
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
#
|
2
2
|
# = Eigensystems
|
3
|
-
# ===
|
4
|
-
# 1. {Modules and classes}[link:
|
5
|
-
# 1. {Real Symmetric Matrices}[link:
|
6
|
-
# 1. {Complex Hermitian Matrices}[link:
|
7
|
-
# 1. {Real Nonsymmetric Matrices}[link:
|
8
|
-
# 1. {Real Generalized Symmetric-Definite Eigensystems}[link:
|
9
|
-
# 1. {Complex Generalized Hermitian-Definite Eigensystems}[link:
|
10
|
-
# 1. {Real Generalized Nonsymmetric Eigensystems}[link:
|
11
|
-
# 1. {Sorting Eigenvalues and Eigenvectors }[link:
|
12
|
-
#
|
13
|
-
# ==
|
3
|
+
# === Contentes
|
4
|
+
# 1. {Modules and classes}[link:rdoc/eigen_rdoc.html#label-Modules+and+classes]
|
5
|
+
# 1. {Real Symmetric Matrices}[link:rdoc/eigen_rdoc.html#label-Real+Symmetric+Matrices]
|
6
|
+
# 1. {Complex Hermitian Matrices}[link:rdoc/eigen_rdoc.html#label-Complex+Hermitian+Matrices]
|
7
|
+
# 1. {Real Nonsymmetric Matrices}[link:rdoc/eigen_rdoc.html#label-Real+Nonsymmetric+Matrices+%28%3E%3D+GSL-1.9%29] (>= GSL-1.9)
|
8
|
+
# 1. {Real Generalized Symmetric-Definite Eigensystems}[link:rdoc/eigen_rdoc.html#label-Real+Generalized+Symmetric-Definite+Eigensystems+%28GSL-1.10%29] (>= GSL-1.10)
|
9
|
+
# 1. {Complex Generalized Hermitian-Definite Eigensystems}[link:rdoc/eigen_rdoc.html#label-Complex+Generalized+Hermitian-Definite+Eigensystems+%28%3E%3D+GSL-1.10%29] (>= GSL-1.10)
|
10
|
+
# 1. {Real Generalized Nonsymmetric Eigensystems}[link:rdoc/eigen_rdoc.html#label-Real+Generalized+Nonsymmetric+Eigensystems+%28%3E%3D+GSL-1.10%29] (>= GSL-1.10)
|
11
|
+
# 1. {Sorting Eigenvalues and Eigenvectors }[link:rdoc/eigen_rdoc.html#label-Sorting+Eigenvalues+and+Eigenvectors]
|
12
|
+
#
|
13
|
+
# == Modules and classes
|
14
14
|
#
|
15
15
|
# * GSL
|
16
16
|
# * Eigen
|
@@ -42,8 +42,8 @@
|
|
42
42
|
# * Genv (Module, >= GSL-1.10)
|
43
43
|
# * Workspace (Class)
|
44
44
|
#
|
45
|
-
# ==
|
46
|
-
# ===
|
45
|
+
# == Real Symmetric Matrices
|
46
|
+
# === Workspace classes
|
47
47
|
# ---
|
48
48
|
# * GSL::Eigen::Symm::Workspace.alloc(n)
|
49
49
|
# * GSL::Eigen::Symmv::Workspace.alloc(n)
|
@@ -51,24 +51,24 @@
|
|
51
51
|
# * GSL::Eigen::Hermv::Workspace.alloc(n)
|
52
52
|
#
|
53
53
|
#
|
54
|
-
# ===
|
54
|
+
# === Methods to solve eigensystems
|
55
55
|
# ---
|
56
56
|
# * GSL::Eigen::symm(A)
|
57
57
|
# * GSL::Eigen::symm(A, workspace)
|
58
58
|
# * GSL::Matrix#eigen_symm
|
59
59
|
# * GSL::Matrix#eigen_symm(workspace)
|
60
60
|
#
|
61
|
-
# These methods compute the eigenvalues of the real symmetric matrix.
|
61
|
+
# These methods compute the eigenvalues of the real symmetric matrix.
|
62
62
|
# The workspace object <tt>workspace</tt> can be omitted.
|
63
63
|
#
|
64
64
|
# ---
|
65
65
|
# * GSL::Eigen::symmv(A)
|
66
66
|
# * GSL::Matrix#eigen_symmv
|
67
67
|
#
|
68
|
-
# These methods compute the eigenvalues and eigenvectors of the real symmetric
|
68
|
+
# These methods compute the eigenvalues and eigenvectors of the real symmetric
|
69
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
|
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
72
|
# eigenvectors.
|
73
73
|
#
|
74
74
|
# 1. Singleton method of the <tt>GSL::Eigen</tt> module, <tt>GSL::Eigen::symm</tt>
|
@@ -81,14 +81,14 @@
|
|
81
81
|
#
|
82
82
|
# eigval, eigvec = m.eigen_symmv
|
83
83
|
#
|
84
|
-
# ==
|
84
|
+
# == Complex Hermitian Matrices
|
85
85
|
# ---
|
86
86
|
# * GSL::Eigen::herm(A)
|
87
87
|
# * GSL::Eigen::herm(A, workspace)
|
88
88
|
# * GSL::Matrix::Complex#eigen_herm
|
89
89
|
# * GSL::Matrix::Complex#eigen_herm(workspace)
|
90
90
|
#
|
91
|
-
# These methods compute the eigenvalues of the complex hermitian matrix.
|
91
|
+
# These methods compute the eigenvalues of the complex hermitian matrix.
|
92
92
|
#
|
93
93
|
# ---
|
94
94
|
# * GSL::Eigen::hermv(A)
|
@@ -97,38 +97,38 @@
|
|
97
97
|
# * GSL::Matrix::Complex#eigen_hermv(workspace
|
98
98
|
#
|
99
99
|
#
|
100
|
-
# ==
|
100
|
+
# == Real Nonsymmetric Matrices (>= GSL-1.9)
|
101
101
|
#
|
102
102
|
# ---
|
103
103
|
# * GSL::Eigen::Nonsymm.alloc(n)
|
104
104
|
#
|
105
|
-
# This allocates a workspace for computing eigenvalues of n-by-n real
|
105
|
+
# This allocates a workspace for computing eigenvalues of n-by-n real
|
106
106
|
# nonsymmetric matrices. The size of the workspace is O(2n).
|
107
107
|
#
|
108
108
|
# ---
|
109
109
|
# * GSL::Eigen::Nonsymm::params(compute_t, balance, wspace)
|
110
110
|
# * GSL::Eigen::Nonsymm::Workspace#params(compute_t, balance)
|
111
111
|
#
|
112
|
-
# This method sets some parameters which determine how the eigenvalue
|
112
|
+
# This method sets some parameters which determine how the eigenvalue
|
113
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
|
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
118
|
# the number of flops.
|
119
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
|
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
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>.
|
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
132
|
# Note that <tt>Z</tt> will not be orthogonal. For this reason, balancing is
|
133
133
|
# not performed by default.
|
134
134
|
#
|
@@ -139,12 +139,12 @@
|
|
139
139
|
# * GSL::Matrix#eigen_nonsymm(wspace)
|
140
140
|
# * GSL::Matrix#eigen_nonsymm(eval, wspace)
|
141
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.
|
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
148
|
#
|
149
149
|
# ---
|
150
150
|
# * GSL::Eigen::nonsymm_Z(m, eval, Z, wspace)
|
@@ -152,13 +152,13 @@
|
|
152
152
|
# * GSL::Matrix#eigen_nonsymm_Z()
|
153
153
|
# * GSL::Matrix#eigen_nonsymm(eval, Z, wspace)
|
154
154
|
#
|
155
|
-
# These methods are identical to <tt>GSL::Eigen::nonsymm</tt> except they also
|
155
|
+
# These methods are identical to <tt>GSL::Eigen::nonsymm</tt> except they also
|
156
156
|
# compute the Schur vectors and return them (or store into <tt>Z</tt>).
|
157
157
|
#
|
158
158
|
# ---
|
159
159
|
# * GSL::Eigen::Nonsymmv.alloc(n)
|
160
160
|
#
|
161
|
-
# Allocates a workspace for computing eigenvalues and eigenvectors
|
161
|
+
# Allocates a workspace for computing eigenvalues and eigenvectors
|
162
162
|
# of n-by-n real nonsymmetric matrices. The size of the workspace is O(5n).
|
163
163
|
# ---
|
164
164
|
# * GSL::Eigen::nonsymm(m)
|
@@ -170,81 +170,81 @@
|
|
170
170
|
# * GSL::Matrix#eigen_nonsymmv(eval, evec)
|
171
171
|
# * GSL::Matrix#eigen_nonsymmv(eval, evec, wspace)
|
172
172
|
#
|
173
|
-
# Compute eigenvalues and right eigenvectors of the n-by-n real nonsymmetric
|
173
|
+
# Compute eigenvalues and right eigenvectors of the n-by-n real nonsymmetric
|
174
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>.
|
175
|
+
# On output, the upper portion of <tt>m</tt> contains the Schur form <tt>T</tt>.
|
176
176
|
#
|
177
|
-
# ==
|
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>
|
177
|
+
# == 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
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.
|
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
189
|
#
|
190
190
|
# ---
|
191
191
|
# * GSL::Eigen::Gensymm.alloc(n)
|
192
192
|
# * GSL::Eigen::Gensymm::Workspace.alloc(n)
|
193
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).
|
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
197
|
# ---
|
198
198
|
# * GSL::Eigen::gensymm(A, B, w)
|
199
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>,
|
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
202
|
# using the method outlined above. On output, B contains its Cholesky
|
203
203
|
# decomposition.
|
204
204
|
# ---
|
205
205
|
# * GSL::Eigen::gensymmv(A, B, w)
|
206
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.
|
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
211
|
# On output, <tt>B</tt> contains its Cholesky decomposition.
|
212
212
|
#
|
213
|
-
# ==
|
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.
|
213
|
+
# == 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
224
|
#
|
225
225
|
# ---
|
226
226
|
# * GSL::Eigen::Genherm.alloc(n)
|
227
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).
|
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
231
|
# ---
|
232
232
|
# * GSL::Eigen::genherm(A, B, w)
|
233
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.
|
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
237
|
# On output, <tt>B</tt> contains its Cholesky decomposition.
|
238
238
|
# ---
|
239
239
|
# * GSL::Eigen::genherm(A, B, w)
|
240
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.
|
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
245
|
# On output, <tt>B</tt> contains its Cholesky decomposition.
|
246
246
|
#
|
247
|
-
# ==
|
247
|
+
# == Real Generalized Nonsymmetric Eigensystems (>= GSL-1.10)
|
248
248
|
#
|
249
249
|
# ---
|
250
250
|
# * GSL::Eigen::Gen.alloc(n)
|
@@ -257,79 +257,79 @@
|
|
257
257
|
# * GSL::Eigen::Gen::params(compute_s, compute_t, balance, w)
|
258
258
|
# * GSL::Eigen::gen_params(compute_s, compute_t, balance, w)
|
259
259
|
#
|
260
|
-
# Set some parameters which determine how the eigenvalue problem is solved
|
260
|
+
# Set some parameters which determine how the eigenvalue problem is solved
|
261
261
|
# in subsequent calls to <tt>GSL::Eigen::gen</tt>.
|
262
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.
|
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
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>.
|
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
276
|
#
|
277
|
-
# The <tt>balance</tt> parameter is currently ignored, since generalized
|
278
|
-
# balancing is not yet implemented.
|
277
|
+
# The <tt>balance</tt> parameter is currently ignored, since generalized
|
278
|
+
# balancing is not yet implemented.
|
279
279
|
#
|
280
280
|
# ---
|
281
281
|
# * GSL::Eigen::gen(A, B, w)
|
282
282
|
#
|
283
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>.
|
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
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.
|
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
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>
|
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
294
|
# follows the ordering of the diagonal blocks in the Schur forms <tt>S</tt>
|
295
|
-
# and <tt>T</tt>.
|
295
|
+
# and <tt>T</tt>.
|
296
296
|
#
|
297
297
|
# ---
|
298
298
|
# * GSL::Eigen::gen_QZ(A, B, w)
|
299
299
|
#
|
300
|
-
# This method is identical to <tt>GSL::Eigen::gen</tt> except it also computes
|
300
|
+
# This method is identical to <tt>GSL::Eigen::gen</tt> except it also computes
|
301
301
|
# the left and right Schur vectors and returns them.
|
302
302
|
#
|
303
303
|
# ---
|
304
304
|
# * GSL::Eigen::Genv.alloc(n)
|
305
305
|
# * GSL::Eigen::Genv::Workspace.alloc(n)
|
306
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).
|
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
310
|
#
|
311
311
|
# ---
|
312
312
|
# * GSL::Eigen::genv(A, B, w)
|
313
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>.
|
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
318
|
#
|
319
319
|
# ---
|
320
320
|
# * GSL::Eigen::genv_QZ(A, B, w)
|
321
321
|
#
|
322
|
-
# This method is identical to <tt>GSL::Eigen::genv</tt> except it also computes
|
322
|
+
# This method is identical to <tt>GSL::Eigen::genv</tt> except it also computes
|
323
323
|
# the left and right Schur vectors and returns them.
|
324
324
|
#
|
325
|
-
# ==
|
325
|
+
# == Sorting Eigenvalues and Eigenvectors
|
326
326
|
# ---
|
327
327
|
# * GSL::Eigen::symmv_sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
|
328
328
|
# * GSL::Eigen::Symmv::sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
|
329
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
|
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
333
|
# according to the value of the parameter <tt>type</tt>,
|
334
334
|
#
|
335
335
|
# * <tt>GSL::Eigen::SORT_VAL_ASC</tt>
|
@@ -347,55 +347,55 @@
|
|
347
347
|
# * GSL::Eigen::hermv_sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
|
348
348
|
# * GSL::Eigen::Hermv::sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
|
349
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
|
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
353
|
# to the value of the parameter <tt>type</tt> as shown above.
|
354
354
|
#
|
355
355
|
# ---
|
356
356
|
# * GSL::Eigen::nonsymmv_sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
|
357
357
|
# * GSL::Eigen::Nonsymmv::sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
|
358
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.
|
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
365
|
#
|
366
366
|
# ---
|
367
367
|
# * GSL::Eigen::gensymmv_sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
|
368
368
|
# * GSL::Eigen::Gensymmv::sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
|
369
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.
|
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
374
|
#
|
375
375
|
# ---
|
376
376
|
# * GSL::Eigen::gensymmv_sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
|
377
377
|
# * GSL::Eigen::Gensymmv::sort(eval, evec, type = GSL::Eigen::SORT_VAL_ASC)
|
378
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.
|
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
383
|
#
|
384
384
|
# ---
|
385
385
|
# * GSL::Eigen::genv_sort(alpha, beta, evec, type = GSL::Eigen::SORT_VAL_ASC)
|
386
386
|
# * GSL::Eigen::Genv::sort(alpha, beta, evec, type = GSL::Eigen::SORT_VAL_ASC)
|
387
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
|
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
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.
|
392
|
+
# and <tt>GSL::EIGEN_SORT_ABS_DESC</tt> are supported due to the eigenvalues
|
393
|
+
# being complex.
|
394
394
|
#
|
395
|
-
# {prev}[link:
|
396
|
-
# {next}[link:
|
395
|
+
# {prev}[link:rdoc/linalg_rdoc.html]
|
396
|
+
# {next}[link:rdoc/fft_rdoc.html]
|
397
397
|
#
|
398
|
-
# {Reference index}[link:
|
399
|
-
# {top}[link:
|
398
|
+
# {Reference index}[link:rdoc/ref_rdoc.html]
|
399
|
+
# {top}[link:index.html]
|
400
400
|
#
|
401
401
|
#
|