rb-gsl 1.16.0.5 → 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 +4 -4
- data/rb-gsl.gemspec +5 -10
- metadata +10 -713
- data/.gitignore +0 -12
- data/.travis.yml +0 -24
- data/AUTHORS +0 -12
- data/COPYING +0 -341
- data/ChangeLog +0 -621
- data/Gemfile +0 -4
- data/README.md +0 -77
- data/Rakefile +0 -20
- data/THANKS +0 -17
- data/examples/alf/alf.gp +0 -15
- data/examples/alf/alf.rb +0 -32
- data/examples/blas/blas.rb +0 -13
- data/examples/blas/dnrm2.rb +0 -16
- data/examples/blas/level1.rb +0 -81
- data/examples/blas/level2.rb +0 -11
- data/examples/blas/level3.rb +0 -12
- data/examples/bspline.rb +0 -57
- data/examples/cdf.rb +0 -16
- data/examples/cheb.rb +0 -21
- data/examples/combination.rb +0 -23
- data/examples/complex/RC-lpf.rb +0 -47
- data/examples/complex/add.rb +0 -36
- data/examples/complex/coerce.rb +0 -14
- data/examples/complex/complex.rb +0 -25
- data/examples/complex/fpmi.rb +0 -70
- data/examples/complex/functions.rb +0 -77
- data/examples/complex/michelson.rb +0 -36
- data/examples/complex/mul.rb +0 -28
- data/examples/complex/oscillator.rb +0 -17
- data/examples/complex/set.rb +0 -37
- data/examples/const/physconst.rb +0 -151
- data/examples/const/travel.rb +0 -45
- data/examples/deriv/demo.rb +0 -13
- data/examples/deriv/deriv.rb +0 -36
- data/examples/deriv/diff.rb +0 -35
- data/examples/dht.rb +0 -42
- data/examples/dirac.rb +0 -56
- data/examples/eigen/eigen.rb +0 -34
- data/examples/eigen/herm.rb +0 -22
- data/examples/eigen/narray.rb +0 -9
- data/examples/eigen/nonsymm.rb +0 -37
- data/examples/eigen/nonsymmv.rb +0 -43
- data/examples/eigen/qhoscillator.gp +0 -35
- data/examples/eigen/qhoscillator.rb +0 -90
- data/examples/eigen/vander.rb +0 -41
- data/examples/fft/fft.rb +0 -17
- data/examples/fft/fft2.rb +0 -17
- data/examples/fft/forward.rb +0 -25
- data/examples/fft/forward2.rb +0 -26
- data/examples/fft/radix2.rb +0 -18
- data/examples/fft/real-halfcomplex.rb +0 -33
- data/examples/fft/real-halfcomplex2.rb +0 -30
- data/examples/fft/realradix2.rb +0 -19
- data/examples/fft/sunspot.dat +0 -256
- data/examples/fft/sunspot.rb +0 -16
- data/examples/fit/expdata.dat +0 -20
- data/examples/fit/expfit.rb +0 -31
- data/examples/fit/gaussfit.rb +0 -29
- data/examples/fit/gaussian_2peaks.rb +0 -34
- data/examples/fit/hillfit.rb +0 -40
- data/examples/fit/lognormal.rb +0 -26
- data/examples/fit/lorentzfit.rb +0 -22
- data/examples/fit/multifit.rb +0 -72
- data/examples/fit/ndlinear.rb +0 -133
- data/examples/fit/nonlinearfit.rb +0 -89
- data/examples/fit/plot.gp +0 -36
- data/examples/fit/polyfit.rb +0 -9
- data/examples/fit/powerfit.rb +0 -21
- data/examples/fit/sigmoidfit.rb +0 -40
- data/examples/fit/sinfit.rb +0 -22
- data/examples/fit/wlinear.rb +0 -46
- data/examples/fresnel.rb +0 -11
- data/examples/function/function.rb +0 -36
- data/examples/function/log.rb +0 -7
- data/examples/function/min.rb +0 -33
- data/examples/function/sin.rb +0 -10
- data/examples/function/synchrotron.rb +0 -18
- data/examples/gallery/butterfly.rb +0 -7
- data/examples/gallery/cayley.rb +0 -12
- data/examples/gallery/cornu.rb +0 -23
- data/examples/gallery/eight.rb +0 -11
- data/examples/gallery/koch.rb +0 -40
- data/examples/gallery/lemniscate.rb +0 -11
- data/examples/gallery/polar.rb +0 -11
- data/examples/gallery/rgplot/cossin.rb +0 -35
- data/examples/gallery/rgplot/rgplot.replaced +0 -0
- data/examples/gallery/rgplot/roesller.rb +0 -55
- data/examples/gallery/roesller.rb +0 -39
- data/examples/gallery/scarabaeus.rb +0 -14
- data/examples/histogram/cauchy.rb +0 -27
- data/examples/histogram/cauchy.sh +0 -2
- data/examples/histogram/exponential.rb +0 -19
- data/examples/histogram/gauss.rb +0 -16
- data/examples/histogram/gsl-histogram.rb +0 -40
- data/examples/histogram/histo2d.rb +0 -31
- data/examples/histogram/histo3d.rb +0 -34
- data/examples/histogram/histogram-pdf.rb +0 -27
- data/examples/histogram/histogram.rb +0 -26
- data/examples/histogram/integral.rb +0 -28
- data/examples/histogram/poisson.rb +0 -27
- data/examples/histogram/power.rb +0 -25
- data/examples/histogram/rebin.rb +0 -17
- data/examples/histogram/smp.dat +0 -5
- data/examples/histogram/xexp.rb +0 -21
- data/examples/integration/ahmed.rb +0 -21
- data/examples/integration/cosmology.rb +0 -75
- data/examples/integration/friedmann.gp +0 -16
- data/examples/integration/friedmann.rb +0 -35
- data/examples/integration/gamma-zeta.rb +0 -35
- data/examples/integration/integration.rb +0 -22
- data/examples/integration/qag.rb +0 -8
- data/examples/integration/qag2.rb +0 -14
- data/examples/integration/qag3.rb +0 -8
- data/examples/integration/qagi.rb +0 -28
- data/examples/integration/qagi2.rb +0 -49
- data/examples/integration/qagiu.rb +0 -29
- data/examples/integration/qagp.rb +0 -20
- data/examples/integration/qags.rb +0 -14
- data/examples/integration/qawc.rb +0 -18
- data/examples/integration/qawf.rb +0 -41
- data/examples/integration/qawo.rb +0 -29
- data/examples/integration/qaws.rb +0 -30
- data/examples/integration/qng.rb +0 -17
- data/examples/interp/demo.gp +0 -20
- data/examples/interp/demo.rb +0 -45
- data/examples/interp/interp.rb +0 -37
- data/examples/interp/points +0 -10
- data/examples/interp/spline.rb +0 -20
- data/examples/jacobi/deriv.rb +0 -40
- data/examples/jacobi/integrate.rb +0 -34
- data/examples/jacobi/interp.rb +0 -43
- data/examples/jacobi/jacobi.rb +0 -11
- data/examples/linalg/HH.rb +0 -15
- data/examples/linalg/HH_narray.rb +0 -13
- data/examples/linalg/LQ_solve.rb +0 -73
- data/examples/linalg/LU.rb +0 -84
- data/examples/linalg/LU2.rb +0 -31
- data/examples/linalg/LU_narray.rb +0 -24
- data/examples/linalg/PTLQ.rb +0 -47
- data/examples/linalg/QR.rb +0 -18
- data/examples/linalg/QRPT.rb +0 -47
- data/examples/linalg/QR_solve.rb +0 -78
- data/examples/linalg/QR_solve_narray.rb +0 -13
- data/examples/linalg/SV.rb +0 -16
- data/examples/linalg/SV_narray.rb +0 -12
- data/examples/linalg/SV_solve.rb +0 -49
- data/examples/linalg/chol.rb +0 -29
- data/examples/linalg/chol_narray.rb +0 -15
- data/examples/linalg/complex.rb +0 -57
- data/examples/linalg/invert_narray.rb +0 -10
- data/examples/math/const.rb +0 -67
- data/examples/math/elementary.rb +0 -35
- data/examples/math/functions.rb +0 -41
- data/examples/math/inf_nan.rb +0 -34
- data/examples/math/minmax.rb +0 -22
- data/examples/math/power.rb +0 -18
- data/examples/math/test.rb +0 -31
- data/examples/matrix/a.dat +0 -0
- data/examples/matrix/add.rb +0 -45
- data/examples/matrix/b.dat +0 -4
- data/examples/matrix/cat.rb +0 -31
- data/examples/matrix/colvectors.rb +0 -24
- data/examples/matrix/complex.rb +0 -41
- data/examples/matrix/det.rb +0 -29
- data/examples/matrix/diagonal.rb +0 -23
- data/examples/matrix/get_all.rb +0 -159
- data/examples/matrix/hilbert.rb +0 -31
- data/examples/matrix/iterator.rb +0 -19
- data/examples/matrix/matrix.rb +0 -57
- data/examples/matrix/minmax.rb +0 -53
- data/examples/matrix/mul.rb +0 -39
- data/examples/matrix/rand.rb +0 -20
- data/examples/matrix/read.rb +0 -29
- data/examples/matrix/rowcol.rb +0 -47
- data/examples/matrix/set.rb +0 -41
- data/examples/matrix/set_all.rb +0 -100
- data/examples/matrix/view.rb +0 -32
- data/examples/matrix/view_all.rb +0 -148
- data/examples/matrix/write.rb +0 -23
- data/examples/min.rb +0 -29
- data/examples/monte/miser.rb +0 -47
- data/examples/monte/monte.rb +0 -47
- data/examples/monte/plain.rb +0 -47
- data/examples/monte/vegas.rb +0 -46
- data/examples/multimin/bundle.rb +0 -66
- data/examples/multimin/cqp.rb +0 -109
- data/examples/multimin/fdfminimizer.rb +0 -40
- data/examples/multimin/fminimizer.rb +0 -41
- data/examples/multiroot/demo.rb +0 -36
- data/examples/multiroot/fdfsolver.rb +0 -50
- data/examples/multiroot/fsolver.rb +0 -33
- data/examples/multiroot/fsolver2.rb +0 -32
- data/examples/multiroot/fsolver3.rb +0 -26
- data/examples/narray/histogram.rb +0 -14
- data/examples/narray/mandel.rb +0 -27
- data/examples/narray/narray.rb +0 -28
- data/examples/narray/narray2.rb +0 -44
- data/examples/narray/sf.rb +0 -26
- data/examples/ntuple/create.rb +0 -17
- data/examples/ntuple/project.rb +0 -31
- data/examples/odeiv/binarysystem.gp +0 -23
- data/examples/odeiv/binarysystem.rb +0 -104
- data/examples/odeiv/demo.gp +0 -24
- data/examples/odeiv/demo.rb +0 -69
- data/examples/odeiv/demo2.gp +0 -26
- data/examples/odeiv/duffing.rb +0 -45
- data/examples/odeiv/frei1.rb +0 -109
- data/examples/odeiv/frei2.rb +0 -76
- data/examples/odeiv/legendre.rb +0 -52
- data/examples/odeiv/odeiv.rb +0 -32
- data/examples/odeiv/odeiv2.rb +0 -45
- data/examples/odeiv/oscillator.rb +0 -42
- data/examples/odeiv/sedov.rb +0 -97
- data/examples/odeiv/whitedwarf.gp +0 -40
- data/examples/odeiv/whitedwarf.rb +0 -158
- data/examples/ool/conmin.rb +0 -100
- data/examples/ool/gencan.rb +0 -99
- data/examples/ool/pgrad.rb +0 -100
- data/examples/ool/spg.rb +0 -100
- data/examples/pdf/bernoulli.rb +0 -5
- data/examples/pdf/beta.rb +0 -7
- data/examples/pdf/binomiral.rb +0 -10
- data/examples/pdf/cauchy.rb +0 -6
- data/examples/pdf/chisq.rb +0 -8
- data/examples/pdf/exponential.rb +0 -7
- data/examples/pdf/exppow.rb +0 -6
- data/examples/pdf/fdist.rb +0 -7
- data/examples/pdf/flat.rb +0 -7
- data/examples/pdf/gamma.rb +0 -8
- data/examples/pdf/gauss-tail.rb +0 -5
- data/examples/pdf/gauss.rb +0 -6
- data/examples/pdf/geometric.rb +0 -5
- data/examples/pdf/gumbel.rb +0 -6
- data/examples/pdf/hypergeometric.rb +0 -11
- data/examples/pdf/landau.rb +0 -5
- data/examples/pdf/laplace.rb +0 -7
- data/examples/pdf/logarithmic.rb +0 -5
- data/examples/pdf/logistic.rb +0 -6
- data/examples/pdf/lognormal.rb +0 -6
- data/examples/pdf/neg-binomiral.rb +0 -10
- data/examples/pdf/pareto.rb +0 -7
- data/examples/pdf/pascal.rb +0 -10
- data/examples/pdf/poisson.rb +0 -5
- data/examples/pdf/rayleigh-tail.rb +0 -6
- data/examples/pdf/rayleigh.rb +0 -6
- data/examples/pdf/tdist.rb +0 -6
- data/examples/pdf/weibull.rb +0 -8
- data/examples/permutation/ex1.rb +0 -22
- data/examples/permutation/permutation.rb +0 -16
- data/examples/poly/bell.rb +0 -6
- data/examples/poly/bessel.rb +0 -6
- data/examples/poly/cheb.rb +0 -6
- data/examples/poly/cheb_II.rb +0 -6
- data/examples/poly/cubic.rb +0 -9
- data/examples/poly/demo.rb +0 -20
- data/examples/poly/eval.rb +0 -28
- data/examples/poly/eval_derivs.rb +0 -14
- data/examples/poly/fit.rb +0 -21
- data/examples/poly/hermite.rb +0 -6
- data/examples/poly/poly.rb +0 -13
- data/examples/poly/quadratic.rb +0 -25
- data/examples/random/diffusion.rb +0 -34
- data/examples/random/gaussian.rb +0 -9
- data/examples/random/generator.rb +0 -27
- data/examples/random/hdsobol.rb +0 -21
- data/examples/random/poisson.rb +0 -9
- data/examples/random/qrng.rb +0 -19
- data/examples/random/randomwalk.rb +0 -37
- data/examples/random/randomwalk2d.rb +0 -19
- data/examples/random/rayleigh.rb +0 -36
- data/examples/random/rng.rb +0 -33
- data/examples/random/rngextra.rb +0 -14
- data/examples/roots/bisection.rb +0 -25
- data/examples/roots/brent.rb +0 -43
- data/examples/roots/demo.rb +0 -30
- data/examples/roots/newton.rb +0 -46
- data/examples/roots/recombination.gp +0 -11
- data/examples/roots/recombination.rb +0 -61
- data/examples/roots/steffenson.rb +0 -48
- data/examples/sf/ShiChi.rb +0 -6
- data/examples/sf/SiCi.rb +0 -6
- data/examples/sf/airy_Ai.rb +0 -8
- data/examples/sf/airy_Bi.rb +0 -8
- data/examples/sf/bessel_IK.rb +0 -12
- data/examples/sf/bessel_JY.rb +0 -13
- data/examples/sf/beta_inc.rb +0 -9
- data/examples/sf/clausen.rb +0 -6
- data/examples/sf/dawson.rb +0 -5
- data/examples/sf/debye.rb +0 -9
- data/examples/sf/dilog.rb +0 -6
- data/examples/sf/ellint.rb +0 -6
- data/examples/sf/expint.rb +0 -8
- data/examples/sf/fermi.rb +0 -10
- data/examples/sf/gamma_inc_P.rb +0 -9
- data/examples/sf/gegenbauer.rb +0 -8
- data/examples/sf/hyperg.rb +0 -7
- data/examples/sf/laguerre.rb +0 -19
- data/examples/sf/lambertW.rb +0 -5
- data/examples/sf/legendre_P.rb +0 -10
- data/examples/sf/lngamma.rb +0 -5
- data/examples/sf/psi.rb +0 -54
- data/examples/sf/sphbessel.gp +0 -27
- data/examples/sf/sphbessel.rb +0 -30
- data/examples/sf/synchrotron.rb +0 -5
- data/examples/sf/transport.rb +0 -10
- data/examples/sf/zetam1.rb +0 -5
- data/examples/siman.rb +0 -44
- data/examples/sort/heapsort.rb +0 -23
- data/examples/sort/heapsort_vector_complex.rb +0 -21
- data/examples/sort/sort.rb +0 -23
- data/examples/sort/sort2.rb +0 -16
- data/examples/stats/mean.rb +0 -17
- data/examples/stats/statistics.rb +0 -18
- data/examples/stats/test.rb +0 -9
- data/examples/sum.rb +0 -34
- data/examples/tamu_anova.rb +0 -18
- data/examples/vector/a.dat +0 -0
- data/examples/vector/add.rb +0 -56
- data/examples/vector/b.dat +0 -4
- data/examples/vector/c.dat +0 -3
- data/examples/vector/collect.rb +0 -26
- data/examples/vector/compare.rb +0 -28
- data/examples/vector/complex.rb +0 -51
- data/examples/vector/complex_get_all.rb +0 -85
- data/examples/vector/complex_set_all.rb +0 -131
- data/examples/vector/complex_view_all.rb +0 -77
- data/examples/vector/connect.rb +0 -22
- data/examples/vector/decimate.rb +0 -38
- data/examples/vector/diff.rb +0 -31
- data/examples/vector/filescan.rb +0 -17
- data/examples/vector/floor.rb +0 -23
- data/examples/vector/get_all.rb +0 -82
- data/examples/vector/gnuplot.rb +0 -38
- data/examples/vector/graph.rb +0 -28
- data/examples/vector/histogram.rb +0 -22
- data/examples/vector/linspace.rb +0 -24
- data/examples/vector/log.rb +0 -17
- data/examples/vector/logic.rb +0 -33
- data/examples/vector/logspace.rb +0 -25
- data/examples/vector/minmax.rb +0 -47
- data/examples/vector/mul.rb +0 -49
- data/examples/vector/narray.rb +0 -46
- data/examples/vector/read.rb +0 -29
- data/examples/vector/set.rb +0 -35
- data/examples/vector/set_all.rb +0 -121
- data/examples/vector/smpv.dat +0 -15
- data/examples/vector/test.rb +0 -43
- data/examples/vector/test_gslblock.rb +0 -58
- data/examples/vector/vector.rb +0 -110
- data/examples/vector/view.rb +0 -35
- data/examples/vector/view_all.rb +0 -73
- data/examples/vector/where.rb +0 -29
- data/examples/vector/write.rb +0 -24
- data/examples/vector/zip.rb +0 -34
- data/examples/wavelet/ecg.dat +0 -256
- data/examples/wavelet/wavelet1.rb +0 -50
- data/ext/gsl_native/alf.c +0 -206
- data/ext/gsl_native/array.c +0 -553
- data/ext/gsl_native/array_complex.c +0 -245
- data/ext/gsl_native/blas.c +0 -28
- data/ext/gsl_native/blas1.c +0 -733
- data/ext/gsl_native/blas2.c +0 -1088
- data/ext/gsl_native/blas3.c +0 -880
- data/ext/gsl_native/block.c +0 -40
- data/ext/gsl_native/block_source.h +0 -885
- data/ext/gsl_native/bspline.c +0 -122
- data/ext/gsl_native/bundle.c +0 -3
- data/ext/gsl_native/cdf.c +0 -740
- data/ext/gsl_native/cheb.c +0 -531
- data/ext/gsl_native/combination.c +0 -275
- data/ext/gsl_native/common.c +0 -293
- data/ext/gsl_native/complex.c +0 -1002
- data/ext/gsl_native/const.c +0 -331
- data/ext/gsl_native/const_additional.c +0 -99
- data/ext/gsl_native/cqp.c +0 -283
- data/ext/gsl_native/deriv.c +0 -187
- data/ext/gsl_native/dht.c +0 -353
- data/ext/gsl_native/diff.c +0 -164
- data/ext/gsl_native/dirac.c +0 -388
- data/ext/gsl_native/eigen.c +0 -2322
- data/ext/gsl_native/error.c +0 -193
- data/ext/gsl_native/extconf.rb +0 -118
- data/ext/gsl_native/fft.c +0 -1095
- data/ext/gsl_native/fit.c +0 -204
- data/ext/gsl_native/fresnel.c +0 -312
- data/ext/gsl_native/function.c +0 -518
- data/ext/gsl_native/geometry.c +0 -139
- data/ext/gsl_native/graph.c +0 -1590
- data/ext/gsl_native/gsl.c +0 -259
- data/ext/gsl_native/gsl_narray.c +0 -794
- data/ext/gsl_native/histogram.c +0 -1964
- data/ext/gsl_native/histogram2d.c +0 -1042
- data/ext/gsl_native/histogram3d.c +0 -884
- data/ext/gsl_native/histogram3d_source.c +0 -749
- data/ext/gsl_native/histogram_find.c +0 -99
- data/ext/gsl_native/histogram_oper.c +0 -150
- data/ext/gsl_native/ieee.c +0 -88
- data/ext/gsl_native/include/rb_gsl.h +0 -136
- data/ext/gsl_native/include/rb_gsl_array.h +0 -214
- data/ext/gsl_native/include/rb_gsl_cheb.h +0 -19
- data/ext/gsl_native/include/rb_gsl_common.h +0 -348
- data/ext/gsl_native/include/rb_gsl_complex.h +0 -25
- data/ext/gsl_native/include/rb_gsl_const.h +0 -23
- data/ext/gsl_native/include/rb_gsl_dirac.h +0 -6
- data/ext/gsl_native/include/rb_gsl_eigen.h +0 -17
- data/ext/gsl_native/include/rb_gsl_fft.h +0 -49
- data/ext/gsl_native/include/rb_gsl_fit.h +0 -23
- data/ext/gsl_native/include/rb_gsl_function.h +0 -23
- data/ext/gsl_native/include/rb_gsl_graph.h +0 -68
- data/ext/gsl_native/include/rb_gsl_histogram.h +0 -63
- data/ext/gsl_native/include/rb_gsl_histogram3d.h +0 -97
- data/ext/gsl_native/include/rb_gsl_integration.h +0 -17
- data/ext/gsl_native/include/rb_gsl_interp.h +0 -41
- data/ext/gsl_native/include/rb_gsl_linalg.h +0 -21
- data/ext/gsl_native/include/rb_gsl_math.h +0 -20
- data/ext/gsl_native/include/rb_gsl_odeiv.h +0 -18
- data/ext/gsl_native/include/rb_gsl_poly.h +0 -67
- data/ext/gsl_native/include/rb_gsl_rational.h +0 -30
- data/ext/gsl_native/include/rb_gsl_rng.h +0 -20
- data/ext/gsl_native/include/rb_gsl_root.h +0 -22
- data/ext/gsl_native/include/rb_gsl_sf.h +0 -110
- data/ext/gsl_native/include/rb_gsl_statistics.h +0 -17
- data/ext/gsl_native/include/rb_gsl_tensor.h +0 -43
- data/ext/gsl_native/include/rb_gsl_with_narray.h +0 -31
- data/ext/gsl_native/include/templates_off.h +0 -87
- data/ext/gsl_native/include/templates_on.h +0 -241
- data/ext/gsl_native/integration.c +0 -1154
- data/ext/gsl_native/interp.c +0 -499
- data/ext/gsl_native/jacobi.c +0 -733
- data/ext/gsl_native/linalg.c +0 -3915
- data/ext/gsl_native/linalg_complex.c +0 -726
- data/ext/gsl_native/math.c +0 -706
- data/ext/gsl_native/matrix.c +0 -36
- data/ext/gsl_native/matrix_complex.c +0 -1733
- data/ext/gsl_native/matrix_double.c +0 -557
- data/ext/gsl_native/matrix_int.c +0 -255
- data/ext/gsl_native/matrix_source.h +0 -2708
- data/ext/gsl_native/min.c +0 -219
- data/ext/gsl_native/monte.c +0 -978
- data/ext/gsl_native/multifit.c +0 -1862
- data/ext/gsl_native/multimin.c +0 -778
- data/ext/gsl_native/multimin_fsdf.c +0 -156
- data/ext/gsl_native/multiroots.c +0 -952
- data/ext/gsl_native/multiset.c +0 -210
- data/ext/gsl_native/ndlinear.c +0 -320
- data/ext/gsl_native/nmf.c +0 -171
- data/ext/gsl_native/nmf_wrap.c +0 -75
- data/ext/gsl_native/ntuple.c +0 -469
- data/ext/gsl_native/odeiv.c +0 -947
- data/ext/gsl_native/ool.c +0 -879
- data/ext/gsl_native/permutation.c +0 -598
- data/ext/gsl_native/poly.c +0 -39
- data/ext/gsl_native/poly2.c +0 -265
- data/ext/gsl_native/poly_source.h +0 -1871
- data/ext/gsl_native/qrng.c +0 -160
- data/ext/gsl_native/randist.c +0 -1848
- data/ext/gsl_native/rational.c +0 -480
- data/ext/gsl_native/rng.c +0 -595
- data/ext/gsl_native/root.c +0 -407
- data/ext/gsl_native/sf.c +0 -1446
- data/ext/gsl_native/sf_airy.c +0 -200
- data/ext/gsl_native/sf_bessel.c +0 -871
- data/ext/gsl_native/sf_clausen.c +0 -28
- data/ext/gsl_native/sf_coulomb.c +0 -206
- data/ext/gsl_native/sf_coupling.c +0 -121
- data/ext/gsl_native/sf_dawson.c +0 -29
- data/ext/gsl_native/sf_debye.c +0 -148
- data/ext/gsl_native/sf_dilog.c +0 -43
- data/ext/gsl_native/sf_elementary.c +0 -46
- data/ext/gsl_native/sf_ellint.c +0 -206
- data/ext/gsl_native/sf_elljac.c +0 -30
- data/ext/gsl_native/sf_erfc.c +0 -89
- data/ext/gsl_native/sf_exp.c +0 -169
- data/ext/gsl_native/sf_expint.c +0 -201
- data/ext/gsl_native/sf_fermi_dirac.c +0 -148
- data/ext/gsl_native/sf_gamma.c +0 -343
- data/ext/gsl_native/sf_gegenbauer.c +0 -97
- data/ext/gsl_native/sf_hyperg.c +0 -203
- data/ext/gsl_native/sf_laguerre.c +0 -113
- data/ext/gsl_native/sf_lambert.c +0 -47
- data/ext/gsl_native/sf_legendre.c +0 -368
- data/ext/gsl_native/sf_log.c +0 -105
- data/ext/gsl_native/sf_mathieu.c +0 -235
- data/ext/gsl_native/sf_power.c +0 -47
- data/ext/gsl_native/sf_psi.c +0 -89
- data/ext/gsl_native/sf_synchrotron.c +0 -48
- data/ext/gsl_native/sf_transport.c +0 -76
- data/ext/gsl_native/sf_trigonometric.c +0 -210
- data/ext/gsl_native/sf_zeta.c +0 -115
- data/ext/gsl_native/signal.c +0 -303
- data/ext/gsl_native/siman.c +0 -713
- data/ext/gsl_native/sort.c +0 -207
- data/ext/gsl_native/spline.c +0 -377
- data/ext/gsl_native/stats.c +0 -787
- data/ext/gsl_native/sum.c +0 -168
- data/ext/gsl_native/tamu_anova.c +0 -56
- data/ext/gsl_native/tensor.c +0 -35
- data/ext/gsl_native/tensor_source.h +0 -1122
- data/ext/gsl_native/vector.c +0 -35
- data/ext/gsl_native/vector_complex.c +0 -2241
- data/ext/gsl_native/vector_double.c +0 -1433
- data/ext/gsl_native/vector_int.c +0 -202
- data/ext/gsl_native/vector_source.h +0 -3321
- data/ext/gsl_native/wavelet.c +0 -923
- data/lib/gsl.rb +0 -8
- data/lib/gsl/gnuplot.rb +0 -41
- data/lib/gsl/oper.rb +0 -43
- data/lib/gsl/version.rb +0 -3
- data/lib/ool.rb +0 -22
- data/lib/ool/conmin.rb +0 -30
- data/lib/rbgsl.rb +0 -1
- data/rdoc/alf.rdoc +0 -77
- data/rdoc/blas.rdoc +0 -269
- data/rdoc/bspline.rdoc +0 -42
- data/rdoc/changes.rdoc +0 -159
- data/rdoc/cheb.rdoc +0 -99
- data/rdoc/cholesky_complex.rdoc +0 -46
- data/rdoc/combi.rdoc +0 -125
- data/rdoc/complex.rdoc +0 -210
- data/rdoc/const.rdoc +0 -546
- data/rdoc/dht.rdoc +0 -122
- data/rdoc/diff.rdoc +0 -133
- data/rdoc/ehandling.rdoc +0 -50
- data/rdoc/eigen.rdoc +0 -401
- data/rdoc/fft.rdoc +0 -535
- data/rdoc/fit.rdoc +0 -284
- data/rdoc/function.rdoc +0 -94
- data/rdoc/graph.rdoc +0 -137
- data/rdoc/hist.rdoc +0 -409
- data/rdoc/hist2d.rdoc +0 -279
- data/rdoc/hist3d.rdoc +0 -112
- data/rdoc/integration.rdoc +0 -398
- data/rdoc/interp.rdoc +0 -231
- data/rdoc/intro.rdoc +0 -27
- data/rdoc/linalg.rdoc +0 -681
- data/rdoc/linalg_complex.rdoc +0 -88
- data/rdoc/math.rdoc +0 -276
- data/rdoc/matrix.rdoc +0 -1093
- data/rdoc/min.rdoc +0 -189
- data/rdoc/monte.rdoc +0 -234
- data/rdoc/multimin.rdoc +0 -312
- data/rdoc/multiroot.rdoc +0 -293
- data/rdoc/narray.rdoc +0 -177
- data/rdoc/ndlinear.rdoc +0 -250
- data/rdoc/nonlinearfit.rdoc +0 -348
- data/rdoc/ntuple.rdoc +0 -88
- data/rdoc/odeiv.rdoc +0 -378
- data/rdoc/perm.rdoc +0 -221
- data/rdoc/poly.rdoc +0 -335
- data/rdoc/qrng.rdoc +0 -90
- data/rdoc/randist.rdoc +0 -233
- data/rdoc/ref.rdoc +0 -93
- data/rdoc/rng.rdoc +0 -203
- data/rdoc/roots.rdoc +0 -305
- data/rdoc/sf.rdoc +0 -1622
- data/rdoc/siman.rdoc +0 -89
- data/rdoc/sort.rdoc +0 -94
- data/rdoc/start.rdoc +0 -16
- data/rdoc/stats.rdoc +0 -219
- data/rdoc/sum.rdoc +0 -65
- data/rdoc/tensor.rdoc +0 -251
- data/rdoc/tut.rdoc +0 -5
- data/rdoc/use.rdoc +0 -177
- data/rdoc/vector.rdoc +0 -1243
- data/rdoc/vector_complex.rdoc +0 -347
- data/rdoc/wavelet.rdoc +0 -218
- data/test/gsl/blas_test.rb +0 -79
- data/test/gsl/bspline_test.rb +0 -63
- data/test/gsl/cdf_test.rb +0 -1512
- data/test/gsl/cheb_test.rb +0 -80
- data/test/gsl/combination_test.rb +0 -100
- data/test/gsl/complex_test.rb +0 -20
- data/test/gsl/const_test.rb +0 -29
- data/test/gsl/deriv_test.rb +0 -62
- data/test/gsl/dht_test.rb +0 -79
- data/test/gsl/diff_test.rb +0 -53
- data/test/gsl/eigen_test.rb +0 -563
- data/test/gsl/err_test.rb +0 -23
- data/test/gsl/fit_test.rb +0 -101
- data/test/gsl/histo_test.rb +0 -14
- data/test/gsl/index_test.rb +0 -61
- data/test/gsl/integration_test.rb +0 -274
- data/test/gsl/interp_test.rb +0 -27
- data/test/gsl/linalg_test.rb +0 -463
- data/test/gsl/matrix_nmf_test.rb +0 -37
- data/test/gsl/matrix_test.rb +0 -98
- data/test/gsl/min_test.rb +0 -89
- data/test/gsl/monte_test.rb +0 -77
- data/test/gsl/multifit_test.rb +0 -753
- data/test/gsl/multimin_test.rb +0 -157
- data/test/gsl/multiroot_test.rb +0 -135
- data/test/gsl/multiset_test.rb +0 -52
- data/test/gsl/odeiv_test.rb +0 -275
- data/test/gsl/oper_test.rb +0 -98
- data/test/gsl/poly_test.rb +0 -338
- data/test/gsl/qrng_test.rb +0 -94
- data/test/gsl/quartic_test.rb +0 -28
- data/test/gsl/randist_test.rb +0 -122
- data/test/gsl/rng_test.rb +0 -303
- data/test/gsl/roots_test.rb +0 -78
- data/test/gsl/sf_test.rb +0 -2079
- data/test/gsl/stats_test.rb +0 -122
- data/test/gsl/sum_test.rb +0 -69
- data/test/gsl/tensor_test.rb +0 -396
- data/test/gsl/vector_test.rb +0 -223
- data/test/gsl/wavelet_test.rb +0 -130
- data/test/gsl_test.rb +0 -321
- data/test/test_helper.rb +0 -42
- data/uncrustify.cfg +0 -1693
data/rdoc/interp.rdoc
DELETED
@@ -1,231 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# = Interpolation
|
3
|
-
# This chapter describes functions for performing interpolation.
|
4
|
-
# The library provides a variety of interpolation methods, including
|
5
|
-
# Cubic splines and Akima splines. The interpolation types are interchangeable,
|
6
|
-
# allowing different methods to be used without recompiling. Interpolations can
|
7
|
-
# be defined for both normal and periodic boundary conditions. Additional
|
8
|
-
# functions are available for computing derivatives and integrals of
|
9
|
-
# interpolating functions.
|
10
|
-
#
|
11
|
-
# 1. {Interpolation classes}[link:rdoc/interp_rdoc.html#label-Interpolation+Classes]
|
12
|
-
# 1. {Initializing interpolation objects}[link:rdoc/interp_rdoc.html#label-Initializing+interpolation+objects]
|
13
|
-
# 1. {Index Look-up and Acceleration}[link:rdoc/interp_rdoc.html#label-Index+Look-up+and+Acceleration]
|
14
|
-
# 1. {Evaluation of Interpolating Functions}[link:rdoc/interp_rdoc.html#label-Evaluation+of+Interpolating+Functions]
|
15
|
-
# 1. {Higher level interface: GSL::Spline class}[link:rdoc/interp_rdoc.html#label-Higher+level+interface]
|
16
|
-
# 1. {Class initialization}[link:rdoc/interp_rdoc.html#label-Class+initialization]
|
17
|
-
# 1. {Evaluation}[link:rdoc/interp_rdoc.html#label-Evaluation]
|
18
|
-
# 1. {Finding and acceleration}[link:rdoc/interp_rdoc.html#label-Finding+and+acceleration]
|
19
|
-
#
|
20
|
-
# == Interpolation Classes
|
21
|
-
# * GSL
|
22
|
-
# * Interp (class)
|
23
|
-
# * Accel (class)
|
24
|
-
# * Spline (class)
|
25
|
-
#
|
26
|
-
# == Initializing interpolation objects
|
27
|
-
#
|
28
|
-
# ---
|
29
|
-
# * GSL::Interp.alloc(T, n)
|
30
|
-
# * GSL::Interp.alloc(T, x, y)
|
31
|
-
# * GSL::Interp.alloc(x, y)
|
32
|
-
#
|
33
|
-
# These methods create an interpolation object of type <tt>T</tt> for <tt>n</tt>
|
34
|
-
# data-points.
|
35
|
-
#
|
36
|
-
# The library provides six types, which are specifiled by an identifier of a
|
37
|
-
# constant or a string:
|
38
|
-
#
|
39
|
-
# * Interp::LINEAR or "linear"
|
40
|
-
#
|
41
|
-
# Linear interpolation. This interpolation method does not require any additional memory.
|
42
|
-
# * Interp::POLYNOMIAL or "polynomial"
|
43
|
-
#
|
44
|
-
# Polynomial interpolation. This method should only be used for interpolating small numbers of points because polynomial interpolation introduces large oscillations, even for well-behaved datasets. The number of terms in the interpolating polynomial is equal to the number of points.
|
45
|
-
#
|
46
|
-
# * Interp::CSPLINE or "cspline"
|
47
|
-
#
|
48
|
-
# Cubic spline with natural boundary conditions.
|
49
|
-
# * Interp::CSPLINE_PERIODIC or "gsl_cspline_periodic" or "cspline_periodic"
|
50
|
-
#
|
51
|
-
# Cubic spline with periodic boundary conditions
|
52
|
-
# * Interp::AKIMA or "akima"
|
53
|
-
#
|
54
|
-
# Non-rounded Akima spline with natural boundary conditions. This method uses the non-rounded corner algorithm of Wodicka.
|
55
|
-
# * Interp::AKIMA_PERIODIC or "akima_periodic"
|
56
|
-
#
|
57
|
-
# Non-rounded Akima spline with periodic boundary conditions. This method uses the non-rounded corner algorithm of Wodicka.
|
58
|
-
#
|
59
|
-
# * ex: For cubic spline for 10 points,
|
60
|
-
# sp = Interp.alloc("cspline", 10)
|
61
|
-
#
|
62
|
-
# ---
|
63
|
-
# * GSL::Interp#init(xa, ya)
|
64
|
-
#
|
65
|
-
# This method initializes the interpolation object interp for the data
|
66
|
-
# <tt>(xa,ya)</tt> where <tt>xa</tt> and <tt>ya</tt> are vectors.
|
67
|
-
# The interpolation object (<tt>GSL::Interp</tt>) does not save the data
|
68
|
-
# vectors <tt>xa, ya</tt> and only stores the static state computed from the data.
|
69
|
-
# The <tt>xa</tt> vector is always assumed to be strictly ordered; the behavior
|
70
|
-
# for other arrangements is not defined.
|
71
|
-
#
|
72
|
-
#
|
73
|
-
# ---
|
74
|
-
# * GSL::Interp#name
|
75
|
-
#
|
76
|
-
# This returns the name of the interpolation type used by <tt>self</tt>.
|
77
|
-
#
|
78
|
-
#
|
79
|
-
#
|
80
|
-
# ---
|
81
|
-
# * GSL::Interp#min_size
|
82
|
-
#
|
83
|
-
# This returns the minimum number of points required by the interpolation
|
84
|
-
# type of <tt>self</tt>. For example, Akima spline interpolation requires
|
85
|
-
# a minimum of 5 points.
|
86
|
-
#
|
87
|
-
# == Index Look-up and Acceleration
|
88
|
-
# ---
|
89
|
-
# * GSL::Interp.bsearch(xa, x, index_lo, index_hi)
|
90
|
-
#
|
91
|
-
# This returns the index i of the vector <tt>xa</tt> such that
|
92
|
-
# <tt>xa[i] <= x < x[i+1]</tt>. The index is searched for in the range
|
93
|
-
# <tt>[index_lo,index_hi]</tt>.
|
94
|
-
#
|
95
|
-
#
|
96
|
-
# ---
|
97
|
-
# * GSL::Interp#accel
|
98
|
-
#
|
99
|
-
# In C level, the library requires a <tt>gsl_interp_accel</tt> object,
|
100
|
-
# but it is hidden in Ruby/GSL. It is automatically allocated
|
101
|
-
# when a <tt>GSL::Interp</tt> object is created, stored in it,
|
102
|
-
# and destroyed when the <tt>Interp</tt> object
|
103
|
-
# is cleaned by the Ruby GC.
|
104
|
-
# This method is used to access to the <tt>Interp::Accel</tt> object
|
105
|
-
# stored in <tt>self</tt>.
|
106
|
-
#
|
107
|
-
# ---
|
108
|
-
# * GSL::Interp#find(xa, x)
|
109
|
-
# * GSL::Interp#accel_find(xa, x)
|
110
|
-
# * GSL::Interp::Accel#find(xa, x)
|
111
|
-
#
|
112
|
-
# This method performs a lookup action on the data array <tt>xa</tt>.
|
113
|
-
# This is how lookups are performed during evaluation
|
114
|
-
# of an interpolation. The function returns an index <tt>i</tt> such that
|
115
|
-
# <tt>xa[i] <= x < xa[i+1]</tt>.
|
116
|
-
#
|
117
|
-
#
|
118
|
-
# == Evaluation of Interpolating Functions
|
119
|
-
#
|
120
|
-
# ---
|
121
|
-
# * GSL::Interp#eval(xa, ya, x)
|
122
|
-
# * GSL::Interp#eval_e(xa, ya, x)
|
123
|
-
#
|
124
|
-
# These methods return the interpolated value for a given point <tt>x</tt>,
|
125
|
-
# using the interpolation object <tt>self</tt>, data vectors <tt>xa</tt> and <tt>ya</tt>.
|
126
|
-
# The data <tt>x</tt> can be a <tt>Numeric, Vector, Matrix</tt> or an <tt>NArray</tt>.
|
127
|
-
# ---
|
128
|
-
# * GSL::Interp#eval_deriv(xa, ya, x)
|
129
|
-
# * GSL::Interp#eval_deriv_e(xa, ya, x)
|
130
|
-
#
|
131
|
-
# These methods return the derivative of an interpolated function for a
|
132
|
-
# given point <tt>x</tt>, using the interpolation object <tt>self</tt>,
|
133
|
-
# data vectors <tt>xa</tt> and <tt>ya</tt>.
|
134
|
-
#
|
135
|
-
# ---
|
136
|
-
# * GSL::Interp#eval_deriv2(xa, ya, x)
|
137
|
-
# * GSL::Interp#eval_deriv2_e(xa, ya, x)
|
138
|
-
#
|
139
|
-
# These methods return the second derivative of an interpolated function
|
140
|
-
# for a given point <tt>x</tt>, using the interpolation object <tt>self</tt>,
|
141
|
-
# data vectors <tt>xa</tt> and <tt>ya</tt>.
|
142
|
-
#
|
143
|
-
# ---
|
144
|
-
# * GSL::Interp#eval_integ(xa, ya, a, b)
|
145
|
-
# * GSL::Interp#eval_integ_e(xa, ya, a, b)
|
146
|
-
#
|
147
|
-
# These methods return the numerical integral result of an interpolated
|
148
|
-
# function over the range <tt>[a, b]</tt>, using the interpolation object <tt>self</tt>,
|
149
|
-
# data vectors <tt>xa</tt> and <tt>ya</tt>.
|
150
|
-
#
|
151
|
-
# == Higher level interface
|
152
|
-
# === Class initialization
|
153
|
-
#
|
154
|
-
# ---
|
155
|
-
# * GSL::Spline.alloc(T, n)
|
156
|
-
# * GSL::Spline.alloc(T, x, y)
|
157
|
-
# * GSL::Spline.alloc(x, y, T)
|
158
|
-
#
|
159
|
-
# This creates a <tt>GSL::Spline</tt> object of type <tt>T</tt> for <tt>n</tt>
|
160
|
-
# data-points. The type <tt>T</tt> is the same as <tt>GSL::Interp</tt> class.
|
161
|
-
#
|
162
|
-
# These two are equivalent.
|
163
|
-
# * <tt>GSL::Spline.alloc</tt> and <tt>GSL::Spline#init</tt>
|
164
|
-
# sp = GSL::Spline.alloc(T, n)
|
165
|
-
# sp.init(x, y) # x and y are vectors of length n
|
166
|
-
# * <tt>GSL::Spline.alloc</tt> with two vectors
|
167
|
-
# sp = GSL::Spline.alloc(T, x, y)
|
168
|
-
# If <tt>T</tt> is not given, "cspline" is used.
|
169
|
-
#
|
170
|
-
# ---
|
171
|
-
# * GSL::Spline#init(xa, ya)
|
172
|
-
#
|
173
|
-
# This initializes a <tt>GSL::Spline</tt> object <tt>self</tt> for the data
|
174
|
-
# (<tt>xa, ya</tt>) where <tt>xa</tt> and <tt>ya</tt> are Ruby arrays of equal sizes
|
175
|
-
# or <tt>GSL::Vector</tt>.
|
176
|
-
#
|
177
|
-
# ---
|
178
|
-
# * GSL::Spline#name
|
179
|
-
#
|
180
|
-
# This returns the name of the spline type used by <tt>self</tt>.
|
181
|
-
#
|
182
|
-
# === Evaluation
|
183
|
-
# ---
|
184
|
-
# * GSL::Spline#eval(x)
|
185
|
-
#
|
186
|
-
# This returns the interpolated value for a given point <tt>x</tt>.
|
187
|
-
# The data <tt>x</tt> can be a <tt>Numeric, Vector, Matrix</tt> or an <tt>NArray</tt>.
|
188
|
-
#
|
189
|
-
# NOTE: In a GSL-C program, a <tt>gsl_interp_accel</tt> object is required to use
|
190
|
-
# the function <tt>gsl_spline_eval</tt>.
|
191
|
-
# In Ruby/GSL, the <tt>gsl_interp_accel</tt> is hidden, it is automatically
|
192
|
-
# allocated when a <tt>GSL::Spline</tt> object is created,
|
193
|
-
# and also destroyed when the <tt>Spline</tt> object
|
194
|
-
# is cleaned by the Ruby GC. The accel object can be accessed via the method
|
195
|
-
# <tt>GSL::Spline#accel</tt>.
|
196
|
-
#
|
197
|
-
# ---
|
198
|
-
# * GSL::Spline#eval_deriv(x)
|
199
|
-
#
|
200
|
-
# This returns the derivative of an interpolated function for a given point <tt>x</tt>, usingthe data arrays <tt>xa</tt> and <tt>ya</tt> set by <tt>init</tt>.
|
201
|
-
#
|
202
|
-
# ---
|
203
|
-
# * GSL::Spline#eval_deriv2(x)
|
204
|
-
#
|
205
|
-
# This returns the second derivative at <tt>x</tt>.
|
206
|
-
#
|
207
|
-
# ---
|
208
|
-
# * GSL::Spline#eval_integ(a, b)
|
209
|
-
#
|
210
|
-
# Returns the numerical integral over the range [<tt>a, b</tt>].
|
211
|
-
#
|
212
|
-
# === Finding and acceleration
|
213
|
-
# ---
|
214
|
-
# * GSL::Spline#find(xa, x)
|
215
|
-
# * GSL::Spline#accel_find(xa, x)
|
216
|
-
#
|
217
|
-
# This method performs a lookup action on the data array <tt>xa</tt>.
|
218
|
-
# This is how lookups are performed during evaluation
|
219
|
-
# of an interpolation. The function returns an index <tt>i</tt> such that
|
220
|
-
# <tt>xa[i] <= x < xa[i+1]</tt>.
|
221
|
-
#
|
222
|
-
# See also the GSL manual and the examples in <tt>examples/</tt>
|
223
|
-
#
|
224
|
-
# {prev}[link:rdoc/odeiv_rdoc.html]
|
225
|
-
# {next}[link:rdoc/diff_rdoc.html]
|
226
|
-
#
|
227
|
-
# {Reference index}[link:rdoc/ref_rdoc.html]
|
228
|
-
# {top}[link:index.html]
|
229
|
-
#
|
230
|
-
#
|
231
|
-
#
|
data/rdoc/intro.rdoc
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# = Introduction
|
3
|
-
#
|
4
|
-
# The GNU Scientific Library ({GSL}[https://gnu.org/software/gsl/])
|
5
|
-
# is a collection of routines for numerical computing.
|
6
|
-
# The routines have been written from scratch in C, and present a modern Applications
|
7
|
-
# Programming Interface (API) for C programmers, allowing wrappers to be
|
8
|
-
# written for very high level languages. The source code is distributed
|
9
|
-
# under the GNU General Public License.
|
10
|
-
#
|
11
|
-
# {Ruby/GSL}[https://sciruby.github.com/rb-gsl] is a Ruby
|
12
|
-
# extension for GSL. This provides higher-level interfaces to the GSL functions.
|
13
|
-
#
|
14
|
-
# == Requirements
|
15
|
-
# * GSL (1.4 or later recommended)
|
16
|
-
# * ANSI C compiler
|
17
|
-
# * Ruby (1.8 or later recommended)
|
18
|
-
#
|
19
|
-
# == Installation
|
20
|
-
# See {here}[link:index.html].
|
21
|
-
#
|
22
|
-
# {next}[link:rdoc/use_rdoc.html]
|
23
|
-
#
|
24
|
-
# {Reference index}[link:rdoc/ref_rdoc.html]
|
25
|
-
# {top}[link:index.html]
|
26
|
-
#
|
27
|
-
#
|
data/rdoc/linalg.rdoc
DELETED
@@ -1,681 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# = Linear Algebra
|
3
|
-
#
|
4
|
-
# Contents:
|
5
|
-
# 1. {LU Decomposition}[link:rdoc/linalg_rdoc.html#label-LU+Decomposition]
|
6
|
-
# 1. {QR Decomposition}[link:rdoc/linalg_rdoc.html#label-QR+decomposition]
|
7
|
-
# 1. {QR Decomposition with Column Pivoting}[link:rdoc/linalg_rdoc.html#label-QR+Decomposition+with+Column+Pivoting]
|
8
|
-
# 1. {Singular Value Decomposition}[link:rdoc/linalg_rdoc.html#label-Singular+Value+Decomposition]
|
9
|
-
# 1. {Cholesky Decomposition}[link:rdoc/linalg_rdoc.html#label-Cholesky+Decomposition]
|
10
|
-
# 1. {Tridiagonal Decomposition of Real Symmetric Matrices}[link:rdoc/linalg_rdoc.html#label-Tridiagonal+Decomposition+of+Real+Symmetric+Matrices]
|
11
|
-
# 1. {Tridiagonal Decomposition of Hermitian Matrices}[link:rdoc/linalg_rdoc.html#label-Tridiagonal+Decomposition+of+Hermitian+Matrices]
|
12
|
-
# 1. {Hessenberg Decomposition of Real Matrices}[link:rdoc/linalg_rdoc.html#label-Hessenberg+Decomposition+of+Real+Matrices]
|
13
|
-
# 1. {Hessenberg-Triangular Decomposition of Real Matrices}[link:rdoc/linalg_rdoc.html#label-Hessenberg-Triangular+Decomposition+of+Real+Matrices]
|
14
|
-
# 1. {Bidiagonalization}[link:rdoc/linalg_rdoc.html#label-Bidiagonalization]
|
15
|
-
# 1. {Householder Transformations}[link:rdoc/linalg_rdoc.html#label-Householder+Transformations]
|
16
|
-
# 1. {Householder solver for linear systems}[link:rdoc/linalg_rdoc.html#label-Householder+solver+for+linear+systems]
|
17
|
-
# 1. {Tridiagonal Systems}[link:rdoc/linalg_rdoc.html#label-Tridiagonal+Systems]
|
18
|
-
# 1. {Balancing}[link:rdoc/linalg_rdoc.html#label-Balancing]
|
19
|
-
# 1. {NArray}[link:rdoc/linalg_rdoc.html#label-NArray]
|
20
|
-
#
|
21
|
-
# == LU Decomposition
|
22
|
-
# ---
|
23
|
-
# * GSL::Linalg::LU.decomp(A)
|
24
|
-
# * GSL::Matrix#LU_decomp
|
25
|
-
#
|
26
|
-
# These method calculate the LU decomposition of the matrix. The returned
|
27
|
-
# value is an array of <tt>[LU, perm, sign]</tt>.
|
28
|
-
#
|
29
|
-
# Examples:
|
30
|
-
#
|
31
|
-
# 1. Singleton method of the <tt>GSL::Linalg::LU</tt> module
|
32
|
-
#
|
33
|
-
# >> m = Matrix[1..9, 3, 3]
|
34
|
-
# => GSL::Matrix:
|
35
|
-
# [ 1.000e+00 2.000e+00 3.000e+00
|
36
|
-
# 4.000e+00 5.000e+00 6.000e+00
|
37
|
-
# 7.000e+00 8.000e+00 9.000e+00 ]
|
38
|
-
# >> lu, perm, sign = Linalg::LU.decomp(m)
|
39
|
-
#
|
40
|
-
# 1. Instance method of <tt>GSL::Matrix</tt> class
|
41
|
-
#
|
42
|
-
# >> lu, perm, sign = m.LU_decomp
|
43
|
-
#
|
44
|
-
# ---
|
45
|
-
# * GSL::Linalg::LU.solve(A, b)
|
46
|
-
# * GSL::Linalg::LU.solve(lu, perm, b)
|
47
|
-
# * GSL::Matrix#LU_solve(b)
|
48
|
-
# * GSL::Linalg::LUMatrix#solve(perm, b)
|
49
|
-
#
|
50
|
-
# The following is an example to solve a linear system
|
51
|
-
#
|
52
|
-
# A x = b, b = [1, 2, 3, 4]
|
53
|
-
#
|
54
|
-
# using LU decomposition.
|
55
|
-
#
|
56
|
-
# 1. Singleton method of the <tt>GSL::Linalg::LU</tt> module
|
57
|
-
#
|
58
|
-
# A = Matrix[[0.18, 0.60, 0.57, 0.96], [0.41, 0.24, 0.99, 0.58],
|
59
|
-
# [0.14, 0.30, 0.97, 0.66], [0.51, 0.13, 0.19, 0.85]]
|
60
|
-
# lu, perm, sign = A.LU_decomp
|
61
|
-
# b = Vector[1, 2, 3, 4]
|
62
|
-
# x = Linalg::LU.solve(lu, perm, b)
|
63
|
-
#
|
64
|
-
# 1. Instance method of <tt>GSL::Linalg::LUMatrix</tt> class
|
65
|
-
#
|
66
|
-
# lu, perm, sign = A.LU_decomp # lu is an instance of Linalg::LUMatrix class
|
67
|
-
# b = Vector[1, 2, 3, 4]
|
68
|
-
# x = lu.solve(perm, b)
|
69
|
-
#
|
70
|
-
# 1. Solve directly
|
71
|
-
#
|
72
|
-
# x = Linalg::LU.solve(A, b) # LU decomposition is calculated internally (A is not modified)
|
73
|
-
#
|
74
|
-
# ---
|
75
|
-
# * GSL::Linalg::LU.svx(A, b)
|
76
|
-
# * GSL::Linalg::LU.svx(lu, perm, b)
|
77
|
-
# * GSL::Matrix#svx(b)
|
78
|
-
# * GSL::Linalg::LUMatrix#svx(perm, b)
|
79
|
-
#
|
80
|
-
# These solve the system Ax = b. The input vector <tt>b</tt> is overwitten by
|
81
|
-
# the solution <tt>x</tt>.
|
82
|
-
#
|
83
|
-
# ---
|
84
|
-
# * GSL::Linalg::LU.refine(A, lu, perm, b, x)
|
85
|
-
#
|
86
|
-
# This method applys an iterative improvement to <tt>x</tt>,
|
87
|
-
# the solution of <tt>A x = b</tt>, using the LU decomposition of <tt>A</tt>.
|
88
|
-
#
|
89
|
-
# ---
|
90
|
-
# * GSL::Linalg::LU.invert(A)
|
91
|
-
# * GSL::Linalg::LU.invert(lu, perm)
|
92
|
-
# * GSL::Matrix#invert
|
93
|
-
# * GSL::Linalg::LUMatrix#invert(perm)
|
94
|
-
#
|
95
|
-
# These computes and returns the inverse of the matrix.
|
96
|
-
#
|
97
|
-
# ---
|
98
|
-
# * GSL::Linalg::LU.det(A)
|
99
|
-
# * GSL::Linalg::LU.det(lu, signum)
|
100
|
-
# * GSL::Matrix#det
|
101
|
-
# * GSL::Linalg::LUMatrix#det(signum)
|
102
|
-
#
|
103
|
-
# These methods return the determinant of the matrix.
|
104
|
-
#
|
105
|
-
# === {Complex LU decomposition}[link:rdoc/linalg_complex_rdoc.html]
|
106
|
-
#
|
107
|
-
# == QR decomposition
|
108
|
-
#
|
109
|
-
# ---
|
110
|
-
# * GSL::Linalg::QR_decomp(A)
|
111
|
-
# * GSL::Linalg::QR.decomp(A)
|
112
|
-
# * GSL::Matrix#QR_decomp
|
113
|
-
#
|
114
|
-
# These compute QR decomposition of the matrix and return an array [QR, tau].
|
115
|
-
#
|
116
|
-
# 1. Singleton method of the module <tt>GSL::Linalg</tt>
|
117
|
-
# qr, tau = Linalg::QR_decomp(m)
|
118
|
-
# p qr.class # GSL::Linalg::QRMatrix, subclass of GSL::Matrix
|
119
|
-
# p tau.class # GSL::Linalg::TauVector, subclass of GSL::Vector
|
120
|
-
# 1. Singleton method of the module <tt>GSL::Linalg:QR</tt>
|
121
|
-
# qr, tau = Linalg::QR.decomp(m)
|
122
|
-
# 1. Instance method of <tt>GSL::Matrix</tt>
|
123
|
-
# qr, tau = m.QR_decomp
|
124
|
-
#
|
125
|
-
# ---
|
126
|
-
# * GSL::Linalg::QR.solve(A, b)
|
127
|
-
# * GSL::Linalg::QR.solve(QR, tau, b)
|
128
|
-
# * GSL::Matrix#QR_solve(b)
|
129
|
-
# * GSL::Linalg::QRMatrix#solve(tau, b)
|
130
|
-
#
|
131
|
-
# Solve the system A x = b using the QR decomposition.
|
132
|
-
#
|
133
|
-
# * Ex1:
|
134
|
-
# m = Matrix.alloc(...)
|
135
|
-
# b = Vector.alloc(...)
|
136
|
-
# x = Linalg::QR.solve(m, b)
|
137
|
-
# * Ex2:
|
138
|
-
# x = m.QR_solve(b)
|
139
|
-
# * Ex3:
|
140
|
-
# qr, tau = Linalg::QR.decomp(m) # or m.QR_decomp
|
141
|
-
# x = Linalg::QR.solve(qr, tau, b)
|
142
|
-
# * Ex4:
|
143
|
-
# qr, tau = m.QR_decomp
|
144
|
-
# x = qr.solve(tau, b)
|
145
|
-
#
|
146
|
-
# ---
|
147
|
-
# * GSL::Linalg::QR.svx(A, x)
|
148
|
-
# * GSL::Linalg::QR.svx(QR, tau, x)
|
149
|
-
# * GSL::Matrix#QR_svx(x)
|
150
|
-
# * GSL::Linalg::QRMatrix#svx(tau, x)
|
151
|
-
#
|
152
|
-
# Solve the system A x = b. The input vector <tt>x</tt> is first give by
|
153
|
-
# the right-hand side vector <tt>b</tt>, and is overwritten by the solution.
|
154
|
-
#
|
155
|
-
# ---
|
156
|
-
# * GSL::Linalg::QR.unpack(QR, tau)
|
157
|
-
# * GSL::Linalg::QRMatrix#unpack(tau)
|
158
|
-
#
|
159
|
-
# Unpack the encoded QR decomposition <tt>QR,tau</tt> and return an array
|
160
|
-
# <tt>[Q, R]</tt>.
|
161
|
-
#
|
162
|
-
# Ex:
|
163
|
-
# >> m = Matrix[1..9, 3, 3]
|
164
|
-
# => GSL::Matrix:
|
165
|
-
# [ 1.000e+00 2.000e+00 3.000e+00
|
166
|
-
# 4.000e+00 5.000e+00 6.000e+00
|
167
|
-
# 7.000e+00 8.000e+00 9.000e+00 ]
|
168
|
-
# >> qr, tau = m.QR_decomp
|
169
|
-
# >> q, r = qr.unpack(tau)
|
170
|
-
# >> q*r # Reconstruct the metrix m
|
171
|
-
# => GSL::Matrix:
|
172
|
-
# [ 1.000e+00 2.000e+00 3.000e+00
|
173
|
-
# 4.000e+00 5.000e+00 6.000e+00
|
174
|
-
# 7.000e+00 8.000e+00 9.000e+00 ]
|
175
|
-
#
|
176
|
-
# ---
|
177
|
-
# * GSL::Linalg::QR.QRsolve(Q, R, tau)
|
178
|
-
#
|
179
|
-
# This method solves the system <tt>R x = Q^T b</tt> for <tt>x</tt>.
|
180
|
-
# It can be used when the QR decomposition of a matrix is available
|
181
|
-
# in unpacked form as <tt>Q,R</tt>.
|
182
|
-
#
|
183
|
-
# == QR Decomposition with Column Pivoting
|
184
|
-
# ---
|
185
|
-
# * GSL::Linalg::QRPT.decomp(A)
|
186
|
-
# * GSL::Matrix#QRPT_decomp
|
187
|
-
#
|
188
|
-
# These methods factorize the M-by-N matrix <tt>A</tt> into the QRP^T decomposition A = Q R P^T, and return an array <tt>[QR, tau, perm, signum]</tt>.
|
189
|
-
#
|
190
|
-
# * Ex1:
|
191
|
-
# require("gsl")
|
192
|
-
# include GSL::Linalg
|
193
|
-
# m = Matrix.alloc(...)
|
194
|
-
# qr, tau, perm = QRPT.decomp(m)
|
195
|
-
# p qr.class # GSL::Linalg::QRPTMatrix, subclass of GSL::Matrix
|
196
|
-
#
|
197
|
-
# * Ex2:
|
198
|
-
# qr, tau, perm = m.QROT_decomp
|
199
|
-
#
|
200
|
-
# ---
|
201
|
-
# * GSL::Linalg::QRPT.decomp2(A)
|
202
|
-
# * GSL::Matrix#QRPT_decomp2
|
203
|
-
#
|
204
|
-
# These return an array <tt>[Q, R, tau, perm, signum]</tt>.
|
205
|
-
#
|
206
|
-
# * Ex
|
207
|
-
# q, r, tau, perm = QRPT.decomp2(m)
|
208
|
-
# p q.class <----- GSL::Linalg::QMatrix
|
209
|
-
# p r.class <----- GSL::Linalg::RMatrix
|
210
|
-
#
|
211
|
-
# ---
|
212
|
-
# * GSL::Linalg::QRPT.solve(m, b)
|
213
|
-
# * GSL::Linalg::QRPT.solve(qr, tau, perm, b)
|
214
|
-
# * GSL::Matrix#QRPT_solve(A, b)
|
215
|
-
# * GSL::Linalg::QRPQMatrix#solve(qr, tau, perm, b)
|
216
|
-
#
|
217
|
-
# These methods solve the system <tt>A x = b</tt> using the QRP^T decomposition of
|
218
|
-
# <tt>A</tt> into <tt>QR, tau, perm</tt>. The solution <tt>x</tt> is returned as a Vector.
|
219
|
-
#
|
220
|
-
# * Ex1:
|
221
|
-
# m = Matrix.alloc(...)
|
222
|
-
# qr, tau, perm = m.QRPT_decomp
|
223
|
-
# b = Vector.alloc([1, 2, 3, 4])
|
224
|
-
# x = Linalg::QRPT.solve(qr, tau, perm, b)
|
225
|
-
# * Ex2:
|
226
|
-
# x = Linalg::QRPT.solve(m, b)
|
227
|
-
# * Ex3:
|
228
|
-
# x = qr.solve(tau, p, b)
|
229
|
-
# * Ex4:
|
230
|
-
# x = m.QRPT_solve(b)
|
231
|
-
#
|
232
|
-
# ---
|
233
|
-
# * GSL::Linalg::QRPT.svx(m, b)
|
234
|
-
# * GSL::Linalg::QRPT.svx(qr, tau, perm, b)
|
235
|
-
# * GSL::Matrix#QRPT_svx(A, b)
|
236
|
-
#
|
237
|
-
# These methods solve the system <tt>A x = b</tt> using the QRP^T decomposition of
|
238
|
-
# <tt>A</tt> into <tt>QR, tau, perm</tt>. The input <tt>b</tt> is overwritten by the solution
|
239
|
-
# <tt>x</tt>.
|
240
|
-
#
|
241
|
-
# ---
|
242
|
-
# * GSL::Linalg::QRPT.QRsolve(q, r, tau, perm, b)
|
243
|
-
#
|
244
|
-
# This method solves the system <tt>R P^T x = Q^T b</tt> for x.
|
245
|
-
# It can be used when the QR decomposition of a matrix is available in
|
246
|
-
# unpacked form as <tt>q, r</tt> obtained by the method <tt>decomp2</tt>.
|
247
|
-
#
|
248
|
-
# * Ex:
|
249
|
-
# q, r, tau, perm = QRPT_decomp2
|
250
|
-
# x = Linalg::QRPT.QRsolve(q, r, perm, b)
|
251
|
-
#
|
252
|
-
# ---
|
253
|
-
# * GSL::Linalg::QRPT.update(q, r, perm, u, v)
|
254
|
-
# * GSL::Linalg::QRPT.Rsolve(qr, perm, b)
|
255
|
-
# * GSL::Linalg::QRPTMatrix#Rsolve(perm, b)
|
256
|
-
# * GSL::Linalg::QRPT.Rsvx(qr, perm, b)
|
257
|
-
# * GSL::Linalg::QRPTMatrix#Rsvx(perm, b)
|
258
|
-
#
|
259
|
-
#
|
260
|
-
# == Singular Value Decomposition
|
261
|
-
# ---
|
262
|
-
# * GSL::Linalg::SV.decomp(A[, work])
|
263
|
-
# * \GSL::Matrix#SV_decomp([work])
|
264
|
-
#
|
265
|
-
# These methods factorize the M-by-N matrix <tt>A</tt> into the singular value
|
266
|
-
# decomposition <tt>A = U S V^T</tt> using the Golub-Reinsch SVD algorithm,
|
267
|
-
# and return an array <tt>[U, V, S]</tt>.
|
268
|
-
#
|
269
|
-
# Ex:
|
270
|
-
# >> m = Matrix[[3, 5, 2], [5, 1, 4], [7, 6, 3]]
|
271
|
-
# => GSL::Matrix:
|
272
|
-
# [ 3.000e+00 5.000e+00 2.000e+00
|
273
|
-
# 5.000e+00 1.000e+00 4.000e+00
|
274
|
-
# 7.000e+00 6.000e+00 3.000e+00 ]
|
275
|
-
# >> u, v, s = m.SV_decomp # u, v: Matrix, s: Vector (singular values)
|
276
|
-
# >> u*u.trans # u is orthnormal
|
277
|
-
# => GSL::Matrix:
|
278
|
-
# [ 1.000e+00 2.452e-17 -4.083e-16
|
279
|
-
# 2.452e-17 1.000e+00 -3.245e-16
|
280
|
-
# -4.083e-16 -3.245e-16 1.000e+00 ]
|
281
|
-
# >> v*v.trans # v is also orthnormal
|
282
|
-
# => GSL::Matrix:
|
283
|
-
# [ 1.000e+00 3.555e-17 -1.867e-16
|
284
|
-
# 3.555e-17 1.000e+00 -1.403e-16
|
285
|
-
# -1.867e-16 -1.403e-16 1.000e+00 ]
|
286
|
-
# >> u*Matrix.diagonal(s)*v.trans # Reconstruct the matrix
|
287
|
-
# => GSL::Matrix:
|
288
|
-
# [ 3.000e+00 5.000e+00 2.000e+00
|
289
|
-
# 5.000e+00 1.000e+00 4.000e+00
|
290
|
-
# 7.000e+00 6.000e+00 3.000e+00 ]
|
291
|
-
#
|
292
|
-
# ---
|
293
|
-
# * GSL::Linalg::SV.decomp_mod(A)
|
294
|
-
# * GSL::Matrix#SV_decomp_mod
|
295
|
-
#
|
296
|
-
# These compute the SVD using the modified Golub-Reinsch algorithm,
|
297
|
-
# which is faster for M>>N.
|
298
|
-
#
|
299
|
-
# ---
|
300
|
-
# * GSL::Linalg::SV.decomp_jacobi(A)
|
301
|
-
# * GSL::Matrix#SV_decomp_jacobi
|
302
|
-
#
|
303
|
-
# These compute the SVD using one-sided Jacobi orthogonalization.
|
304
|
-
# The Jacobi method can compute singular values to higher relative accuracy
|
305
|
-
# than Golub-Reinsch algorithms.
|
306
|
-
#
|
307
|
-
# ---
|
308
|
-
# * GSL::Linalg::SV.solve(A, b)
|
309
|
-
# * GSL::Linalg::SV.solve(U, V, S, b)
|
310
|
-
# * GSL::Matrix#SV_solve(b)
|
311
|
-
#
|
312
|
-
# These methods solve the system <tt>A x = b</tt> using the singular value
|
313
|
-
# decomposition <tt>U, S, V</tt> of <tt>A</tt>.
|
314
|
-
#
|
315
|
-
# * Ex1:
|
316
|
-
# m = Matrix.alloc(...)
|
317
|
-
# b = Vector.alloc(...)
|
318
|
-
# u, v, s = GSL::Linalg::SV.decomp(m)
|
319
|
-
# x = GSL::Linalg::SV.solve(u, v, s, b)
|
320
|
-
# * Ex2:
|
321
|
-
# x = GSL::Linalg::SV.solve(m, b)
|
322
|
-
# * Ex3:
|
323
|
-
# x = m.SV_solve(b)
|
324
|
-
#
|
325
|
-
# == Cholesky Decomposition
|
326
|
-
# A symmetric, positive definite square matrix <tt>A</tt> has a Cholesky decomposition
|
327
|
-
# into a product of a lower triangular matrix L and its transpose L^T,
|
328
|
-
# as <tt>A = L L^T</tt>. This is sometimes referred to as taking the square-root of a
|
329
|
-
# matrix. The Cholesky decomposition can only be carried out when all the eigenvalues
|
330
|
-
# of the matrix are positive. This decomposition can be used to convert the linear
|
331
|
-
# system <tt>A x = b</tt> into a pair of triangular systems (<tt>L y = b, L^T x = y</tt>),
|
332
|
-
# which can be solved by forward and back-substitution.
|
333
|
-
#
|
334
|
-
# ---
|
335
|
-
# * GSL::Linalg::Cholesky.decomp(A)
|
336
|
-
#
|
337
|
-
# This method factorizes the positive-definite square matrix <tt>A</tt>
|
338
|
-
# into the Cholesky decomposition <tt>A = L L^T</tt>.
|
339
|
-
# The upper triangular part of the matrix returned contains L^T, the diagonal terms
|
340
|
-
# being identical for both L and L^T. If the matrix is not positive-definite
|
341
|
-
# then the decomposition will fail.
|
342
|
-
#
|
343
|
-
# Ex:
|
344
|
-
# >> m = Matrix.pascal(3)
|
345
|
-
# => GSL::Matrix
|
346
|
-
# [ 1.000e+00 1.000e+00 1.000e+00
|
347
|
-
# 1.000e+00 2.000e+00 3.000e+00
|
348
|
-
# 1.000e+00 3.000e+00 6.000e+00 ]
|
349
|
-
# >> c = Linalg::Cholesky.decomp(m)
|
350
|
-
# => GSL::Linalg::Cholesky::CholeskyMatrix
|
351
|
-
# [ 1.000e+00 1.000e+00 1.000e+00
|
352
|
-
# 1.000e+00 1.000e+00 2.000e+00
|
353
|
-
# 1.000e+00 2.000e+00 1.000e+00 ]
|
354
|
-
# >> l = c.lower
|
355
|
-
# => GSL::Matrix
|
356
|
-
# [ 1.000e+00 0.000e+00 0.000e+00
|
357
|
-
# 1.000e+00 1.000e+00 0.000e+00
|
358
|
-
# 1.000e+00 2.000e+00 1.000e+00 ]
|
359
|
-
# >> (l*l.trans) == m
|
360
|
-
# => true
|
361
|
-
#
|
362
|
-
# ---
|
363
|
-
# * GSL::Linalg::Cholesky.solve(cholesky, b)
|
364
|
-
# * GSL::Linalg::Cholesky.svx(cholesky, x)
|
365
|
-
#
|
366
|
-
# These methods solve the system <tt>A x = b</tt> using the Cholesky decomposition
|
367
|
-
# of <tt>A</tt> into the matrix <tt>cholesky</tt> given by <tt>GSL::Linalg::Cholesky.decomp</tt>.
|
368
|
-
#
|
369
|
-
# === {Complex Cholesky decomposition}[link:rdoc/cholesky_complex_rdoc.html]
|
370
|
-
#
|
371
|
-
# == Tridiagonal Decomposition of Real Symmetric Matrices
|
372
|
-
# ---
|
373
|
-
# * GSL::Linalg::Symmtd::decomp(A)
|
374
|
-
#
|
375
|
-
# Factorizes the symmetric square matrix <tt>A</tt> into the symmetric
|
376
|
-
# tridiagonal decomposition Q T Q^T, and returns the results
|
377
|
-
# <tt>(A', tau)</tt>. On output the diagonal and subdiagonal part of the
|
378
|
-
# matrix <tt>A'</tt> contain the tridiagonal matrix <tt>T</tt>.
|
379
|
-
# The remaining lower triangular part of the matrix <tt>A'</tt> contains
|
380
|
-
# the Householder vectors which, together with the Householder
|
381
|
-
# coefficients <tt>tau</tt>, encode the orthogonal matrix <tt>Q</tt>.
|
382
|
-
# This storage scheme is the same as used by LAPACK.
|
383
|
-
# The upper triangular part of <tt>A</tt> is not referenced.
|
384
|
-
# ---
|
385
|
-
# * GSL::Linalg::Symmtd::unpack(A', tau)
|
386
|
-
#
|
387
|
-
# Unpacks the encoded symmetric tridiagonal decomposition <tt>(A', tau)</tt>
|
388
|
-
# obtained from <tt>GSL::Linalg::Symmtd::decomp</tt> into the orthogonal
|
389
|
-
# matrix <tt>Q</tt>, the vector of diagonal elements <tt>diag</tt>
|
390
|
-
# and the vector of subdiagonal elements <tt>subdiag</tt>.
|
391
|
-
# ---
|
392
|
-
# * GSL::Linalg::Symmtd::unpack_T(A', tau)
|
393
|
-
#
|
394
|
-
# Unpacks the diagonal and subdiagonal of the encoded symmetric tridiagonal
|
395
|
-
# decomposition <tt>(A', tau)</tt> obtained from
|
396
|
-
# <tt>GSL::Linalg::Symmtd::decomp</tt> into the vectors
|
397
|
-
# <tt>diag</tt> and <tt>subdiag</tt>.
|
398
|
-
#
|
399
|
-
# == Tridiagonal Decomposition of Hermitian Matrices
|
400
|
-
# ---
|
401
|
-
# * GSL::Linalg::Hermtd::decomp(A)
|
402
|
-
#
|
403
|
-
# Factorizes the hermitian matrix <tt>A</tt> into the symmetric tridiagonal
|
404
|
-
# decomposition U T U^T, and returns the result as <tt>(A', tau)</tt>.
|
405
|
-
# On output the real parts of the diagonal and subdiagonal part of the
|
406
|
-
# matrix <tt>A'</tt> contain the tridiagonal matrix <tt>T</tt>.
|
407
|
-
# The remaining lower triangular part of the matrix <tt>A'</tt> contains
|
408
|
-
# the Householder vectors which, together with the Householder
|
409
|
-
# coefficients <tt>tau</tt>, encode the orthogonal matrix <tt>Q</tt>.
|
410
|
-
# This storage scheme is the same as used by LAPACK.
|
411
|
-
# The upper triangular part of <tt>A</tt> and imaginary parts of the diagonal
|
412
|
-
# are not referenced.
|
413
|
-
#
|
414
|
-
# ---
|
415
|
-
# * GSL::Linalg::Hermtd::unpack(A', tau)
|
416
|
-
#
|
417
|
-
# Unpacks the encoded tridiagonal decomposition <tt>(A', tau)</tt>
|
418
|
-
# obtained from <tt>GSL::Linalg::Hermtd::decomp</tt> into the unitary matrix
|
419
|
-
# <tt>U</tt>, the real vector of diagonal elements <tt>diag</tt> and
|
420
|
-
# the real vector of subdiagonal elements <tt>subdiag</tt>.
|
421
|
-
#
|
422
|
-
# ---
|
423
|
-
# * GSL::Linalg::Hermtd::unpack_T(A', tau)
|
424
|
-
#
|
425
|
-
# Unpacks the diagonal and subdiagonal of the encoded tridiagonal
|
426
|
-
# decomposition <tt>(A, tau)</tt> obtained from the
|
427
|
-
# <tt>GSL::Linalg::Hermtd::decomp</tt>
|
428
|
-
# into the real vectors <tt>diag</tt> and <tt>subdiag</tt>.
|
429
|
-
#
|
430
|
-
# == Hessenberg Decomposition of Real Matrices
|
431
|
-
# ---
|
432
|
-
# * GSL::Linalg::Hessenberg::decomp(A)
|
433
|
-
# * GSL::Linalg::hessenberg_decomp(A)
|
434
|
-
#
|
435
|
-
# Computes the Hessenberg decomposition of the matrix <tt>A</tt>
|
436
|
-
# by applying the similarity transformation <tt>H = U^T A U</tt>, and returns
|
437
|
-
# the result as <tt>(A', tau</tt>. On output, <tt>H</tt> is stored in the upper
|
438
|
-
# portion of <tt>A'</tt>. The information required to construct the matrix
|
439
|
-
# <tt>U</tt> is stored in the lower triangular portion of <tt>A'</tt>.
|
440
|
-
# <tt>U</tt> is a product of N - 2 Householder matrices.
|
441
|
-
# The Householder vectors are stored in the lower portion of <tt>A'</tt>
|
442
|
-
# (below the subdiagonal) and the Householder coefficients are stored
|
443
|
-
# in the vector <tt>tau</tt>.
|
444
|
-
#
|
445
|
-
# ---
|
446
|
-
# * GSL::Linalg::Hessenberg::unpack(A', tau)
|
447
|
-
# * GSL::Linalg::hessenberg_unpack(A', tau)
|
448
|
-
#
|
449
|
-
# Constructs the orthogonal matrix <tt>U</tt> and returns it
|
450
|
-
# from the information stored in the Hessenberg matrix <tt>A'</tt>
|
451
|
-
# along with the vector <tt>tau</tt>. <tt>A'</tt> and <tt>tau</tt>
|
452
|
-
# are outputs from <tt>GSL::Linalg::Hessenberg::decomp</tt>.
|
453
|
-
#
|
454
|
-
# ---
|
455
|
-
# * GSL::Linalg::Hessenberg::unpack_accum(A', tau, V = I)
|
456
|
-
# * GSL::Linalg::hessenberg_unpack_accum(A', tau, V = I)
|
457
|
-
#
|
458
|
-
# This method is similar to <tt>GSL::Linalg::Hessenberg::unpack</tt>,
|
459
|
-
# except it accumulates the matrix <tt>U</tt> into <tt>V</tt>, so that
|
460
|
-
# <tt>V' = VU</tt>, and returns <tt>V</tt>. Setting V to the identity matrix
|
461
|
-
# provides the same result <tt>GSL::Linalg::Hessenberg::unpack</tt>.
|
462
|
-
#
|
463
|
-
# ---
|
464
|
-
# * GSL::Linalg::Hessenberg::set_zero(A')
|
465
|
-
# * GSL::Linalg::hessenberg_set_zero(A')
|
466
|
-
#
|
467
|
-
# Sets the lower triangular portion of <tt>A'</tt>, below the subdiagonal,
|
468
|
-
# to zero.
|
469
|
-
# It is useful for clearing out the Householder vectors after calling
|
470
|
-
# <tt>GSL::Linalg::Hessenberg::decomp</tt>.
|
471
|
-
#
|
472
|
-
# == Hessenberg-Triangular Decomposition of Real Matrices
|
473
|
-
# ---
|
474
|
-
# * GSL::Linalg::hesstri_decomp(A, B)
|
475
|
-
# * GSL::Linalg::hesstri_decomp(A, B, work)
|
476
|
-
# * GSL::Linalg::hesstri_decomp(A, B, U, V)
|
477
|
-
# * GSL::Linalg::hesstri_decomp(A, B, U, V, work)
|
478
|
-
#
|
479
|
-
# Compute the Hessenberg-Triangular decomposition of the matrix pair
|
480
|
-
# <tt>(A, B)</tt>, and return <tt>(H, R</tt>.
|
481
|
-
# If U and V are provided (they may be null), the similarity
|
482
|
-
# transformations are stored in them. <tt>work</tt> is an additional workspace
|
483
|
-
# of length <tt>N</tt>.
|
484
|
-
#
|
485
|
-
# ---
|
486
|
-
# * GSL::Linalg::hesstri_decomp!(A, B)
|
487
|
-
# * GSL::Linalg::hesstri_decomp!(A, B, work)
|
488
|
-
# * GSL::Linalg::hesstri_decomp!(A, B, U, V)
|
489
|
-
# * GSL::Linalg::hesstri_decomp!(A, B, U, V, work)
|
490
|
-
#
|
491
|
-
# Compute the Hessenberg-Triangular decomposition of the matrix pair
|
492
|
-
# <tt>(A, B)</tt>. On output, <tt>H</tt> is stored in <tt>A</tt>,
|
493
|
-
# and <tt>R</tt> is stored in <tt>B</tt>.
|
494
|
-
# If U and V are provided (they may be null), the similarity
|
495
|
-
# transformations are stored in them. <tt>work</tt> is an additional workspace
|
496
|
-
# of length <tt>N</tt>.
|
497
|
-
#
|
498
|
-
# == Bidiagonalization
|
499
|
-
# ---
|
500
|
-
# * GSL::Linalg::Bidiag::decomp!(A)
|
501
|
-
# * GSL::Linalg::bidiag_decomp!(A)
|
502
|
-
# * GSL::Linalg::Bidiag::decomp(A)
|
503
|
-
# * GSL::Linalg::bidiag_decomp(A)
|
504
|
-
#
|
505
|
-
#
|
506
|
-
# ---
|
507
|
-
# * GSL::Linalg::Bidiag::unpack
|
508
|
-
# * GSL::Linalg::bidiag_unpack
|
509
|
-
# * GSL::Linalg::Bidiag::unpack2
|
510
|
-
# * GSL::Linalg::bidiag_unpack2
|
511
|
-
# * GSL::Linalg::Bidiag::unpack_B
|
512
|
-
# * GSL::Linalg::bidiag_unpack_B
|
513
|
-
#
|
514
|
-
#
|
515
|
-
# == Householder Transformations
|
516
|
-
# ---
|
517
|
-
# * GSL::Linalg::Householder::transform(v)
|
518
|
-
# * GSL::Linalg::HH::transform(v)
|
519
|
-
# * GSL::Vector#householder_transform
|
520
|
-
#
|
521
|
-
# These methods prepare a Householder transformation P = I - tau v v^T
|
522
|
-
# which can be used to zero all the elements of the input vector except the first.
|
523
|
-
# On output the transformation is stored in the vector <tt>v</tt>
|
524
|
-
# and the scalar tau is returned.
|
525
|
-
#
|
526
|
-
# ---
|
527
|
-
# * GSL::Linalg::Householder::hm(tau, v, A)
|
528
|
-
# * GSL::Linalg::HH::hm(tau, v, A)
|
529
|
-
#
|
530
|
-
# These methods apply the Householder matrix P defined by the scalar
|
531
|
-
# <tt>tau</tt> and the vector <tt>v</tt> to the left-hand side of the matrix <tt>A</tt>.
|
532
|
-
# On output the result P A is stored in <tt>A</tt>.
|
533
|
-
#
|
534
|
-
# ---
|
535
|
-
# * GSL::Linalg::Householder::mh(tau, v, A)
|
536
|
-
# * GSL::Linalg::HH::mh(tau, v, A)
|
537
|
-
#
|
538
|
-
# These methods apply the Householder matrix P defined by the scalar <tt>tau</tt>
|
539
|
-
# and the vector <tt>v</tt> to the right-hand side of the matrix <tt>A</tt>.
|
540
|
-
# On output the result A P is stored in <tt>A</tt>.
|
541
|
-
#
|
542
|
-
# ---
|
543
|
-
# * GSL::Linalg::Householder::hv(tau, v, w)
|
544
|
-
# * GSL::Linalg::HH::hv(tau, v, w)
|
545
|
-
#
|
546
|
-
# These methods apply the Householder transformation P defined by the scalar
|
547
|
-
# <tt>tau</tt> and the vector <tt>v</tt> to the vector <tt>w</tt>.
|
548
|
-
# On output the result P w is stored in <tt>w</tt>.
|
549
|
-
#
|
550
|
-
# == Householder solver for linear systems
|
551
|
-
# ---
|
552
|
-
# * GSL::Linalg::HH.solve(A, b)
|
553
|
-
# * GSL::Matrix#HH_solve(b)
|
554
|
-
#
|
555
|
-
# These methods solve the system <tt>A x = b</tt> directly using Householder
|
556
|
-
# transformations. The matrix <tt>A</tt> is not modified.
|
557
|
-
# ---
|
558
|
-
# * GSL::Linalg::HH.solve!(A, b)
|
559
|
-
# * GSL::Matrix#HH_solve!(b)
|
560
|
-
#
|
561
|
-
# These methods solve the system <tt>A x = b</tt> directly using Householder
|
562
|
-
# transformations. The matrix <tt>A</tt> is destroyed by the
|
563
|
-
# Householder transformations.
|
564
|
-
#
|
565
|
-
# ---
|
566
|
-
# * GSL::Linalg::HH.svx(A, b)
|
567
|
-
# * GSL::Matrix#HH_svx(b)
|
568
|
-
#
|
569
|
-
# These methods solve the system <tt>A x = b</tt> in-place directly using Householder
|
570
|
-
# transformations. The input vector <tt>b</tt> is replaced by the solution.
|
571
|
-
#
|
572
|
-
# == Tridiagonal Systems
|
573
|
-
# ---
|
574
|
-
# * GSL::Linglg::solve_tridiag(diag, e, f, b)
|
575
|
-
# * GSL::Linglg::Tridiag::solve(diag, e, f, b)
|
576
|
-
#
|
577
|
-
# These methods solve the general N-by-N system A x = b where <tt>A</tt>
|
578
|
-
# is tridiagonal ( N >= 2). The super-diagonal and sub-diagonal vectors <tt>e</tt>
|
579
|
-
# and <tt>f</tt> must be one element shorter than the diagonal vector <tt>diag</tt>.
|
580
|
-
# The form of <tt>A</tt> for the 4-by-4 case is shown below,
|
581
|
-
# A = ( d_0 e_0 0 0 )
|
582
|
-
# ( f_0 d_1 e_1 0 )
|
583
|
-
# ( 0 f_1 d_2 e_2 )
|
584
|
-
# ( 0 0 f_2 d_3 )
|
585
|
-
#
|
586
|
-
# ---
|
587
|
-
# * GSL::Linglg::solve_symm_tridiag(diag, e, b)
|
588
|
-
# * GSL::Linglg::Tridiag::solve_symm(diag, e, b)
|
589
|
-
#
|
590
|
-
# These methods solve the general N-by-N system A x = b where <tt>A</tt> is
|
591
|
-
# symmetric tridiagonal ( N >= 2). The off-diagonal vector <tt>e</tt> must
|
592
|
-
# be one element shorter than the diagonal vector <tt>diag</tt>.
|
593
|
-
# The form of <tt>A</tt> for the 4-by-4 case is shown below,
|
594
|
-
# A = ( d_0 e_0 0 0 )
|
595
|
-
# ( e_0 d_1 e_1 0 )
|
596
|
-
# ( 0 e_1 d_2 e_2 )
|
597
|
-
# ( 0 0 e_2 d_3 )
|
598
|
-
#
|
599
|
-
# ---
|
600
|
-
# * GSL::Linglg::solve_cyc_tridiag(diag, e, f, b)
|
601
|
-
# * GSL::Linglg::Tridiag::solve_cyc(diag, e, f, b)
|
602
|
-
#
|
603
|
-
# These methods solve the general N-by-N system A x = b where <tt>A</tt> is
|
604
|
-
# cyclic tridiagonal ( N >= 3). The cyclic super-diagonal and sub-diagonal
|
605
|
-
# vectors <tt>e</tt> and <tt>f</tt> must have the same number of elements as the
|
606
|
-
# diagonal vector <tt>diag</tt>. The form of <tt>A</tt> for the 4-by-4 case is shown below,
|
607
|
-
# A = ( d_0 e_0 0 f_3 )
|
608
|
-
# ( f_0 d_1 e_1 0 )
|
609
|
-
# ( 0 f_1 d_2 e_2 )
|
610
|
-
# ( e_3 0 f_2 d_3 )
|
611
|
-
#
|
612
|
-
# ---
|
613
|
-
# * GSL::Linglg::solve_symm_cyc_tridiag(diag, e, b)
|
614
|
-
# * GSL::Linglg::Tridiag::solve_symm_cyc(diag, e, b)
|
615
|
-
#
|
616
|
-
# These methods solve the general N-by-N system A x = b where <tt>A</tt>
|
617
|
-
# is symmetric cyclic tridiagonal ( N >= 3). The cyclic off-diagonal vector <tt>e</tt>
|
618
|
-
# must have the same number of elements as the diagonal vector <tt>diag</tt>.
|
619
|
-
# The form of <tt>A</tt> for the 4-by-4 case is shown below,
|
620
|
-
# A = ( d_0 e_0 0 e_3 )
|
621
|
-
# ( e_0 d_1 e_1 0 )
|
622
|
-
# ( 0 e_1 d_2 e_2 )
|
623
|
-
# ( e_3 0 e_2 d_3 )
|
624
|
-
#
|
625
|
-
# == Balancing
|
626
|
-
# The process of balancing a matrix applies similarity transformations to
|
627
|
-
# make the rows and columns have comparable norms. This is useful,
|
628
|
-
# for example, to reduce roundoff errors in the solution of eigenvalue problems.
|
629
|
-
# Balancing a matrix <tt>A</tt> consists of replacing <tt>A</tt> with a similar matrix
|
630
|
-
# where <tt>D</tt> is a diagonal matrix whose entries are powers of the floating
|
631
|
-
# point radix.
|
632
|
-
#
|
633
|
-
# ---
|
634
|
-
# * GSL::Linalg::balance(A)
|
635
|
-
# * GSL::Linalg::balance(A, D)
|
636
|
-
#
|
637
|
-
# Calculates the balanced counterpart of <tt>A</tt> and the diagonal elements
|
638
|
-
# of the similarity transformation. The result is returned as <tt>(A', D)</tt>.
|
639
|
-
#
|
640
|
-
# ---
|
641
|
-
# * GSL::Linalg::balance!(A)
|
642
|
-
# * GSL::Linalg::balance!(A, D)
|
643
|
-
#
|
644
|
-
# Replaces the matrix <tt>A</tt> with its balanced counterpart and
|
645
|
-
# stores the diagonal elements of the similarity transformation into
|
646
|
-
# the vector <tt>D</tt>.
|
647
|
-
#
|
648
|
-
#
|
649
|
-
# == NArray
|
650
|
-
# The following Linalg methods can handle NArray objects:
|
651
|
-
# * GSL::Linalg::
|
652
|
-
# * LU::
|
653
|
-
# * LU.decomp(m)
|
654
|
-
# * LU.solve(lu, b)
|
655
|
-
# * LU.svx(lu, bx)
|
656
|
-
# * LU.det(lu, sign)
|
657
|
-
# * LU.lndet(lu)
|
658
|
-
# * LU.invert(lu, perm)
|
659
|
-
# * QR::
|
660
|
-
# * QR.decomp(m)
|
661
|
-
# * QR.solve(qr, tau, b)
|
662
|
-
# * QR.svx(qr, tau, bx)
|
663
|
-
# * SV::
|
664
|
-
# * SV.decomp(m)
|
665
|
-
# * SV.solve(u, v, s, b)
|
666
|
-
# * SV.svx(u, v, s, bx)
|
667
|
-
# * Cholesky::
|
668
|
-
# * Cholesky.decomp(m)
|
669
|
-
# * Cholesky.solve(u, v, s, b)
|
670
|
-
# * Cholesky.svx(u, v, s, bx)
|
671
|
-
# * HH::
|
672
|
-
# * HH.solve(m, b)
|
673
|
-
# * HH.svx(m, bx)
|
674
|
-
#
|
675
|
-
# {prev}[link:rdoc/blas_rdoc.html]
|
676
|
-
# {next}[link:rdoc/eigen_rdoc.html]
|
677
|
-
#
|
678
|
-
# {Reference index}[link:rdoc/ref_rdoc.html]
|
679
|
-
# {top}[link:index.html]
|
680
|
-
#
|
681
|
-
#
|