gsl 1.12.109 → 1.14.5
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS +6 -0
- data/COPYING +339 -0
- data/ChangeLog +556 -0
- data/{README.rdoc → README} +3 -0
- data/Rakefile +54 -10
- data/THANKS +17 -0
- data/VERSION +1 -2
- data/examples/alf/alf.gp +15 -0
- data/examples/alf/alf.rb +32 -0
- data/examples/blas/blas.rb +13 -0
- data/examples/blas/dnrm2.rb +16 -0
- data/examples/blas/level1.rb +81 -0
- data/examples/blas/level2.rb +11 -0
- data/examples/blas/level3.rb +12 -0
- data/examples/bspline.rb +57 -0
- data/examples/cdf.rb +16 -0
- data/examples/cheb.rb +21 -0
- data/examples/combination.rb +23 -0
- data/examples/complex/RC-lpf.rb +47 -0
- data/examples/complex/add.rb +36 -0
- data/examples/complex/coerce.rb +14 -0
- data/examples/complex/complex.rb +25 -0
- data/examples/complex/fpmi.rb +70 -0
- data/examples/complex/functions.rb +77 -0
- data/examples/complex/michelson.rb +36 -0
- data/examples/complex/mul.rb +28 -0
- data/examples/complex/oscillator.rb +17 -0
- data/examples/complex/set.rb +37 -0
- data/examples/const/physconst.rb +151 -0
- data/examples/const/travel.rb +45 -0
- data/examples/deriv/demo.rb +13 -0
- data/examples/deriv/deriv.rb +36 -0
- data/examples/deriv/diff.rb +35 -0
- data/examples/dht.rb +42 -0
- data/examples/dirac.rb +56 -0
- data/examples/eigen/eigen.rb +34 -0
- data/examples/eigen/herm.rb +22 -0
- data/examples/eigen/narray.rb +9 -0
- data/examples/eigen/nonsymm.rb +37 -0
- data/examples/eigen/nonsymmv.rb +43 -0
- data/examples/eigen/qhoscillator.gp +35 -0
- data/examples/eigen/qhoscillator.rb +90 -0
- data/examples/eigen/vander.rb +41 -0
- data/examples/fft/fft.rb +17 -0
- data/examples/fft/fft2.rb +17 -0
- data/examples/fft/forward.rb +25 -0
- data/examples/fft/forward2.rb +26 -0
- data/examples/fft/radix2.rb +18 -0
- data/examples/fft/real-halfcomplex.rb +33 -0
- data/examples/fft/real-halfcomplex2.rb +30 -0
- data/examples/fft/realradix2.rb +19 -0
- data/examples/fft/sunspot.dat +256 -0
- data/examples/fft/sunspot.rb +16 -0
- data/examples/fit/expdata.dat +20 -0
- data/examples/fit/expfit.rb +31 -0
- data/examples/fit/gaussfit.rb +29 -0
- data/examples/fit/gaussian_2peaks.rb +34 -0
- data/examples/fit/hillfit.rb +40 -0
- data/examples/fit/lognormal.rb +26 -0
- data/examples/fit/lorentzfit.rb +22 -0
- data/examples/fit/multifit.rb +72 -0
- data/examples/fit/ndlinear.rb +133 -0
- data/examples/fit/nonlinearfit.rb +89 -0
- data/examples/fit/plot.gp +36 -0
- data/examples/fit/polyfit.rb +9 -0
- data/examples/fit/powerfit.rb +21 -0
- data/examples/fit/sigmoidfit.rb +40 -0
- data/examples/fit/sinfit.rb +22 -0
- data/examples/fit/wlinear.rb +46 -0
- data/examples/fresnel.rb +11 -0
- data/examples/function/function.rb +36 -0
- data/examples/function/log.rb +7 -0
- data/examples/function/min.rb +33 -0
- data/examples/function/sin.rb +10 -0
- data/examples/function/synchrotron.rb +18 -0
- data/examples/gallery/butterfly.rb +7 -0
- data/examples/gallery/cayley.rb +12 -0
- data/examples/gallery/cornu.rb +23 -0
- data/examples/gallery/eight.rb +11 -0
- data/examples/gallery/koch.rb +40 -0
- data/examples/gallery/lemniscate.rb +11 -0
- data/examples/gallery/polar.rb +11 -0
- data/examples/gallery/rgplot/cossin.rb +35 -0
- data/examples/gallery/rgplot/rgplot.replaced +0 -0
- data/examples/gallery/rgplot/roesller.rb +55 -0
- data/examples/gallery/roesller.rb +39 -0
- data/examples/gallery/scarabaeus.rb +14 -0
- data/examples/histogram/cauchy.rb +27 -0
- data/examples/histogram/cauchy.sh +2 -0
- data/examples/histogram/exponential.rb +19 -0
- data/examples/histogram/gauss.rb +16 -0
- data/examples/histogram/gsl-histogram.rb +40 -0
- data/examples/histogram/histo2d.rb +31 -0
- data/examples/histogram/histo3d.rb +34 -0
- data/examples/histogram/histogram-pdf.rb +27 -0
- data/examples/histogram/histogram.rb +26 -0
- data/examples/histogram/integral.rb +28 -0
- data/examples/histogram/poisson.rb +27 -0
- data/examples/histogram/power.rb +25 -0
- data/examples/histogram/rebin.rb +17 -0
- data/examples/histogram/smp.dat +5 -0
- data/examples/histogram/xexp.rb +21 -0
- data/examples/integration/ahmed.rb +21 -0
- data/examples/integration/cosmology.rb +75 -0
- data/examples/integration/friedmann.gp +16 -0
- data/examples/integration/friedmann.rb +35 -0
- data/examples/integration/gamma-zeta.rb +35 -0
- data/examples/integration/integration.rb +22 -0
- data/examples/integration/qag.rb +8 -0
- data/examples/integration/qag2.rb +14 -0
- data/examples/integration/qag3.rb +8 -0
- data/examples/integration/qagi.rb +28 -0
- data/examples/integration/qagi2.rb +49 -0
- data/examples/integration/qagiu.rb +29 -0
- data/examples/integration/qagp.rb +20 -0
- data/examples/integration/qags.rb +14 -0
- data/examples/integration/qawc.rb +18 -0
- data/examples/integration/qawf.rb +41 -0
- data/examples/integration/qawo.rb +29 -0
- data/examples/integration/qaws.rb +30 -0
- data/examples/integration/qng.rb +17 -0
- data/examples/interp/demo.gp +20 -0
- data/examples/interp/demo.rb +45 -0
- data/examples/interp/interp.rb +37 -0
- data/examples/interp/points +10 -0
- data/examples/interp/spline.rb +20 -0
- data/examples/jacobi/deriv.rb +40 -0
- data/examples/jacobi/integrate.rb +34 -0
- data/examples/jacobi/interp.rb +43 -0
- data/examples/jacobi/jacobi.rb +11 -0
- data/examples/linalg/HH.rb +15 -0
- data/examples/linalg/HH_narray.rb +13 -0
- data/examples/linalg/LQ_solve.rb +73 -0
- data/examples/linalg/LU.rb +84 -0
- data/examples/linalg/LU2.rb +31 -0
- data/examples/linalg/LU_narray.rb +24 -0
- data/examples/linalg/PTLQ.rb +47 -0
- data/examples/linalg/QR.rb +18 -0
- data/examples/linalg/QRPT.rb +47 -0
- data/examples/linalg/QR_solve.rb +78 -0
- data/examples/linalg/QR_solve_narray.rb +13 -0
- data/examples/linalg/SV.rb +16 -0
- data/examples/linalg/SV_narray.rb +12 -0
- data/examples/linalg/SV_solve.rb +49 -0
- data/examples/linalg/chol.rb +29 -0
- data/examples/linalg/chol_narray.rb +15 -0
- data/examples/linalg/complex.rb +57 -0
- data/examples/linalg/invert_narray.rb +10 -0
- data/examples/math/const.rb +67 -0
- data/examples/math/elementary.rb +35 -0
- data/examples/math/functions.rb +41 -0
- data/examples/math/inf_nan.rb +34 -0
- data/examples/math/minmax.rb +22 -0
- data/examples/math/power.rb +18 -0
- data/examples/math/test.rb +31 -0
- data/examples/matrix/a.dat +0 -0
- data/examples/matrix/add.rb +45 -0
- data/examples/matrix/b.dat +4 -0
- data/examples/matrix/cat.rb +31 -0
- data/examples/matrix/colvectors.rb +24 -0
- data/examples/matrix/complex.rb +41 -0
- data/examples/matrix/det.rb +29 -0
- data/examples/matrix/diagonal.rb +23 -0
- data/examples/matrix/get_all.rb +159 -0
- data/examples/matrix/hilbert.rb +31 -0
- data/examples/matrix/iterator.rb +19 -0
- data/examples/matrix/matrix.rb +57 -0
- data/examples/matrix/minmax.rb +53 -0
- data/examples/matrix/mul.rb +39 -0
- data/examples/matrix/rand.rb +20 -0
- data/examples/matrix/read.rb +29 -0
- data/examples/matrix/rowcol.rb +47 -0
- data/examples/matrix/set.rb +41 -0
- data/examples/matrix/set_all.rb +100 -0
- data/examples/matrix/view.rb +32 -0
- data/examples/matrix/view_all.rb +148 -0
- data/examples/matrix/write.rb +23 -0
- data/examples/min.rb +29 -0
- data/examples/monte/miser.rb +47 -0
- data/examples/monte/monte.rb +47 -0
- data/examples/monte/plain.rb +47 -0
- data/examples/monte/vegas.rb +46 -0
- data/examples/multimin/bundle.rb +66 -0
- data/examples/multimin/cqp.rb +109 -0
- data/examples/multimin/fdfminimizer.rb +40 -0
- data/examples/multimin/fminimizer.rb +41 -0
- data/examples/multiroot/demo.rb +36 -0
- data/examples/multiroot/fdfsolver.rb +50 -0
- data/examples/multiroot/fsolver.rb +33 -0
- data/examples/multiroot/fsolver2.rb +32 -0
- data/examples/multiroot/fsolver3.rb +26 -0
- data/examples/narray/histogram.rb +14 -0
- data/examples/narray/mandel.rb +27 -0
- data/examples/narray/narray.rb +28 -0
- data/examples/narray/narray2.rb +44 -0
- data/examples/narray/sf.rb +26 -0
- data/examples/ntuple/create.rb +17 -0
- data/examples/ntuple/project.rb +31 -0
- data/examples/odeiv/binarysystem.gp +23 -0
- data/examples/odeiv/binarysystem.rb +104 -0
- data/examples/odeiv/demo.gp +24 -0
- data/examples/odeiv/demo.rb +69 -0
- data/examples/odeiv/demo2.gp +26 -0
- data/examples/odeiv/duffing.rb +45 -0
- data/examples/odeiv/frei1.rb +109 -0
- data/examples/odeiv/frei2.rb +76 -0
- data/examples/odeiv/legendre.rb +52 -0
- data/examples/odeiv/odeiv.rb +32 -0
- data/examples/odeiv/odeiv2.rb +45 -0
- data/examples/odeiv/oscillator.rb +42 -0
- data/examples/odeiv/sedov.rb +97 -0
- data/examples/odeiv/whitedwarf.gp +40 -0
- data/examples/odeiv/whitedwarf.rb +158 -0
- data/examples/ool/conmin.rb +100 -0
- data/examples/ool/gencan.rb +99 -0
- data/examples/ool/pgrad.rb +100 -0
- data/examples/ool/spg.rb +100 -0
- data/examples/pdf/bernoulli.rb +5 -0
- data/examples/pdf/beta.rb +7 -0
- data/examples/pdf/binomiral.rb +10 -0
- data/examples/pdf/cauchy.rb +6 -0
- data/examples/pdf/chisq.rb +8 -0
- data/examples/pdf/exponential.rb +7 -0
- data/examples/pdf/exppow.rb +6 -0
- data/examples/pdf/fdist.rb +7 -0
- data/examples/pdf/flat.rb +7 -0
- data/examples/pdf/gamma.rb +8 -0
- data/examples/pdf/gauss-tail.rb +5 -0
- data/examples/pdf/gauss.rb +6 -0
- data/examples/pdf/geometric.rb +5 -0
- data/examples/pdf/gumbel.rb +6 -0
- data/examples/pdf/hypergeometric.rb +11 -0
- data/examples/pdf/landau.rb +5 -0
- data/examples/pdf/laplace.rb +7 -0
- data/examples/pdf/logarithmic.rb +5 -0
- data/examples/pdf/logistic.rb +6 -0
- data/examples/pdf/lognormal.rb +6 -0
- data/examples/pdf/neg-binomiral.rb +10 -0
- data/examples/pdf/pareto.rb +7 -0
- data/examples/pdf/pascal.rb +10 -0
- data/examples/pdf/poisson.rb +5 -0
- data/examples/pdf/rayleigh-tail.rb +6 -0
- data/examples/pdf/rayleigh.rb +6 -0
- data/examples/pdf/tdist.rb +6 -0
- data/examples/pdf/weibull.rb +8 -0
- data/examples/permutation/ex1.rb +22 -0
- data/examples/permutation/permutation.rb +16 -0
- data/examples/poly/bell.rb +6 -0
- data/examples/poly/bessel.rb +6 -0
- data/examples/poly/cheb.rb +6 -0
- data/examples/poly/cheb_II.rb +6 -0
- data/examples/poly/cubic.rb +9 -0
- data/examples/poly/demo.rb +20 -0
- data/examples/poly/eval.rb +28 -0
- data/examples/poly/eval_derivs.rb +14 -0
- data/examples/poly/fit.rb +21 -0
- data/examples/poly/hermite.rb +6 -0
- data/examples/poly/poly.rb +13 -0
- data/examples/poly/quadratic.rb +25 -0
- data/examples/random/diffusion.rb +34 -0
- data/examples/random/gaussian.rb +9 -0
- data/examples/random/generator.rb +27 -0
- data/examples/random/hdsobol.rb +21 -0
- data/examples/random/poisson.rb +9 -0
- data/examples/random/qrng.rb +19 -0
- data/examples/random/randomwalk.rb +37 -0
- data/examples/random/randomwalk2d.rb +19 -0
- data/examples/random/rayleigh.rb +36 -0
- data/examples/random/rng.rb +33 -0
- data/examples/random/rngextra.rb +14 -0
- data/examples/roots/bisection.rb +25 -0
- data/examples/roots/brent.rb +43 -0
- data/examples/roots/demo.rb +30 -0
- data/examples/roots/newton.rb +46 -0
- data/examples/roots/recombination.gp +12 -0
- data/examples/roots/recombination.rb +61 -0
- data/examples/roots/steffenson.rb +48 -0
- data/examples/sf/ShiChi.rb +6 -0
- data/examples/sf/SiCi.rb +6 -0
- data/examples/sf/airy_Ai.rb +8 -0
- data/examples/sf/airy_Bi.rb +8 -0
- data/examples/sf/bessel_IK.rb +12 -0
- data/examples/sf/bessel_JY.rb +13 -0
- data/examples/sf/beta_inc.rb +9 -0
- data/examples/sf/clausen.rb +6 -0
- data/examples/sf/dawson.rb +5 -0
- data/examples/sf/debye.rb +9 -0
- data/examples/sf/dilog.rb +6 -0
- data/examples/sf/ellint.rb +6 -0
- data/examples/sf/expint.rb +8 -0
- data/examples/sf/fermi.rb +10 -0
- data/examples/sf/gamma_inc_P.rb +9 -0
- data/examples/sf/gegenbauer.rb +8 -0
- data/examples/sf/hyperg.rb +7 -0
- data/examples/sf/laguerre.rb +19 -0
- data/examples/sf/lambertW.rb +5 -0
- data/examples/sf/legendre_P.rb +10 -0
- data/examples/sf/lngamma.rb +5 -0
- data/examples/sf/psi.rb +54 -0
- data/examples/sf/sphbessel.gp +27 -0
- data/examples/sf/sphbessel.rb +30 -0
- data/examples/sf/synchrotron.rb +5 -0
- data/examples/sf/transport.rb +10 -0
- data/examples/sf/zetam1.rb +5 -0
- data/examples/siman.rb +44 -0
- data/examples/sort/heapsort.rb +23 -0
- data/examples/sort/heapsort_vector_complex.rb +21 -0
- data/examples/sort/sort.rb +23 -0
- data/examples/sort/sort2.rb +16 -0
- data/examples/stats/mean.rb +17 -0
- data/examples/stats/statistics.rb +18 -0
- data/examples/stats/test.rb +9 -0
- data/examples/sum.rb +34 -0
- data/examples/tamu_anova.rb +18 -0
- data/examples/vector/a.dat +0 -0
- data/examples/vector/add.rb +56 -0
- data/examples/vector/b.dat +4 -0
- data/examples/vector/c.dat +3 -0
- data/examples/vector/collect.rb +26 -0
- data/examples/vector/compare.rb +28 -0
- data/examples/vector/complex.rb +51 -0
- data/examples/vector/complex_get_all.rb +85 -0
- data/examples/vector/complex_set_all.rb +131 -0
- data/examples/vector/complex_view_all.rb +77 -0
- data/examples/vector/connect.rb +22 -0
- data/examples/vector/decimate.rb +38 -0
- data/examples/vector/diff.rb +31 -0
- data/examples/vector/filescan.rb +17 -0
- data/examples/vector/floor.rb +23 -0
- data/examples/vector/get_all.rb +82 -0
- data/examples/vector/gnuplot.rb +38 -0
- data/examples/vector/graph.rb +28 -0
- data/examples/vector/histogram.rb +22 -0
- data/examples/vector/linspace.rb +24 -0
- data/examples/vector/log.rb +17 -0
- data/examples/vector/logic.rb +33 -0
- data/examples/vector/logspace.rb +25 -0
- data/examples/vector/minmax.rb +47 -0
- data/examples/vector/mul.rb +49 -0
- data/examples/vector/narray.rb +46 -0
- data/examples/vector/read.rb +29 -0
- data/examples/vector/set.rb +35 -0
- data/examples/vector/set_all.rb +121 -0
- data/examples/vector/smpv.dat +15 -0
- data/examples/vector/test.rb +43 -0
- data/examples/vector/test_gslblock.rb +58 -0
- data/examples/vector/vector.rb +110 -0
- data/examples/vector/view.rb +35 -0
- data/examples/vector/view_all.rb +73 -0
- data/examples/vector/where.rb +29 -0
- data/examples/vector/write.rb +24 -0
- data/examples/vector/zip.rb +34 -0
- data/examples/wavelet/ecg.dat +256 -0
- data/examples/wavelet/wavelet1.rb +50 -0
- data/ext/extconf.rb +9 -0
- data/ext/gsl.c +10 -1
- data/ext/histogram.c +6 -2
- data/ext/integration.c +39 -0
- data/ext/matrix_complex.c +1 -1
- data/ext/multiset.c +214 -0
- data/ext/nmf.c +4 -0
- data/ext/nmf_wrap.c +3 -0
- data/ext/vector_complex.c +1 -1
- data/ext/vector_double.c +3 -3
- data/ext/vector_source.c +6 -6
- data/include/rb_gsl.h +7 -0
- data/include/rb_gsl_common.h +6 -0
- data/rdoc/alf.rdoc +77 -0
- data/rdoc/blas.rdoc +269 -0
- data/rdoc/bspline.rdoc +42 -0
- data/rdoc/changes.rdoc +164 -0
- data/rdoc/cheb.rdoc +99 -0
- data/rdoc/cholesky_complex.rdoc +46 -0
- data/rdoc/combi.rdoc +125 -0
- data/rdoc/complex.rdoc +210 -0
- data/rdoc/const.rdoc +546 -0
- data/rdoc/dht.rdoc +122 -0
- data/rdoc/diff.rdoc +133 -0
- data/rdoc/ehandling.rdoc +50 -0
- data/rdoc/eigen.rdoc +401 -0
- data/rdoc/fft.rdoc +535 -0
- data/rdoc/fit.rdoc +284 -0
- data/rdoc/function.rdoc +94 -0
- data/rdoc/graph.rdoc +137 -0
- data/rdoc/hist.rdoc +409 -0
- data/rdoc/hist2d.rdoc +279 -0
- data/rdoc/hist3d.rdoc +112 -0
- data/rdoc/index.rdoc +62 -0
- data/rdoc/integration.rdoc +398 -0
- data/rdoc/interp.rdoc +231 -0
- data/rdoc/intro.rdoc +27 -0
- data/rdoc/linalg.rdoc +681 -0
- data/rdoc/linalg_complex.rdoc +88 -0
- data/rdoc/math.rdoc +276 -0
- data/rdoc/matrix.rdoc +1093 -0
- data/rdoc/min.rdoc +189 -0
- data/rdoc/monte.rdoc +234 -0
- data/rdoc/multimin.rdoc +312 -0
- data/rdoc/multiroot.rdoc +293 -0
- data/rdoc/narray.rdoc +173 -0
- data/rdoc/ndlinear.rdoc +247 -0
- data/rdoc/nonlinearfit.rdoc +348 -0
- data/rdoc/ntuple.rdoc +88 -0
- data/rdoc/odeiv.rdoc +378 -0
- data/rdoc/perm.rdoc +221 -0
- data/rdoc/poly.rdoc +335 -0
- data/rdoc/qrng.rdoc +90 -0
- data/rdoc/randist.rdoc +233 -0
- data/rdoc/ref.rdoc +93 -0
- data/rdoc/rng.rdoc +203 -0
- data/rdoc/rngextra.rdoc +11 -0
- data/rdoc/roots.rdoc +305 -0
- data/rdoc/screenshot.rdoc +40 -0
- data/rdoc/sf.rdoc +1622 -0
- data/rdoc/siman.rdoc +89 -0
- data/rdoc/sort.rdoc +94 -0
- data/rdoc/start.rdoc +16 -0
- data/rdoc/stats.rdoc +219 -0
- data/rdoc/sum.rdoc +65 -0
- data/rdoc/tensor.rdoc +251 -0
- data/rdoc/tut.rdoc +5 -0
- data/rdoc/use.rdoc +177 -0
- data/rdoc/vector.rdoc +1243 -0
- data/rdoc/vector_complex.rdoc +347 -0
- data/rdoc/wavelet.rdoc +218 -0
- data/setup.rb +1585 -0
- data/tests/blas/amax.rb +14 -0
- data/tests/blas/asum.rb +16 -0
- data/tests/blas/axpy.rb +25 -0
- data/tests/blas/copy.rb +23 -0
- data/tests/blas/dot.rb +23 -0
- data/tests/bspline.rb +53 -0
- data/tests/cdf.rb +1388 -0
- data/tests/cheb.rb +112 -0
- data/tests/combination.rb +123 -0
- data/tests/complex.rb +17 -0
- data/tests/const.rb +24 -0
- data/tests/deriv.rb +85 -0
- data/tests/dht/dht1.rb +17 -0
- data/tests/dht/dht2.rb +23 -0
- data/tests/dht/dht3.rb +23 -0
- data/tests/dht/dht4.rb +23 -0
- data/tests/diff.rb +78 -0
- data/tests/eigen/eigen.rb +220 -0
- data/tests/eigen/gen.rb +105 -0
- data/tests/eigen/genherm.rb +66 -0
- data/tests/eigen/gensymm.rb +68 -0
- data/tests/eigen/nonsymm.rb +53 -0
- data/tests/eigen/nonsymmv.rb +53 -0
- data/tests/eigen/symm-herm.rb +74 -0
- data/tests/err.rb +58 -0
- data/tests/fit.rb +124 -0
- data/tests/gsl_test.rb +118 -0
- data/tests/gsl_test2.rb +107 -0
- data/tests/histo.rb +12 -0
- data/tests/integration/integration1.rb +72 -0
- data/tests/integration/integration2.rb +71 -0
- data/tests/integration/integration3.rb +71 -0
- data/tests/integration/integration4.rb +71 -0
- data/tests/interp.rb +45 -0
- data/tests/linalg/HH.rb +64 -0
- data/tests/linalg/LU.rb +47 -0
- data/tests/linalg/QR.rb +77 -0
- data/tests/linalg/SV.rb +24 -0
- data/tests/linalg/TDN.rb +116 -0
- data/tests/linalg/TDS.rb +122 -0
- data/tests/linalg/bidiag.rb +73 -0
- data/tests/linalg/cholesky.rb +20 -0
- data/tests/linalg/linalg.rb +158 -0
- data/tests/matrix/matrix_nmf_test.rb +39 -0
- data/tests/matrix/matrix_test.rb +48 -0
- data/tests/min.rb +99 -0
- data/tests/monte/miser.rb +31 -0
- data/tests/monte/vegas.rb +45 -0
- data/tests/multifit/test_2dgauss.rb +112 -0
- data/tests/multifit/test_brown.rb +90 -0
- data/tests/multifit/test_enso.rb +246 -0
- data/tests/multifit/test_filip.rb +155 -0
- data/tests/multifit/test_gauss.rb +97 -0
- data/tests/multifit/test_longley.rb +110 -0
- data/tests/multifit/test_multifit.rb +52 -0
- data/tests/multimin.rb +139 -0
- data/tests/multiroot.rb +131 -0
- data/tests/multiset.rb +52 -0
- data/tests/odeiv.rb +353 -0
- data/tests/poly/poly.rb +242 -0
- data/tests/poly/special.rb +65 -0
- data/tests/qrng.rb +131 -0
- data/tests/quartic.rb +29 -0
- data/tests/randist.rb +134 -0
- data/tests/rng.rb +305 -0
- data/tests/roots.rb +76 -0
- data/tests/run-test.sh +17 -0
- data/tests/sf/gsl_test_sf.rb +249 -0
- data/tests/sf/test_airy.rb +83 -0
- data/tests/sf/test_bessel.rb +306 -0
- data/tests/sf/test_coulomb.rb +17 -0
- data/tests/sf/test_dilog.rb +25 -0
- data/tests/sf/test_gamma.rb +209 -0
- data/tests/sf/test_hyperg.rb +356 -0
- data/tests/sf/test_legendre.rb +227 -0
- data/tests/sf/test_mathieu.rb +59 -0
- data/tests/sf/test_sf.rb +839 -0
- data/tests/stats.rb +174 -0
- data/tests/sum.rb +98 -0
- data/tests/sys.rb +323 -0
- data/tests/tensor.rb +419 -0
- data/tests/vector/vector_complex_test.rb +101 -0
- data/tests/vector/vector_test.rb +141 -0
- data/tests/wavelet.rb +142 -0
- metadata +596 -15
data/ext/vector_complex.c
CHANGED
@@ -463,7 +463,7 @@ static VALUE rb_gsl_vector_complex_inspect(VALUE obj)
|
|
463
463
|
gsl_vector_complex *v;
|
464
464
|
|
465
465
|
Data_Get_Struct(obj, gsl_vector_complex, v);
|
466
|
-
sprintf(buf, "#<%s[%lu]:%#
|
466
|
+
sprintf(buf, "#<%s[%lu]:%#lx>\n", rb_class2name(CLASS_OF(obj)), v->size, NUM2ULONG(rb_obj_id(obj)));
|
467
467
|
str = rb_str_new2(buf);
|
468
468
|
return rb_str_concat(str, rb_gsl_vector_complex_to_s(obj));
|
469
469
|
}
|
data/ext/vector_double.c
CHANGED
@@ -325,9 +325,9 @@ VALUE rb_gsl_range_to_gv(VALUE obj)
|
|
325
325
|
int beg, en;
|
326
326
|
size_t n, i;
|
327
327
|
gsl_vector *v = NULL;
|
328
|
-
beg = NUM2INT(
|
329
|
-
en = NUM2INT(
|
330
|
-
if (RTEST(
|
328
|
+
beg = NUM2INT(rb_funcall3(obj, rb_gsl_id_beg, 0, NULL));
|
329
|
+
en = NUM2INT(rb_funcall3(obj, rb_gsl_id_end, 0, NULL));
|
330
|
+
if (RTEST(rb_funcall3(obj, rb_gsl_id_excl, 0, NULL))) n = en - beg;
|
331
331
|
else n = en - beg + 1;
|
332
332
|
v = gsl_vector_alloc(n);
|
333
333
|
for (i = 0; i < n; i++) gsl_vector_set(v, i, beg + (int)i);
|
data/ext/vector_source.c
CHANGED
@@ -46,22 +46,22 @@ void parse_subvector_args(int argc, VALUE *argv, size_t size,
|
|
46
46
|
|
47
47
|
void FUNCTION(get_range,beg_en_n)(VALUE range, BASE *beg, BASE *en, size_t *n, int *step)
|
48
48
|
{
|
49
|
-
*beg = NUMCONV2(
|
50
|
-
*en = NUMCONV2(
|
49
|
+
*beg = NUMCONV2(rb_funcall3(range, rb_gsl_id_beg, 0, NULL));
|
50
|
+
*en = NUMCONV2(rb_funcall3(range, rb_gsl_id_end, 0, NULL));
|
51
51
|
*n = (size_t) fabs(*en - *beg);
|
52
|
-
if (!RTEST(
|
52
|
+
if (!RTEST(rb_funcall3(range, rb_gsl_id_excl, 0, NULL))) *n += 1;
|
53
53
|
if (*en < *beg) *step = -1; else *step = 1;
|
54
54
|
}
|
55
55
|
|
56
56
|
#ifdef BASE_INT
|
57
57
|
void get_range_beg_en_n_for_size(VALUE range, int *beg, int *en, size_t *n, int *step, size_t size)
|
58
58
|
{
|
59
|
-
*beg = NUM2INT(
|
59
|
+
*beg = NUM2INT(rb_funcall3(range, rb_gsl_id_beg, 0, NULL));
|
60
60
|
if(*beg < 0) *beg += size;
|
61
|
-
*en = NUM2INT(
|
61
|
+
*en = NUM2INT(rb_funcall3(range, rb_gsl_id_end, 0, NULL));
|
62
62
|
if(*en < 0) *en += size;
|
63
63
|
*n = (size_t) fabs(*en - *beg);
|
64
|
-
if (!RTEST(
|
64
|
+
if (!RTEST(rb_funcall3(range, rb_gsl_id_excl, 0, NULL))) *n += 1;
|
65
65
|
if (*en < *beg) *step = -1; else *step = 1;
|
66
66
|
}
|
67
67
|
|
data/include/rb_gsl.h
CHANGED
@@ -148,4 +148,11 @@ void Init_bspline(VALUE module);
|
|
148
148
|
void Init_alf(VALUE module);
|
149
149
|
void Init_geometry(VALUE module);
|
150
150
|
|
151
|
+
#ifdef GSL_1_14_LATER
|
152
|
+
#include <gsl/gsl_multiset.h>
|
153
|
+
extern VALUE cMultiset;
|
154
|
+
void Init_multiset(VALUE module);
|
155
|
+
|
156
|
+
#endif
|
157
|
+
|
151
158
|
#endif
|
data/include/rb_gsl_common.h
CHANGED
@@ -16,6 +16,7 @@
|
|
16
16
|
#include "ruby.h"
|
17
17
|
#include <ctype.h>
|
18
18
|
#include <gsl/gsl_errno.h>
|
19
|
+
#include <gsl/gsl_version.h>
|
19
20
|
#include <gsl/gsl_math.h>
|
20
21
|
#include <gsl/gsl_complex.h>
|
21
22
|
#include <gsl/gsl_vector.h>
|
@@ -312,6 +313,11 @@ int str_head_grep(const char *s0, const char *s1);
|
|
312
313
|
#define STR2CHARPTR STR2CSTR
|
313
314
|
#endif
|
314
315
|
|
316
|
+
// Added 2010/Sep/29
|
317
|
+
#ifdef RUBY_1_9_2_LATER
|
318
|
+
#define STR2CSTR StringValuePtr
|
319
|
+
#endif
|
320
|
+
|
315
321
|
void make_graphcommand(char *command, VALUE hash);
|
316
322
|
int rbgsl_complex_equal(const gsl_complex *z1, const gsl_complex *z2, double eps);
|
317
323
|
|
data/rdoc/alf.rdoc
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
#
|
2
|
+
# = ALF: a collection of routines for computing associated Legendre polynomials (ALFs)
|
3
|
+
# ALF is an extension library for GSL to compute associated Legendre polynomials developed by Patrick Alken.
|
4
|
+
# Ruby/GSL includes interfaces to it if ALF is found during installlation.
|
5
|
+
#
|
6
|
+
# The class and method descriptions below are based on references from the document of ALF (alf-1.0/doc/alf.texi) by P.Alken.
|
7
|
+
#
|
8
|
+
# == {}[link:index.html"name="1] Module structure
|
9
|
+
# * GSL::ALF (module)
|
10
|
+
# * GSL::ALF::Workspace (Class)
|
11
|
+
#
|
12
|
+
# == {}[link:index.html"name="2] Creating ALF workspace
|
13
|
+
# ---
|
14
|
+
# * GSL::ALF::Workspace.alloc(lmax)
|
15
|
+
# * GSL::ALF.alloc(lmax)
|
16
|
+
#
|
17
|
+
# Creates a workspace for computing associated Legendre polynomials (ALFs). The maximum ALF degree is specified by lmax. The size of this workspace is O(lmax).
|
18
|
+
#
|
19
|
+
# == {}[link:index.html"name="3] Methods
|
20
|
+
# ---
|
21
|
+
# * GSL::ALF::Workspace#params(csphase, cnorm, norm)
|
22
|
+
#
|
23
|
+
# Sets various parameters for the subsequent computation of ALFs. If
|
24
|
+
# <tt>csphase</tt> is set to a non-zero value, the Condon-Shortley phase of
|
25
|
+
# (-1)^m will be applied to the associated Legendre functions. The
|
26
|
+
# Condon-Shortley phase is included by default. If <tt>cnorm</tt> is set to
|
27
|
+
# zero, the real normalization of the associated Legendre functions will be
|
28
|
+
# used. The default is to use complex normalization. The norm parameter
|
29
|
+
# defines the type of normalization which will be used. The possible values
|
30
|
+
# are as follows.
|
31
|
+
# * ALF::NORM_SCHMIDT: Schmidt semi-normalized associated Legendre polynomials S_l^m(x). (default)
|
32
|
+
# * ALF::NORM_SPHARM: Associated Legendre polynomials Y_l^m(x) suitable for the calculation of spherical harmonics.
|
33
|
+
# * ALF::NORM_ORTHO: Fully orthonormalized associated Legendre polynomials N_l^m(x).
|
34
|
+
# * ALF::NORM_NONE:: Unnormalized associated Legendre polynomials P_l^m(x).
|
35
|
+
# ---
|
36
|
+
# * GSL::ALF::Workspace#Plm_array(x)
|
37
|
+
# * GSL::ALF::Workspace#Plm_array(lmax, x)
|
38
|
+
# * GSL::ALF::Workspace#Plm_array(x, result)
|
39
|
+
# * GSL::ALF::Workspace#Plm_array(lmax, x, result)
|
40
|
+
# * GSL::ALF::Workspace#Plm_array(x, result, deriv)
|
41
|
+
# * GSL::ALF::Workspace#Plm_array(lmax, x, result, deriv)
|
42
|
+
#
|
43
|
+
# Compute all associated Legendre polynomials P_l^m(x) and optionally their
|
44
|
+
# first derivatives dP_l^m(x)/dx for 0 <= l <= lmax, 0 <= m <= l. The value
|
45
|
+
# of <tt>lmax</tt> cannot exceed the previously specified lmax parameter to
|
46
|
+
# <tt>ALF.alloc</tt>, but may be less. If <tt>lmax</tt> is not given, the
|
47
|
+
# parameter to <tt>ALF.alloc()</tt> is used. The results are stored in
|
48
|
+
# <tt>result</tt>, an instance of <tt>GSL::Vector</tt>. Note that this vector
|
49
|
+
# must have enough length to store all the values for the polynomial
|
50
|
+
# P_l^m(x), and the length required can be known using
|
51
|
+
# <tt>ALF::array_size(lmax)</tt>. If a vector is not given, a new vector is
|
52
|
+
# created and returned.
|
53
|
+
#
|
54
|
+
# The indices of <tt>result</tt> (and <tt>deriv</tt> corresponding to the
|
55
|
+
# associated Legendre function of degree <tt>l</tt> and order <tt>m</tt> can
|
56
|
+
# be obtained by calling <tt>ALF::array_index(l, m)</tt>.
|
57
|
+
# ---
|
58
|
+
# * GSL::ALF::Workspace#Plm_deriv_array(x)
|
59
|
+
# * GSL::ALF::Workspace#Plm_deriv_array(lmax, x)
|
60
|
+
# * GSL::ALF::Workspace#Plm_deriv_array(x, result, deriv)
|
61
|
+
# * GSL::ALF::Workspace#Plm_deriv_array(lmax, x, result, deriv)
|
62
|
+
#
|
63
|
+
# Compute all associated Legendre polynomials P_l^m(x) and their first
|
64
|
+
# derivatives dP_l^m(x)/dx for 0 <= l <= lmax, 0 <= m <= l.
|
65
|
+
#
|
66
|
+
# ---
|
67
|
+
# * GSL::ALF::array_size(lmax)
|
68
|
+
#
|
69
|
+
# Returns the size of arrays needed for the array versions of P_l^m(x).
|
70
|
+
# ---
|
71
|
+
# * GSL::ALF::array_index(l, m)
|
72
|
+
#
|
73
|
+
# Returns the array index of results of <tt>Plm_array()</tt> and
|
74
|
+
# <tt>Plm_deriv_array()</tt> corresponding to P_l^m(x) and dP_l^m(x)/dx
|
75
|
+
# respectively. The index is given by l(l + 1)/2 + m.
|
76
|
+
#
|
77
|
+
#
|
data/rdoc/blas.rdoc
ADDED
@@ -0,0 +1,269 @@
|
|
1
|
+
#
|
2
|
+
# = BLAS Support
|
3
|
+
# The following is the list of the methods defined in <tt>GSL::Blas</tt> module.
|
4
|
+
# See {GSL reference}[http://www.gnu.org/software/gsl/manual/gsl-ref_12.html#SEC212"target="_top] for details.
|
5
|
+
#
|
6
|
+
# == {}[link:index.html"name="1] Level 1
|
7
|
+
# ---
|
8
|
+
# * GSL::Blas::ddot(x, y)
|
9
|
+
# * GSL::Vector#blas_ddot(y)
|
10
|
+
# * GSL::Vector#ddot(y)
|
11
|
+
#
|
12
|
+
#
|
13
|
+
# ---
|
14
|
+
# * GSL::Blas::zdotu(x, y)
|
15
|
+
# * GSL::Vector::Complex#blas_zdotu(y)
|
16
|
+
# * GSL::Vector::Complex#zdotu(y)
|
17
|
+
#
|
18
|
+
#
|
19
|
+
# ---
|
20
|
+
# * GSL::Blas::zdotc(x, y)
|
21
|
+
# * GSL::Vector::Complex#blas_zdotc(y)
|
22
|
+
# * GSL::Vector::Complex#zdotc(y)
|
23
|
+
#
|
24
|
+
#
|
25
|
+
# ---
|
26
|
+
# * GSL::Blas::dnrm2(x)
|
27
|
+
# * GSL::Vector#blas_dnrm2
|
28
|
+
# * GSL::Vector#dnrm2
|
29
|
+
#
|
30
|
+
#
|
31
|
+
# ---
|
32
|
+
# * GSL::Blas::dznrm2(x)
|
33
|
+
# * GSL::Vector::Complex#blas_dznrm2
|
34
|
+
# * GSL::Vector::Complex#dznrm2
|
35
|
+
#
|
36
|
+
#
|
37
|
+
# ---
|
38
|
+
# * GSL::Blas::dasum(x)
|
39
|
+
# * GSL::Vector#blas_dasum
|
40
|
+
# * GSL::Vector#dasum
|
41
|
+
#
|
42
|
+
#
|
43
|
+
# ---
|
44
|
+
# * GSL::Blas::dzasum(x)
|
45
|
+
# * GSL::Vector::Complex#blas_dzasum
|
46
|
+
# * GSL::Vector::Complex#dzasum
|
47
|
+
#
|
48
|
+
#
|
49
|
+
# ---
|
50
|
+
# * GSL::Blas::idamax(x)
|
51
|
+
# * GSL::Vector#blas_idamax
|
52
|
+
# * GSL::Vector#idamax
|
53
|
+
#
|
54
|
+
#
|
55
|
+
# ---
|
56
|
+
# * GSL::Blas::izamax(x)
|
57
|
+
# * GSL::Vector::Complex#blas_izamax
|
58
|
+
# * GSL::Vector::Complex#izamax
|
59
|
+
#
|
60
|
+
#
|
61
|
+
# ---
|
62
|
+
# * GSL::Blas::dswap(x, y)
|
63
|
+
# * GSL::Vector#blas_dswap(y)
|
64
|
+
# * GSL::Vector#dswap(y)
|
65
|
+
#
|
66
|
+
#
|
67
|
+
# ---
|
68
|
+
# * GSL::Blas::zswap(x, y)
|
69
|
+
# * GSL::Vector::Complex#blas_zswap(y)
|
70
|
+
# * GSL::Vector::Complex#zswap(y)
|
71
|
+
#
|
72
|
+
#
|
73
|
+
# ---
|
74
|
+
# * GSL::Blas::dcopy(x, y)
|
75
|
+
# * GSL::Vector#blas_dcopy(y)
|
76
|
+
# * GSL::Vector#dcopy(y)
|
77
|
+
#
|
78
|
+
#
|
79
|
+
# ---
|
80
|
+
# * GSL::Blas::zcopy(x, y)
|
81
|
+
# * GSL::Vector::Complex#blas_zcopy(y)
|
82
|
+
# * GSL::Vector::Complex#zcopy(y)
|
83
|
+
#
|
84
|
+
#
|
85
|
+
# ---
|
86
|
+
# * GSL::Blas::daxpy!(a, x, y)
|
87
|
+
# * GSL::Vector#blas_daxpy!(a, y)
|
88
|
+
# * GSL::Vector#daxpy!(a, y)
|
89
|
+
# * GSL::Blas::daxpy(a, x, y)
|
90
|
+
# * GSL::Vector#blas_daxpy(a, y)
|
91
|
+
# * GSL::Vector#daxpy(a, y)
|
92
|
+
#
|
93
|
+
#
|
94
|
+
# ---
|
95
|
+
# * GSL::Blas::zaxpy!(a, x, y)
|
96
|
+
# * GSL::Vector::Complex#blas_zaxpy!(a, y)
|
97
|
+
# * GSL::Vector::Complex#zaxpy!(a, y)
|
98
|
+
# * GSL::Blas::zaxpy(a, x, y)
|
99
|
+
# * GSL::Vector::Complex#blas_zaxpy(a, y)
|
100
|
+
# * GSL::Vector::Complex#zaxpy(a, y)
|
101
|
+
#
|
102
|
+
#
|
103
|
+
# ---
|
104
|
+
# * GSL::Blas::dscal!(a, x)
|
105
|
+
# * GSL::Vector#blas_dscal!(a)
|
106
|
+
# * GSL::Vector#dscal!(a)
|
107
|
+
# * GSL::Blas::dscal(a, x)
|
108
|
+
# * GSL::Vector#blas_dscal(a)
|
109
|
+
# * GSL::Vector#dscal(a)
|
110
|
+
#
|
111
|
+
#
|
112
|
+
# ---
|
113
|
+
# * GSL::Blas::zscal!(a, x)
|
114
|
+
# * GSL::Vector::Complex#blas_zscal!(a)
|
115
|
+
# * GSL::Vector::Complex#zscal!(a)
|
116
|
+
# * GSL::Blas::zscal(a, x)
|
117
|
+
# * GSL::Vector::Complex#blas_zscal(a)
|
118
|
+
# * GSL::Vector::Complex#zscal(a)
|
119
|
+
#
|
120
|
+
#
|
121
|
+
# ---
|
122
|
+
# * GSL::Blas::zdscal!(a, x)
|
123
|
+
# * GSL::Vector::Complex#blas_zdscal!(a)
|
124
|
+
# * GSL::Vector::Complex#zdscal!(a)
|
125
|
+
# * GSL::Blas::zdscal(a, x)
|
126
|
+
# * GSL::Vector::Complex#blas_zdscal(a)
|
127
|
+
# * GSL::Vector::Complex#zdscal(a)
|
128
|
+
#
|
129
|
+
#
|
130
|
+
# ---
|
131
|
+
# * GSL::Blas::drot(x, y, c, s)
|
132
|
+
# * GSL::Blas::drot!(x, y, c, s)
|
133
|
+
# * GSL::Blas::drotm(x, y, p)
|
134
|
+
# * GSL::Blas::drotm!(x, y, p)
|
135
|
+
#
|
136
|
+
#
|
137
|
+
# == {}[link:index.html"name="2] Level 2
|
138
|
+
# ---
|
139
|
+
# * GSL::Blas::dgemv(trans, a, A, x, b, y)
|
140
|
+
# * GSL::Blas::dgemv!(trans, a, A, x, b, y)
|
141
|
+
# * GSL::Blas::zgemv(trans, a, A, x, b, y)
|
142
|
+
# * GSL::Blas::zgemv!(trans, a, A, x, b, y)
|
143
|
+
#
|
144
|
+
#
|
145
|
+
# ---
|
146
|
+
# * GSL::Blas::dtrmv(trans, a, A, x, b, y)
|
147
|
+
# * GSL::Blas::dtrmv!(trans, a, A, x, b, y)
|
148
|
+
# * GSL::Blas::ztrmv(trans, a, A, x, b, y)
|
149
|
+
# * GSL::Blas::ztrmv!(trans, a, A, x, b, y)
|
150
|
+
#
|
151
|
+
#
|
152
|
+
# ---
|
153
|
+
# * GSL::Blas::dtrsv(uplo, trans, diag, A, x)
|
154
|
+
# * GSL::Blas::dtrsv!uplo, trans, diag, A, x)
|
155
|
+
# * GSL::Blas::ztrsvuplo, trans, diag, A, x)
|
156
|
+
# * GSL::Blas::ztrsv!uplo, trans, diag, A, x)
|
157
|
+
#
|
158
|
+
#
|
159
|
+
# ---
|
160
|
+
# * GSL::Blas::dsymv(uplo, a, A, x, b, y)
|
161
|
+
# * GSL::Blas::dsymv!(uplo, a, A, x, b, y)
|
162
|
+
# * GSL::Blas::zhemv(uplo, a, A, x, b, y)
|
163
|
+
# * GSL::Blas::zhemv!(uplo, a, A, x, b, y)
|
164
|
+
#
|
165
|
+
#
|
166
|
+
# ---
|
167
|
+
# * GSL::Blas::dger(a, x, y, A)
|
168
|
+
# * GSL::Blas::dger!(a, x, y, A)
|
169
|
+
# * GSL::Blas::zgeru(a, x, y, A)
|
170
|
+
# * GSL::Blas::zgeru!(a, x, y, A)
|
171
|
+
# * GSL::Blas::zgerc(a, x, y, A)
|
172
|
+
# * GSL::Blas::zgerc!(a, x, y, A)
|
173
|
+
#
|
174
|
+
#
|
175
|
+
# ---
|
176
|
+
# * GSL::Blas::dsyr(uplo, a, x, A)
|
177
|
+
# * GSL::Blas::dsyr!(uplo, a, x, A)
|
178
|
+
# * GSL::Blas::zher(uplo, a, x, A)
|
179
|
+
# * GSL::Blas::zher!(uplo, a, x, A)
|
180
|
+
#
|
181
|
+
#
|
182
|
+
# ---
|
183
|
+
# * GSL::Blas::dsyr2(uplo, a, x, y, A)
|
184
|
+
# * GSL::Blas::dsyr2!(uplo, a, x, y, A)
|
185
|
+
# * GSL::Blas::zher2(uplo, a, x, y, A)
|
186
|
+
# * GSL::Blas::zher2!(uplo, a, x, y, A)
|
187
|
+
#
|
188
|
+
#
|
189
|
+
# == {}[link:index.html"name="3] Level 3
|
190
|
+
# ---
|
191
|
+
# * GSL::Blas::dgemm(transA, transB, alpha, A, B, beta, C)
|
192
|
+
# * GSL::Blas::dgemm(A, B)
|
193
|
+
#
|
194
|
+
#
|
195
|
+
# ---
|
196
|
+
# * GSL::Blas::zgemm(transA, transB, alpha, A, B, beta, C)
|
197
|
+
# * GSL::Blas::zgemm(A, B)
|
198
|
+
#
|
199
|
+
#
|
200
|
+
# ---
|
201
|
+
# * GSL::Blas::dsymm(transA, transB, alpha, A, B, beta, C)
|
202
|
+
# * GSL::Blas::dsymm(A, B)
|
203
|
+
#
|
204
|
+
#
|
205
|
+
# ---
|
206
|
+
# * GSL::Blas::zsymm(transA, transB, alpha, A, B, beta, C)
|
207
|
+
# * GSL::Blas::zsymm(A, B)
|
208
|
+
#
|
209
|
+
#
|
210
|
+
# ---
|
211
|
+
# * GSL::Blas::zhemm(transA, transB, alpha, A, B, beta, C)
|
212
|
+
# * GSL::Blas::zhemm(A, B)
|
213
|
+
#
|
214
|
+
#
|
215
|
+
# ---
|
216
|
+
# * GSL::Blas::dtrmm(side, uplo, trans, diag, alpha, A, B)
|
217
|
+
# * GSL::Blas::ztrmm(side, uplo, trans, diag, alpha, A, B)
|
218
|
+
#
|
219
|
+
#
|
220
|
+
# ---
|
221
|
+
# * GSL::Blas::dtrsm(side, uplo, trans, diag, alpha, A, B)
|
222
|
+
# * GSL::Blas::ztrsm(side, uplo, trans, diag, alpha, A, B)
|
223
|
+
#
|
224
|
+
#
|
225
|
+
# ---
|
226
|
+
# * GSL::Blas::dsyrk(uplo, trans, diag, alpha, A, beta, C)
|
227
|
+
# * GSL::Blas::zsyrk(uplo, trans, diag, alpha, A, beta, C)
|
228
|
+
# * GSL::Blas::zherk(uplo, trans, diag, alpha, A, beta, C)
|
229
|
+
#
|
230
|
+
#
|
231
|
+
# ---
|
232
|
+
# * GSL::Blas::dsyr2k(uplo, trans, diag, alpha, A, B, beta, C)
|
233
|
+
# * GSL::Blas::zsyr2k(uplo, trans, diag, alpha, A, B, beta, C)
|
234
|
+
# * GSL::Blas::zher2k(uplo, trans, diag, alpha, A, B, beta, C)
|
235
|
+
#
|
236
|
+
#
|
237
|
+
# == {}[link:index.html"name="4] Constants
|
238
|
+
# ---
|
239
|
+
# * GSL::Blas::CblasRowMajor
|
240
|
+
# * GSL::Blas::RowMajor
|
241
|
+
# * GSL::Blas::CblasColMajor
|
242
|
+
# * GSL::Blas::ColMajor
|
243
|
+
# * GSL::Blas::CblasNoTrans
|
244
|
+
# * GSL::Blas::NoTrans
|
245
|
+
# * GSL::Blas::CblasTrans
|
246
|
+
# * GSL::Blas::Trans
|
247
|
+
# * GSL::Blas::CblasConjTrans
|
248
|
+
# * GSL::Blas::ConjTrans
|
249
|
+
# * GSL::Blas::CblasUpper
|
250
|
+
# * GSL::Blas::Upper
|
251
|
+
# * GSL::Blas::CblasTrans
|
252
|
+
# * GSL::Blas::Lower
|
253
|
+
# * GSL::Blas::CblasNonUnit
|
254
|
+
# * GSL::Blas::NonUnit
|
255
|
+
# * GSL::Blas::CblasUnit
|
256
|
+
# * GSL::Blas::Unit
|
257
|
+
# * GSL::Blas::CblasLeft
|
258
|
+
# * GSL::Blas::Left
|
259
|
+
# * GSL::Blas::CblasRight
|
260
|
+
# * GSL::Blas::Right
|
261
|
+
#
|
262
|
+
#
|
263
|
+
# {prev}[link:files/rdoc/sort_rdoc.html]
|
264
|
+
# {next}[link:files/rdoc/linalg_rdoc.html]
|
265
|
+
#
|
266
|
+
# {Reference index}[link:files/rdoc/ref_rdoc.html]
|
267
|
+
# {top}[link:files/rdoc/index_rdoc.html]
|
268
|
+
#
|
269
|
+
#
|
data/rdoc/bspline.rdoc
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
#
|
2
|
+
# = Basis Splines
|
3
|
+
# This chapter describes functions for the computation of smoothing basis splines (B-splines). This is only for GSL-1.9 or later.
|
4
|
+
#
|
5
|
+
# 1. {Overview}[link:files/rdoc/bspline_rdoc.html#1]
|
6
|
+
# 1. {Initializing the B-splines solver}[link:files/rdoc/bspline_rdoc.html#2]
|
7
|
+
# 1. {Constructing the knots vector}[link:files/rdoc/bspline_rdoc.html#3]
|
8
|
+
# 1. {Evaluation of B-splines}[link:files/rdoc/bspline_rdoc.html#4]
|
9
|
+
#
|
10
|
+
# == {}[link:index.html"name="1] Overview
|
11
|
+
#
|
12
|
+
# B-splines are commonly used as basis functions to fit smoothing curves to large data sets. To do this, the abscissa axis is broken up into some number of intervals, where the endpoints of each interval are called breakpoints. These breakpoints are then converted to knots by imposing various continuity and smoothness conditions at each interface. Given a nondecreasing knot vector t = \{t_0, t_1, \dots, t_{n+k-1\, the n basis splines of order k are defined by for i = 0, \dots, n-1. The common case of cubic B-splines is given by k = 4. The above recurrence relation can be evaluated in a numerically stable way by the de Boor algorithm.
|
13
|
+
#
|
14
|
+
# If we define appropriate knots on an interval [a,b] then the B-spline basis functions form a complete set on that interval. Therefore we can expand a smoothing function as given enough (x_j, f(x_j)) data pairs. The c_i can be readily obtained from a least-squares fit.
|
15
|
+
#
|
16
|
+
# == {}[link:index.html"name="2] Initializing the B-splines solver
|
17
|
+
# ---
|
18
|
+
# * GSL::BSpline.alloc(k, nbreak)
|
19
|
+
#
|
20
|
+
# This method creates a workspace for computing B-splines of order <tt>k</tt>. The number of breakpoints is given by <tt>nbreak</tt>. This leads to <tt>n = nbreak + k - 2</tt> basis functions. Cubic B-splines are specified by <tt>k = 4</tt>. The size of the workspace is <tt>O(5k + nbreak)</tt>.
|
21
|
+
#
|
22
|
+
# == {}[link:index.html"name="3] Constructing the knots vector
|
23
|
+
# ---
|
24
|
+
# * GSL::BSpline#knots(breakpts)
|
25
|
+
#
|
26
|
+
# This method computes the knots associated with the given breakpoints <tt>breakpts</tt> and returns the knots as a <tt>GSL::Vector::View</tt> object.
|
27
|
+
# ---
|
28
|
+
# * GSL::BSpline#knots_uniform(a, b)
|
29
|
+
#
|
30
|
+
# This method assumes uniformly spaced breakpoints on [<tt>a,b</tt>] and constructs the corresponding knot vector using the previously specified <tt>nbreak</tt> parameter.
|
31
|
+
# == {}[link:index.html"name="4] Evaluation of B-splines
|
32
|
+
# ---
|
33
|
+
# * GSL::BSpline#eval(x[, B])
|
34
|
+
#
|
35
|
+
# This method evaluates all B-spline basis functions at the position <tt>x</tt> and stores them in <tt>B</tt> (if given), so that the ith element of <tt>B</tt> is <tt>B_i(x)</tt>. <tt>B</tt> must be of length <tt>n = nbreak + k - 2</tt>. If <tt>B</tt> is not given, a newly created vector is returned.It is far more efficient to compute all of the basis functions at once than to compute them individually, due to the nature of the defining recurrence relation.
|
36
|
+
#
|
37
|
+
# {prev}[link:files/rdoc/nonlinearfit_rdoc.html]
|
38
|
+
# {next}[link:files/rdoc/const_rdoc.html]
|
39
|
+
#
|
40
|
+
# {Reference index}[link:files/rdoc/ref_rdoc.html]
|
41
|
+
# {top}[link:files/rdoc/index_rdoc.html]
|
42
|
+
#
|