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
@@ -52,14 +52,14 @@ void FUNCTION(get_range,beg_en_n)(VALUE range, BASE *beg, BASE *en, size_t *n, i
|
|
52
52
|
|
53
53
|
// From ext/vector_source.c
|
54
54
|
void get_range_beg_en_n_for_size(VALUE range,
|
55
|
-
|
55
|
+
int *beg, int *en, size_t *n, int *step, size_t size);
|
56
56
|
|
57
57
|
void parse_submatrix_args(int argc, VALUE *argv, size_t size1, size_t size2,
|
58
|
-
|
58
|
+
size_t *i, size_t *j, size_t *n1, size_t *n2);
|
59
59
|
|
60
60
|
#ifdef BASE_DOUBLE
|
61
61
|
void parse_submatrix_args(int argc, VALUE *argv, size_t size1, size_t size2,
|
62
|
-
|
62
|
+
size_t *i, size_t *j, size_t *n1, size_t *n2)
|
63
63
|
{
|
64
64
|
int ii, ij, in1, in2, end, step;
|
65
65
|
|
@@ -91,7 +91,7 @@ void parse_submatrix_args(int argc, VALUE *argv, size_t size1, size_t size2,
|
|
91
91
|
// Fixnum, nil -> single row, all cols (Vector::View)
|
92
92
|
// Fixnum, Range -> single row, Range cols (Vector::View)
|
93
93
|
// Fixnum, Fixnum -> single row, single col (Matrix::View)
|
94
|
-
case 2:
|
94
|
+
case 2:
|
95
95
|
// nil, ...
|
96
96
|
if(NIL_P(argv[0])) {
|
97
97
|
// Parse second arg
|
@@ -114,7 +114,7 @@ void parse_submatrix_args(int argc, VALUE *argv, size_t size1, size_t size2,
|
|
114
114
|
*i = 0; *j = (size_t)ij;
|
115
115
|
*n1 = size1; *n2 = 0; // *n2 == 0 tells #submatrix to return Vector::Col::View
|
116
116
|
}
|
117
|
-
|
117
|
+
// Range, ...
|
118
118
|
} else if(rb_obj_is_kind_of(argv[0], rb_cRange)) {
|
119
119
|
get_range_beg_en_n_for_size(argv[0], &ii, &end, n1, &step, size1);
|
120
120
|
if(step < 0 || *n1 <= 0) {
|
@@ -139,7 +139,7 @@ void parse_submatrix_args(int argc, VALUE *argv, size_t size1, size_t size2,
|
|
139
139
|
*j = (size_t) ij;
|
140
140
|
*n2 = 0; // *n2 == 0 tells #submatrix to return Vector::Col::View
|
141
141
|
}
|
142
|
-
|
142
|
+
// Fixnum, ...
|
143
143
|
} else {
|
144
144
|
ii = NUM2INT(argv[0]);
|
145
145
|
if(ii < 0) ii += size1;
|
@@ -182,7 +182,7 @@ void parse_submatrix_args(int argc, VALUE *argv, size_t size1, size_t size2,
|
|
182
182
|
if(ij < 0) ij += size2;
|
183
183
|
*j = (size_t) ij;
|
184
184
|
*n2 = (size_t) in2;
|
185
|
-
|
185
|
+
// Range, Fixnum, Fixnum
|
186
186
|
} else if(rb_obj_is_kind_of(argv[0], rb_cRange)) {
|
187
187
|
// Range, Fixnum, Fixnum -> Range rows, some cols
|
188
188
|
CHECK_FIXNUM(argv[1]); CHECK_FIXNUM(argv[2]);
|
@@ -196,11 +196,11 @@ void parse_submatrix_args(int argc, VALUE *argv, size_t size1, size_t size2,
|
|
196
196
|
*i = (size_t)ii;
|
197
197
|
*j = (size_t) ij;
|
198
198
|
*n2 = (size_t) in2;
|
199
|
-
|
199
|
+
// Fixnum, Fixnum, ...
|
200
200
|
} else {
|
201
201
|
CHECK_FIXNUM(argv[0]); CHECK_FIXNUM(argv[1]);
|
202
202
|
ii = FIX2INT(argv[0]);
|
203
|
-
if(ii < 0) ii += size1;
|
203
|
+
if(ii < 0) ii += size1;
|
204
204
|
in1 = FIX2INT(argv[1]);
|
205
205
|
*i = (size_t)ii;
|
206
206
|
*n1 = (size_t)in1;
|
@@ -218,7 +218,7 @@ void parse_submatrix_args(int argc, VALUE *argv, size_t size1, size_t size2,
|
|
218
218
|
*j = (size_t)ij;
|
219
219
|
} else {
|
220
220
|
rb_raise(rb_eArgError, "expected third argument to be nil or Range, not %s",
|
221
|
-
|
221
|
+
rb_class2name(CLASS_OF(argv[2])));
|
222
222
|
}
|
223
223
|
}
|
224
224
|
break;
|
@@ -241,7 +241,7 @@ void parse_submatrix_args(int argc, VALUE *argv, size_t size1, size_t size2,
|
|
241
241
|
}
|
242
242
|
#endif
|
243
243
|
|
244
|
-
VALUE FUNCTION(rb_gsl_matrix,do_something)(VALUE obj, void (*f)(GSL_TYPE(gsl_matrix) *))
|
244
|
+
VALUE FUNCTION(rb_gsl_matrix,do_something)(VALUE obj, void (*f)(GSL_TYPE (gsl_matrix) *))
|
245
245
|
{
|
246
246
|
GSL_TYPE(gsl_matrix) *m = NULL;
|
247
247
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
@@ -257,16 +257,13 @@ static VALUE FUNCTION(rb_gsl_matrix,alloc)(int argc, VALUE *argv, VALUE klass)
|
|
257
257
|
{
|
258
258
|
GSL_TYPE(gsl_matrix) *m = NULL;
|
259
259
|
size_t n1, n2;
|
260
|
-
|
261
|
-
|
262
|
-
VALUE ary;
|
263
|
-
struct NARRAY *na;
|
264
|
-
#endif
|
265
|
-
if (argc < 1) rb_raise(rb_eArgError,
|
266
|
-
"wrong number of arguments (%d for >= 1)", argc);
|
267
|
-
|
260
|
+
if (argc < 1) rb_raise(rb_eArgError,
|
261
|
+
"wrong number of arguments (%d for >= 1)", argc);
|
268
262
|
#ifdef HAVE_NARRAY_H
|
269
263
|
if (NA_IsNArray(argv[0])) {
|
264
|
+
size_t n;
|
265
|
+
VALUE ary;
|
266
|
+
struct NARRAY *na;
|
270
267
|
GetNArray(argv[0], na);
|
271
268
|
n = na->shape[0]*na->shape[1];
|
272
269
|
m = FUNCTION(gsl_matrix,alloc)(na->shape[1], na->shape[0]);
|
@@ -282,8 +279,8 @@ static VALUE FUNCTION(rb_gsl_matrix,alloc)(int argc, VALUE *argv, VALUE klass)
|
|
282
279
|
#endif
|
283
280
|
switch (TYPE(argv[0])) {
|
284
281
|
case T_FIXNUM:
|
285
|
-
if (argc != 2) rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)",
|
286
|
-
|
282
|
+
if (argc != 2) rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)",
|
283
|
+
argc);
|
287
284
|
CHECK_FIXNUM(argv[1]);
|
288
285
|
n1 = FIX2INT(argv[0]); n2 = FIX2INT(argv[1]);
|
289
286
|
m = FUNCTION(gsl_matrix,calloc)(n1, n2);
|
@@ -300,38 +297,38 @@ static VALUE FUNCTION(rb_gsl_matrix,alloc)(int argc, VALUE *argv, VALUE klass)
|
|
300
297
|
break;
|
301
298
|
case T_FIXNUM:
|
302
299
|
if (argc != 3) rb_raise(rb_eArgError, "wrong number of arguments (%d for 3)",
|
303
|
-
|
300
|
+
argc);
|
304
301
|
CHECK_FIXNUM(argv[2]);
|
305
302
|
m = FUNCTION(gsl_matrix,alloc_from_array_sizes)(argv[0], argv[1], argv[2]);
|
306
303
|
break;
|
307
304
|
default:
|
308
|
-
rb_raise(rb_eTypeError,
|
309
|
-
|
310
|
-
|
311
|
-
|
305
|
+
rb_raise(rb_eTypeError,
|
306
|
+
"wrong argument type %s\nUsage: new(n1, n2), "
|
307
|
+
"new([], [], [], ...), new([], n1, n2)",
|
308
|
+
rb_class2name(CLASS_OF(argv[1])));
|
312
309
|
break;
|
313
310
|
}
|
314
311
|
break;
|
315
312
|
default:
|
316
313
|
if (CLASS_OF(argv[0]) == rb_cRange) {
|
317
314
|
if (argc==3 && TYPE(argv[1]) == T_FIXNUM && TYPE(argv[2]) == T_FIXNUM)
|
318
|
-
|
315
|
+
return FUNCTION(create_matrix,from_range_shape)(argv[0], argv[1], argv[2]);
|
319
316
|
else
|
320
|
-
|
317
|
+
return FUNCTION(create_matrix,from_ranges)(argc, argv);
|
321
318
|
} else if (VEC_P(argv[0])) {
|
322
319
|
if (argc == 3 && FIXNUM_P(argv[1]) && FIXNUM_P(argv[2])) {
|
323
|
-
|
320
|
+
m = FUNCTION(gsl_matrix,alloc_from_vector_sizes)(argv[0], argv[1], argv[2]);
|
324
321
|
} else {
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
322
|
+
if (VEC_COL_P(argv[0])) {
|
323
|
+
m = FUNCTION(gsl_matrix,alloc_from_colvectors)(argc, argv);
|
324
|
+
} else {
|
325
|
+
m = FUNCTION(gsl_matrix,alloc_from_vectors)(argc, argv);
|
326
|
+
}
|
330
327
|
}
|
331
328
|
} else {
|
332
329
|
rb_raise(rb_eTypeError, "wrong argument type %s\n"
|
333
|
-
|
334
|
-
|
330
|
+
"Usage: new(n1, n2), new([], [], [], ...), new([], n1, n2)",
|
331
|
+
rb_class2name(CLASS_OF(argv[0])));
|
335
332
|
}
|
336
333
|
break;
|
337
334
|
}
|
@@ -349,10 +346,10 @@ static GSL_TYPE(gsl_matrix)* FUNCTION(cr_matrix,from_ranges)(int argc, VALUE *ar
|
|
349
346
|
FUNCTION(get_range,beg_en_n)(argv[0], &beg, &en, &n, &step);
|
350
347
|
m = FUNCTION(gsl_matrix,calloc)(argc, n);
|
351
348
|
FUNCTION(set_ptr_data,by_range)(m->data, n, argv[0]);
|
352
|
-
for (i = 1; i < argc; i++) {
|
353
|
-
if (CLASS_OF(argv[i]) != rb_cRange)
|
349
|
+
for (i = 1; (int) i < argc; i++) {
|
350
|
+
if (CLASS_OF(argv[i]) != rb_cRange)
|
354
351
|
rb_raise(rb_eTypeError, "wrong argument type %s (Range expected)",
|
355
|
-
|
352
|
+
rb_class2name(CLASS_OF(argv[i])));
|
356
353
|
FUNCTION(set_ptr_data,by_range)(m->data+i*n, n, argv[i]);
|
357
354
|
}
|
358
355
|
return m;
|
@@ -392,11 +389,11 @@ GSL_TYPE(gsl_matrix)* FUNCTION(gsl_matrix,alloc_from_arrays)(int argc, VALUE *ar
|
|
392
389
|
n = RARRAY_LEN(argv[0]);
|
393
390
|
m = FUNCTION(gsl_matrix,alloc)(argc, n);
|
394
391
|
if (m == NULL) rb_raise(rb_eNoMemError, "gsl_matrix_alloc failed");
|
395
|
-
for (i = 0; i < argc; i++) {
|
392
|
+
for (i = 0; (int) i < argc; i++) {
|
396
393
|
if (CLASS_OF(argv[i]) == rb_cRange) argv[i] = rb_gsl_range2ary(argv[i]);
|
397
394
|
else Check_Type(argv[i], T_ARRAY);
|
398
395
|
for (j = 0; j < n; j++) {
|
399
|
-
if (j >= RARRAY_LEN(argv[i])) FUNCTION(gsl_matrix,set)(m, i, j, 0);
|
396
|
+
if ((int) j >= RARRAY_LEN(argv[i])) FUNCTION(gsl_matrix,set)(m, i, j, 0);
|
400
397
|
else FUNCTION(gsl_matrix,set)(m, i, j, NUMCONV2(rb_ary_entry(argv[i], j)));
|
401
398
|
}
|
402
399
|
}
|
@@ -413,7 +410,7 @@ GSL_TYPE(gsl_matrix)* FUNCTION(gsl_matrix,alloc_from_vectors)(int argc, VALUE *a
|
|
413
410
|
Data_Get_Struct(argv[0], GSL_TYPE(gsl_vector), v);
|
414
411
|
m = FUNCTION(gsl_matrix,alloc)(argc, v->size);
|
415
412
|
if (m == NULL) rb_raise(rb_eNoMemError, "gsl_matrix_alloc failed");
|
416
|
-
for (i = 0; i < argc; i++) {
|
413
|
+
for (i = 0; (int) i < argc; i++) {
|
417
414
|
CHECK_VEC(argv[i]);
|
418
415
|
Data_Get_Struct(argv[i], GSL_TYPE(gsl_vector), v);
|
419
416
|
FUNCTION(gsl_matrix,set_row)(m, i, v);
|
@@ -430,9 +427,9 @@ GSL_TYPE(gsl_matrix)* FUNCTION(gsl_matrix,alloc_from_colvectors)(int argc, VALUE
|
|
430
427
|
CHECK_VEC(argv[0]);
|
431
428
|
Data_Get_Struct(argv[0], GSL_TYPE(gsl_vector), v);
|
432
429
|
// m = FUNCTION(gsl_matrix,alloc)(argc, v->size);
|
433
|
-
m = FUNCTION(gsl_matrix,alloc)(v->size, argc);
|
430
|
+
m = FUNCTION(gsl_matrix,alloc)(v->size, argc);
|
434
431
|
if (m == NULL) rb_raise(rb_eNoMemError, "gsl_matrix_alloc failed");
|
435
|
-
for (i = 0; i < argc; i++) {
|
432
|
+
for (i = 0; (int) i < argc; i++) {
|
436
433
|
CHECK_VEC(argv[i]);
|
437
434
|
Data_Get_Struct(argv[i], GSL_TYPE(gsl_vector), v);
|
438
435
|
FUNCTION(gsl_matrix,set_col)(m, i, v);
|
@@ -442,7 +439,7 @@ GSL_TYPE(gsl_matrix)* FUNCTION(gsl_matrix,alloc_from_colvectors)(int argc, VALUE
|
|
442
439
|
|
443
440
|
/* create a matrix from two sizes and an array */
|
444
441
|
GSL_TYPE(gsl_matrix)* FUNCTION(gsl_matrix,alloc_from_array_sizes)(VALUE ary,
|
445
|
-
|
442
|
+
VALUE nn1, VALUE nn2)
|
446
443
|
{
|
447
444
|
size_t n1, n2, len;
|
448
445
|
GSL_TYPE(gsl_matrix) *m = NULL;
|
@@ -458,17 +455,16 @@ GSL_TYPE(gsl_matrix)* FUNCTION(gsl_matrix,alloc_from_array_sizes)(VALUE ary,
|
|
458
455
|
for (i = 0; i < n1; i++) {
|
459
456
|
for (j = 0; j < n2; j++, k++) {
|
460
457
|
if (k >= len)
|
461
|
-
|
458
|
+
FUNCTION(gsl_matrix,set)(m, i, j, (BASE) 0);
|
462
459
|
else
|
463
|
-
|
464
|
-
|
460
|
+
FUNCTION(gsl_matrix,set)(m, i, j, (BASE) NUMCONV2(rb_ary_entry(ary, k)));
|
465
461
|
}
|
466
462
|
}
|
467
463
|
return m;
|
468
464
|
}
|
469
465
|
|
470
466
|
GSL_TYPE(gsl_matrix)* FUNCTION(gsl_matrix,alloc_from_vector_sizes)(VALUE ary,
|
471
|
-
|
467
|
+
VALUE nn1, VALUE nn2)
|
472
468
|
{
|
473
469
|
size_t n1, n2;
|
474
470
|
GSL_TYPE(gsl_matrix) *m = NULL;
|
@@ -483,10 +479,10 @@ GSL_TYPE(gsl_matrix)* FUNCTION(gsl_matrix,alloc_from_vector_sizes)(VALUE ary,
|
|
483
479
|
k = 0;
|
484
480
|
for (i = 0; i < n1; i++) {
|
485
481
|
for (j = 0; j < n2; j++, k++) {
|
486
|
-
if (k >= v->size)
|
487
|
-
|
482
|
+
if (k >= v->size)
|
483
|
+
FUNCTION(gsl_matrix,set)(m, i, j, (BASE) 0);
|
488
484
|
else
|
489
|
-
|
485
|
+
FUNCTION(gsl_matrix,set)(m, i, j, FUNCTION(gsl_vector,get)(v, k));
|
490
486
|
}
|
491
487
|
}
|
492
488
|
return m;
|
@@ -515,7 +511,7 @@ static VALUE FUNCTION(rb_gsl_matrix,diagonal_singleton)(int argc, VALUE *argv, V
|
|
515
511
|
len = FIX2INT(argv[0]);
|
516
512
|
m = FUNCTION(gsl_matrix,alloc)(len, len);
|
517
513
|
for (i = 0; i < len; i++)
|
518
|
-
|
514
|
+
FUNCTION(gsl_matrix,set)(m, i, i, 1);
|
519
515
|
return Data_Wrap_Struct(klass, 0, FUNCTION(gsl_matrix,free), m);
|
520
516
|
break;
|
521
517
|
default:
|
@@ -530,8 +526,8 @@ static VALUE FUNCTION(rb_gsl_matrix,diagonal_singleton)(int argc, VALUE *argv, V
|
|
530
526
|
len = RARRAY_LEN(ary);
|
531
527
|
m = FUNCTION(gsl_matrix,calloc)(len, len);
|
532
528
|
for (i = 0; i < len; i++) {
|
533
|
-
|
534
|
-
|
529
|
+
tmp = rb_ary_entry(ary, i);
|
530
|
+
FUNCTION(gsl_matrix,set)(m, i, i, NUMCONV2(tmp));
|
535
531
|
}
|
536
532
|
break;
|
537
533
|
default:
|
@@ -540,14 +536,14 @@ static VALUE FUNCTION(rb_gsl_matrix,diagonal_singleton)(int argc, VALUE *argv, V
|
|
540
536
|
len = v->size;
|
541
537
|
m = FUNCTION(gsl_matrix,calloc)(len, len);
|
542
538
|
for (i = 0; i < len; i++) {
|
543
|
-
|
539
|
+
FUNCTION(gsl_matrix,set)(m, i, i, FUNCTION(gsl_vector,get)(v, i));
|
544
540
|
}
|
545
541
|
break;
|
546
542
|
}
|
547
543
|
break;
|
548
544
|
default:
|
549
545
|
m = FUNCTION(gsl_matrix,calloc)(argc, argc);
|
550
|
-
for (i = 0; i < argc; i++) {
|
546
|
+
for (i = 0; (int) i < argc; i++) {
|
551
547
|
FUNCTION(gsl_matrix,set)(m, i, i, NUMCONV2(argv[i]));
|
552
548
|
}
|
553
549
|
break;
|
@@ -711,7 +707,6 @@ static VALUE FUNCTION(rb_gsl_matrix,get)(int argc, VALUE *argv, VALUE obj)
|
|
711
707
|
} else {
|
712
708
|
retval = FUNCTION(rb_gsl_matrix,submatrix)(argc, argv, obj);
|
713
709
|
}
|
714
|
-
|
715
710
|
return retval;
|
716
711
|
}
|
717
712
|
|
@@ -729,7 +724,6 @@ static VALUE FUNCTION(rb_gsl_matrix,set)(int argc, VALUE *argv, VALUE obj)
|
|
729
724
|
if(argc < 1 || argc > 5) {
|
730
725
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 1-5)", argc);
|
731
726
|
}
|
732
|
-
|
733
727
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
734
728
|
other = argv[argc-1];
|
735
729
|
|
@@ -783,7 +777,7 @@ static VALUE FUNCTION(rb_gsl_matrix,set)(int argc, VALUE *argv, VALUE obj)
|
|
783
777
|
Data_Get_Struct(other, GSL_TYPE(gsl_matrix), mother);
|
784
778
|
if(n1 * n2 != mother->size1 * mother->size2) {
|
785
779
|
rb_raise(rb_eRangeError, "sizes do not match (%d x %d != %d x %d)",
|
786
|
-
|
780
|
+
(int) n1, (int) n2, (int) mother->size1, (int) mother->size2);
|
787
781
|
}
|
788
782
|
// TODO Change to gsl_matrix_memmove if/when GSL has such a function
|
789
783
|
// because gsl_matrix_memcpy does not handle overlapping regions (e.g.
|
@@ -799,9 +793,9 @@ static VALUE FUNCTION(rb_gsl_matrix,set)(int argc, VALUE *argv, VALUE obj)
|
|
799
793
|
FUNCTION(rb_gsl_vector,set_subvector)(2, row_set_argv, &vv.vector, other);
|
800
794
|
} else {
|
801
795
|
// m[...] = [[row0], [row1], ...] # multiple rows
|
802
|
-
if(n1 != RARRAY_LEN(other)) {
|
796
|
+
if((int) n1 != RARRAY_LEN(other)) {
|
803
797
|
rb_raise(rb_eRangeError, "row counts do not match (%d != %d)",
|
804
|
-
|
798
|
+
(int) n1, (int) RARRAY_LEN(other));
|
805
799
|
}
|
806
800
|
for(k = 0; k < n1; k++) {
|
807
801
|
vv = FUNCTION(gsl_matrix,row)(&mv.matrix, k);
|
@@ -824,7 +818,6 @@ static VALUE FUNCTION(rb_gsl_matrix,set)(int argc, VALUE *argv, VALUE obj)
|
|
824
818
|
FUNCTION(gsl_matrix,set_all)(&mv.matrix, NUMCONV2(other));
|
825
819
|
}
|
826
820
|
}
|
827
|
-
|
828
821
|
return obj;
|
829
822
|
}
|
830
823
|
|
@@ -893,7 +886,7 @@ static VALUE FUNCTION(rb_gsl_matrix,to_s)(VALUE obj)
|
|
893
886
|
strcpy(format2, format);
|
894
887
|
#else
|
895
888
|
strcpy(format, PRINTF_FORMAT);
|
896
|
-
strcpy(format2, " "PRINTF_FORMAT);
|
889
|
+
strcpy(format2, " " PRINTF_FORMAT);
|
897
890
|
#endif
|
898
891
|
str = rb_str_new2("[ ");
|
899
892
|
for (i = 0; i < m->size1; i++) {
|
@@ -904,11 +897,11 @@ static VALUE FUNCTION(rb_gsl_matrix,to_s)(VALUE obj)
|
|
904
897
|
for (j = 0; j < m->size2; j++) {
|
905
898
|
x = FUNCTION(gsl_matrix,get)(m, i, j);
|
906
899
|
if (x < 0)
|
907
|
-
|
900
|
+
sprintf(buf, format, x);
|
908
901
|
else
|
909
|
-
|
902
|
+
sprintf(buf, format2, x);
|
910
903
|
rb_str_cat(str, buf, strlen(buf));
|
911
|
-
if (j >= (55/dig)) {
|
904
|
+
if ((int) j >= (55/dig)) {
|
912
905
|
strcpy(buf, "... ");
|
913
906
|
rb_str_cat(str, buf, strlen(buf));
|
914
907
|
break;
|
@@ -1005,7 +998,7 @@ static VALUE FUNCTION(rb_gsl_matrix,set_diagonal)(VALUE obj, VALUE diag)
|
|
1005
998
|
for (i = 0; i < m->size1; i++) FUNCTION(gsl_matrix,set)(m, i, i, x);
|
1006
999
|
break;
|
1007
1000
|
case T_ARRAY:
|
1008
|
-
len = GSL_MIN_INT(m->size1, RARRAY_LEN(diag));
|
1001
|
+
len = GSL_MIN_INT((int) m->size1, RARRAY_LEN(diag));
|
1009
1002
|
for (i = 0; i < len; i++) {
|
1010
1003
|
FUNCTION(gsl_matrix,set)(m, i, i, NUMCONV2(rb_ary_entry(diag, i)));
|
1011
1004
|
}
|
@@ -1015,11 +1008,11 @@ static VALUE FUNCTION(rb_gsl_matrix,set_diagonal)(VALUE obj, VALUE diag)
|
|
1015
1008
|
Data_Get_Struct(diag, GSL_TYPE(gsl_vector), v);
|
1016
1009
|
len = GSL_MIN_INT(m->size1, v->size);
|
1017
1010
|
for (i = 0; i < len; i++) {
|
1018
|
-
|
1011
|
+
FUNCTION(gsl_matrix,set)(m, i, i, FUNCTION(gsl_vector,get)(v, i));
|
1019
1012
|
}
|
1020
1013
|
} else {
|
1021
1014
|
rb_raise(rb_eTypeError, "wrong argument type %s (GSL::Vector or Array expected)",
|
1022
|
-
|
1015
|
+
rb_class2name(CLASS_OF(diag)));
|
1023
1016
|
}
|
1024
1017
|
break;
|
1025
1018
|
}
|
@@ -1062,7 +1055,7 @@ static VALUE FUNCTION(rb_gsl_matrix,set_row)(VALUE obj, VALUE i, VALUE vv)
|
|
1062
1055
|
if (CLASS_OF(vv) == rb_cRange) vv = rb_gsl_range2ary(vv);
|
1063
1056
|
if (TYPE(vv) == T_ARRAY) {
|
1064
1057
|
v = FUNCTION(gsl_vector,alloc)(RARRAY_LEN(vv));
|
1065
|
-
for (j = 0; j < RARRAY_LEN(vv); j++) {
|
1058
|
+
for (j = 0; (int) j < RARRAY_LEN(vv); j++) {
|
1066
1059
|
FUNCTION(gsl_vector,set)(v, j, NUMCONV2(rb_ary_entry(vv, j)));
|
1067
1060
|
}
|
1068
1061
|
flag = 1;
|
@@ -1086,7 +1079,7 @@ static VALUE FUNCTION(rb_gsl_matrix,set_col)(VALUE obj, VALUE j, VALUE vv)
|
|
1086
1079
|
if (CLASS_OF(vv) == rb_cRange) vv = rb_gsl_range2ary(vv);
|
1087
1080
|
if (TYPE(vv) == T_ARRAY) {
|
1088
1081
|
v = FUNCTION(gsl_vector,alloc)(RARRAY_LEN(vv));
|
1089
|
-
for (i = 0; i < RARRAY_LEN(vv); i++) {
|
1082
|
+
for (i = 0; (int) i < RARRAY_LEN(vv); i++) {
|
1090
1083
|
FUNCTION(gsl_vector,set)(v, i, NUMCONV2(rb_ary_entry(vv, i)));
|
1091
1084
|
}
|
1092
1085
|
flag = 1;
|
@@ -1268,7 +1261,7 @@ static VALUE FUNCTION(rb_gsl_matrix,minmax_index)(VALUE obj)
|
|
1268
1261
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
1269
1262
|
FUNCTION(gsl_matrix,minmax_index)(m, &imin, &jmin, &imax, &jmax);
|
1270
1263
|
return rb_ary_new3(2, rb_ary_new3(2, INT2FIX(imin), INT2FIX(jmin)),
|
1271
|
-
|
1264
|
+
rb_ary_new3(2, INT2FIX(imax), INT2FIX(jmax)));
|
1272
1265
|
}
|
1273
1266
|
|
1274
1267
|
static VALUE FUNCTION(rb_gsl_matrix,fwrite)(VALUE obj, VALUE io)
|
@@ -1333,7 +1326,7 @@ VALUE FUNCTION(rb_gsl_matrix,power)(VALUE obj, VALUE bb)
|
|
1333
1326
|
size_t i, b;
|
1334
1327
|
CHECK_FIXNUM(bb);
|
1335
1328
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
1336
|
-
b = FIX2INT(bb);
|
1329
|
+
b = FIX2INT(bb);
|
1337
1330
|
mtmp = FUNCTION(gsl_matrix,alloc)(m->size1, m->size2);
|
1338
1331
|
mnew = FUNCTION(gsl_matrix,alloc)(m->size1, m->size2);
|
1339
1332
|
FUNCTION(gsl_matrix,memcpy)(mnew, m);
|
@@ -1374,8 +1367,8 @@ static VALUE FUNCTION(rb_gsl_matrix,submatrix)(int argc, VALUE *argv, VALUE obj)
|
|
1374
1367
|
}
|
1375
1368
|
|
1376
1369
|
static VALUE FUNCTION(rb_gsl_matrix,return_vector_view)(VALUE obj, VALUE index,
|
1377
|
-
|
1378
|
-
|
1370
|
+
QUALIFIED_VIEW(gsl_vector,view) (*f)(GSL_TYPE(gsl_matrix)*,
|
1371
|
+
size_t))
|
1379
1372
|
{
|
1380
1373
|
GSL_TYPE(gsl_matrix) *m = NULL;
|
1381
1374
|
QUALIFIED_VIEW(gsl_vector,view) *vv = NULL;
|
@@ -1402,9 +1395,8 @@ static VALUE FUNCTION(rb_gsl_matrix,column)(VALUE obj, VALUE j)
|
|
1402
1395
|
return Data_Wrap_Struct(QUALIFIED_VIEW(cgsl_vector,col_view), 0, free, vv);
|
1403
1396
|
}
|
1404
1397
|
|
1405
|
-
#ifdef GSL_1_10_LATER
|
1406
1398
|
static VALUE FUNCTION(rb_gsl_matrix,subrow)(VALUE obj, VALUE i, VALUE offset,
|
1407
|
-
|
1399
|
+
VALUE n)
|
1408
1400
|
{
|
1409
1401
|
GSL_TYPE(gsl_matrix) *m = NULL;
|
1410
1402
|
QUALIFIED_VIEW(gsl_vector,view) *vv = NULL;
|
@@ -1414,7 +1406,7 @@ static VALUE FUNCTION(rb_gsl_matrix,subrow)(VALUE obj, VALUE i, VALUE offset,
|
|
1414
1406
|
return Data_Wrap_Struct(QUALIFIED_VIEW(cgsl_vector,view), 0, free, vv);
|
1415
1407
|
}
|
1416
1408
|
static VALUE FUNCTION(rb_gsl_matrix,subcolumn)(VALUE obj, VALUE j, VALUE offset,
|
1417
|
-
|
1409
|
+
VALUE n)
|
1418
1410
|
{
|
1419
1411
|
GSL_TYPE(gsl_matrix) *m = NULL;
|
1420
1412
|
QUALIFIED_VIEW(gsl_vector,view) *vv = NULL;
|
@@ -1423,7 +1415,6 @@ static VALUE FUNCTION(rb_gsl_matrix,subcolumn)(VALUE obj, VALUE j, VALUE offset,
|
|
1423
1415
|
*vv = FUNCTION(gsl_matrix,subcolumn)(m, FIX2INT(j), FIX2INT(offset), FIX2INT(n));
|
1424
1416
|
return Data_Wrap_Struct(QUALIFIED_VIEW(cgsl_vector,col_view), 0, free, vv);
|
1425
1417
|
}
|
1426
|
-
#endif
|
1427
1418
|
|
1428
1419
|
static VALUE FUNCTION(rb_gsl_matrix,diagonal)(VALUE obj)
|
1429
1420
|
{
|
@@ -1499,7 +1490,7 @@ static VALUE FUNCTION(rb_gsl_matrix,scale_bang)(VALUE obj, VALUE x)
|
|
1499
1490
|
{
|
1500
1491
|
GSL_TYPE(gsl_matrix) *m;
|
1501
1492
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
1502
|
-
FUNCTION(gsl_matrix,scale)(m,
|
1493
|
+
FUNCTION(gsl_matrix,scale)(m, NUMCONV2(x));
|
1503
1494
|
return obj;
|
1504
1495
|
}
|
1505
1496
|
|
@@ -1508,7 +1499,7 @@ static VALUE FUNCTION(rb_gsl_matrix,scale)(VALUE obj, VALUE b)
|
|
1508
1499
|
GSL_TYPE(gsl_matrix) *m = NULL, *mnew;
|
1509
1500
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
1510
1501
|
mnew = FUNCTION(make_matrix,clone)(m);
|
1511
|
-
FUNCTION(gsl_matrix,scale)(mnew,
|
1502
|
+
FUNCTION(gsl_matrix,scale)(mnew, NUMCONV2(b));
|
1512
1503
|
return Data_Wrap_Struct(GSL_TYPE(cgsl_matrix), 0, FUNCTION(gsl_matrix,free), mnew);
|
1513
1504
|
}
|
1514
1505
|
|
@@ -1516,7 +1507,7 @@ static VALUE FUNCTION(rb_gsl_matrix,add_constant_bang)(VALUE obj, VALUE x)
|
|
1516
1507
|
{
|
1517
1508
|
GSL_TYPE(gsl_matrix) *m;
|
1518
1509
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
1519
|
-
FUNCTION(gsl_matrix,add_constant)(m,
|
1510
|
+
FUNCTION(gsl_matrix,add_constant)(m, NUMCONV2(x));
|
1520
1511
|
return obj;
|
1521
1512
|
}
|
1522
1513
|
|
@@ -1525,7 +1516,7 @@ static VALUE FUNCTION(rb_gsl_matrix,add_constant)(VALUE obj, VALUE b)
|
|
1525
1516
|
GSL_TYPE(gsl_matrix) *m = NULL, *mnew;
|
1526
1517
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
1527
1518
|
mnew = FUNCTION(make_matrix,clone)(m);
|
1528
|
-
FUNCTION(gsl_matrix,add_constant)(mnew,
|
1519
|
+
FUNCTION(gsl_matrix,add_constant)(mnew, NUMCONV2(b));
|
1529
1520
|
return Data_Wrap_Struct(GSL_TYPE(cgsl_matrix), 0, FUNCTION(gsl_matrix,free), mnew);
|
1530
1521
|
}
|
1531
1522
|
|
@@ -1543,7 +1534,7 @@ static int FUNCTION(mygsl_matrix,equal)(GSL_TYPE(gsl_matrix) *a, GSL_TYPE(gsl_ma
|
|
1543
1534
|
}
|
1544
1535
|
return 1;
|
1545
1536
|
}
|
1546
|
-
|
1537
|
+
|
1547
1538
|
#ifdef HAVE_TENSOR_TENSOR_H
|
1548
1539
|
EXTERN VALUE cgsl_tensor, cgsl_tensor_int;
|
1549
1540
|
VALUE rb_gsl_tensor_equal(int argc, VALUE *argv, VALUE obj);
|
@@ -1626,7 +1617,7 @@ static VALUE FUNCTION(rb_gsl_matrix,equal_singleton)(int argc, VALUE *argv, VALU
|
|
1626
1617
|
}
|
1627
1618
|
|
1628
1619
|
#ifdef HAVE_TENSOR_TENSOR_H
|
1629
|
-
#include "rb_gsl_tensor.h"
|
1620
|
+
#include "include/rb_gsl_tensor.h"
|
1630
1621
|
static VALUE FUNCTION(rb_gsl_matrix,to_tensor)(VALUE obj)
|
1631
1622
|
{
|
1632
1623
|
GSL_TYPE(gsl_matrix) *m;
|
@@ -1711,7 +1702,7 @@ static VALUE FUNCTION(rb_gsl_matrix,pascal1)(VALUE obj, VALUE n)
|
|
1711
1702
|
for (i = 1; i < dim; i++) {
|
1712
1703
|
FUNCTION(gsl_matrix,set)(m, i, 0, (BASE) 1);
|
1713
1704
|
for (j = 1; j < dim; j++) {
|
1714
|
-
x=FUNCTION(gsl_matrix,get)(m,i-1,j)+FUNCTION(gsl_matrix,get)(m,i,j-1);
|
1705
|
+
x = FUNCTION(gsl_matrix,get)(m,i-1,j)+FUNCTION(gsl_matrix,get)(m,i,j-1);
|
1715
1706
|
FUNCTION(gsl_matrix,set)(m, i, j, x);
|
1716
1707
|
}
|
1717
1708
|
}
|
@@ -1785,7 +1776,7 @@ static VALUE FUNCTION(rb_gsl_matrix,vandermonde)(VALUE obj, VALUE vv)
|
|
1785
1776
|
Data_Get_Struct(vv, GSL_TYPE(gsl_vector), v);
|
1786
1777
|
} else {
|
1787
1778
|
rb_raise(rb_eTypeError, "wrong argument type %s (Array or Vector expected)",
|
1788
|
-
|
1779
|
+
rb_class2name(CLASS_OF(vv)));
|
1789
1780
|
}
|
1790
1781
|
m = FUNCTION(gsl_matrix,alloc)(v->size, v->size);
|
1791
1782
|
FUNCTION(mygsl_matrix,vandermonde)(m, v);
|
@@ -1798,10 +1789,10 @@ static void FUNCTION(mygsl_matrix,toeplitz)(GSL_TYPE(gsl_matrix) *m, GSL_TYPE(gs
|
|
1798
1789
|
size_t i, j;
|
1799
1790
|
for (i = 0; i < v->size; i++) {
|
1800
1791
|
for (j = 0; j < v->size; j++) {
|
1801
|
-
if (j >= i)
|
1802
|
-
|
1792
|
+
if (j >= i)
|
1793
|
+
FUNCTION(gsl_matrix,set)(m, i, j, FUNCTION(gsl_vector,get)(v, j-i));
|
1803
1794
|
else
|
1804
|
-
|
1795
|
+
FUNCTION(gsl_matrix,set)(m, i, j, FUNCTION(gsl_vector,get)(v, i-j));
|
1805
1796
|
}
|
1806
1797
|
}
|
1807
1798
|
}
|
@@ -1818,7 +1809,7 @@ static VALUE FUNCTION(rb_gsl_matrix,toeplitz)(VALUE obj, VALUE vv)
|
|
1818
1809
|
Data_Get_Struct(vv, GSL_TYPE(gsl_vector), v);
|
1819
1810
|
} else {
|
1820
1811
|
rb_raise(rb_eTypeError, "wrong argument type %s (Array or Vector expected)",
|
1821
|
-
|
1812
|
+
rb_class2name(CLASS_OF(vv)));
|
1822
1813
|
}
|
1823
1814
|
m = FUNCTION(gsl_matrix,alloc)(v->size, v->size);
|
1824
1815
|
FUNCTION(mygsl_matrix,toeplitz)(m, v);
|
@@ -1839,7 +1830,7 @@ static VALUE FUNCTION(rb_gsl_matrix,circulant)(VALUE obj, VALUE vv)
|
|
1839
1830
|
Data_Get_Struct(vv, GSL_TYPE(gsl_vector), v);
|
1840
1831
|
} else {
|
1841
1832
|
rb_raise(rb_eTypeError, "wrong argument type %s (Array or Vector expected)",
|
1842
|
-
|
1833
|
+
rb_class2name(CLASS_OF(vv)));
|
1843
1834
|
}
|
1844
1835
|
m = FUNCTION(gsl_matrix,alloc)(v->size, v->size);
|
1845
1836
|
FUNCTION(mygsl_vector,to_m_circulant)(m, v);
|
@@ -1848,7 +1839,7 @@ static VALUE FUNCTION(rb_gsl_matrix,circulant)(VALUE obj, VALUE vv)
|
|
1848
1839
|
}
|
1849
1840
|
|
1850
1841
|
static void FUNCTION(mygsl_matrix,indgen)(GSL_TYPE(gsl_matrix) *m,
|
1851
|
-
|
1842
|
+
BASE start, BASE step)
|
1852
1843
|
{
|
1853
1844
|
size_t i, j;
|
1854
1845
|
BASE n;
|
@@ -1869,10 +1860,10 @@ static VALUE FUNCTION(rb_gsl_matrix,indgen_singleton)(int argc, VALUE *argv, VAL
|
|
1869
1860
|
switch (argc) {
|
1870
1861
|
case 4:
|
1871
1862
|
step = NUMCONV2(argv[3]);
|
1872
|
-
|
1863
|
+
/* no break */
|
1873
1864
|
case 3:
|
1874
1865
|
start = NUMCONV2(argv[2]);
|
1875
|
-
|
1866
|
+
/* no break */
|
1876
1867
|
case 2:
|
1877
1868
|
n1 = NUM2INT(argv[0]);
|
1878
1869
|
n2 = NUM2INT(argv[1]);
|
@@ -1893,7 +1884,7 @@ static VALUE FUNCTION(rb_gsl_matrix,indgen)(int argc, VALUE *argv, VALUE obj)
|
|
1893
1884
|
switch (argc) {
|
1894
1885
|
case 2:
|
1895
1886
|
step = NUMCONV2(argv[1]);
|
1896
|
-
|
1887
|
+
/* no break */
|
1897
1888
|
case 1:
|
1898
1889
|
start = NUMCONV2(argv[0]);
|
1899
1890
|
break;
|
@@ -1916,7 +1907,7 @@ static VALUE FUNCTION(rb_gsl_matrix,indgen_bang)(int argc, VALUE *argv, VALUE ob
|
|
1916
1907
|
switch (argc) {
|
1917
1908
|
case 2:
|
1918
1909
|
step = NUMCONV2(argv[1]);
|
1919
|
-
|
1910
|
+
/* no break */
|
1920
1911
|
case 1:
|
1921
1912
|
start = NUMCONV2(argv[0]);
|
1922
1913
|
break;
|
@@ -1938,10 +1929,10 @@ static VALUE FUNCTION(rb_gsl_matrix,to_a)(VALUE obj)
|
|
1938
1929
|
size_t i, j;
|
1939
1930
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
1940
1931
|
ma = rb_ary_new2(m->size1);
|
1941
|
-
for(i=0; i < m->size1; i++) {
|
1932
|
+
for(i = 0; i < m->size1; i++) {
|
1942
1933
|
ra = rb_ary_new2(m->size2);
|
1943
1934
|
rb_ary_store(ma, i, ra);
|
1944
|
-
for(j=0; j < m->size2; j++) {
|
1935
|
+
for(j = 0; j < m->size2; j++) {
|
1945
1936
|
rb_ary_store(ra, j, C_TO_VALUE(FUNCTION(gsl_matrix,get)(m, i, j)));
|
1946
1937
|
}
|
1947
1938
|
}
|
@@ -1961,7 +1952,6 @@ static VALUE FUNCTION(rb_gsl_matrix,to_v)(VALUE obj)
|
|
1961
1952
|
FUNCTION(gsl_vector,set)(v, k, FUNCTION(gsl_matrix,get)(m, i, j));
|
1962
1953
|
}
|
1963
1954
|
}
|
1964
|
-
|
1965
1955
|
if(m->size1 > 1 && m->size2 == 1) {
|
1966
1956
|
return Data_Wrap_Struct(CONCAT2(GSL_TYPE(cgsl_vector),col), 0, FUNCTION(gsl_vector,free), v);
|
1967
1957
|
} else {
|
@@ -1994,7 +1984,7 @@ static VALUE FUNCTION(rb_gsl_matrix,norm)(VALUE obj)
|
|
1994
1984
|
}
|
1995
1985
|
|
1996
1986
|
static int FUNCTION(mygsl_matrix,reverse_columns)(GSL_TYPE(gsl_matrix) *dst,
|
1997
|
-
|
1987
|
+
GSL_TYPE(gsl_matrix) *src)
|
1998
1988
|
{
|
1999
1989
|
size_t j;
|
2000
1990
|
QUALIFIED_VIEW(gsl_vector,view) col;
|
@@ -2008,7 +1998,7 @@ static int FUNCTION(mygsl_matrix,reverse_columns)(GSL_TYPE(gsl_matrix) *dst,
|
|
2008
1998
|
}
|
2009
1999
|
|
2010
2000
|
static int FUNCTION(mygsl_matrix,reverse_rows)(GSL_TYPE(gsl_matrix) *dst,
|
2011
|
-
|
2001
|
+
GSL_TYPE(gsl_matrix) *src)
|
2012
2002
|
{
|
2013
2003
|
size_t i;
|
2014
2004
|
QUALIFIED_VIEW(gsl_vector,view) row;
|
@@ -2074,11 +2064,7 @@ static VALUE FUNCTION(rb_gsl_matrix,info)(VALUE obj)
|
|
2074
2064
|
char buf[256];
|
2075
2065
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
2076
2066
|
sprintf(buf, "Class: %s\n", rb_class2name(CLASS_OF(obj)));
|
2077
|
-
#ifdef RUBY_1_9_LATER
|
2078
2067
|
sprintf(buf, "%sSuperClass: %s\n", buf, rb_class2name(RCLASS_SUPER(CLASS_OF(obj))));
|
2079
|
-
#else
|
2080
|
-
sprintf(buf, "%sSuperClass: %s\n", buf, rb_class2name(RCLASS(CLASS_OF(obj))->super));
|
2081
|
-
#endif
|
2082
2068
|
sprintf(buf, "%sDimension: %dx%d\n", buf, (int) m->size1, (int) m->size2);
|
2083
2069
|
sprintf(buf, "%sSize: %d\n", buf, (int) (m->size1*m->size2));
|
2084
2070
|
return rb_str_new2(buf);
|
@@ -2116,14 +2102,14 @@ static VALUE FUNCTION(rb_gsl_matrix,all)(VALUE obj)
|
|
2116
2102
|
vv = FUNCTION(gsl_matrix,column)(m, j);
|
2117
2103
|
v = &vv.vector;
|
2118
2104
|
/* if (FUNCTION(gsl_vector,isnull(v))) gsl_vector_int_set(vnew, j, 0);
|
2119
|
-
|
2105
|
+
else gsl_vector_int_set(vnew, j, 1);*/
|
2120
2106
|
for (i = 0; i < v->size; i++) {
|
2121
2107
|
if (FUNCTION(gsl_vector,get)(v, i) == (BASE) 0) {
|
2122
|
-
|
2123
|
-
|
2124
|
-
|
2108
|
+
gsl_vector_int_set(vnew, j, 0);
|
2109
|
+
flag = 0;
|
2110
|
+
break;
|
2125
2111
|
} else {
|
2126
|
-
|
2112
|
+
flag = 1;
|
2127
2113
|
}
|
2128
2114
|
}
|
2129
2115
|
if (flag == 1) gsl_vector_int_set(vnew, j, 1);
|
@@ -2185,7 +2171,7 @@ static VALUE FUNCTION(rb_gsl_matrix,rot90)(int argc, VALUE *argv, VALUE obj)
|
|
2185
2171
|
}
|
2186
2172
|
|
2187
2173
|
void FUNCTION(mygsl_vector,diff)(GSL_TYPE(gsl_vector) *vdst,
|
2188
|
-
|
2174
|
+
GSL_TYPE(gsl_vector) *vsrc, size_t n);
|
2189
2175
|
|
2190
2176
|
static VALUE FUNCTION(rb_gsl_matrix,diff)(int argc, VALUE *argv, VALUE obj)
|
2191
2177
|
{
|
@@ -2258,7 +2244,6 @@ static VALUE FUNCTION(rb_gsl_matrix,sgn)(VALUE obj)
|
|
2258
2244
|
FUNCTION(gsl_matrix,set)(mnew, i, j, (BASE)(x>0 ? 1 : (x<0 ? -1 : 0)));
|
2259
2245
|
}
|
2260
2246
|
}
|
2261
|
-
|
2262
2247
|
return Data_Wrap_Struct(GSL_TYPE(cgsl_matrix), 0, FUNCTION(gsl_matrix,free), mnew);
|
2263
2248
|
}
|
2264
2249
|
|
@@ -2273,7 +2258,6 @@ static VALUE FUNCTION(rb_gsl_matrix,abs)(VALUE obj)
|
|
2273
2258
|
FUNCTION(gsl_matrix,set)(mnew, i, j, (BASE) fabs(FUNCTION(gsl_matrix,get)(m, i, j)));
|
2274
2259
|
}
|
2275
2260
|
}
|
2276
|
-
|
2277
2261
|
return Data_Wrap_Struct(GSL_TYPE(cgsl_matrix), 0, FUNCTION(gsl_matrix,free), mnew);
|
2278
2262
|
}
|
2279
2263
|
|
@@ -2285,9 +2269,9 @@ static VALUE FUNCTION(rb_gsl_matrix,horzcat)(VALUE obj, VALUE mm2)
|
|
2285
2269
|
CHECK_MAT(mm2);
|
2286
2270
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
2287
2271
|
Data_Get_Struct(mm2, GSL_TYPE(gsl_matrix), m2);
|
2288
|
-
if (m->size1 != m2->size1)
|
2272
|
+
if (m->size1 != m2->size1)
|
2289
2273
|
rb_raise(rb_eRuntimeError, "Different number of rows (%d and %d).",
|
2290
|
-
|
2274
|
+
(int) m->size1, (int) m2->size1);
|
2291
2275
|
mnew = FUNCTION(gsl_matrix,alloc)(m->size1, m->size2 + m2->size2);
|
2292
2276
|
for (j = 0, k = 0; j < m->size2; j++, k++) {
|
2293
2277
|
v = FUNCTION(gsl_matrix,column)(m, j);
|
@@ -2315,9 +2299,9 @@ static VALUE FUNCTION(rb_gsl_matrix,vertcat)(VALUE obj, VALUE mm2)
|
|
2315
2299
|
CHECK_MAT(mm2);
|
2316
2300
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
2317
2301
|
Data_Get_Struct(mm2, GSL_TYPE(gsl_matrix), m2);
|
2318
|
-
if (m->size2 != m2->size2)
|
2302
|
+
if (m->size2 != m2->size2)
|
2319
2303
|
rb_raise(rb_eRuntimeError, "Different number of columns (%d and %d).",
|
2320
|
-
|
2304
|
+
(int) m->size2, (int) m2->size2);
|
2321
2305
|
mnew = FUNCTION(gsl_matrix,alloc)(m->size1 + m2->size1, m->size2);
|
2322
2306
|
for (i = 0, k = 0; i < m->size1; i++, k++) {
|
2323
2307
|
v = FUNCTION(gsl_matrix,row)(m, i);
|
@@ -2336,17 +2320,16 @@ static VALUE FUNCTION(rb_gsl_matrix,vertcat_singleton)(VALUE klass, VALUE mm, VA
|
|
2336
2320
|
return FUNCTION(rb_gsl_matrix,vertcat)(mm, mm2);
|
2337
2321
|
}
|
2338
2322
|
|
2339
|
-
#ifdef GSL_1_9_LATER
|
2340
2323
|
static VALUE FUNCTION(rb_gsl_matrix,property)(VALUE obj,
|
2341
|
-
|
2324
|
+
int (*f)(const GSL_TYPE (gsl_matrix)*)) {
|
2342
2325
|
GSL_TYPE(gsl_matrix) *m;
|
2343
2326
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
2344
|
-
return INT2FIX((*f)(m));
|
2327
|
+
return INT2FIX((*f)(m));
|
2345
2328
|
}
|
2346
2329
|
|
2347
2330
|
static VALUE FUNCTION(rb_gsl_matrix,property2)(VALUE obj,
|
2348
|
-
|
2349
|
-
GSL_TYPE(gsl_matrix) *m;
|
2331
|
+
int (*f)(const GSL_TYPE (gsl_matrix) *)) {
|
2332
|
+
GSL_TYPE(gsl_matrix) *m;
|
2350
2333
|
Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
|
2351
2334
|
if ((*f)(m)) return Qtrue;
|
2352
2335
|
else return Qfalse;
|
@@ -2357,28 +2340,25 @@ static VALUE FUNCTION(rb_gsl_matrix,ispos)(VALUE obj)
|
|
2357
2340
|
}
|
2358
2341
|
static VALUE FUNCTION(rb_gsl_matrix,ispos2)(VALUE obj)
|
2359
2342
|
{
|
2360
|
-
return FUNCTION(rb_gsl_matrix,property2)(obj, FUNCTION(gsl_matrix,ispos));
|
2343
|
+
return FUNCTION(rb_gsl_matrix,property2)(obj, FUNCTION(gsl_matrix,ispos));
|
2361
2344
|
}
|
2362
2345
|
static VALUE FUNCTION(rb_gsl_matrix,isneg)(VALUE obj)
|
2363
2346
|
{
|
2364
|
-
return FUNCTION(rb_gsl_matrix,property)(obj, FUNCTION(gsl_matrix,isneg));
|
2347
|
+
return FUNCTION(rb_gsl_matrix,property)(obj, FUNCTION(gsl_matrix,isneg));
|
2365
2348
|
}
|
2366
2349
|
static VALUE FUNCTION(rb_gsl_matrix,isneg2)(VALUE obj)
|
2367
2350
|
{
|
2368
|
-
return FUNCTION(rb_gsl_matrix,property2)(obj, FUNCTION(gsl_matrix,isneg));
|
2351
|
+
return FUNCTION(rb_gsl_matrix,property2)(obj, FUNCTION(gsl_matrix,isneg));
|
2369
2352
|
}
|
2370
|
-
#endif
|
2371
2353
|
|
2372
|
-
#ifdef GSL_1_10_LATER
|
2373
2354
|
static VALUE FUNCTION(rb_gsl_matrix,isnonneg)(VALUE obj)
|
2374
2355
|
{
|
2375
|
-
return FUNCTION(rb_gsl_matrix,property)(obj, FUNCTION(gsl_matrix,isnonneg));
|
2356
|
+
return FUNCTION(rb_gsl_matrix,property)(obj, FUNCTION(gsl_matrix,isnonneg));
|
2376
2357
|
}
|
2377
2358
|
static VALUE FUNCTION(rb_gsl_matrix,isnonneg2)(VALUE obj)
|
2378
2359
|
{
|
2379
|
-
return FUNCTION(rb_gsl_matrix,property2)(obj, FUNCTION(gsl_matrix,isnonneg));
|
2360
|
+
return FUNCTION(rb_gsl_matrix,property2)(obj, FUNCTION(gsl_matrix,isnonneg));
|
2380
2361
|
}
|
2381
|
-
#endif
|
2382
2362
|
|
2383
2363
|
static VALUE FUNCTION(rb_gsl_matrix,symmetrize)(VALUE obj)
|
2384
2364
|
{
|
@@ -2423,26 +2403,26 @@ void FUNCTION(Init_gsl_matrix,init)(VALUE module)
|
|
2423
2403
|
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "eye", FUNCTION(rb_gsl_matrix,eye), -1);
|
2424
2404
|
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "ones", FUNCTION(rb_gsl_matrix,ones), -1);
|
2425
2405
|
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "zeros", FUNCTION(rb_gsl_matrix,zeros), -1);
|
2426
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "diagonal",
|
2427
|
-
|
2428
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "diag",
|
2429
|
-
|
2430
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "identity",
|
2431
|
-
|
2432
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "scalar",
|
2433
|
-
|
2434
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "unit",
|
2435
|
-
|
2436
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "I",
|
2437
|
-
|
2406
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "diagonal",
|
2407
|
+
FUNCTION(rb_gsl_matrix,diagonal_singleton), -1);
|
2408
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "diag",
|
2409
|
+
FUNCTION(rb_gsl_matrix,diagonal_singleton), -1);
|
2410
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "identity",
|
2411
|
+
FUNCTION(rb_gsl_matrix,identity), 1);
|
2412
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "scalar",
|
2413
|
+
FUNCTION(rb_gsl_matrix,identity), 1);
|
2414
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "unit",
|
2415
|
+
FUNCTION(rb_gsl_matrix,identity), 1);
|
2416
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "I",
|
2417
|
+
FUNCTION(rb_gsl_matrix,identity), 1);
|
2438
2418
|
|
2439
2419
|
/*****/
|
2440
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "size1",
|
2441
|
-
|
2442
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "size2",
|
2443
|
-
|
2444
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "shape",
|
2445
|
-
|
2420
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "size1",
|
2421
|
+
FUNCTION(rb_gsl_matrix,size1), 0);
|
2422
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "size2",
|
2423
|
+
FUNCTION(rb_gsl_matrix,size2), 0);
|
2424
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "shape",
|
2425
|
+
FUNCTION(rb_gsl_matrix,shape), 0);
|
2446
2426
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "size", "shape");
|
2447
2427
|
|
2448
2428
|
rb_define_method(GSL_TYPE(cgsl_matrix), "get", FUNCTION(rb_gsl_matrix,get), -1);
|
@@ -2450,238 +2430,236 @@ void FUNCTION(Init_gsl_matrix,init)(VALUE module)
|
|
2450
2430
|
rb_define_method(GSL_TYPE(cgsl_matrix), "set", FUNCTION(rb_gsl_matrix,set), -1);
|
2451
2431
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "[]=", "set");
|
2452
2432
|
|
2453
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "set_all",
|
2454
|
-
|
2455
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "set_zero",
|
2456
|
-
|
2457
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "set_identity",
|
2458
|
-
|
2459
|
-
|
2460
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "print",
|
2461
|
-
|
2462
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "inspect",
|
2463
|
-
|
2464
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "to_s",
|
2465
|
-
|
2466
|
-
|
2467
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "set_diagonal",
|
2468
|
-
|
2469
|
-
|
2470
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "get_row",
|
2471
|
-
|
2472
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "get_column",
|
2473
|
-
|
2433
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "set_all",
|
2434
|
+
FUNCTION(rb_gsl_matrix,set_all), 1);
|
2435
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "set_zero",
|
2436
|
+
FUNCTION(rb_gsl_matrix,set_zero), 0);
|
2437
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "set_identity",
|
2438
|
+
FUNCTION(rb_gsl_matrix,set_identity), 0);
|
2439
|
+
|
2440
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "print",
|
2441
|
+
FUNCTION(rb_gsl_matrix,print), 0);
|
2442
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "inspect",
|
2443
|
+
FUNCTION(rb_gsl_matrix,inspect), 0);
|
2444
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "to_s",
|
2445
|
+
FUNCTION(rb_gsl_matrix,to_s), 0);
|
2446
|
+
|
2447
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "set_diagonal",
|
2448
|
+
FUNCTION(rb_gsl_matrix,set_diagonal), 1);
|
2449
|
+
|
2450
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "get_row",
|
2451
|
+
FUNCTION(rb_gsl_matrix,get_row), 1);
|
2452
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "get_column",
|
2453
|
+
FUNCTION(rb_gsl_matrix,get_col), 1);
|
2474
2454
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "get_col", "get_column");
|
2475
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "set_column",
|
2476
|
-
|
2455
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "set_column",
|
2456
|
+
FUNCTION(rb_gsl_matrix,set_col), 2);
|
2477
2457
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "set_col", "set_column");
|
2478
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "set_row",
|
2479
|
-
|
2480
|
-
|
2481
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "clone",
|
2482
|
-
|
2458
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "set_row",
|
2459
|
+
FUNCTION(rb_gsl_matrix,set_row), 2);
|
2460
|
+
|
2461
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "clone",
|
2462
|
+
FUNCTION(rb_gsl_matrix,clone), 0);
|
2483
2463
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "duplicate", "clone");
|
2484
2464
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "dup", "clone");
|
2485
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "isnull",
|
2486
|
-
|
2487
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "isnull?",
|
2488
|
-
|
2489
|
-
|
2490
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "memcpy",
|
2491
|
-
|
2492
|
-
|
2493
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "swap_rows",
|
2494
|
-
|
2465
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "isnull",
|
2466
|
+
FUNCTION(rb_gsl_matrix,isnull), 0);
|
2467
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "isnull?",
|
2468
|
+
FUNCTION(rb_gsl_matrix,isnull2), 0);
|
2469
|
+
|
2470
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "memcpy",
|
2471
|
+
FUNCTION(rb_gsl_matrix,memcpy), 2);
|
2472
|
+
|
2473
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "swap_rows",
|
2474
|
+
FUNCTION(rb_gsl_matrix,swap_rows), 2);
|
2495
2475
|
rb_define_method(GSL_TYPE(cgsl_matrix), "swap_rows!",
|
2496
|
-
|
2476
|
+
FUNCTION(rb_gsl_matrix,swap_rows_bang), 2);
|
2497
2477
|
rb_define_method(GSL_TYPE(cgsl_matrix), "swap_columns",
|
2498
|
-
|
2478
|
+
FUNCTION(rb_gsl_matrix,swap_columns), 2);
|
2499
2479
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "swap_cols", "swap_columns");
|
2500
2480
|
rb_define_method(GSL_TYPE(cgsl_matrix), "swap_columns!",
|
2501
|
-
|
2481
|
+
FUNCTION(rb_gsl_matrix,swap_columns_bang), 2);
|
2502
2482
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "swap_cols!", "swap_columns!");
|
2503
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "swap_rowcol",
|
2504
|
-
|
2505
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "swap_rowcol!",
|
2506
|
-
|
2483
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "swap_rowcol",
|
2484
|
+
FUNCTION(rb_gsl_matrix,swap_rowcol), 2);
|
2485
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "swap_rowcol!",
|
2486
|
+
FUNCTION(rb_gsl_matrix,swap_rowcol_bang), 2);
|
2507
2487
|
rb_define_method(GSL_TYPE(cgsl_matrix), "transpose_memcpy",
|
2508
|
-
|
2488
|
+
FUNCTION(rb_gsl_matrix,transpose_memcpy), 0);
|
2509
2489
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "transpose", "transpose_memcpy");
|
2510
2490
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "trans", "transpose_memcpy");
|
2511
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "transpose!",
|
2512
|
-
|
2491
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "transpose!",
|
2492
|
+
FUNCTION(rb_gsl_matrix,transpose_bang), 0);
|
2513
2493
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "trans!", "transpose!");
|
2514
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "reverse_columns",
|
2515
|
-
|
2494
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "reverse_columns",
|
2495
|
+
FUNCTION(rb_gsl_matrix,reverse_columns), 0);
|
2516
2496
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "fliplr", "reverse_columns");
|
2517
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "reverse_columns!",
|
2518
|
-
|
2519
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "reverse_rows",
|
2520
|
-
|
2497
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "reverse_columns!",
|
2498
|
+
FUNCTION(rb_gsl_matrix,reverse_columns_bang), 0);
|
2499
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "reverse_rows",
|
2500
|
+
FUNCTION(rb_gsl_matrix,reverse_rows), 0);
|
2521
2501
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "flipud", "reverse_rows");
|
2522
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "reverse_rows!",
|
2523
|
-
|
2502
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "reverse_rows!",
|
2503
|
+
FUNCTION(rb_gsl_matrix,reverse_rows_bang), 0);
|
2524
2504
|
/*****/
|
2525
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "swap",
|
2526
|
-
|
2505
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "swap",
|
2506
|
+
FUNCTION(rb_gsl_matrix,swap), 2);
|
2527
2507
|
|
2528
2508
|
rb_define_method(GSL_TYPE(cgsl_matrix), "max", FUNCTION(rb_gsl_matrix,max), 0);
|
2529
2509
|
rb_define_method(GSL_TYPE(cgsl_matrix), "min", FUNCTION(rb_gsl_matrix,min), 0);
|
2530
2510
|
rb_define_method(GSL_TYPE(cgsl_matrix), "minmax",
|
2531
|
-
|
2511
|
+
FUNCTION(rb_gsl_matrix,minmax), 0);
|
2532
2512
|
rb_define_method(GSL_TYPE(cgsl_matrix), "max_index",
|
2533
|
-
|
2534
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "min_index",
|
2535
|
-
|
2513
|
+
FUNCTION(rb_gsl_matrix,max_index), 0);
|
2514
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "min_index",
|
2515
|
+
FUNCTION(rb_gsl_matrix,min_index), 0);
|
2536
2516
|
rb_define_method(GSL_TYPE(cgsl_matrix), "minmax_index",
|
2537
|
-
|
2517
|
+
FUNCTION(rb_gsl_matrix,minmax_index), 0);
|
2538
2518
|
|
2539
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "fwrite",
|
2540
|
-
|
2541
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "fread",
|
2542
|
-
|
2519
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "fwrite",
|
2520
|
+
FUNCTION(rb_gsl_matrix,fwrite), 1);
|
2521
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "fread",
|
2522
|
+
FUNCTION(rb_gsl_matrix,fread), 1);
|
2543
2523
|
rb_define_method(GSL_TYPE(cgsl_matrix), "fprintf",
|
2544
|
-
|
2545
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "printf",
|
2546
|
-
|
2524
|
+
FUNCTION(rb_gsl_matrix,fprintf), -1);
|
2525
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "printf",
|
2526
|
+
FUNCTION(rb_gsl_matrix,printf), -1);
|
2547
2527
|
rb_define_method(GSL_TYPE(cgsl_matrix), "fscanf",
|
2548
|
-
|
2528
|
+
FUNCTION(rb_gsl_matrix,fscanf), 1);
|
2549
2529
|
|
2550
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "trace",
|
2551
|
-
|
2530
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "trace",
|
2531
|
+
FUNCTION(rb_gsl_matrix,trace), 0);
|
2552
2532
|
|
2553
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "-@",
|
2554
|
-
|
2555
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "+@",
|
2556
|
-
|
2533
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "-@",
|
2534
|
+
FUNCTION(rb_gsl_matrix,uminus), 0);
|
2535
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "+@",
|
2536
|
+
FUNCTION(rb_gsl_matrix,uplus), 0);
|
2557
2537
|
|
2558
2538
|
|
2559
2539
|
/*****/
|
2560
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "submatrix",
|
2561
|
-
|
2540
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "submatrix",
|
2541
|
+
FUNCTION(rb_gsl_matrix,submatrix), -1);
|
2562
2542
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "view", "submatrix");
|
2563
2543
|
|
2564
2544
|
rb_define_method(GSL_TYPE(cgsl_matrix), "row", FUNCTION(rb_gsl_matrix,row), 1);
|
2565
2545
|
/* rb_define_alias(GSL_TYPE(cgsl_matrix), "[]", "row");*/
|
2566
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "column",
|
2567
|
-
|
2546
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "column",
|
2547
|
+
FUNCTION(rb_gsl_matrix,column), 1);
|
2568
2548
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "col", "column");
|
2569
2549
|
|
2570
|
-
|
2571
|
-
|
2572
|
-
|
2573
|
-
|
2574
|
-
|
2575
|
-
rb_define_alias(GSL_TYPE(cgsl_matrix), "subcol", "subcolumn");
|
2576
|
-
#endif
|
2550
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "subrow",
|
2551
|
+
FUNCTION(rb_gsl_matrix,subrow), 3);
|
2552
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "subcolumn",
|
2553
|
+
FUNCTION(rb_gsl_matrix,subcolumn), 3);
|
2554
|
+
rb_define_alias(GSL_TYPE(cgsl_matrix), "subcol", "subcolumn");
|
2577
2555
|
|
2578
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "diagonal",
|
2579
|
-
|
2556
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "diagonal",
|
2557
|
+
FUNCTION(rb_gsl_matrix,diagonal), 0);
|
2580
2558
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "diag", "diagonal");
|
2581
2559
|
|
2582
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "subdiagonal",
|
2583
|
-
|
2584
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "superdiagonal",
|
2585
|
-
|
2586
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "vector_view",
|
2587
|
-
|
2560
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "subdiagonal",
|
2561
|
+
FUNCTION(rb_gsl_matrix,subdiagonal), 1);
|
2562
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "superdiagonal",
|
2563
|
+
FUNCTION(rb_gsl_matrix,superdiagonal), 1);
|
2564
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "vector_view",
|
2565
|
+
FUNCTION(rb_gsl_matrix,vector_view), 0);
|
2588
2566
|
|
2589
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "each_row",
|
2590
|
-
|
2567
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "each_row",
|
2568
|
+
FUNCTION(rb_gsl_matrix,each_row), 0);
|
2591
2569
|
rb_define_method(GSL_TYPE(cgsl_matrix), "each_col",
|
2592
|
-
|
2570
|
+
FUNCTION(rb_gsl_matrix,each_col), 0);
|
2593
2571
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "each_column", "each_col");
|
2594
2572
|
|
2595
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "scale",
|
2596
|
-
|
2573
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "scale",
|
2574
|
+
FUNCTION(rb_gsl_matrix,scale), 1);
|
2597
2575
|
rb_define_method(GSL_TYPE(cgsl_matrix), "scale!",
|
2598
|
-
|
2576
|
+
FUNCTION(rb_gsl_matrix,scale_bang), 1);
|
2599
2577
|
rb_define_method(GSL_TYPE(cgsl_matrix), "add_constant",
|
2600
|
-
|
2601
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "add_constant!",
|
2602
|
-
|
2578
|
+
FUNCTION(rb_gsl_matrix,add_constant), 1);
|
2579
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "add_constant!",
|
2580
|
+
FUNCTION(rb_gsl_matrix,add_constant_bang), 1);
|
2603
2581
|
|
2604
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "equal?",
|
2605
|
-
|
2582
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "equal?",
|
2583
|
+
FUNCTION(rb_gsl_matrix,equal), -1);
|
2606
2584
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "==", "equal?");
|
2607
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "equal?",
|
2608
|
-
|
2585
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "equal?",
|
2586
|
+
FUNCTION(rb_gsl_matrix,equal_singleton), -1);
|
2609
2587
|
|
2610
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "power",
|
2611
|
-
|
2588
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "power",
|
2589
|
+
FUNCTION(rb_gsl_matrix,power), 1);
|
2612
2590
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "**", "power");
|
2613
2591
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "^", "power");
|
2614
2592
|
|
2615
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "collect",
|
2616
|
-
|
2617
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "collect!",
|
2618
|
-
|
2593
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "collect",
|
2594
|
+
FUNCTION(rb_gsl_matrix,collect), 0);
|
2595
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "collect!",
|
2596
|
+
FUNCTION(rb_gsl_matrix,collect_bang), 0);
|
2619
2597
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "map", "collect");
|
2620
2598
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "map!", "collect!");
|
2621
2599
|
#ifdef HAVE_TENSOR_TENSOR_H
|
2622
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "to_tensor",
|
2623
|
-
|
2600
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "to_tensor",
|
2601
|
+
FUNCTION(rb_gsl_matrix,to_tensor), 0);
|
2624
2602
|
#endif
|
2625
2603
|
|
2626
2604
|
/*****/
|
2627
2605
|
|
2628
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "to_a",
|
2629
|
-
|
2630
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "to_v",
|
2631
|
-
|
2632
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "to_vview",
|
2633
|
-
|
2606
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "to_a",
|
2607
|
+
FUNCTION(rb_gsl_matrix,to_a), 0);
|
2608
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "to_v",
|
2609
|
+
FUNCTION(rb_gsl_matrix,to_v), 0);
|
2610
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "to_vview",
|
2611
|
+
FUNCTION(rb_gsl_matrix,to_vview), 0);
|
2634
2612
|
rb_define_alias(GSL_TYPE(cgsl_matrix), "data", "to_vview");
|
2635
2613
|
rb_define_method(GSL_TYPE(cgsl_matrix), "norm",
|
2636
|
-
|
2614
|
+
FUNCTION(rb_gsl_matrix,norm), 0);
|
2637
2615
|
|
2638
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "upper",
|
2639
|
-
|
2640
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "lower",
|
2641
|
-
|
2642
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "block",
|
2643
|
-
|
2616
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "upper",
|
2617
|
+
FUNCTION(rb_gsl_matrix,upper), 0);
|
2618
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "lower",
|
2619
|
+
FUNCTION(rb_gsl_matrix,lower), 0);
|
2620
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "block",
|
2621
|
+
FUNCTION(rb_gsl_matrix,block), 0);
|
2644
2622
|
|
2645
2623
|
/***** Special matrices *****/
|
2646
2624
|
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "pascal",
|
2647
|
-
|
2648
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "vandermonde",
|
2649
|
-
|
2625
|
+
FUNCTION(rb_gsl_matrix,pascal1), 1);
|
2626
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "vandermonde",
|
2627
|
+
FUNCTION(rb_gsl_matrix,vandermonde), 1);
|
2650
2628
|
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "vander",
|
2651
|
-
|
2652
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "toeplitz",
|
2653
|
-
|
2654
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "circulant",
|
2655
|
-
|
2629
|
+
FUNCTION(rb_gsl_matrix,vandermonde), 1);
|
2630
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "toeplitz",
|
2631
|
+
FUNCTION(rb_gsl_matrix,toeplitz), 1);
|
2632
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "circulant",
|
2633
|
+
FUNCTION(rb_gsl_matrix,circulant), 1);
|
2656
2634
|
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "indgen",
|
2657
|
-
|
2658
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "indgen",
|
2659
|
-
|
2660
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "indgen!",
|
2661
|
-
|
2662
|
-
|
2663
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "info",
|
2664
|
-
|
2635
|
+
FUNCTION(rb_gsl_matrix,indgen_singleton), -1);
|
2636
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "indgen",
|
2637
|
+
FUNCTION(rb_gsl_matrix,indgen), -1);
|
2638
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "indgen!",
|
2639
|
+
FUNCTION(rb_gsl_matrix,indgen_bang), -1);
|
2640
|
+
|
2641
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "info",
|
2642
|
+
FUNCTION(rb_gsl_matrix,info), 0);
|
2665
2643
|
#ifdef BASE_DOUBLE
|
2666
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "hilbert",
|
2667
|
-
|
2668
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "hilb",
|
2669
|
-
|
2670
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "invhilbert",
|
2671
|
-
|
2672
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "invhilb",
|
2673
|
-
|
2644
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "hilbert",
|
2645
|
+
FUNCTION(rb_gsl_matrix,hilbert), 1);
|
2646
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "hilb",
|
2647
|
+
FUNCTION(rb_gsl_matrix,hilbert), 1);
|
2648
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "invhilbert",
|
2649
|
+
FUNCTION(rb_gsl_matrix,invhilbert), 1);
|
2650
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "invhilb",
|
2651
|
+
FUNCTION(rb_gsl_matrix,invhilbert), 1);
|
2674
2652
|
#endif
|
2675
2653
|
|
2676
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "any",
|
2677
|
-
|
2678
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "all",
|
2679
|
-
|
2680
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "rot90",
|
2681
|
-
|
2654
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "any",
|
2655
|
+
FUNCTION(rb_gsl_matrix,any), 0);
|
2656
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "all",
|
2657
|
+
FUNCTION(rb_gsl_matrix,all), 0);
|
2658
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "rot90",
|
2659
|
+
FUNCTION(rb_gsl_matrix,rot90), -1);
|
2682
2660
|
|
2683
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "diff",
|
2684
|
-
|
2661
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "diff",
|
2662
|
+
FUNCTION(rb_gsl_matrix,diff), -1);
|
2685
2663
|
rb_define_method(GSL_TYPE(cgsl_matrix), "isnan", FUNCTION(rb_gsl_matrix,isnan), 0);
|
2686
2664
|
rb_define_method(GSL_TYPE(cgsl_matrix), "isinf", FUNCTION(rb_gsl_matrix,isinf), 0);
|
2687
2665
|
rb_define_method(GSL_TYPE(cgsl_matrix), "finite", FUNCTION(rb_gsl_matrix,finite), 0);
|
@@ -2698,17 +2676,13 @@ void FUNCTION(Init_gsl_matrix,init)(VALUE module)
|
|
2698
2676
|
rb_define_method(GSL_TYPE(cgsl_matrix), "vertcat", FUNCTION(rb_gsl_matrix,vertcat), 1);
|
2699
2677
|
rb_define_singleton_method(GSL_TYPE(cgsl_matrix), "vertcat", FUNCTION(rb_gsl_matrix,vertcat_singleton), 2);
|
2700
2678
|
|
2701
|
-
#ifdef GSL_1_9_LATER
|
2702
2679
|
rb_define_method(GSL_TYPE(cgsl_matrix), "ispos", FUNCTION(rb_gsl_matrix,ispos), 0);
|
2703
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "ispos?", FUNCTION(rb_gsl_matrix,ispos2), 0);
|
2680
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "ispos?", FUNCTION(rb_gsl_matrix,ispos2), 0);
|
2704
2681
|
rb_define_method(GSL_TYPE(cgsl_matrix), "isneg", FUNCTION(rb_gsl_matrix,isneg), 0);
|
2705
|
-
rb_define_method(GSL_TYPE(cgsl_matrix), "isneg?", FUNCTION(rb_gsl_matrix,isneg2), 0);
|
2706
|
-
#endif
|
2682
|
+
rb_define_method(GSL_TYPE(cgsl_matrix), "isneg?", FUNCTION(rb_gsl_matrix,isneg2), 0);
|
2707
2683
|
|
2708
|
-
#ifdef GSL_1_10_LATER
|
2709
2684
|
rb_define_method(GSL_TYPE(cgsl_matrix), "isnonneg", FUNCTION(rb_gsl_matrix,isnonneg), 0);
|
2710
2685
|
rb_define_method(GSL_TYPE(cgsl_matrix), "isnonneg?", FUNCTION(rb_gsl_matrix,isnonneg2), 0);
|
2711
|
-
#endif
|
2712
2686
|
|
2713
2687
|
rb_define_method(GSL_TYPE(cgsl_matrix), "symmetrize", FUNCTION(rb_gsl_matrix,symmetrize), 0);
|
2714
2688
|
rb_define_method(GSL_TYPE(cgsl_matrix), "symmetrize!", FUNCTION(rb_gsl_matrix,symmetrize_bang), 0);
|