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
@@ -9,60 +9,54 @@
|
|
9
9
|
WITHOUT ANY WARRANTY.
|
10
10
|
*/
|
11
11
|
|
12
|
-
#include "rb_gsl.h"
|
13
|
-
#include "rb_gsl_function.h"
|
12
|
+
#include "include/rb_gsl.h"
|
13
|
+
#include "include/rb_gsl_function.h"
|
14
14
|
#include <gsl/gsl_min.h>
|
15
15
|
|
16
|
-
double rb_gsl_function_f(double x, void *p);
|
16
|
+
double rb_gsl_function_f(double x, void *p);
|
17
17
|
|
18
18
|
enum {
|
19
19
|
GSL_MIN_FMINIMIZER_GOLDENSECTION,
|
20
20
|
GSL_MIN_FMINIMIZER_BRENT,
|
21
|
-
#ifdef GSL_1_13_LATER
|
22
21
|
GSL_MIN_FMINIMIZER_QUAD_GOLDEN,
|
23
|
-
#endif
|
24
22
|
};
|
25
23
|
static const gsl_min_fminimizer_type* rb_gsl_min_fminimizer_type_get(VALUE t);
|
26
24
|
|
27
|
-
static const gsl_min_fminimizer_type* rb_gsl_min_fminimizer_type_get(VALUE t)
|
25
|
+
static const gsl_min_fminimizer_type* rb_gsl_min_fminimizer_type_get(VALUE t)
|
28
26
|
{
|
29
27
|
char name[32];
|
30
28
|
switch (TYPE(t)) {
|
31
29
|
case T_STRING:
|
32
30
|
strcpy(name, STR2CSTR(t));
|
33
|
-
if (str_tail_grep(name, "goldensection") == 0)
|
31
|
+
if (str_tail_grep(name, "goldensection") == 0)
|
34
32
|
return gsl_min_fminimizer_goldensection;
|
35
|
-
else if (str_tail_grep(name, "brent") == 0)
|
33
|
+
else if (str_tail_grep(name, "brent") == 0)
|
36
34
|
return gsl_min_fminimizer_brent;
|
37
|
-
|
38
|
-
else if (str_tail_grep(name, "quad_golden") == 0)
|
35
|
+
else if (str_tail_grep(name, "quad_golden") == 0)
|
39
36
|
return gsl_min_fminimizer_quad_golden;
|
40
|
-
|
41
|
-
else
|
37
|
+
else
|
42
38
|
rb_raise(rb_eTypeError, "unknown type %s (goldensection, brent or quad_golden expected)",
|
43
|
-
|
39
|
+
name);
|
44
40
|
break;
|
45
41
|
case T_FIXNUM:
|
46
42
|
switch (FIX2INT(t)) {
|
47
|
-
case GSL_MIN_FMINIMIZER_GOLDENSECTION:
|
48
|
-
return gsl_min_fminimizer_goldensection;
|
43
|
+
case GSL_MIN_FMINIMIZER_GOLDENSECTION:
|
44
|
+
return gsl_min_fminimizer_goldensection;
|
49
45
|
break;
|
50
|
-
case GSL_MIN_FMINIMIZER_BRENT:
|
51
|
-
return gsl_min_fminimizer_brent;
|
46
|
+
case GSL_MIN_FMINIMIZER_BRENT:
|
47
|
+
return gsl_min_fminimizer_brent;
|
52
48
|
break;
|
53
|
-
|
54
|
-
|
55
|
-
return gsl_min_fminimizer_quad_golden;
|
49
|
+
case GSL_MIN_FMINIMIZER_QUAD_GOLDEN:
|
50
|
+
return gsl_min_fminimizer_quad_golden;
|
56
51
|
break;
|
57
|
-
|
58
|
-
|
59
|
-
rb_raise(rb_eTypeError, "unknown type (GOLDENSECION or BRENT or QUAD_GOLDEN expected)");
|
52
|
+
default:
|
53
|
+
rb_raise(rb_eTypeError, "unknown type (GOLDENSECION or BRENT or QUAD_GOLDEN expected)");
|
60
54
|
break;
|
61
55
|
}
|
62
56
|
break;
|
63
57
|
default:
|
64
58
|
rb_raise(rb_eTypeError, "wrong argument type %s (String of Fixnum)",
|
65
|
-
|
59
|
+
rb_class2name(CLASS_OF(t)));
|
66
60
|
break;
|
67
61
|
}
|
68
62
|
}
|
@@ -83,35 +77,35 @@ static VALUE rb_gsl_min_fminimizer_name(VALUE obj)
|
|
83
77
|
return rb_str_new2(gsl_min_fminimizer_name(gmf));
|
84
78
|
}
|
85
79
|
|
86
|
-
static VALUE rb_gsl_min_fminimizer_set(VALUE obj, VALUE ff, VALUE xmin,
|
87
|
-
|
80
|
+
static VALUE rb_gsl_min_fminimizer_set(VALUE obj, VALUE ff, VALUE xmin,
|
81
|
+
VALUE xl, VALUE xu)
|
88
82
|
{
|
89
83
|
gsl_min_fminimizer *gmf = NULL;
|
90
84
|
gsl_function *f = NULL;
|
91
|
-
Need_Float(xmin); Need_Float(xl); Need_Float(xu);
|
85
|
+
Need_Float(xmin); Need_Float(xl); Need_Float(xu);
|
92
86
|
CHECK_FUNCTION(ff);
|
93
87
|
Data_Get_Struct(obj, gsl_min_fminimizer, gmf);
|
94
88
|
Data_Get_Struct(ff, gsl_function, f);
|
95
|
-
return INT2FIX(gsl_min_fminimizer_set(gmf, f, NUM2DBL(xmin),
|
96
|
-
|
89
|
+
return INT2FIX(gsl_min_fminimizer_set(gmf, f, NUM2DBL(xmin),
|
90
|
+
NUM2DBL(xl), NUM2DBL(xu)));
|
97
91
|
}
|
98
92
|
|
99
|
-
static VALUE rb_gsl_min_fminimizer_set_with_values(VALUE obj, VALUE ff,
|
100
|
-
|
101
|
-
|
102
|
-
|
93
|
+
static VALUE rb_gsl_min_fminimizer_set_with_values(VALUE obj, VALUE ff,
|
94
|
+
VALUE xmin, VALUE fmin,
|
95
|
+
VALUE xl, VALUE fl,
|
96
|
+
VALUE xu, VALUE fu)
|
103
97
|
{
|
104
98
|
gsl_min_fminimizer *gmf = NULL;
|
105
99
|
gsl_function *f = NULL;
|
106
|
-
Need_Float(xmin); Need_Float(xl); Need_Float(xu);
|
107
|
-
Need_Float(fl); Need_Float(fu);
|
100
|
+
Need_Float(xmin); Need_Float(xl); Need_Float(xu);
|
101
|
+
Need_Float(fl); Need_Float(fu);
|
108
102
|
CHECK_FUNCTION(ff);
|
109
103
|
Data_Get_Struct(obj, gsl_min_fminimizer, gmf);
|
110
104
|
Data_Get_Struct(ff, gsl_function, f);
|
111
|
-
return INT2FIX(gsl_min_fminimizer_set_with_values(gmf, f, NUM2DBL(xmin),
|
112
|
-
|
113
|
-
|
114
|
-
|
105
|
+
return INT2FIX(gsl_min_fminimizer_set_with_values(gmf, f, NUM2DBL(xmin),
|
106
|
+
NUM2DBL(fmin),
|
107
|
+
NUM2DBL(xl), NUM2DBL(fl),
|
108
|
+
NUM2DBL(xu), NUM2DBL(fu)));
|
115
109
|
}
|
116
110
|
|
117
111
|
static VALUE rb_gsl_min_fminimizer_iterate(VALUE obj)
|
@@ -135,29 +129,6 @@ static VALUE rb_gsl_min_fminimizer_x_upper(VALUE obj)
|
|
135
129
|
return rb_float_new(gsl_min_fminimizer_x_upper(gmf));
|
136
130
|
}
|
137
131
|
|
138
|
-
#ifndef GSL_1_2_LATER
|
139
|
-
static double gsl_min_fminimizer_x_minimum(const gsl_min_fminimizer * s)
|
140
|
-
{
|
141
|
-
/* return s->x_minimum;*/
|
142
|
-
return s->minimum;
|
143
|
-
}
|
144
|
-
|
145
|
-
static double gsl_min_fminimizer_f_minimum(const gsl_min_fminimizer * s)
|
146
|
-
{
|
147
|
-
return s->f_minimum;
|
148
|
-
}
|
149
|
-
|
150
|
-
static double gsl_min_fminimizer_f_lower(const gsl_min_fminimizer * s)
|
151
|
-
{
|
152
|
-
return s->f_lower;
|
153
|
-
}
|
154
|
-
|
155
|
-
static double gsl_min_fminimizer_f_upper(const gsl_min_fminimizer * s)
|
156
|
-
{
|
157
|
-
return s->f_upper;
|
158
|
-
}
|
159
|
-
#endif
|
160
|
-
|
161
132
|
static VALUE rb_gsl_min_fminimizer_x_minimum(VALUE obj)
|
162
133
|
{
|
163
134
|
gsl_min_fminimizer *gmf = NULL;
|
@@ -198,12 +169,12 @@ static VALUE rb_gsl_min_fminimizer_test_interval(VALUE obj, VALUE ea, VALUE er)
|
|
198
169
|
}
|
199
170
|
|
200
171
|
static VALUE rb_gsl_fminimizer_test_interval(VALUE obj, VALUE xl, VALUE xu,
|
201
|
-
|
172
|
+
VALUE ea, VALUE er)
|
202
173
|
{
|
203
174
|
Need_Float(xl); Need_Float(xu);
|
204
175
|
Need_Float(ea); Need_Float(er);
|
205
176
|
return INT2FIX(gsl_min_test_interval(NUM2DBL(xl), NUM2DBL(xu),
|
206
|
-
|
177
|
+
NUM2DBL(ea), NUM2DBL(er)));
|
207
178
|
}
|
208
179
|
|
209
180
|
void Init_gsl_min(VALUE module)
|
@@ -211,21 +182,19 @@ void Init_gsl_min(VALUE module)
|
|
211
182
|
VALUE mgsl_min, cgsl_fminimizer;
|
212
183
|
|
213
184
|
mgsl_min = rb_define_module_under(module, "Min");
|
214
|
-
|
185
|
+
|
215
186
|
cgsl_fminimizer = rb_define_class_under(mgsl_min, "FMinimizer", cGSL_Object);
|
216
187
|
|
217
|
-
rb_define_const(cgsl_fminimizer, "GOLDENSECTION",
|
218
|
-
|
219
|
-
rb_define_const(cgsl_fminimizer, "Goldensection",
|
220
|
-
|
188
|
+
rb_define_const(cgsl_fminimizer, "GOLDENSECTION",
|
189
|
+
INT2FIX(GSL_MIN_FMINIMIZER_GOLDENSECTION));
|
190
|
+
rb_define_const(cgsl_fminimizer, "Goldensection",
|
191
|
+
INT2FIX(GSL_MIN_FMINIMIZER_GOLDENSECTION));
|
221
192
|
rb_define_const(cgsl_fminimizer, "BRENT",
|
222
|
-
|
193
|
+
INT2FIX(GSL_MIN_FMINIMIZER_BRENT));
|
223
194
|
rb_define_const(cgsl_fminimizer, "Brent",
|
224
|
-
|
225
|
-
#ifdef GSL_1_13_LATER
|
195
|
+
INT2FIX(GSL_MIN_FMINIMIZER_BRENT));
|
226
196
|
rb_define_const(cgsl_fminimizer, "QUAD_GOLDEN",
|
227
|
-
|
228
|
-
#endif
|
197
|
+
INT2FIX(GSL_MIN_FMINIMIZER_QUAD_GOLDEN));
|
229
198
|
|
230
199
|
rb_define_singleton_method(cgsl_fminimizer, "new", rb_gsl_min_fminimizer_new, 1);
|
231
200
|
rb_define_singleton_method(cgsl_fminimizer, "alloc", rb_gsl_min_fminimizer_new, 1);
|
@@ -239,8 +208,8 @@ void Init_gsl_min(VALUE module)
|
|
239
208
|
rb_define_method(cgsl_fminimizer, "x_upper", rb_gsl_min_fminimizer_x_upper, 0);
|
240
209
|
rb_define_method(cgsl_fminimizer, "test_interval", rb_gsl_min_fminimizer_test_interval, 2);
|
241
210
|
|
242
|
-
rb_define_singleton_method(mgsl_min, "test_interval",
|
243
|
-
|
211
|
+
rb_define_singleton_method(mgsl_min, "test_interval",
|
212
|
+
rb_gsl_fminimizer_test_interval, 4);
|
244
213
|
|
245
214
|
rb_define_method(cgsl_fminimizer, "x_minimum", rb_gsl_min_fminimizer_x_minimum, 0);
|
246
215
|
rb_define_method(cgsl_fminimizer, "f_minimum", rb_gsl_min_fminimizer_f_minimum, 0);
|
@@ -9,14 +9,14 @@
|
|
9
9
|
WITHOUT ANY WARRANTY.
|
10
10
|
*/
|
11
11
|
|
12
|
-
#include "rb_gsl.h"
|
13
|
-
#include "rb_gsl_rng.h"
|
12
|
+
#include "include/rb_gsl.h"
|
13
|
+
#include "include/rb_gsl_rng.h"
|
14
14
|
#include <gsl/gsl_monte_plain.h>
|
15
15
|
#include <gsl/gsl_monte_miser.h>
|
16
16
|
#include <gsl/gsl_monte_vegas.h>
|
17
17
|
|
18
18
|
#ifndef CHECK_MONTE_FUNCTION
|
19
|
-
#define CHECK_MONTE_FUNCTION(x) if(!rb_obj_is_kind_of(x,cgsl_monte_function))\
|
19
|
+
#define CHECK_MONTE_FUNCTION(x) if(!rb_obj_is_kind_of(x,cgsl_monte_function)) \
|
20
20
|
rb_raise(rb_eTypeError, "wrong type (Function expected)");
|
21
21
|
#endif
|
22
22
|
|
@@ -24,9 +24,7 @@ static VALUE cgsl_monte_plain;
|
|
24
24
|
static VALUE cgsl_monte_miser;
|
25
25
|
static VALUE cgsl_monte_vegas;
|
26
26
|
static VALUE cgsl_monte_function;
|
27
|
-
#ifdef GSL_1_13_LATER
|
28
27
|
static VALUE cgsl_monte_miser_params, cgsl_monte_vegas_params;
|
29
|
-
#endif
|
30
28
|
EXTERN VALUE cgsl_vector;
|
31
29
|
|
32
30
|
enum {
|
@@ -72,11 +70,11 @@ static VALUE rb_gsl_monte_function_set_f(int argc, VALUE *argv, VALUE obj)
|
|
72
70
|
rb_ary_store(ary, 0, argv[0]);
|
73
71
|
F->dim = FIX2INT(argv[1]);
|
74
72
|
ary2 = rb_ary_new2(argc-2);
|
75
|
-
for (i = 2; i < argc; i++) rb_ary_store(ary2, i-2, argv[i]);
|
73
|
+
for (i = 2; i < (size_t) argc; i++) rb_ary_store(ary2, i-2, argv[i]);
|
76
74
|
rb_ary_store(ary, 1, ary2);
|
77
75
|
break;
|
78
76
|
}
|
79
|
-
if (rb_block_given_p()) rb_ary_store(ary, 0,
|
77
|
+
if (rb_block_given_p()) rb_ary_store(ary, 0, rb_block_proc());
|
80
78
|
return obj;
|
81
79
|
}
|
82
80
|
|
@@ -102,7 +100,7 @@ static VALUE rb_gsl_monte_function_new(int argc, VALUE *argv, VALUE klass)
|
|
102
100
|
obj = Data_Wrap_Struct(klass, gsl_monte_function_mark, gsl_monte_function_free, f);
|
103
101
|
rb_gsl_monte_function_set_f(argc, argv, obj);
|
104
102
|
return obj;
|
105
|
-
}
|
103
|
+
}
|
106
104
|
|
107
105
|
static double rb_gsl_monte_function_f(double *x, size_t dim, void *p)
|
108
106
|
{
|
@@ -164,7 +162,7 @@ static VALUE rb_gsl_monte_function_set_params(int argc, VALUE *argv, VALUE obj)
|
|
164
162
|
rb_ary_store(ary, 1, argv[0]);
|
165
163
|
} else {
|
166
164
|
ary2 = rb_ary_new2(argc);
|
167
|
-
for (i = 0; i < argc; i++) rb_ary_store(ary2, i, argv[i]);
|
165
|
+
for (i = 0; i < (size_t) argc; i++) rb_ary_store(ary2, i, argv[i]);
|
168
166
|
rb_ary_store(ary, 1, ary2);
|
169
167
|
}
|
170
168
|
return obj;
|
@@ -237,16 +235,16 @@ static VALUE rb_gsl_monte_integrate(int argc, VALUE *argv, VALUE obj)
|
|
237
235
|
int itmp = 0, flagr = 0, type;
|
238
236
|
double result, abserr;
|
239
237
|
|
240
|
-
if (argc < 4)
|
238
|
+
if (argc < 4)
|
241
239
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for >= 4)", argc);
|
242
240
|
switch (TYPE(obj)) {
|
243
241
|
case T_MODULE:
|
244
242
|
case T_CLASS:
|
245
243
|
case T_OBJECT:
|
246
244
|
if (!rb_obj_is_kind_of(argv[0], cgsl_monte_function))
|
247
|
-
rb_raise(rb_eTypeError,
|
248
|
-
|
249
|
-
|
245
|
+
rb_raise(rb_eTypeError,
|
246
|
+
"wrong type argument %s (GSL::Monte::Function expected)",
|
247
|
+
rb_class2name(CLASS_OF(argv[0])));
|
250
248
|
Data_Get_Struct(argv[0], gsl_monte_function, F);
|
251
249
|
itmp = 1;
|
252
250
|
break;
|
@@ -267,14 +265,12 @@ static VALUE rb_gsl_monte_integrate(int argc, VALUE *argv, VALUE obj)
|
|
267
265
|
dim = F->dim;
|
268
266
|
calls = FIX2INT(argv[itmp+2]);
|
269
267
|
}
|
270
|
-
|
271
268
|
if (rb_obj_is_kind_of(argv[argc-2], cgsl_rng)) {
|
272
269
|
Data_Get_Struct(argv[argc-2], gsl_rng, r);
|
273
270
|
} else {
|
274
271
|
r = gsl_rng_alloc(gsl_rng_default);
|
275
272
|
flagr = 1;
|
276
273
|
}
|
277
|
-
|
278
274
|
type = get_monte_type(argv[argc-1]);
|
279
275
|
|
280
276
|
switch (type) {
|
@@ -285,8 +281,8 @@ static VALUE rb_gsl_monte_integrate(int argc, VALUE *argv, VALUE obj)
|
|
285
281
|
gsl_monte_plain_init(plain);
|
286
282
|
} else {
|
287
283
|
if (!rb_obj_is_kind_of(argv[argc-1], cgsl_monte_plain))
|
288
|
-
|
289
|
-
|
284
|
+
rb_raise(rb_eTypeError, "wrong argument type %s (Monte::Plain expected)",
|
285
|
+
rb_class2name(CLASS_OF(argv[argc-1])));
|
290
286
|
Data_Get_Struct(argv[argc-1], gsl_monte_plain_state, plain);
|
291
287
|
}
|
292
288
|
gsl_monte_plain_integrate(F, xl->data, xu->data, dim, calls, r, plain, &result, &abserr);
|
@@ -299,8 +295,8 @@ static VALUE rb_gsl_monte_integrate(int argc, VALUE *argv, VALUE obj)
|
|
299
295
|
gsl_monte_miser_init(miser);
|
300
296
|
} else {
|
301
297
|
if (!rb_obj_is_kind_of(argv[argc-1], cgsl_monte_miser))
|
302
|
-
|
303
|
-
|
298
|
+
rb_raise(rb_eTypeError, "wrong argument type %s (Monte::Miser expected)",
|
299
|
+
rb_class2name(CLASS_OF(argv[argc-1])));
|
304
300
|
Data_Get_Struct(argv[argc-1], gsl_monte_miser_state, miser);
|
305
301
|
}
|
306
302
|
gsl_monte_miser_integrate(F, xl->data, xu->data, dim, calls, r, miser, &result, &abserr);
|
@@ -312,10 +308,9 @@ static VALUE rb_gsl_monte_integrate(int argc, VALUE *argv, VALUE obj)
|
|
312
308
|
vegas = gsl_monte_vegas_alloc(dim);
|
313
309
|
gsl_monte_vegas_init(vegas);
|
314
310
|
} else { if (!rb_obj_is_kind_of(argv[argc-1], cgsl_monte_vegas))
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
}
|
311
|
+
rb_raise(rb_eTypeError, "wrong argument type %s (Monte::Vegas expected)",
|
312
|
+
rb_class2name(CLASS_OF(argv[argc-1])));
|
313
|
+
Data_Get_Struct(argv[argc-1], gsl_monte_vegas_state, vegas); }
|
319
314
|
gsl_monte_vegas_integrate(F, xl->data, xu->data, dim, calls, r, vegas, &result, &abserr);
|
320
315
|
if (type > 100) gsl_monte_vegas_free(vegas);
|
321
316
|
break;
|
@@ -334,7 +329,7 @@ static VALUE rb_gsl_monte_plain_integrate(int argc, VALUE *argv, VALUE obj)
|
|
334
329
|
int flagr = 0;
|
335
330
|
double result, abserr;
|
336
331
|
|
337
|
-
if (argc < 4)
|
332
|
+
if (argc < 4)
|
338
333
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 4, 5 or 6)", argc);
|
339
334
|
CHECK_MONTE_FUNCTION(argv[0]);
|
340
335
|
CHECK_VECTOR(argv[1]); CHECK_VECTOR(argv[2]);
|
@@ -349,15 +344,14 @@ static VALUE rb_gsl_monte_plain_integrate(int argc, VALUE *argv, VALUE obj)
|
|
349
344
|
dim = F->dim;
|
350
345
|
calls = FIX2INT(argv[3]);
|
351
346
|
}
|
352
|
-
|
353
347
|
if (rb_obj_is_kind_of(argv[argc-1], cgsl_rng)) {
|
354
348
|
Data_Get_Struct(argv[argc-1], gsl_rng, r);
|
355
349
|
} else {
|
356
350
|
r = gsl_rng_alloc(gsl_rng_default);
|
357
351
|
flagr = 1;
|
358
352
|
}
|
359
|
-
gsl_monte_plain_integrate(F, xl->data, xu->data, dim, calls, r, plain,
|
360
|
-
|
353
|
+
gsl_monte_plain_integrate(F, xl->data, xu->data, dim, calls, r, plain,
|
354
|
+
&result, &abserr);
|
361
355
|
if (flagr == 1) gsl_rng_free(r);
|
362
356
|
return rb_ary_new3(2, rb_float_new(result), rb_float_new(abserr));
|
363
357
|
}
|
@@ -387,15 +381,14 @@ static VALUE rb_gsl_monte_miser_integrate(int argc, VALUE *argv, VALUE obj)
|
|
387
381
|
dim = F->dim;
|
388
382
|
calls = FIX2INT(argv[3]);
|
389
383
|
}
|
390
|
-
|
391
384
|
if (rb_obj_is_kind_of(argv[argc-1], cgsl_rng)) {
|
392
385
|
Data_Get_Struct(argv[argc-1], gsl_rng, r);
|
393
386
|
} else {
|
394
387
|
r = gsl_rng_alloc(gsl_rng_default);
|
395
388
|
flagr = 1;
|
396
389
|
}
|
397
|
-
gsl_monte_miser_integrate(F, xl->data, xu->data, dim, calls, r, miser,
|
398
|
-
|
390
|
+
gsl_monte_miser_integrate(F, xl->data, xu->data, dim, calls, r, miser,
|
391
|
+
&result, &abserr);
|
399
392
|
if (flagr == 1) gsl_rng_free(r);
|
400
393
|
return rb_ary_new3(2, rb_float_new(result), rb_float_new(abserr));
|
401
394
|
}
|
@@ -410,7 +403,7 @@ static VALUE rb_gsl_monte_vegas_integrate(int argc, VALUE *argv, VALUE obj)
|
|
410
403
|
int flagr = 0;
|
411
404
|
double result, abserr;
|
412
405
|
|
413
|
-
if (argc < 4)
|
406
|
+
if (argc < 4)
|
414
407
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for >= 4)", argc);
|
415
408
|
CHECK_MONTE_FUNCTION(argv[0]);
|
416
409
|
CHECK_VECTOR(argv[1]); CHECK_VECTOR(argv[2]);
|
@@ -425,15 +418,14 @@ static VALUE rb_gsl_monte_vegas_integrate(int argc, VALUE *argv, VALUE obj)
|
|
425
418
|
dim = F->dim;
|
426
419
|
calls = FIX2INT(argv[3]);
|
427
420
|
}
|
428
|
-
|
429
421
|
if (rb_obj_is_kind_of(argv[argc-1], cgsl_rng)) {
|
430
422
|
Data_Get_Struct(argv[argc-1], gsl_rng, r);
|
431
423
|
} else {
|
432
424
|
r = gsl_rng_alloc(gsl_rng_default);
|
433
425
|
flagr = 1;
|
434
426
|
}
|
435
|
-
gsl_monte_vegas_integrate(F, xl->data, xu->data, dim, calls, r, vegas,
|
436
|
-
|
427
|
+
gsl_monte_vegas_integrate(F, xl->data, xu->data, dim, calls, r, vegas,
|
428
|
+
&result, &abserr);
|
437
429
|
if (flagr == 1) gsl_rng_free(r);
|
438
430
|
return rb_ary_new3(2, rb_float_new(result), rb_float_new(abserr));
|
439
431
|
}
|
@@ -447,7 +439,6 @@ static int get_monte_type(VALUE vt)
|
|
447
439
|
else {
|
448
440
|
/* do next */
|
449
441
|
}
|
450
|
-
|
451
442
|
switch(TYPE(vt)) {
|
452
443
|
case T_STRING:
|
453
444
|
strcpy(name, STR2CSTR(vt));
|
@@ -555,8 +546,8 @@ static VALUE rb_gsl_monte_miser_state(VALUE obj)
|
|
555
546
|
gsl_monte_miser_state *s = NULL;
|
556
547
|
Data_Get_Struct(obj, gsl_monte_miser_state, s);
|
557
548
|
return rb_ary_new3(5, rb_float_new(s->estimate_frac), INT2FIX(s->min_calls),
|
558
|
-
|
559
|
-
|
549
|
+
INT2FIX(s->min_calls_per_bisection), rb_float_new(s->alpha),
|
550
|
+
rb_float_new(s->dither));
|
560
551
|
}
|
561
552
|
|
562
553
|
static VALUE rb_gsl_monte_vegas_result(VALUE obj)
|
@@ -655,20 +646,19 @@ static VALUE rb_gsl_monte_vegas_state(VALUE obj)
|
|
655
646
|
{
|
656
647
|
gsl_monte_vegas_state *s = NULL;
|
657
648
|
Data_Get_Struct(obj, gsl_monte_vegas_state, s);
|
658
|
-
return rb_ary_new3(8, rb_float_new(s->result), rb_float_new(s->sigma),
|
659
|
-
|
660
|
-
|
661
|
-
|
649
|
+
return rb_ary_new3(8, rb_float_new(s->result), rb_float_new(s->sigma),
|
650
|
+
rb_float_new(s->chisq), rb_float_new(s->alpha),
|
651
|
+
INT2FIX(s->iterations), INT2FIX(s->stage),
|
652
|
+
INT2FIX(s->mode), INT2FIX(s->verbose));
|
662
653
|
}
|
663
654
|
|
664
|
-
#ifdef GSL_1_13_LATER
|
665
655
|
static VALUE rb_gsl_monte_miser_params_get(VALUE obj)
|
666
656
|
{
|
667
657
|
gsl_monte_miser_state *s = NULL;
|
668
658
|
gsl_monte_miser_params *p = NULL;
|
669
659
|
Data_Get_Struct(obj, gsl_monte_miser_state, s);
|
670
660
|
p = (gsl_monte_miser_params *) malloc(sizeof(gsl_monte_miser_params));
|
671
|
-
gsl_monte_miser_params_get(s, p);
|
661
|
+
gsl_monte_miser_params_get(s, p);
|
672
662
|
return Data_Wrap_Struct(cgsl_monte_miser_params, 0, free, p);
|
673
663
|
}
|
674
664
|
static VALUE rb_gsl_monte_miser_params_set(VALUE obj, VALUE params)
|
@@ -677,7 +667,7 @@ static VALUE rb_gsl_monte_miser_params_set(VALUE obj, VALUE params)
|
|
677
667
|
gsl_monte_miser_params *p = NULL;
|
678
668
|
Data_Get_Struct(obj, gsl_monte_miser_state, s);
|
679
669
|
Data_Get_Struct(params, gsl_monte_miser_params, p);
|
680
|
-
gsl_monte_miser_params_set(s, p);
|
670
|
+
gsl_monte_miser_params_set(s, p);
|
681
671
|
return Qtrue;
|
682
672
|
}
|
683
673
|
static VALUE rb_gsl_monte_miser_params_get_estimate_frac(VALUE obj)
|
@@ -752,7 +742,7 @@ static VALUE rb_gsl_monte_vegas_params_get(VALUE obj)
|
|
752
742
|
gsl_monte_vegas_params *p = NULL;
|
753
743
|
Data_Get_Struct(obj, gsl_monte_vegas_state, s);
|
754
744
|
p = (gsl_monte_vegas_params *) malloc(sizeof(gsl_monte_vegas_params));
|
755
|
-
gsl_monte_vegas_params_get(s, p);
|
745
|
+
gsl_monte_vegas_params_get(s, p);
|
756
746
|
return Data_Wrap_Struct(cgsl_monte_vegas_params, 0, free, p);
|
757
747
|
}
|
758
748
|
static VALUE rb_gsl_monte_vegas_params_set(VALUE obj, VALUE params)
|
@@ -761,7 +751,7 @@ static VALUE rb_gsl_monte_vegas_params_set(VALUE obj, VALUE params)
|
|
761
751
|
gsl_monte_vegas_params *p = NULL;
|
762
752
|
Data_Get_Struct(obj, gsl_monte_vegas_state, s);
|
763
753
|
Data_Get_Struct(params, gsl_monte_vegas_params, p);
|
764
|
-
gsl_monte_vegas_params_set(s, p);
|
754
|
+
gsl_monte_vegas_params_set(s, p);
|
765
755
|
return Qtrue;
|
766
756
|
}
|
767
757
|
static VALUE rb_gsl_monte_vegas_params_get_alpha(VALUE obj)
|
@@ -841,7 +831,6 @@ static VALUE rb_gsl_monte_vegas_runval(VALUE obj)
|
|
841
831
|
rb_ary_store(ary, 1, rb_float_new(sig));
|
842
832
|
return ary;
|
843
833
|
}
|
844
|
-
#endif
|
845
834
|
|
846
835
|
void Init_gsl_monte(VALUE module)
|
847
836
|
{
|
@@ -926,20 +915,19 @@ void Init_gsl_monte(VALUE module)
|
|
926
915
|
|
927
916
|
|
928
917
|
/*****/
|
929
|
-
rb_define_singleton_method(cgsl_monte_plain, "integrate",
|
930
|
-
|
931
|
-
rb_define_method(cgsl_monte_plain, "integrate",
|
932
|
-
|
933
|
-
rb_define_singleton_method(cgsl_monte_miser, "integrate",
|
934
|
-
|
935
|
-
rb_define_method(cgsl_monte_miser, "integrate",
|
936
|
-
|
937
|
-
rb_define_singleton_method(cgsl_monte_vegas, "integrate",
|
938
|
-
|
939
|
-
rb_define_method(cgsl_monte_vegas, "integrate",
|
940
|
-
|
941
|
-
|
942
|
-
#ifdef GSL_1_13_LATER
|
918
|
+
rb_define_singleton_method(cgsl_monte_plain, "integrate",
|
919
|
+
rb_gsl_monte_integrate, -1);
|
920
|
+
rb_define_method(cgsl_monte_plain, "integrate",
|
921
|
+
rb_gsl_monte_plain_integrate, -1);
|
922
|
+
rb_define_singleton_method(cgsl_monte_miser, "integrate",
|
923
|
+
rb_gsl_monte_integrate, -1);
|
924
|
+
rb_define_method(cgsl_monte_miser, "integrate",
|
925
|
+
rb_gsl_monte_miser_integrate, -1);
|
926
|
+
rb_define_singleton_method(cgsl_monte_vegas, "integrate",
|
927
|
+
rb_gsl_monte_integrate, -1);
|
928
|
+
rb_define_method(cgsl_monte_vegas, "integrate",
|
929
|
+
rb_gsl_monte_vegas_integrate, -1);
|
930
|
+
|
943
931
|
cgsl_monte_miser_params = rb_define_class_under(cgsl_monte_miser, "Params", cGSL_Object);
|
944
932
|
cgsl_monte_vegas_params = rb_define_class_under(cgsl_monte_vegas, "Params", cGSL_Object);
|
945
933
|
|
@@ -982,10 +970,8 @@ void Init_gsl_monte(VALUE module)
|
|
982
970
|
rb_define_method(cgsl_monte_vegas, "runval", rb_gsl_monte_vegas_runval, 0);
|
983
971
|
|
984
972
|
rb_define_const(cgsl_monte_vegas, "MODE_IMPORTANCE", INT2FIX(GSL_VEGAS_MODE_IMPORTANCE));
|
985
|
-
rb_define_const(cgsl_monte_vegas, "MODE_IMPORTANCE_ONLY", INT2FIX(GSL_VEGAS_MODE_IMPORTANCE_ONLY));
|
973
|
+
rb_define_const(cgsl_monte_vegas, "MODE_IMPORTANCE_ONLY", INT2FIX(GSL_VEGAS_MODE_IMPORTANCE_ONLY));
|
986
974
|
rb_define_const(cgsl_monte_vegas, "MODE_STRATIFIED", INT2FIX(GSL_VEGAS_MODE_STRATIFIED));
|
987
|
-
#endif
|
988
|
-
|
989
975
|
}
|
990
976
|
#ifdef CHECK_MONTE_FUNCTION
|
991
977
|
#undef CHECK_MONTE_FUNCTION
|