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
@@ -10,11 +10,8 @@
|
|
10
10
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
11
11
|
*/
|
12
12
|
|
13
|
-
#include "rb_gsl_array.h"
|
14
|
-
#include "rb_gsl_sf.h"
|
15
|
-
#ifdef HAVE_NARRAY_H
|
16
|
-
#include "narray.h"
|
17
|
-
#endif
|
13
|
+
#include "include/rb_gsl_array.h"
|
14
|
+
#include "include/rb_gsl_sf.h"
|
18
15
|
|
19
16
|
VALUE cgsl_sf_result, cgsl_sf_result_e10;
|
20
17
|
|
@@ -154,10 +151,6 @@ VALUE rb_gsl_sf_eval_int_double(double (*func)(int, double), VALUE jj, VALUE arg
|
|
154
151
|
VALUE ary, xx;
|
155
152
|
size_t i, j, k, n;
|
156
153
|
double val;
|
157
|
-
#ifdef HAVE_NARRAY_H
|
158
|
-
double *ptr1, *ptr2;
|
159
|
-
struct NARRAY *na;
|
160
|
-
#endif
|
161
154
|
CHECK_FIXNUM(jj);
|
162
155
|
j = FIX2INT(jj);
|
163
156
|
if (CLASS_OF(argv) == rb_cRange) argv = rb_gsl_range2ary(argv);
|
@@ -181,6 +174,8 @@ VALUE rb_gsl_sf_eval_int_double(double (*func)(int, double), VALUE jj, VALUE arg
|
|
181
174
|
default:
|
182
175
|
#ifdef HAVE_NARRAY_H
|
183
176
|
if (NA_IsNArray(argv)) {
|
177
|
+
double *ptr1, *ptr2;
|
178
|
+
struct NARRAY *na;
|
184
179
|
argv = na_change_type(argv, NA_DFLOAT);
|
185
180
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
186
181
|
GetNArray(argv, na);
|
@@ -195,10 +190,10 @@ VALUE rb_gsl_sf_eval_int_double(double (*func)(int, double), VALUE jj, VALUE arg
|
|
195
190
|
Data_Get_Struct(argv, gsl_matrix, m);
|
196
191
|
mnew = gsl_matrix_alloc(m->size1, m->size2);
|
197
192
|
for (i = 0; i < m->size1; i++) {
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
193
|
+
for (k = 0; k < m->size2; k++) {
|
194
|
+
val = (*func)(j, gsl_matrix_get(m, i, k));
|
195
|
+
gsl_matrix_set(mnew, i, k, val);
|
196
|
+
}
|
202
197
|
}
|
203
198
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
204
199
|
} else {
|
@@ -207,8 +202,8 @@ VALUE rb_gsl_sf_eval_int_double(double (*func)(int, double), VALUE jj, VALUE arg
|
|
207
202
|
n = v->size;
|
208
203
|
vnew = gsl_vector_alloc(n);
|
209
204
|
for (i = 0; i < n; i++) {
|
210
|
-
|
211
|
-
|
205
|
+
val = (*func)(j, gsl_vector_get(v, i));
|
206
|
+
gsl_vector_set(vnew, i, val);
|
212
207
|
}
|
213
208
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
214
209
|
}
|
@@ -223,10 +218,6 @@ VALUE rb_gsl_sf_eval_double_int(double (*func)(double, int), VALUE argv, VALUE j
|
|
223
218
|
VALUE ary, xx;
|
224
219
|
size_t i, j, k, n;
|
225
220
|
double val;
|
226
|
-
#ifdef HAVE_NARRAY_H
|
227
|
-
double *ptr1, *ptr2;
|
228
|
-
struct NARRAY *na;
|
229
|
-
#endif
|
230
221
|
CHECK_FIXNUM(jj);
|
231
222
|
j = FIX2INT(jj);
|
232
223
|
if (CLASS_OF(argv) == rb_cRange) argv = rb_gsl_range2ary(argv);
|
@@ -250,6 +241,8 @@ VALUE rb_gsl_sf_eval_double_int(double (*func)(double, int), VALUE argv, VALUE j
|
|
250
241
|
default:
|
251
242
|
#ifdef HAVE_NARRAY_H
|
252
243
|
if (NA_IsNArray(argv)) {
|
244
|
+
double *ptr1, *ptr2;
|
245
|
+
struct NARRAY *na;
|
253
246
|
argv = na_change_type(argv, NA_DFLOAT);
|
254
247
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
255
248
|
GetNArray(argv, na);
|
@@ -264,10 +257,10 @@ VALUE rb_gsl_sf_eval_double_int(double (*func)(double, int), VALUE argv, VALUE j
|
|
264
257
|
Data_Get_Struct(argv, gsl_matrix, m);
|
265
258
|
mnew = gsl_matrix_alloc(m->size1, m->size2);
|
266
259
|
for (i = 0; i < m->size1; i++) {
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
260
|
+
for (k = 0; k < m->size2; k++) {
|
261
|
+
val = (*func)(gsl_matrix_get(m, i, k), j);
|
262
|
+
gsl_matrix_set(mnew, i, k, val);
|
263
|
+
}
|
271
264
|
}
|
272
265
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
273
266
|
} else {
|
@@ -276,8 +269,8 @@ VALUE rb_gsl_sf_eval_double_int(double (*func)(double, int), VALUE argv, VALUE j
|
|
276
269
|
n = v->size;
|
277
270
|
vnew = gsl_vector_alloc(n);
|
278
271
|
for (i = 0; i < n; i++) {
|
279
|
-
|
280
|
-
|
272
|
+
val = (*func)(gsl_vector_get(v, i), j);
|
273
|
+
gsl_vector_set(vnew, i, val);
|
281
274
|
}
|
282
275
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
283
276
|
}
|
@@ -287,17 +280,13 @@ VALUE rb_gsl_sf_eval_double_int(double (*func)(double, int), VALUE argv, VALUE j
|
|
287
280
|
}
|
288
281
|
|
289
282
|
VALUE rb_gsl_sf_eval_int_int_double(double (*func)(int, int, double), VALUE jj,
|
290
|
-
|
283
|
+
VALUE jj2, VALUE argv)
|
291
284
|
{
|
292
285
|
gsl_vector *v = NULL, *vnew = NULL;
|
293
286
|
gsl_matrix *m = NULL, *mnew = NULL;
|
294
287
|
VALUE ary, xx;
|
295
288
|
size_t i, j, k, j2, n;
|
296
289
|
double val;
|
297
|
-
#ifdef HAVE_NARRAY_H
|
298
|
-
double *ptr1, *ptr2;
|
299
|
-
struct NARRAY *na;
|
300
|
-
#endif
|
301
290
|
CHECK_FIXNUM(jj); CHECK_FIXNUM(jj2);
|
302
291
|
j = FIX2INT(jj);
|
303
292
|
j2 = FIX2INT(jj2);
|
@@ -322,6 +311,8 @@ VALUE rb_gsl_sf_eval_int_int_double(double (*func)(int, int, double), VALUE jj,
|
|
322
311
|
default:
|
323
312
|
#ifdef HAVE_NARRAY_H
|
324
313
|
if (NA_IsNArray(argv)) {
|
314
|
+
double *ptr1, *ptr2;
|
315
|
+
struct NARRAY *na;
|
325
316
|
argv = na_change_type(argv, NA_DFLOAT);
|
326
317
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
327
318
|
GetNArray(argv, na);
|
@@ -357,18 +348,14 @@ VALUE rb_gsl_sf_eval_int_int_double(double (*func)(int, int, double), VALUE jj,
|
|
357
348
|
}
|
358
349
|
}
|
359
350
|
|
360
|
-
VALUE rb_gsl_sf_eval_int_double_double(double (*func)(int, double, double), VALUE jj,
|
361
|
-
|
351
|
+
VALUE rb_gsl_sf_eval_int_double_double(double (*func)(int, double, double), VALUE jj,
|
352
|
+
VALUE ff, VALUE argv)
|
362
353
|
{
|
363
354
|
gsl_vector *v = NULL, *vnew = NULL;
|
364
355
|
gsl_matrix *m = NULL, *mnew = NULL;
|
365
356
|
VALUE ary, xx;
|
366
357
|
size_t i, j, k, n;
|
367
358
|
double f, val;
|
368
|
-
#ifdef HAVE_NARRAY_H
|
369
|
-
double *ptr1, *ptr2;
|
370
|
-
struct NARRAY *na;
|
371
|
-
#endif
|
372
359
|
CHECK_FIXNUM(jj);
|
373
360
|
Need_Float(ff);
|
374
361
|
j = FIX2INT(jj);
|
@@ -394,6 +381,8 @@ VALUE rb_gsl_sf_eval_int_double_double(double (*func)(int, double, double), VALU
|
|
394
381
|
default:
|
395
382
|
#ifdef HAVE_NARRAY_H
|
396
383
|
if (NA_IsNArray(argv)) {
|
384
|
+
double *ptr1, *ptr2;
|
385
|
+
struct NARRAY *na;
|
397
386
|
argv = na_change_type(argv, NA_DFLOAT);
|
398
387
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
399
388
|
GetNArray(argv, na);
|
@@ -408,10 +397,10 @@ VALUE rb_gsl_sf_eval_int_double_double(double (*func)(int, double, double), VALU
|
|
408
397
|
Data_Get_Struct(argv, gsl_matrix, m);
|
409
398
|
mnew = gsl_matrix_alloc(m->size1, m->size2);
|
410
399
|
for (i = 0; i < m->size1; i++) {
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
400
|
+
for (k = 0; k < m->size2; k++) {
|
401
|
+
val = (*func)(j, f, gsl_matrix_get(m, i, k));
|
402
|
+
gsl_matrix_set(mnew, i, k, val);
|
403
|
+
}
|
415
404
|
}
|
416
405
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
417
406
|
} else {
|
@@ -420,8 +409,8 @@ VALUE rb_gsl_sf_eval_int_double_double(double (*func)(int, double, double), VALU
|
|
420
409
|
n = v->size;
|
421
410
|
vnew = gsl_vector_alloc(n);
|
422
411
|
for (i = 0; i < n; i++) {
|
423
|
-
|
424
|
-
|
412
|
+
val = (*func)(j, f, gsl_vector_get(v, i));
|
413
|
+
gsl_vector_set(vnew, i, val);
|
425
414
|
}
|
426
415
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
427
416
|
}
|
@@ -436,10 +425,6 @@ VALUE rb_gsl_sf_eval_double_double(double (*func)(double, double), VALUE ff, VAL
|
|
436
425
|
VALUE ary, xx;
|
437
426
|
size_t i, k, n;
|
438
427
|
double val, f;
|
439
|
-
#ifdef HAVE_NARRAY_H
|
440
|
-
double *ptr1, *ptr2;
|
441
|
-
struct NARRAY *na;
|
442
|
-
#endif
|
443
428
|
Need_Float(ff);
|
444
429
|
f = NUM2DBL(ff);
|
445
430
|
if (CLASS_OF(argv) == rb_cRange) argv = rb_gsl_range2ary(argv);
|
@@ -463,6 +448,8 @@ VALUE rb_gsl_sf_eval_double_double(double (*func)(double, double), VALUE ff, VAL
|
|
463
448
|
default:
|
464
449
|
#ifdef HAVE_NARRAY_H
|
465
450
|
if (NA_IsNArray(argv)) {
|
451
|
+
double *ptr1, *ptr2;
|
452
|
+
struct NARRAY *na;
|
466
453
|
argv = na_change_type(argv, NA_DFLOAT);
|
467
454
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
468
455
|
GetNArray(argv, na);
|
@@ -477,9 +464,9 @@ VALUE rb_gsl_sf_eval_double_double(double (*func)(double, double), VALUE ff, VAL
|
|
477
464
|
Data_Get_Struct(argv, gsl_matrix, m);
|
478
465
|
mnew = gsl_matrix_alloc(m->size1, m->size2);
|
479
466
|
for (i = 0; i < m->size1; i++) {
|
480
|
-
|
481
|
-
|
482
|
-
|
467
|
+
for (k = 0; k < m->size2; k++) {
|
468
|
+
gsl_matrix_set(mnew, i, k, (*func)(f, gsl_matrix_get(m, i, k)));
|
469
|
+
}
|
483
470
|
}
|
484
471
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
485
472
|
} else {
|
@@ -487,7 +474,7 @@ VALUE rb_gsl_sf_eval_double_double(double (*func)(double, double), VALUE ff, VAL
|
|
487
474
|
Data_Get_Struct(argv, gsl_vector, v);
|
488
475
|
vnew = gsl_vector_alloc(v->size);
|
489
476
|
for (i = 0; i < v->size; i++) {
|
490
|
-
|
477
|
+
gsl_vector_set(vnew, i, (*func)(f, gsl_vector_get(v, i)));
|
491
478
|
}
|
492
479
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
493
480
|
}
|
@@ -495,18 +482,14 @@ VALUE rb_gsl_sf_eval_double_double(double (*func)(double, double), VALUE ff, VAL
|
|
495
482
|
}
|
496
483
|
}
|
497
484
|
|
498
|
-
VALUE rb_gsl_sf_eval_double3(double (*func)(double, double, double),
|
499
|
-
|
485
|
+
VALUE rb_gsl_sf_eval_double3(double (*func)(double, double, double),
|
486
|
+
VALUE ff, VALUE ff2, VALUE argv)
|
500
487
|
{
|
501
488
|
gsl_vector *v = NULL, *vnew = NULL;
|
502
489
|
gsl_matrix *m = NULL, *mnew = NULL;
|
503
490
|
VALUE ary, xx;
|
504
491
|
size_t i, k, n;
|
505
492
|
double val, f, f2;
|
506
|
-
#ifdef HAVE_NARRAY_H
|
507
|
-
double *ptr1, *ptr2;
|
508
|
-
struct NARRAY *na;
|
509
|
-
#endif
|
510
493
|
Need_Float(ff); Need_Float(ff2);
|
511
494
|
f = NUM2DBL(ff);
|
512
495
|
f2 = NUM2DBL(ff2);
|
@@ -531,6 +514,8 @@ VALUE rb_gsl_sf_eval_double3(double (*func)(double, double, double),
|
|
531
514
|
default:
|
532
515
|
#ifdef HAVE_NARRAY_H
|
533
516
|
if (NA_IsNArray(argv)) {
|
517
|
+
double *ptr1, *ptr2;
|
518
|
+
struct NARRAY *na;
|
534
519
|
argv = na_change_type(argv, NA_DFLOAT);
|
535
520
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
536
521
|
GetNArray(argv, na);
|
@@ -545,10 +530,10 @@ VALUE rb_gsl_sf_eval_double3(double (*func)(double, double, double),
|
|
545
530
|
Data_Get_Struct(argv, gsl_matrix, m);
|
546
531
|
mnew = gsl_matrix_alloc(m->size1, m->size2);
|
547
532
|
for (i = 0; i < m->size1; i++) {
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
533
|
+
for (k = 0; k < m->size2; k++) {
|
534
|
+
val = (*func)(f, f2, gsl_matrix_get(m, i, k));
|
535
|
+
gsl_matrix_set(mnew, i, k, val);
|
536
|
+
}
|
552
537
|
}
|
553
538
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
554
539
|
} else {
|
@@ -557,8 +542,8 @@ VALUE rb_gsl_sf_eval_double3(double (*func)(double, double, double),
|
|
557
542
|
n = v->size;
|
558
543
|
vnew = gsl_vector_alloc(n);
|
559
544
|
for (i = 0; i < n; i++) {
|
560
|
-
|
561
|
-
|
545
|
+
val = (*func)(f, f2, gsl_vector_get(v, i));
|
546
|
+
gsl_vector_set(vnew, i, val);
|
562
547
|
}
|
563
548
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
564
549
|
}
|
@@ -566,18 +551,14 @@ VALUE rb_gsl_sf_eval_double3(double (*func)(double, double, double),
|
|
566
551
|
}
|
567
552
|
}
|
568
553
|
|
569
|
-
VALUE rb_gsl_sf_eval_double4(double (*func)(double, double, double, double),
|
570
|
-
|
554
|
+
VALUE rb_gsl_sf_eval_double4(double (*func)(double, double, double, double),
|
555
|
+
VALUE ff, VALUE ff2, VALUE ff3, VALUE argv)
|
571
556
|
{
|
572
557
|
gsl_vector *v = NULL, *vnew = NULL;
|
573
558
|
gsl_matrix *m = NULL, *mnew = NULL;
|
574
559
|
VALUE ary, xx;
|
575
560
|
size_t i, k, n;
|
576
561
|
double val, f, f2, f3;
|
577
|
-
#ifdef HAVE_NARRAY_H
|
578
|
-
double *ptr1, *ptr2;
|
579
|
-
struct NARRAY *na;
|
580
|
-
#endif
|
581
562
|
Need_Float(ff); Need_Float(ff2); Need_Float(ff3);
|
582
563
|
f = NUM2DBL(ff);
|
583
564
|
f2 = NUM2DBL(ff2);
|
@@ -603,6 +584,8 @@ VALUE rb_gsl_sf_eval_double4(double (*func)(double, double, double, double),
|
|
603
584
|
default:
|
604
585
|
#ifdef HAVE_NARRAY_H
|
605
586
|
if (NA_IsNArray(argv)) {
|
587
|
+
double *ptr1, *ptr2;
|
588
|
+
struct NARRAY *na;
|
606
589
|
argv = na_change_type(argv, NA_DFLOAT);
|
607
590
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
608
591
|
GetNArray(argv, na);
|
@@ -617,10 +600,10 @@ VALUE rb_gsl_sf_eval_double4(double (*func)(double, double, double, double),
|
|
617
600
|
Data_Get_Struct(argv, gsl_matrix, m);
|
618
601
|
mnew = gsl_matrix_alloc(m->size1, m->size2);
|
619
602
|
for (i = 0; i < m->size1; i++) {
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
603
|
+
for (k = 0; k < m->size2; k++) {
|
604
|
+
val = (*func)(f, f2, f3, gsl_matrix_get(m, i, k));
|
605
|
+
gsl_matrix_set(mnew, i, k, val);
|
606
|
+
}
|
624
607
|
}
|
625
608
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
626
609
|
} else {
|
@@ -629,8 +612,8 @@ VALUE rb_gsl_sf_eval_double4(double (*func)(double, double, double, double),
|
|
629
612
|
n = v->size;
|
630
613
|
vnew = gsl_vector_alloc(n);
|
631
614
|
for (i = 0; i < n; i++) {
|
632
|
-
|
633
|
-
|
615
|
+
val = (*func)(f, f2, f3, gsl_vector_get(v, i));
|
616
|
+
gsl_vector_set(vnew, i, val);
|
634
617
|
}
|
635
618
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
636
619
|
}
|
@@ -645,10 +628,6 @@ VALUE rb_gsl_sf_eval1_int(double (*func)(int), VALUE argv)
|
|
645
628
|
VALUE ary;
|
646
629
|
size_t i, k, n;
|
647
630
|
double val;
|
648
|
-
#ifdef HAVE_NARRAY_H
|
649
|
-
double *ptr1, *ptr2;
|
650
|
-
struct NARRAY *na;
|
651
|
-
#endif
|
652
631
|
if (CLASS_OF(argv) == rb_cRange) argv = rb_gsl_range2ary(argv);
|
653
632
|
switch (TYPE(argv)) {
|
654
633
|
case T_FIXNUM:
|
@@ -668,6 +647,8 @@ VALUE rb_gsl_sf_eval1_int(double (*func)(int), VALUE argv)
|
|
668
647
|
default:
|
669
648
|
#ifdef HAVE_NARRAY_H
|
670
649
|
if (NA_IsNArray(argv)) {
|
650
|
+
double *ptr1, *ptr2;
|
651
|
+
struct NARRAY *na;
|
671
652
|
argv = na_change_type(argv, NA_DFLOAT);
|
672
653
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
673
654
|
GetNArray(argv, na);
|
@@ -682,10 +663,10 @@ VALUE rb_gsl_sf_eval1_int(double (*func)(int), VALUE argv)
|
|
682
663
|
Data_Get_Struct(argv, gsl_matrix, m);
|
683
664
|
mnew = gsl_matrix_alloc(m->size1, m->size2);
|
684
665
|
for (i = 0; i < m->size1; i++) {
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
666
|
+
for (k = 0; k < m->size2; k++) {
|
667
|
+
val = (*func)((int) gsl_matrix_get(m, i, k));
|
668
|
+
gsl_matrix_set(mnew, i, k, val);
|
669
|
+
}
|
689
670
|
}
|
690
671
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
691
672
|
} else {
|
@@ -694,8 +675,8 @@ VALUE rb_gsl_sf_eval1_int(double (*func)(int), VALUE argv)
|
|
694
675
|
n = v->size;
|
695
676
|
vnew = gsl_vector_alloc(n);
|
696
677
|
for (i = 0; i < n; i++) {
|
697
|
-
|
698
|
-
|
678
|
+
val = (*func)((int) gsl_vector_get(v, i));
|
679
|
+
gsl_vector_set(vnew, i, val);
|
699
680
|
}
|
700
681
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
701
682
|
}
|
@@ -710,10 +691,6 @@ VALUE rb_gsl_sf_eval1_uint(double (*func)(unsigned int), VALUE argv)
|
|
710
691
|
VALUE ary;
|
711
692
|
size_t i, k, n;
|
712
693
|
double val;
|
713
|
-
#ifdef HAVE_NARRAY_H
|
714
|
-
double *ptr1, *ptr2;
|
715
|
-
struct NARRAY *na;
|
716
|
-
#endif
|
717
694
|
if (CLASS_OF(argv) == rb_cRange) argv = rb_gsl_range2ary(argv);
|
718
695
|
switch (TYPE(argv)) {
|
719
696
|
case T_FIXNUM:
|
@@ -733,6 +710,8 @@ VALUE rb_gsl_sf_eval1_uint(double (*func)(unsigned int), VALUE argv)
|
|
733
710
|
default:
|
734
711
|
#ifdef HAVE_NARRAY_H
|
735
712
|
if (NA_IsNArray(argv)) {
|
713
|
+
double *ptr1, *ptr2;
|
714
|
+
struct NARRAY *na;
|
736
715
|
argv = na_change_type(argv, NA_DFLOAT);
|
737
716
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
738
717
|
GetNArray(argv, na);
|
@@ -747,10 +726,10 @@ VALUE rb_gsl_sf_eval1_uint(double (*func)(unsigned int), VALUE argv)
|
|
747
726
|
Data_Get_Struct(argv, gsl_matrix, m);
|
748
727
|
mnew = gsl_matrix_alloc(m->size1, m->size2);
|
749
728
|
for (i = 0; i < m->size1; i++) {
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
729
|
+
for (k = 0; k < m->size2; k++) {
|
730
|
+
val = (*func)((unsigned int) gsl_matrix_get(m, i, k));
|
731
|
+
gsl_matrix_set(mnew, i, k, val);
|
732
|
+
}
|
754
733
|
}
|
755
734
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
756
735
|
} else {
|
@@ -759,8 +738,8 @@ VALUE rb_gsl_sf_eval1_uint(double (*func)(unsigned int), VALUE argv)
|
|
759
738
|
n = v->size;
|
760
739
|
vnew = gsl_vector_alloc(n);
|
761
740
|
for (i = 0; i < n; i++) {
|
762
|
-
|
763
|
-
|
741
|
+
val = (*func)((unsigned int) gsl_vector_get(v, i));
|
742
|
+
gsl_vector_set(vnew, i, val);
|
764
743
|
}
|
765
744
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
766
745
|
}
|
@@ -775,26 +754,22 @@ VALUE rb_gsl_sf_eval_double_m(double (*func)(double, gsl_mode_t), VALUE argv, VA
|
|
775
754
|
VALUE ary, xx;
|
776
755
|
size_t i, k, n;
|
777
756
|
double val;
|
778
|
-
gsl_mode_t mode;
|
779
|
-
char c
|
780
|
-
#ifdef HAVE_NARRAY_H
|
781
|
-
double *ptr1, *ptr2;
|
782
|
-
struct NARRAY *na;
|
783
|
-
#endif
|
757
|
+
/*gsl_mode_t mode;
|
758
|
+
char c;*/
|
784
759
|
switch (TYPE(m)) {
|
785
760
|
case T_STRING:
|
786
|
-
c = tolower(NUM2CHR(m));
|
761
|
+
/*c = tolower(NUM2CHR(m));
|
787
762
|
if (c == 'd') mode = GSL_PREC_DOUBLE;
|
788
763
|
else if (c == 's') mode = GSL_PREC_SINGLE;
|
789
764
|
else if (c == 'a') mode = GSL_PREC_APPROX;
|
790
|
-
else mode = GSL_PREC_DOUBLE
|
765
|
+
else mode = GSL_PREC_DOUBLE;*/
|
791
766
|
break;
|
792
767
|
case T_FIXNUM:
|
793
|
-
mode = FIX2INT(m)
|
768
|
+
/*mode = FIX2INT(m);*/
|
794
769
|
break;
|
795
770
|
default:
|
796
771
|
rb_raise(rb_eArgError, "wrong type argument %s (String or Fixnum expected)",
|
797
|
-
|
772
|
+
rb_class2name(CLASS_OF(m)));
|
798
773
|
}
|
799
774
|
if (CLASS_OF(argv) == rb_cRange) argv = rb_gsl_range2ary(argv);
|
800
775
|
switch (TYPE(argv)) {
|
@@ -817,6 +792,8 @@ VALUE rb_gsl_sf_eval_double_m(double (*func)(double, gsl_mode_t), VALUE argv, VA
|
|
817
792
|
default:
|
818
793
|
#ifdef HAVE_NARRAY_H
|
819
794
|
if (NA_IsNArray(argv)) {
|
795
|
+
double *ptr1, *ptr2;
|
796
|
+
struct NARRAY *na;
|
820
797
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
821
798
|
GetNArray(argv, na);
|
822
799
|
n = na->total;
|
@@ -830,10 +807,10 @@ VALUE rb_gsl_sf_eval_double_m(double (*func)(double, gsl_mode_t), VALUE argv, VA
|
|
830
807
|
Data_Get_Struct(argv, gsl_matrix, mm);
|
831
808
|
mnew = gsl_matrix_alloc(mm->size1, mm->size2);
|
832
809
|
for (i = 0; i < mm->size1; i++) {
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
810
|
+
for (k = 0; k < mm->size2; k++) {
|
811
|
+
val = (*func)(gsl_matrix_get(mm, i, k), m);
|
812
|
+
gsl_matrix_set(mnew, i, k, val);
|
813
|
+
}
|
837
814
|
}
|
838
815
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
839
816
|
} else {
|
@@ -842,8 +819,8 @@ VALUE rb_gsl_sf_eval_double_m(double (*func)(double, gsl_mode_t), VALUE argv, VA
|
|
842
819
|
n = v->size;
|
843
820
|
vnew = gsl_vector_alloc(n);
|
844
821
|
for (i = 0; i < n; i++) {
|
845
|
-
|
846
|
-
|
822
|
+
val = (*func)(gsl_vector_get(v, i), m);
|
823
|
+
gsl_vector_set(vnew, i, val);
|
847
824
|
}
|
848
825
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
849
826
|
}
|
@@ -851,27 +828,23 @@ VALUE rb_gsl_sf_eval_double_m(double (*func)(double, gsl_mode_t), VALUE argv, VA
|
|
851
828
|
}
|
852
829
|
}
|
853
830
|
|
854
|
-
VALUE rb_gsl_sf_eval_double2_m(double (*func)(double, double, gsl_mode_t),
|
855
|
-
|
831
|
+
VALUE rb_gsl_sf_eval_double2_m(double (*func)(double, double, gsl_mode_t),
|
832
|
+
VALUE argv, VALUE x2, VALUE m)
|
856
833
|
{
|
857
834
|
gsl_vector *v = NULL, *vnew = NULL;
|
858
835
|
gsl_matrix *mm = NULL, *mnew = NULL;
|
859
836
|
VALUE ary, xx;
|
860
837
|
size_t i, k, n;
|
861
838
|
double val, xx2;
|
862
|
-
gsl_mode_t mode;
|
863
|
-
char c
|
864
|
-
#ifdef HAVE_NARRAY_H
|
865
|
-
double *ptr1, *ptr2;
|
866
|
-
struct NARRAY *na;
|
867
|
-
#endif
|
839
|
+
/*gsl_mode_t mode;
|
840
|
+
char c;*/
|
868
841
|
Need_Float(x2);
|
869
842
|
xx2 = NUM2DBL(x2);
|
870
|
-
c = tolower(NUM2CHR(m));
|
843
|
+
/*c = tolower(NUM2CHR(m));
|
871
844
|
if (c == 'd') mode = GSL_PREC_DOUBLE;
|
872
845
|
else if (c == 's') mode = GSL_PREC_SINGLE;
|
873
846
|
else if (c == 'a') mode = GSL_PREC_APPROX;
|
874
|
-
else mode = GSL_PREC_DOUBLE
|
847
|
+
else mode = GSL_PREC_DOUBLE;*/
|
875
848
|
if (CLASS_OF(argv) == rb_cRange) argv = rb_gsl_range2ary(argv);
|
876
849
|
switch (TYPE(argv)) {
|
877
850
|
case T_FLOAT:
|
@@ -893,6 +866,8 @@ VALUE rb_gsl_sf_eval_double2_m(double (*func)(double, double, gsl_mode_t),
|
|
893
866
|
default:
|
894
867
|
#ifdef HAVE_NARRAY_H
|
895
868
|
if (NA_IsNArray(argv)) {
|
869
|
+
double *ptr1, *ptr2;
|
870
|
+
struct NARRAY *na;
|
896
871
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
897
872
|
GetNArray(argv, na);
|
898
873
|
n = na->total;
|
@@ -906,10 +881,10 @@ VALUE rb_gsl_sf_eval_double2_m(double (*func)(double, double, gsl_mode_t),
|
|
906
881
|
Data_Get_Struct(argv, gsl_matrix, mm);
|
907
882
|
mnew = gsl_matrix_alloc(mm->size1, mm->size2);
|
908
883
|
for (i = 0; i < mm->size1; i++) {
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
884
|
+
for (k = 0; k < mm->size2; k++) {
|
885
|
+
val = (*func)(gsl_matrix_get(mm, i, k), xx2, m);
|
886
|
+
gsl_matrix_set(mnew, i, k, val);
|
887
|
+
}
|
913
888
|
}
|
914
889
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
915
890
|
} else {
|
@@ -918,8 +893,8 @@ VALUE rb_gsl_sf_eval_double2_m(double (*func)(double, double, gsl_mode_t),
|
|
918
893
|
n = v->size;
|
919
894
|
vnew = gsl_vector_alloc(n);
|
920
895
|
for (i = 0; i < n; i++) {
|
921
|
-
|
922
|
-
|
896
|
+
val = (*func)(gsl_vector_get(v, i), xx2, m);
|
897
|
+
gsl_vector_set(vnew, i, val);
|
923
898
|
}
|
924
899
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
925
900
|
}
|
@@ -927,28 +902,24 @@ VALUE rb_gsl_sf_eval_double2_m(double (*func)(double, double, gsl_mode_t),
|
|
927
902
|
}
|
928
903
|
}
|
929
904
|
|
930
|
-
VALUE rb_gsl_sf_eval_double3_m(double (*func)(double, double, double, gsl_mode_t),
|
931
|
-
|
905
|
+
VALUE rb_gsl_sf_eval_double3_m(double (*func)(double, double, double, gsl_mode_t),
|
906
|
+
VALUE argv, VALUE x2, VALUE x3, VALUE m)
|
932
907
|
{
|
933
908
|
gsl_vector *v = NULL, *vnew = NULL;
|
934
909
|
gsl_matrix *mm = NULL, *mnew = NULL;
|
935
910
|
VALUE ary, xx;
|
936
911
|
size_t i, k, n;
|
937
912
|
double val, xx2, xx3;
|
938
|
-
gsl_mode_t mode;
|
939
|
-
char c
|
940
|
-
#ifdef HAVE_NARRAY_H
|
941
|
-
double *ptr1, *ptr2;
|
942
|
-
struct NARRAY *na;
|
943
|
-
#endif
|
913
|
+
/*gsl_mode_t mode;
|
914
|
+
char c;*/
|
944
915
|
Need_Float(x2); Need_Float(x3);
|
945
916
|
xx2 = NUM2DBL(x2);
|
946
917
|
xx3 = NUM2DBL(x3);
|
947
|
-
c = tolower(NUM2CHR(m));
|
918
|
+
/*c = tolower(NUM2CHR(m));
|
948
919
|
if (c == 'd') mode = GSL_PREC_DOUBLE;
|
949
920
|
else if (c == 's') mode = GSL_PREC_SINGLE;
|
950
921
|
else if (c == 'a') mode = GSL_PREC_APPROX;
|
951
|
-
else mode = GSL_PREC_DOUBLE
|
922
|
+
else mode = GSL_PREC_DOUBLE;*/
|
952
923
|
if (CLASS_OF(argv) == rb_cRange) argv = rb_gsl_range2ary(argv);
|
953
924
|
switch (TYPE(argv)) {
|
954
925
|
case T_FLOAT:
|
@@ -970,6 +941,8 @@ VALUE rb_gsl_sf_eval_double3_m(double (*func)(double, double, double, gsl_mode_t
|
|
970
941
|
default:
|
971
942
|
#ifdef HAVE_NARRAY_H
|
972
943
|
if (NA_IsNArray(argv)) {
|
944
|
+
double *ptr1, *ptr2;
|
945
|
+
struct NARRAY *na;
|
973
946
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
974
947
|
GetNArray(argv, na);
|
975
948
|
n = na->total;
|
@@ -983,10 +956,10 @@ VALUE rb_gsl_sf_eval_double3_m(double (*func)(double, double, double, gsl_mode_t
|
|
983
956
|
Data_Get_Struct(argv, gsl_matrix, mm);
|
984
957
|
mnew = gsl_matrix_alloc(mm->size1, mm->size2);
|
985
958
|
for (i = 0; i < mm->size1; i++) {
|
986
|
-
|
987
|
-
|
988
|
-
|
989
|
-
|
959
|
+
for (k = 0; k < mm->size2; k++) {
|
960
|
+
val = (*func)(gsl_matrix_get(mm, i, k), xx2, xx3, m);
|
961
|
+
gsl_matrix_set(mnew, i, k, val);
|
962
|
+
}
|
990
963
|
}
|
991
964
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
992
965
|
} else {
|
@@ -995,8 +968,8 @@ VALUE rb_gsl_sf_eval_double3_m(double (*func)(double, double, double, gsl_mode_t
|
|
995
968
|
n = v->size;
|
996
969
|
vnew = gsl_vector_alloc(n);
|
997
970
|
for (i = 0; i < n; i++) {
|
998
|
-
|
999
|
-
|
971
|
+
val = (*func)(gsl_vector_get(v, i), xx2, xx3, m);
|
972
|
+
gsl_vector_set(vnew, i, val);
|
1000
973
|
}
|
1001
974
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
1002
975
|
}
|
@@ -1005,34 +978,30 @@ VALUE rb_gsl_sf_eval_double3_m(double (*func)(double, double, double, gsl_mode_t
|
|
1005
978
|
}
|
1006
979
|
|
1007
980
|
VALUE rb_gsl_sf_eval_double4_m(double (*func)(double, double, double, double,
|
1008
|
-
|
1009
|
-
|
981
|
+
gsl_mode_t),
|
982
|
+
VALUE argv, VALUE x2, VALUE x3, VALUE x4, VALUE m)
|
1010
983
|
{
|
1011
984
|
gsl_vector *v = NULL, *vnew = NULL;
|
1012
985
|
gsl_matrix *mm = NULL, *mnew = NULL;
|
1013
986
|
VALUE ary, xx;
|
1014
987
|
size_t i, k, n;
|
1015
988
|
double val, xx2, xx3, xx4;
|
1016
|
-
gsl_mode_t mode;
|
1017
|
-
char c
|
1018
|
-
#ifdef HAVE_NARRAY_H
|
1019
|
-
double *ptr1, *ptr2;
|
1020
|
-
struct NARRAY *na;
|
1021
|
-
#endif
|
989
|
+
/*gsl_mode_t mode;
|
990
|
+
char c;*/
|
1022
991
|
Need_Float(x2); Need_Float(x3); Need_Float(x4);
|
1023
992
|
xx2 = NUM2DBL(x2); xx3 = NUM2DBL(x3); xx4 = NUM2DBL(x4);
|
1024
|
-
c = tolower(NUM2CHR(m));
|
993
|
+
/*c = tolower(NUM2CHR(m));
|
1025
994
|
if (c == 'd') mode = GSL_PREC_DOUBLE;
|
1026
995
|
else if (c == 's') mode = GSL_PREC_SINGLE;
|
1027
996
|
else if (c == 'a') mode = GSL_PREC_APPROX;
|
1028
|
-
else mode = GSL_PREC_DOUBLE
|
997
|
+
else mode = GSL_PREC_DOUBLE;*/
|
1029
998
|
if (CLASS_OF(argv) == rb_cRange) argv = rb_gsl_range2ary(argv);
|
1030
999
|
switch (TYPE(argv)) {
|
1031
1000
|
case T_FLOAT:
|
1032
1001
|
case T_FIXNUM:
|
1033
1002
|
case T_BIGNUM:
|
1034
1003
|
return rb_float_new((*func)(NUM2DBL(argv), NUM2DBL(x2), NUM2DBL(x3),
|
1035
|
-
|
1004
|
+
NUM2DBL(x4), m));
|
1036
1005
|
break;
|
1037
1006
|
case T_ARRAY:
|
1038
1007
|
n = RARRAY_LEN(argv);
|
@@ -1048,6 +1017,8 @@ VALUE rb_gsl_sf_eval_double4_m(double (*func)(double, double, double, double,
|
|
1048
1017
|
default:
|
1049
1018
|
#ifdef HAVE_NARRAY_H
|
1050
1019
|
if (NA_IsNArray(argv)) {
|
1020
|
+
double *ptr1, *ptr2;
|
1021
|
+
struct NARRAY *na;
|
1051
1022
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
1052
1023
|
GetNArray(argv, na);
|
1053
1024
|
n = na->total;
|
@@ -1061,10 +1032,10 @@ VALUE rb_gsl_sf_eval_double4_m(double (*func)(double, double, double, double,
|
|
1061
1032
|
Data_Get_Struct(argv, gsl_matrix, mm);
|
1062
1033
|
mnew = gsl_matrix_alloc(mm->size1, mm->size2);
|
1063
1034
|
for (i = 0; i < mm->size1; i++) {
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1035
|
+
for (k = 0; k < mm->size2; k++) {
|
1036
|
+
val = (*func)(gsl_matrix_get(mm, i, k), xx2, xx3, xx4, m);
|
1037
|
+
gsl_matrix_set(mnew, i, k, val);
|
1038
|
+
}
|
1068
1039
|
}
|
1069
1040
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
1070
1041
|
} else {
|
@@ -1073,8 +1044,8 @@ VALUE rb_gsl_sf_eval_double4_m(double (*func)(double, double, double, double,
|
|
1073
1044
|
n = v->size;
|
1074
1045
|
vnew = gsl_vector_alloc(n);
|
1075
1046
|
for (i = 0; i < n; i++) {
|
1076
|
-
|
1077
|
-
|
1047
|
+
val = (*func)(gsl_vector_get(v, i), xx2, xx3, xx4, m);
|
1048
|
+
gsl_vector_set(vnew, i, val);
|
1078
1049
|
}
|
1079
1050
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
1080
1051
|
}
|
@@ -1086,10 +1057,9 @@ VALUE rb_gsl_sf_eval_e(int (*func)(double, gsl_sf_result*), VALUE x)
|
|
1086
1057
|
{
|
1087
1058
|
gsl_sf_result *rslt = NULL;
|
1088
1059
|
VALUE v;
|
1089
|
-
int status;
|
1090
1060
|
Need_Float(x);
|
1091
1061
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1092
|
-
|
1062
|
+
(*func)(NUM2DBL(x), rslt);
|
1093
1063
|
return v;
|
1094
1064
|
}
|
1095
1065
|
|
@@ -1097,10 +1067,9 @@ VALUE rb_gsl_sf_eval_e_int(int (*func)(int, gsl_sf_result*), VALUE x)
|
|
1097
1067
|
{
|
1098
1068
|
gsl_sf_result *rslt = NULL;
|
1099
1069
|
VALUE v;
|
1100
|
-
int status;
|
1101
1070
|
CHECK_FIXNUM(x);
|
1102
1071
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1103
|
-
|
1072
|
+
(*func)(NUM2INT(x), rslt);
|
1104
1073
|
return v;
|
1105
1074
|
}
|
1106
1075
|
|
@@ -1108,109 +1077,100 @@ VALUE rb_gsl_sf_eval_e_uint(int (*func)(unsigned int, gsl_sf_result*), VALUE x)
|
|
1108
1077
|
{
|
1109
1078
|
gsl_sf_result *rslt = NULL;
|
1110
1079
|
VALUE v;
|
1111
|
-
int status;
|
1112
1080
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1113
|
-
|
1081
|
+
(*func)(NUM2UINT(x), rslt);
|
1114
1082
|
return v;
|
1115
1083
|
}
|
1116
1084
|
|
1117
|
-
VALUE rb_gsl_sf_eval_e_int_uint(int (*func)(int, unsigned int, gsl_sf_result*),
|
1118
|
-
|
1085
|
+
VALUE rb_gsl_sf_eval_e_int_uint(int (*func)(int, unsigned int, gsl_sf_result*),
|
1086
|
+
VALUE n, VALUE x)
|
1119
1087
|
{
|
1120
1088
|
gsl_sf_result *rslt = NULL;
|
1121
1089
|
VALUE v;
|
1122
|
-
int status;
|
1123
1090
|
CHECK_FIXNUM(n);
|
1124
1091
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1125
|
-
|
1092
|
+
(*func)(FIX2INT(n), NUM2UINT(x), rslt);
|
1126
1093
|
return v;
|
1127
1094
|
}
|
1128
1095
|
|
1129
|
-
VALUE rb_gsl_sf_eval_e_double_uint(int (*func)(double, unsigned int, gsl_sf_result*),
|
1130
|
-
|
1096
|
+
VALUE rb_gsl_sf_eval_e_double_uint(int (*func)(double, unsigned int, gsl_sf_result*),
|
1097
|
+
VALUE y, VALUE x)
|
1131
1098
|
{
|
1132
1099
|
gsl_sf_result *rslt = NULL;
|
1133
1100
|
VALUE v;
|
1134
|
-
int status;
|
1135
1101
|
Need_Float(y);
|
1136
1102
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1137
|
-
|
1103
|
+
(*func)(NUM2DBL(y), NUM2UINT(x), rslt);
|
1138
1104
|
return v;
|
1139
1105
|
}
|
1140
1106
|
|
1141
|
-
VALUE rb_gsl_sf_eval_e_int_double(int (*func)(int, double, gsl_sf_result*),
|
1142
|
-
|
1107
|
+
VALUE rb_gsl_sf_eval_e_int_double(int (*func)(int, double, gsl_sf_result*),
|
1108
|
+
VALUE n, VALUE x)
|
1143
1109
|
{
|
1144
1110
|
gsl_sf_result *rslt = NULL;
|
1145
1111
|
VALUE v;
|
1146
|
-
int status;
|
1147
1112
|
CHECK_FIXNUM(n);
|
1148
1113
|
Need_Float(x);
|
1149
1114
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1150
|
-
|
1115
|
+
(*func)(FIX2INT(n), NUM2DBL(x), rslt);
|
1151
1116
|
return v;
|
1152
1117
|
}
|
1153
1118
|
|
1154
|
-
VALUE rb_gsl_sf_eval_e_int_double2(int (*func)(int, double, double, gsl_sf_result*),
|
1155
|
-
|
1119
|
+
VALUE rb_gsl_sf_eval_e_int_double2(int (*func)(int, double, double, gsl_sf_result*),
|
1120
|
+
VALUE n, VALUE x1, VALUE x2)
|
1156
1121
|
{
|
1157
1122
|
gsl_sf_result *rslt = NULL;
|
1158
1123
|
VALUE v;
|
1159
|
-
int status;
|
1160
1124
|
CHECK_FIXNUM(n);
|
1161
1125
|
Need_Float(x1); Need_Float(x2);
|
1162
1126
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1163
|
-
|
1127
|
+
(*func)(FIX2INT(n), NUM2DBL(x1), NUM2DBL(x2), rslt);
|
1164
1128
|
return v;
|
1165
1129
|
}
|
1166
1130
|
|
1167
1131
|
|
1168
|
-
VALUE rb_gsl_sf_eval_e_int_int_double(int (*func)(int, int, double, gsl_sf_result*),
|
1169
|
-
|
1132
|
+
VALUE rb_gsl_sf_eval_e_int_int_double(int (*func)(int, int, double, gsl_sf_result*),
|
1133
|
+
VALUE n1, VALUE n2, VALUE x)
|
1170
1134
|
{
|
1171
1135
|
gsl_sf_result *rslt = NULL;
|
1172
1136
|
VALUE v;
|
1173
|
-
int status;
|
1174
1137
|
CHECK_FIXNUM(n1); CHECK_FIXNUM(n2);
|
1175
1138
|
Need_Float(x);
|
1176
1139
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1177
|
-
|
1140
|
+
(*func)(FIX2INT(n1), FIX2INT(n2), NUM2DBL(x), rslt);
|
1178
1141
|
return v;
|
1179
1142
|
}
|
1180
1143
|
|
1181
|
-
VALUE rb_gsl_sf_eval_e_double2(int (*func)(double, double, gsl_sf_result*),
|
1182
|
-
|
1144
|
+
VALUE rb_gsl_sf_eval_e_double2(int (*func)(double, double, gsl_sf_result*),
|
1145
|
+
VALUE x1, VALUE x2)
|
1183
1146
|
{
|
1184
1147
|
gsl_sf_result *rslt = NULL;
|
1185
1148
|
VALUE v;
|
1186
|
-
|
1187
|
-
Need_Float(x1); Need_Float(x2);
|
1149
|
+
Need_Float(x1); Need_Float(x2);
|
1188
1150
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1189
|
-
|
1151
|
+
(*func)(NUM2DBL(x1), NUM2DBL(x2), rslt);
|
1190
1152
|
return v;
|
1191
1153
|
}
|
1192
1154
|
|
1193
1155
|
|
1194
|
-
VALUE rb_gsl_sf_eval_e_double3(int (*func)(double, double, double, gsl_sf_result*),
|
1195
|
-
|
1156
|
+
VALUE rb_gsl_sf_eval_e_double3(int (*func)(double, double, double, gsl_sf_result*),
|
1157
|
+
VALUE x1, VALUE x2, VALUE x3)
|
1196
1158
|
{
|
1197
1159
|
gsl_sf_result *rslt = NULL;
|
1198
1160
|
VALUE v;
|
1199
|
-
int status;
|
1200
1161
|
Need_Float(x1); Need_Float(x2); Need_Float(x3);
|
1201
1162
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1202
|
-
|
1163
|
+
(*func)(NUM2DBL(x1), NUM2DBL(x2),NUM2DBL(x3), rslt);
|
1203
1164
|
return v;
|
1204
1165
|
}
|
1205
1166
|
|
1206
|
-
VALUE rb_gsl_sf_eval_e_m(int (*func)(double, gsl_mode_t, gsl_sf_result*),
|
1207
|
-
|
1167
|
+
VALUE rb_gsl_sf_eval_e_m(int (*func)(double, gsl_mode_t, gsl_sf_result*),
|
1168
|
+
VALUE x, VALUE m)
|
1208
1169
|
{
|
1209
1170
|
gsl_mode_t mode;
|
1210
1171
|
char c;
|
1211
1172
|
gsl_sf_result *rslt = NULL;
|
1212
1173
|
VALUE v;
|
1213
|
-
int status;
|
1214
1174
|
Need_Float(x);
|
1215
1175
|
switch (TYPE(m)) {
|
1216
1176
|
case T_STRING:
|
@@ -1225,23 +1185,22 @@ VALUE rb_gsl_sf_eval_e_m(int (*func)(double, gsl_mode_t, gsl_sf_result*),
|
|
1225
1185
|
break;
|
1226
1186
|
default:
|
1227
1187
|
rb_raise(rb_eArgError, "wrong type argument %s (String or Fixnum expected)",
|
1228
|
-
|
1188
|
+
rb_class2name(CLASS_OF(m)));
|
1229
1189
|
break;
|
1230
1190
|
}
|
1231
1191
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1232
|
-
|
1192
|
+
(*func)(NUM2DBL(x), mode, rslt);
|
1233
1193
|
return v;
|
1234
1194
|
}
|
1235
1195
|
|
1236
1196
|
|
1237
|
-
VALUE rb_gsl_sf_eval_e_double2_m(int (*func)(double, double, gsl_mode_t, gsl_sf_result*),
|
1238
|
-
|
1197
|
+
VALUE rb_gsl_sf_eval_e_double2_m(int (*func)(double, double, gsl_mode_t, gsl_sf_result*),
|
1198
|
+
VALUE x1, VALUE x2, VALUE m)
|
1239
1199
|
{
|
1240
1200
|
gsl_mode_t mode;
|
1241
1201
|
char c;
|
1242
1202
|
gsl_sf_result *rslt = NULL;
|
1243
1203
|
VALUE v;
|
1244
|
-
int status;
|
1245
1204
|
Need_Float(x1); Need_Float(x2);
|
1246
1205
|
switch (TYPE(m)) {
|
1247
1206
|
case T_STRING:
|
@@ -1256,22 +1215,21 @@ VALUE rb_gsl_sf_eval_e_double2_m(int (*func)(double, double, gsl_mode_t, gsl_sf_
|
|
1256
1215
|
break;
|
1257
1216
|
default:
|
1258
1217
|
rb_raise(rb_eArgError, "wrong type argument %s (String or Fixnum expected)",
|
1259
|
-
|
1218
|
+
rb_class2name(CLASS_OF(m)));
|
1260
1219
|
break;
|
1261
1220
|
}
|
1262
1221
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1263
|
-
|
1222
|
+
(*func)(NUM2DBL(x1), NUM2DBL(x2), mode, rslt);
|
1264
1223
|
return v;
|
1265
1224
|
}
|
1266
1225
|
|
1267
|
-
VALUE rb_gsl_sf_eval_e_double3_m(int (*func)(double, double, double, gsl_mode_t, gsl_sf_result*),
|
1268
|
-
|
1226
|
+
VALUE rb_gsl_sf_eval_e_double3_m(int (*func)(double, double, double, gsl_mode_t, gsl_sf_result*),
|
1227
|
+
VALUE x1, VALUE x2, VALUE x3, VALUE m)
|
1269
1228
|
{
|
1270
1229
|
gsl_mode_t mode;
|
1271
1230
|
char c;
|
1272
1231
|
gsl_sf_result *rslt = NULL;
|
1273
1232
|
VALUE v;
|
1274
|
-
int status;
|
1275
1233
|
Need_Float(x1); Need_Float(x2); Need_Float(x3);
|
1276
1234
|
switch (TYPE(m)) {
|
1277
1235
|
case T_STRING:
|
@@ -1286,23 +1244,22 @@ VALUE rb_gsl_sf_eval_e_double3_m(int (*func)(double, double, double, gsl_mode_t,
|
|
1286
1244
|
break;
|
1287
1245
|
default:
|
1288
1246
|
rb_raise(rb_eArgError, "wrong type argument %s (String or Fixnum expected)",
|
1289
|
-
|
1247
|
+
rb_class2name(CLASS_OF(m)));
|
1290
1248
|
break;
|
1291
1249
|
}
|
1292
1250
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1293
|
-
|
1251
|
+
(*func)(NUM2DBL(x1), NUM2DBL(x2),NUM2DBL(x3), mode, rslt);
|
1294
1252
|
return v;
|
1295
1253
|
}
|
1296
1254
|
|
1297
1255
|
|
1298
|
-
VALUE rb_gsl_sf_eval_e_double4_m(int (*func)(double, double, double, double, gsl_mode_t, gsl_sf_result*),
|
1299
|
-
|
1256
|
+
VALUE rb_gsl_sf_eval_e_double4_m(int (*func)(double, double, double, double, gsl_mode_t, gsl_sf_result*),
|
1257
|
+
VALUE x1, VALUE x2, VALUE x3, VALUE x4, VALUE m)
|
1300
1258
|
{
|
1301
1259
|
gsl_mode_t mode;
|
1302
1260
|
char c;
|
1303
1261
|
gsl_sf_result *rslt = NULL;
|
1304
1262
|
VALUE v;
|
1305
|
-
int status;
|
1306
1263
|
Need_Float(x1); Need_Float(x2); Need_Float(x3); Need_Float(x4);
|
1307
1264
|
switch (TYPE(m)) {
|
1308
1265
|
case T_STRING:
|
@@ -1317,11 +1274,11 @@ VALUE rb_gsl_sf_eval_e_double4_m(int (*func)(double, double, double, double, gsl
|
|
1317
1274
|
break;
|
1318
1275
|
default:
|
1319
1276
|
rb_raise(rb_eArgError, "wrong type argument %s (String or Fixnum expected)",
|
1320
|
-
|
1277
|
+
rb_class2name(CLASS_OF(m)));
|
1321
1278
|
break;
|
1322
|
-
}
|
1279
|
+
}
|
1323
1280
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
1324
|
-
|
1281
|
+
(*func)(NUM2DBL(x1), NUM2DBL(x2),NUM2DBL(x3), NUM2DBL(x4), mode, rslt);
|
1325
1282
|
return v;
|
1326
1283
|
}
|
1327
1284
|
|
@@ -1333,10 +1290,6 @@ VALUE eval_sf(double (*func)(double, gsl_mode_t), VALUE argv)
|
|
1333
1290
|
double val;
|
1334
1291
|
gsl_vector *v = NULL, *vnew = NULL;
|
1335
1292
|
gsl_matrix *mm = NULL, *mnew = NULL;
|
1336
|
-
#ifdef HAVE_NARRAY_H
|
1337
|
-
double *ptr1, *ptr2;
|
1338
|
-
struct NARRAY *na;
|
1339
|
-
#endif
|
1340
1293
|
switch (TYPE(argv)) {
|
1341
1294
|
case T_FLOAT:
|
1342
1295
|
case T_FIXNUM:
|
@@ -1357,6 +1310,8 @@ VALUE eval_sf(double (*func)(double, gsl_mode_t), VALUE argv)
|
|
1357
1310
|
default:
|
1358
1311
|
#ifdef HAVE_NARRAY_H
|
1359
1312
|
if (NA_IsNArray(argv)) {
|
1313
|
+
double *ptr1, *ptr2;
|
1314
|
+
struct NARRAY *na;
|
1360
1315
|
ptr1 = NA_PTR_TYPE(argv, double*);
|
1361
1316
|
GetNArray(argv, na);
|
1362
1317
|
n = na->total;
|
@@ -1370,10 +1325,10 @@ VALUE eval_sf(double (*func)(double, gsl_mode_t), VALUE argv)
|
|
1370
1325
|
Data_Get_Struct(argv, gsl_matrix, mm);
|
1371
1326
|
mnew = gsl_matrix_alloc(mm->size1, mm->size2);
|
1372
1327
|
for (i = 0; i < mm->size1; i++) {
|
1373
|
-
|
1374
|
-
|
1375
|
-
|
1376
|
-
|
1328
|
+
for (k = 0; k < mm->size2; k++) {
|
1329
|
+
val = (*func)(gsl_matrix_get(mm, i, k), GSL_PREC_DOUBLE);
|
1330
|
+
gsl_matrix_set(mnew, i, k, val);
|
1331
|
+
}
|
1377
1332
|
}
|
1378
1333
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
1379
1334
|
} else {
|
@@ -1382,8 +1337,8 @@ VALUE eval_sf(double (*func)(double, gsl_mode_t), VALUE argv)
|
|
1382
1337
|
n = v->size;
|
1383
1338
|
vnew = gsl_vector_alloc(n);
|
1384
1339
|
for (i = 0; i < n; i++) {
|
1385
|
-
|
1386
|
-
|
1340
|
+
val = (*func)(gsl_vector_get(v, i), GSL_PREC_DOUBLE);
|
1341
|
+
gsl_vector_set(vnew, i, val);
|
1387
1342
|
}
|
1388
1343
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
1389
1344
|
}
|
@@ -1418,18 +1373,18 @@ VALUE rb_gsl_sf_eval_complex(double (*f)(double), VALUE obj)
|
|
1418
1373
|
mnew = gsl_matrix_complex_alloc(m->size1, m->size2);
|
1419
1374
|
for (i = 0; i < m->size1; i++) {
|
1420
1375
|
for (j = 0; j < m->size2; j++) {
|
1421
|
-
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1376
|
+
c = gsl_matrix_complex_get(m, i, j);
|
1377
|
+
GSL_SET_REAL(&c, (*f)(GSL_REAL(c)));
|
1378
|
+
GSL_SET_IMAG(&c, (*f)(GSL_IMAG(c)));
|
1379
|
+
gsl_matrix_complex_set(mnew, i, j, c);
|
1425
1380
|
}
|
1426
1381
|
}
|
1427
1382
|
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, mnew);
|
1428
1383
|
} else {
|
1429
|
-
rb_raise(rb_eTypeError,
|
1430
|
-
|
1431
|
-
|
1432
|
-
|
1384
|
+
rb_raise(rb_eTypeError,
|
1385
|
+
"wrong argument type %s "
|
1386
|
+
" (GSL::Complex or GSL::Vector::Complex expected)",
|
1387
|
+
rb_class2name(CLASS_OF(obj)));
|
1433
1388
|
}
|
1434
1389
|
}
|
1435
1390
|
|
@@ -1438,10 +1393,10 @@ void Init_gsl_sf(VALUE module)
|
|
1438
1393
|
VALUE mgsl_sf;
|
1439
1394
|
mgsl_sf = rb_define_module_under(module, "Sf");
|
1440
1395
|
|
1441
|
-
cgsl_sf_result = rb_define_class_under(mgsl_sf, "Result",
|
1442
|
-
|
1396
|
+
cgsl_sf_result = rb_define_class_under(mgsl_sf, "Result",
|
1397
|
+
cGSL_Object);
|
1443
1398
|
rb_define_singleton_method(cgsl_sf_result, "new", rb_gsl_sf_result_new,
|
1444
|
-
|
1399
|
+
0);
|
1445
1400
|
rb_define_method(cgsl_sf_result, "print", rb_gsl_sf_result_print, 0);
|
1446
1401
|
rb_define_method(cgsl_sf_result, "inspect", rb_gsl_sf_result_inspect, 0);
|
1447
1402
|
rb_define_method(cgsl_sf_result, "val", rb_gsl_sf_result_val, 0);
|
@@ -1449,10 +1404,10 @@ void Init_gsl_sf(VALUE module)
|
|
1449
1404
|
rb_define_method(cgsl_sf_result, "to_a", rb_gsl_sf_result_to_a, 0);
|
1450
1405
|
rb_define_method(cgsl_sf_result, "to_s", rb_gsl_sf_result_to_s, 0);
|
1451
1406
|
|
1452
|
-
cgsl_sf_result_e10 = rb_define_class_under(mgsl_sf, "Result_e10",
|
1453
|
-
|
1454
|
-
rb_define_singleton_method(cgsl_sf_result_e10, "new",
|
1455
|
-
|
1407
|
+
cgsl_sf_result_e10 = rb_define_class_under(mgsl_sf, "Result_e10",
|
1408
|
+
cGSL_Object);
|
1409
|
+
rb_define_singleton_method(cgsl_sf_result_e10, "new",
|
1410
|
+
rb_gsl_sf_result_e10_new, 0);
|
1456
1411
|
rb_define_method(cgsl_sf_result_e10, "val", rb_gsl_sf_result_e10_val, 0);
|
1457
1412
|
rb_define_method(cgsl_sf_result_e10, "err", rb_gsl_sf_result_e10_err, 0);
|
1458
1413
|
rb_define_method(cgsl_sf_result_e10, "e10", rb_gsl_sf_result_e10_e10, 0);
|
@@ -1487,8 +1442,5 @@ void Init_gsl_sf(VALUE module)
|
|
1487
1442
|
Init_gsl_sf_transport(mgsl_sf);
|
1488
1443
|
Init_gsl_sf_trigonometric(mgsl_sf);
|
1489
1444
|
Init_gsl_sf_zeta(mgsl_sf);
|
1490
|
-
|
1491
|
-
#ifdef GSL_1_9_LATER
|
1492
|
-
Init_sf_mathieu(mgsl_sf);
|
1493
|
-
#endif
|
1445
|
+
Init_sf_mathieu(mgsl_sf);
|
1494
1446
|
}
|