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
@@ -32,8 +32,8 @@ void pp(const gsl_matrix *m)
|
|
32
32
|
{
|
33
33
|
int r, c;
|
34
34
|
|
35
|
-
for(r=0; r<m->size1; r++) {
|
36
|
-
for(c=0; c<m->size2; c++) {
|
35
|
+
for(r = 0; r < (int) m->size1; r++) {
|
36
|
+
for(c = 0; c < (int) m->size2; c++) {
|
37
37
|
printf(" %.2f", gsl_matrix_get(m, r, c));
|
38
38
|
}
|
39
39
|
printf("\n");
|
@@ -45,15 +45,15 @@ void pp(const gsl_matrix *m)
|
|
45
45
|
double difcost(const gsl_matrix *a, const gsl_matrix *b)
|
46
46
|
{
|
47
47
|
int i, j;
|
48
|
-
double dif=0, d;
|
48
|
+
double dif = 0, d;
|
49
49
|
|
50
|
-
for (i=0; i < a->size1; i++)
|
50
|
+
for (i = 0; i < (int) a->size1; i++)
|
51
51
|
{
|
52
|
-
for (j=0; j < a->size2; j++)
|
52
|
+
for (j = 0; j < (int) a->size2; j++)
|
53
53
|
{
|
54
54
|
d = gsl_matrix_get(a, i, j) - gsl_matrix_get(b, i, j);
|
55
55
|
dif += d*d;
|
56
|
-
|
56
|
+
// dif += pow(gsl_matrix_get(a, i, j) - gsl_matrix_get(b, i, j), 2);
|
57
57
|
}
|
58
58
|
}
|
59
59
|
return dif;
|
@@ -66,9 +66,9 @@ static void initmatrix(gsl_matrix *m, double min, double max)
|
|
66
66
|
|
67
67
|
srand(time(NULL));
|
68
68
|
|
69
|
-
for(i=0; i < m->size1; i++)
|
69
|
+
for(i = 0; i < (int) m->size1; i++)
|
70
70
|
{
|
71
|
-
for(j=0; j < m->size2; j++)
|
71
|
+
for(j = 0; j < (int) m->size2; j++)
|
72
72
|
{
|
73
73
|
val = min + (int) (max * (rand() / (RAND_MAX + min)));
|
74
74
|
gsl_matrix_set(m, i, j, val);
|
@@ -79,10 +79,10 @@ static void initmatrix(gsl_matrix *m, double min, double max)
|
|
79
79
|
static double update(gsl_matrix *v, gsl_matrix *w, gsl_matrix *h)
|
80
80
|
{
|
81
81
|
double dist = 0;
|
82
|
-
gsl_matrix *wt=NULL, *ht=NULL, *wh=NULL;
|
83
|
-
gsl_matrix *w_h=NULL, *wt_w=NULL;
|
82
|
+
gsl_matrix *wt = NULL, *ht = NULL, *wh = NULL;
|
83
|
+
gsl_matrix *w_h = NULL, *wt_w = NULL;
|
84
84
|
gsl_matrix *wt_v = NULL;
|
85
|
-
gsl_matrix *v_ht=NULL, *wt_w_h=NULL, *w_h_ht=NULL;
|
85
|
+
gsl_matrix *v_ht = NULL, *wt_w_h = NULL, *w_h_ht = NULL;
|
86
86
|
|
87
87
|
wt = gsl_matrix_alloc(w->size2, w->size1);
|
88
88
|
gsl_matrix_transpose_memcpy(wt, w);
|
@@ -28,7 +28,7 @@ static VALUE nmf_wrap(VALUE obj, VALUE matrix, VALUE cols)
|
|
28
28
|
unsigned int c;
|
29
29
|
VALUE arr;
|
30
30
|
|
31
|
-
if ( !
|
31
|
+
if ( !FIXNUM_P(cols) || (c = NUM2INT(cols)) <= 0 ) {
|
32
32
|
rb_raise(rb_eArgError, "Number of columns should be a positive integer.");
|
33
33
|
}
|
34
34
|
arr = rb_ary_new2(2);
|
@@ -9,10 +9,10 @@
|
|
9
9
|
WITHOUT ANY WARRANTY.
|
10
10
|
*/
|
11
11
|
|
12
|
-
#include "rb_gsl.h"
|
13
|
-
#include "rb_gsl_array.h"
|
14
|
-
#include "rb_gsl_function.h"
|
15
|
-
#include "rb_gsl_histogram.h"
|
12
|
+
#include "include/rb_gsl.h"
|
13
|
+
#include "include/rb_gsl_array.h"
|
14
|
+
#include "include/rb_gsl_function.h"
|
15
|
+
#include "include/rb_gsl_histogram.h"
|
16
16
|
#include <gsl/gsl_ntuple.h>
|
17
17
|
|
18
18
|
static VALUE cgsl_ntuple;
|
@@ -191,11 +191,11 @@ static VALUE rb_gsl_ntuple_select_fn_set_f(int argc, VALUE *argv, VALUE obj)
|
|
191
191
|
CHECK_PROC(argv[0]);
|
192
192
|
rb_ary_store(ary, 0, argv[0]);
|
193
193
|
ary2 = rb_ary_new2(argc-1);
|
194
|
-
for (i = 1; i < argc; i++) rb_ary_store(ary2, i-1, argv[i]);
|
194
|
+
for (i = 1; (int) i < argc; i++) rb_ary_store(ary2, i-1, argv[i]);
|
195
195
|
rb_ary_store(ary, 1, ary2);
|
196
196
|
break;
|
197
197
|
}
|
198
|
-
if (rb_block_given_p()) rb_ary_store(ary, 0,
|
198
|
+
if (rb_block_given_p()) rb_ary_store(ary, 0, rb_block_proc());
|
199
199
|
return obj;
|
200
200
|
}
|
201
201
|
|
@@ -236,7 +236,7 @@ static VALUE rb_gsl_ntuple_select_fn_set_params(int argc, VALUE *argv, VALUE obj
|
|
236
236
|
rb_ary_store(ary, 1, argv[0]);
|
237
237
|
} else {
|
238
238
|
ary2 = rb_ary_new2(argc);
|
239
|
-
for (i = 0; i < argc; i++) rb_ary_store(ary2, i, argv[i]);
|
239
|
+
for (i = 0; (int) i < argc; i++) rb_ary_store(ary2, i, argv[i]);
|
240
240
|
rb_ary_store(ary, 1, ary2);
|
241
241
|
}
|
242
242
|
return obj;
|
@@ -310,11 +310,11 @@ static VALUE rb_gsl_ntuple_value_fn_set_f(int argc, VALUE *argv, VALUE obj)
|
|
310
310
|
CHECK_PROC(argv[0]);
|
311
311
|
rb_ary_store(ary, 0, argv[0]);
|
312
312
|
ary2 = rb_ary_new2(argc-1);
|
313
|
-
for (i = 1; i < argc; i++) rb_ary_store(ary2, i-1, argv[i]);
|
313
|
+
for (i = 1; (int) i < argc; i++) rb_ary_store(ary2, i-1, argv[i]);
|
314
314
|
rb_ary_store(ary, 1, ary2);
|
315
315
|
break;
|
316
316
|
}
|
317
|
-
if (rb_block_given_p()) rb_ary_store(ary, 0,
|
317
|
+
if (rb_block_given_p()) rb_ary_store(ary, 0, rb_block_proc());
|
318
318
|
return obj;
|
319
319
|
}
|
320
320
|
|
@@ -353,7 +353,7 @@ static VALUE rb_gsl_ntuple_value_fn_set_params(int argc, VALUE *argv, VALUE obj)
|
|
353
353
|
rb_ary_store(ary, 1, argv[0]);
|
354
354
|
} else {
|
355
355
|
ary2 = rb_ary_new2(argc);
|
356
|
-
for (i = 0; i < argc; i++) rb_ary_store(ary2, i, argv[i]);
|
356
|
+
for (i = 0; (int) i < argc; i++) rb_ary_store(ary2, i, argv[i]);
|
357
357
|
rb_ary_store(ary, 1, ary2);
|
358
358
|
}
|
359
359
|
return obj;
|
@@ -372,7 +372,7 @@ static VALUE rb_gsl_ntuple_value_fn_new(int argc, VALUE *argv, VALUE klass)
|
|
372
372
|
|
373
373
|
/* singleton method */
|
374
374
|
static VALUE rb_gsl_ntuple_project(VALUE obj, VALUE hh, VALUE nn,
|
375
|
-
|
375
|
+
VALUE vvfn, VALUE vsfn)
|
376
376
|
{
|
377
377
|
gsl_histogram *h = NULL;
|
378
378
|
gsl_ntuple *n = NULL;
|
@@ -386,10 +386,10 @@ static VALUE rb_gsl_ntuple_project(VALUE obj, VALUE hh, VALUE nn,
|
|
386
386
|
if (!rb_obj_is_kind_of(nn, cgsl_ntuple))
|
387
387
|
rb_raise(rb_eTypeError, "argument 2: Ntuple expected");
|
388
388
|
Data_Get_Struct(nn, gsl_ntuple, n);
|
389
|
-
if (!rb_obj_is_kind_of(vvfn, cgsl_ntuple_value_fn))
|
389
|
+
if (!rb_obj_is_kind_of(vvfn, cgsl_ntuple_value_fn))
|
390
390
|
rb_raise(rb_eTypeError, "argument 3: Ntuple::ValueFn expected");
|
391
391
|
Data_Get_Struct(vvfn, gsl_ntuple_value_fn, vfn);
|
392
|
-
if (!rb_obj_is_kind_of(vsfn, cgsl_ntuple_select_fn))
|
392
|
+
if (!rb_obj_is_kind_of(vsfn, cgsl_ntuple_select_fn))
|
393
393
|
rb_raise(rb_eTypeError, "argument 4: Ntuple::SelectFn expected");
|
394
394
|
Data_Get_Struct(vsfn, gsl_ntuple_select_fn, sfn);
|
395
395
|
|
@@ -412,10 +412,10 @@ static VALUE rb_gsl_ntuple_project2(VALUE obj, VALUE hh, VALUE vvfn, VALUE vsfn)
|
|
412
412
|
CHECK_HISTOGRAM(hh);
|
413
413
|
Data_Get_Struct(obj, gsl_ntuple, n);
|
414
414
|
Data_Get_Struct(hh, gsl_histogram, h);
|
415
|
-
if (!rb_obj_is_kind_of(vvfn, cgsl_ntuple_value_fn))
|
415
|
+
if (!rb_obj_is_kind_of(vvfn, cgsl_ntuple_value_fn))
|
416
416
|
rb_raise(rb_eTypeError, "argument 2: Ntuple::ValueFn expected");
|
417
417
|
Data_Get_Struct(vvfn, gsl_ntuple_value_fn, vfn);
|
418
|
-
if (!rb_obj_is_kind_of(vsfn, cgsl_ntuple_select_fn))
|
418
|
+
if (!rb_obj_is_kind_of(vsfn, cgsl_ntuple_select_fn))
|
419
419
|
rb_raise(rb_eTypeError, "argument 3: Ntuple::SelectFn expected");
|
420
420
|
Data_Get_Struct(vsfn, gsl_ntuple_select_fn, sfn);
|
421
421
|
size = n->size/sizeof(double);
|
@@ -447,22 +447,22 @@ void Init_gsl_ntuple(VALUE module)
|
|
447
447
|
rb_define_alias(cgsl_ntuple, "ntuple_data", "data");
|
448
448
|
|
449
449
|
rb_define_singleton_method(cgsl_ntuple_select_fn, "alloc",
|
450
|
-
|
450
|
+
rb_gsl_ntuple_select_fn_new, -1);
|
451
451
|
rb_define_method(cgsl_ntuple_select_fn, "set",
|
452
|
-
|
452
|
+
rb_gsl_ntuple_select_fn_set_f, -1);
|
453
453
|
rb_define_method(cgsl_ntuple_select_fn, "set_params",
|
454
|
-
|
454
|
+
rb_gsl_ntuple_select_fn_set_params, -1);
|
455
455
|
rb_define_method(cgsl_ntuple_select_fn, "params",
|
456
|
-
|
456
|
+
rb_gsl_ntuple_select_fn_params, 0);
|
457
457
|
|
458
458
|
rb_define_singleton_method(cgsl_ntuple_value_fn, "alloc",
|
459
|
-
|
459
|
+
rb_gsl_ntuple_value_fn_new, -1);
|
460
460
|
rb_define_method(cgsl_ntuple_value_fn, "set",
|
461
|
-
|
461
|
+
rb_gsl_ntuple_value_fn_set_f, -1);
|
462
462
|
rb_define_method(cgsl_ntuple_value_fn, "set_params",
|
463
|
-
|
463
|
+
rb_gsl_ntuple_value_fn_set_params, -1);
|
464
464
|
rb_define_method(cgsl_ntuple_value_fn, "params",
|
465
|
-
|
465
|
+
rb_gsl_ntuple_value_fn_params, 0);
|
466
466
|
|
467
467
|
rb_define_singleton_method(cgsl_ntuple, "project", rb_gsl_ntuple_project, 4);
|
468
468
|
rb_define_method(cgsl_ntuple, "project", rb_gsl_ntuple_project2, 3);
|
@@ -8,44 +8,44 @@
|
|
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_odeiv.h"
|
13
|
-
#include "rb_gsl_array.h"
|
14
|
-
#include "rb_gsl_function.h"
|
11
|
+
|
12
|
+
#include "include/rb_gsl_odeiv.h"
|
13
|
+
#include "include/rb_gsl_array.h"
|
14
|
+
#include "include/rb_gsl_function.h"
|
15
15
|
|
16
16
|
#ifndef CHECK_SYSTEM
|
17
|
-
#define CHECK_SYSTEM(x) if(CLASS_OF(x)!=cgsl_odeiv_system)\
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
#define CHECK_SYSTEM(x) if(CLASS_OF(x)!=cgsl_odeiv_system) \
|
18
|
+
rb_raise(rb_eTypeError, \
|
19
|
+
"wrong argument type %s (GSL::Odeiv::System expected)", \
|
20
|
+
rb_class2name(CLASS_OF(x)));
|
21
21
|
#endif
|
22
22
|
|
23
23
|
#ifndef CHECK_STEP
|
24
|
-
#define CHECK_STEP(x) if(CLASS_OF(x)!=cgsl_odeiv_step)\
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
#define CHECK_STEP(x) if(CLASS_OF(x)!=cgsl_odeiv_step) \
|
25
|
+
rb_raise(rb_eTypeError, \
|
26
|
+
"wrong argument type %s (GSL::Odeiv::Step expected)", \
|
27
|
+
rb_class2name(CLASS_OF(x)));
|
28
28
|
#endif
|
29
29
|
|
30
30
|
#ifndef CHECK_CONTROL
|
31
|
-
#define CHECK_CONTROL(x) if(CLASS_OF(x)!=cgsl_odeiv_control)\
|
32
|
-
|
33
|
-
|
34
|
-
|
31
|
+
#define CHECK_CONTROL(x) if(CLASS_OF(x)!=cgsl_odeiv_control) \
|
32
|
+
rb_raise(rb_eTypeError, \
|
33
|
+
"wrong argument type %s (GSL::Odeiv::Control expected)", \
|
34
|
+
rb_class2name(CLASS_OF(x)));
|
35
35
|
#endif
|
36
36
|
|
37
37
|
#ifndef CHECK_EVOLVE
|
38
|
-
#define CHECK_EVOLVE(x) if(CLASS_OF(x)!=cgsl_odeiv_evolve)\
|
39
|
-
|
40
|
-
|
41
|
-
|
38
|
+
#define CHECK_EVOLVE(x) if(CLASS_OF(x)!=cgsl_odeiv_evolve) \
|
39
|
+
rb_raise(rb_eTypeError, \
|
40
|
+
"wrong argument type %s (GSL::Odeiv::Evolve expected)", \
|
41
|
+
rb_class2name(CLASS_OF(x)));
|
42
42
|
#endif
|
43
43
|
|
44
44
|
#ifndef CHECK_SOLVER
|
45
|
-
#define CHECK_SOLVER(x) if(CLASS_OF(x)!=cgsl_odeiv_solver)\
|
46
|
-
|
47
|
-
|
48
|
-
|
45
|
+
#define CHECK_SOLVER(x) if(CLASS_OF(x)!=cgsl_odeiv_solver) \
|
46
|
+
rb_raise(rb_eTypeError, \
|
47
|
+
"wrong argument type %s (GSL::Odeiv::Solver expected)", \
|
48
|
+
rb_class2name(CLASS_OF(x)));
|
49
49
|
#endif
|
50
50
|
|
51
51
|
static VALUE cgsl_odeiv_system;
|
@@ -101,10 +101,9 @@ static int calc_func(double t, const double y[], double dydt[], void *data)
|
|
101
101
|
vy = Data_Wrap_Struct(cgsl_vector_view_ro, 0, NULL, &ytmp);
|
102
102
|
vdydt = Data_Wrap_Struct(cgsl_vector_view, 0, NULL, &dydttmp);
|
103
103
|
|
104
|
-
if (NIL_P(params)) /*result =*/ rb_funcall((VALUE) proc, RBGSL_ID_call, 3, rb_float_new(t),
|
105
|
-
|
104
|
+
if (NIL_P(params)) /*result =*/ rb_funcall((VALUE) proc, RBGSL_ID_call, 3, rb_float_new(t),
|
105
|
+
vy, vdydt);
|
106
106
|
else /*result =*/ rb_funcall((VALUE) proc, RBGSL_ID_call, 4, rb_float_new(t), vy, vdydt, params);
|
107
|
-
|
108
107
|
return GSL_SUCCESS;
|
109
108
|
}
|
110
109
|
|
@@ -118,11 +117,10 @@ static int calc_jac(double t, const double y[], double *dfdy, double dfdt[], voi
|
|
118
117
|
gsl_vector_view ytmp, dfdttmp;
|
119
118
|
gsl_matrix_view mv;
|
120
119
|
size_t dim;
|
121
|
-
|
120
|
+
|
122
121
|
ary = (VALUE) data;
|
123
122
|
proc = rb_ary_entry(ary, 1);
|
124
123
|
if (NIL_P(proc)) rb_raise(rb_eRuntimeError, "df function not given");
|
125
|
-
|
126
124
|
dim = FIX2INT(rb_ary_entry(ary, 2));
|
127
125
|
params = rb_ary_entry(ary, 3);
|
128
126
|
|
@@ -137,9 +135,9 @@ static int calc_jac(double t, const double y[], double *dfdy, double dfdt[], voi
|
|
137
135
|
vmjac = Data_Wrap_Struct(cgsl_matrix_view, 0, NULL, &mv);
|
138
136
|
vdfdt = Data_Wrap_Struct(cgsl_vector_view, 0, NULL, &dfdttmp);
|
139
137
|
if (NIL_P(params)) /*result =*/ rb_funcall((VALUE) proc, RBGSL_ID_call, 4, rb_float_new(t),
|
140
|
-
|
141
|
-
else /*result =*/ rb_funcall((VALUE) proc, RBGSL_ID_call, 5, rb_float_new(t),
|
142
|
-
|
138
|
+
vy, vmjac, vdfdt);
|
139
|
+
else /*result =*/ rb_funcall((VALUE) proc, RBGSL_ID_call, 5, rb_float_new(t),
|
140
|
+
vy, vmjac, vdfdt, params);
|
143
141
|
return GSL_SUCCESS;
|
144
142
|
}
|
145
143
|
|
@@ -195,7 +193,6 @@ static void set_sys(int argc, VALUE *argv, gsl_odeiv_system *sys)
|
|
195
193
|
sys->function = &calc_func;
|
196
194
|
sys->jacobian = &calc_jac;
|
197
195
|
}
|
198
|
-
|
199
196
|
if (sys->params == NULL) {
|
200
197
|
ary = rb_ary_new2(4);
|
201
198
|
/* (VALUE) sys->params = ary;*/
|
@@ -213,7 +210,7 @@ static void set_sys(int argc, VALUE *argv, gsl_odeiv_system *sys)
|
|
213
210
|
} else {
|
214
211
|
vjac = Qnil;
|
215
212
|
}
|
216
|
-
if ((dim =argv[itmp++]) == Qnil) dim = argv[itmp++];
|
213
|
+
if ((dim = argv[itmp++]) == Qnil) dim = argv[itmp++];
|
217
214
|
switch (argc - itmp) {
|
218
215
|
case 0:
|
219
216
|
vparams = Qnil;
|
@@ -223,14 +220,14 @@ static void set_sys(int argc, VALUE *argv, gsl_odeiv_system *sys)
|
|
223
220
|
break;
|
224
221
|
default:
|
225
222
|
vparams = rb_ary_new2(argc-itmp);
|
226
|
-
for (i = itmp, j = 0; i < argc; i++, j++) rb_ary_store(vparams, j, argv[i]);
|
223
|
+
for (i = itmp, j = 0; (int) i < argc; i++, j++) rb_ary_store(vparams, j, argv[i]);
|
227
224
|
}
|
228
225
|
dimension = FIX2INT(dim);
|
229
226
|
sys->dimension = dimension;
|
230
|
-
rb_ary_store(ary, 0, argv[0]);
|
227
|
+
rb_ary_store(ary, 0, argv[0]);
|
231
228
|
rb_ary_store(ary, 1, vjac);
|
232
|
-
rb_ary_store(ary, 2, dim);
|
233
|
-
rb_ary_store(ary, 3, vparams);
|
229
|
+
rb_ary_store(ary, 2, dim);
|
230
|
+
rb_ary_store(ary, 3, vparams);
|
234
231
|
}
|
235
232
|
|
236
233
|
static VALUE rb_gsl_odeiv_system_set_params(int argc, VALUE *argv, VALUE obj);
|
@@ -251,10 +248,10 @@ static VALUE rb_gsl_odeiv_system_set_params(int argc, VALUE *argv, VALUE obj)
|
|
251
248
|
break;
|
252
249
|
default:
|
253
250
|
vparams = rb_ary_new2(argc);
|
254
|
-
for (i = 0; i < argc; i++) rb_ary_store(vparams, i, argv[i]);
|
251
|
+
for (i = 0; (int) i < argc; i++) rb_ary_store(vparams, i, argv[i]);
|
255
252
|
}
|
256
253
|
// rb_ary_delete_at(ary, 3);
|
257
|
-
rb_ary_store(ary, 3, vparams);
|
254
|
+
rb_ary_store(ary, 3, vparams);
|
258
255
|
return obj;
|
259
256
|
}
|
260
257
|
|
@@ -341,9 +338,7 @@ static const gsl_odeiv_step_type* rb_gsl_odeiv_step_type_get(VALUE tt)
|
|
341
338
|
case GSL_ODEIV_STEP_BSIMP: T = gsl_odeiv_step_bsimp; break;
|
342
339
|
case GSL_ODEIV_STEP_GEAR1: T = gsl_odeiv_step_gear1; break;
|
343
340
|
case GSL_ODEIV_STEP_GEAR2: T = gsl_odeiv_step_gear2; break;
|
344
|
-
#ifdef GSL_1_6_LATER
|
345
341
|
case GSL_ODEIV_STEP_RK2SIMP: T = gsl_odeiv_step_rk2simp; break;
|
346
|
-
#endif
|
347
342
|
default:
|
348
343
|
rb_raise(rb_eArgError, "wrong argument type (Fixnum expected)");
|
349
344
|
break;
|
@@ -361,16 +356,14 @@ static const gsl_odeiv_step_type* rb_gsl_odeiv_step_type_get(VALUE tt)
|
|
361
356
|
else if (str_tail_grep(name, "bsimp") == 0) T = gsl_odeiv_step_bsimp;
|
362
357
|
else if (str_tail_grep(name, "gear1") == 0) T = gsl_odeiv_step_gear1;
|
363
358
|
else if (str_tail_grep(name, "gear2") == 0) T = gsl_odeiv_step_gear2;
|
364
|
-
#ifdef GSL_1_6_LATER
|
365
359
|
else if (str_tail_grep(name, "rk2simp") == 0) T = gsl_odeiv_step_rk2simp;
|
366
|
-
#endif
|
367
360
|
else {
|
368
361
|
rb_raise(rb_eArgError, "wrong argument type %s", name);
|
369
362
|
}
|
370
363
|
break;
|
371
364
|
default:
|
372
365
|
rb_raise(rb_eArgError, "wrong argument type %s (String or Fixnum expected)",
|
373
|
-
|
366
|
+
rb_class2name(CLASS_OF(tt)));
|
374
367
|
break;
|
375
368
|
}
|
376
369
|
return T;
|
@@ -420,7 +413,7 @@ static VALUE rb_gsl_odeiv_step_apply(int argc, VALUE *argv, VALUE obj)
|
|
420
413
|
Data_Get_Struct(argv[5], gsl_vector, vtmp2);
|
421
414
|
if (vtmp2) dydt_out = vtmp2->data;
|
422
415
|
}
|
423
|
-
|
416
|
+
/* no break */
|
424
417
|
case 6:
|
425
418
|
if (VECTOR_P(argv[4])) {
|
426
419
|
Data_Get_Struct(argv[4], gsl_vector, vtmp1);
|
@@ -440,8 +433,8 @@ static VALUE rb_gsl_odeiv_step_apply(int argc, VALUE *argv, VALUE obj)
|
|
440
433
|
Data_Get_Struct(argv[2], gsl_vector, y);
|
441
434
|
Data_Get_Struct(argv[3], gsl_vector, yerr);
|
442
435
|
Data_Get_Struct(argv[argc-1], gsl_odeiv_system, sys);
|
443
|
-
return INT2FIX(gsl_odeiv_step_apply(s, t, h, y->data, yerr->data,
|
444
|
-
|
436
|
+
return INT2FIX(gsl_odeiv_step_apply(s, t, h, y->data, yerr->data,
|
437
|
+
dydt_in, dydt_out, sys));
|
445
438
|
}
|
446
439
|
|
447
440
|
static VALUE rb_gsl_odeiv_step_info(VALUE obj)
|
@@ -450,37 +443,33 @@ static VALUE rb_gsl_odeiv_step_info(VALUE obj)
|
|
450
443
|
char buf[256];
|
451
444
|
Data_Get_Struct(obj, gsl_odeiv_step, s);
|
452
445
|
sprintf(buf, "Class: %s\n", rb_class2name(CLASS_OF(obj)));
|
453
|
-
#ifdef RUBY_1_9_LATER
|
454
446
|
sprintf(buf, "%sSuperClass: %s\n", buf, rb_class2name(RCLASS_SUPER(CLASS_OF(obj))));
|
455
|
-
#else
|
456
|
-
sprintf(buf, "%sSuperClass: %s\n", buf, rb_class2name(RCLASS(CLASS_OF(obj))->super));
|
457
|
-
#endif
|
458
447
|
sprintf(buf, "%sType: %s\n", buf, gsl_odeiv_step_name(s));
|
459
448
|
sprintf(buf, "%sDimension: %d\n", buf, (int) s->dimension);
|
460
449
|
return rb_str_new2(buf);
|
461
450
|
}
|
462
451
|
|
463
|
-
static gsl_odeiv_control* make_control_standard(VALUE epsabs,
|
464
|
-
|
465
|
-
|
452
|
+
static gsl_odeiv_control* make_control_standard(VALUE epsabs,
|
453
|
+
VALUE epsrel,
|
454
|
+
VALUE ay, VALUE adydt);
|
466
455
|
static gsl_odeiv_control* make_control_y(VALUE epsabs, VALUE epsrel);
|
467
|
-
static VALUE rb_gsl_odeiv_control_standard_new(VALUE klass, VALUE epsabs,
|
468
|
-
|
469
|
-
|
456
|
+
static VALUE rb_gsl_odeiv_control_standard_new(VALUE klass, VALUE epsabs,
|
457
|
+
VALUE epsrel,
|
458
|
+
VALUE ay, VALUE adydt)
|
470
459
|
{
|
471
460
|
gsl_odeiv_control *c = NULL;
|
472
|
-
c = make_control_standard(epsabs, epsrel, ay, adydt);
|
461
|
+
c = make_control_standard(epsabs, epsrel, ay, adydt);
|
473
462
|
return Data_Wrap_Struct(klass, 0, gsl_odeiv_control_free, c);
|
474
463
|
}
|
475
464
|
|
476
|
-
static gsl_odeiv_control* make_control_standard(VALUE epsabs,
|
477
|
-
|
478
|
-
|
465
|
+
static gsl_odeiv_control* make_control_standard(VALUE epsabs,
|
466
|
+
VALUE epsrel,
|
467
|
+
VALUE ay, VALUE adydt)
|
479
468
|
{
|
480
469
|
Need_Float(epsabs); Need_Float(epsrel);
|
481
470
|
Need_Float(ay); Need_Float(adydt);
|
482
|
-
return gsl_odeiv_control_standard_new(NUM2DBL(epsabs), NUM2DBL(epsrel),
|
483
|
-
|
471
|
+
return gsl_odeiv_control_standard_new(NUM2DBL(epsabs), NUM2DBL(epsrel),
|
472
|
+
NUM2DBL(ay), NUM2DBL(adydt));
|
484
473
|
}
|
485
474
|
|
486
475
|
static gsl_odeiv_control* make_control_y(VALUE epsabs, VALUE epsrel)
|
@@ -489,16 +478,16 @@ static gsl_odeiv_control* make_control_y(VALUE epsabs, VALUE epsrel)
|
|
489
478
|
return gsl_odeiv_control_y_new(NUM2DBL(epsabs), NUM2DBL(epsrel));
|
490
479
|
}
|
491
480
|
|
492
|
-
static VALUE rb_gsl_odeiv_control_y_new(VALUE klass, VALUE epsabs,
|
493
|
-
|
481
|
+
static VALUE rb_gsl_odeiv_control_y_new(VALUE klass, VALUE epsabs,
|
482
|
+
VALUE epsrel)
|
494
483
|
{
|
495
484
|
gsl_odeiv_control *c = NULL;
|
496
485
|
c = make_control_y(epsabs, epsrel);
|
497
486
|
return Data_Wrap_Struct(klass, 0, gsl_odeiv_control_free, c);
|
498
487
|
}
|
499
488
|
|
500
|
-
static VALUE rb_gsl_odeiv_control_yp_new(VALUE klass, VALUE epsabs,
|
501
|
-
|
489
|
+
static VALUE rb_gsl_odeiv_control_yp_new(VALUE klass, VALUE epsabs,
|
490
|
+
VALUE epsrel)
|
502
491
|
{
|
503
492
|
gsl_odeiv_control *c = NULL;
|
504
493
|
Need_Float(epsabs); Need_Float(epsrel);
|
@@ -506,11 +495,10 @@ static VALUE rb_gsl_odeiv_control_yp_new(VALUE klass, VALUE epsabs,
|
|
506
495
|
return Data_Wrap_Struct(klass, 0, gsl_odeiv_control_free, c);
|
507
496
|
}
|
508
497
|
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
VALUE sc, VALUE dd)
|
498
|
+
static VALUE rb_gsl_odeiv_control_scaled_new(VALUE klass, VALUE epsabs,
|
499
|
+
VALUE epsrel,
|
500
|
+
VALUE ay, VALUE adydt,
|
501
|
+
VALUE sc, VALUE dd)
|
514
502
|
{
|
515
503
|
gsl_odeiv_control *c = NULL;
|
516
504
|
gsl_vector *v = NULL;
|
@@ -519,23 +507,22 @@ static VALUE rb_gsl_odeiv_control_scaled_new(VALUE klass, VALUE epsabs,
|
|
519
507
|
CHECK_FIXNUM(dd);
|
520
508
|
CHECK_VECTOR(sc);
|
521
509
|
Data_Get_Struct(sc, gsl_vector, v);
|
522
|
-
c = gsl_odeiv_control_scaled_new(NUM2DBL(epsabs), NUM2DBL(epsrel),
|
523
|
-
|
524
|
-
|
510
|
+
c = gsl_odeiv_control_scaled_new(NUM2DBL(epsabs), NUM2DBL(epsrel),
|
511
|
+
NUM2DBL(ay), NUM2DBL(adydt), v->data,
|
512
|
+
FIX2INT(dd));
|
525
513
|
return Data_Wrap_Struct(klass, 0, gsl_odeiv_control_free, c);
|
526
514
|
}
|
527
|
-
#endif
|
528
515
|
|
529
|
-
static VALUE rb_gsl_odeiv_control_init(VALUE obj, VALUE epsabs,
|
530
|
-
|
531
|
-
|
516
|
+
static VALUE rb_gsl_odeiv_control_init(VALUE obj, VALUE epsabs,
|
517
|
+
VALUE epsrel,
|
518
|
+
VALUE ay, VALUE adydt)
|
532
519
|
{
|
533
520
|
gsl_odeiv_control *c = NULL;
|
534
521
|
Need_Float(epsabs); Need_Float(epsrel);
|
535
522
|
Need_Float(ay); Need_Float(adydt);
|
536
523
|
Data_Get_Struct(obj, gsl_odeiv_control, c);
|
537
|
-
gsl_odeiv_control_init(c, NUM2DBL(epsabs), NUM2DBL(epsrel),
|
538
|
-
|
524
|
+
gsl_odeiv_control_init(c, NUM2DBL(epsabs), NUM2DBL(epsrel),
|
525
|
+
NUM2DBL(ay), NUM2DBL(adydt));
|
539
526
|
return obj;
|
540
527
|
}
|
541
528
|
|
@@ -547,7 +534,7 @@ static VALUE rb_gsl_odeiv_control_name(VALUE obj)
|
|
547
534
|
}
|
548
535
|
|
549
536
|
static VALUE rb_gsl_odeiv_control_hadjust(VALUE obj, VALUE ss, VALUE yy0,
|
550
|
-
|
537
|
+
VALUE yyerr, VALUE ddydt, VALUE hh)
|
551
538
|
{
|
552
539
|
gsl_odeiv_control *c = NULL;
|
553
540
|
gsl_odeiv_step *s = NULL;
|
@@ -563,13 +550,13 @@ static VALUE rb_gsl_odeiv_control_hadjust(VALUE obj, VALUE ss, VALUE yy0,
|
|
563
550
|
Data_Get_Struct(yyerr, gsl_vector, yerr);
|
564
551
|
Data_Get_Struct(ddydt, gsl_vector, dydt);
|
565
552
|
h = NUM2DBL(hh);
|
566
|
-
status = gsl_odeiv_control_hadjust(c, s, y0->data, yerr->data,
|
567
|
-
|
553
|
+
status = gsl_odeiv_control_hadjust(c, s, y0->data, yerr->data,
|
554
|
+
dydt->data, &h);
|
568
555
|
return rb_ary_new3(2, rb_float_new(h), INT2FIX(status));
|
569
556
|
}
|
570
557
|
|
571
558
|
static gsl_odeiv_evolve* make_evolve(VALUE dim);
|
572
|
-
static VALUE rb_gsl_odeiv_evolve_new(VALUE klass, VALUE dim)
|
559
|
+
static VALUE rb_gsl_odeiv_evolve_new(VALUE klass, VALUE dim)
|
573
560
|
{
|
574
561
|
gsl_odeiv_evolve *e = NULL;
|
575
562
|
e = make_evolve(dim);
|
@@ -643,7 +630,7 @@ static VALUE rb_gsl_odeiv_evolve_yerr(VALUE obj)
|
|
643
630
|
}
|
644
631
|
|
645
632
|
static VALUE rb_gsl_odeiv_evolve_apply(VALUE obj, VALUE cc, VALUE ss, VALUE sss,
|
646
|
-
|
633
|
+
VALUE tt, VALUE tt1, VALUE hh, VALUE yy)
|
647
634
|
{
|
648
635
|
gsl_odeiv_evolve *e = NULL;
|
649
636
|
gsl_odeiv_control *c = NULL;
|
@@ -658,7 +645,7 @@ static VALUE rb_gsl_odeiv_evolve_apply(VALUE obj, VALUE cc, VALUE ss, VALUE sss,
|
|
658
645
|
if (NIL_P(cc)) {
|
659
646
|
c = NULL;
|
660
647
|
} else {
|
661
|
-
CHECK_CONTROL(cc);
|
648
|
+
CHECK_CONTROL(cc);
|
662
649
|
Data_Get_Struct(cc, gsl_odeiv_control, c);
|
663
650
|
}
|
664
651
|
Data_Get_Struct(ss, gsl_odeiv_step, s);
|
@@ -792,8 +779,8 @@ static VALUE rb_gsl_odeiv_solver_set_sys(VALUE obj, VALUE ss)
|
|
792
779
|
return obj;
|
793
780
|
}
|
794
781
|
|
795
|
-
static VALUE rb_gsl_odeiv_solver_apply(VALUE obj, VALUE tt, VALUE tt1, VALUE hh,
|
796
|
-
|
782
|
+
static VALUE rb_gsl_odeiv_solver_apply(VALUE obj, VALUE tt, VALUE tt1, VALUE hh,
|
783
|
+
VALUE yy)
|
797
784
|
{
|
798
785
|
gsl_odeiv_solver *gos = NULL;
|
799
786
|
gsl_vector *y = NULL;
|
@@ -807,8 +794,8 @@ static VALUE rb_gsl_odeiv_solver_apply(VALUE obj, VALUE tt, VALUE tt1, VALUE hh,
|
|
807
794
|
if (TYPE(hh) != T_FLOAT) rb_raise(rb_eTypeError, "argument 2 Float expected");*/
|
808
795
|
t = NUM2DBL(tt);
|
809
796
|
h = NUM2DBL(hh);
|
810
|
-
status = gsl_odeiv_evolve_apply(gos->e, gos->c, gos->s,
|
811
|
-
|
797
|
+
status = gsl_odeiv_evolve_apply(gos->e, gos->c, gos->s,
|
798
|
+
gos->sys, &t, NUM2DBL(tt1), &h, y->data);
|
812
799
|
/* RFLOAT(tt)->value = t;
|
813
800
|
RFLOAT(hh)->value = h;
|
814
801
|
return INT2FIX(status);*/
|
@@ -840,8 +827,8 @@ static VALUE rb_gsl_odeiv_solver_set_params(int argc, VALUE *argv, VALUE obj)
|
|
840
827
|
{
|
841
828
|
gsl_odeiv_solver *gos = NULL;
|
842
829
|
Data_Get_Struct(obj, gsl_odeiv_solver, gos);
|
843
|
-
rb_gsl_odeiv_system_set_params(argc, argv,
|
844
|
-
|
830
|
+
rb_gsl_odeiv_system_set_params(argc, argv,
|
831
|
+
Data_Wrap_Struct(cgsl_odeiv_system, 0, NULL, gos->sys));
|
845
832
|
return obj;
|
846
833
|
}
|
847
834
|
|
@@ -861,8 +848,8 @@ void Init_gsl_odeiv(VALUE module)
|
|
861
848
|
rb_define_const(mgsl_odeiv, "HADJ_DEC", INT2FIX(GSL_ODEIV_HADJ_DEC));
|
862
849
|
rb_define_const(mgsl_odeiv, "HADJ_INC", INT2FIX(GSL_ODEIV_HADJ_INC));
|
863
850
|
rb_define_const(mgsl_odeiv, "HADJ_NIL", INT2FIX(GSL_ODEIV_HADJ_NIL));
|
864
|
-
cgsl_odeiv_step = rb_define_class_under(mgsl_odeiv, "Step",
|
865
|
-
|
851
|
+
cgsl_odeiv_step = rb_define_class_under(mgsl_odeiv, "Step",
|
852
|
+
cGSL_Object);
|
866
853
|
rb_define_singleton_method(cgsl_odeiv_step, "alloc", rb_gsl_odeiv_step_new, -1);
|
867
854
|
|
868
855
|
/*****/
|
@@ -889,23 +876,21 @@ void Init_gsl_odeiv(VALUE module)
|
|
889
876
|
|
890
877
|
/****/
|
891
878
|
|
892
|
-
cgsl_odeiv_control = rb_define_class_under(mgsl_odeiv, "Control",
|
893
|
-
|
879
|
+
cgsl_odeiv_control = rb_define_class_under(mgsl_odeiv, "Control",
|
880
|
+
cGSL_Object);
|
894
881
|
rb_define_singleton_method(cgsl_odeiv_control, "alloc", rb_gsl_odeiv_control_standard_new, 4);
|
895
882
|
rb_define_singleton_method(cgsl_odeiv_control, "standard_alloc", rb_gsl_odeiv_control_standard_new, 4);
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
rb_define_singleton_method(cgsl_odeiv_control, "scaled_alloc", rb_gsl_odeiv_control_scaled_new, 5);
|
900
|
-
#endif
|
883
|
+
rb_define_singleton_method(cgsl_odeiv_control, "y_new", rb_gsl_odeiv_control_y_new, 2);
|
884
|
+
rb_define_singleton_method(cgsl_odeiv_control, "yp_new", rb_gsl_odeiv_control_yp_new, 2);
|
885
|
+
rb_define_singleton_method(cgsl_odeiv_control, "scaled_alloc", rb_gsl_odeiv_control_scaled_new, 5);
|
901
886
|
|
902
887
|
rb_define_method(cgsl_odeiv_control, "init", rb_gsl_odeiv_control_init, 4);
|
903
888
|
rb_define_method(cgsl_odeiv_control, "name", rb_gsl_odeiv_control_name, 0);
|
904
889
|
rb_define_method(cgsl_odeiv_control, "hadjust", rb_gsl_odeiv_control_hadjust, 5);
|
905
890
|
|
906
|
-
|
907
|
-
cgsl_odeiv_evolve = rb_define_class_under(mgsl_odeiv, "Evolve",
|
908
|
-
|
891
|
+
/****/
|
892
|
+
cgsl_odeiv_evolve = rb_define_class_under(mgsl_odeiv, "Evolve",
|
893
|
+
cGSL_Object);
|
909
894
|
rb_define_singleton_method(cgsl_odeiv_evolve, "alloc", rb_gsl_odeiv_evolve_new, 1);
|
910
895
|
|
911
896
|
rb_define_method(cgsl_odeiv_evolve, "reset", rb_gsl_odeiv_evolve_reset, 0);
|
@@ -918,19 +903,19 @@ void Init_gsl_odeiv(VALUE module)
|
|
918
903
|
rb_define_method(cgsl_odeiv_evolve, "yerr", rb_gsl_odeiv_evolve_yerr, 0);
|
919
904
|
/*****/
|
920
905
|
|
921
|
-
cgsl_odeiv_system = rb_define_class_under(mgsl_odeiv, "System",
|
922
|
-
|
906
|
+
cgsl_odeiv_system = rb_define_class_under(mgsl_odeiv, "System",
|
907
|
+
cGSL_Object);
|
923
908
|
rb_define_singleton_method(cgsl_odeiv_system, "alloc", rb_gsl_odeiv_system_new, -1);
|
924
909
|
rb_define_method(cgsl_odeiv_system, "set", rb_gsl_odeiv_system_set, -1);
|
925
|
-
rb_define_method(cgsl_odeiv_system, "set_params",
|
926
|
-
|
927
|
-
rb_define_method(cgsl_odeiv_system, "params",
|
928
|
-
|
929
|
-
rb_define_method(cgsl_odeiv_system, "function",
|
930
|
-
|
910
|
+
rb_define_method(cgsl_odeiv_system, "set_params",
|
911
|
+
rb_gsl_odeiv_system_set_params, -1);
|
912
|
+
rb_define_method(cgsl_odeiv_system, "params",
|
913
|
+
rb_gsl_odeiv_system_params, 0);
|
914
|
+
rb_define_method(cgsl_odeiv_system, "function",
|
915
|
+
rb_gsl_odeiv_system_function, 0);
|
931
916
|
rb_define_alias(cgsl_odeiv_system, "func", "function");
|
932
|
-
rb_define_method(cgsl_odeiv_system, "jacobian",
|
933
|
-
|
917
|
+
rb_define_method(cgsl_odeiv_system, "jacobian",
|
918
|
+
rb_gsl_odeiv_system_jacobian, 0);
|
934
919
|
rb_define_alias(cgsl_odeiv_system, "jac", "jacobian");
|
935
920
|
rb_define_method(cgsl_odeiv_system, "dimension", rb_gsl_odeiv_system_dimension, 0);
|
936
921
|
rb_define_alias(cgsl_odeiv_system, "dim", "dimension");
|