gsl 1.15.3 → 1.16.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.travis.yml +24 -0
- data/AUTHORS +10 -2
- data/COPYING +341 -339
- data/ChangeLog +612 -554
- data/Gemfile +4 -0
- data/README.md +77 -0
- data/Rakefile +14 -93
- data/THANKS +1 -1
- data/examples/blas/blas.rb +1 -1
- data/examples/bspline.rb +3 -3
- data/examples/complex/functions.rb +4 -4
- data/examples/complex/mul.rb +1 -1
- data/examples/const/physconst.rb +4 -4
- data/examples/const/travel.rb +4 -4
- data/examples/eigen/nonsymmv.rb +1 -1
- data/examples/eigen/qhoscillator.rb +3 -3
- data/examples/fft/radix2.rb +1 -1
- data/examples/fft/real-halfcomplex.rb +3 -3
- data/examples/fft/real-halfcomplex2.rb +3 -3
- data/examples/fit/expfit.rb +1 -1
- data/examples/fit/multifit.rb +1 -1
- data/examples/fit/ndlinear.rb +44 -44
- data/examples/fit/nonlinearfit.rb +1 -1
- data/examples/fit/wlinear.rb +3 -3
- data/examples/function/function.rb +1 -1
- data/examples/function/min.rb +1 -1
- data/examples/function/synchrotron.rb +2 -2
- data/examples/gallery/koch.rb +1 -1
- data/examples/histogram/cauchy.rb +2 -2
- data/examples/histogram/exponential.rb +1 -1
- data/examples/histogram/histo3d.rb +1 -1
- data/examples/histogram/histogram-pdf.rb +2 -2
- data/examples/histogram/xexp.rb +1 -1
- data/examples/integration/ahmed.rb +2 -2
- data/examples/integration/cosmology.rb +7 -7
- data/examples/integration/friedmann.rb +4 -4
- data/examples/integration/qng.rb +1 -1
- data/examples/interp/demo.rb +2 -2
- data/examples/linalg/LQ_solve.rb +1 -1
- data/examples/linalg/LU.rb +1 -1
- data/examples/linalg/LU2.rb +1 -1
- data/examples/linalg/LU_narray.rb +1 -1
- data/examples/linalg/PTLQ.rb +1 -1
- data/examples/linalg/QRPT.rb +1 -1
- data/examples/linalg/chol.rb +1 -1
- data/examples/linalg/chol_narray.rb +1 -1
- data/examples/linalg/complex.rb +1 -1
- data/examples/math/elementary.rb +1 -1
- data/examples/math/functions.rb +1 -1
- data/examples/math/inf_nan.rb +1 -1
- data/examples/math/minmax.rb +1 -1
- data/examples/math/power.rb +1 -1
- data/examples/math/test.rb +1 -1
- data/examples/min.rb +1 -1
- data/examples/multimin/bundle.rb +1 -1
- data/examples/multimin/cqp.rb +17 -17
- data/examples/multiroot/fsolver3.rb +1 -1
- data/examples/odeiv/binarysystem.rb +12 -12
- data/examples/odeiv/demo.rb +3 -3
- data/examples/odeiv/frei1.rb +7 -7
- data/examples/odeiv/frei2.rb +4 -4
- data/examples/odeiv/oscillator.rb +1 -1
- data/examples/odeiv/sedov.rb +3 -3
- data/examples/odeiv/whitedwarf.rb +11 -11
- data/examples/permutation/ex1.rb +2 -2
- data/examples/permutation/permutation.rb +1 -1
- data/examples/poly/demo.rb +1 -1
- data/examples/random/diffusion.rb +1 -1
- data/examples/random/generator.rb +2 -2
- data/examples/random/randomwalk.rb +3 -3
- data/examples/random/rng.rb +1 -1
- data/examples/roots/bisection.rb +1 -1
- data/examples/roots/brent.rb +1 -1
- data/examples/roots/demo.rb +1 -1
- data/examples/roots/newton.rb +2 -2
- data/examples/roots/recombination.gp +0 -1
- data/examples/sf/hyperg.rb +1 -1
- data/examples/sf/sphbessel.rb +1 -1
- data/examples/sort/sort.rb +1 -1
- data/examples/tamu_anova.rb +4 -4
- data/examples/vector/add.rb +1 -1
- data/examples/vector/decimate.rb +1 -1
- data/examples/vector/gnuplot.rb +8 -8
- data/examples/vector/vector.rb +2 -2
- data/examples/wavelet/wavelet1.rb +1 -1
- data/ext/{alf.c → gsl_native/alf.c} +10 -10
- data/ext/{array.c → gsl_native/array.c} +70 -159
- data/ext/{array_complex.c → gsl_native/array_complex.c} +63 -66
- data/ext/{blas.c → gsl_native/blas.c} +2 -3
- data/ext/{blas1.c → gsl_native/blas1.c} +35 -36
- data/ext/{blas2.c → gsl_native/blas2.c} +57 -62
- data/ext/{blas3.c → gsl_native/blas3.c} +57 -58
- data/ext/{block.c → gsl_native/block.c} +14 -18
- data/ext/{block_source.c → gsl_native/block_source.h} +110 -112
- data/ext/gsl_native/bspline.c +122 -0
- data/ext/{bundle.c → gsl_native/bundle.c} +0 -0
- data/ext/{cdf.c → gsl_native/cdf.c} +79 -93
- data/ext/{cheb.c → gsl_native/cheb.c} +78 -89
- data/ext/{combination.c → gsl_native/combination.c} +11 -19
- data/ext/{common.c → gsl_native/common.c} +9 -41
- data/ext/{complex.c → gsl_native/complex.c} +116 -118
- data/ext/gsl_native/const.c +331 -0
- data/ext/{const_additional.c → gsl_native/const_additional.c} +13 -34
- data/ext/gsl_native/cqp.c +283 -0
- data/ext/{deriv.c → gsl_native/deriv.c} +25 -33
- data/ext/{dht.c → gsl_native/dht.c} +23 -31
- data/ext/{diff.c → gsl_native/diff.c} +26 -28
- data/ext/{dirac.c → gsl_native/dirac.c} +45 -46
- data/ext/{eigen.c → gsl_native/eigen.c} +1044 -1095
- data/ext/{error.c → gsl_native/error.c} +18 -18
- data/ext/gsl_native/extconf.rb +118 -0
- data/ext/{fft.c → gsl_native/fft.c} +197 -204
- data/ext/{fit.c → gsl_native/fit.c} +17 -18
- data/ext/gsl_native/fresnel.c +312 -0
- data/ext/{function.c → gsl_native/function.c} +37 -43
- data/ext/{geometry.c → gsl_native/geometry.c} +16 -16
- data/ext/{graph.c → gsl_native/graph.c} +39 -89
- data/ext/{gsl.c → gsl_native/gsl.c} +12 -33
- data/ext/{gsl_narray.c → gsl_native/gsl_narray.c} +20 -30
- data/ext/{histogram.c → gsl_native/histogram.c} +133 -160
- data/ext/{histogram2d.c → gsl_native/histogram2d.c} +78 -104
- data/ext/{histogram3d.c → gsl_native/histogram3d.c} +76 -76
- data/ext/{histogram3d_source.c → gsl_native/histogram3d_source.c} +196 -197
- data/ext/{histogram_find.c → gsl_native/histogram_find.c} +32 -34
- data/ext/{histogram_oper.c → gsl_native/histogram_oper.c} +43 -52
- data/ext/{ieee.c → gsl_native/ieee.c} +9 -21
- data/{include → ext/gsl_native/include}/rb_gsl.h +4 -26
- data/{include → ext/gsl_native/include}/rb_gsl_array.h +15 -39
- data/{include → ext/gsl_native/include}/rb_gsl_cheb.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_common.h +61 -61
- data/{include → ext/gsl_native/include}/rb_gsl_complex.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_const.h +0 -6
- data/ext/gsl_native/include/rb_gsl_dirac.h +6 -0
- data/{include → ext/gsl_native/include}/rb_gsl_eigen.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_fft.h +0 -13
- data/{include → ext/gsl_native/include}/rb_gsl_fit.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_function.h +0 -4
- data/{include → ext/gsl_native/include}/rb_gsl_graph.h +2 -4
- data/{include → ext/gsl_native/include}/rb_gsl_histogram.h +8 -8
- data/{include → ext/gsl_native/include}/rb_gsl_histogram3d.h +50 -50
- data/{include → ext/gsl_native/include}/rb_gsl_integration.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_interp.h +0 -5
- data/{include → ext/gsl_native/include}/rb_gsl_linalg.h +2 -6
- data/{include → ext/gsl_native/include}/rb_gsl_math.h +0 -6
- data/{include → ext/gsl_native/include}/rb_gsl_odeiv.h +0 -3
- data/{include → ext/gsl_native/include}/rb_gsl_poly.h +3 -7
- data/{include → ext/gsl_native/include}/rb_gsl_rational.h +1 -8
- data/{include → ext/gsl_native/include}/rb_gsl_rng.h +0 -1
- data/{include → ext/gsl_native/include}/rb_gsl_root.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_sf.h +39 -48
- data/{include → ext/gsl_native/include}/rb_gsl_statistics.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_tensor.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_with_narray.h +3 -1
- data/{include → ext/gsl_native/include}/templates_off.h +0 -0
- data/{include → ext/gsl_native/include}/templates_on.h +1 -1
- data/ext/{integration.c → gsl_native/integration.c} +164 -189
- data/ext/{interp.c → gsl_native/interp.c} +25 -38
- data/ext/gsl_native/jacobi.c +733 -0
- data/ext/{linalg.c → gsl_native/linalg.c} +462 -589
- data/ext/{linalg_complex.c → gsl_native/linalg_complex.c} +93 -106
- data/ext/{math.c → gsl_native/math.c} +48 -67
- data/ext/{matrix.c → gsl_native/matrix.c} +13 -16
- data/ext/{matrix_complex.c → gsl_native/matrix_complex.c} +119 -123
- data/ext/{matrix_double.c → gsl_native/matrix_double.c} +79 -82
- data/ext/{matrix_int.c → gsl_native/matrix_int.c} +53 -54
- data/ext/{matrix_source.c → gsl_native/matrix_source.h} +292 -318
- data/ext/{min.c → gsl_native/min.c} +45 -76
- data/ext/{monte.c → gsl_native/monte.c} +50 -64
- data/ext/{multifit.c → gsl_native/multifit.c} +142 -151
- data/ext/{multimin.c → gsl_native/multimin.c} +64 -92
- data/ext/{multimin_fsdf.c → gsl_native/multimin_fsdf.c} +16 -16
- data/ext/{multiroots.c → gsl_native/multiroots.c} +73 -76
- data/ext/{multiset.c → gsl_native/multiset.c} +4 -8
- data/ext/{ndlinear.c → gsl_native/ndlinear.c} +320 -321
- data/ext/{nmf.c → gsl_native/nmf.c} +11 -11
- data/ext/{nmf_wrap.c → gsl_native/nmf_wrap.c} +1 -1
- data/ext/{ntuple.c → gsl_native/ntuple.c} +23 -23
- data/ext/{odeiv.c → gsl_native/odeiv.c} +101 -116
- data/ext/gsl_native/ool.c +879 -0
- data/ext/{permutation.c → gsl_native/permutation.c} +39 -37
- data/ext/{poly.c → gsl_native/poly.c} +10 -13
- data/ext/{poly2.c → gsl_native/poly2.c} +16 -16
- data/ext/{poly_source.c → gsl_native/poly_source.h} +249 -293
- data/ext/{qrng.c → gsl_native/qrng.c} +9 -20
- data/ext/{randist.c → gsl_native/randist.c} +222 -247
- data/ext/{rational.c → gsl_native/rational.c} +12 -12
- data/ext/{rng.c → gsl_native/rng.c} +30 -47
- data/ext/{root.c → gsl_native/root.c} +47 -48
- data/ext/{sf.c → gsl_native/sf.c} +196 -244
- data/ext/{sf_airy.c → gsl_native/sf_airy.c} +2 -2
- data/ext/{sf_bessel.c → gsl_native/sf_bessel.c} +7 -7
- data/ext/{sf_clausen.c → gsl_native/sf_clausen.c} +1 -1
- data/ext/{sf_coulomb.c → gsl_native/sf_coulomb.c} +40 -40
- data/ext/{sf_coupling.c → gsl_native/sf_coupling.c} +30 -30
- data/ext/{sf_dawson.c → gsl_native/sf_dawson.c} +1 -1
- data/ext/{sf_debye.c → gsl_native/sf_debye.c} +1 -10
- data/ext/{sf_dilog.c → gsl_native/sf_dilog.c} +1 -1
- data/ext/{sf_elementary.c → gsl_native/sf_elementary.c} +3 -3
- data/ext/{sf_ellint.c → gsl_native/sf_ellint.c} +43 -43
- data/ext/{sf_elljac.c → gsl_native/sf_elljac.c} +3 -3
- data/ext/{sf_erfc.c → gsl_native/sf_erfc.c} +1 -5
- data/ext/{sf_exp.c → gsl_native/sf_exp.c} +3 -3
- data/ext/{sf_expint.c → gsl_native/sf_expint.c} +2 -12
- data/ext/{sf_fermi_dirac.c → gsl_native/sf_fermi_dirac.c} +1 -1
- data/ext/{sf_gamma.c → gsl_native/sf_gamma.c} +2 -6
- data/ext/{sf_gegenbauer.c → gsl_native/sf_gegenbauer.c} +1 -1
- data/ext/{sf_hyperg.c → gsl_native/sf_hyperg.c} +1 -1
- data/ext/{sf_laguerre.c → gsl_native/sf_laguerre.c} +4 -4
- data/ext/{sf_lambert.c → gsl_native/sf_lambert.c} +1 -1
- data/ext/{sf_legendre.c → gsl_native/sf_legendre.c} +1 -1
- data/ext/{sf_log.c → gsl_native/sf_log.c} +4 -4
- data/ext/gsl_native/sf_mathieu.c +235 -0
- data/ext/{sf_power.c → gsl_native/sf_power.c} +1 -1
- data/ext/{sf_psi.c → gsl_native/sf_psi.c} +3 -12
- data/ext/{sf_synchrotron.c → gsl_native/sf_synchrotron.c} +1 -1
- data/ext/{sf_transport.c → gsl_native/sf_transport.c} +1 -1
- data/ext/{sf_trigonometric.c → gsl_native/sf_trigonometric.c} +4 -4
- data/ext/{sf_zeta.c → gsl_native/sf_zeta.c} +1 -5
- data/ext/{signal.c → gsl_native/signal.c} +63 -68
- data/ext/{siman.c → gsl_native/siman.c} +45 -49
- data/ext/{sort.c → gsl_native/sort.c} +6 -7
- data/ext/{spline.c → gsl_native/spline.c} +28 -46
- data/ext/{stats.c → gsl_native/stats.c} +105 -118
- data/ext/{sum.c → gsl_native/sum.c} +34 -34
- data/ext/{tamu_anova.c → gsl_native/tamu_anova.c} +1 -1
- data/ext/{tensor.c → gsl_native/tensor.c} +8 -11
- data/ext/{tensor_source.c → gsl_native/tensor_source.h} +147 -148
- data/ext/{vector.c → gsl_native/vector.c} +11 -14
- data/ext/{vector_complex.c → gsl_native/vector_complex.c} +179 -184
- data/ext/{vector_double.c → gsl_native/vector_double.c} +178 -183
- data/ext/{vector_int.c → gsl_native/vector_int.c} +27 -29
- data/ext/{vector_source.c → gsl_native/vector_source.h} +428 -443
- data/ext/{wavelet.c → gsl_native/wavelet.c} +224 -246
- data/gsl.gemspec +29 -0
- data/lib/gsl.rb +8 -3
- data/lib/gsl/gnuplot.rb +3 -3
- data/lib/gsl/oper.rb +35 -60
- data/lib/gsl/version.rb +3 -0
- data/lib/rbgsl.rb +1 -3
- data/rdoc/alf.rdoc +5 -5
- data/rdoc/blas.rdoc +9 -9
- data/rdoc/bspline.rdoc +17 -17
- data/rdoc/changes.rdoc +4 -9
- data/rdoc/cheb.rdoc +25 -25
- data/rdoc/cholesky_complex.rdoc +21 -21
- data/rdoc/combi.rdoc +37 -37
- data/rdoc/complex.rdoc +22 -22
- data/rdoc/const.rdoc +47 -47
- data/rdoc/dht.rdoc +49 -49
- data/rdoc/diff.rdoc +42 -42
- data/rdoc/ehandling.rdoc +6 -6
- data/rdoc/eigen.rdoc +153 -153
- data/rdoc/fft.rdoc +146 -146
- data/rdoc/fit.rdoc +109 -109
- data/rdoc/function.rdoc +11 -11
- data/rdoc/graph.rdoc +17 -17
- data/rdoc/hist.rdoc +103 -103
- data/rdoc/hist2d.rdoc +42 -42
- data/rdoc/hist3d.rdoc +9 -9
- data/rdoc/integration.rdoc +110 -110
- data/rdoc/interp.rdoc +71 -71
- data/rdoc/intro.rdoc +8 -8
- data/rdoc/linalg.rdoc +188 -188
- data/rdoc/linalg_complex.rdoc +1 -1
- data/rdoc/math.rdoc +58 -58
- data/rdoc/matrix.rdoc +275 -275
- data/rdoc/min.rdoc +57 -57
- data/rdoc/monte.rdoc +22 -22
- data/rdoc/multimin.rdoc +95 -95
- data/rdoc/multiroot.rdoc +80 -80
- data/rdoc/narray.rdoc +32 -32
- data/rdoc/ndlinear.rdoc +54 -54
- data/rdoc/nonlinearfit.rdoc +100 -100
- data/rdoc/ntuple.rdoc +31 -31
- data/rdoc/odeiv.rdoc +88 -88
- data/rdoc/perm.rdoc +90 -90
- data/rdoc/poly.rdoc +66 -66
- data/rdoc/qrng.rdoc +21 -21
- data/rdoc/randist.rdoc +82 -82
- data/rdoc/ref.rdoc +57 -57
- data/rdoc/rng.rdoc +85 -85
- data/rdoc/roots.rdoc +57 -57
- data/rdoc/sf.rdoc +428 -428
- data/rdoc/siman.rdoc +19 -19
- data/rdoc/sort.rdoc +30 -30
- data/rdoc/start.rdoc +8 -8
- data/rdoc/stats.rdoc +52 -52
- data/rdoc/sum.rdoc +12 -12
- data/rdoc/tensor.rdoc +31 -31
- data/rdoc/tut.rdoc +1 -1
- data/rdoc/use.rdoc +39 -39
- data/rdoc/vector.rdoc +188 -188
- data/rdoc/vector_complex.rdoc +24 -24
- data/rdoc/wavelet.rdoc +46 -46
- data/test/gsl/blas_test.rb +79 -0
- data/test/gsl/bspline_test.rb +63 -0
- data/test/gsl/cdf_test.rb +1512 -0
- data/test/gsl/cheb_test.rb +80 -0
- data/test/gsl/combination_test.rb +100 -0
- data/test/gsl/complex_test.rb +20 -0
- data/test/gsl/const_test.rb +29 -0
- data/test/gsl/deriv_test.rb +62 -0
- data/test/gsl/dht_test.rb +79 -0
- data/test/gsl/diff_test.rb +53 -0
- data/test/gsl/eigen_test.rb +563 -0
- data/test/gsl/err_test.rb +23 -0
- data/test/gsl/fit_test.rb +101 -0
- data/test/gsl/histo_test.rb +14 -0
- data/test/gsl/index_test.rb +61 -0
- data/test/gsl/integration_test.rb +274 -0
- data/test/gsl/interp_test.rb +27 -0
- data/test/gsl/linalg_test.rb +463 -0
- data/test/gsl/matrix_nmf_test.rb +37 -0
- data/test/gsl/matrix_test.rb +98 -0
- data/test/gsl/min_test.rb +89 -0
- data/test/gsl/monte_test.rb +77 -0
- data/test/gsl/multifit_test.rb +753 -0
- data/test/gsl/multimin_test.rb +157 -0
- data/test/gsl/multiroot_test.rb +135 -0
- data/test/gsl/multiset_test.rb +52 -0
- data/test/gsl/odeiv_test.rb +275 -0
- data/test/gsl/oper_test.rb +98 -0
- data/test/gsl/poly_test.rb +338 -0
- data/test/gsl/qrng_test.rb +94 -0
- data/test/gsl/quartic_test.rb +28 -0
- data/test/gsl/randist_test.rb +122 -0
- data/test/gsl/rng_test.rb +303 -0
- data/test/gsl/roots_test.rb +78 -0
- data/test/gsl/sf_test.rb +2079 -0
- data/test/gsl/stats_test.rb +122 -0
- data/test/gsl/sum_test.rb +69 -0
- data/test/gsl/tensor_test.rb +396 -0
- data/test/gsl/vector_test.rb +223 -0
- data/test/gsl/wavelet_test.rb +130 -0
- data/test/gsl_test.rb +321 -0
- data/test/test_helper.rb +42 -0
- data/uncrustify.cfg +1693 -0
- metadata +337 -378
- data/README +0 -32
- data/VERSION +0 -1
- data/ext/bspline.c +0 -130
- data/ext/const.c +0 -673
- data/ext/cqp.c +0 -283
- data/ext/extconf.rb +0 -295
- data/ext/fcmp.c +0 -66
- data/ext/fresnel.c +0 -312
- data/ext/jacobi.c +0 -739
- data/ext/ool.c +0 -879
- data/ext/oper_complex_source.c +0 -253
- data/ext/sf_mathieu.c +0 -238
- data/include/rb_gsl_config.h +0 -62
- data/include/rb_gsl_dirac.h +0 -13
- data/rdoc/index.rdoc +0 -62
- data/rdoc/rngextra.rdoc +0 -11
- data/rdoc/screenshot.rdoc +0 -40
- data/setup.rb +0 -1585
- data/tests/blas/amax.rb +0 -14
- data/tests/blas/asum.rb +0 -16
- data/tests/blas/axpy.rb +0 -25
- data/tests/blas/copy.rb +0 -23
- data/tests/blas/dot.rb +0 -23
- data/tests/bspline.rb +0 -53
- data/tests/cdf.rb +0 -1388
- data/tests/cheb.rb +0 -112
- data/tests/combination.rb +0 -123
- data/tests/complex.rb +0 -17
- data/tests/const.rb +0 -24
- data/tests/deriv.rb +0 -85
- data/tests/dht/dht1.rb +0 -17
- data/tests/dht/dht2.rb +0 -23
- data/tests/dht/dht3.rb +0 -23
- data/tests/dht/dht4.rb +0 -23
- data/tests/diff.rb +0 -78
- data/tests/eigen/eigen.rb +0 -220
- data/tests/eigen/gen.rb +0 -105
- data/tests/eigen/genherm.rb +0 -66
- data/tests/eigen/gensymm.rb +0 -68
- data/tests/eigen/nonsymm.rb +0 -53
- data/tests/eigen/nonsymmv.rb +0 -53
- data/tests/eigen/symm-herm.rb +0 -74
- data/tests/err.rb +0 -58
- data/tests/fit.rb +0 -124
- data/tests/gsl_test.rb +0 -118
- data/tests/gsl_test2.rb +0 -110
- data/tests/histo.rb +0 -12
- data/tests/integration/integration1.rb +0 -72
- data/tests/integration/integration2.rb +0 -71
- data/tests/integration/integration3.rb +0 -71
- data/tests/integration/integration4.rb +0 -71
- data/tests/interp.rb +0 -45
- data/tests/linalg/HH.rb +0 -64
- data/tests/linalg/LU.rb +0 -47
- data/tests/linalg/QR.rb +0 -77
- data/tests/linalg/SV.rb +0 -24
- data/tests/linalg/TDN.rb +0 -116
- data/tests/linalg/TDS.rb +0 -122
- data/tests/linalg/bidiag.rb +0 -73
- data/tests/linalg/cholesky.rb +0 -20
- data/tests/linalg/linalg.rb +0 -158
- data/tests/matrix/matrix_complex_test.rb +0 -36
- data/tests/matrix/matrix_nmf_test.rb +0 -39
- data/tests/matrix/matrix_test.rb +0 -48
- data/tests/min.rb +0 -99
- data/tests/monte/miser.rb +0 -31
- data/tests/monte/vegas.rb +0 -45
- data/tests/multifit/test_2dgauss.rb +0 -112
- data/tests/multifit/test_brown.rb +0 -90
- data/tests/multifit/test_enso.rb +0 -246
- data/tests/multifit/test_filip.rb +0 -155
- data/tests/multifit/test_gauss.rb +0 -97
- data/tests/multifit/test_longley.rb +0 -110
- data/tests/multifit/test_multifit.rb +0 -52
- data/tests/multimin.rb +0 -139
- data/tests/multiroot.rb +0 -131
- data/tests/multiset.rb +0 -52
- data/tests/narray/blas_dnrm2.rb +0 -20
- data/tests/odeiv.rb +0 -353
- data/tests/poly/poly.rb +0 -290
- data/tests/poly/special.rb +0 -65
- data/tests/qrng.rb +0 -131
- data/tests/quartic.rb +0 -29
- data/tests/randist.rb +0 -134
- data/tests/rng.rb +0 -305
- data/tests/roots.rb +0 -76
- data/tests/run-test.sh +0 -17
- data/tests/sf/gsl_test_sf.rb +0 -249
- data/tests/sf/test_airy.rb +0 -83
- data/tests/sf/test_bessel.rb +0 -306
- data/tests/sf/test_coulomb.rb +0 -17
- data/tests/sf/test_dilog.rb +0 -25
- data/tests/sf/test_gamma.rb +0 -209
- data/tests/sf/test_hyperg.rb +0 -356
- data/tests/sf/test_legendre.rb +0 -227
- data/tests/sf/test_mathieu.rb +0 -59
- data/tests/sf/test_mode.rb +0 -19
- data/tests/sf/test_sf.rb +0 -839
- data/tests/stats.rb +0 -174
- data/tests/stats_mt.rb +0 -16
- data/tests/sum.rb +0 -98
- data/tests/sys.rb +0 -323
- data/tests/tensor.rb +0 -419
- data/tests/vector/vector_complex_test.rb +0 -101
- data/tests/vector/vector_test.rb +0 -141
- data/tests/wavelet.rb +0 -142
data/gsl.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.dirname(__FILE__) + '/lib/gsl/version'
|
3
|
+
require 'date'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = 'gsl'
|
7
|
+
s.version = GSL::RUBY_GSL_VERSION
|
8
|
+
s.date = Date.today.to_s
|
9
|
+
|
10
|
+
s.require_paths = %w(lib)
|
11
|
+
s.authors = ['Yoshiki Tsunesada', 'David MacMahon', 'Jens Wille', 'Daniel Mendler']
|
12
|
+
s.summary = 'Ruby interface to the GNU Scientific Library'
|
13
|
+
s.description = 'Ruby/GSL is a Ruby interface to the GNU Scientific Library, for numerical computing with Ruby'
|
14
|
+
s.email = 'mail@daniel-mendler.de'
|
15
|
+
s.extensions = Dir['ext/**/extconf.rb']
|
16
|
+
s.extra_rdoc_files = Dir['**/*.rdoc']
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.homepage = 'http://github.com/SciRuby/rb-gsl'
|
19
|
+
s.licenses = ['GPL-2.0']
|
20
|
+
s.rdoc_options = ['--title', "Ruby/GSL (#{GSL::RUBY_GSL_VERSION})", '--charset', 'UTF-8', '--line-numbers', '--all', '--main', 'index.rdoc', '--root', 'rdoc']
|
21
|
+
s.required_ruby_version = '>= 1.9.3'
|
22
|
+
s.requirements = ['GSL (http://www.gnu.org/software/gsl/)']
|
23
|
+
|
24
|
+
s.post_install_message = "#{s.name} can be installed with or without narray support. Please install narray before and reinstall #{s.name} if it is missing."
|
25
|
+
|
26
|
+
s.add_development_dependency 'rake-compiler', '>= 0'
|
27
|
+
s.add_development_dependency 'rake', '>= 0'
|
28
|
+
s.add_development_dependency 'test-unit', '>= 0'
|
29
|
+
end
|
data/lib/gsl.rb
CHANGED
data/lib/gsl/gnuplot.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'gnuplot'
|
2
2
|
|
3
3
|
class Array
|
4
4
|
def to_gplot
|
@@ -18,7 +18,7 @@ class Array
|
|
18
18
|
end
|
19
19
|
def to_gsplot
|
20
20
|
f = ""
|
21
|
-
|
21
|
+
|
22
22
|
if ( self[0].kind_of? Array ) then
|
23
23
|
x = self[0]
|
24
24
|
y = self[1]
|
@@ -35,7 +35,7 @@ class Array
|
|
35
35
|
else
|
36
36
|
self[0].zip( *self[1..-1] ).to_gsplot
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
f
|
40
40
|
end
|
41
41
|
end
|
data/lib/gsl/oper.rb
CHANGED
@@ -1,68 +1,43 @@
|
|
1
|
-
|
2
|
-
alias :_orig_mul :*
|
3
|
-
alias :_orig_div :/
|
4
|
-
def *(other)
|
5
|
-
if other.kind_of?(GSL::Matrix) or other.kind_of?(GSL::Vector) or other.kind_of?(GSL::Matrix::Int) or other.kind_of?(GSL::Vector::Int) or other.kind_of?(GSL::Vector::Complex)or other.kind_of?(GSL::Matrix::Complex)
|
6
|
-
other.scale(self)
|
7
|
-
else
|
8
|
-
if GSL.have_tensor?
|
9
|
-
if other.kind_of?(GSL::Tensor) or other.kind_of?(GSL::Tensor::Int)
|
10
|
-
other.scale(self)
|
11
|
-
else
|
12
|
-
self._orig_mul(other)
|
13
|
-
end
|
14
|
-
else
|
15
|
-
self._orig_mul(other)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
1
|
+
module GSL::Oper
|
19
2
|
|
20
|
-
def
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
elsif other.kind_of?(GSL::Vector::Col)
|
25
|
-
other.scale(1.0/GSL::pow_2(other.dnrm2))
|
26
|
-
elsif other.kind_of?(GSL::Vector::Int::Col)
|
27
|
-
v = other.to_f
|
28
|
-
v.scale(1.0/GSL::pow_2(v.dnrm2))
|
29
|
-
else
|
30
|
-
self._orig_div(other)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
3
|
+
def self.included(base)
|
4
|
+
base.class_eval {
|
5
|
+
alias_method :_gsl_oper_original_mul, :*
|
6
|
+
alias_method :_gsl_oper_original_div, :/
|
34
7
|
|
35
|
-
|
36
|
-
|
37
|
-
|
8
|
+
def *(other)
|
9
|
+
case other
|
10
|
+
when Numeric
|
11
|
+
_gsl_oper_original_mul(other)
|
12
|
+
when GSL::Matrix, GSL::Vector,
|
13
|
+
GSL::Matrix::Int, GSL::Vector::Int,
|
14
|
+
GSL::Vector::Complex, GSL::Matrix::Complex,
|
15
|
+
*GSL.have_tensor? ? [GSL::Tensor, GSL::Tensor::Int] : []
|
16
|
+
other.scale(self)
|
17
|
+
else
|
18
|
+
_gsl_oper_original_mul(other)
|
19
|
+
end
|
20
|
+
end
|
38
21
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
22
|
+
def /(other)
|
23
|
+
case other
|
24
|
+
when Numeric
|
25
|
+
_gsl_oper_original_div(other)
|
26
|
+
when GSL::Poly, GSL::Poly::Int
|
27
|
+
a = GSL::Poly[1]; a[0] = self
|
28
|
+
GSL::Rational.new(a, other)
|
29
|
+
when GSL::Vector::Col
|
30
|
+
other.scale(self / GSL.pow_2(other.dnrm2))
|
31
|
+
when GSL::Vector::Int::Col
|
32
|
+
v = other.to_f
|
33
|
+
v.scale(self / GSL.pow_2(v.dnrm2))
|
34
|
+
else
|
35
|
+
_gsl_oper_original_div(other)
|
48
36
|
end
|
49
|
-
else
|
50
|
-
self._orig_mul(other)
|
51
37
|
end
|
52
|
-
|
38
|
+
}
|
53
39
|
end
|
54
40
|
|
55
|
-
def /(other)
|
56
|
-
if other.kind_of?(GSL::Poly) or other.kind_of?(GSL::Poly::Int)
|
57
|
-
a = GSL::Poly[1]; a[0] = self
|
58
|
-
GSL::Rational.new(a, other)
|
59
|
-
elsif other.kind_of?(GSL::Vector::Col)
|
60
|
-
other.scale(1.0/GSL::pow_2(other.dnrm2))
|
61
|
-
elsif other.kind_of?(GSL::Vector::Int::Col)
|
62
|
-
v = other.to_f
|
63
|
-
v.scale(1.0/GSL::pow_2(v.dnrm2))
|
64
|
-
else
|
65
|
-
self._orig_div(other)
|
66
|
-
end
|
67
|
-
end
|
68
41
|
end
|
42
|
+
|
43
|
+
[Fixnum, Float].each { |klass| klass.send(:include, GSL::Oper) }
|
data/lib/gsl/version.rb
ADDED
data/lib/rbgsl.rb
CHANGED
data/rdoc/alf.rdoc
CHANGED
@@ -5,18 +5,18 @@
|
|
5
5
|
#
|
6
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
7
|
#
|
8
|
-
# ==
|
8
|
+
# == Module structure
|
9
9
|
# * GSL::ALF (module)
|
10
10
|
# * GSL::ALF::Workspace (Class)
|
11
11
|
#
|
12
|
-
# ==
|
12
|
+
# == Creating ALF workspace
|
13
13
|
# ---
|
14
14
|
# * GSL::ALF::Workspace.alloc(lmax)
|
15
15
|
# * GSL::ALF.alloc(lmax)
|
16
16
|
#
|
17
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
18
|
#
|
19
|
-
# ==
|
19
|
+
# == Methods
|
20
20
|
# ---
|
21
21
|
# * GSL::ALF::Workspace#params(csphase, cnorm, norm)
|
22
22
|
#
|
@@ -49,7 +49,7 @@
|
|
49
49
|
# must have enough length to store all the values for the polynomial
|
50
50
|
# P_l^m(x), and the length required can be known using
|
51
51
|
# <tt>ALF::array_size(lmax)</tt>. If a vector is not given, a new vector is
|
52
|
-
# created and returned.
|
52
|
+
# created and returned.
|
53
53
|
#
|
54
54
|
# The indices of <tt>result</tt> (and <tt>deriv</tt> corresponding to the
|
55
55
|
# associated Legendre function of degree <tt>l</tt> and order <tt>m</tt> can
|
@@ -61,7 +61,7 @@
|
|
61
61
|
# * GSL::ALF::Workspace#Plm_deriv_array(lmax, x, result, deriv)
|
62
62
|
#
|
63
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.
|
64
|
+
# derivatives dP_l^m(x)/dx for 0 <= l <= lmax, 0 <= m <= l.
|
65
65
|
#
|
66
66
|
# ---
|
67
67
|
# * GSL::ALF::array_size(lmax)
|
data/rdoc/blas.rdoc
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
#
|
2
2
|
# = BLAS Support
|
3
3
|
# The following is the list of the methods defined in <tt>GSL::Blas</tt> module.
|
4
|
-
# See {GSL reference}[
|
4
|
+
# See {GSL reference}[https://gnu.org/software/gsl/manual/gsl-ref_12.html#SEC212] for details.
|
5
5
|
#
|
6
|
-
# ==
|
6
|
+
# == Level 1
|
7
7
|
# ---
|
8
8
|
# * GSL::Blas::ddot(x, y)
|
9
9
|
# * GSL::Vector#blas_ddot(y)
|
@@ -134,7 +134,7 @@
|
|
134
134
|
# * GSL::Blas::drotm!(x, y, p)
|
135
135
|
#
|
136
136
|
#
|
137
|
-
# ==
|
137
|
+
# == Level 2
|
138
138
|
# ---
|
139
139
|
# * GSL::Blas::dgemv(trans, a, A, x, b, y)
|
140
140
|
# * GSL::Blas::dgemv!(trans, a, A, x, b, y)
|
@@ -186,7 +186,7 @@
|
|
186
186
|
# * GSL::Blas::zher2!(uplo, a, x, y, A)
|
187
187
|
#
|
188
188
|
#
|
189
|
-
# ==
|
189
|
+
# == Level 3
|
190
190
|
# ---
|
191
191
|
# * GSL::Blas::dgemm(transA, transB, alpha, A, B, beta, C)
|
192
192
|
# * GSL::Blas::dgemm(A, B)
|
@@ -234,7 +234,7 @@
|
|
234
234
|
# * GSL::Blas::zher2k(uplo, trans, diag, alpha, A, B, beta, C)
|
235
235
|
#
|
236
236
|
#
|
237
|
-
# ==
|
237
|
+
# == Constants
|
238
238
|
# ---
|
239
239
|
# * GSL::Blas::CblasRowMajor
|
240
240
|
# * GSL::Blas::RowMajor
|
@@ -260,10 +260,10 @@
|
|
260
260
|
# * GSL::Blas::Right
|
261
261
|
#
|
262
262
|
#
|
263
|
-
# {prev}[link:
|
264
|
-
# {next}[link:
|
263
|
+
# {prev}[link:rdoc/sort_rdoc.html]
|
264
|
+
# {next}[link:rdoc/linalg_rdoc.html]
|
265
265
|
#
|
266
|
-
# {Reference index}[link:
|
267
|
-
# {top}[link:
|
266
|
+
# {Reference index}[link:rdoc/ref_rdoc.html]
|
267
|
+
# {top}[link:index.html]
|
268
268
|
#
|
269
269
|
#
|
data/rdoc/bspline.rdoc
CHANGED
@@ -2,24 +2,24 @@
|
|
2
2
|
# = Basis Splines
|
3
3
|
# This chapter describes functions for the computation of smoothing basis splines (B-splines). This is only for GSL-1.9 or later.
|
4
4
|
#
|
5
|
-
# 1. {Overview}[link:
|
6
|
-
# 1. {Initializing the B-splines solver}[link:
|
7
|
-
# 1. {Constructing the knots vector}[link:
|
8
|
-
# 1. {Evaluation of B-splines}[link:
|
5
|
+
# 1. {Overview}[link:rdoc/bspline_rdoc.html#label-Overview]
|
6
|
+
# 1. {Initializing the B-splines solver}[link:rdoc/bspline_rdoc.html#label-Initializing+the+B-splines+solver]
|
7
|
+
# 1. {Constructing the knots vector}[link:rdoc/bspline_rdoc.html#label-Constructing+the+knots+vector]
|
8
|
+
# 1. {Evaluation of B-splines}[link:rdoc/bspline_rdoc.html#label-Evaluation+of+B-splines]
|
9
9
|
#
|
10
|
-
# ==
|
10
|
+
# == Overview
|
11
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.
|
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
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.
|
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
15
|
#
|
16
|
-
# ==
|
16
|
+
# == Initializing the B-splines solver
|
17
17
|
# ---
|
18
18
|
# * GSL::BSpline.alloc(k, nbreak)
|
19
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>.
|
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
21
|
#
|
22
|
-
# ==
|
22
|
+
# == Constructing the knots vector
|
23
23
|
# ---
|
24
24
|
# * GSL::BSpline#knots(breakpts)
|
25
25
|
#
|
@@ -27,16 +27,16 @@
|
|
27
27
|
# ---
|
28
28
|
# * GSL::BSpline#knots_uniform(a, b)
|
29
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
|
-
# ==
|
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
|
+
# == Evaluation of B-splines
|
32
32
|
# ---
|
33
33
|
# * GSL::BSpline#eval(x[, B])
|
34
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.
|
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
36
|
#
|
37
|
-
# {prev}[link:
|
38
|
-
# {next}[link:
|
37
|
+
# {prev}[link:rdoc/nonlinearfit_rdoc.html]
|
38
|
+
# {next}[link:rdoc/const_rdoc.html]
|
39
39
|
#
|
40
|
-
# {Reference index}[link:
|
41
|
-
# {top}[link:
|
40
|
+
# {Reference index}[link:rdoc/ref_rdoc.html]
|
41
|
+
# {top}[link:index.html]
|
42
42
|
#
|
data/rdoc/changes.rdoc
CHANGED
@@ -10,12 +10,7 @@
|
|
10
10
|
# The changes that could break old scripts are described below. They are
|
11
11
|
# followed by highlights of the other enhancements and new features.
|
12
12
|
#
|
13
|
-
#
|
14
|
-
# using Subversion's log command to look at the repository...
|
15
|
-
#
|
16
|
-
# svn log http://rb-gsl.rubyforge.org/svn/trunk/rb-gsl
|
17
|
-
#
|
18
|
-
# == {}[link:index.html"name="1] Backwards incompatibilities introduced in Ruby/GSL 1.11.2
|
13
|
+
# == Backwards incompatibilities introduced in Ruby/GSL 1.11.2
|
19
14
|
#
|
20
15
|
# * FFT interface has been extensively changed.
|
21
16
|
#
|
@@ -39,13 +34,13 @@
|
|
39
34
|
#
|
40
35
|
# * GSL::Complex objects are now immutable.
|
41
36
|
#
|
42
|
-
# ==
|
37
|
+
# == Enhancements and features introduced in Ruby/GSL 1.11.2
|
43
38
|
#
|
44
39
|
# * Now distributed and installable as a Ruby Gem.
|
45
40
|
#
|
46
41
|
# * Allow nil for real and/or imag in GSL::Vector::Complex#set(i,re,im) to NOT
|
47
|
-
# set that component. For example,
|
48
|
-
# 1]
|
42
|
+
# set that component. For example, <tt>z=GSL::Vector::Complex[1]; z[0] = [nil,
|
43
|
+
# 1]</tt> will set \z[0] to \GSL::Complex[0,1].
|
49
44
|
#
|
50
45
|
# * Added GSL::Vector::Complex#to_s method.
|
51
46
|
#
|
data/rdoc/cheb.rdoc
CHANGED
@@ -1,24 +1,24 @@
|
|
1
1
|
#
|
2
2
|
# = Chebyshev Approximations
|
3
|
-
# This chapter describes routines for computing Chebyshev approximations to
|
4
|
-
# univariate functions. A Chebyshev approximation is a truncation of the series
|
5
|
-
# f(x) = \sum c_n T_n(x),
|
6
|
-
# where the Chebyshev polynomials T_n(x) = \cos(n \arccos x)
|
7
|
-
# provide an orthogonal basis of polynomials on the interval [-1,1]
|
8
|
-
# with the weight function 1 / \sqrt{1-x^2}.
|
9
|
-
# The first few Chebyshev polynomials are,
|
10
|
-
# T_0(x) = 1, T_1(x) = x, T_2(x) = 2 x^2 - 1.
|
11
|
-
# For further information see Abramowitz & Stegun, Chapter 22.
|
12
|
-
#
|
13
|
-
# 1. {GSL::Cheb class}[link:
|
14
|
-
# 1. {Chebyshev Series Evaluation}[link:
|
15
|
-
# 1. {Derivatives and Integrals}[link:
|
16
|
-
# 1. {Examples}[link:
|
17
|
-
#
|
18
|
-
# ==
|
3
|
+
# This chapter describes routines for computing Chebyshev approximations to
|
4
|
+
# univariate functions. A Chebyshev approximation is a truncation of the series
|
5
|
+
# f(x) = \sum c_n T_n(x),
|
6
|
+
# where the Chebyshev polynomials T_n(x) = \cos(n \arccos x)
|
7
|
+
# provide an orthogonal basis of polynomials on the interval [-1,1]
|
8
|
+
# with the weight function 1 / \sqrt{1-x^2}.
|
9
|
+
# The first few Chebyshev polynomials are,
|
10
|
+
# T_0(x) = 1, T_1(x) = x, T_2(x) = 2 x^2 - 1.
|
11
|
+
# For further information see Abramowitz & Stegun, Chapter 22.
|
12
|
+
#
|
13
|
+
# 1. {GSL::Cheb class}[link:rdoc/cheb_rdoc.html#label-Cheb+class]
|
14
|
+
# 1. {Chebyshev Series Evaluation}[link:rdoc/cheb_rdoc.html#label-Chebyshev+Series+Evaluation]
|
15
|
+
# 1. {Derivatives and Integrals}[link:rdoc/cheb_rdoc.html#label-Derivatives+and+Integrals]
|
16
|
+
# 1. {Examples}[link:rdoc/cheb_rdoc.html#label-Example]
|
17
|
+
#
|
18
|
+
# == <tt>Cheb</tt> class
|
19
19
|
#
|
20
20
|
# ---
|
21
|
-
# * GSL::Cheb.alloc(n)
|
21
|
+
# * GSL::Cheb.alloc(n)
|
22
22
|
#
|
23
23
|
# This create an instance of the GSL::Cheb class for a Chebyshev series of order n.
|
24
24
|
#
|
@@ -26,7 +26,7 @@
|
|
26
26
|
# ---
|
27
27
|
# * GSL::Cheb#init(f, a, b)
|
28
28
|
#
|
29
|
-
# This computes the Chebyshev approximation the function <tt>f</tt> over the range (<tt>a,b</tt>) to the previously specified order. Where <tt>f</tt> is a {GSL::Function}[link:
|
29
|
+
# This computes the Chebyshev approximation the function <tt>f</tt> over the range (<tt>a,b</tt>) to the previously specified order. Where <tt>f</tt> is a {GSL::Function}[link:rdoc/function_rdoc.html] object. The computation of the Chebyshev approximation is an O(n^2) process, and requires <tt>n</tt> function evaluations.
|
30
30
|
#
|
31
31
|
# * ex: Approximate a step function defined in (0, 1) by a Chebyshev series of order 40.
|
32
32
|
# f = GSL::Function.alloc { |x|
|
@@ -40,7 +40,7 @@
|
|
40
40
|
# cs = GSL::Cheb.alloc(40)
|
41
41
|
# cs.init(f, 0, 1)
|
42
42
|
#
|
43
|
-
# ==
|
43
|
+
# == Chebyshev Series Evaluation
|
44
44
|
# ---
|
45
45
|
# * GSL::Cheb#eval(x)
|
46
46
|
#
|
@@ -51,7 +51,7 @@
|
|
51
51
|
#
|
52
52
|
# This evaluates the Chebyshev series at a given point <tt>x</tt>, to (at most) the given order <tt>n</tt>.
|
53
53
|
#
|
54
|
-
# ==
|
54
|
+
# == Derivatives and Integrals
|
55
55
|
#
|
56
56
|
# ---
|
57
57
|
# * GSL::Cheb#calc_deriv()
|
@@ -65,7 +65,7 @@
|
|
65
65
|
#
|
66
66
|
# This computes the integral of the series, and returns a new GSL::Cheb object which contains the computed integral coefficients. The reciever is not changed.
|
67
67
|
#
|
68
|
-
# ==
|
68
|
+
# == Example
|
69
69
|
# #!/usr/bin/env ruby
|
70
70
|
# require("gsl")
|
71
71
|
#
|
@@ -91,9 +91,9 @@
|
|
91
91
|
#
|
92
92
|
# See also the example scripts in <tt>examples/cheb/</tt>.
|
93
93
|
#
|
94
|
-
# {prev}[link:
|
95
|
-
# {next}[link:
|
94
|
+
# {prev}[link:rdoc/diff_rdoc.html]
|
95
|
+
# {next}[link:rdoc/sum_rdoc.html]
|
96
96
|
#
|
97
|
-
# {Reference index}[link:
|
98
|
-
# {top}[link:
|
97
|
+
# {Reference index}[link:rdoc/ref_rdoc.html]
|
98
|
+
# {top}[link:index.html]
|
99
99
|
#
|