gsl 1.15.3 → 1.16.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.travis.yml +24 -0
- data/AUTHORS +10 -2
- data/COPYING +341 -339
- data/ChangeLog +612 -554
- data/Gemfile +4 -0
- data/README.md +77 -0
- data/Rakefile +14 -93
- data/THANKS +1 -1
- data/examples/blas/blas.rb +1 -1
- data/examples/bspline.rb +3 -3
- data/examples/complex/functions.rb +4 -4
- data/examples/complex/mul.rb +1 -1
- data/examples/const/physconst.rb +4 -4
- data/examples/const/travel.rb +4 -4
- data/examples/eigen/nonsymmv.rb +1 -1
- data/examples/eigen/qhoscillator.rb +3 -3
- data/examples/fft/radix2.rb +1 -1
- data/examples/fft/real-halfcomplex.rb +3 -3
- data/examples/fft/real-halfcomplex2.rb +3 -3
- data/examples/fit/expfit.rb +1 -1
- data/examples/fit/multifit.rb +1 -1
- data/examples/fit/ndlinear.rb +44 -44
- data/examples/fit/nonlinearfit.rb +1 -1
- data/examples/fit/wlinear.rb +3 -3
- data/examples/function/function.rb +1 -1
- data/examples/function/min.rb +1 -1
- data/examples/function/synchrotron.rb +2 -2
- data/examples/gallery/koch.rb +1 -1
- data/examples/histogram/cauchy.rb +2 -2
- data/examples/histogram/exponential.rb +1 -1
- data/examples/histogram/histo3d.rb +1 -1
- data/examples/histogram/histogram-pdf.rb +2 -2
- data/examples/histogram/xexp.rb +1 -1
- data/examples/integration/ahmed.rb +2 -2
- data/examples/integration/cosmology.rb +7 -7
- data/examples/integration/friedmann.rb +4 -4
- data/examples/integration/qng.rb +1 -1
- data/examples/interp/demo.rb +2 -2
- data/examples/linalg/LQ_solve.rb +1 -1
- data/examples/linalg/LU.rb +1 -1
- data/examples/linalg/LU2.rb +1 -1
- data/examples/linalg/LU_narray.rb +1 -1
- data/examples/linalg/PTLQ.rb +1 -1
- data/examples/linalg/QRPT.rb +1 -1
- data/examples/linalg/chol.rb +1 -1
- data/examples/linalg/chol_narray.rb +1 -1
- data/examples/linalg/complex.rb +1 -1
- data/examples/math/elementary.rb +1 -1
- data/examples/math/functions.rb +1 -1
- data/examples/math/inf_nan.rb +1 -1
- data/examples/math/minmax.rb +1 -1
- data/examples/math/power.rb +1 -1
- data/examples/math/test.rb +1 -1
- data/examples/min.rb +1 -1
- data/examples/multimin/bundle.rb +1 -1
- data/examples/multimin/cqp.rb +17 -17
- data/examples/multiroot/fsolver3.rb +1 -1
- data/examples/odeiv/binarysystem.rb +12 -12
- data/examples/odeiv/demo.rb +3 -3
- data/examples/odeiv/frei1.rb +7 -7
- data/examples/odeiv/frei2.rb +4 -4
- data/examples/odeiv/oscillator.rb +1 -1
- data/examples/odeiv/sedov.rb +3 -3
- data/examples/odeiv/whitedwarf.rb +11 -11
- data/examples/permutation/ex1.rb +2 -2
- data/examples/permutation/permutation.rb +1 -1
- data/examples/poly/demo.rb +1 -1
- data/examples/random/diffusion.rb +1 -1
- data/examples/random/generator.rb +2 -2
- data/examples/random/randomwalk.rb +3 -3
- data/examples/random/rng.rb +1 -1
- data/examples/roots/bisection.rb +1 -1
- data/examples/roots/brent.rb +1 -1
- data/examples/roots/demo.rb +1 -1
- data/examples/roots/newton.rb +2 -2
- data/examples/roots/recombination.gp +0 -1
- data/examples/sf/hyperg.rb +1 -1
- data/examples/sf/sphbessel.rb +1 -1
- data/examples/sort/sort.rb +1 -1
- data/examples/tamu_anova.rb +4 -4
- data/examples/vector/add.rb +1 -1
- data/examples/vector/decimate.rb +1 -1
- data/examples/vector/gnuplot.rb +8 -8
- data/examples/vector/vector.rb +2 -2
- data/examples/wavelet/wavelet1.rb +1 -1
- data/ext/{alf.c → gsl_native/alf.c} +10 -10
- data/ext/{array.c → gsl_native/array.c} +70 -159
- data/ext/{array_complex.c → gsl_native/array_complex.c} +63 -66
- data/ext/{blas.c → gsl_native/blas.c} +2 -3
- data/ext/{blas1.c → gsl_native/blas1.c} +35 -36
- data/ext/{blas2.c → gsl_native/blas2.c} +57 -62
- data/ext/{blas3.c → gsl_native/blas3.c} +57 -58
- data/ext/{block.c → gsl_native/block.c} +14 -18
- data/ext/{block_source.c → gsl_native/block_source.h} +110 -112
- data/ext/gsl_native/bspline.c +122 -0
- data/ext/{bundle.c → gsl_native/bundle.c} +0 -0
- data/ext/{cdf.c → gsl_native/cdf.c} +79 -93
- data/ext/{cheb.c → gsl_native/cheb.c} +78 -89
- data/ext/{combination.c → gsl_native/combination.c} +11 -19
- data/ext/{common.c → gsl_native/common.c} +9 -41
- data/ext/{complex.c → gsl_native/complex.c} +116 -118
- data/ext/gsl_native/const.c +331 -0
- data/ext/{const_additional.c → gsl_native/const_additional.c} +13 -34
- data/ext/gsl_native/cqp.c +283 -0
- data/ext/{deriv.c → gsl_native/deriv.c} +25 -33
- data/ext/{dht.c → gsl_native/dht.c} +23 -31
- data/ext/{diff.c → gsl_native/diff.c} +26 -28
- data/ext/{dirac.c → gsl_native/dirac.c} +45 -46
- data/ext/{eigen.c → gsl_native/eigen.c} +1044 -1095
- data/ext/{error.c → gsl_native/error.c} +18 -18
- data/ext/gsl_native/extconf.rb +118 -0
- data/ext/{fft.c → gsl_native/fft.c} +197 -204
- data/ext/{fit.c → gsl_native/fit.c} +17 -18
- data/ext/gsl_native/fresnel.c +312 -0
- data/ext/{function.c → gsl_native/function.c} +37 -43
- data/ext/{geometry.c → gsl_native/geometry.c} +16 -16
- data/ext/{graph.c → gsl_native/graph.c} +39 -89
- data/ext/{gsl.c → gsl_native/gsl.c} +12 -33
- data/ext/{gsl_narray.c → gsl_native/gsl_narray.c} +20 -30
- data/ext/{histogram.c → gsl_native/histogram.c} +133 -160
- data/ext/{histogram2d.c → gsl_native/histogram2d.c} +78 -104
- data/ext/{histogram3d.c → gsl_native/histogram3d.c} +76 -76
- data/ext/{histogram3d_source.c → gsl_native/histogram3d_source.c} +196 -197
- data/ext/{histogram_find.c → gsl_native/histogram_find.c} +32 -34
- data/ext/{histogram_oper.c → gsl_native/histogram_oper.c} +43 -52
- data/ext/{ieee.c → gsl_native/ieee.c} +9 -21
- data/{include → ext/gsl_native/include}/rb_gsl.h +4 -26
- data/{include → ext/gsl_native/include}/rb_gsl_array.h +15 -39
- data/{include → ext/gsl_native/include}/rb_gsl_cheb.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_common.h +61 -61
- data/{include → ext/gsl_native/include}/rb_gsl_complex.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_const.h +0 -6
- data/ext/gsl_native/include/rb_gsl_dirac.h +6 -0
- data/{include → ext/gsl_native/include}/rb_gsl_eigen.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_fft.h +0 -13
- data/{include → ext/gsl_native/include}/rb_gsl_fit.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_function.h +0 -4
- data/{include → ext/gsl_native/include}/rb_gsl_graph.h +2 -4
- data/{include → ext/gsl_native/include}/rb_gsl_histogram.h +8 -8
- data/{include → ext/gsl_native/include}/rb_gsl_histogram3d.h +50 -50
- data/{include → ext/gsl_native/include}/rb_gsl_integration.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_interp.h +0 -5
- data/{include → ext/gsl_native/include}/rb_gsl_linalg.h +2 -6
- data/{include → ext/gsl_native/include}/rb_gsl_math.h +0 -6
- data/{include → ext/gsl_native/include}/rb_gsl_odeiv.h +0 -3
- data/{include → ext/gsl_native/include}/rb_gsl_poly.h +3 -7
- data/{include → ext/gsl_native/include}/rb_gsl_rational.h +1 -8
- data/{include → ext/gsl_native/include}/rb_gsl_rng.h +0 -1
- data/{include → ext/gsl_native/include}/rb_gsl_root.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_sf.h +39 -48
- data/{include → ext/gsl_native/include}/rb_gsl_statistics.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_tensor.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_with_narray.h +3 -1
- data/{include → ext/gsl_native/include}/templates_off.h +0 -0
- data/{include → ext/gsl_native/include}/templates_on.h +1 -1
- data/ext/{integration.c → gsl_native/integration.c} +164 -189
- data/ext/{interp.c → gsl_native/interp.c} +25 -38
- data/ext/gsl_native/jacobi.c +733 -0
- data/ext/{linalg.c → gsl_native/linalg.c} +462 -589
- data/ext/{linalg_complex.c → gsl_native/linalg_complex.c} +93 -106
- data/ext/{math.c → gsl_native/math.c} +48 -67
- data/ext/{matrix.c → gsl_native/matrix.c} +13 -16
- data/ext/{matrix_complex.c → gsl_native/matrix_complex.c} +119 -123
- data/ext/{matrix_double.c → gsl_native/matrix_double.c} +79 -82
- data/ext/{matrix_int.c → gsl_native/matrix_int.c} +53 -54
- data/ext/{matrix_source.c → gsl_native/matrix_source.h} +292 -318
- data/ext/{min.c → gsl_native/min.c} +45 -76
- data/ext/{monte.c → gsl_native/monte.c} +50 -64
- data/ext/{multifit.c → gsl_native/multifit.c} +142 -151
- data/ext/{multimin.c → gsl_native/multimin.c} +64 -92
- data/ext/{multimin_fsdf.c → gsl_native/multimin_fsdf.c} +16 -16
- data/ext/{multiroots.c → gsl_native/multiroots.c} +73 -76
- data/ext/{multiset.c → gsl_native/multiset.c} +4 -8
- data/ext/{ndlinear.c → gsl_native/ndlinear.c} +320 -321
- data/ext/{nmf.c → gsl_native/nmf.c} +11 -11
- data/ext/{nmf_wrap.c → gsl_native/nmf_wrap.c} +1 -1
- data/ext/{ntuple.c → gsl_native/ntuple.c} +23 -23
- data/ext/{odeiv.c → gsl_native/odeiv.c} +101 -116
- data/ext/gsl_native/ool.c +879 -0
- data/ext/{permutation.c → gsl_native/permutation.c} +39 -37
- data/ext/{poly.c → gsl_native/poly.c} +10 -13
- data/ext/{poly2.c → gsl_native/poly2.c} +16 -16
- data/ext/{poly_source.c → gsl_native/poly_source.h} +249 -293
- data/ext/{qrng.c → gsl_native/qrng.c} +9 -20
- data/ext/{randist.c → gsl_native/randist.c} +222 -247
- data/ext/{rational.c → gsl_native/rational.c} +12 -12
- data/ext/{rng.c → gsl_native/rng.c} +30 -47
- data/ext/{root.c → gsl_native/root.c} +47 -48
- data/ext/{sf.c → gsl_native/sf.c} +196 -244
- data/ext/{sf_airy.c → gsl_native/sf_airy.c} +2 -2
- data/ext/{sf_bessel.c → gsl_native/sf_bessel.c} +7 -7
- data/ext/{sf_clausen.c → gsl_native/sf_clausen.c} +1 -1
- data/ext/{sf_coulomb.c → gsl_native/sf_coulomb.c} +40 -40
- data/ext/{sf_coupling.c → gsl_native/sf_coupling.c} +30 -30
- data/ext/{sf_dawson.c → gsl_native/sf_dawson.c} +1 -1
- data/ext/{sf_debye.c → gsl_native/sf_debye.c} +1 -10
- data/ext/{sf_dilog.c → gsl_native/sf_dilog.c} +1 -1
- data/ext/{sf_elementary.c → gsl_native/sf_elementary.c} +3 -3
- data/ext/{sf_ellint.c → gsl_native/sf_ellint.c} +43 -43
- data/ext/{sf_elljac.c → gsl_native/sf_elljac.c} +3 -3
- data/ext/{sf_erfc.c → gsl_native/sf_erfc.c} +1 -5
- data/ext/{sf_exp.c → gsl_native/sf_exp.c} +3 -3
- data/ext/{sf_expint.c → gsl_native/sf_expint.c} +2 -12
- data/ext/{sf_fermi_dirac.c → gsl_native/sf_fermi_dirac.c} +1 -1
- data/ext/{sf_gamma.c → gsl_native/sf_gamma.c} +2 -6
- data/ext/{sf_gegenbauer.c → gsl_native/sf_gegenbauer.c} +1 -1
- data/ext/{sf_hyperg.c → gsl_native/sf_hyperg.c} +1 -1
- data/ext/{sf_laguerre.c → gsl_native/sf_laguerre.c} +4 -4
- data/ext/{sf_lambert.c → gsl_native/sf_lambert.c} +1 -1
- data/ext/{sf_legendre.c → gsl_native/sf_legendre.c} +1 -1
- data/ext/{sf_log.c → gsl_native/sf_log.c} +4 -4
- data/ext/gsl_native/sf_mathieu.c +235 -0
- data/ext/{sf_power.c → gsl_native/sf_power.c} +1 -1
- data/ext/{sf_psi.c → gsl_native/sf_psi.c} +3 -12
- data/ext/{sf_synchrotron.c → gsl_native/sf_synchrotron.c} +1 -1
- data/ext/{sf_transport.c → gsl_native/sf_transport.c} +1 -1
- data/ext/{sf_trigonometric.c → gsl_native/sf_trigonometric.c} +4 -4
- data/ext/{sf_zeta.c → gsl_native/sf_zeta.c} +1 -5
- data/ext/{signal.c → gsl_native/signal.c} +63 -68
- data/ext/{siman.c → gsl_native/siman.c} +45 -49
- data/ext/{sort.c → gsl_native/sort.c} +6 -7
- data/ext/{spline.c → gsl_native/spline.c} +28 -46
- data/ext/{stats.c → gsl_native/stats.c} +105 -118
- data/ext/{sum.c → gsl_native/sum.c} +34 -34
- data/ext/{tamu_anova.c → gsl_native/tamu_anova.c} +1 -1
- data/ext/{tensor.c → gsl_native/tensor.c} +8 -11
- data/ext/{tensor_source.c → gsl_native/tensor_source.h} +147 -148
- data/ext/{vector.c → gsl_native/vector.c} +11 -14
- data/ext/{vector_complex.c → gsl_native/vector_complex.c} +179 -184
- data/ext/{vector_double.c → gsl_native/vector_double.c} +178 -183
- data/ext/{vector_int.c → gsl_native/vector_int.c} +27 -29
- data/ext/{vector_source.c → gsl_native/vector_source.h} +428 -443
- data/ext/{wavelet.c → gsl_native/wavelet.c} +224 -246
- data/gsl.gemspec +29 -0
- data/lib/gsl.rb +8 -3
- data/lib/gsl/gnuplot.rb +3 -3
- data/lib/gsl/oper.rb +35 -60
- data/lib/gsl/version.rb +3 -0
- data/lib/rbgsl.rb +1 -3
- data/rdoc/alf.rdoc +5 -5
- data/rdoc/blas.rdoc +9 -9
- data/rdoc/bspline.rdoc +17 -17
- data/rdoc/changes.rdoc +4 -9
- data/rdoc/cheb.rdoc +25 -25
- data/rdoc/cholesky_complex.rdoc +21 -21
- data/rdoc/combi.rdoc +37 -37
- data/rdoc/complex.rdoc +22 -22
- data/rdoc/const.rdoc +47 -47
- data/rdoc/dht.rdoc +49 -49
- data/rdoc/diff.rdoc +42 -42
- data/rdoc/ehandling.rdoc +6 -6
- data/rdoc/eigen.rdoc +153 -153
- data/rdoc/fft.rdoc +146 -146
- data/rdoc/fit.rdoc +109 -109
- data/rdoc/function.rdoc +11 -11
- data/rdoc/graph.rdoc +17 -17
- data/rdoc/hist.rdoc +103 -103
- data/rdoc/hist2d.rdoc +42 -42
- data/rdoc/hist3d.rdoc +9 -9
- data/rdoc/integration.rdoc +110 -110
- data/rdoc/interp.rdoc +71 -71
- data/rdoc/intro.rdoc +8 -8
- data/rdoc/linalg.rdoc +188 -188
- data/rdoc/linalg_complex.rdoc +1 -1
- data/rdoc/math.rdoc +58 -58
- data/rdoc/matrix.rdoc +275 -275
- data/rdoc/min.rdoc +57 -57
- data/rdoc/monte.rdoc +22 -22
- data/rdoc/multimin.rdoc +95 -95
- data/rdoc/multiroot.rdoc +80 -80
- data/rdoc/narray.rdoc +32 -32
- data/rdoc/ndlinear.rdoc +54 -54
- data/rdoc/nonlinearfit.rdoc +100 -100
- data/rdoc/ntuple.rdoc +31 -31
- data/rdoc/odeiv.rdoc +88 -88
- data/rdoc/perm.rdoc +90 -90
- data/rdoc/poly.rdoc +66 -66
- data/rdoc/qrng.rdoc +21 -21
- data/rdoc/randist.rdoc +82 -82
- data/rdoc/ref.rdoc +57 -57
- data/rdoc/rng.rdoc +85 -85
- data/rdoc/roots.rdoc +57 -57
- data/rdoc/sf.rdoc +428 -428
- data/rdoc/siman.rdoc +19 -19
- data/rdoc/sort.rdoc +30 -30
- data/rdoc/start.rdoc +8 -8
- data/rdoc/stats.rdoc +52 -52
- data/rdoc/sum.rdoc +12 -12
- data/rdoc/tensor.rdoc +31 -31
- data/rdoc/tut.rdoc +1 -1
- data/rdoc/use.rdoc +39 -39
- data/rdoc/vector.rdoc +188 -188
- data/rdoc/vector_complex.rdoc +24 -24
- data/rdoc/wavelet.rdoc +46 -46
- data/test/gsl/blas_test.rb +79 -0
- data/test/gsl/bspline_test.rb +63 -0
- data/test/gsl/cdf_test.rb +1512 -0
- data/test/gsl/cheb_test.rb +80 -0
- data/test/gsl/combination_test.rb +100 -0
- data/test/gsl/complex_test.rb +20 -0
- data/test/gsl/const_test.rb +29 -0
- data/test/gsl/deriv_test.rb +62 -0
- data/test/gsl/dht_test.rb +79 -0
- data/test/gsl/diff_test.rb +53 -0
- data/test/gsl/eigen_test.rb +563 -0
- data/test/gsl/err_test.rb +23 -0
- data/test/gsl/fit_test.rb +101 -0
- data/test/gsl/histo_test.rb +14 -0
- data/test/gsl/index_test.rb +61 -0
- data/test/gsl/integration_test.rb +274 -0
- data/test/gsl/interp_test.rb +27 -0
- data/test/gsl/linalg_test.rb +463 -0
- data/test/gsl/matrix_nmf_test.rb +37 -0
- data/test/gsl/matrix_test.rb +98 -0
- data/test/gsl/min_test.rb +89 -0
- data/test/gsl/monte_test.rb +77 -0
- data/test/gsl/multifit_test.rb +753 -0
- data/test/gsl/multimin_test.rb +157 -0
- data/test/gsl/multiroot_test.rb +135 -0
- data/test/gsl/multiset_test.rb +52 -0
- data/test/gsl/odeiv_test.rb +275 -0
- data/test/gsl/oper_test.rb +98 -0
- data/test/gsl/poly_test.rb +338 -0
- data/test/gsl/qrng_test.rb +94 -0
- data/test/gsl/quartic_test.rb +28 -0
- data/test/gsl/randist_test.rb +122 -0
- data/test/gsl/rng_test.rb +303 -0
- data/test/gsl/roots_test.rb +78 -0
- data/test/gsl/sf_test.rb +2079 -0
- data/test/gsl/stats_test.rb +122 -0
- data/test/gsl/sum_test.rb +69 -0
- data/test/gsl/tensor_test.rb +396 -0
- data/test/gsl/vector_test.rb +223 -0
- data/test/gsl/wavelet_test.rb +130 -0
- data/test/gsl_test.rb +321 -0
- data/test/test_helper.rb +42 -0
- data/uncrustify.cfg +1693 -0
- metadata +337 -378
- data/README +0 -32
- data/VERSION +0 -1
- data/ext/bspline.c +0 -130
- data/ext/const.c +0 -673
- data/ext/cqp.c +0 -283
- data/ext/extconf.rb +0 -295
- data/ext/fcmp.c +0 -66
- data/ext/fresnel.c +0 -312
- data/ext/jacobi.c +0 -739
- data/ext/ool.c +0 -879
- data/ext/oper_complex_source.c +0 -253
- data/ext/sf_mathieu.c +0 -238
- data/include/rb_gsl_config.h +0 -62
- data/include/rb_gsl_dirac.h +0 -13
- data/rdoc/index.rdoc +0 -62
- data/rdoc/rngextra.rdoc +0 -11
- data/rdoc/screenshot.rdoc +0 -40
- data/setup.rb +0 -1585
- data/tests/blas/amax.rb +0 -14
- data/tests/blas/asum.rb +0 -16
- data/tests/blas/axpy.rb +0 -25
- data/tests/blas/copy.rb +0 -23
- data/tests/blas/dot.rb +0 -23
- data/tests/bspline.rb +0 -53
- data/tests/cdf.rb +0 -1388
- data/tests/cheb.rb +0 -112
- data/tests/combination.rb +0 -123
- data/tests/complex.rb +0 -17
- data/tests/const.rb +0 -24
- data/tests/deriv.rb +0 -85
- data/tests/dht/dht1.rb +0 -17
- data/tests/dht/dht2.rb +0 -23
- data/tests/dht/dht3.rb +0 -23
- data/tests/dht/dht4.rb +0 -23
- data/tests/diff.rb +0 -78
- data/tests/eigen/eigen.rb +0 -220
- data/tests/eigen/gen.rb +0 -105
- data/tests/eigen/genherm.rb +0 -66
- data/tests/eigen/gensymm.rb +0 -68
- data/tests/eigen/nonsymm.rb +0 -53
- data/tests/eigen/nonsymmv.rb +0 -53
- data/tests/eigen/symm-herm.rb +0 -74
- data/tests/err.rb +0 -58
- data/tests/fit.rb +0 -124
- data/tests/gsl_test.rb +0 -118
- data/tests/gsl_test2.rb +0 -110
- data/tests/histo.rb +0 -12
- data/tests/integration/integration1.rb +0 -72
- data/tests/integration/integration2.rb +0 -71
- data/tests/integration/integration3.rb +0 -71
- data/tests/integration/integration4.rb +0 -71
- data/tests/interp.rb +0 -45
- data/tests/linalg/HH.rb +0 -64
- data/tests/linalg/LU.rb +0 -47
- data/tests/linalg/QR.rb +0 -77
- data/tests/linalg/SV.rb +0 -24
- data/tests/linalg/TDN.rb +0 -116
- data/tests/linalg/TDS.rb +0 -122
- data/tests/linalg/bidiag.rb +0 -73
- data/tests/linalg/cholesky.rb +0 -20
- data/tests/linalg/linalg.rb +0 -158
- data/tests/matrix/matrix_complex_test.rb +0 -36
- data/tests/matrix/matrix_nmf_test.rb +0 -39
- data/tests/matrix/matrix_test.rb +0 -48
- data/tests/min.rb +0 -99
- data/tests/monte/miser.rb +0 -31
- data/tests/monte/vegas.rb +0 -45
- data/tests/multifit/test_2dgauss.rb +0 -112
- data/tests/multifit/test_brown.rb +0 -90
- data/tests/multifit/test_enso.rb +0 -246
- data/tests/multifit/test_filip.rb +0 -155
- data/tests/multifit/test_gauss.rb +0 -97
- data/tests/multifit/test_longley.rb +0 -110
- data/tests/multifit/test_multifit.rb +0 -52
- data/tests/multimin.rb +0 -139
- data/tests/multiroot.rb +0 -131
- data/tests/multiset.rb +0 -52
- data/tests/narray/blas_dnrm2.rb +0 -20
- data/tests/odeiv.rb +0 -353
- data/tests/poly/poly.rb +0 -290
- data/tests/poly/special.rb +0 -65
- data/tests/qrng.rb +0 -131
- data/tests/quartic.rb +0 -29
- data/tests/randist.rb +0 -134
- data/tests/rng.rb +0 -305
- data/tests/roots.rb +0 -76
- data/tests/run-test.sh +0 -17
- data/tests/sf/gsl_test_sf.rb +0 -249
- data/tests/sf/test_airy.rb +0 -83
- data/tests/sf/test_bessel.rb +0 -306
- data/tests/sf/test_coulomb.rb +0 -17
- data/tests/sf/test_dilog.rb +0 -25
- data/tests/sf/test_gamma.rb +0 -209
- data/tests/sf/test_hyperg.rb +0 -356
- data/tests/sf/test_legendre.rb +0 -227
- data/tests/sf/test_mathieu.rb +0 -59
- data/tests/sf/test_mode.rb +0 -19
- data/tests/sf/test_sf.rb +0 -839
- data/tests/stats.rb +0 -174
- data/tests/stats_mt.rb +0 -16
- data/tests/sum.rb +0 -98
- data/tests/sys.rb +0 -323
- data/tests/tensor.rb +0 -419
- data/tests/vector/vector_complex_test.rb +0 -101
- data/tests/vector/vector_test.rb +0 -141
- data/tests/wavelet.rb +0 -142
@@ -8,9 +8,9 @@
|
|
8
8
|
This library is distributed in the hope that it will be useful, but
|
9
9
|
WITHOUT ANY WARRANTY.
|
10
10
|
*/
|
11
|
-
|
12
|
-
#include "rb_gsl_rational.h"
|
13
|
-
#include "rb_gsl_array.h"
|
11
|
+
|
12
|
+
#include "include/rb_gsl_rational.h"
|
13
|
+
#include "include/rb_gsl_array.h"
|
14
14
|
|
15
15
|
VALUE cgsl_rational;
|
16
16
|
static gsl_rational* gsl_rational_div_poly(const gsl_rational *r1, const gsl_poly *p);
|
@@ -199,7 +199,7 @@ static VALUE rb_gsl_poly_make_rational(VALUE obj, VALUE other)
|
|
199
199
|
case T_ARRAY:
|
200
200
|
p2 = gsl_vector_alloc(RARRAY_LEN(other));
|
201
201
|
for (i = 0; i < p2->size; i++)
|
202
|
-
|
202
|
+
gsl_vector_set(p2, i, NUM2DBL(rb_ary_entry(other, i)));
|
203
203
|
rnew = gsl_rational_new(p, p2);
|
204
204
|
gsl_vector_free(p2);
|
205
205
|
break;
|
@@ -210,8 +210,8 @@ static VALUE rb_gsl_poly_make_rational(VALUE obj, VALUE other)
|
|
210
210
|
return Data_Wrap_Struct(cgsl_poly, 0, gsl_vector_free, p2);
|
211
211
|
break;
|
212
212
|
default:
|
213
|
-
rb_raise(rb_eTypeError, "wrong argument type %s",
|
214
|
-
|
213
|
+
rb_raise(rb_eTypeError, "wrong argument type %s",
|
214
|
+
rb_class2name(CLASS_OF(other)));
|
215
215
|
break;
|
216
216
|
}
|
217
217
|
}
|
@@ -280,7 +280,7 @@ static VALUE rb_gsl_rational_uminus(VALUE obj)
|
|
280
280
|
if (RATIONAL_P(obj)) {
|
281
281
|
Data_Get_Struct(obj, gsl_rational, r);
|
282
282
|
rnew = gsl_rational_new(r->pnum, r->pden);
|
283
|
-
for (i = 0; i < rnew->pnum->size; i++)
|
283
|
+
for (i = 0; i < rnew->pnum->size; i++)
|
284
284
|
gsl_vector_set(rnew->pnum, i, -gsl_vector_get(r->pnum, i));
|
285
285
|
return Data_Wrap_Struct(cgsl_rational, gsl_rational_mark, gsl_rational_free, rnew);
|
286
286
|
} else {
|
@@ -342,7 +342,7 @@ static VALUE rb_gsl_rational_div(VALUE obj, VALUE other)
|
|
342
342
|
case T_ARRAY:
|
343
343
|
p = gsl_vector_alloc(RARRAY_LEN(other));
|
344
344
|
for (i = 0; i < p->size; i++)
|
345
|
-
|
345
|
+
gsl_vector_set(p, i, NUM2DBL(rb_ary_entry(other, i)));
|
346
346
|
rnew = gsl_rational_div_poly(r, p);
|
347
347
|
gsl_vector_free(p);
|
348
348
|
break;
|
@@ -352,8 +352,8 @@ static VALUE rb_gsl_rational_div(VALUE obj, VALUE other)
|
|
352
352
|
gsl_vector_scale(rnew->pnum, 1.0/NUM2DBL(other));
|
353
353
|
break;
|
354
354
|
default:
|
355
|
-
rb_raise(rb_eTypeError, "wrong argument type %s",
|
356
|
-
|
355
|
+
rb_raise(rb_eTypeError, "wrong argument type %s",
|
356
|
+
rb_class2name(CLASS_OF(other)));
|
357
357
|
break;
|
358
358
|
}
|
359
359
|
}
|
@@ -407,8 +407,8 @@ static VALUE rb_gsl_rational_coerce(VALUE obj, VALUE other)
|
|
407
407
|
ptmp = gsl_vector_alloc(1);
|
408
408
|
gsl_vector_set(ptmp, 0, 1.0);
|
409
409
|
r = gsl_rational_new2(p, ptmp);
|
410
|
-
return rb_ary_new3(2,
|
411
|
-
|
410
|
+
return rb_ary_new3(2,
|
411
|
+
Data_Wrap_Struct(cgsl_rational, gsl_rational_mark, gsl_rational_free, r), obj);
|
412
412
|
}
|
413
413
|
|
414
414
|
static VALUE rb_gsl_rational_zero(VALUE obj)
|
@@ -9,13 +9,12 @@
|
|
9
9
|
WITHOUT ANY WARRANTY.
|
10
10
|
*/
|
11
11
|
|
12
|
-
/*
|
12
|
+
/*
|
13
13
|
Document-class: <i>GSL::Rng</i>
|
14
14
|
Random number generator
|
15
15
|
*/
|
16
16
|
|
17
|
-
#include "
|
18
|
-
#include "rb_gsl_rng.h"
|
17
|
+
#include "include/rb_gsl_rng.h"
|
19
18
|
#ifdef HAVE_RNGEXTRA_RNGEXTRA_H
|
20
19
|
#include "rngextra/rngextra.h"
|
21
20
|
#endif
|
@@ -25,22 +24,22 @@ VALUE cgsl_rng;
|
|
25
24
|
|
26
25
|
enum rb_gsl_rng_generator {
|
27
26
|
GSL_RNG_DEFAULT,
|
28
|
-
GSL_RNG_MT19937, GSL_RNG_MT19937_1999, GSL_RNG_MT19937_1998,
|
29
|
-
GSL_RNG_RANLXS0, GSL_RNG_RANLXS1, GSL_RNG_RANLXS2,
|
30
|
-
GSL_RNG_RANLXD1, GSL_RNG_RANLXD2,
|
27
|
+
GSL_RNG_MT19937, GSL_RNG_MT19937_1999, GSL_RNG_MT19937_1998,
|
28
|
+
GSL_RNG_RANLXS0, GSL_RNG_RANLXS1, GSL_RNG_RANLXS2,
|
29
|
+
GSL_RNG_RANLXD1, GSL_RNG_RANLXD2,
|
31
30
|
GSL_RNG_RANLUX, GSL_RNG_RANLUX389,
|
32
|
-
GSL_RNG_CMRG, GSL_RNG_MRG,
|
31
|
+
GSL_RNG_CMRG, GSL_RNG_MRG,
|
33
32
|
GSL_RNG_TAUS, GSL_RNG_TAUS2, GSL_RNG_TAUS113, GSL_RNG_GFSR4,
|
34
|
-
GSL_RNG_RAND,
|
33
|
+
GSL_RNG_RAND,
|
35
34
|
GSL_RNG_RANDOM_BSD, GSL_RNG_RANDOM_GLIBC2,
|
36
|
-
GSL_RNG_RANDOM8_GLIBC2, GSL_RNG_RANDOM32_GLIBC2, GSL_RNG_RANDOM64_GLIBC2,
|
35
|
+
GSL_RNG_RANDOM8_GLIBC2, GSL_RNG_RANDOM32_GLIBC2, GSL_RNG_RANDOM64_GLIBC2,
|
37
36
|
GSL_RNG_RANDOM128_GLIBC2, GSL_RNG_RANDOM256_GLIBC2,
|
38
|
-
GSL_RNG_RANDOM8_BSD, GSL_RNG_RANDOM32_BSD, GSL_RNG_RANDOM64_BSD,
|
37
|
+
GSL_RNG_RANDOM8_BSD, GSL_RNG_RANDOM32_BSD, GSL_RNG_RANDOM64_BSD,
|
39
38
|
GSL_RNG_RANDOM128_BSD, GSL_RNG_RANDOM256_BSD,
|
40
|
-
GSL_RNG_RANDOM_LIBC5, GSL_RNG_RANDOM8_LIBC5, GSL_RNG_RANDOM32_LIBC5,
|
41
|
-
GSL_RNG_RANDOM64_LIBC5, GSL_RNG_RANDOM128_LIBC5, GSL_RNG_RANDOM256_LIBC5,
|
42
|
-
GSL_RNG_RAND48,
|
43
|
-
GSL_RNG_RAN0, GSL_RNG_RAN1, GSL_RNG_RAN2, GSL_RNG_RAN3,
|
39
|
+
GSL_RNG_RANDOM_LIBC5, GSL_RNG_RANDOM8_LIBC5, GSL_RNG_RANDOM32_LIBC5,
|
40
|
+
GSL_RNG_RANDOM64_LIBC5, GSL_RNG_RANDOM128_LIBC5, GSL_RNG_RANDOM256_LIBC5,
|
41
|
+
GSL_RNG_RAND48,
|
42
|
+
GSL_RNG_RAN0, GSL_RNG_RAN1, GSL_RNG_RAN2, GSL_RNG_RAN3,
|
44
43
|
GSL_RNG_RANF, GSL_RNG_RANMAR, GSL_RNG_R250, GSL_RNG_TT800, GSL_RNG_VAX,
|
45
44
|
GSL_RNG_TRANSPUTER, GSL_RNG_RANDU, GSL_RNG_MINSTD,
|
46
45
|
GSL_RNG_UNI, GSL_RNG_UNI32, GSL_RNG_SLATEC, GSL_RNG_ZUF,
|
@@ -71,16 +70,16 @@ static VALUE rb_gsl_rng_alloc(int argc, VALUE *argv, VALUE klass)
|
|
71
70
|
T = gsl_rng_default;
|
72
71
|
seed = gsl_rng_default_seed;
|
73
72
|
} else {
|
74
|
-
T = get_gsl_rng_type(argv[0]);
|
73
|
+
T = get_gsl_rng_type(argv[0]);
|
75
74
|
if (argc == 1) {
|
76
75
|
seed = gsl_rng_default_seed;
|
77
76
|
} else if (argc == 2) {
|
78
77
|
itype = TYPE(argv[1]);
|
79
78
|
if (itype == T_FIXNUM || itype == T_BIGNUM) {
|
80
|
-
|
79
|
+
seed = FIX2INT(argv[1]);
|
81
80
|
} else {
|
82
|
-
|
83
|
-
|
81
|
+
rb_raise(rb_eArgError,
|
82
|
+
"bad argument 2, seed must be an integer.");
|
84
83
|
}
|
85
84
|
} else {
|
86
85
|
rb_raise(rb_eArgError, "too many arguments (%d for 0 or 1)", argc);
|
@@ -111,7 +110,6 @@ static const gsl_rng_type* get_gsl_rng_type_name(char *name)
|
|
111
110
|
{
|
112
111
|
if (str_tail_grep(name, "default") == 0) return gsl_rng_default;
|
113
112
|
else if (str_tail_grep(name, "mt19937") == 0) return gsl_rng_mt19937;
|
114
|
-
#ifdef GSL_1_1_LATER
|
115
113
|
else if (str_tail_grep(name, "borosh13") == 0) return gsl_rng_borosh13;
|
116
114
|
else if (str_tail_grep(name, "coveyou") == 0) return gsl_rng_coveyou;
|
117
115
|
else if (str_tail_grep(name, "fishman18") == 0) return gsl_rng_fishman18;
|
@@ -121,15 +119,12 @@ static const gsl_rng_type* get_gsl_rng_type_name(char *name)
|
|
121
119
|
else if (str_tail_grep(name, "waterman14") == 0) return gsl_rng_waterman14;
|
122
120
|
else if (str_tail_grep(name, "knuthran") == 0) return gsl_rng_knuthran;
|
123
121
|
else if (str_tail_grep(name, "knuthran2") == 0) return gsl_rng_knuthran2;
|
124
|
-
#endif
|
125
|
-
#ifdef GSL_1_2_LATER
|
126
122
|
else if (str_tail_grep(name, "mt19937_1999") == 0) return gsl_rng_mt19937_1999;
|
127
123
|
else if (str_tail_grep(name, "mt19937-1999") == 0) return gsl_rng_mt19937_1999;
|
128
|
-
else if (str_tail_grep(name, "mt19937_1998") == 0) return gsl_rng_mt19937_1998;
|
129
|
-
else if (str_tail_grep(name, "mt19937-1998") == 0) return gsl_rng_mt19937_1998;
|
124
|
+
else if (str_tail_grep(name, "mt19937_1998") == 0) return gsl_rng_mt19937_1998;
|
125
|
+
else if (str_tail_grep(name, "mt19937-1998") == 0) return gsl_rng_mt19937_1998;
|
130
126
|
else if (str_tail_grep(name, "taus113") == 0) return gsl_rng_taus113;
|
131
127
|
else if (str_tail_grep(name, "taus2") == 0) return gsl_rng_taus2;
|
132
|
-
#endif
|
133
128
|
else if (str_tail_grep(name, "mt19937") == 0) return gsl_rng_mt19937;
|
134
129
|
else if (str_tail_grep(name, "ranlxs0") == 0) return gsl_rng_ranlxs0;
|
135
130
|
else if (str_tail_grep(name, "ranlxs1") == 0) return gsl_rng_ranlxs1;
|
@@ -148,7 +143,7 @@ static const gsl_rng_type* get_gsl_rng_type_name(char *name)
|
|
148
143
|
else if (str_tail_grep(name, "random32_libc5") == 0) return gsl_rng_random32_libc5;
|
149
144
|
else if (str_tail_grep(name, "random64_libc5") == 0) return gsl_rng_random64_libc5;
|
150
145
|
else if (str_tail_grep(name, "random128_libc5") == 0) return gsl_rng_random128_libc5;
|
151
|
-
else if (str_tail_grep(name, "random256_libc5") == 0) return gsl_rng_random256_libc5;
|
146
|
+
else if (str_tail_grep(name, "random256_libc5") == 0) return gsl_rng_random256_libc5;
|
152
147
|
else if (str_tail_grep(name, "random-libc5") == 0) return gsl_rng_random_libc5;
|
153
148
|
else if (str_tail_grep(name, "random8-libc5") == 0) return gsl_rng_random8_libc5;
|
154
149
|
else if (str_tail_grep(name, "random32-libc5") == 0) return gsl_rng_random32_libc5;
|
@@ -202,18 +197,16 @@ static const gsl_rng_type* get_gsl_rng_type_name(char *name)
|
|
202
197
|
else if (str_tail_grep(name, "rngextra-rng1") == 0) return rngextra_rng1;
|
203
198
|
else if (str_tail_grep(name, "rngextra-rng2") == 0) return rngextra_rng2;
|
204
199
|
#else
|
205
|
-
else if (str_tail_grep(name, "rngextra_rng1")*str_tail_grep(name, "rngextra_rng2") == 0)
|
200
|
+
else if (str_tail_grep(name, "rngextra_rng1")*str_tail_grep(name, "rngextra_rng2") == 0)
|
206
201
|
rb_raise(rb_eNotImpError, "Install the rngextra package found at <http://www.network-theory.co.uk/download/rngextra/>.");
|
207
|
-
else if (str_tail_grep(name, "rngextra_rng2")*str_tail_grep(name, "rngextra_rng2") == 0)
|
202
|
+
else if (str_tail_grep(name, "rngextra_rng2")*str_tail_grep(name, "rngextra_rng2") == 0)
|
208
203
|
rb_raise(rb_eNotImpError, "Install the rngextra package found at <http://www.network-theory.co.uk/download/rngextra/>.");
|
209
|
-
else if (str_tail_grep(name, "rngextra-rng1")*str_tail_grep(name, "rngextra_rng2") == 0)
|
204
|
+
else if (str_tail_grep(name, "rngextra-rng1")*str_tail_grep(name, "rngextra_rng2") == 0)
|
210
205
|
rb_raise(rb_eNotImpError, "Install the rngextra package found at <http://www.network-theory.co.uk/download/rngextra/>.");
|
211
|
-
else if (str_tail_grep(name, "rngextra-rng2")*str_tail_grep(name, "rngextra_rng2") == 0)
|
206
|
+
else if (str_tail_grep(name, "rngextra-rng2")*str_tail_grep(name, "rngextra_rng2") == 0)
|
212
207
|
rb_raise(rb_eNotImpError, "Install the rngextra package found at <http://www.network-theory.co.uk/download/rngextra/>.");
|
213
208
|
#endif
|
214
|
-
#ifdef GSL_1_9_LATER
|
215
209
|
else if (str_tail_grep(name, "knuthran2002") == 0) return gsl_rng_knuthran2002;
|
216
|
-
#endif
|
217
210
|
else
|
218
211
|
rb_raise(rb_eArgError, "unknown generator type \"%s\"", name);
|
219
212
|
}
|
@@ -225,12 +218,10 @@ static const gsl_rng_type* get_gsl_rng_type_int(int itype)
|
|
225
218
|
switch (itype) {
|
226
219
|
case GSL_RNG_DEFAULT: T = gsl_rng_default; break;
|
227
220
|
case GSL_RNG_MT19937: T = gsl_rng_mt19937; break; /* default */
|
228
|
-
#ifdef GSL_1_2_LATER
|
229
221
|
case GSL_RNG_MT19937_1999: T = gsl_rng_mt19937_1999; break;
|
230
222
|
case GSL_RNG_MT19937_1998: T = gsl_rng_mt19937_1998; break;
|
231
223
|
case GSL_RNG_TAUS113: T = gsl_rng_taus113; break;
|
232
224
|
case GSL_RNG_TAUS2: T = gsl_rng_taus2; break;
|
233
|
-
#endif
|
234
225
|
case GSL_RNG_RANLXS0: T = gsl_rng_ranlxs0; break;
|
235
226
|
case GSL_RNG_RANLXS1: T = gsl_rng_ranlxs1; break;
|
236
227
|
case GSL_RNG_RANLXS2: T = gsl_rng_ranlxs2; break;
|
@@ -278,7 +269,6 @@ static const gsl_rng_type* get_gsl_rng_type_int(int itype)
|
|
278
269
|
case GSL_RNG_UNI32: T = gsl_rng_uni32; break;
|
279
270
|
case GSL_RNG_SLATEC: T = gsl_rng_slatec; break;
|
280
271
|
case GSL_RNG_ZUF: T = gsl_rng_zuf; break;
|
281
|
-
#ifdef GSL_1_1_LATER
|
282
272
|
case GSL_RNG_BOROSH13: T = gsl_rng_borosh13; break;
|
283
273
|
case GSL_RNG_COVEYOU: T = gsl_rng_coveyou; break;
|
284
274
|
case GSL_RNG_FISHMAN18: T = gsl_rng_fishman18; break;
|
@@ -288,7 +278,6 @@ static const gsl_rng_type* get_gsl_rng_type_int(int itype)
|
|
288
278
|
case GSL_RNG_KNUTHRAN2: T = gsl_rng_knuthran2; break;
|
289
279
|
case GSL_RNG_LECUYER21: T = gsl_rng_lecuyer21; break;
|
290
280
|
case GSL_RNG_WATERMAN14: T = gsl_rng_waterman14; break;
|
291
|
-
#endif
|
292
281
|
#ifdef HAVE_RNGEXTRA_RNGEXTRA_H
|
293
282
|
case GSL_RNGEXTRA_RNG1: T = rngextra_rng1; break;
|
294
283
|
case GSL_RNGEXTRA_RNG2: T = rngextra_rng2; break;
|
@@ -298,14 +287,12 @@ static const gsl_rng_type* get_gsl_rng_type_int(int itype)
|
|
298
287
|
rb_raise(rb_eNotImpError, "Install the rngextra package found at <http://www.network-theory.co.uk/download/rngextra/>.");
|
299
288
|
break;
|
300
289
|
#endif
|
301
|
-
#ifdef GSL_1_9_LATER
|
302
290
|
case GSL_RNG_KNUTHRAN2002: T = gsl_rng_knuthran2002; break;
|
303
|
-
#endif
|
304
291
|
default:
|
305
292
|
rb_raise(rb_eTypeError, "wrong generator type");
|
306
293
|
}
|
307
294
|
|
308
|
-
return
|
295
|
+
return T;
|
309
296
|
}
|
310
297
|
|
311
298
|
static void rb_gsl_rng_define_const_type(VALUE module)
|
@@ -405,10 +392,10 @@ static VALUE rb_gsl_rng_set(VALUE obj, VALUE s)
|
|
405
392
|
|
406
393
|
/*
|
407
394
|
Document-method: <i>GSL::Rng#get</i>
|
408
|
-
Returns a random integer from the generator.
|
409
|
-
The minimum and maximum values depend on the algorithm used,
|
410
|
-
but all integers in the range [min,max] are equally likely.
|
411
|
-
The values of min and max can determined using the auxiliary
|
395
|
+
Returns a random integer from the generator.
|
396
|
+
The minimum and maximum values depend on the algorithm used,
|
397
|
+
but all integers in the range [min,max] are equally likely.
|
398
|
+
The values of min and max can determined using the auxiliary
|
412
399
|
methodss GSL::Rng#max and GSL::Rng#min.
|
413
400
|
*/
|
414
401
|
static VALUE rb_gsl_rng_get(int argc, VALUE *argv, VALUE obj)
|
@@ -534,7 +521,6 @@ static VALUE rb_gsl_rng_print_state(VALUE obj)
|
|
534
521
|
return obj;
|
535
522
|
}
|
536
523
|
|
537
|
-
#ifdef GSL_1_4_LATER
|
538
524
|
static VALUE rb_gsl_rng_fwrite(VALUE obj, VALUE io)
|
539
525
|
{
|
540
526
|
gsl_rng *h = NULL;
|
@@ -558,7 +544,6 @@ static VALUE rb_gsl_rng_fread(VALUE obj, VALUE io)
|
|
558
544
|
if (flag == 1) fclose(f);
|
559
545
|
return INT2FIX(status);
|
560
546
|
}
|
561
|
-
#endif
|
562
547
|
|
563
548
|
static VALUE rb_gsl_rng_memcpy(VALUE obj, VALUE dst, VALUE org)
|
564
549
|
{
|
@@ -575,7 +560,7 @@ void Init_gsl_rng(VALUE module)
|
|
575
560
|
cgsl_rng = rb_define_class_under(module, "Rng", cGSL_Object);
|
576
561
|
|
577
562
|
rb_gsl_rng_define_const_type(module);
|
578
|
-
|
563
|
+
|
579
564
|
rb_define_singleton_method(cgsl_rng, "alloc", rb_gsl_rng_alloc, -1);
|
580
565
|
|
581
566
|
rb_define_singleton_method(cgsl_rng, "default_seed", rb_gsl_rng_default_seed, 0);
|
@@ -604,9 +589,7 @@ void Init_gsl_rng(VALUE module)
|
|
604
589
|
rb_define_alias(cgsl_rng, "duplicate", "clone");
|
605
590
|
rb_define_method(cgsl_rng, "print_state", rb_gsl_rng_print_state, 0);
|
606
591
|
|
607
|
-
#ifdef GSL_1_4_LATER
|
608
592
|
rb_define_method(cgsl_rng, "fwrite", rb_gsl_rng_fwrite, 1);
|
609
593
|
rb_define_method(cgsl_rng, "fread", rb_gsl_rng_fread, 1);
|
610
|
-
#endif
|
611
594
|
rb_define_singleton_method(cgsl_rng, "memcpy", rb_gsl_rng_memcpy, 2);
|
612
595
|
}
|
@@ -2,18 +2,17 @@
|
|
2
2
|
root.c
|
3
3
|
Ruby/GSL: Ruby extension library for GSL (GNU Scientific Library)
|
4
4
|
(C) Copyright 2004 by Yoshiki Tsunesada
|
5
|
-
|
5
|
+
|
6
6
|
Ruby/GSL is free software: you can redistribute it and/or modify it
|
7
7
|
under the terms of the GNU General Public License.
|
8
8
|
This library is distributed in the hope that it will be useful, but
|
9
9
|
WITHOUT ANY WARRANTY.
|
10
10
|
*/
|
11
11
|
|
12
|
-
#include "
|
13
|
-
#include "
|
14
|
-
#include "
|
15
|
-
#include "
|
16
|
-
#include "rb_gsl_root.h"
|
12
|
+
#include "include/rb_gsl_array.h"
|
13
|
+
#include "include/rb_gsl_common.h"
|
14
|
+
#include "include/rb_gsl_function.h"
|
15
|
+
#include "include/rb_gsl_root.h"
|
17
16
|
|
18
17
|
EXTERN VALUE cgsl_function_fdf;
|
19
18
|
|
@@ -43,8 +42,8 @@ static VALUE rb_gsl_fsolver_new(VALUE klass, VALUE t)
|
|
43
42
|
} else if (!str_tail_grep(name, "brent")) {
|
44
43
|
T = gsl_root_fsolver_brent;
|
45
44
|
} else {
|
46
|
-
rb_raise(rb_eTypeError,
|
47
|
-
|
45
|
+
rb_raise(rb_eTypeError,
|
46
|
+
"type must be \"bisection\" or \"falsepos\", or \"brent\".");
|
48
47
|
}
|
49
48
|
break;
|
50
49
|
case T_FIXNUM:
|
@@ -65,7 +64,7 @@ static VALUE rb_gsl_fsolver_new(VALUE klass, VALUE t)
|
|
65
64
|
break;
|
66
65
|
default:
|
67
66
|
rb_raise(rb_eTypeError, "wrong argument type %s (String or Fixnum expected)",
|
68
|
-
|
67
|
+
rb_class2name(CLASS_OF(t)));
|
69
68
|
break;
|
70
69
|
}
|
71
70
|
s = gsl_root_fsolver_alloc(T);
|
@@ -125,28 +124,28 @@ static VALUE rb_gsl_fsolver_name(VALUE obj)
|
|
125
124
|
static VALUE rb_gsl_fsolver_test_interval(VALUE obj, VALUE eabs, VALUE erel)
|
126
125
|
{
|
127
126
|
gsl_root_fsolver *s = NULL;
|
128
|
-
Need_Float(eabs); Need_Float(erel);
|
127
|
+
Need_Float(eabs); Need_Float(erel);
|
129
128
|
Data_Get_Struct(obj, gsl_root_fsolver, s);
|
130
129
|
return INT2FIX(gsl_root_test_interval(s->x_lower, s->x_upper,
|
131
|
-
|
130
|
+
NUM2DBL(eabs), NUM2DBL(erel)));
|
132
131
|
}
|
133
132
|
|
134
133
|
static VALUE rb_gsl_root_test_interval(VALUE obj, VALUE xl, VALUE xu, VALUE eabs,
|
135
|
-
|
134
|
+
VALUE erel)
|
136
135
|
{
|
137
136
|
Need_Float(xl); Need_Float(xu);
|
138
|
-
Need_Float(eabs); Need_Float(erel);
|
137
|
+
Need_Float(eabs); Need_Float(erel);
|
139
138
|
return INT2FIX(gsl_root_test_interval(NUM2DBL(xl), NUM2DBL(xu),
|
140
|
-
|
139
|
+
NUM2DBL(eabs), NUM2DBL(erel)));
|
141
140
|
}
|
142
141
|
|
143
142
|
static VALUE rb_gsl_root_test_delta(VALUE obj, VALUE xl, VALUE xu, VALUE eabs,
|
144
|
-
|
143
|
+
VALUE erel)
|
145
144
|
{
|
146
145
|
Need_Float(xl); Need_Float(xu);
|
147
|
-
Need_Float(eabs); Need_Float(erel);
|
146
|
+
Need_Float(eabs); Need_Float(erel);
|
148
147
|
return INT2FIX(gsl_root_test_delta(NUM2DBL(xl), NUM2DBL(xu),
|
149
|
-
|
148
|
+
NUM2DBL(eabs), NUM2DBL(erel)));
|
150
149
|
}
|
151
150
|
|
152
151
|
static VALUE rb_gsl_root_test_residual(VALUE obj, VALUE xl,VALUE eabs)
|
@@ -155,7 +154,7 @@ static VALUE rb_gsl_root_test_residual(VALUE obj, VALUE xl,VALUE eabs)
|
|
155
154
|
return INT2FIX(gsl_root_test_residual(NUM2DBL(xl), NUM2DBL(eabs)));
|
156
155
|
}
|
157
156
|
|
158
|
-
static VALUE rb_gsl_fsolver_solve(int argc, VALUE *argv, VALUE
|
157
|
+
static VALUE rb_gsl_fsolver_solve(int argc, VALUE *argv, VALUE obj)
|
159
158
|
{
|
160
159
|
gsl_root_fsolver *s = NULL;
|
161
160
|
gsl_function *F = NULL;
|
@@ -166,15 +165,15 @@ static VALUE rb_gsl_fsolver_solve(int argc, VALUE *argv, VALUE *obj)
|
|
166
165
|
Check_Type(argv[2], T_ARRAY);
|
167
166
|
epsabs = NUM2DBL(rb_ary_entry(argv[2], 0));
|
168
167
|
epsrel = NUM2DBL(rb_ary_entry(argv[2], 1));
|
169
|
-
|
168
|
+
/* no break */
|
170
169
|
case 2:
|
171
170
|
Check_Type(argv[1], T_ARRAY);
|
172
171
|
xl = NUM2DBL(rb_ary_entry(argv[1], 0));
|
173
172
|
xh = NUM2DBL(rb_ary_entry(argv[1], 1));
|
174
173
|
break;
|
175
174
|
default:
|
176
|
-
rb_raise(rb_eArgError,
|
177
|
-
|
175
|
+
rb_raise(rb_eArgError,
|
176
|
+
"Usage: solve(f = Function, range = Array, eps = Array)");
|
178
177
|
break;
|
179
178
|
}
|
180
179
|
CHECK_FUNCTION(argv[0]);
|
@@ -229,7 +228,7 @@ static VALUE rb_gsl_fdfsolver_new(VALUE klass, VALUE t)
|
|
229
228
|
break;
|
230
229
|
default:
|
231
230
|
rb_raise(rb_eTypeError, "wrong argument type %s (String or Fixnum expected)",
|
232
|
-
|
231
|
+
rb_class2name(CLASS_OF(t)));
|
233
232
|
break;
|
234
233
|
}
|
235
234
|
s = gsl_root_fdfsolver_alloc(T);
|
@@ -270,7 +269,7 @@ static VALUE rb_gsl_fdfsolver_name(VALUE obj)
|
|
270
269
|
return rb_str_new2(gsl_root_fdfsolver_name(s));
|
271
270
|
}
|
272
271
|
|
273
|
-
static VALUE rb_gsl_fdfsolver_solve(int argc, VALUE *argv, VALUE
|
272
|
+
static VALUE rb_gsl_fdfsolver_solve(int argc, VALUE *argv, VALUE obj)
|
274
273
|
{
|
275
274
|
gsl_root_fdfsolver *s = NULL;
|
276
275
|
double x = 0.0, x0, epsabs = 0.0, epsrel = 1e-6;
|
@@ -281,7 +280,7 @@ static VALUE rb_gsl_fdfsolver_solve(int argc, VALUE *argv, VALUE *obj)
|
|
281
280
|
Check_Type(argv[2], T_ARRAY);
|
282
281
|
epsabs = NUM2DBL(rb_ary_entry(argv[2], 0));
|
283
282
|
epsrel = NUM2DBL(rb_ary_entry(argv[2], 1));
|
284
|
-
|
283
|
+
/* no break */
|
285
284
|
case 2:
|
286
285
|
Need_Float(argv[1]);
|
287
286
|
x0 = NUM2DBL(argv[1]);
|
@@ -293,7 +292,7 @@ static VALUE rb_gsl_fdfsolver_solve(int argc, VALUE *argv, VALUE *obj)
|
|
293
292
|
CHECK_FUNCTION_FDF(argv[0]);
|
294
293
|
Data_Get_Struct(argv[0], gsl_function_fdf, F);
|
295
294
|
Data_Get_Struct(obj, gsl_root_fdfsolver, s);
|
296
|
-
gsl_root_fdfsolver_set(s, F, x0);
|
295
|
+
gsl_root_fdfsolver_set(s, F, x0);
|
297
296
|
do {
|
298
297
|
iter++;
|
299
298
|
status = gsl_root_fdfsolver_iterate (s);
|
@@ -362,32 +361,32 @@ void Init_gsl_root(VALUE module)
|
|
362
361
|
mgsl_root = rb_define_module_under(module, "Root");
|
363
362
|
|
364
363
|
cgsl_fsolver = rb_define_class_under(mgsl_root, "FSolver", cGSL_Object);
|
365
|
-
rb_define_singleton_method(cgsl_fsolver, "alloc", rb_gsl_fsolver_new, 1);
|
366
|
-
|
367
|
-
rb_define_method(cgsl_fsolver, "set", rb_gsl_fsolver_set, 3);
|
368
|
-
rb_define_method(cgsl_fsolver, "iterate", rb_gsl_fsolver_iterate, 0);
|
369
|
-
rb_define_method(cgsl_fsolver, "root", rb_gsl_fsolver_root, 0);
|
370
|
-
rb_define_method(cgsl_fsolver, "name", rb_gsl_fsolver_name, 0);
|
371
|
-
rb_define_method(cgsl_fsolver, "x_lower", rb_gsl_fsolver_x_lower, 0);
|
372
|
-
rb_define_method(cgsl_fsolver, "x_upper", rb_gsl_fsolver_x_upper, 0);
|
373
|
-
rb_define_method(cgsl_fsolver, "test_interval", rb_gsl_fsolver_test_interval, 2);
|
374
|
-
rb_define_method(cgsl_fsolver, "solve", rb_gsl_fsolver_solve, -1);
|
375
|
-
|
376
|
-
rb_define_singleton_method(mgsl_root, "test_interval",
|
377
|
-
|
378
|
-
rb_define_singleton_method(mgsl_root, "test_delta",
|
379
|
-
|
380
|
-
rb_define_singleton_method(mgsl_root, "test_residual",
|
381
|
-
|
364
|
+
rb_define_singleton_method(cgsl_fsolver, "alloc", rb_gsl_fsolver_new, 1);
|
365
|
+
|
366
|
+
rb_define_method(cgsl_fsolver, "set", rb_gsl_fsolver_set, 3);
|
367
|
+
rb_define_method(cgsl_fsolver, "iterate", rb_gsl_fsolver_iterate, 0);
|
368
|
+
rb_define_method(cgsl_fsolver, "root", rb_gsl_fsolver_root, 0);
|
369
|
+
rb_define_method(cgsl_fsolver, "name", rb_gsl_fsolver_name, 0);
|
370
|
+
rb_define_method(cgsl_fsolver, "x_lower", rb_gsl_fsolver_x_lower, 0);
|
371
|
+
rb_define_method(cgsl_fsolver, "x_upper", rb_gsl_fsolver_x_upper, 0);
|
372
|
+
rb_define_method(cgsl_fsolver, "test_interval", rb_gsl_fsolver_test_interval, 2);
|
373
|
+
rb_define_method(cgsl_fsolver, "solve", rb_gsl_fsolver_solve, -1);
|
374
|
+
|
375
|
+
rb_define_singleton_method(mgsl_root, "test_interval",
|
376
|
+
rb_gsl_root_test_interval, 4);
|
377
|
+
rb_define_singleton_method(mgsl_root, "test_delta",
|
378
|
+
rb_gsl_root_test_delta, 4);
|
379
|
+
rb_define_singleton_method(mgsl_root, "test_residual",
|
380
|
+
rb_gsl_root_test_residual, 2);
|
382
381
|
|
383
382
|
cgsl_fdfsolver = rb_define_class_under(mgsl_root, "FdfSolver", cGSL_Object);
|
384
|
-
rb_define_singleton_method(cgsl_fdfsolver, "alloc", rb_gsl_fdfsolver_new, 1);
|
383
|
+
rb_define_singleton_method(cgsl_fdfsolver, "alloc", rb_gsl_fdfsolver_new, 1);
|
385
384
|
|
386
|
-
rb_define_method(cgsl_fdfsolver, "set", rb_gsl_fdfsolver_set, 2);
|
387
|
-
rb_define_method(cgsl_fdfsolver, "iterate", rb_gsl_fdfsolver_iterate, 0);
|
388
|
-
rb_define_method(cgsl_fdfsolver, "root", rb_gsl_fdfsolver_root, 0);
|
389
|
-
rb_define_method(cgsl_fdfsolver, "name", rb_gsl_fdfsolver_name, 0);
|
390
|
-
rb_define_method(cgsl_fdfsolver, "solve", rb_gsl_fdfsolver_solve, -1);
|
385
|
+
rb_define_method(cgsl_fdfsolver, "set", rb_gsl_fdfsolver_set, 2);
|
386
|
+
rb_define_method(cgsl_fdfsolver, "iterate", rb_gsl_fdfsolver_iterate, 0);
|
387
|
+
rb_define_method(cgsl_fdfsolver, "root", rb_gsl_fdfsolver_root, 0);
|
388
|
+
rb_define_method(cgsl_fdfsolver, "name", rb_gsl_fdfsolver_name, 0);
|
389
|
+
rb_define_method(cgsl_fdfsolver, "solve", rb_gsl_fdfsolver_solve, -1);
|
391
390
|
|
392
391
|
rb_define_method(cgsl_function, "fsolve", rb_gsl_function_rootfinder, -1);
|
393
392
|
rb_define_alias(cgsl_function, "solve", "fsolve");
|