gsl 1.15.3 → 1.16.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.travis.yml +24 -0
- data/AUTHORS +10 -2
- data/COPYING +341 -339
- data/ChangeLog +612 -554
- data/Gemfile +4 -0
- data/README.md +77 -0
- data/Rakefile +14 -93
- data/THANKS +1 -1
- data/examples/blas/blas.rb +1 -1
- data/examples/bspline.rb +3 -3
- data/examples/complex/functions.rb +4 -4
- data/examples/complex/mul.rb +1 -1
- data/examples/const/physconst.rb +4 -4
- data/examples/const/travel.rb +4 -4
- data/examples/eigen/nonsymmv.rb +1 -1
- data/examples/eigen/qhoscillator.rb +3 -3
- data/examples/fft/radix2.rb +1 -1
- data/examples/fft/real-halfcomplex.rb +3 -3
- data/examples/fft/real-halfcomplex2.rb +3 -3
- data/examples/fit/expfit.rb +1 -1
- data/examples/fit/multifit.rb +1 -1
- data/examples/fit/ndlinear.rb +44 -44
- data/examples/fit/nonlinearfit.rb +1 -1
- data/examples/fit/wlinear.rb +3 -3
- data/examples/function/function.rb +1 -1
- data/examples/function/min.rb +1 -1
- data/examples/function/synchrotron.rb +2 -2
- data/examples/gallery/koch.rb +1 -1
- data/examples/histogram/cauchy.rb +2 -2
- data/examples/histogram/exponential.rb +1 -1
- data/examples/histogram/histo3d.rb +1 -1
- data/examples/histogram/histogram-pdf.rb +2 -2
- data/examples/histogram/xexp.rb +1 -1
- data/examples/integration/ahmed.rb +2 -2
- data/examples/integration/cosmology.rb +7 -7
- data/examples/integration/friedmann.rb +4 -4
- data/examples/integration/qng.rb +1 -1
- data/examples/interp/demo.rb +2 -2
- data/examples/linalg/LQ_solve.rb +1 -1
- data/examples/linalg/LU.rb +1 -1
- data/examples/linalg/LU2.rb +1 -1
- data/examples/linalg/LU_narray.rb +1 -1
- data/examples/linalg/PTLQ.rb +1 -1
- data/examples/linalg/QRPT.rb +1 -1
- data/examples/linalg/chol.rb +1 -1
- data/examples/linalg/chol_narray.rb +1 -1
- data/examples/linalg/complex.rb +1 -1
- data/examples/math/elementary.rb +1 -1
- data/examples/math/functions.rb +1 -1
- data/examples/math/inf_nan.rb +1 -1
- data/examples/math/minmax.rb +1 -1
- data/examples/math/power.rb +1 -1
- data/examples/math/test.rb +1 -1
- data/examples/min.rb +1 -1
- data/examples/multimin/bundle.rb +1 -1
- data/examples/multimin/cqp.rb +17 -17
- data/examples/multiroot/fsolver3.rb +1 -1
- data/examples/odeiv/binarysystem.rb +12 -12
- data/examples/odeiv/demo.rb +3 -3
- data/examples/odeiv/frei1.rb +7 -7
- data/examples/odeiv/frei2.rb +4 -4
- data/examples/odeiv/oscillator.rb +1 -1
- data/examples/odeiv/sedov.rb +3 -3
- data/examples/odeiv/whitedwarf.rb +11 -11
- data/examples/permutation/ex1.rb +2 -2
- data/examples/permutation/permutation.rb +1 -1
- data/examples/poly/demo.rb +1 -1
- data/examples/random/diffusion.rb +1 -1
- data/examples/random/generator.rb +2 -2
- data/examples/random/randomwalk.rb +3 -3
- data/examples/random/rng.rb +1 -1
- data/examples/roots/bisection.rb +1 -1
- data/examples/roots/brent.rb +1 -1
- data/examples/roots/demo.rb +1 -1
- data/examples/roots/newton.rb +2 -2
- data/examples/roots/recombination.gp +0 -1
- data/examples/sf/hyperg.rb +1 -1
- data/examples/sf/sphbessel.rb +1 -1
- data/examples/sort/sort.rb +1 -1
- data/examples/tamu_anova.rb +4 -4
- data/examples/vector/add.rb +1 -1
- data/examples/vector/decimate.rb +1 -1
- data/examples/vector/gnuplot.rb +8 -8
- data/examples/vector/vector.rb +2 -2
- data/examples/wavelet/wavelet1.rb +1 -1
- data/ext/{alf.c → gsl_native/alf.c} +10 -10
- data/ext/{array.c → gsl_native/array.c} +70 -159
- data/ext/{array_complex.c → gsl_native/array_complex.c} +63 -66
- data/ext/{blas.c → gsl_native/blas.c} +2 -3
- data/ext/{blas1.c → gsl_native/blas1.c} +35 -36
- data/ext/{blas2.c → gsl_native/blas2.c} +57 -62
- data/ext/{blas3.c → gsl_native/blas3.c} +57 -58
- data/ext/{block.c → gsl_native/block.c} +14 -18
- data/ext/{block_source.c → gsl_native/block_source.h} +110 -112
- data/ext/gsl_native/bspline.c +122 -0
- data/ext/{bundle.c → gsl_native/bundle.c} +0 -0
- data/ext/{cdf.c → gsl_native/cdf.c} +79 -93
- data/ext/{cheb.c → gsl_native/cheb.c} +78 -89
- data/ext/{combination.c → gsl_native/combination.c} +11 -19
- data/ext/{common.c → gsl_native/common.c} +9 -41
- data/ext/{complex.c → gsl_native/complex.c} +116 -118
- data/ext/gsl_native/const.c +331 -0
- data/ext/{const_additional.c → gsl_native/const_additional.c} +13 -34
- data/ext/gsl_native/cqp.c +283 -0
- data/ext/{deriv.c → gsl_native/deriv.c} +25 -33
- data/ext/{dht.c → gsl_native/dht.c} +23 -31
- data/ext/{diff.c → gsl_native/diff.c} +26 -28
- data/ext/{dirac.c → gsl_native/dirac.c} +45 -46
- data/ext/{eigen.c → gsl_native/eigen.c} +1044 -1095
- data/ext/{error.c → gsl_native/error.c} +18 -18
- data/ext/gsl_native/extconf.rb +118 -0
- data/ext/{fft.c → gsl_native/fft.c} +197 -204
- data/ext/{fit.c → gsl_native/fit.c} +17 -18
- data/ext/gsl_native/fresnel.c +312 -0
- data/ext/{function.c → gsl_native/function.c} +37 -43
- data/ext/{geometry.c → gsl_native/geometry.c} +16 -16
- data/ext/{graph.c → gsl_native/graph.c} +39 -89
- data/ext/{gsl.c → gsl_native/gsl.c} +12 -33
- data/ext/{gsl_narray.c → gsl_native/gsl_narray.c} +20 -30
- data/ext/{histogram.c → gsl_native/histogram.c} +133 -160
- data/ext/{histogram2d.c → gsl_native/histogram2d.c} +78 -104
- data/ext/{histogram3d.c → gsl_native/histogram3d.c} +76 -76
- data/ext/{histogram3d_source.c → gsl_native/histogram3d_source.c} +196 -197
- data/ext/{histogram_find.c → gsl_native/histogram_find.c} +32 -34
- data/ext/{histogram_oper.c → gsl_native/histogram_oper.c} +43 -52
- data/ext/{ieee.c → gsl_native/ieee.c} +9 -21
- data/{include → ext/gsl_native/include}/rb_gsl.h +4 -26
- data/{include → ext/gsl_native/include}/rb_gsl_array.h +15 -39
- data/{include → ext/gsl_native/include}/rb_gsl_cheb.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_common.h +61 -61
- data/{include → ext/gsl_native/include}/rb_gsl_complex.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_const.h +0 -6
- data/ext/gsl_native/include/rb_gsl_dirac.h +6 -0
- data/{include → ext/gsl_native/include}/rb_gsl_eigen.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_fft.h +0 -13
- data/{include → ext/gsl_native/include}/rb_gsl_fit.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_function.h +0 -4
- data/{include → ext/gsl_native/include}/rb_gsl_graph.h +2 -4
- data/{include → ext/gsl_native/include}/rb_gsl_histogram.h +8 -8
- data/{include → ext/gsl_native/include}/rb_gsl_histogram3d.h +50 -50
- data/{include → ext/gsl_native/include}/rb_gsl_integration.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_interp.h +0 -5
- data/{include → ext/gsl_native/include}/rb_gsl_linalg.h +2 -6
- data/{include → ext/gsl_native/include}/rb_gsl_math.h +0 -6
- data/{include → ext/gsl_native/include}/rb_gsl_odeiv.h +0 -3
- data/{include → ext/gsl_native/include}/rb_gsl_poly.h +3 -7
- data/{include → ext/gsl_native/include}/rb_gsl_rational.h +1 -8
- data/{include → ext/gsl_native/include}/rb_gsl_rng.h +0 -1
- data/{include → ext/gsl_native/include}/rb_gsl_root.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_sf.h +39 -48
- data/{include → ext/gsl_native/include}/rb_gsl_statistics.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_tensor.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_with_narray.h +3 -1
- data/{include → ext/gsl_native/include}/templates_off.h +0 -0
- data/{include → ext/gsl_native/include}/templates_on.h +1 -1
- data/ext/{integration.c → gsl_native/integration.c} +164 -189
- data/ext/{interp.c → gsl_native/interp.c} +25 -38
- data/ext/gsl_native/jacobi.c +733 -0
- data/ext/{linalg.c → gsl_native/linalg.c} +462 -589
- data/ext/{linalg_complex.c → gsl_native/linalg_complex.c} +93 -106
- data/ext/{math.c → gsl_native/math.c} +48 -67
- data/ext/{matrix.c → gsl_native/matrix.c} +13 -16
- data/ext/{matrix_complex.c → gsl_native/matrix_complex.c} +119 -123
- data/ext/{matrix_double.c → gsl_native/matrix_double.c} +79 -82
- data/ext/{matrix_int.c → gsl_native/matrix_int.c} +53 -54
- data/ext/{matrix_source.c → gsl_native/matrix_source.h} +292 -318
- data/ext/{min.c → gsl_native/min.c} +45 -76
- data/ext/{monte.c → gsl_native/monte.c} +50 -64
- data/ext/{multifit.c → gsl_native/multifit.c} +142 -151
- data/ext/{multimin.c → gsl_native/multimin.c} +64 -92
- data/ext/{multimin_fsdf.c → gsl_native/multimin_fsdf.c} +16 -16
- data/ext/{multiroots.c → gsl_native/multiroots.c} +73 -76
- data/ext/{multiset.c → gsl_native/multiset.c} +4 -8
- data/ext/{ndlinear.c → gsl_native/ndlinear.c} +320 -321
- data/ext/{nmf.c → gsl_native/nmf.c} +11 -11
- data/ext/{nmf_wrap.c → gsl_native/nmf_wrap.c} +1 -1
- data/ext/{ntuple.c → gsl_native/ntuple.c} +23 -23
- data/ext/{odeiv.c → gsl_native/odeiv.c} +101 -116
- data/ext/gsl_native/ool.c +879 -0
- data/ext/{permutation.c → gsl_native/permutation.c} +39 -37
- data/ext/{poly.c → gsl_native/poly.c} +10 -13
- data/ext/{poly2.c → gsl_native/poly2.c} +16 -16
- data/ext/{poly_source.c → gsl_native/poly_source.h} +249 -293
- data/ext/{qrng.c → gsl_native/qrng.c} +9 -20
- data/ext/{randist.c → gsl_native/randist.c} +222 -247
- data/ext/{rational.c → gsl_native/rational.c} +12 -12
- data/ext/{rng.c → gsl_native/rng.c} +30 -47
- data/ext/{root.c → gsl_native/root.c} +47 -48
- data/ext/{sf.c → gsl_native/sf.c} +196 -244
- data/ext/{sf_airy.c → gsl_native/sf_airy.c} +2 -2
- data/ext/{sf_bessel.c → gsl_native/sf_bessel.c} +7 -7
- data/ext/{sf_clausen.c → gsl_native/sf_clausen.c} +1 -1
- data/ext/{sf_coulomb.c → gsl_native/sf_coulomb.c} +40 -40
- data/ext/{sf_coupling.c → gsl_native/sf_coupling.c} +30 -30
- data/ext/{sf_dawson.c → gsl_native/sf_dawson.c} +1 -1
- data/ext/{sf_debye.c → gsl_native/sf_debye.c} +1 -10
- data/ext/{sf_dilog.c → gsl_native/sf_dilog.c} +1 -1
- data/ext/{sf_elementary.c → gsl_native/sf_elementary.c} +3 -3
- data/ext/{sf_ellint.c → gsl_native/sf_ellint.c} +43 -43
- data/ext/{sf_elljac.c → gsl_native/sf_elljac.c} +3 -3
- data/ext/{sf_erfc.c → gsl_native/sf_erfc.c} +1 -5
- data/ext/{sf_exp.c → gsl_native/sf_exp.c} +3 -3
- data/ext/{sf_expint.c → gsl_native/sf_expint.c} +2 -12
- data/ext/{sf_fermi_dirac.c → gsl_native/sf_fermi_dirac.c} +1 -1
- data/ext/{sf_gamma.c → gsl_native/sf_gamma.c} +2 -6
- data/ext/{sf_gegenbauer.c → gsl_native/sf_gegenbauer.c} +1 -1
- data/ext/{sf_hyperg.c → gsl_native/sf_hyperg.c} +1 -1
- data/ext/{sf_laguerre.c → gsl_native/sf_laguerre.c} +4 -4
- data/ext/{sf_lambert.c → gsl_native/sf_lambert.c} +1 -1
- data/ext/{sf_legendre.c → gsl_native/sf_legendre.c} +1 -1
- data/ext/{sf_log.c → gsl_native/sf_log.c} +4 -4
- data/ext/gsl_native/sf_mathieu.c +235 -0
- data/ext/{sf_power.c → gsl_native/sf_power.c} +1 -1
- data/ext/{sf_psi.c → gsl_native/sf_psi.c} +3 -12
- data/ext/{sf_synchrotron.c → gsl_native/sf_synchrotron.c} +1 -1
- data/ext/{sf_transport.c → gsl_native/sf_transport.c} +1 -1
- data/ext/{sf_trigonometric.c → gsl_native/sf_trigonometric.c} +4 -4
- data/ext/{sf_zeta.c → gsl_native/sf_zeta.c} +1 -5
- data/ext/{signal.c → gsl_native/signal.c} +63 -68
- data/ext/{siman.c → gsl_native/siman.c} +45 -49
- data/ext/{sort.c → gsl_native/sort.c} +6 -7
- data/ext/{spline.c → gsl_native/spline.c} +28 -46
- data/ext/{stats.c → gsl_native/stats.c} +105 -118
- data/ext/{sum.c → gsl_native/sum.c} +34 -34
- data/ext/{tamu_anova.c → gsl_native/tamu_anova.c} +1 -1
- data/ext/{tensor.c → gsl_native/tensor.c} +8 -11
- data/ext/{tensor_source.c → gsl_native/tensor_source.h} +147 -148
- data/ext/{vector.c → gsl_native/vector.c} +11 -14
- data/ext/{vector_complex.c → gsl_native/vector_complex.c} +179 -184
- data/ext/{vector_double.c → gsl_native/vector_double.c} +178 -183
- data/ext/{vector_int.c → gsl_native/vector_int.c} +27 -29
- data/ext/{vector_source.c → gsl_native/vector_source.h} +428 -443
- data/ext/{wavelet.c → gsl_native/wavelet.c} +224 -246
- data/gsl.gemspec +29 -0
- data/lib/gsl.rb +8 -3
- data/lib/gsl/gnuplot.rb +3 -3
- data/lib/gsl/oper.rb +35 -60
- data/lib/gsl/version.rb +3 -0
- data/lib/rbgsl.rb +1 -3
- data/rdoc/alf.rdoc +5 -5
- data/rdoc/blas.rdoc +9 -9
- data/rdoc/bspline.rdoc +17 -17
- data/rdoc/changes.rdoc +4 -9
- data/rdoc/cheb.rdoc +25 -25
- data/rdoc/cholesky_complex.rdoc +21 -21
- data/rdoc/combi.rdoc +37 -37
- data/rdoc/complex.rdoc +22 -22
- data/rdoc/const.rdoc +47 -47
- data/rdoc/dht.rdoc +49 -49
- data/rdoc/diff.rdoc +42 -42
- data/rdoc/ehandling.rdoc +6 -6
- data/rdoc/eigen.rdoc +153 -153
- data/rdoc/fft.rdoc +146 -146
- data/rdoc/fit.rdoc +109 -109
- data/rdoc/function.rdoc +11 -11
- data/rdoc/graph.rdoc +17 -17
- data/rdoc/hist.rdoc +103 -103
- data/rdoc/hist2d.rdoc +42 -42
- data/rdoc/hist3d.rdoc +9 -9
- data/rdoc/integration.rdoc +110 -110
- data/rdoc/interp.rdoc +71 -71
- data/rdoc/intro.rdoc +8 -8
- data/rdoc/linalg.rdoc +188 -188
- data/rdoc/linalg_complex.rdoc +1 -1
- data/rdoc/math.rdoc +58 -58
- data/rdoc/matrix.rdoc +275 -275
- data/rdoc/min.rdoc +57 -57
- data/rdoc/monte.rdoc +22 -22
- data/rdoc/multimin.rdoc +95 -95
- data/rdoc/multiroot.rdoc +80 -80
- data/rdoc/narray.rdoc +32 -32
- data/rdoc/ndlinear.rdoc +54 -54
- data/rdoc/nonlinearfit.rdoc +100 -100
- data/rdoc/ntuple.rdoc +31 -31
- data/rdoc/odeiv.rdoc +88 -88
- data/rdoc/perm.rdoc +90 -90
- data/rdoc/poly.rdoc +66 -66
- data/rdoc/qrng.rdoc +21 -21
- data/rdoc/randist.rdoc +82 -82
- data/rdoc/ref.rdoc +57 -57
- data/rdoc/rng.rdoc +85 -85
- data/rdoc/roots.rdoc +57 -57
- data/rdoc/sf.rdoc +428 -428
- data/rdoc/siman.rdoc +19 -19
- data/rdoc/sort.rdoc +30 -30
- data/rdoc/start.rdoc +8 -8
- data/rdoc/stats.rdoc +52 -52
- data/rdoc/sum.rdoc +12 -12
- data/rdoc/tensor.rdoc +31 -31
- data/rdoc/tut.rdoc +1 -1
- data/rdoc/use.rdoc +39 -39
- data/rdoc/vector.rdoc +188 -188
- data/rdoc/vector_complex.rdoc +24 -24
- data/rdoc/wavelet.rdoc +46 -46
- data/test/gsl/blas_test.rb +79 -0
- data/test/gsl/bspline_test.rb +63 -0
- data/test/gsl/cdf_test.rb +1512 -0
- data/test/gsl/cheb_test.rb +80 -0
- data/test/gsl/combination_test.rb +100 -0
- data/test/gsl/complex_test.rb +20 -0
- data/test/gsl/const_test.rb +29 -0
- data/test/gsl/deriv_test.rb +62 -0
- data/test/gsl/dht_test.rb +79 -0
- data/test/gsl/diff_test.rb +53 -0
- data/test/gsl/eigen_test.rb +563 -0
- data/test/gsl/err_test.rb +23 -0
- data/test/gsl/fit_test.rb +101 -0
- data/test/gsl/histo_test.rb +14 -0
- data/test/gsl/index_test.rb +61 -0
- data/test/gsl/integration_test.rb +274 -0
- data/test/gsl/interp_test.rb +27 -0
- data/test/gsl/linalg_test.rb +463 -0
- data/test/gsl/matrix_nmf_test.rb +37 -0
- data/test/gsl/matrix_test.rb +98 -0
- data/test/gsl/min_test.rb +89 -0
- data/test/gsl/monte_test.rb +77 -0
- data/test/gsl/multifit_test.rb +753 -0
- data/test/gsl/multimin_test.rb +157 -0
- data/test/gsl/multiroot_test.rb +135 -0
- data/test/gsl/multiset_test.rb +52 -0
- data/test/gsl/odeiv_test.rb +275 -0
- data/test/gsl/oper_test.rb +98 -0
- data/test/gsl/poly_test.rb +338 -0
- data/test/gsl/qrng_test.rb +94 -0
- data/test/gsl/quartic_test.rb +28 -0
- data/test/gsl/randist_test.rb +122 -0
- data/test/gsl/rng_test.rb +303 -0
- data/test/gsl/roots_test.rb +78 -0
- data/test/gsl/sf_test.rb +2079 -0
- data/test/gsl/stats_test.rb +122 -0
- data/test/gsl/sum_test.rb +69 -0
- data/test/gsl/tensor_test.rb +396 -0
- data/test/gsl/vector_test.rb +223 -0
- data/test/gsl/wavelet_test.rb +130 -0
- data/test/gsl_test.rb +321 -0
- data/test/test_helper.rb +42 -0
- data/uncrustify.cfg +1693 -0
- metadata +337 -378
- data/README +0 -32
- data/VERSION +0 -1
- data/ext/bspline.c +0 -130
- data/ext/const.c +0 -673
- data/ext/cqp.c +0 -283
- data/ext/extconf.rb +0 -295
- data/ext/fcmp.c +0 -66
- data/ext/fresnel.c +0 -312
- data/ext/jacobi.c +0 -739
- data/ext/ool.c +0 -879
- data/ext/oper_complex_source.c +0 -253
- data/ext/sf_mathieu.c +0 -238
- data/include/rb_gsl_config.h +0 -62
- data/include/rb_gsl_dirac.h +0 -13
- data/rdoc/index.rdoc +0 -62
- data/rdoc/rngextra.rdoc +0 -11
- data/rdoc/screenshot.rdoc +0 -40
- data/setup.rb +0 -1585
- data/tests/blas/amax.rb +0 -14
- data/tests/blas/asum.rb +0 -16
- data/tests/blas/axpy.rb +0 -25
- data/tests/blas/copy.rb +0 -23
- data/tests/blas/dot.rb +0 -23
- data/tests/bspline.rb +0 -53
- data/tests/cdf.rb +0 -1388
- data/tests/cheb.rb +0 -112
- data/tests/combination.rb +0 -123
- data/tests/complex.rb +0 -17
- data/tests/const.rb +0 -24
- data/tests/deriv.rb +0 -85
- data/tests/dht/dht1.rb +0 -17
- data/tests/dht/dht2.rb +0 -23
- data/tests/dht/dht3.rb +0 -23
- data/tests/dht/dht4.rb +0 -23
- data/tests/diff.rb +0 -78
- data/tests/eigen/eigen.rb +0 -220
- data/tests/eigen/gen.rb +0 -105
- data/tests/eigen/genherm.rb +0 -66
- data/tests/eigen/gensymm.rb +0 -68
- data/tests/eigen/nonsymm.rb +0 -53
- data/tests/eigen/nonsymmv.rb +0 -53
- data/tests/eigen/symm-herm.rb +0 -74
- data/tests/err.rb +0 -58
- data/tests/fit.rb +0 -124
- data/tests/gsl_test.rb +0 -118
- data/tests/gsl_test2.rb +0 -110
- data/tests/histo.rb +0 -12
- data/tests/integration/integration1.rb +0 -72
- data/tests/integration/integration2.rb +0 -71
- data/tests/integration/integration3.rb +0 -71
- data/tests/integration/integration4.rb +0 -71
- data/tests/interp.rb +0 -45
- data/tests/linalg/HH.rb +0 -64
- data/tests/linalg/LU.rb +0 -47
- data/tests/linalg/QR.rb +0 -77
- data/tests/linalg/SV.rb +0 -24
- data/tests/linalg/TDN.rb +0 -116
- data/tests/linalg/TDS.rb +0 -122
- data/tests/linalg/bidiag.rb +0 -73
- data/tests/linalg/cholesky.rb +0 -20
- data/tests/linalg/linalg.rb +0 -158
- data/tests/matrix/matrix_complex_test.rb +0 -36
- data/tests/matrix/matrix_nmf_test.rb +0 -39
- data/tests/matrix/matrix_test.rb +0 -48
- data/tests/min.rb +0 -99
- data/tests/monte/miser.rb +0 -31
- data/tests/monte/vegas.rb +0 -45
- data/tests/multifit/test_2dgauss.rb +0 -112
- data/tests/multifit/test_brown.rb +0 -90
- data/tests/multifit/test_enso.rb +0 -246
- data/tests/multifit/test_filip.rb +0 -155
- data/tests/multifit/test_gauss.rb +0 -97
- data/tests/multifit/test_longley.rb +0 -110
- data/tests/multifit/test_multifit.rb +0 -52
- data/tests/multimin.rb +0 -139
- data/tests/multiroot.rb +0 -131
- data/tests/multiset.rb +0 -52
- data/tests/narray/blas_dnrm2.rb +0 -20
- data/tests/odeiv.rb +0 -353
- data/tests/poly/poly.rb +0 -290
- data/tests/poly/special.rb +0 -65
- data/tests/qrng.rb +0 -131
- data/tests/quartic.rb +0 -29
- data/tests/randist.rb +0 -134
- data/tests/rng.rb +0 -305
- data/tests/roots.rb +0 -76
- data/tests/run-test.sh +0 -17
- data/tests/sf/gsl_test_sf.rb +0 -249
- data/tests/sf/test_airy.rb +0 -83
- data/tests/sf/test_bessel.rb +0 -306
- data/tests/sf/test_coulomb.rb +0 -17
- data/tests/sf/test_dilog.rb +0 -25
- data/tests/sf/test_gamma.rb +0 -209
- data/tests/sf/test_hyperg.rb +0 -356
- data/tests/sf/test_legendre.rb +0 -227
- data/tests/sf/test_mathieu.rb +0 -59
- data/tests/sf/test_mode.rb +0 -19
- data/tests/sf/test_sf.rb +0 -839
- data/tests/stats.rb +0 -174
- data/tests/stats_mt.rb +0 -16
- data/tests/sum.rb +0 -98
- data/tests/sys.rb +0 -323
- data/tests/tensor.rb +0 -419
- data/tests/vector/vector_complex_test.rb +0 -101
- data/tests/vector/vector_test.rb +0 -141
- data/tests/wavelet.rb +0 -142
@@ -9,12 +9,10 @@
|
|
9
9
|
This library is distributed in the hope that it will be useful, but
|
10
10
|
WITHOUT ANY WARRANTY.
|
11
11
|
*/
|
12
|
-
|
13
|
-
#include "rb_gsl_array.h"
|
14
|
-
#include "rb_gsl_complex.h"
|
15
|
-
#
|
16
|
-
#include "rb_gsl_with_narray.h"
|
17
|
-
#endif
|
12
|
+
|
13
|
+
#include "include/rb_gsl_array.h"
|
14
|
+
#include "include/rb_gsl_complex.h"
|
15
|
+
#include "include/rb_gsl_with_narray.h"
|
18
16
|
|
19
17
|
VALUE rb_gsl_vector_int_inner_product(int argc, VALUE *argv, VALUE obj);
|
20
18
|
VALUE rb_gsl_vector_int_do_something(VALUE obj, void (*func)(gsl_vector_int*));
|
@@ -31,7 +29,7 @@ VALUE rb_gsl_vector_int_to_f(VALUE obj)
|
|
31
29
|
size_t i;
|
32
30
|
Data_Get_Struct(obj, gsl_vector_int, v);
|
33
31
|
vnew = gsl_vector_alloc(v->size);
|
34
|
-
for (i = 0; i < v->size; i++)
|
32
|
+
for (i = 0; i < v->size; i++)
|
35
33
|
gsl_vector_set(vnew, i, (double) gsl_vector_int_get(v, i));
|
36
34
|
if (VECTOR_INT_COL_P(obj))
|
37
35
|
return Data_Wrap_Struct(cgsl_vector_col, 0, gsl_vector_free, vnew);
|
@@ -92,17 +90,17 @@ static VALUE rb_gsl_vector_int_add(VALUE obj, VALUE b)
|
|
92
90
|
return rb_gsl_vector_add_constant(rb_gsl_vector_int_to_f(obj), b);
|
93
91
|
break;
|
94
92
|
default:
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
93
|
+
if (rb_obj_is_kind_of(b, cgsl_vector_int)) {
|
94
|
+
Data_Get_Struct(obj, gsl_vector_int, v);
|
95
|
+
Data_Get_Struct(b, gsl_vector_int, vb);
|
96
|
+
vnew = gsl_vector_int_alloc(v->size);
|
97
|
+
gsl_vector_int_memcpy(vnew, v);
|
98
|
+
gsl_vector_int_add(vnew, vb);
|
99
|
+
return Data_Wrap_Struct(VECTOR_INT_ROW_COL(obj), 0, gsl_vector_int_free, vnew);
|
100
|
+
} else {
|
101
|
+
return rb_gsl_vector_add(rb_gsl_vector_int_to_f(obj), b);
|
102
|
+
}
|
103
|
+
break;
|
106
104
|
}
|
107
105
|
}
|
108
106
|
|
@@ -119,12 +117,12 @@ static VALUE rb_gsl_vector_int_sub(VALUE obj, VALUE b)
|
|
119
117
|
break;
|
120
118
|
default:
|
121
119
|
if (rb_obj_is_kind_of(b, cgsl_vector_int)) {
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
120
|
+
Data_Get_Struct(obj, gsl_vector_int, v);
|
121
|
+
Data_Get_Struct(b, gsl_vector_int, vb);
|
122
|
+
vnew = gsl_vector_int_alloc(v->size);
|
123
|
+
gsl_vector_int_memcpy(vnew, v);
|
124
|
+
gsl_vector_int_sub(vnew, vb);
|
125
|
+
return Data_Wrap_Struct(VECTOR_INT_ROW_COL(obj), 0, gsl_vector_int_free, vnew);
|
128
126
|
} else {
|
129
127
|
return rb_gsl_vector_sub(rb_gsl_vector_int_to_f(obj), b);
|
130
128
|
}
|
@@ -151,7 +149,7 @@ static VALUE rb_gsl_vector_int_mul(VALUE obj, VALUE b)
|
|
151
149
|
argv[0] = obj;
|
152
150
|
argv[1] = b;
|
153
151
|
return rb_gsl_vector_int_inner_product(2, argv, CLASS_OF(obj));
|
154
|
-
} else
|
152
|
+
} else if (VECTOR_INT_ROW_P(obj) && MATRIX_INT_P(b)) {
|
155
153
|
Data_Get_Struct(obj, gsl_vector_int, v);
|
156
154
|
Data_Get_Struct(b, gsl_matrix_int, m);
|
157
155
|
vnew = mygsl_vector_int_mul_matrix(v, m);
|
@@ -162,10 +160,10 @@ static VALUE rb_gsl_vector_int_mul(VALUE obj, VALUE b)
|
|
162
160
|
if (v->size != v2->size) rb_raise(rb_eIndexError, "Vector sizes does not match.");
|
163
161
|
m = gsl_matrix_int_alloc(v->size, v2->size);
|
164
162
|
for (i = 0; i < v->size; i++) {
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
163
|
+
for (j = 0; j < v2->size; j++) {
|
164
|
+
val = gsl_vector_int_get(v, i)*gsl_vector_int_get(v2, j);
|
165
|
+
gsl_matrix_int_set(m, i, j, val);
|
166
|
+
}
|
169
167
|
}
|
170
168
|
return Data_Wrap_Struct(cgsl_matrix_int, 0, gsl_matrix_int_free, m);
|
171
169
|
} else {
|
@@ -39,10 +39,10 @@
|
|
39
39
|
void FUNCTION(get_range,beg_en_n)(VALUE range, BASE *beg, BASE *en, size_t *n, int *step);
|
40
40
|
|
41
41
|
void get_range_beg_en_n_for_size(VALUE range,
|
42
|
-
|
42
|
+
int *beg, int *en, size_t *n, int *step, size_t size);
|
43
43
|
|
44
44
|
void parse_subvector_args(int argc, VALUE *argv, size_t size,
|
45
|
-
|
45
|
+
size_t *offset, size_t *stride, size_t *n);
|
46
46
|
|
47
47
|
void FUNCTION(get_range,beg_en_n)(VALUE range, BASE *beg, BASE *en, size_t *n, int *step)
|
48
48
|
{
|
@@ -66,7 +66,7 @@ void get_range_beg_en_n_for_size(VALUE range, int *beg, int *en, size_t *n, int
|
|
66
66
|
}
|
67
67
|
|
68
68
|
void parse_subvector_args(int argc, VALUE *argv, size_t size,
|
69
|
-
|
69
|
+
size_t *offset, size_t *stride, size_t *n)
|
70
70
|
{
|
71
71
|
int begin = 0, end, step, length;
|
72
72
|
*stride = 1;
|
@@ -83,22 +83,22 @@ void parse_subvector_args(int argc, VALUE *argv, size_t size,
|
|
83
83
|
// want to let Ruby crash if GSL does not have bounds checking enabled.
|
84
84
|
if(begin < 0 || (size_t)begin >= size) {
|
85
85
|
rb_raise(rb_eRangeError,
|
86
|
-
|
87
|
-
|
86
|
+
"begin value %d is out of range for Vector of length %d",
|
87
|
+
begin, (int) size);
|
88
88
|
}
|
89
89
|
if(end < 0 || (size_t)end >= size) {
|
90
90
|
rb_raise(rb_eRangeError,
|
91
|
-
|
92
|
-
|
91
|
+
"end value %d is out of range for Vector of length %d",
|
92
|
+
end, (int) size);
|
93
93
|
}
|
94
94
|
*stride = (size_t)step;
|
95
95
|
} else {
|
96
96
|
CHECK_FIXNUM(argv[0]);
|
97
97
|
length = FIX2INT(argv[0]);
|
98
|
-
if((length < 0 && -length > size) || (length > 0 && length > size)) {
|
98
|
+
if((length < 0 && -length > (int) size) || (length > 0 && length > (int) size)) {
|
99
99
|
rb_raise(rb_eRangeError,
|
100
|
-
|
101
|
-
|
100
|
+
"length %d is out of range for Vector of length %d",
|
101
|
+
length, (int) size);
|
102
102
|
} else if(length < 0) {
|
103
103
|
begin = length;
|
104
104
|
*n = (size_t)(-length);
|
@@ -113,13 +113,13 @@ void parse_subvector_args(int argc, VALUE *argv, size_t size,
|
|
113
113
|
get_range_beg_en_n_for_size(argv[0], &begin, &end, n, &step, size);
|
114
114
|
if(begin < 0 || (size_t)begin >= size) {
|
115
115
|
rb_raise(rb_eRangeError,
|
116
|
-
|
117
|
-
|
116
|
+
"begin value %d is out of range for Vector of length %d",
|
117
|
+
(int) begin, (int) size);
|
118
118
|
}
|
119
119
|
if(end < 0 || (size_t)end >= size) {
|
120
120
|
rb_raise(rb_eRangeError,
|
121
|
-
|
122
|
-
|
121
|
+
"end value %d is out of range for Vector of length %d",
|
122
|
+
(int) end, (int) size);
|
123
123
|
}
|
124
124
|
CHECK_FIXNUM(argv[1]);
|
125
125
|
step = FIX2INT(argv[1]);
|
@@ -188,11 +188,7 @@ void FUNCTION(cvector,set_from_rarray)(GSL_TYPE(gsl_vector) *v, VALUE ary)
|
|
188
188
|
size_t i;
|
189
189
|
if (CLASS_OF(ary) == rb_cRange) ary = rb_gsl_range2ary(ary);
|
190
190
|
Check_Type(ary, T_ARRAY);
|
191
|
-
#ifdef RUBY_1_9_LATER
|
192
191
|
if (RARRAY_LEN(ary) == 0) return;
|
193
|
-
#else
|
194
|
-
if (RARRAY_LEN(ary) == 0) return;
|
195
|
-
#endif
|
196
192
|
for (i = 0; i < v->size; i++) FUNCTION(gsl_vector,set)(v, i, NUMCONV(rb_ary_entry(ary, i)));
|
197
193
|
}
|
198
194
|
|
@@ -214,13 +210,11 @@ VALUE FUNCTION(rb_gsl_vector,new)(int argc, VALUE *argv, VALUE klass)
|
|
214
210
|
size_t n, i;
|
215
211
|
BASE beg, en;
|
216
212
|
int step;
|
217
|
-
#ifdef HAVE_NARRAY_H
|
218
|
-
VALUE ary2;
|
219
|
-
#endif
|
220
213
|
switch (argc) {
|
221
214
|
case 1:
|
222
215
|
#ifdef HAVE_NARRAY_H
|
223
216
|
if (NA_IsNArray(argv[0])) {
|
217
|
+
VALUE ary2;
|
224
218
|
n = NA_TOTAL(argv[0]);
|
225
219
|
v = FUNCTION(gsl_vector,alloc)(n);
|
226
220
|
if (v == NULL) rb_raise(rb_eNoMemError, "gsl_vector_alloc failed");
|
@@ -234,7 +228,7 @@ VALUE FUNCTION(rb_gsl_vector,new)(int argc, VALUE *argv, VALUE klass)
|
|
234
228
|
}
|
235
229
|
#endif
|
236
230
|
switch (TYPE(argv[0])) {
|
237
|
-
case T_FIXNUM:
|
231
|
+
case T_FIXNUM:
|
238
232
|
/*! if an integer n is given, create an empty vector of length n */
|
239
233
|
CHECK_FIXNUM(argv[0]);
|
240
234
|
n = FIX2INT(argv[0]);
|
@@ -247,35 +241,35 @@ VALUE FUNCTION(rb_gsl_vector,new)(int argc, VALUE *argv, VALUE klass)
|
|
247
241
|
case T_FLOAT:
|
248
242
|
v = FUNCTION(gsl_vector,alloc)(1);
|
249
243
|
switch(TYPE(argv[0])) {
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
244
|
+
case T_FIXNUM: case T_BIGNUM: case T_FLOAT:
|
245
|
+
xnative = NUMCONV2(argv[0]);
|
246
|
+
break;
|
247
|
+
default:
|
248
|
+
xnative = (BASE)0;
|
255
249
|
}
|
256
250
|
FUNCTION(gsl_vector,set)(v, 0, xnative);
|
257
251
|
break;
|
258
252
|
#ifdef BASE_DOUBLE
|
259
|
-
case T_ARRAY:
|
253
|
+
case T_ARRAY:
|
260
254
|
v = make_cvector_from_rarrays(argv[0]);
|
261
255
|
break;
|
262
256
|
#endif
|
263
257
|
default:
|
264
258
|
if (CLASS_OF(argv[0]) == rb_cRange) {
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
259
|
+
FUNCTION(get_range,beg_en_n)(argv[0], &beg, &en, &n, &step);
|
260
|
+
v = FUNCTION(gsl_vector,alloc)(n);
|
261
|
+
FUNCTION(set_ptr_data,by_range)(v->data, v->size, argv[0]);
|
262
|
+
return Data_Wrap_Struct(klass, 0, FUNCTION(gsl_vector,free), v);
|
269
263
|
} else if (VEC_P(argv[0])) {
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
264
|
+
/*! Create a new vector with the same elements of the vector given */
|
265
|
+
Data_Get_Struct(argv[0], GSL_TYPE(gsl_vector), vtmp);
|
266
|
+
v = FUNCTION(gsl_vector,alloc)(vtmp->size);
|
267
|
+
for (i = 0; i < vtmp->size; i++)
|
268
|
+
FUNCTION(gsl_vector,set)(v, i, FUNCTION(gsl_vector,get)(vtmp, i));
|
269
|
+
return Data_Wrap_Struct(VEC_ROW_COL(argv[0]), 0, FUNCTION(gsl_vector,free), v);
|
276
270
|
} else {
|
277
|
-
|
278
|
-
|
271
|
+
rb_raise(rb_eTypeError,
|
272
|
+
"wrong argument type %s", rb_class2name(CLASS_OF(argv[0])));
|
279
273
|
}
|
280
274
|
break;
|
281
275
|
}
|
@@ -283,13 +277,13 @@ VALUE FUNCTION(rb_gsl_vector,new)(int argc, VALUE *argv, VALUE klass)
|
|
283
277
|
default:
|
284
278
|
v = FUNCTION(gsl_vector,alloc)(argc);
|
285
279
|
if (v == NULL) rb_raise(rb_eNoMemError, "gsl_vector_alloc failed");
|
286
|
-
for (i = 0; i < argc; i++) {
|
280
|
+
for (i = 0; (int) i < argc; i++) {
|
287
281
|
switch(TYPE(argv[i])) {
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
282
|
+
case T_FIXNUM: case T_BIGNUM: case T_FLOAT:
|
283
|
+
xnative = NUMCONV2(argv[i]);
|
284
|
+
break;
|
285
|
+
default:
|
286
|
+
xnative = (BASE)0;
|
293
287
|
}
|
294
288
|
FUNCTION(gsl_vector,set)(v, i, xnative);
|
295
289
|
}
|
@@ -326,7 +320,7 @@ static VALUE FUNCTION(rb_gsl_vector,get)(int argc, VALUE *argv, VALUE obj)
|
|
326
320
|
switch (TYPE(argv[0])) {
|
327
321
|
case T_FIXNUM:
|
328
322
|
i = FIX2INT(argv[0]);
|
329
|
-
if (i < 0)
|
323
|
+
if (i < 0)
|
330
324
|
retval = C_TO_VALUE2(FUNCTION(gsl_vector,get)(v, (size_t) (v->size + i)));
|
331
325
|
else
|
332
326
|
retval = C_TO_VALUE2(FUNCTION(gsl_vector,get)(v, (size_t) (i)));
|
@@ -336,7 +330,7 @@ static VALUE FUNCTION(rb_gsl_vector,get)(int argc, VALUE *argv, VALUE obj)
|
|
336
330
|
for (j = 0; j < vnew->size; j++) {
|
337
331
|
i = NUMCONV(rb_ary_entry(argv[0], j));
|
338
332
|
if (i < 0) k = v->size + i;
|
339
|
-
//
|
333
|
+
// else k = j;
|
340
334
|
else k = i;
|
341
335
|
FUNCTION(gsl_vector,set)(vnew, j, FUNCTION(gsl_vector,get)(v, k));
|
342
336
|
}
|
@@ -348,7 +342,7 @@ static VALUE FUNCTION(rb_gsl_vector,get)(int argc, VALUE *argv, VALUE obj)
|
|
348
342
|
vnew = FUNCTION(gsl_vector,alloc)(p->size);
|
349
343
|
for (j = 0; j < p->size; j++) {
|
350
344
|
k = p->data[j];
|
351
|
-
if (k < 0) k = p->size + j;
|
345
|
+
//if (k < 0) k = p->size + j;
|
352
346
|
FUNCTION(gsl_vector,set)(vnew, j, FUNCTION(gsl_vector,get)(v, k));
|
353
347
|
}
|
354
348
|
retval = Data_Wrap_Struct(GSL_TYPE(cgsl_vector), 0, FUNCTION(gsl_vector,free), vnew);
|
@@ -412,7 +406,7 @@ void FUNCTION(rb_gsl_vector,set_subvector)(int argc, VALUE *argv, GSL_TYPE(gsl_v
|
|
412
406
|
// Views) well.
|
413
407
|
FUNCTION(gsl_vector,memcpy)(&vv.vector, vother);
|
414
408
|
} else if(rb_obj_is_kind_of(other, rb_cArray)) {
|
415
|
-
if(n != RARRAY_LEN(other)) {
|
409
|
+
if((int) n != RARRAY_LEN(other)) {
|
416
410
|
rb_raise(rb_eRangeError, "lengths do not match (%d != %d)", (int) n, (int) RARRAY_LEN(other));
|
417
411
|
}
|
418
412
|
for(i = 0; i < n; i++) {
|
@@ -441,7 +435,6 @@ static VALUE FUNCTION(rb_gsl_vector,set)(int argc, VALUE *argv, VALUE obj)
|
|
441
435
|
if(argc < 1 || argc > 4) {
|
442
436
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 1-4)", argc);
|
443
437
|
}
|
444
|
-
|
445
438
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
446
439
|
other = argv[argc-1];
|
447
440
|
|
@@ -462,7 +455,6 @@ static VALUE FUNCTION(rb_gsl_vector,set)(int argc, VALUE *argv, VALUE obj)
|
|
462
455
|
// assignment to v.subvector(...)
|
463
456
|
FUNCTION(rb_gsl_vector,set_subvector)(argc-1, argv, v, other);
|
464
457
|
}
|
465
|
-
|
466
458
|
return obj;
|
467
459
|
}
|
468
460
|
|
@@ -475,7 +467,7 @@ static VALUE FUNCTION(rb_gsl_vector,set_all)(VALUE obj, VALUE xx)
|
|
475
467
|
return obj;
|
476
468
|
}
|
477
469
|
|
478
|
-
VALUE FUNCTION(rb_gsl_vector,do_something)(VALUE obj, void (*func)(GSL_TYPE(gsl_vector)*))
|
470
|
+
VALUE FUNCTION(rb_gsl_vector,do_something)(VALUE obj, void (*func)(GSL_TYPE (gsl_vector)*))
|
479
471
|
{
|
480
472
|
GSL_TYPE(gsl_vector) *v = NULL;
|
481
473
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
@@ -511,7 +503,7 @@ static VALUE FUNCTION(rb_gsl_vector,reverse_each)(VALUE obj)
|
|
511
503
|
GSL_TYPE(gsl_vector) *v = NULL;
|
512
504
|
size_t i;
|
513
505
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
514
|
-
for (i = v->size-1
|
506
|
+
for (i = v->size-1;; i--) {
|
515
507
|
rb_yield(C_TO_VALUE2(FUNCTION(gsl_vector,get)(v, i)));
|
516
508
|
if (i == 0) break;
|
517
509
|
}
|
@@ -532,7 +524,7 @@ static VALUE FUNCTION(rb_gsl_vector,reverse_each_index)(VALUE obj)
|
|
532
524
|
GSL_TYPE(gsl_vector) *v = NULL;
|
533
525
|
size_t i;
|
534
526
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
535
|
-
for (i = v->size-1
|
527
|
+
for (i = v->size-1;; i--) {
|
536
528
|
rb_yield(INT2FIX(i));
|
537
529
|
if (i == 0) break;
|
538
530
|
}
|
@@ -663,9 +655,9 @@ static VALUE FUNCTION(rb_gsl_vector,trans)(VALUE obj)
|
|
663
655
|
return Data_Wrap_Struct(cgsl_vector_int_col, 0, gsl_vector_int_free, vnew);
|
664
656
|
else if (VECTOR_INT_COL_P(obj))
|
665
657
|
return Data_Wrap_Struct(cgsl_vector_int, 0, gsl_vector_int_free, vnew);
|
666
|
-
else rb_raise(rb_eTypeError,
|
667
|
-
|
668
|
-
|
658
|
+
else rb_raise(rb_eTypeError,
|
659
|
+
"wrong type %s (Vector::Int or Vector::Int::Col expected)",
|
660
|
+
rb_class2name(CLASS_OF(obj)));
|
669
661
|
#endif
|
670
662
|
return Qnil;
|
671
663
|
}
|
@@ -673,18 +665,18 @@ static VALUE FUNCTION(rb_gsl_vector,trans)(VALUE obj)
|
|
673
665
|
static VALUE FUNCTION(rb_gsl_vector,trans_bang)(VALUE obj)
|
674
666
|
{
|
675
667
|
#ifdef BASE_DOUBLE
|
676
|
-
if (CLASS_OF(obj) == cgsl_vector)
|
677
|
-
else if (CLASS_OF(obj) == cgsl_vector_col)
|
668
|
+
if (CLASS_OF(obj) == cgsl_vector) RBGSL_SET_CLASS(obj, cgsl_vector_col);
|
669
|
+
else if (CLASS_OF(obj) == cgsl_vector_col) RBGSL_SET_CLASS(obj, cgsl_vector);
|
678
670
|
else {
|
679
671
|
rb_raise(rb_eRuntimeError, "method trans! for %s is not permitted.",
|
680
|
-
|
681
|
-
}
|
672
|
+
rb_class2name(CLASS_OF(obj)));
|
673
|
+
}
|
682
674
|
#elif defined(BASE_INT)
|
683
|
-
if (CLASS_OF(obj) == cgsl_vector_int)
|
684
|
-
else if (CLASS_OF(obj) == cgsl_vector_int_col)
|
675
|
+
if (CLASS_OF(obj) == cgsl_vector_int) RBGSL_SET_CLASS(obj, cgsl_vector_int_col);
|
676
|
+
else if (CLASS_OF(obj) == cgsl_vector_int_col) RBGSL_SET_CLASS(obj, cgsl_vector_int);
|
685
677
|
else {
|
686
678
|
rb_raise(rb_eRuntimeError, "method trans! for %s is not permitted.",
|
687
|
-
|
679
|
+
rb_class2name(CLASS_OF(obj)));
|
688
680
|
}
|
689
681
|
#endif
|
690
682
|
return obj;
|
@@ -708,7 +700,7 @@ VALUE FUNCTION(rb_gsl_vector,uminus)(VALUE obj)
|
|
708
700
|
}
|
709
701
|
if (CLASS_OF(obj) == GSL_TYPE(cgsl_poly))
|
710
702
|
return Data_Wrap_Struct(GSL_TYPE(cgsl_poly), 0, FUNCTION(gsl_vector,free), vnew);
|
711
|
-
else
|
703
|
+
else
|
712
704
|
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
713
705
|
}
|
714
706
|
|
@@ -757,7 +749,7 @@ static VALUE FUNCTION(rb_gsl_vector,connect)(int argc, VALUE *argv, VALUE obj)
|
|
757
749
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
758
750
|
total += v->size;
|
759
751
|
}
|
760
|
-
for (i = 0; i < argc; i++) {
|
752
|
+
for (i = 0; (int) i < argc; i++) {
|
761
753
|
CHECK_VEC(argv[i]);
|
762
754
|
Data_Get_Struct(argv[i], GSL_TYPE(gsl_vector), v);
|
763
755
|
total += v->size;
|
@@ -769,7 +761,7 @@ static VALUE FUNCTION(rb_gsl_vector,connect)(int argc, VALUE *argv, VALUE obj)
|
|
769
761
|
memcpy(ptr, v->data, sizeof(BASE)*v->size);
|
770
762
|
ptr += v->size;
|
771
763
|
}
|
772
|
-
for (i = 0; i < argc; i++) {
|
764
|
+
for (i = 0; (int) i < argc; i++) {
|
773
765
|
Data_Get_Struct(argv[i], GSL_TYPE(gsl_vector), v);
|
774
766
|
memcpy(ptr, v->data, sizeof(BASE)*v->size);
|
775
767
|
ptr += v->size;
|
@@ -814,7 +806,7 @@ static VALUE FUNCTION(rb_gsl_vector,sgn)(VALUE obj)
|
|
814
806
|
x = FUNCTION(gsl_vector,get)(v, i);
|
815
807
|
FUNCTION(gsl_vector,set)(vnew, i, (BASE)(x>0 ? 1 : (x<0 ? -1 : 0)));
|
816
808
|
}
|
817
|
-
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
809
|
+
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
818
810
|
}
|
819
811
|
|
820
812
|
static VALUE FUNCTION(rb_gsl_vector,abs)(VALUE obj)
|
@@ -826,7 +818,7 @@ static VALUE FUNCTION(rb_gsl_vector,abs)(VALUE obj)
|
|
826
818
|
for (i = 0; i < v->size; i++) {
|
827
819
|
FUNCTION(gsl_vector,set)(vnew, i, (BASE) fabs(FUNCTION(gsl_vector,get)(v, i)));
|
828
820
|
}
|
829
|
-
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
821
|
+
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
830
822
|
}
|
831
823
|
|
832
824
|
static VALUE FUNCTION(rb_gsl_vector,square)(VALUE obj)
|
@@ -838,7 +830,7 @@ static VALUE FUNCTION(rb_gsl_vector,square)(VALUE obj)
|
|
838
830
|
for (i = 0; i < v->size; i++) {
|
839
831
|
FUNCTION(gsl_vector,set)(vnew, i, gsl_pow_2(FUNCTION(gsl_vector,get)(v, i)));
|
840
832
|
}
|
841
|
-
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
833
|
+
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
842
834
|
}
|
843
835
|
|
844
836
|
static VALUE FUNCTION(rb_gsl_vector,sqrt)(VALUE obj)
|
@@ -850,7 +842,7 @@ static VALUE FUNCTION(rb_gsl_vector,sqrt)(VALUE obj)
|
|
850
842
|
for (i = 0; i < v->size; i++) {
|
851
843
|
FUNCTION(gsl_vector,set)(vnew, i, sqrt(FUNCTION(gsl_vector,get)(v, i)));
|
852
844
|
}
|
853
|
-
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
845
|
+
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
854
846
|
}
|
855
847
|
|
856
848
|
static VALUE FUNCTION(rb_gsl_vector,memcpy)(VALUE obj, VALUE dest, VALUE src)
|
@@ -871,7 +863,7 @@ static VALUE FUNCTION(rb_gsl_vector,clone)(VALUE obj)
|
|
871
863
|
FUNCTION(gsl_vector,memcpy)(vnew, v);
|
872
864
|
if (!VEC_VIEW_P(obj))
|
873
865
|
return Data_Wrap_Struct(CLASS_OF(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
874
|
-
else
|
866
|
+
else
|
875
867
|
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
876
868
|
}
|
877
869
|
|
@@ -923,7 +915,7 @@ static VALUE FUNCTION(rb_gsl_vector,fprintf)(int argc, VALUE *argv, VALUE obj)
|
|
923
915
|
GSL_TYPE(gsl_vector) *h = NULL;
|
924
916
|
FILE *fp = NULL;
|
925
917
|
int status, flag = 0;
|
926
|
-
if (argc != 1 && argc != 2)
|
918
|
+
if (argc != 1 && argc != 2)
|
927
919
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 1 or 2)", argc);
|
928
920
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), h);
|
929
921
|
fp = rb_gsl_open_writefile(argv[0], &flag);
|
@@ -945,7 +937,7 @@ static VALUE FUNCTION(rb_gsl_vector,printf)(int argc, VALUE *argv, VALUE obj)
|
|
945
937
|
int status;
|
946
938
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), h);
|
947
939
|
if (argc == 1) {
|
948
|
-
if (TYPE(argv[0]) != T_STRING)
|
940
|
+
if (TYPE(argv[0]) != T_STRING)
|
949
941
|
rb_raise(rb_eTypeError, "String expected");
|
950
942
|
else
|
951
943
|
status = FUNCTION(gsl_vector,fprintf)(stdout, h, STR2CSTR(argv[0]));
|
@@ -978,7 +970,7 @@ VALUE FUNCTION(rb_gsl_vector,inner_product)(int argc, VALUE *argv, VALUE obj)
|
|
978
970
|
switch (TYPE(obj)) {
|
979
971
|
case T_MODULE: case T_CLASS: case T_OBJECT:
|
980
972
|
if (argc != 2) rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)",
|
981
|
-
|
973
|
+
argc);
|
982
974
|
CHECK_VEC(argv[0]);
|
983
975
|
CHECK_VEC(argv[1]);
|
984
976
|
Data_Get_Struct(argv[0], GSL_TYPE(gsl_vector), v);
|
@@ -986,7 +978,7 @@ VALUE FUNCTION(rb_gsl_vector,inner_product)(int argc, VALUE *argv, VALUE obj)
|
|
986
978
|
break;
|
987
979
|
default:
|
988
980
|
if (argc != 1) rb_raise(rb_eArgError, "wrong number of arguments (%d for 1)",
|
989
|
-
|
981
|
+
argc);
|
990
982
|
CHECK_VEC(argv[0]);
|
991
983
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
992
984
|
Data_Get_Struct(argv[0], GSL_TYPE(gsl_vector), v2);
|
@@ -1056,7 +1048,7 @@ static VALUE FUNCTION(rb_gsl_vector,equal)(int argc, VALUE *argv, VALUE obj)
|
|
1056
1048
|
case T_FLOAT:
|
1057
1049
|
x = NUM2DBL(other);
|
1058
1050
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v1);
|
1059
|
-
for (i = 0; i < v1->size; i++)
|
1051
|
+
for (i = 0; i < v1->size; i++)
|
1060
1052
|
if (fabs(x-FUNCTION(gsl_vector,get)(v1, i)) > eps) return Qfalse;
|
1061
1053
|
return Qtrue;
|
1062
1054
|
break;
|
@@ -1112,14 +1104,14 @@ static VALUE FUNCTION(rb_gsl_vector,graph)(int argc, VALUE *argv, VALUE obj)
|
|
1112
1104
|
if (TYPE(argv[1]) == T_STRING) {
|
1113
1105
|
make_graphcommand(command, argv[1]);
|
1114
1106
|
if (VEC_P(argv[0])) {
|
1115
|
-
|
1107
|
+
Data_Get_Struct(argv[0], GSL_TYPE(gsl_vector), x);
|
1116
1108
|
} else {
|
1117
|
-
|
1118
|
-
|
1109
|
+
rb_raise(rb_eTypeError, "argv[0] wrong type %s (String or Vector expected)",
|
1110
|
+
rb_class2name(CLASS_OF(argv[0])));
|
1119
1111
|
}
|
1120
1112
|
} else {
|
1121
|
-
rb_raise(rb_eTypeError, "argv[1] wrong type %s (String or Vector expected)",
|
1122
|
-
|
1113
|
+
rb_raise(rb_eTypeError, "argv[1] wrong type %s (String or Vector expected)",
|
1114
|
+
rb_class2name(CLASS_OF(argv[1])));
|
1123
1115
|
}
|
1124
1116
|
break;
|
1125
1117
|
default:
|
@@ -1129,7 +1121,7 @@ static VALUE FUNCTION(rb_gsl_vector,graph)(int argc, VALUE *argv, VALUE obj)
|
|
1129
1121
|
if (y == NULL) rb_raise(rb_eRuntimeError, "ydata not given");
|
1130
1122
|
fp = popen(command, "w");
|
1131
1123
|
for (i = 0; i < y->size; i++) {
|
1132
|
-
if (x == NULL)
|
1124
|
+
if (x == NULL)
|
1133
1125
|
fprintf(fp, "%d %e\n", (int) i, (double) FUNCTION(gsl_vector,get)(y, i));
|
1134
1126
|
else
|
1135
1127
|
fprintf(fp, "%e %e\n", (double) FUNCTION(gsl_vector,get)(x, i), (double) FUNCTION(gsl_vector,get)(y, i));
|
@@ -1169,14 +1161,14 @@ static VALUE FUNCTION(rb_gsl_vector,graph_step)(int argc, VALUE *argv, VALUE obj
|
|
1169
1161
|
if (TYPE(argv[1]) == T_STRING) {
|
1170
1162
|
make_graphcommand(command, argv[1]);
|
1171
1163
|
if (VEC_P(argv[0])) {
|
1172
|
-
|
1164
|
+
Data_Get_Struct(argv[0], GSL_TYPE(gsl_vector), x);
|
1173
1165
|
} else {
|
1174
|
-
|
1175
|
-
|
1166
|
+
rb_raise(rb_eTypeError, "argv[0] wrong type %s (String or Vector expected)",
|
1167
|
+
rb_class2name(CLASS_OF(argv[0])));
|
1176
1168
|
}
|
1177
1169
|
} else {
|
1178
|
-
rb_raise(rb_eTypeError, "argv[1] wrong type %s (String or Vector expected)",
|
1179
|
-
|
1170
|
+
rb_raise(rb_eTypeError, "argv[1] wrong type %s (String or Vector expected)",
|
1171
|
+
rb_class2name(CLASS_OF(argv[1])));
|
1180
1172
|
}
|
1181
1173
|
break;
|
1182
1174
|
default:
|
@@ -1188,19 +1180,19 @@ static VALUE FUNCTION(rb_gsl_vector,graph_step)(int argc, VALUE *argv, VALUE obj
|
|
1188
1180
|
for (i = 0; i < y->size; i++) {
|
1189
1181
|
if (x == NULL) {
|
1190
1182
|
fprintf(fp, "%d %e\n%d %e\n", (int) i, (double) FUNCTION(gsl_vector,get)(y, i),
|
1191
|
-
|
1183
|
+
(int) (i+1), (double) FUNCTION(gsl_vector,get)(y, i));
|
1192
1184
|
} else {
|
1193
|
-
if (i != y->size-1)
|
1194
|
-
|
1195
|
-
|
1196
|
-
|
1197
|
-
|
1185
|
+
if (i != y->size-1)
|
1186
|
+
fprintf(fp, "%e %e\n%e %e\n", (double) FUNCTION(gsl_vector,get)(x, i),
|
1187
|
+
(double) FUNCTION(gsl_vector,get)(y, i),
|
1188
|
+
(double) FUNCTION(gsl_vector,get)(x, i+1),
|
1189
|
+
(double) FUNCTION(gsl_vector,get)(y, i));
|
1198
1190
|
else
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1191
|
+
fprintf(fp, "%e %e\n%e %e",
|
1192
|
+
(double) FUNCTION(gsl_vector,get)(x, i),
|
1193
|
+
(double) FUNCTION(gsl_vector,get)(y, i),
|
1194
|
+
2.0*FUNCTION(gsl_vector,get)(x, i)-FUNCTION(gsl_vector,get)(x, i-1),
|
1195
|
+
(double) FUNCTION(gsl_vector,get)(y, i));
|
1204
1196
|
}
|
1205
1197
|
}
|
1206
1198
|
fflush(fp);
|
@@ -1232,7 +1224,7 @@ static VALUE FUNCTION(rb_gsl_vector,plot)(int argc, VALUE *argv, VALUE obj)
|
|
1232
1224
|
Data_Get_Struct(argv[0], GSL_TYPE(gsl_vector), x);
|
1233
1225
|
} else {
|
1234
1226
|
rb_raise(rb_eTypeError, "wrong argument type %s (String or Vector expected)",
|
1235
|
-
|
1227
|
+
rb_class2name(CLASS_OF(argv[0])));
|
1236
1228
|
}
|
1237
1229
|
break;
|
1238
1230
|
case 2:
|
@@ -1247,11 +1239,11 @@ static VALUE FUNCTION(rb_gsl_vector,plot)(int argc, VALUE *argv, VALUE obj)
|
|
1247
1239
|
}
|
1248
1240
|
if (y == NULL) rb_raise(rb_eRuntimeError, "ydata not given");
|
1249
1241
|
for (i = 0; i < y->size; i++) {
|
1250
|
-
if (x == NULL)
|
1242
|
+
if (x == NULL)
|
1251
1243
|
fprintf(fp, "%d %e\n", (int) i, (double) FUNCTION(gsl_vector,get)(y, i));
|
1252
1244
|
else
|
1253
|
-
fprintf(fp, "%e %e\n", (double) FUNCTION(gsl_vector,get)(x, i),
|
1254
|
-
|
1245
|
+
fprintf(fp, "%e %e\n", (double) FUNCTION(gsl_vector,get)(x, i),
|
1246
|
+
(double) FUNCTION(gsl_vector,get)(y, i));
|
1255
1247
|
}
|
1256
1248
|
fprintf(fp, "e\n");
|
1257
1249
|
fflush(fp);
|
@@ -1265,11 +1257,11 @@ void FUNCTION(gsl_vector,print)(const GSL_TYPE(gsl_vector) *v, VALUE klass)
|
|
1265
1257
|
size_t i;
|
1266
1258
|
printf("[ ");
|
1267
1259
|
if (klass == cgsl_vector_col || klass == cgsl_vector_col_view
|
1268
|
-
|
1269
|
-
|
1270
|
-
|
1260
|
+
|| klass == cgsl_vector_col_view_ro
|
1261
|
+
|| klass == cgsl_vector_int_col || klass == cgsl_vector_int_col_view
|
1262
|
+
|| klass == cgsl_vector_int_col_view_ro) {
|
1271
1263
|
printf(PRINTF_FORMAT, FUNCTION(gsl_vector,get)(v, 0));
|
1272
|
-
for (i = 1; i < v->size; i++) {
|
1264
|
+
for (i = 1; i < v->size; i++) {
|
1273
1265
|
printf(PRINTF_FORMAT, FUNCTION(gsl_vector,get)(v, i));
|
1274
1266
|
if (i != v->size-1) printf("\n");
|
1275
1267
|
}
|
@@ -1321,16 +1313,16 @@ VALUE FUNCTION(rb_gsl_vector,to_s)(VALUE obj)
|
|
1321
1313
|
strcpy(format2, format);
|
1322
1314
|
#else
|
1323
1315
|
strcpy(format, PRINTF_FORMAT);
|
1324
|
-
strcpy(format2, " "PRINTF_FORMAT);
|
1316
|
+
strcpy(format2, " " PRINTF_FORMAT);
|
1325
1317
|
#endif
|
1326
1318
|
for (i = 0; i < v->size; i++) {
|
1327
1319
|
if (i != 0) {
|
1328
|
-
|
1329
|
-
|
1320
|
+
strcpy(buf, " ");
|
1321
|
+
rb_str_cat(str, buf, strlen(buf));
|
1330
1322
|
}
|
1331
1323
|
x = FUNCTION(gsl_vector,get)(v, i);
|
1332
|
-
if (x < 0) sprintf(buf, format, x);
|
1333
|
-
else sprintf(buf, format2, x);
|
1324
|
+
if (x < 0) sprintf(buf, format, x);
|
1325
|
+
else sprintf(buf, format2, x);
|
1334
1326
|
if (i != v->size-1) strcat(buf, "\n");
|
1335
1327
|
rb_str_cat(str, buf, strlen(buf));
|
1336
1328
|
if (i >= 20 && i != v->size-1) {
|
@@ -1345,7 +1337,7 @@ VALUE FUNCTION(rb_gsl_vector,to_s)(VALUE obj)
|
|
1345
1337
|
for (i = 1; i < v->size; i++) {
|
1346
1338
|
sprintf(buf, PRINTF_FORMAT, FUNCTION(gsl_vector,get)(v, i));
|
1347
1339
|
rb_str_cat(str, buf, strlen(buf));
|
1348
|
-
if (i >= (55/dig) && i != v->size-1) {
|
1340
|
+
if ((int) i >= (55/dig) && i != v->size-1) {
|
1349
1341
|
strcpy(buf, "... ");
|
1350
1342
|
rb_str_cat(str, buf, strlen(buf));
|
1351
1343
|
break;
|
@@ -1409,7 +1401,7 @@ static VALUE FUNCTION(rb_gsl_vector,subvector_with_stride)(int argc, VALUE *argv
|
|
1409
1401
|
if(offset < 0) {
|
1410
1402
|
rb_raise(rb_eRangeError, "offset %d out of range", offset - (int)v->size);
|
1411
1403
|
}
|
1412
|
-
} else if(offset >= v->size) {
|
1404
|
+
} else if(offset >= (int) v->size) {
|
1413
1405
|
rb_raise(rb_eRangeError, "offset %d out of range", offset);
|
1414
1406
|
}
|
1415
1407
|
if(step == 0) {
|
@@ -1463,8 +1455,8 @@ static VALUE FUNCTION(rb_gsl_vector,matrix_view)(int argc, VALUE *argv, VALUE ob
|
|
1463
1455
|
break;
|
1464
1456
|
case 3:
|
1465
1457
|
mv = ALLOC(QUALIFIED_VIEW(gsl_matrix,view));
|
1466
|
-
*mv = FUNCTION(gsl_matrix,view_vector_with_tda)(v, FIX2INT(argv[0]), FIX2INT(argv[1]),
|
1467
|
-
|
1458
|
+
*mv = FUNCTION(gsl_matrix,view_vector_with_tda)(v, FIX2INT(argv[0]), FIX2INT(argv[1]),
|
1459
|
+
FIX2INT(argv[2]));
|
1468
1460
|
break;
|
1469
1461
|
default:
|
1470
1462
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 2 or 3)", argc);
|
@@ -1474,7 +1466,7 @@ static VALUE FUNCTION(rb_gsl_vector,matrix_view)(int argc, VALUE *argv, VALUE ob
|
|
1474
1466
|
}
|
1475
1467
|
|
1476
1468
|
static VALUE FUNCTION(rb_gsl_vector,matrix_view_with_tda)(VALUE obj, VALUE nn1, VALUE nn2,
|
1477
|
-
|
1469
|
+
VALUE tda)
|
1478
1470
|
{
|
1479
1471
|
GSL_TYPE(gsl_vector) *v = NULL;
|
1480
1472
|
QUALIFIED_VIEW(gsl_matrix,view) *mv = NULL;
|
@@ -1487,7 +1479,7 @@ static VALUE FUNCTION(rb_gsl_vector,matrix_view_with_tda)(VALUE obj, VALUE nn1,
|
|
1487
1479
|
void FUNCTION(mygsl_vector,shift)(GSL_TYPE(gsl_vector) *p, size_t n)
|
1488
1480
|
{
|
1489
1481
|
size_t i;
|
1490
|
-
for (i = n
|
1482
|
+
for (i = n;; i--) {
|
1491
1483
|
FUNCTION(gsl_vector,set)(p, i+1, FUNCTION(gsl_vector,get)(p, i));
|
1492
1484
|
if (i == 0) break;
|
1493
1485
|
}
|
@@ -1497,7 +1489,7 @@ void FUNCTION(mygsl_vector,shift)(GSL_TYPE(gsl_vector) *p, size_t n)
|
|
1497
1489
|
void FUNCTION(mygsl_vector,shift_scale2)(GSL_TYPE(gsl_vector) *p, size_t n)
|
1498
1490
|
{
|
1499
1491
|
size_t i;
|
1500
|
-
for (i = n
|
1492
|
+
for (i = n;; i--) {
|
1501
1493
|
FUNCTION(gsl_vector,set)(p, i+1, 2*FUNCTION(gsl_vector,get)(p, i));
|
1502
1494
|
if (i == 0) break;
|
1503
1495
|
}
|
@@ -1518,16 +1510,16 @@ VALUE FUNCTION(rb_gsl_vector,scale)(VALUE obj, VALUE x)
|
|
1518
1510
|
GSL_TYPE(gsl_vector) *v, *vnew;
|
1519
1511
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
1520
1512
|
vnew = FUNCTION(make_vector,clone)(v);
|
1521
|
-
FUNCTION(gsl_vector,scale)(vnew,
|
1513
|
+
FUNCTION(gsl_vector,scale)(vnew, NUMCONV2(x));
|
1522
1514
|
// return Data_Wrap_Struct(GSL_TYPE(cgsl_vector), 0, FUNCTION(gsl_vector,free), vnew);
|
1523
|
-
|
1515
|
+
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
1524
1516
|
}
|
1525
1517
|
|
1526
1518
|
VALUE FUNCTION(rb_gsl_vector,scale_bang)(VALUE obj, VALUE x)
|
1527
1519
|
{
|
1528
1520
|
GSL_TYPE(gsl_vector) *v = NULL;
|
1529
1521
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
1530
|
-
FUNCTION(gsl_vector,scale)(v,
|
1522
|
+
FUNCTION(gsl_vector,scale)(v, NUMCONV2(x));
|
1531
1523
|
return obj;
|
1532
1524
|
}
|
1533
1525
|
|
@@ -1536,7 +1528,7 @@ VALUE FUNCTION(rb_gsl_vector,add_constant)(VALUE obj, VALUE x)
|
|
1536
1528
|
GSL_TYPE(gsl_vector) *v, *vnew;
|
1537
1529
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
1538
1530
|
vnew = FUNCTION(make_vector,clone)(v);
|
1539
|
-
FUNCTION(gsl_vector,add_constant)(vnew,
|
1531
|
+
FUNCTION(gsl_vector,add_constant)(vnew, NUMCONV2(x));
|
1540
1532
|
// return Data_Wrap_Struct(GSL_TYPE(cgsl_vector), 0, FUNCTION(gsl_vector,free), vnew);
|
1541
1533
|
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
1542
1534
|
}
|
@@ -1545,7 +1537,7 @@ VALUE FUNCTION(rb_gsl_vector,add_constant_bang)(VALUE obj, VALUE x)
|
|
1545
1537
|
{
|
1546
1538
|
GSL_TYPE(gsl_vector) *v = NULL;
|
1547
1539
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
1548
|
-
FUNCTION(gsl_vector,add_constant)(v,
|
1540
|
+
FUNCTION(gsl_vector,add_constant)(v, NUMCONV2(x));
|
1549
1541
|
return obj;
|
1550
1542
|
}
|
1551
1543
|
|
@@ -1561,7 +1553,7 @@ QUALIFIED_VIEW(gsl_vector,view)* FUNCTION(rb_gsl_make_vector,view)(BASE *data, s
|
|
1561
1553
|
}
|
1562
1554
|
|
1563
1555
|
#ifdef HAVE_TENSOR_TENSOR_H
|
1564
|
-
#include "rb_gsl_tensor.h"
|
1556
|
+
#include "include/rb_gsl_tensor.h"
|
1565
1557
|
static VALUE FUNCTION(rb_gsl_vector,to_tensor)(int argc, VALUE *argv, VALUE obj)
|
1566
1558
|
{
|
1567
1559
|
GSL_TYPE(gsl_vector) *v = NULL;
|
@@ -1604,7 +1596,7 @@ static VALUE FUNCTION(rb_gsl_vector,to_gplot)(int argc, VALUE *argv, VALUE obj)
|
|
1604
1596
|
if (argc < 1) rb_raise(rb_eArgError, "no vectors given");
|
1605
1597
|
if (TYPE(argv[0]) == T_ARRAY) nv = RARRAY_LEN(argv[0]);
|
1606
1598
|
else nv = argc;
|
1607
|
-
vp = (GSL_TYPE(gsl_vector)**)
|
1599
|
+
vp = (GSL_TYPE(gsl_vector)**)ALLOC_N(GSL_TYPE(gsl_vector)*, nv);
|
1608
1600
|
istart = 0;
|
1609
1601
|
break;
|
1610
1602
|
default:
|
@@ -1612,18 +1604,18 @@ static VALUE FUNCTION(rb_gsl_vector,to_gplot)(int argc, VALUE *argv, VALUE obj)
|
|
1612
1604
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
1613
1605
|
if (argc >= 1 && TYPE(argv[0]) == T_ARRAY) nv = 1 + RARRAY_LEN(argv[0]);
|
1614
1606
|
else nv = argc + 1;
|
1615
|
-
vp = (GSL_TYPE(gsl_vector)**)
|
1607
|
+
vp = (GSL_TYPE(gsl_vector)**)ALLOC_N(GSL_TYPE(gsl_vector)*, nv);
|
1616
1608
|
vp[0] = v; len = v->size;
|
1617
1609
|
istart = 1;
|
1618
1610
|
break;
|
1619
1611
|
}
|
1620
|
-
for (i = 0; i < argc; i++) {
|
1612
|
+
for (i = 0; (int) i < argc; i++) {
|
1621
1613
|
if (TYPE(argv[0]) == T_ARRAY) tmp = rb_ary_entry(argv[0], i);
|
1622
1614
|
else tmp = argv[i];
|
1623
1615
|
CHECK_VEC(tmp);
|
1624
1616
|
Data_Get_Struct(tmp, GSL_TYPE(gsl_vector), v);
|
1625
1617
|
if (len == 0) len = v->size;
|
1626
|
-
if (len != v->size)
|
1618
|
+
if (len != v->size)
|
1627
1619
|
rb_raise(rb_eRuntimeError, "vectors must have equal lengths");
|
1628
1620
|
vp[i+istart] = v;
|
1629
1621
|
}
|
@@ -1679,7 +1671,7 @@ static VALUE FUNCTION(rb_gsl_vector,collect_bang)(VALUE obj)
|
|
1679
1671
|
|
1680
1672
|
/* Modified 2006/Sep/26 */
|
1681
1673
|
GSL_TYPE(gsl_vector)* FUNCTION(mygsl_vector,mul_matrix)(GSL_TYPE(gsl_vector) *v,
|
1682
|
-
|
1674
|
+
GSL_TYPE(gsl_matrix) *m)
|
1683
1675
|
{
|
1684
1676
|
GSL_TYPE(gsl_vector) *vnew;
|
1685
1677
|
size_t i, j;
|
@@ -1699,7 +1691,7 @@ GSL_TYPE(gsl_vector)* FUNCTION(mygsl_vector,mul_matrix)(GSL_TYPE(gsl_vector) *v,
|
|
1699
1691
|
void FUNCTION(mygsl_vector,to_m_circulant)(GSL_TYPE(gsl_matrix) *m, GSL_TYPE(gsl_vector) *v)
|
1700
1692
|
{
|
1701
1693
|
size_t i, j;
|
1702
|
-
for (i = v->size-1
|
1694
|
+
for (i = v->size-1;; i--) {
|
1703
1695
|
for (j = 0; j < v->size; j++) {
|
1704
1696
|
if (j <= i) FUNCTION(gsl_matrix,set)(m, i, j, FUNCTION(gsl_vector,get)(v, v->size-1-i+j));
|
1705
1697
|
else FUNCTION(gsl_matrix,set)(m, i, j, FUNCTION(gsl_vector,get)(v, j-i-1));
|
@@ -1719,7 +1711,7 @@ static VALUE FUNCTION(rb_gsl_vector,to_m_circulant)(VALUE obj)
|
|
1719
1711
|
}
|
1720
1712
|
|
1721
1713
|
static void FUNCTION(mygsl_vector,indgen)(GSL_TYPE(gsl_vector) *v,
|
1722
|
-
|
1714
|
+
BASE start, BASE step)
|
1723
1715
|
{
|
1724
1716
|
size_t k = 0;
|
1725
1717
|
BASE i;
|
@@ -1738,10 +1730,10 @@ static VALUE FUNCTION(rb_gsl_vector,indgen_singleton)(int argc, VALUE *argv, VAL
|
|
1738
1730
|
switch (argc) {
|
1739
1731
|
case 3:
|
1740
1732
|
step = NUMCONV2(argv[2]);
|
1741
|
-
|
1733
|
+
/* no break */
|
1742
1734
|
case 2:
|
1743
1735
|
start = NUMCONV2(argv[1]);
|
1744
|
-
|
1736
|
+
/* no break */
|
1745
1737
|
case 1:
|
1746
1738
|
n = NUM2INT(argv[0]);
|
1747
1739
|
break;
|
@@ -1761,7 +1753,7 @@ static VALUE FUNCTION(rb_gsl_vector,indgen)(int argc, VALUE *argv, VALUE obj)
|
|
1761
1753
|
switch (argc) {
|
1762
1754
|
case 2:
|
1763
1755
|
step = NUMCONV2(argv[1]);
|
1764
|
-
|
1756
|
+
/* no break */
|
1765
1757
|
case 1:
|
1766
1758
|
start = NUMCONV2(argv[0]);
|
1767
1759
|
break;
|
@@ -1784,7 +1776,7 @@ static VALUE FUNCTION(rb_gsl_vector,indgen_bang)(int argc, VALUE *argv, VALUE ob
|
|
1784
1776
|
switch (argc) {
|
1785
1777
|
case 2:
|
1786
1778
|
step = NUMCONV2(argv[1]);
|
1787
|
-
|
1779
|
+
/* no break */
|
1788
1780
|
case 1:
|
1789
1781
|
start = NUMCONV2(argv[0]);
|
1790
1782
|
break;
|
@@ -1910,7 +1902,7 @@ static VALUE FUNCTION(rb_gsl_vector,histogram)(int argc, VALUE *argv, VALUE obj)
|
|
1910
1902
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
1911
1903
|
switch (argc) {
|
1912
1904
|
case 1:
|
1913
|
-
if (rb_obj_is_kind_of(argv[0], rb_cRange))
|
1905
|
+
if (rb_obj_is_kind_of(argv[0], rb_cRange))
|
1914
1906
|
argv[0] = rb_gsl_range2ary(argv[0]);
|
1915
1907
|
switch (TYPE(argv[0])) {
|
1916
1908
|
case T_FIXNUM:
|
@@ -1943,7 +1935,7 @@ static VALUE FUNCTION(rb_gsl_vector,histogram)(int argc, VALUE *argv, VALUE obj)
|
|
1943
1935
|
break;
|
1944
1936
|
default:
|
1945
1937
|
rb_raise(rb_eTypeError, "wrong argument type %s (Array expected)",
|
1946
|
-
|
1938
|
+
rb_class2name(CLASS_OF(argv[1])));
|
1947
1939
|
break;
|
1948
1940
|
}
|
1949
1941
|
h = gsl_histogram_alloc(n);
|
@@ -1990,56 +1982,56 @@ static VALUE FUNCTION(rb_gsl_vector,concat)(VALUE obj, VALUE other)
|
|
1990
1982
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
1991
1983
|
|
1992
1984
|
switch(TYPE(other)) {
|
1993
|
-
|
1994
|
-
|
1995
|
-
|
1996
|
-
|
1997
|
-
|
1998
|
-
|
1999
|
-
|
2000
|
-
|
1985
|
+
case T_FIXNUM:
|
1986
|
+
case T_BIGNUM:
|
1987
|
+
case T_FLOAT:
|
1988
|
+
vnew = FUNCTION(gsl_vector,alloc)(v->size + 1);
|
1989
|
+
vv = FUNCTION(gsl_vector,subvector)(vnew, 0, v->size);
|
1990
|
+
FUNCTION(gsl_vector,memcpy)(&vv.vector, v);
|
1991
|
+
FUNCTION(gsl_vector,set)(vnew, v->size, NUMCONV2(other));
|
1992
|
+
break;
|
2001
1993
|
|
2002
|
-
|
2003
|
-
|
1994
|
+
case T_ARRAY:
|
1995
|
+
size2 = RARRAY_LEN(other);
|
1996
|
+
vnew = FUNCTION(gsl_vector,alloc)(v->size + size2);
|
1997
|
+
vv = FUNCTION(gsl_vector,subvector)(vnew, 0, v->size);
|
1998
|
+
FUNCTION(gsl_vector,memcpy)(&vv.vector, v);
|
1999
|
+
for (i = 0; i < size2; i++) {
|
2000
|
+
x = rb_ary_entry(other, i);
|
2001
|
+
FUNCTION(gsl_vector,set)(vnew, v->size + i, NUMCONV2(x));
|
2002
|
+
}
|
2003
|
+
break;
|
2004
|
+
|
2005
|
+
default:
|
2006
|
+
if(rb_obj_is_kind_of(other, rb_cRange)) {
|
2007
|
+
FUNCTION(get_range,beg_en_n)(other, &beg, &end, &size2, &step);
|
2004
2008
|
vnew = FUNCTION(gsl_vector,alloc)(v->size + size2);
|
2005
2009
|
vv = FUNCTION(gsl_vector,subvector)(vnew, 0, v->size);
|
2006
2010
|
FUNCTION(gsl_vector,memcpy)(&vv.vector, v);
|
2007
2011
|
for (i = 0; i < size2; i++) {
|
2008
|
-
|
2009
|
-
|
2010
|
-
}
|
2011
|
-
break;
|
2012
|
-
|
2013
|
-
default:
|
2014
|
-
if(rb_obj_is_kind_of(other, rb_cRange)) {
|
2015
|
-
FUNCTION(get_range,beg_en_n)(other, &beg, &end, &size2, &step);
|
2016
|
-
vnew = FUNCTION(gsl_vector,alloc)(v->size + size2);
|
2017
|
-
vv = FUNCTION(gsl_vector,subvector)(vnew, 0, v->size);
|
2018
|
-
FUNCTION(gsl_vector,memcpy)(&vv.vector, v);
|
2019
|
-
for (i = 0; i < size2; i++) {
|
2020
|
-
FUNCTION(gsl_vector,set)(vnew, v->size + i, beg);
|
2021
|
-
beg += step;
|
2022
|
-
}
|
2023
|
-
} else if (rb_obj_is_kind_of(other, GSL_TYPE(cgsl_vector))) {
|
2024
|
-
Data_Get_Struct(other, GSL_TYPE(gsl_vector), v2);
|
2025
|
-
size2 = v2->size;
|
2026
|
-
vnew = FUNCTION(gsl_vector,alloc)(v->size + size2);
|
2027
|
-
vv = FUNCTION(gsl_vector,subvector)(vnew, 0, v->size);
|
2028
|
-
FUNCTION(gsl_vector,memcpy)(&vv.vector, v);
|
2029
|
-
vv = FUNCTION(gsl_vector,subvector)(vnew, v->size, size2);
|
2030
|
-
FUNCTION(gsl_vector,memcpy)(&vv.vector, v2);
|
2031
|
-
} else {
|
2032
|
-
rb_raise(rb_eTypeError, "wrong argument type %s (Array, Numeric, Range, or %s expected)",
|
2033
|
-
rb_class2name(CLASS_OF(other)), rb_class2name(GSL_TYPE(cgsl_vector)));
|
2012
|
+
FUNCTION(gsl_vector,set)(vnew, v->size + i, beg);
|
2013
|
+
beg += step;
|
2034
2014
|
}
|
2035
|
-
|
2015
|
+
} else if (rb_obj_is_kind_of(other, GSL_TYPE(cgsl_vector))) {
|
2016
|
+
Data_Get_Struct(other, GSL_TYPE(gsl_vector), v2);
|
2017
|
+
size2 = v2->size;
|
2018
|
+
vnew = FUNCTION(gsl_vector,alloc)(v->size + size2);
|
2019
|
+
vv = FUNCTION(gsl_vector,subvector)(vnew, 0, v->size);
|
2020
|
+
FUNCTION(gsl_vector,memcpy)(&vv.vector, v);
|
2021
|
+
vv = FUNCTION(gsl_vector,subvector)(vnew, v->size, size2);
|
2022
|
+
FUNCTION(gsl_vector,memcpy)(&vv.vector, v2);
|
2023
|
+
} else {
|
2024
|
+
rb_raise(rb_eTypeError, "wrong argument type %s (Array, Numeric, Range, or %s expected)",
|
2025
|
+
rb_class2name(CLASS_OF(other)), rb_class2name(GSL_TYPE(cgsl_vector)));
|
2026
|
+
}
|
2027
|
+
break;
|
2036
2028
|
}
|
2037
2029
|
|
2038
|
-
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
2030
|
+
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
2039
2031
|
}
|
2040
2032
|
|
2041
2033
|
void FUNCTION(mygsl_vector,diff)(GSL_TYPE(gsl_vector) *vdst,
|
2042
|
-
|
2034
|
+
GSL_TYPE(gsl_vector) *vsrc, size_t n)
|
2043
2035
|
{
|
2044
2036
|
BASE a, b;
|
2045
2037
|
int coef, fac, nn, ff;
|
@@ -2090,7 +2082,7 @@ static VALUE FUNCTION(rb_gsl_vector,test)(VALUE obj, int (*f)(const double))
|
|
2090
2082
|
size_t i;
|
2091
2083
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
2092
2084
|
vi = gsl_vector_int_alloc(v->size);
|
2093
|
-
for (i = 0; i < v->size; i++)
|
2085
|
+
for (i = 0; i < v->size; i++)
|
2094
2086
|
gsl_vector_int_set(vi, i, (*f)(FUNCTION(gsl_vector,get)(v, i)));
|
2095
2087
|
return Data_Wrap_Struct(cgsl_vector_int, 0, gsl_vector_int_free, vi);
|
2096
2088
|
}
|
@@ -2157,7 +2149,7 @@ static VALUE FUNCTION(rb_gsl_vector,delete_at)(VALUE obj, VALUE ii)
|
|
2157
2149
|
if (i2 < 0) {
|
2158
2150
|
i2 += v->size;
|
2159
2151
|
}
|
2160
|
-
if (i2 < 0 || i2 > v->size-1) return Qnil;
|
2152
|
+
if (i2 < 0 || i2 > (int) (v->size-1)) return Qnil;
|
2161
2153
|
i = (size_t) i2;
|
2162
2154
|
x = FUNCTION(gsl_vector,get)(v, i);
|
2163
2155
|
memmove(v->data+i, v->data+i+1, sizeof(BASE)*(v->size-1-i));
|
@@ -2209,7 +2201,7 @@ static VALUE FUNCTION(rb_gsl_vector,delete)(VALUE obj, VALUE yy)
|
|
2209
2201
|
}
|
2210
2202
|
}
|
2211
2203
|
v->size -= count;
|
2212
|
-
return count ? y : Qnil;
|
2204
|
+
return count ? (VALUE) y : Qnil;
|
2213
2205
|
}
|
2214
2206
|
|
2215
2207
|
/* singleton method */
|
@@ -2231,21 +2223,23 @@ static VALUE FUNCTION(rb_gsl_vector,filescan)(VALUE klass, VALUE file)
|
|
2231
2223
|
Check_Type(file, T_STRING);
|
2232
2224
|
strcpy(filename, STR2CSTR(file));
|
2233
2225
|
sprintf(buf, "sed '/^#/d' %s | wc", filename);
|
2234
|
-
if ((fp = popen(buf, "r")) == NULL)
|
2226
|
+
if ((fp = popen(buf, "r")) == NULL)
|
2235
2227
|
rb_raise(rb_eIOError, "popen failed.");
|
2236
|
-
fgets(buf, 1024, fp)
|
2228
|
+
if (fgets(buf, 1024, fp) == NULL)
|
2229
|
+
rb_sys_fail(0);
|
2237
2230
|
pclose(fp);
|
2238
2231
|
sscanf(buf, "%d", &nn);
|
2239
2232
|
lines = (size_t) nn; /* vector length */
|
2240
|
-
if ((fp = fopen(filename, "r")) == NULL)
|
2233
|
+
if ((fp = fopen(filename, "r")) == NULL)
|
2241
2234
|
rb_raise(rb_eIOError, "cannot open file %s.", filename);
|
2242
2235
|
while (1) {
|
2243
|
-
|
2244
|
-
|
2245
|
-
|
2246
|
-
|
2236
|
+
if (fgets(buf, 1024, fp) == NULL) /* read the first line to count number of columns */
|
2237
|
+
rb_sys_fail(0);
|
2238
|
+
if (buf[0] == '#') continue;
|
2239
|
+
else break;
|
2240
|
+
}
|
2247
2241
|
n = count_columns(buf); /* number of vectors to be created */
|
2248
|
-
x = (GSL_TYPE(gsl_vector)**)
|
2242
|
+
x = (GSL_TYPE(gsl_vector)**)xmalloc(sizeof(GSL_TYPE(gsl_vector)*)*n);
|
2249
2243
|
ary = rb_ary_new2(n);
|
2250
2244
|
for (j = 0; j < n; j++) {
|
2251
2245
|
x[j] = FUNCTION(gsl_vector,alloc)(lines);
|
@@ -2253,10 +2247,11 @@ static VALUE FUNCTION(rb_gsl_vector,filescan)(VALUE klass, VALUE file)
|
|
2253
2247
|
}
|
2254
2248
|
rewind(fp);
|
2255
2249
|
for (i = 0, ii = 0; ii < lines; i++) {
|
2256
|
-
|
2257
|
-
|
2258
|
-
|
2259
|
-
|
2250
|
+
pos = ftell(fp);
|
2251
|
+
if (fgets(buf, 1024, fp) == NULL)
|
2252
|
+
rb_sys_fail(0);
|
2253
|
+
if (buf[0] == '#') continue;
|
2254
|
+
fseek(fp, pos, SEEK_SET);
|
2260
2255
|
for (j = 0, jj = 0; jj < n; j++) {
|
2261
2256
|
k = fscanf(fp, FORMAT_TMP, &val);
|
2262
2257
|
if (k != 1) continue;
|
@@ -2270,9 +2265,9 @@ static VALUE FUNCTION(rb_gsl_vector,filescan)(VALUE klass, VALUE file)
|
|
2270
2265
|
}
|
2271
2266
|
#undef FORMAT_TMP
|
2272
2267
|
|
2273
|
-
static int FUNCTION(gsl_vector,eq)(const GSL_TYPE(gsl_vector) *a,
|
2274
|
-
|
2275
|
-
|
2268
|
+
static int FUNCTION(gsl_vector,eq)(const GSL_TYPE(gsl_vector) *a,
|
2269
|
+
const GSL_TYPE(gsl_vector) *b,
|
2270
|
+
gsl_block_uchar *c)
|
2276
2271
|
{
|
2277
2272
|
size_t i;
|
2278
2273
|
BASE x, y;
|
@@ -2286,9 +2281,9 @@ static int FUNCTION(gsl_vector,eq)(const GSL_TYPE(gsl_vector) *a,
|
|
2286
2281
|
return 0;
|
2287
2282
|
}
|
2288
2283
|
|
2289
|
-
static int FUNCTION(gsl_vector,ne)(const GSL_TYPE(gsl_vector) *a,
|
2290
|
-
|
2291
|
-
|
2284
|
+
static int FUNCTION(gsl_vector,ne)(const GSL_TYPE(gsl_vector) *a,
|
2285
|
+
const GSL_TYPE(gsl_vector) *b,
|
2286
|
+
gsl_block_uchar *c)
|
2292
2287
|
{
|
2293
2288
|
size_t i;
|
2294
2289
|
BASE x, y;
|
@@ -2302,9 +2297,9 @@ static int FUNCTION(gsl_vector,ne)(const GSL_TYPE(gsl_vector) *a,
|
|
2302
2297
|
return 0;
|
2303
2298
|
}
|
2304
2299
|
|
2305
|
-
static int FUNCTION(gsl_vector,gt)(const GSL_TYPE(gsl_vector) *a,
|
2306
|
-
|
2307
|
-
|
2300
|
+
static int FUNCTION(gsl_vector,gt)(const GSL_TYPE(gsl_vector) *a,
|
2301
|
+
const GSL_TYPE(gsl_vector) *b,
|
2302
|
+
gsl_block_uchar *c)
|
2308
2303
|
{
|
2309
2304
|
size_t i;
|
2310
2305
|
BASE x, y;
|
@@ -2318,9 +2313,9 @@ static int FUNCTION(gsl_vector,gt)(const GSL_TYPE(gsl_vector) *a,
|
|
2318
2313
|
return 0;
|
2319
2314
|
}
|
2320
2315
|
|
2321
|
-
static int FUNCTION(gsl_vector,ge)(const GSL_TYPE(gsl_vector) *a,
|
2322
|
-
|
2323
|
-
|
2316
|
+
static int FUNCTION(gsl_vector,ge)(const GSL_TYPE(gsl_vector) *a,
|
2317
|
+
const GSL_TYPE(gsl_vector) *b,
|
2318
|
+
gsl_block_uchar *c)
|
2324
2319
|
{
|
2325
2320
|
size_t i;
|
2326
2321
|
BASE x, y;
|
@@ -2334,9 +2329,9 @@ static int FUNCTION(gsl_vector,ge)(const GSL_TYPE(gsl_vector) *a,
|
|
2334
2329
|
return 0;
|
2335
2330
|
}
|
2336
2331
|
|
2337
|
-
static int FUNCTION(gsl_vector,lt)(const GSL_TYPE(gsl_vector) *a,
|
2338
|
-
|
2339
|
-
|
2332
|
+
static int FUNCTION(gsl_vector,lt)(const GSL_TYPE(gsl_vector) *a,
|
2333
|
+
const GSL_TYPE(gsl_vector) *b,
|
2334
|
+
gsl_block_uchar *c)
|
2340
2335
|
{
|
2341
2336
|
size_t i;
|
2342
2337
|
BASE x, y;
|
@@ -2350,9 +2345,9 @@ static int FUNCTION(gsl_vector,lt)(const GSL_TYPE(gsl_vector) *a,
|
|
2350
2345
|
return 0;
|
2351
2346
|
}
|
2352
2347
|
|
2353
|
-
static int FUNCTION(gsl_vector,le)(const GSL_TYPE(gsl_vector) *a,
|
2354
|
-
|
2355
|
-
|
2348
|
+
static int FUNCTION(gsl_vector,le)(const GSL_TYPE(gsl_vector) *a,
|
2349
|
+
const GSL_TYPE(gsl_vector) *b,
|
2350
|
+
gsl_block_uchar *c)
|
2356
2351
|
{
|
2357
2352
|
size_t i;
|
2358
2353
|
BASE x, y;
|
@@ -2366,9 +2361,9 @@ static int FUNCTION(gsl_vector,le)(const GSL_TYPE(gsl_vector) *a,
|
|
2366
2361
|
return 0;
|
2367
2362
|
}
|
2368
2363
|
|
2369
|
-
static int FUNCTION(gsl_vector,and)(const GSL_TYPE(gsl_vector) *a,
|
2370
|
-
|
2371
|
-
|
2364
|
+
static int FUNCTION(gsl_vector,and)(const GSL_TYPE(gsl_vector) *a,
|
2365
|
+
const GSL_TYPE(gsl_vector) *b,
|
2366
|
+
gsl_block_uchar *c)
|
2372
2367
|
{
|
2373
2368
|
size_t i;
|
2374
2369
|
BASE x, y;
|
@@ -2382,9 +2377,9 @@ static int FUNCTION(gsl_vector,and)(const GSL_TYPE(gsl_vector) *a,
|
|
2382
2377
|
return 0;
|
2383
2378
|
}
|
2384
2379
|
|
2385
|
-
static int FUNCTION(gsl_vector,or)(const GSL_TYPE(gsl_vector) *a,
|
2386
|
-
|
2387
|
-
|
2380
|
+
static int FUNCTION(gsl_vector,or)(const GSL_TYPE(gsl_vector) *a,
|
2381
|
+
const GSL_TYPE(gsl_vector) *b,
|
2382
|
+
gsl_block_uchar *c)
|
2388
2383
|
{
|
2389
2384
|
size_t i;
|
2390
2385
|
BASE x, y;
|
@@ -2398,9 +2393,9 @@ static int FUNCTION(gsl_vector,or)(const GSL_TYPE(gsl_vector) *a,
|
|
2398
2393
|
return 0;
|
2399
2394
|
}
|
2400
2395
|
|
2401
|
-
static int FUNCTION(gsl_vector,xor)(const GSL_TYPE(gsl_vector) *a,
|
2402
|
-
|
2403
|
-
|
2396
|
+
static int FUNCTION(gsl_vector,xor)(const GSL_TYPE(gsl_vector) *a,
|
2397
|
+
const GSL_TYPE(gsl_vector) *b,
|
2398
|
+
gsl_block_uchar *c)
|
2404
2399
|
{
|
2405
2400
|
size_t i;
|
2406
2401
|
BASE x, y;
|
@@ -2414,8 +2409,8 @@ static int FUNCTION(gsl_vector,xor)(const GSL_TYPE(gsl_vector) *a,
|
|
2414
2409
|
return 0;
|
2415
2410
|
}
|
2416
2411
|
|
2417
|
-
static int FUNCTION(gsl_vector,eq2)(const GSL_TYPE(gsl_vector) *a,
|
2418
|
-
|
2412
|
+
static int FUNCTION(gsl_vector,eq2)(const GSL_TYPE(gsl_vector) *a,
|
2413
|
+
BASE b, gsl_block_uchar *c)
|
2419
2414
|
{
|
2420
2415
|
size_t i;
|
2421
2416
|
BASE x, y;
|
@@ -2428,9 +2423,9 @@ static int FUNCTION(gsl_vector,eq2)(const GSL_TYPE(gsl_vector) *a,
|
|
2428
2423
|
return 0;
|
2429
2424
|
}
|
2430
2425
|
|
2431
|
-
static int FUNCTION(gsl_vector,ne2)(const GSL_TYPE(gsl_vector) *a,
|
2432
|
-
|
2433
|
-
|
2426
|
+
static int FUNCTION(gsl_vector,ne2)(const GSL_TYPE(gsl_vector) *a,
|
2427
|
+
BASE b,
|
2428
|
+
gsl_block_uchar *c)
|
2434
2429
|
{
|
2435
2430
|
size_t i;
|
2436
2431
|
BASE x, y;
|
@@ -2443,9 +2438,9 @@ static int FUNCTION(gsl_vector,ne2)(const GSL_TYPE(gsl_vector) *a,
|
|
2443
2438
|
return 0;
|
2444
2439
|
}
|
2445
2440
|
|
2446
|
-
static int FUNCTION(gsl_vector,gt2)(const GSL_TYPE(gsl_vector) *a,
|
2447
|
-
|
2448
|
-
|
2441
|
+
static int FUNCTION(gsl_vector,gt2)(const GSL_TYPE(gsl_vector) *a,
|
2442
|
+
BASE b,
|
2443
|
+
gsl_block_uchar *c)
|
2449
2444
|
{
|
2450
2445
|
size_t i;
|
2451
2446
|
BASE x, y;
|
@@ -2458,9 +2453,9 @@ static int FUNCTION(gsl_vector,gt2)(const GSL_TYPE(gsl_vector) *a,
|
|
2458
2453
|
return 0;
|
2459
2454
|
}
|
2460
2455
|
|
2461
|
-
static int FUNCTION(gsl_vector,ge2)(const GSL_TYPE(gsl_vector) *a,
|
2462
|
-
|
2463
|
-
|
2456
|
+
static int FUNCTION(gsl_vector,ge2)(const GSL_TYPE(gsl_vector) *a,
|
2457
|
+
BASE b,
|
2458
|
+
gsl_block_uchar *c)
|
2464
2459
|
{
|
2465
2460
|
size_t i;
|
2466
2461
|
BASE x, y;
|
@@ -2473,9 +2468,9 @@ static int FUNCTION(gsl_vector,ge2)(const GSL_TYPE(gsl_vector) *a,
|
|
2473
2468
|
return 0;
|
2474
2469
|
}
|
2475
2470
|
|
2476
|
-
static int FUNCTION(gsl_vector,lt2)(const GSL_TYPE(gsl_vector) *a,
|
2477
|
-
|
2478
|
-
|
2471
|
+
static int FUNCTION(gsl_vector,lt2)(const GSL_TYPE(gsl_vector) *a,
|
2472
|
+
BASE b,
|
2473
|
+
gsl_block_uchar *c)
|
2479
2474
|
{
|
2480
2475
|
size_t i;
|
2481
2476
|
BASE x, y;
|
@@ -2488,9 +2483,9 @@ static int FUNCTION(gsl_vector,lt2)(const GSL_TYPE(gsl_vector) *a,
|
|
2488
2483
|
return 0;
|
2489
2484
|
}
|
2490
2485
|
|
2491
|
-
static int FUNCTION(gsl_vector,le2)(const GSL_TYPE(gsl_vector) *a,
|
2492
|
-
|
2493
|
-
|
2486
|
+
static int FUNCTION(gsl_vector,le2)(const GSL_TYPE(gsl_vector) *a,
|
2487
|
+
BASE b,
|
2488
|
+
gsl_block_uchar *c)
|
2494
2489
|
{
|
2495
2490
|
size_t i;
|
2496
2491
|
BASE x, y;
|
@@ -2503,9 +2498,9 @@ static int FUNCTION(gsl_vector,le2)(const GSL_TYPE(gsl_vector) *a,
|
|
2503
2498
|
return 0;
|
2504
2499
|
}
|
2505
2500
|
|
2506
|
-
static int FUNCTION(gsl_vector,and2)(const GSL_TYPE(gsl_vector) *a,
|
2507
|
-
|
2508
|
-
|
2501
|
+
static int FUNCTION(gsl_vector,and2)(const GSL_TYPE(gsl_vector) *a,
|
2502
|
+
BASE b,
|
2503
|
+
gsl_block_uchar *c)
|
2509
2504
|
{
|
2510
2505
|
size_t i;
|
2511
2506
|
BASE x, y;
|
@@ -2518,9 +2513,9 @@ static int FUNCTION(gsl_vector,and2)(const GSL_TYPE(gsl_vector) *a,
|
|
2518
2513
|
return 0;
|
2519
2514
|
}
|
2520
2515
|
|
2521
|
-
static int FUNCTION(gsl_vector,or2)(const GSL_TYPE(gsl_vector) *a,
|
2522
|
-
|
2523
|
-
|
2516
|
+
static int FUNCTION(gsl_vector,or2)(const GSL_TYPE(gsl_vector) *a,
|
2517
|
+
BASE b,
|
2518
|
+
gsl_block_uchar *c)
|
2524
2519
|
{
|
2525
2520
|
size_t i;
|
2526
2521
|
BASE x, y;
|
@@ -2533,9 +2528,9 @@ static int FUNCTION(gsl_vector,or2)(const GSL_TYPE(gsl_vector) *a,
|
|
2533
2528
|
return 0;
|
2534
2529
|
}
|
2535
2530
|
|
2536
|
-
static int FUNCTION(gsl_vector,xor2)(const GSL_TYPE(gsl_vector) *a,
|
2537
|
-
|
2538
|
-
|
2531
|
+
static int FUNCTION(gsl_vector,xor2)(const GSL_TYPE(gsl_vector) *a,
|
2532
|
+
BASE b,
|
2533
|
+
gsl_block_uchar *c)
|
2539
2534
|
{
|
2540
2535
|
size_t i;
|
2541
2536
|
BASE x, y;
|
@@ -2550,12 +2545,12 @@ static int FUNCTION(gsl_vector,xor2)(const GSL_TYPE(gsl_vector) *a,
|
|
2550
2545
|
|
2551
2546
|
|
2552
2547
|
static VALUE FUNCTION(rb_gsl_vector,compare)(VALUE aa, VALUE bb,
|
2553
|
-
|
2554
|
-
|
2555
|
-
|
2556
|
-
|
2557
|
-
|
2558
|
-
|
2548
|
+
int (*cmp)(const GSL_TYPE (gsl_vector)*,
|
2549
|
+
const GSL_TYPE (gsl_vector)*,
|
2550
|
+
gsl_block_uchar*),
|
2551
|
+
int (*cmp2)(const GSL_TYPE (gsl_vector)*,
|
2552
|
+
BASE,
|
2553
|
+
gsl_block_uchar*))
|
2559
2554
|
{
|
2560
2555
|
GSL_TYPE(gsl_vector) *a, *b;
|
2561
2556
|
/* gsl_vector_int *c;*/
|
@@ -2565,9 +2560,9 @@ static VALUE FUNCTION(rb_gsl_vector,compare)(VALUE aa, VALUE bb,
|
|
2565
2560
|
c = gsl_block_uchar_alloc(a->size);
|
2566
2561
|
if (VEC_P(bb)) {
|
2567
2562
|
Data_Get_Struct(bb, GSL_TYPE(gsl_vector), b);
|
2568
|
-
if (a->size != b->size)
|
2569
|
-
rb_raise(rb_eRuntimeError, "Vector size mismatch, %d and %d", (int) a->size,
|
2570
|
-
|
2563
|
+
if (a->size != b->size)
|
2564
|
+
rb_raise(rb_eRuntimeError, "Vector size mismatch, %d and %d", (int) a->size,
|
2565
|
+
(int) b->size);
|
2571
2566
|
/*status =*/ (*cmp)(a, b, c);
|
2572
2567
|
} else {
|
2573
2568
|
/*status =*/ (*cmp2)(a, NUMCONV(bb), c);
|
@@ -2578,55 +2573,55 @@ static VALUE FUNCTION(rb_gsl_vector,compare)(VALUE aa, VALUE bb,
|
|
2578
2573
|
static VALUE FUNCTION(rb_gsl_vector,eq)(VALUE aa, VALUE bb)
|
2579
2574
|
{
|
2580
2575
|
return FUNCTION(rb_gsl_vector,compare)(aa, bb, FUNCTION(gsl_vector,eq),
|
2581
|
-
|
2576
|
+
FUNCTION(gsl_vector,eq2));
|
2582
2577
|
}
|
2583
2578
|
|
2584
2579
|
static VALUE FUNCTION(rb_gsl_vector,ne)(VALUE aa, VALUE bb)
|
2585
2580
|
{
|
2586
2581
|
return FUNCTION(rb_gsl_vector,compare)(aa, bb, FUNCTION(gsl_vector,ne),
|
2587
|
-
|
2582
|
+
FUNCTION(gsl_vector,ne2));
|
2588
2583
|
}
|
2589
2584
|
|
2590
2585
|
static VALUE FUNCTION(rb_gsl_vector,gt)(VALUE aa, VALUE bb)
|
2591
2586
|
{
|
2592
2587
|
return FUNCTION(rb_gsl_vector,compare)(aa, bb, FUNCTION(gsl_vector,gt),
|
2593
|
-
|
2588
|
+
FUNCTION(gsl_vector,gt2));
|
2594
2589
|
}
|
2595
2590
|
|
2596
2591
|
static VALUE FUNCTION(rb_gsl_vector,ge)(VALUE aa, VALUE bb)
|
2597
2592
|
{
|
2598
2593
|
return FUNCTION(rb_gsl_vector,compare)(aa, bb, FUNCTION(gsl_vector,ge),
|
2599
|
-
|
2594
|
+
FUNCTION(gsl_vector,ge2));
|
2600
2595
|
}
|
2601
2596
|
|
2602
2597
|
static VALUE FUNCTION(rb_gsl_vector,lt)(VALUE aa, VALUE bb)
|
2603
2598
|
{
|
2604
2599
|
return FUNCTION(rb_gsl_vector,compare)(aa, bb, FUNCTION(gsl_vector,lt),
|
2605
|
-
|
2600
|
+
FUNCTION(gsl_vector,lt2));
|
2606
2601
|
}
|
2607
2602
|
|
2608
2603
|
static VALUE FUNCTION(rb_gsl_vector,le)(VALUE aa, VALUE bb)
|
2609
2604
|
{
|
2610
2605
|
return FUNCTION(rb_gsl_vector,compare)(aa, bb, FUNCTION(gsl_vector,le),
|
2611
|
-
|
2606
|
+
FUNCTION(gsl_vector,le2));
|
2612
2607
|
}
|
2613
2608
|
|
2614
2609
|
static VALUE FUNCTION(rb_gsl_vector,and)(VALUE aa, VALUE bb)
|
2615
2610
|
{
|
2616
2611
|
return FUNCTION(rb_gsl_vector,compare)(aa, bb, FUNCTION(gsl_vector,and),
|
2617
|
-
|
2612
|
+
FUNCTION(gsl_vector,and2));
|
2618
2613
|
}
|
2619
2614
|
|
2620
2615
|
static VALUE FUNCTION(rb_gsl_vector,or)(VALUE aa, VALUE bb)
|
2621
2616
|
{
|
2622
2617
|
return FUNCTION(rb_gsl_vector,compare)(aa, bb, FUNCTION(gsl_vector,or),
|
2623
|
-
|
2618
|
+
FUNCTION(gsl_vector,or2));
|
2624
2619
|
}
|
2625
2620
|
|
2626
2621
|
static VALUE FUNCTION(rb_gsl_vector,xor)(VALUE aa, VALUE bb)
|
2627
2622
|
{
|
2628
2623
|
return FUNCTION(rb_gsl_vector,compare)(aa, bb, FUNCTION(gsl_vector,xor),
|
2629
|
-
|
2624
|
+
FUNCTION(gsl_vector,xor2));
|
2630
2625
|
}
|
2631
2626
|
|
2632
2627
|
static VALUE FUNCTION(rb_gsl_vector,not)(VALUE obj)
|
@@ -2664,11 +2659,11 @@ static VALUE FUNCTION(rb_gsl_vector,any2)(VALUE obj)
|
|
2664
2659
|
|
2665
2660
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
2666
2661
|
if (rb_block_given_p()) {
|
2667
|
-
for (i = 0; i < v->size; i++)
|
2662
|
+
for (i = 0; i < v->size; i++)
|
2668
2663
|
if (rb_yield(C_TO_VALUE(FUNCTION(gsl_vector,get)(v, i)))) return Qtrue;
|
2669
2664
|
return Qfalse;
|
2670
2665
|
} else {
|
2671
|
-
for (i = 0; i < v->size; i++)
|
2666
|
+
for (i = 0; i < v->size; i++)
|
2672
2667
|
if (v->data[i*v->stride]) return Qtrue;
|
2673
2668
|
return Qfalse;
|
2674
2669
|
}
|
@@ -2681,11 +2676,11 @@ static VALUE FUNCTION(rb_gsl_vector,none)(VALUE obj)
|
|
2681
2676
|
|
2682
2677
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
2683
2678
|
if (rb_block_given_p()) {
|
2684
|
-
for (i = 0; i < v->size; i++)
|
2679
|
+
for (i = 0; i < v->size; i++)
|
2685
2680
|
if (rb_yield(C_TO_VALUE(FUNCTION(gsl_vector,get)(v, i)))) return Qfalse;
|
2686
2681
|
return Qtrue;
|
2687
2682
|
} else {
|
2688
|
-
for (i = 0; i < v->size; i++)
|
2683
|
+
for (i = 0; i < v->size; i++)
|
2689
2684
|
if (v->data[i*v->stride]) return Qfalse;
|
2690
2685
|
return Qtrue;
|
2691
2686
|
}
|
@@ -2698,11 +2693,11 @@ static VALUE FUNCTION(rb_gsl_vector,all)(VALUE obj)
|
|
2698
2693
|
|
2699
2694
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
2700
2695
|
if (rb_block_given_p()) {
|
2701
|
-
for (i = 0; i < v->size; i++)
|
2696
|
+
for (i = 0; i < v->size; i++)
|
2702
2697
|
if (!rb_yield(C_TO_VALUE(FUNCTION(gsl_vector,get)(v, i)))) return Qfalse;
|
2703
2698
|
return Qtrue;
|
2704
2699
|
} else {
|
2705
|
-
for (i = 0; i < v->size; i++)
|
2700
|
+
for (i = 0; i < v->size; i++)
|
2706
2701
|
if (!v->data[i*v->stride]) return Qfalse;
|
2707
2702
|
return Qtrue;
|
2708
2703
|
}
|
@@ -2720,10 +2715,10 @@ static VALUE FUNCTION(rb_gsl_vector,where)(VALUE obj)
|
|
2720
2715
|
btmp = gsl_block_uchar_alloc(v->size);
|
2721
2716
|
for (i = 0; i < v->size; i++) {
|
2722
2717
|
if (rb_yield(C_TO_VALUE(FUNCTION(gsl_vector,get)(v, i)))) {
|
2723
|
-
|
2724
|
-
|
2718
|
+
btmp->data[i] = 1;
|
2719
|
+
n++;
|
2725
2720
|
} else {
|
2726
|
-
|
2721
|
+
btmp->data[i] = 0;
|
2727
2722
|
}
|
2728
2723
|
} /* for */
|
2729
2724
|
} else { /* block is not given */
|
@@ -2755,10 +2750,10 @@ static VALUE FUNCTION(rb_gsl_vector,where2)(VALUE obj)
|
|
2755
2750
|
btmp = gsl_block_uchar_alloc(v->size);
|
2756
2751
|
for (i = 0; i < v->size; i++) {
|
2757
2752
|
if (rb_yield(C_TO_VALUE(FUNCTION(gsl_vector,get)(v, i)))) {
|
2758
|
-
|
2759
|
-
|
2753
|
+
btmp->data[i] = 1;
|
2754
|
+
n++;
|
2760
2755
|
} else {
|
2761
|
-
|
2756
|
+
btmp->data[i] = 0;
|
2762
2757
|
}
|
2763
2758
|
} /* for */
|
2764
2759
|
} else { /* block is not given */
|
@@ -2769,11 +2764,11 @@ static VALUE FUNCTION(rb_gsl_vector,where2)(VALUE obj)
|
|
2769
2764
|
v2 = gsl_permutation_calloc(v->size); /* calloc() initializes v2 */
|
2770
2765
|
vv1 = Qnil;
|
2771
2766
|
vv2 = Data_Wrap_Struct(cgsl_index, 0, gsl_permutation_free, v2);
|
2772
|
-
} else if (v->size-n == 0) {
|
2767
|
+
} else if (v->size-n == 0) {
|
2773
2768
|
v1 = gsl_permutation_calloc(n); /* calloc() initializes v1 */
|
2774
|
-
vv1 = Data_Wrap_Struct(cgsl_index, 0, gsl_permutation_free, v1);
|
2769
|
+
vv1 = Data_Wrap_Struct(cgsl_index, 0, gsl_permutation_free, v1);
|
2775
2770
|
vv2 = Qnil;
|
2776
|
-
} else {
|
2771
|
+
} else {
|
2777
2772
|
/* same case as 'where' */
|
2778
2773
|
v1 = gsl_permutation_alloc(n);
|
2779
2774
|
v2 = gsl_permutation_alloc(v->size-n);
|
@@ -2788,8 +2783,8 @@ static VALUE FUNCTION(rb_gsl_vector,where2)(VALUE obj)
|
|
2788
2783
|
return rb_ary_new3(2, vv1, vv2);
|
2789
2784
|
}
|
2790
2785
|
|
2791
|
-
static VALUE FUNCTION(rb_gsl_vector,op_inplace)(VALUE vv1, VALUE vv2,
|
2792
|
-
|
2786
|
+
static VALUE FUNCTION(rb_gsl_vector,op_inplace)(VALUE vv1, VALUE vv2,
|
2787
|
+
int (*f)(GSL_TYPE (gsl_vector)*, const GSL_TYPE (gsl_vector)*))
|
2793
2788
|
{
|
2794
2789
|
GSL_TYPE(gsl_vector) *v1, *v2;
|
2795
2790
|
Data_Get_Struct(vv1, GSL_TYPE(gsl_vector), v1);
|
@@ -2867,32 +2862,31 @@ static VALUE FUNCTION(rb_gsl_vector,zip)(int argc, VALUE *argv, VALUE obj)
|
|
2867
2862
|
argv2 = argv;
|
2868
2863
|
} else {
|
2869
2864
|
if (argc < 1) rb_raise(rb_eArgError, "Too few arguments.");
|
2870
|
-
Data_Get_Struct(argv[0], GSL_TYPE(gsl_vector), v0);
|
2865
|
+
Data_Get_Struct(argv[0], GSL_TYPE(gsl_vector), v0);
|
2871
2866
|
argc2 = argc - 1;
|
2872
2867
|
argv2 = argv + 1;
|
2873
2868
|
}
|
2874
|
-
for (i = 0; i < argc2; i++) {
|
2869
|
+
for (i = 0; (int) i < argc2; i++) {
|
2875
2870
|
CHECK_VEC(argv2[i]);
|
2876
2871
|
}
|
2877
|
-
vp = (GSL_TYPE(gsl_vector)**)
|
2878
|
-
for (i = 0; i < argc2; i++) {
|
2872
|
+
vp = (GSL_TYPE(gsl_vector)**)malloc(sizeof(GSL_TYPE(gsl_vector)**));
|
2873
|
+
for (i = 0; (int) i < argc2; i++) {
|
2879
2874
|
Data_Get_Struct(argv2[i], GSL_TYPE(gsl_vector), vp[i]);
|
2880
2875
|
}
|
2881
2876
|
ary = rb_ary_new2(v0->size);
|
2882
2877
|
for (i = 0; i < v0->size; i++) {
|
2883
2878
|
vnew = FUNCTION(gsl_vector,alloc)(argc2 + 1);
|
2884
2879
|
FUNCTION(gsl_vector,set)(vnew, 0, FUNCTION(gsl_vector,get)(v0, i));
|
2885
|
-
for (j = 0; j < argc2; j++) {
|
2880
|
+
for (j = 0; (int) j < argc2; j++) {
|
2886
2881
|
if (i < vp[j]->size) {
|
2887
|
-
|
2882
|
+
FUNCTION(gsl_vector,set)(vnew, j+1, FUNCTION(gsl_vector,get)(vp[j], i));
|
2888
2883
|
} else {
|
2889
|
-
|
2884
|
+
FUNCTION(gsl_vector,set)(vnew, j+1, 0.0);
|
2890
2885
|
}
|
2891
2886
|
}
|
2892
2887
|
rb_ary_store(ary, i, Data_Wrap_Struct(GSL_TYPE(cgsl_vector), 0, FUNCTION(gsl_vector,free), vnew));
|
2893
2888
|
}
|
2894
|
-
|
2895
|
-
free((GSL_TYPE(gsl_vector)**) vp);
|
2889
|
+
free((GSL_TYPE(gsl_vector)**)vp);
|
2896
2890
|
return ary;
|
2897
2891
|
}
|
2898
2892
|
|
@@ -2956,17 +2950,16 @@ static VALUE FUNCTION(rb_gsl_vector,cumprod)(VALUE obj)
|
|
2956
2950
|
return Data_Wrap_Struct(VEC_ROW_COL(obj), 0, FUNCTION(gsl_vector,free), vnew);
|
2957
2951
|
}
|
2958
2952
|
|
2959
|
-
#ifdef GSL_1_9_LATER
|
2960
2953
|
static VALUE FUNCTION(rb_gsl_vector,property)(VALUE obj,
|
2961
|
-
|
2954
|
+
int (*f)(const GSL_TYPE (gsl_vector) *)) {
|
2962
2955
|
GSL_TYPE(gsl_vector) *v;
|
2963
2956
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
2964
|
-
return INT2FIX((*f)(v));
|
2957
|
+
return INT2FIX((*f)(v));
|
2965
2958
|
}
|
2966
2959
|
|
2967
2960
|
static VALUE FUNCTION(rb_gsl_vector,property2)(VALUE obj,
|
2968
|
-
|
2969
|
-
GSL_TYPE(gsl_vector) *v;
|
2961
|
+
int (*f)(const GSL_TYPE (gsl_vector) *)) {
|
2962
|
+
GSL_TYPE(gsl_vector) *v;
|
2970
2963
|
Data_Get_Struct(obj, GSL_TYPE(gsl_vector), v);
|
2971
2964
|
if ((*f)(v)) return Qtrue;
|
2972
2965
|
else return Qfalse;
|
@@ -2978,19 +2971,17 @@ static VALUE FUNCTION(rb_gsl_vector,ispos)(VALUE obj)
|
|
2978
2971
|
}
|
2979
2972
|
static VALUE FUNCTION(rb_gsl_vector,ispos2)(VALUE obj)
|
2980
2973
|
{
|
2981
|
-
return FUNCTION(rb_gsl_vector,property2)(obj, FUNCTION(gsl_vector, ispos));
|
2974
|
+
return FUNCTION(rb_gsl_vector,property2)(obj, FUNCTION(gsl_vector, ispos));
|
2982
2975
|
}
|
2983
2976
|
static VALUE FUNCTION(rb_gsl_vector,isneg)(VALUE obj)
|
2984
2977
|
{
|
2985
|
-
return FUNCTION(rb_gsl_vector,property)(obj, FUNCTION(gsl_vector, isneg));
|
2978
|
+
return FUNCTION(rb_gsl_vector,property)(obj, FUNCTION(gsl_vector, isneg));
|
2986
2979
|
}
|
2987
2980
|
static VALUE FUNCTION(rb_gsl_vector,isneg2)(VALUE obj)
|
2988
2981
|
{
|
2989
|
-
return FUNCTION(rb_gsl_vector,property2)(obj, FUNCTION(gsl_vector, isneg));
|
2982
|
+
return FUNCTION(rb_gsl_vector,property2)(obj, FUNCTION(gsl_vector, isneg));
|
2990
2983
|
}
|
2991
|
-
#endif
|
2992
2984
|
|
2993
|
-
#ifdef GSL_1_10_LATER
|
2994
2985
|
static VALUE FUNCTION(rb_gsl_vector,isnonneg)(VALUE obj)
|
2995
2986
|
{
|
2996
2987
|
return FUNCTION(rb_gsl_vector,property)(obj, FUNCTION(gsl_vector, isnonneg));
|
@@ -2998,19 +2989,18 @@ static VALUE FUNCTION(rb_gsl_vector,isnonneg)(VALUE obj)
|
|
2998
2989
|
static VALUE FUNCTION(rb_gsl_vector,isnonneg2)(VALUE obj)
|
2999
2990
|
{
|
3000
2991
|
return FUNCTION(rb_gsl_vector,property2)(obj, FUNCTION(gsl_vector, isnonneg));
|
3001
|
-
}
|
3002
|
-
#endif
|
2992
|
+
}
|
3003
2993
|
|
3004
2994
|
void FUNCTION(Init_gsl_vector,init)(VALUE module)
|
3005
2995
|
{
|
3006
|
-
/* rb_define_singleton_method(GSL_TYPE(cgsl_vector), "new",
|
2996
|
+
/* rb_define_singleton_method(GSL_TYPE(cgsl_vector), "new",
|
3007
2997
|
FUNCTION(rb_gsl_vector,new), -1);*/
|
3008
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "[]",
|
3009
|
-
|
3010
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "alloc",
|
3011
|
-
|
3012
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "calloc",
|
3013
|
-
|
2998
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "[]",
|
2999
|
+
FUNCTION(rb_gsl_vector,new), -1);
|
3000
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "alloc",
|
3001
|
+
FUNCTION(rb_gsl_vector,new), -1);
|
3002
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "calloc",
|
3003
|
+
FUNCTION(rb_gsl_vector,calloc), 1);
|
3014
3004
|
|
3015
3005
|
/*****/
|
3016
3006
|
rb_define_method(GSL_TYPE(cgsl_vector), "get", FUNCTION(rb_gsl_vector,get), -1);
|
@@ -3079,86 +3069,86 @@ void FUNCTION(Init_gsl_vector,init)(VALUE module)
|
|
3079
3069
|
rb_define_method(GSL_TYPE(cgsl_vector), "cumsum", FUNCTION(rb_gsl_vector,cumsum), 0);
|
3080
3070
|
rb_define_method(GSL_TYPE(cgsl_vector), "cumprod", FUNCTION(rb_gsl_vector,cumprod), 0);
|
3081
3071
|
|
3082
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "connect",
|
3083
|
-
|
3084
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "connect",
|
3085
|
-
|
3072
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "connect",
|
3073
|
+
FUNCTION(rb_gsl_vector,connect), -1);
|
3074
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "connect",
|
3075
|
+
FUNCTION(rb_gsl_vector,connect), -1);
|
3086
3076
|
|
3087
3077
|
|
3088
3078
|
rb_define_method(GSL_TYPE(cgsl_vector), "sgn", FUNCTION(rb_gsl_vector,sgn), 0);
|
3089
3079
|
rb_define_alias(GSL_TYPE(cgsl_vector), "signum", "sgn");
|
3090
3080
|
rb_define_method(GSL_TYPE(cgsl_vector), "abs", FUNCTION(rb_gsl_vector,abs), 0);
|
3091
3081
|
rb_define_alias(GSL_TYPE(cgsl_vector), "fabs", "abs");
|
3092
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "square",
|
3093
|
-
|
3082
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "square",
|
3083
|
+
FUNCTION(rb_gsl_vector,square), 0);
|
3094
3084
|
rb_define_alias(GSL_TYPE(cgsl_vector), "abs2", "square");
|
3095
3085
|
rb_define_method(GSL_TYPE(cgsl_vector), "sqrt", FUNCTION(rb_gsl_vector,sqrt), 0);
|
3096
3086
|
|
3097
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "memcpy",
|
3098
|
-
|
3099
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "clone",
|
3100
|
-
|
3087
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "memcpy",
|
3088
|
+
FUNCTION(rb_gsl_vector,memcpy), 2);
|
3089
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "clone",
|
3090
|
+
FUNCTION(rb_gsl_vector,clone), 0);
|
3101
3091
|
rb_define_alias(GSL_TYPE(cgsl_vector), "duplicate", "clone");
|
3102
3092
|
rb_define_alias(GSL_TYPE(cgsl_vector), "dup", "clone");
|
3103
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "swap",
|
3104
|
-
|
3105
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "swap_elements",
|
3106
|
-
|
3107
|
-
|
3108
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "fwrite",
|
3109
|
-
|
3110
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "fread",
|
3111
|
-
|
3112
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "fprintf",
|
3113
|
-
|
3114
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "printf",
|
3115
|
-
|
3116
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "fscanf",
|
3117
|
-
|
3093
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "swap",
|
3094
|
+
FUNCTION(rb_gsl_vector,swap), 2);
|
3095
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "swap_elements",
|
3096
|
+
FUNCTION(rb_gsl_vector,swap_elements), 2);
|
3097
|
+
|
3098
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "fwrite",
|
3099
|
+
FUNCTION(rb_gsl_vector,fwrite), 1);
|
3100
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "fread",
|
3101
|
+
FUNCTION(rb_gsl_vector,fread), 1);
|
3102
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "fprintf",
|
3103
|
+
FUNCTION(rb_gsl_vector,fprintf), -1);
|
3104
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "printf",
|
3105
|
+
FUNCTION(rb_gsl_vector,printf), -1);
|
3106
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "fscanf",
|
3107
|
+
FUNCTION(rb_gsl_vector,fscanf), 1);
|
3118
3108
|
|
3119
3109
|
/* 2.Aug.2004 */
|
3120
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "inner_product",
|
3121
|
-
|
3122
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "dot",
|
3123
|
-
|
3110
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "inner_product",
|
3111
|
+
FUNCTION(rb_gsl_vector,inner_product), -1);
|
3112
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "dot",
|
3113
|
+
FUNCTION(rb_gsl_vector,inner_product), -1);
|
3124
3114
|
rb_define_method(GSL_TYPE(cgsl_vector), "inner_product",
|
3125
|
-
|
3115
|
+
FUNCTION(rb_gsl_vector,inner_product), -1);
|
3126
3116
|
rb_define_alias(GSL_TYPE(cgsl_vector), "dot", "inner_product");
|
3127
3117
|
|
3128
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "equal?",
|
3129
|
-
|
3118
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "equal?",
|
3119
|
+
FUNCTION(rb_gsl_vector,equal), -1);
|
3130
3120
|
rb_define_alias(GSL_TYPE(cgsl_vector), "==", "equal?");
|
3131
3121
|
|
3132
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "to_poly",
|
3133
|
-
|
3122
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "to_poly",
|
3123
|
+
FUNCTION(rb_gsl_vector,to_poly), 0);
|
3134
3124
|
|
3135
3125
|
/*****/
|
3136
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "graph",
|
3137
|
-
|
3138
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "graph_step",
|
3139
|
-
|
3140
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "plot",
|
3141
|
-
|
3126
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "graph",
|
3127
|
+
FUNCTION(rb_gsl_vector,graph), -1);
|
3128
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "graph_step",
|
3129
|
+
FUNCTION(rb_gsl_vector,graph_step), -1);
|
3130
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "plot",
|
3131
|
+
FUNCTION(rb_gsl_vector,plot), -1);
|
3142
3132
|
|
3143
3133
|
rb_define_method(GSL_TYPE(cgsl_vector), "print",
|
3144
|
-
|
3145
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "inspect",
|
3146
|
-
|
3147
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "to_s",
|
3148
|
-
|
3134
|
+
FUNCTION(rb_gsl_vector,print), 0);
|
3135
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "inspect",
|
3136
|
+
FUNCTION(rb_gsl_vector,inspect), 0);
|
3137
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "to_s",
|
3138
|
+
FUNCTION(rb_gsl_vector,to_s), 0);
|
3149
3139
|
|
3150
3140
|
/*****/
|
3151
3141
|
rb_define_method(GSL_TYPE(cgsl_vector), "subvector",
|
3152
|
-
|
3142
|
+
FUNCTION(rb_gsl_vector,subvector), -1);
|
3153
3143
|
rb_define_alias(GSL_TYPE(cgsl_vector), "view", "subvector");
|
3154
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "subvector_with_stride",
|
3155
|
-
|
3144
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "subvector_with_stride",
|
3145
|
+
FUNCTION(rb_gsl_vector,subvector_with_stride), -1);
|
3156
3146
|
rb_define_alias(GSL_TYPE(cgsl_vector), "view_with_stride", "subvector_with_stride");
|
3157
3147
|
|
3158
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "matrix_view",
|
3159
|
-
|
3160
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "matrix_view_with_tda",
|
3161
|
-
|
3148
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "matrix_view",
|
3149
|
+
FUNCTION(rb_gsl_vector,matrix_view), -1);
|
3150
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "matrix_view_with_tda",
|
3151
|
+
FUNCTION(rb_gsl_vector,matrix_view_with_tda), 3);
|
3162
3152
|
|
3163
3153
|
#ifdef BASE_DOUBLE
|
3164
3154
|
rb_undef_method(cgsl_vector_view_ro, "set");
|
@@ -3172,106 +3162,106 @@ void FUNCTION(Init_gsl_vector,init)(VALUE module)
|
|
3172
3162
|
rb_undef_method(cgsl_vector_int_col_view_ro, "[]=");
|
3173
3163
|
#endif
|
3174
3164
|
|
3175
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "scale",
|
3176
|
-
|
3177
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "scale!",
|
3178
|
-
|
3179
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "add_constant",
|
3180
|
-
|
3165
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "scale",
|
3166
|
+
FUNCTION(rb_gsl_vector,scale), 1);
|
3167
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "scale!",
|
3168
|
+
FUNCTION(rb_gsl_vector,scale_bang), 1);
|
3169
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "add_constant",
|
3170
|
+
FUNCTION(rb_gsl_vector,add_constant), 1);
|
3181
3171
|
rb_define_alias(GSL_TYPE(cgsl_vector), "add_const", "add_constant");
|
3182
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "add_constant!",
|
3183
|
-
|
3172
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "add_constant!",
|
3173
|
+
FUNCTION(rb_gsl_vector,add_constant_bang), 1);
|
3184
3174
|
rb_define_alias(GSL_TYPE(cgsl_vector), "add_const!", "add_constant!");
|
3185
3175
|
|
3186
3176
|
#ifdef HAVE_TENSOR_TENSOR_H
|
3187
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "to_tensor",
|
3188
|
-
|
3177
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "to_tensor",
|
3178
|
+
FUNCTION(rb_gsl_vector,to_tensor), -1);
|
3189
3179
|
#endif
|
3190
3180
|
|
3191
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "to_gplot",
|
3192
|
-
|
3193
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "to_gsplot",
|
3194
|
-
|
3195
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "to_gplot",
|
3196
|
-
|
3181
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "to_gplot",
|
3182
|
+
FUNCTION(rb_gsl_vector,to_gplot), -1);
|
3183
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "to_gsplot",
|
3184
|
+
FUNCTION(rb_gsl_vector,to_gplot), -1);
|
3185
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "to_gplot",
|
3186
|
+
FUNCTION(rb_gsl_vector,to_gplot), -1);
|
3197
3187
|
rb_define_alias(GSL_TYPE(cgsl_vector), "to_gsplot", "to_gplot");
|
3198
3188
|
|
3199
3189
|
/*****/
|
3200
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "collect",
|
3201
|
-
|
3202
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "collect!",
|
3203
|
-
|
3190
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "collect",
|
3191
|
+
FUNCTION(rb_gsl_vector,collect), 0);
|
3192
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "collect!",
|
3193
|
+
FUNCTION(rb_gsl_vector,collect_bang), 0);
|
3204
3194
|
rb_define_alias(GSL_TYPE(cgsl_vector), "map", "collect");
|
3205
3195
|
rb_define_alias(GSL_TYPE(cgsl_vector), "map!", "collect!");
|
3206
3196
|
|
3207
3197
|
rb_define_method(GSL_TYPE(cgsl_vector), "to_m", FUNCTION(rb_gsl_vector,to_m), 2);
|
3208
3198
|
rb_define_alias(GSL_TYPE(cgsl_vector), "to_matrix", "to_m");
|
3209
3199
|
rb_define_alias(GSL_TYPE(cgsl_vector), "reshape", "to_m");
|
3210
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "to_m_diagonal",
|
3211
|
-
|
3212
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "block",
|
3213
|
-
|
3214
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "to_m_circulant",
|
3215
|
-
|
3216
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "indgen",
|
3217
|
-
|
3218
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "indgen",
|
3219
|
-
|
3220
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "indgen!",
|
3221
|
-
|
3200
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "to_m_diagonal",
|
3201
|
+
FUNCTION(rb_gsl_vector,to_m_diagonal), 0);
|
3202
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "block",
|
3203
|
+
FUNCTION(rb_gsl_vector,block), 0);
|
3204
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "to_m_circulant",
|
3205
|
+
FUNCTION(rb_gsl_vector,to_m_circulant), 0);
|
3206
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "indgen",
|
3207
|
+
FUNCTION(rb_gsl_vector,indgen_singleton), -1);
|
3208
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "indgen",
|
3209
|
+
FUNCTION(rb_gsl_vector,indgen), -1);
|
3210
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "indgen!",
|
3211
|
+
FUNCTION(rb_gsl_vector,indgen_bang), -1);
|
3222
3212
|
/*****/
|
3223
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "sort!",
|
3224
|
-
|
3225
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "sort",
|
3226
|
-
|
3227
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "sort_index",
|
3228
|
-
|
3213
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "sort!",
|
3214
|
+
GSL_TYPE(rb_gsl_sort_vector), 0);
|
3215
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "sort",
|
3216
|
+
GSL_TYPE(rb_gsl_sort_vector2), 0);
|
3217
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "sort_index",
|
3218
|
+
FUNCTION(rb_gsl_sort_vector,index), 0);
|
3229
3219
|
rb_define_method(GSL_TYPE(cgsl_vector), "sort_smallest",
|
3230
|
-
|
3220
|
+
FUNCTION(rb_gsl_sort_vector,smallest), 1);
|
3231
3221
|
rb_define_alias(GSL_TYPE(cgsl_vector), "smallest", "sort_smallest");
|
3232
3222
|
rb_define_method(GSL_TYPE(cgsl_vector), "sort_largest",
|
3233
|
-
|
3223
|
+
FUNCTION(rb_gsl_sort_vector,largest), 1);
|
3234
3224
|
rb_define_alias(GSL_TYPE(cgsl_vector), "largest", "sort_largest");
|
3235
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "sort_smallest_index",
|
3236
|
-
|
3225
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "sort_smallest_index",
|
3226
|
+
FUNCTION(rb_gsl_sort_vector,smallest_index), 1);
|
3237
3227
|
rb_define_alias(GSL_TYPE(cgsl_vector), "smallest_index", "sort_smallest_index");
|
3238
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "sort_largest_index",
|
3239
|
-
|
3228
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "sort_largest_index",
|
3229
|
+
FUNCTION(rb_gsl_sort_vector,largest_index), 1);
|
3240
3230
|
rb_define_alias(GSL_TYPE(cgsl_vector), "largest_index", "sort_largest_index");
|
3241
3231
|
|
3242
3232
|
/*****/
|
3243
3233
|
rb_define_method(GSL_TYPE(cgsl_vector), "histogram",
|
3244
|
-
|
3245
|
-
|
3246
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "last",
|
3247
|
-
|
3248
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "first",
|
3249
|
-
|
3250
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "concat",
|
3251
|
-
|
3252
|
-
|
3253
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "diff",
|
3254
|
-
|
3255
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "isnan",
|
3256
|
-
|
3257
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "isinf",
|
3258
|
-
|
3259
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "finite",
|
3260
|
-
|
3261
|
-
|
3262
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "isnan?",
|
3263
|
-
|
3264
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "isinf?",
|
3265
|
-
|
3266
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "finite?",
|
3267
|
-
|
3268
|
-
|
3269
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "delete_at",
|
3270
|
-
|
3271
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "delete_if",
|
3272
|
-
|
3273
|
-
rb_define_method(GSL_TYPE(cgsl_vector), "delete",
|
3274
|
-
|
3234
|
+
FUNCTION(rb_gsl_vector,histogram), -1);
|
3235
|
+
|
3236
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "last",
|
3237
|
+
FUNCTION(rb_gsl_vector,last), 0);
|
3238
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "first",
|
3239
|
+
FUNCTION(rb_gsl_vector,first), 0);
|
3240
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "concat",
|
3241
|
+
FUNCTION(rb_gsl_vector,concat), 1);
|
3242
|
+
|
3243
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "diff",
|
3244
|
+
FUNCTION(rb_gsl_vector,diff), -1);
|
3245
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "isnan",
|
3246
|
+
FUNCTION(rb_gsl_vector,isnan), 0);
|
3247
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "isinf",
|
3248
|
+
FUNCTION(rb_gsl_vector,isinf), 0);
|
3249
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "finite",
|
3250
|
+
FUNCTION(rb_gsl_vector,finite), 0);
|
3251
|
+
|
3252
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "isnan?",
|
3253
|
+
FUNCTION(rb_gsl_vector,isnan2), 0);
|
3254
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "isinf?",
|
3255
|
+
FUNCTION(rb_gsl_vector,isinf2), 0);
|
3256
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "finite?",
|
3257
|
+
FUNCTION(rb_gsl_vector,finite2), 0);
|
3258
|
+
|
3259
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "delete_at",
|
3260
|
+
FUNCTION(rb_gsl_vector,delete_at), 1);
|
3261
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "delete_if",
|
3262
|
+
FUNCTION(rb_gsl_vector,delete_if), 0);
|
3263
|
+
rb_define_method(GSL_TYPE(cgsl_vector), "delete",
|
3264
|
+
FUNCTION(rb_gsl_vector,delete), 1);
|
3275
3265
|
/***/
|
3276
3266
|
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "filescan", FUNCTION(rb_gsl_vector,filescan), 1);
|
3277
3267
|
|
@@ -3295,9 +3285,9 @@ void FUNCTION(Init_gsl_vector,init)(VALUE module)
|
|
3295
3285
|
rb_define_method(GSL_TYPE(cgsl_vector), "all?", FUNCTION(rb_gsl_vector,all), 0);
|
3296
3286
|
rb_define_method(GSL_TYPE(cgsl_vector), "none?", FUNCTION(rb_gsl_vector,none), 0);
|
3297
3287
|
rb_define_method(GSL_TYPE(cgsl_vector), "any",
|
3298
|
-
|
3288
|
+
FUNCTION(rb_gsl_vector,any), 0);
|
3299
3289
|
rb_define_method(GSL_TYPE(cgsl_vector), "any?",
|
3300
|
-
|
3290
|
+
FUNCTION(rb_gsl_vector,any2), 0);
|
3301
3291
|
|
3302
3292
|
rb_define_method(GSL_TYPE(cgsl_vector), "where", FUNCTION(rb_gsl_vector,where), 0);
|
3303
3293
|
rb_define_method(GSL_TYPE(cgsl_vector), "where2", FUNCTION(rb_gsl_vector,where2), 0);
|
@@ -3310,17 +3300,12 @@ void FUNCTION(Init_gsl_vector,init)(VALUE module)
|
|
3310
3300
|
rb_define_singleton_method(GSL_TYPE(cgsl_vector), "zip", FUNCTION(rb_gsl_vector,zip), -1);
|
3311
3301
|
rb_define_method(GSL_TYPE(cgsl_vector), "zip", FUNCTION(rb_gsl_vector,zip), -1);
|
3312
3302
|
rb_define_method(GSL_TYPE(cgsl_vector), "join", FUNCTION(rb_gsl_vector,join), -1);
|
3313
|
-
#ifdef GSL_1_9_LATER
|
3314
3303
|
rb_define_method(GSL_TYPE(cgsl_vector), "ispos", FUNCTION(rb_gsl_vector,ispos), 0);
|
3315
3304
|
rb_define_method(GSL_TYPE(cgsl_vector), "ispos?", FUNCTION(rb_gsl_vector,ispos2), 0);
|
3316
3305
|
rb_define_method(GSL_TYPE(cgsl_vector), "isneg", FUNCTION(rb_gsl_vector,isneg), 0);
|
3317
3306
|
rb_define_method(GSL_TYPE(cgsl_vector), "isneg?", FUNCTION(rb_gsl_vector,isneg2), 0);
|
3318
|
-
#endif
|
3319
|
-
|
3320
|
-
#ifdef GSL_1_10_LATER
|
3321
3307
|
rb_define_method(GSL_TYPE(cgsl_vector), "isnonneg", FUNCTION(rb_gsl_vector,isnonneg), 0);
|
3322
3308
|
rb_define_method(GSL_TYPE(cgsl_vector), "isnonneg?", FUNCTION(rb_gsl_vector,isnonneg2), 0);
|
3323
|
-
#endif
|
3324
3309
|
}
|
3325
3310
|
|
3326
3311
|
#undef NUMCONV
|