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
@@ -14,26 +14,23 @@
|
|
14
14
|
which are provided by the GSL source.
|
15
15
|
*/
|
16
16
|
|
17
|
-
#include "
|
18
|
-
#include "
|
19
|
-
#include "
|
20
|
-
#include "
|
21
|
-
#include "
|
22
|
-
#ifdef HAVE_NARRAY_H
|
23
|
-
#include "rb_gsl_with_narray.h"
|
24
|
-
#endif
|
17
|
+
#include "include/rb_gsl_array.h"
|
18
|
+
#include "include/rb_gsl_histogram.h"
|
19
|
+
#include "include/rb_gsl_complex.h"
|
20
|
+
#include "include/rb_gsl_poly.h"
|
21
|
+
#include "include/rb_gsl_with_narray.h"
|
25
22
|
|
26
|
-
int gsl_linalg_matmult_int(const gsl_matrix_int *A,
|
27
|
-
|
23
|
+
int gsl_linalg_matmult_int(const gsl_matrix_int *A,
|
24
|
+
const gsl_matrix_int *B, gsl_matrix_int *C);
|
28
25
|
|
29
26
|
#define BASE_DOUBLE
|
30
|
-
#include "templates_on.h"
|
31
|
-
#include "matrix_source.
|
32
|
-
#include "templates_off.h"
|
27
|
+
#include "include/templates_on.h"
|
28
|
+
#include "matrix_source.h"
|
29
|
+
#include "include/templates_off.h"
|
33
30
|
#undef BASE_DOUBLE
|
34
31
|
|
35
32
|
#define BASE_INT
|
36
|
-
#include "templates_on.h"
|
37
|
-
#include "matrix_source.
|
38
|
-
#include "templates_off.h"
|
33
|
+
#include "include/templates_on.h"
|
34
|
+
#include "matrix_source.h"
|
35
|
+
#include "include/templates_off.h"
|
39
36
|
#undef BASE_INT
|
@@ -9,9 +9,8 @@
|
|
9
9
|
WITHOUT ANY WARRANTY.
|
10
10
|
*/
|
11
11
|
|
12
|
-
#include "
|
13
|
-
#include "
|
14
|
-
#include "rb_gsl_complex.h"
|
12
|
+
#include "include/rb_gsl_array.h"
|
13
|
+
#include "include/rb_gsl_complex.h"
|
15
14
|
|
16
15
|
enum {
|
17
16
|
GSL_MATRIX_COMPLEX_ADD,
|
@@ -28,7 +27,7 @@ void get_range_beg_en_n(VALUE range, double *beg, double *en, size_t *n, int *st
|
|
28
27
|
|
29
28
|
// From ext/matrix_source.c
|
30
29
|
void parse_submatrix_args(int argc, VALUE *argv, size_t size1, size_t size2,
|
31
|
-
|
30
|
+
size_t *i, size_t *j, size_t *n1, size_t *n2);
|
32
31
|
|
33
32
|
static VALUE rb_gsl_matrix_complex_arithmetics(int flag, VALUE obj, VALUE bb)
|
34
33
|
{
|
@@ -74,28 +73,28 @@ static VALUE rb_gsl_matrix_complex_arithmetics(int flag, VALUE obj, VALUE bb)
|
|
74
73
|
Data_Get_Struct(bb, gsl_matrix_complex, cmb);
|
75
74
|
switch (flag) {
|
76
75
|
case GSL_MATRIX_COMPLEX_ADD:
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
76
|
+
cmnew = make_matrix_complex_clone(cm);
|
77
|
+
gsl_matrix_complex_add(cmnew, cmb);
|
78
|
+
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, cmnew);
|
79
|
+
break;
|
81
80
|
case GSL_MATRIX_COMPLEX_SUB:
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
81
|
+
cmnew = make_matrix_complex_clone(cm);
|
82
|
+
gsl_matrix_complex_sub(cmnew,cmb);
|
83
|
+
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, cmnew);
|
84
|
+
break;
|
86
85
|
case GSL_MATRIX_COMPLEX_MUL:
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
86
|
+
cmnew = make_matrix_complex_clone(cm);
|
87
|
+
gsl_matrix_complex_mul_elements(cmnew, cmb);
|
88
|
+
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, cmnew);
|
89
|
+
break;
|
91
90
|
case GSL_MATRIX_COMPLEX_DIV:
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
91
|
+
cmnew = make_matrix_complex_clone(cm);
|
92
|
+
gsl_matrix_complex_div_elements(cmnew, cmb);
|
93
|
+
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, cmnew);
|
94
|
+
break;
|
96
95
|
default:
|
97
|
-
|
98
|
-
|
96
|
+
rb_raise(rb_eRuntimeError, "operation not defined");
|
97
|
+
break;
|
99
98
|
}
|
100
99
|
} else if (rb_obj_is_kind_of(bb, cgsl_matrix)) {
|
101
100
|
Data_Get_Struct(bb, gsl_matrix, m);
|
@@ -103,80 +102,80 @@ static VALUE rb_gsl_matrix_complex_arithmetics(int flag, VALUE obj, VALUE bb)
|
|
103
102
|
cmnew = make_matrix_complex_clone(cm);
|
104
103
|
switch (flag) {
|
105
104
|
case GSL_MATRIX_COMPLEX_ADD:
|
106
|
-
|
107
|
-
|
105
|
+
gsl_matrix_complex_add(cmnew, cmb);
|
106
|
+
break;
|
108
107
|
case GSL_MATRIX_COMPLEX_SUB:
|
109
|
-
|
110
|
-
|
108
|
+
gsl_matrix_complex_sub(cmnew,cmb);
|
109
|
+
break;
|
111
110
|
case GSL_MATRIX_COMPLEX_MUL:
|
112
|
-
|
113
|
-
|
111
|
+
gsl_matrix_complex_mul_elements(cmnew, cmb);
|
112
|
+
break;
|
114
113
|
case GSL_MATRIX_COMPLEX_DIV:
|
115
|
-
|
116
|
-
|
114
|
+
gsl_matrix_complex_div_elements(cmnew, cmb);
|
115
|
+
break;
|
117
116
|
default:
|
118
|
-
|
119
|
-
|
117
|
+
rb_raise(rb_eRuntimeError, "operation not defined");
|
118
|
+
break;
|
120
119
|
}
|
121
120
|
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, cmnew);
|
122
121
|
} else if (rb_obj_is_kind_of(bb, cgsl_complex)) {
|
123
122
|
Data_Get_Struct(bb, gsl_complex, c);
|
124
123
|
switch (flag) {
|
125
124
|
case GSL_MATRIX_COMPLEX_ADD:
|
126
|
-
|
127
|
-
|
128
|
-
|
125
|
+
cmnew = make_matrix_complex_clone(cm);
|
126
|
+
gsl_matrix_complex_add_constant(cmnew, *c);
|
127
|
+
break;
|
129
128
|
case GSL_MATRIX_COMPLEX_SUB:
|
130
|
-
|
131
|
-
|
132
|
-
|
129
|
+
cmnew = make_matrix_complex_clone(cm);
|
130
|
+
gsl_matrix_complex_add_constant(cmnew, gsl_complex_negative(*c));
|
131
|
+
break;
|
133
132
|
case GSL_MATRIX_COMPLEX_MUL:
|
134
|
-
|
135
|
-
|
136
|
-
|
133
|
+
cmnew = make_matrix_complex_clone(cm);
|
134
|
+
gsl_matrix_complex_scale(cmnew, *c);
|
135
|
+
break;
|
137
136
|
case GSL_MATRIX_COMPLEX_DIV:
|
138
|
-
|
139
|
-
|
140
|
-
|
137
|
+
cmnew = make_matrix_complex_clone(cm);
|
138
|
+
gsl_matrix_complex_scale(cmnew, gsl_complex_inverse(*c));
|
139
|
+
break;
|
141
140
|
default:
|
142
|
-
|
143
|
-
|
141
|
+
rb_raise(rb_eRuntimeError, "operation not defined");
|
142
|
+
break;
|
144
143
|
}
|
145
144
|
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, cmnew);
|
146
145
|
} else if (rb_obj_is_kind_of(bb, cgsl_vector)) {
|
147
146
|
Data_Get_Struct(bb, gsl_vector, v);
|
148
147
|
switch (flag) {
|
149
148
|
case GSL_MATRIX_COMPLEX_MUL:
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
149
|
+
cvb = vector_to_complex(v);
|
150
|
+
cvnew = gsl_vector_complex_alloc(v->size);
|
151
|
+
if (cvnew == NULL) rb_raise(rb_eNoMemError, "gsl_vector_complex_alloc failed");
|
152
|
+
gsl_matrix_complex_mul_vector(cvnew, cm, cvb);
|
153
|
+
gsl_vector_complex_free(cvb);
|
154
|
+
return Data_Wrap_Struct(cgsl_vector_complex, 0, gsl_vector_complex_free, cvnew);
|
155
|
+
break;
|
157
156
|
default:
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
157
|
+
rb_raise(rb_eRuntimeError,
|
158
|
+
"operation is not defined %s and Matrix_Complex",
|
159
|
+
rb_class2name(CLASS_OF(bb)));
|
160
|
+
break;
|
162
161
|
}
|
163
162
|
} else if (rb_obj_is_kind_of(bb, cgsl_vector_complex)) {
|
164
163
|
if (!VECTOR_COMPLEX_COL_P(bb))
|
165
|
-
|
166
|
-
|
167
|
-
|
164
|
+
rb_raise(rb_eTypeError,
|
165
|
+
"Operation is not defined with %s (Vector::Complex::Col expected)",
|
166
|
+
rb_class2name(CLASS_OF(bb)));
|
168
167
|
Data_Get_Struct(bb, gsl_vector_complex, cv);
|
169
168
|
switch (flag) {
|
170
169
|
case GSL_MATRIX_COMPLEX_MUL:
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
170
|
+
cvnew = gsl_vector_complex_alloc(cv->size);
|
171
|
+
if (cvnew == NULL) rb_raise(rb_eNoMemError, "gsl_vector_complex_alloc failed");
|
172
|
+
gsl_matrix_complex_mul_vector(cvnew, cm, cv);
|
173
|
+
return Data_Wrap_Struct(cgsl_vector_complex_col, 0, gsl_vector_complex_free, cvnew);
|
175
174
|
default:
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
175
|
+
rb_raise(rb_eRuntimeError,
|
176
|
+
"operation is not defined %s and Matrix_Complex",
|
177
|
+
rb_class2name(CLASS_OF(bb)));
|
178
|
+
break;
|
180
179
|
}
|
181
180
|
} else {
|
182
181
|
rb_raise(rb_eTypeError, "wrong argument type %s", rb_class2name(CLASS_OF(bb)));
|
@@ -219,15 +218,15 @@ static VALUE rb_gsl_matrix_complex_eye(int argc, VALUE *argv, VALUE klass)
|
|
219
218
|
// if (RARRAY(argv[1])->len < 2) rb_raise(rb_eArgError, "wrong argument");
|
220
219
|
if (RARRAY_LEN(argv[1]) < 2) rb_raise(rb_eArgError, "wrong argument");
|
221
220
|
z = gsl_complex_rect(NUM2DBL(rb_ary_entry(argv[1], 0)),
|
222
|
-
|
221
|
+
NUM2DBL(rb_ary_entry(argv[1], 1)));
|
223
222
|
break;
|
224
223
|
default:
|
225
224
|
if (rb_obj_is_kind_of(argv[1], cgsl_complex)) {
|
226
|
-
|
225
|
+
Data_Get_Struct(argv[1], gsl_complex, pz);
|
227
226
|
z = *pz;
|
228
227
|
} else {
|
229
|
-
|
230
|
-
|
228
|
+
rb_raise(rb_eTypeError,
|
229
|
+
"wrong argument type %s", rb_class2name(CLASS_OF(argv[1])));
|
231
230
|
}
|
232
231
|
break;
|
233
232
|
}
|
@@ -245,7 +244,7 @@ static VALUE rb_gsl_matrix_complex_eye(int argc, VALUE *argv, VALUE klass)
|
|
245
244
|
m = gsl_matrix_complex_calloc(n, n);
|
246
245
|
if (m == NULL) rb_raise(rb_eNoMemError, "gsl_matrix_complex_alloc failed");
|
247
246
|
for (i = 0; i < n; i++) gsl_matrix_complex_set(m, i, i, z);
|
248
|
-
return
|
247
|
+
return Data_Wrap_Struct(klass, 0, gsl_matrix_complex_free, m);
|
249
248
|
}
|
250
249
|
|
251
250
|
static VALUE rb_gsl_matrix_complex_identity(VALUE klass, VALUE nn)
|
@@ -259,7 +258,7 @@ static VALUE rb_gsl_matrix_complex_identity(VALUE klass, VALUE nn)
|
|
259
258
|
if (m == NULL) rb_raise(rb_eNoMemError, "gsl_matrix_complex_calloc failed");
|
260
259
|
z = gsl_complex_rect(1.0, 0.0);
|
261
260
|
for (i = 0; i < n; i++) gsl_matrix_complex_set(m, i, i, z);
|
262
|
-
return
|
261
|
+
return Data_Wrap_Struct(klass, 0, gsl_matrix_complex_free, m);
|
263
262
|
}
|
264
263
|
|
265
264
|
static VALUE rb_gsl_matrix_complex_set_zero(VALUE obj)
|
@@ -301,8 +300,8 @@ static VALUE rb_gsl_matrix_complex_set_all(VALUE obj, VALUE s)
|
|
301
300
|
Data_Get_Struct(s, gsl_complex, z);
|
302
301
|
gsl_matrix_complex_set_all(m, *z);
|
303
302
|
} else {
|
304
|
-
rb_raise(rb_eTypeError,
|
305
|
-
|
303
|
+
rb_raise(rb_eTypeError,
|
304
|
+
"wrong argument type %s", rb_class2name(CLASS_OF(s)));
|
306
305
|
}
|
307
306
|
break;
|
308
307
|
}
|
@@ -324,7 +323,6 @@ static VALUE rb_gsl_matrix_complex_set(int argc, VALUE *argv, VALUE obj)
|
|
324
323
|
if(argc < 1 || argc > 5) {
|
325
324
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 1-5)", argc);
|
326
325
|
}
|
327
|
-
|
328
326
|
Data_Get_Struct(obj, gsl_matrix_complex, m);
|
329
327
|
other = argv[argc-1];
|
330
328
|
|
@@ -343,7 +341,7 @@ static VALUE rb_gsl_matrix_complex_set(int argc, VALUE *argv, VALUE obj)
|
|
343
341
|
row_set_argv[0] = INT2FIX(0);
|
344
342
|
row_set_argv[1] = INT2FIX(m->size2);
|
345
343
|
|
346
|
-
for(k = 0; k < argc && k < m->size1; k++) {
|
344
|
+
for(k = 0; (int) k < argc && k < m->size1; k++) {
|
347
345
|
vv = gsl_matrix_complex_row(m, k);
|
348
346
|
rb_gsl_vector_complex_set_subvector(2, row_set_argv, &vv.vector, argv[k]);
|
349
347
|
}
|
@@ -358,7 +356,7 @@ static VALUE rb_gsl_matrix_complex_set(int argc, VALUE *argv, VALUE obj)
|
|
358
356
|
Data_Get_Struct(other, gsl_matrix_complex, mother);
|
359
357
|
if(n1 * n2 != mother->size1 * mother->size2) {
|
360
358
|
rb_raise(rb_eRangeError, "sizes do not match (%d x %d != %d x %d)",
|
361
|
-
|
359
|
+
(int) n1, (int) n2, (int) mother->size1, (int) mother->size2);
|
362
360
|
}
|
363
361
|
// TODO Change to gsl_matrix_memmove if/when GSL has such a function
|
364
362
|
// because gsl_matrix_memcpy does not handle overlapping regions (e.g.
|
@@ -374,9 +372,9 @@ static VALUE rb_gsl_matrix_complex_set(int argc, VALUE *argv, VALUE obj)
|
|
374
372
|
rb_gsl_vector_complex_set_subvector(2, row_set_argv, &vv.vector, other);
|
375
373
|
} else {
|
376
374
|
// m[...] = [[row0], [row1], ...] # multiple rows
|
377
|
-
if(n1 != RARRAY_LEN(other)) {
|
375
|
+
if((int) n1 != RARRAY_LEN(other)) {
|
378
376
|
rb_raise(rb_eRangeError, "row counts do not match (%d != %d)",
|
379
|
-
|
377
|
+
(int) n1, (int) RARRAY_LEN(other));
|
380
378
|
}
|
381
379
|
for(k = 0; k < n1; k++) {
|
382
380
|
vv = gsl_matrix_complex_row(&mv.matrix, k);
|
@@ -400,7 +398,6 @@ static VALUE rb_gsl_matrix_complex_set(int argc, VALUE *argv, VALUE obj)
|
|
400
398
|
gsl_matrix_complex_set_all(&mv.matrix, rb_gsl_obj_to_gsl_complex(other, NULL));
|
401
399
|
}
|
402
400
|
}
|
403
|
-
|
404
401
|
return obj;
|
405
402
|
}
|
406
403
|
|
@@ -410,11 +407,11 @@ static VALUE rb_gsl_matrix_complex_set_row(int argc, VALUE *argv, VALUE obj)
|
|
410
407
|
size_t i, k;
|
411
408
|
gsl_complex z, *pz = &z;
|
412
409
|
if (argc < 2) rb_raise(rb_eArgError, "wrong number of arguments (%d for >= 2)",
|
413
|
-
|
410
|
+
argc);
|
414
411
|
CHECK_FIXNUM(argv[0]);
|
415
412
|
Data_Get_Struct(obj, gsl_matrix_complex, A);
|
416
413
|
i = FIX2INT(argv[0]);
|
417
|
-
for (k = 1; k < argc; k++) {
|
414
|
+
for (k = 1; (int) k < argc; k++) {
|
418
415
|
if (k-1 >= A->size1) break;
|
419
416
|
switch (TYPE(argv[k])) {
|
420
417
|
case T_ARRAY:
|
@@ -437,12 +434,12 @@ static VALUE rb_gsl_matrix_complex_set_col(int argc, VALUE *argv, VALUE obj)
|
|
437
434
|
int j, k;
|
438
435
|
gsl_complex z, *pz = &z;
|
439
436
|
if (argc < 2) rb_raise(rb_eArgError, "wrong number of arguments (%d for >= 2)",
|
440
|
-
|
437
|
+
argc);
|
441
438
|
CHECK_FIXNUM(argv[0]);
|
442
439
|
Data_Get_Struct(obj, gsl_matrix_complex, A);
|
443
440
|
j = FIX2INT(argv[0]);
|
444
441
|
for (k = 1; k < argc; k++) {
|
445
|
-
if (k-1 >= A->size2) break;
|
442
|
+
if (k-1 >= (int) A->size2) break;
|
446
443
|
switch (TYPE(argv[k])) {
|
447
444
|
case T_ARRAY:
|
448
445
|
z = ary2complex(argv[k]);
|
@@ -474,7 +471,7 @@ static VALUE rb_gsl_matrix_complex_get(int argc, VALUE *argv, VALUE obj)
|
|
474
471
|
if(ii < 0) ii += m->size1;
|
475
472
|
if(ij < 0) ij += m->size2;
|
476
473
|
c = ALLOC(gsl_complex);
|
477
|
-
*c = gsl_matrix_complex_get(m, (size_t)ii, (size_t)ij);
|
474
|
+
*c = gsl_matrix_complex_get(m, (size_t)ii, (size_t)ij);
|
478
475
|
retval = Data_Wrap_Struct(cgsl_complex, 0, free, c);
|
479
476
|
} else if(argc == 1 && TYPE(argv[0]) == T_FIXNUM) {
|
480
477
|
// m[i]
|
@@ -493,7 +490,7 @@ static VALUE rb_gsl_matrix_complex_get(int argc, VALUE *argv, VALUE obj)
|
|
493
490
|
if(ii < 0) ii += m->size1;
|
494
491
|
if(ij < 0) ij += m->size2;
|
495
492
|
c = ALLOC(gsl_complex);
|
496
|
-
*c = gsl_matrix_complex_get(m, (size_t)ii, (size_t)ij);
|
493
|
+
*c = gsl_matrix_complex_get(m, (size_t)ii, (size_t)ij);
|
497
494
|
retval = Data_Wrap_Struct(cgsl_complex, 0, free, c);
|
498
495
|
} else {
|
499
496
|
rb_raise(rb_eArgError, "Array index must have length 2, not %d", (int) RARRAY_LEN(argv[0]));
|
@@ -501,7 +498,6 @@ static VALUE rb_gsl_matrix_complex_get(int argc, VALUE *argv, VALUE obj)
|
|
501
498
|
} else {
|
502
499
|
retval = rb_gsl_matrix_complex_submatrix(argc, argv, obj);
|
503
500
|
}
|
504
|
-
|
505
501
|
return retval;
|
506
502
|
}
|
507
503
|
|
@@ -547,12 +543,12 @@ static VALUE rb_gsl_matrix_complex_to_a(VALUE obj)
|
|
547
543
|
size_t i, j;
|
548
544
|
Data_Get_Struct(obj, gsl_matrix_complex, m);
|
549
545
|
ma = rb_ary_new2(m->size1);
|
550
|
-
for(i=0; i < m->size1; i++) {
|
546
|
+
for(i = 0; i < m->size1; i++) {
|
551
547
|
ra = rb_ary_new2(m->size2);
|
552
548
|
rb_ary_store(ma, i, ra);
|
553
|
-
for(j=0; j < m->size2; j++) {
|
549
|
+
for(j = 0; j < m->size2; j++) {
|
554
550
|
c = ALLOC(gsl_complex);
|
555
|
-
*c = gsl_matrix_complex_get(m, i, j);
|
551
|
+
*c = gsl_matrix_complex_get(m, i, j);
|
556
552
|
rb_ary_store(ra, j, Data_Wrap_Struct(cgsl_complex, 0, free, c));
|
557
553
|
}
|
558
554
|
}
|
@@ -611,11 +607,11 @@ static VALUE rb_gsl_matrix_complex_to_s(int argc, VALUE *argv, VALUE obj)
|
|
611
607
|
int max_rows = 4;
|
612
608
|
int max_cols = 4;
|
613
609
|
|
614
|
-
switch(argc){
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
610
|
+
switch(argc) {
|
611
|
+
case 2: max_cols = NUM2INT(argv[1]);
|
612
|
+
case 1: max_rows = NUM2INT(argv[0]);
|
613
|
+
case 0: break;
|
614
|
+
default:
|
619
615
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 0, 1, or 2)", argc);
|
620
616
|
}
|
621
617
|
|
@@ -629,16 +625,16 @@ static VALUE rb_gsl_matrix_complex_to_s(int argc, VALUE *argv, VALUE obj)
|
|
629
625
|
for (j = 0; j < m->size2; j++) {
|
630
626
|
z = gsl_matrix_complex_get(m, i, j);
|
631
627
|
sprintf(buf,
|
632
|
-
|
628
|
+
"%s[ %4.3e %4.3e ]", (j==0) ? "" : " ", GSL_REAL(z), GSL_IMAG(z));
|
633
629
|
rb_str_cat(str, buf, strlen(buf));
|
634
630
|
// if too many cols
|
635
|
-
if (j >= max_cols-1 && j != m->size2-1) {
|
631
|
+
if ((int) j >= max_cols-1 && j != m->size2-1) {
|
636
632
|
rb_str_cat(str, " ...", 4);
|
637
633
|
break;
|
638
634
|
}
|
639
635
|
}
|
640
636
|
// if too many rows
|
641
|
-
if (i >= max_rows-1 && i != m->size1-1) {
|
637
|
+
if ((int) i >= max_rows-1 && i != m->size1-1) {
|
642
638
|
rb_str_cat(str, "\n ...", 6);
|
643
639
|
break;
|
644
640
|
}
|
@@ -927,8 +923,8 @@ static VALUE rb_gsl_matrix_complex_add_diagonal(VALUE obj, VALUE s)
|
|
927
923
|
Data_Get_Struct(s, gsl_complex, z);
|
928
924
|
gsl_matrix_complex_add_diagonal(m, *z);
|
929
925
|
} else {
|
930
|
-
rb_raise(rb_eTypeError,
|
931
|
-
|
926
|
+
rb_raise(rb_eTypeError,
|
927
|
+
"wrong argument type %s", rb_class2name(CLASS_OF(s)));
|
932
928
|
}
|
933
929
|
break;
|
934
930
|
}
|
@@ -1002,7 +998,7 @@ static VALUE rb_gsl_matrix_complex_set_diagonal(VALUE obj, VALUE diag)
|
|
1002
998
|
for (i = 0; i < m->size1; i++) gsl_matrix_complex_set(m, i, i, gsl_vector_complex_get(v, i));
|
1003
999
|
} else {
|
1004
1000
|
rb_raise(rb_eTypeError, "wrong argument type %s (GSL::Vector_Complex or Array expected)",
|
1005
|
-
|
1001
|
+
rb_class2name(CLASS_OF(diag)));
|
1006
1002
|
}
|
1007
1003
|
return obj;
|
1008
1004
|
}
|
@@ -1056,7 +1052,7 @@ static VALUE rb_gsl_matrix_complex_coerce(VALUE obj, VALUE other)
|
|
1056
1052
|
return rb_ary_new3(2, vcm, obj);
|
1057
1053
|
} else {
|
1058
1054
|
rb_raise(rb_eTypeError, "cannot coerce %s to GSL::Matrix::Complex",
|
1059
|
-
|
1055
|
+
rb_class2name(CLASS_OF(other)));
|
1060
1056
|
}
|
1061
1057
|
break;
|
1062
1058
|
}
|
@@ -1274,8 +1270,8 @@ static VALUE rb_gsl_matrix_complex_logabs(VALUE obj)
|
|
1274
1270
|
return rb_gsl_matrix_complex_XXX(obj, gsl_complex_logabs);
|
1275
1271
|
}
|
1276
1272
|
|
1277
|
-
static VALUE rb_gsl_matrix_complex_XXX_complex(VALUE obj,
|
1278
|
-
|
1273
|
+
static VALUE rb_gsl_matrix_complex_XXX_complex(VALUE obj,
|
1274
|
+
gsl_complex (*f)(gsl_complex))
|
1279
1275
|
{
|
1280
1276
|
gsl_matrix_complex *m, *mnew;
|
1281
1277
|
size_t i, j;
|
@@ -1526,14 +1522,14 @@ static VALUE rb_gsl_matrix_complex_indgen_singleton(int argc, VALUE *argv, VALUE
|
|
1526
1522
|
// function, but it only determines absolute equality (i.e. is has no epsilon
|
1527
1523
|
// argument).
|
1528
1524
|
static int gsl_matrix_complex_equal_eps(const gsl_matrix_complex *m1,
|
1529
|
-
|
1525
|
+
const gsl_matrix_complex *m2, double eps)
|
1530
1526
|
{
|
1531
1527
|
gsl_complex z1, z2;
|
1532
1528
|
size_t i, j;
|
1533
1529
|
if (m1->size1 != m2->size1) return 0;
|
1534
|
-
if (m1->size2 != m2->size2) return 0;
|
1530
|
+
if (m1->size2 != m2->size2) return 0;
|
1535
1531
|
for (i = 0; i < m1->size1; i++) {
|
1536
|
-
for (j = 0; j < m1->size2; j++) {
|
1532
|
+
for (j = 0; j < m1->size2; j++) {
|
1537
1533
|
z1 = gsl_matrix_complex_get(m1, i, j);
|
1538
1534
|
z2 = gsl_matrix_complex_get(m2, i, j);
|
1539
1535
|
if (!rbgsl_complex_equal(&z1, &z2, eps)) return 0;
|
@@ -1603,7 +1599,7 @@ void Init_gsl_matrix_complex(VALUE module)
|
|
1603
1599
|
rb_define_method(cgsl_matrix_complex, "fwrite", rb_gsl_matrix_complex_fwrite, 1);
|
1604
1600
|
rb_define_method(cgsl_matrix_complex, "fread", rb_gsl_matrix_complex_fread, 1);
|
1605
1601
|
rb_define_method(cgsl_matrix_complex, "fscanf", rb_gsl_matrix_complex_fscanf, 1);
|
1606
|
-
|
1602
|
+
|
1607
1603
|
rb_define_singleton_method(cgsl_matrix_complex, "memcpy", rb_gsl_matrix_complex_memcpy, 2);
|
1608
1604
|
rb_define_method(cgsl_matrix_complex, "clone", rb_gsl_matrix_complex_clone, 0);
|
1609
1605
|
rb_define_alias(cgsl_matrix_complex, "duplicate", "clone");
|
@@ -1611,10 +1607,10 @@ void Init_gsl_matrix_complex(VALUE module)
|
|
1611
1607
|
rb_define_method(cgsl_matrix_complex, "swap_rows", rb_gsl_matrix_complex_swap_rows, 2);
|
1612
1608
|
rb_define_method(cgsl_matrix_complex, "swap_columns", rb_gsl_matrix_complex_swap_columns, 2);
|
1613
1609
|
rb_define_method(cgsl_matrix_complex, "swap_rowcol", rb_gsl_matrix_complex_swap_rowcol, 2);
|
1614
|
-
|
1610
|
+
|
1615
1611
|
rb_define_method(cgsl_matrix_complex, "transpose", rb_gsl_matrix_complex_transpose, 0);
|
1616
1612
|
rb_define_method(cgsl_matrix_complex, "isnull", rb_gsl_matrix_complex_isnull, 0);
|
1617
|
-
|
1613
|
+
|
1618
1614
|
rb_define_method(cgsl_matrix_complex, "add", rb_gsl_matrix_complex_add, 1);
|
1619
1615
|
rb_define_alias(cgsl_matrix_complex, "add_constant", "add");
|
1620
1616
|
rb_define_alias(cgsl_matrix_complex, "+", "add");
|
@@ -1625,13 +1621,13 @@ void Init_gsl_matrix_complex(VALUE module)
|
|
1625
1621
|
rb_define_alias(cgsl_matrix_complex, "/", "div_elements");
|
1626
1622
|
rb_define_method(cgsl_matrix_complex, "scale", rb_gsl_matrix_complex_scale, 1);
|
1627
1623
|
rb_define_method(cgsl_matrix_complex, "scale!", rb_gsl_matrix_complex_scale_bang, 1);
|
1628
|
-
|
1624
|
+
|
1629
1625
|
rb_define_method(cgsl_matrix_complex, "add_diagonal", rb_gsl_matrix_complex_add_diagonal, 1);
|
1630
|
-
|
1626
|
+
|
1631
1627
|
rb_define_method(cgsl_matrix_complex, "set_zero", rb_gsl_matrix_complex_set_zero, 0);
|
1632
1628
|
rb_define_method(cgsl_matrix_complex, "set_identity", rb_gsl_matrix_complex_set_identity, 0);
|
1633
1629
|
rb_define_method(cgsl_matrix_complex, "set_all", rb_gsl_matrix_complex_set_all, 1);
|
1634
|
-
|
1630
|
+
|
1635
1631
|
rb_define_method(cgsl_matrix_complex, "submatrix", rb_gsl_matrix_complex_submatrix, -1);
|
1636
1632
|
rb_define_alias(cgsl_matrix_complex, "view", "submatrix");
|
1637
1633
|
rb_define_method(cgsl_matrix_complex, "row", rb_gsl_matrix_complex_row, 1);
|
@@ -1643,13 +1639,13 @@ void Init_gsl_matrix_complex(VALUE module)
|
|
1643
1639
|
rb_define_method(cgsl_matrix_complex, "set_diagonal", rb_gsl_matrix_complex_set_diagonal, 1);
|
1644
1640
|
rb_define_method(cgsl_matrix_complex, "subdiagonal", rb_gsl_matrix_complex_subdiagonal, 1);
|
1645
1641
|
rb_define_method(cgsl_matrix_complex, "superdiagonal", rb_gsl_matrix_complex_superdiagonal, 1);
|
1646
|
-
|
1642
|
+
|
1647
1643
|
rb_define_method(cgsl_matrix_complex, "coerce", rb_gsl_matrix_complex_coerce, 1);
|
1648
|
-
|
1644
|
+
|
1649
1645
|
rb_define_method(cgsl_matrix_complex, "mul", rb_gsl_matrix_complex_mul, 1);
|
1650
1646
|
rb_define_alias(cgsl_matrix_complex, "*", "mul");
|
1651
1647
|
rb_define_method(cgsl_matrix_complex, "mul!", rb_gsl_matrix_complex_mul2, 1);
|
1652
|
-
|
1648
|
+
|
1653
1649
|
rb_define_method(cgsl_matrix_complex, "real", rb_gsl_matrix_complex_real, 0);
|
1654
1650
|
rb_define_alias(cgsl_matrix_complex, "to_real", "real");
|
1655
1651
|
rb_define_alias(cgsl_matrix_complex, "re", "real");
|
@@ -1663,7 +1659,7 @@ void Init_gsl_matrix_complex(VALUE module)
|
|
1663
1659
|
rb_define_alias(cgsl_matrix_complex, "conj", "conjugate");
|
1664
1660
|
rb_define_method(cgsl_matrix_complex, "dagger!", rb_gsl_matrix_complex_dagger, 0);
|
1665
1661
|
rb_define_method(cgsl_matrix_complex, "dagger", rb_gsl_matrix_complex_dagger2, 0);
|
1666
|
-
|
1662
|
+
|
1667
1663
|
rb_define_method(cgsl_matrix_complex, "trace", rb_gsl_matrix_complex_trace, 0);
|
1668
1664
|
rb_define_method(cgsl_matrix_complex, "each_row", rb_gsl_matrix_complex_each_row, 0);
|
1669
1665
|
rb_define_method(cgsl_matrix_complex, "each_col", rb_gsl_matrix_complex_each_col, 0);
|
@@ -1672,14 +1668,14 @@ void Init_gsl_matrix_complex(VALUE module)
|
|
1672
1668
|
rb_define_method(cgsl_matrix_complex, "collect!", rb_gsl_matrix_complex_collect_bang, 0);
|
1673
1669
|
rb_define_alias(cgsl_matrix_complex, "map", "collect");
|
1674
1670
|
rb_define_alias(cgsl_matrix_complex, "map!", "collect!");
|
1675
|
-
|
1671
|
+
|
1676
1672
|
rb_define_method(cgsl_matrix_complex, "to_a", rb_gsl_matrix_complex_to_a, 0);
|
1677
1673
|
|
1678
1674
|
rb_define_method(cgsl_matrix_complex, "size1", rb_gsl_matrix_complex_size1, 0);
|
1679
1675
|
rb_define_method(cgsl_matrix_complex, "size2", rb_gsl_matrix_complex_size2, 0);
|
1680
1676
|
rb_define_method(cgsl_matrix_complex, "shape", rb_gsl_matrix_complex_shape, 0);
|
1681
1677
|
rb_define_alias(cgsl_matrix_complex, "size", "shape");
|
1682
|
-
|
1678
|
+
|
1683
1679
|
/*****/
|
1684
1680
|
rb_define_method(cgsl_matrix_complex, "-@", rb_gsl_matrix_complex_uminus, 0);
|
1685
1681
|
rb_define_method(cgsl_matrix_complex, "+@", rb_gsl_matrix_complex_uplus, 0);
|
@@ -1729,9 +1725,9 @@ void Init_gsl_matrix_complex(VALUE module)
|
|
1729
1725
|
rb_define_method(cgsl_matrix_complex, "indgen", rb_gsl_matrix_complex_indgen, -1);
|
1730
1726
|
rb_define_method(cgsl_matrix_complex, "indgen!", rb_gsl_matrix_complex_indgen_bang, -1);
|
1731
1727
|
rb_define_singleton_method(cgsl_matrix_complex, "indgen", rb_gsl_matrix_complex_indgen_singleton, -1);
|
1732
|
-
|
1728
|
+
|
1733
1729
|
rb_define_method(cgsl_matrix_complex, "equal?", rb_gsl_matrix_complex_equal, -1);
|
1734
1730
|
rb_define_alias(cgsl_matrix_complex, "==", "equal?");
|
1735
1731
|
rb_define_method(cgsl_matrix_complex, "not_equal?", rb_gsl_matrix_complex_not_equal, -1);
|
1736
|
-
rb_define_alias(cgsl_matrix_complex, "!=", "not_equal?");
|
1732
|
+
rb_define_alias(cgsl_matrix_complex, "!=", "not_equal?");
|
1737
1733
|
}
|