gsl 1.15.3 → 1.16.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.travis.yml +24 -0
- data/AUTHORS +10 -2
- data/COPYING +341 -339
- data/ChangeLog +612 -554
- data/Gemfile +4 -0
- data/README.md +77 -0
- data/Rakefile +14 -93
- data/THANKS +1 -1
- data/examples/blas/blas.rb +1 -1
- data/examples/bspline.rb +3 -3
- data/examples/complex/functions.rb +4 -4
- data/examples/complex/mul.rb +1 -1
- data/examples/const/physconst.rb +4 -4
- data/examples/const/travel.rb +4 -4
- data/examples/eigen/nonsymmv.rb +1 -1
- data/examples/eigen/qhoscillator.rb +3 -3
- data/examples/fft/radix2.rb +1 -1
- data/examples/fft/real-halfcomplex.rb +3 -3
- data/examples/fft/real-halfcomplex2.rb +3 -3
- data/examples/fit/expfit.rb +1 -1
- data/examples/fit/multifit.rb +1 -1
- data/examples/fit/ndlinear.rb +44 -44
- data/examples/fit/nonlinearfit.rb +1 -1
- data/examples/fit/wlinear.rb +3 -3
- data/examples/function/function.rb +1 -1
- data/examples/function/min.rb +1 -1
- data/examples/function/synchrotron.rb +2 -2
- data/examples/gallery/koch.rb +1 -1
- data/examples/histogram/cauchy.rb +2 -2
- data/examples/histogram/exponential.rb +1 -1
- data/examples/histogram/histo3d.rb +1 -1
- data/examples/histogram/histogram-pdf.rb +2 -2
- data/examples/histogram/xexp.rb +1 -1
- data/examples/integration/ahmed.rb +2 -2
- data/examples/integration/cosmology.rb +7 -7
- data/examples/integration/friedmann.rb +4 -4
- data/examples/integration/qng.rb +1 -1
- data/examples/interp/demo.rb +2 -2
- data/examples/linalg/LQ_solve.rb +1 -1
- data/examples/linalg/LU.rb +1 -1
- data/examples/linalg/LU2.rb +1 -1
- data/examples/linalg/LU_narray.rb +1 -1
- data/examples/linalg/PTLQ.rb +1 -1
- data/examples/linalg/QRPT.rb +1 -1
- data/examples/linalg/chol.rb +1 -1
- data/examples/linalg/chol_narray.rb +1 -1
- data/examples/linalg/complex.rb +1 -1
- data/examples/math/elementary.rb +1 -1
- data/examples/math/functions.rb +1 -1
- data/examples/math/inf_nan.rb +1 -1
- data/examples/math/minmax.rb +1 -1
- data/examples/math/power.rb +1 -1
- data/examples/math/test.rb +1 -1
- data/examples/min.rb +1 -1
- data/examples/multimin/bundle.rb +1 -1
- data/examples/multimin/cqp.rb +17 -17
- data/examples/multiroot/fsolver3.rb +1 -1
- data/examples/odeiv/binarysystem.rb +12 -12
- data/examples/odeiv/demo.rb +3 -3
- data/examples/odeiv/frei1.rb +7 -7
- data/examples/odeiv/frei2.rb +4 -4
- data/examples/odeiv/oscillator.rb +1 -1
- data/examples/odeiv/sedov.rb +3 -3
- data/examples/odeiv/whitedwarf.rb +11 -11
- data/examples/permutation/ex1.rb +2 -2
- data/examples/permutation/permutation.rb +1 -1
- data/examples/poly/demo.rb +1 -1
- data/examples/random/diffusion.rb +1 -1
- data/examples/random/generator.rb +2 -2
- data/examples/random/randomwalk.rb +3 -3
- data/examples/random/rng.rb +1 -1
- data/examples/roots/bisection.rb +1 -1
- data/examples/roots/brent.rb +1 -1
- data/examples/roots/demo.rb +1 -1
- data/examples/roots/newton.rb +2 -2
- data/examples/roots/recombination.gp +0 -1
- data/examples/sf/hyperg.rb +1 -1
- data/examples/sf/sphbessel.rb +1 -1
- data/examples/sort/sort.rb +1 -1
- data/examples/tamu_anova.rb +4 -4
- data/examples/vector/add.rb +1 -1
- data/examples/vector/decimate.rb +1 -1
- data/examples/vector/gnuplot.rb +8 -8
- data/examples/vector/vector.rb +2 -2
- data/examples/wavelet/wavelet1.rb +1 -1
- data/ext/{alf.c → gsl_native/alf.c} +10 -10
- data/ext/{array.c → gsl_native/array.c} +70 -159
- data/ext/{array_complex.c → gsl_native/array_complex.c} +63 -66
- data/ext/{blas.c → gsl_native/blas.c} +2 -3
- data/ext/{blas1.c → gsl_native/blas1.c} +35 -36
- data/ext/{blas2.c → gsl_native/blas2.c} +57 -62
- data/ext/{blas3.c → gsl_native/blas3.c} +57 -58
- data/ext/{block.c → gsl_native/block.c} +14 -18
- data/ext/{block_source.c → gsl_native/block_source.h} +110 -112
- data/ext/gsl_native/bspline.c +122 -0
- data/ext/{bundle.c → gsl_native/bundle.c} +0 -0
- data/ext/{cdf.c → gsl_native/cdf.c} +79 -93
- data/ext/{cheb.c → gsl_native/cheb.c} +78 -89
- data/ext/{combination.c → gsl_native/combination.c} +11 -19
- data/ext/{common.c → gsl_native/common.c} +9 -41
- data/ext/{complex.c → gsl_native/complex.c} +116 -118
- data/ext/gsl_native/const.c +331 -0
- data/ext/{const_additional.c → gsl_native/const_additional.c} +13 -34
- data/ext/gsl_native/cqp.c +283 -0
- data/ext/{deriv.c → gsl_native/deriv.c} +25 -33
- data/ext/{dht.c → gsl_native/dht.c} +23 -31
- data/ext/{diff.c → gsl_native/diff.c} +26 -28
- data/ext/{dirac.c → gsl_native/dirac.c} +45 -46
- data/ext/{eigen.c → gsl_native/eigen.c} +1044 -1095
- data/ext/{error.c → gsl_native/error.c} +18 -18
- data/ext/gsl_native/extconf.rb +118 -0
- data/ext/{fft.c → gsl_native/fft.c} +197 -204
- data/ext/{fit.c → gsl_native/fit.c} +17 -18
- data/ext/gsl_native/fresnel.c +312 -0
- data/ext/{function.c → gsl_native/function.c} +37 -43
- data/ext/{geometry.c → gsl_native/geometry.c} +16 -16
- data/ext/{graph.c → gsl_native/graph.c} +39 -89
- data/ext/{gsl.c → gsl_native/gsl.c} +12 -33
- data/ext/{gsl_narray.c → gsl_native/gsl_narray.c} +20 -30
- data/ext/{histogram.c → gsl_native/histogram.c} +133 -160
- data/ext/{histogram2d.c → gsl_native/histogram2d.c} +78 -104
- data/ext/{histogram3d.c → gsl_native/histogram3d.c} +76 -76
- data/ext/{histogram3d_source.c → gsl_native/histogram3d_source.c} +196 -197
- data/ext/{histogram_find.c → gsl_native/histogram_find.c} +32 -34
- data/ext/{histogram_oper.c → gsl_native/histogram_oper.c} +43 -52
- data/ext/{ieee.c → gsl_native/ieee.c} +9 -21
- data/{include → ext/gsl_native/include}/rb_gsl.h +4 -26
- data/{include → ext/gsl_native/include}/rb_gsl_array.h +15 -39
- data/{include → ext/gsl_native/include}/rb_gsl_cheb.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_common.h +61 -61
- data/{include → ext/gsl_native/include}/rb_gsl_complex.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_const.h +0 -6
- data/ext/gsl_native/include/rb_gsl_dirac.h +6 -0
- data/{include → ext/gsl_native/include}/rb_gsl_eigen.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_fft.h +0 -13
- data/{include → ext/gsl_native/include}/rb_gsl_fit.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_function.h +0 -4
- data/{include → ext/gsl_native/include}/rb_gsl_graph.h +2 -4
- data/{include → ext/gsl_native/include}/rb_gsl_histogram.h +8 -8
- data/{include → ext/gsl_native/include}/rb_gsl_histogram3d.h +50 -50
- data/{include → ext/gsl_native/include}/rb_gsl_integration.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_interp.h +0 -5
- data/{include → ext/gsl_native/include}/rb_gsl_linalg.h +2 -6
- data/{include → ext/gsl_native/include}/rb_gsl_math.h +0 -6
- data/{include → ext/gsl_native/include}/rb_gsl_odeiv.h +0 -3
- data/{include → ext/gsl_native/include}/rb_gsl_poly.h +3 -7
- data/{include → ext/gsl_native/include}/rb_gsl_rational.h +1 -8
- data/{include → ext/gsl_native/include}/rb_gsl_rng.h +0 -1
- data/{include → ext/gsl_native/include}/rb_gsl_root.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_sf.h +39 -48
- data/{include → ext/gsl_native/include}/rb_gsl_statistics.h +1 -1
- data/{include → ext/gsl_native/include}/rb_gsl_tensor.h +0 -2
- data/{include → ext/gsl_native/include}/rb_gsl_with_narray.h +3 -1
- data/{include → ext/gsl_native/include}/templates_off.h +0 -0
- data/{include → ext/gsl_native/include}/templates_on.h +1 -1
- data/ext/{integration.c → gsl_native/integration.c} +164 -189
- data/ext/{interp.c → gsl_native/interp.c} +25 -38
- data/ext/gsl_native/jacobi.c +733 -0
- data/ext/{linalg.c → gsl_native/linalg.c} +462 -589
- data/ext/{linalg_complex.c → gsl_native/linalg_complex.c} +93 -106
- data/ext/{math.c → gsl_native/math.c} +48 -67
- data/ext/{matrix.c → gsl_native/matrix.c} +13 -16
- data/ext/{matrix_complex.c → gsl_native/matrix_complex.c} +119 -123
- data/ext/{matrix_double.c → gsl_native/matrix_double.c} +79 -82
- data/ext/{matrix_int.c → gsl_native/matrix_int.c} +53 -54
- data/ext/{matrix_source.c → gsl_native/matrix_source.h} +292 -318
- data/ext/{min.c → gsl_native/min.c} +45 -76
- data/ext/{monte.c → gsl_native/monte.c} +50 -64
- data/ext/{multifit.c → gsl_native/multifit.c} +142 -151
- data/ext/{multimin.c → gsl_native/multimin.c} +64 -92
- data/ext/{multimin_fsdf.c → gsl_native/multimin_fsdf.c} +16 -16
- data/ext/{multiroots.c → gsl_native/multiroots.c} +73 -76
- data/ext/{multiset.c → gsl_native/multiset.c} +4 -8
- data/ext/{ndlinear.c → gsl_native/ndlinear.c} +320 -321
- data/ext/{nmf.c → gsl_native/nmf.c} +11 -11
- data/ext/{nmf_wrap.c → gsl_native/nmf_wrap.c} +1 -1
- data/ext/{ntuple.c → gsl_native/ntuple.c} +23 -23
- data/ext/{odeiv.c → gsl_native/odeiv.c} +101 -116
- data/ext/gsl_native/ool.c +879 -0
- data/ext/{permutation.c → gsl_native/permutation.c} +39 -37
- data/ext/{poly.c → gsl_native/poly.c} +10 -13
- data/ext/{poly2.c → gsl_native/poly2.c} +16 -16
- data/ext/{poly_source.c → gsl_native/poly_source.h} +249 -293
- data/ext/{qrng.c → gsl_native/qrng.c} +9 -20
- data/ext/{randist.c → gsl_native/randist.c} +222 -247
- data/ext/{rational.c → gsl_native/rational.c} +12 -12
- data/ext/{rng.c → gsl_native/rng.c} +30 -47
- data/ext/{root.c → gsl_native/root.c} +47 -48
- data/ext/{sf.c → gsl_native/sf.c} +196 -244
- data/ext/{sf_airy.c → gsl_native/sf_airy.c} +2 -2
- data/ext/{sf_bessel.c → gsl_native/sf_bessel.c} +7 -7
- data/ext/{sf_clausen.c → gsl_native/sf_clausen.c} +1 -1
- data/ext/{sf_coulomb.c → gsl_native/sf_coulomb.c} +40 -40
- data/ext/{sf_coupling.c → gsl_native/sf_coupling.c} +30 -30
- data/ext/{sf_dawson.c → gsl_native/sf_dawson.c} +1 -1
- data/ext/{sf_debye.c → gsl_native/sf_debye.c} +1 -10
- data/ext/{sf_dilog.c → gsl_native/sf_dilog.c} +1 -1
- data/ext/{sf_elementary.c → gsl_native/sf_elementary.c} +3 -3
- data/ext/{sf_ellint.c → gsl_native/sf_ellint.c} +43 -43
- data/ext/{sf_elljac.c → gsl_native/sf_elljac.c} +3 -3
- data/ext/{sf_erfc.c → gsl_native/sf_erfc.c} +1 -5
- data/ext/{sf_exp.c → gsl_native/sf_exp.c} +3 -3
- data/ext/{sf_expint.c → gsl_native/sf_expint.c} +2 -12
- data/ext/{sf_fermi_dirac.c → gsl_native/sf_fermi_dirac.c} +1 -1
- data/ext/{sf_gamma.c → gsl_native/sf_gamma.c} +2 -6
- data/ext/{sf_gegenbauer.c → gsl_native/sf_gegenbauer.c} +1 -1
- data/ext/{sf_hyperg.c → gsl_native/sf_hyperg.c} +1 -1
- data/ext/{sf_laguerre.c → gsl_native/sf_laguerre.c} +4 -4
- data/ext/{sf_lambert.c → gsl_native/sf_lambert.c} +1 -1
- data/ext/{sf_legendre.c → gsl_native/sf_legendre.c} +1 -1
- data/ext/{sf_log.c → gsl_native/sf_log.c} +4 -4
- data/ext/gsl_native/sf_mathieu.c +235 -0
- data/ext/{sf_power.c → gsl_native/sf_power.c} +1 -1
- data/ext/{sf_psi.c → gsl_native/sf_psi.c} +3 -12
- data/ext/{sf_synchrotron.c → gsl_native/sf_synchrotron.c} +1 -1
- data/ext/{sf_transport.c → gsl_native/sf_transport.c} +1 -1
- data/ext/{sf_trigonometric.c → gsl_native/sf_trigonometric.c} +4 -4
- data/ext/{sf_zeta.c → gsl_native/sf_zeta.c} +1 -5
- data/ext/{signal.c → gsl_native/signal.c} +63 -68
- data/ext/{siman.c → gsl_native/siman.c} +45 -49
- data/ext/{sort.c → gsl_native/sort.c} +6 -7
- data/ext/{spline.c → gsl_native/spline.c} +28 -46
- data/ext/{stats.c → gsl_native/stats.c} +105 -118
- data/ext/{sum.c → gsl_native/sum.c} +34 -34
- data/ext/{tamu_anova.c → gsl_native/tamu_anova.c} +1 -1
- data/ext/{tensor.c → gsl_native/tensor.c} +8 -11
- data/ext/{tensor_source.c → gsl_native/tensor_source.h} +147 -148
- data/ext/{vector.c → gsl_native/vector.c} +11 -14
- data/ext/{vector_complex.c → gsl_native/vector_complex.c} +179 -184
- data/ext/{vector_double.c → gsl_native/vector_double.c} +178 -183
- data/ext/{vector_int.c → gsl_native/vector_int.c} +27 -29
- data/ext/{vector_source.c → gsl_native/vector_source.h} +428 -443
- data/ext/{wavelet.c → gsl_native/wavelet.c} +224 -246
- data/gsl.gemspec +29 -0
- data/lib/gsl.rb +8 -3
- data/lib/gsl/gnuplot.rb +3 -3
- data/lib/gsl/oper.rb +35 -60
- data/lib/gsl/version.rb +3 -0
- data/lib/rbgsl.rb +1 -3
- data/rdoc/alf.rdoc +5 -5
- data/rdoc/blas.rdoc +9 -9
- data/rdoc/bspline.rdoc +17 -17
- data/rdoc/changes.rdoc +4 -9
- data/rdoc/cheb.rdoc +25 -25
- data/rdoc/cholesky_complex.rdoc +21 -21
- data/rdoc/combi.rdoc +37 -37
- data/rdoc/complex.rdoc +22 -22
- data/rdoc/const.rdoc +47 -47
- data/rdoc/dht.rdoc +49 -49
- data/rdoc/diff.rdoc +42 -42
- data/rdoc/ehandling.rdoc +6 -6
- data/rdoc/eigen.rdoc +153 -153
- data/rdoc/fft.rdoc +146 -146
- data/rdoc/fit.rdoc +109 -109
- data/rdoc/function.rdoc +11 -11
- data/rdoc/graph.rdoc +17 -17
- data/rdoc/hist.rdoc +103 -103
- data/rdoc/hist2d.rdoc +42 -42
- data/rdoc/hist3d.rdoc +9 -9
- data/rdoc/integration.rdoc +110 -110
- data/rdoc/interp.rdoc +71 -71
- data/rdoc/intro.rdoc +8 -8
- data/rdoc/linalg.rdoc +188 -188
- data/rdoc/linalg_complex.rdoc +1 -1
- data/rdoc/math.rdoc +58 -58
- data/rdoc/matrix.rdoc +275 -275
- data/rdoc/min.rdoc +57 -57
- data/rdoc/monte.rdoc +22 -22
- data/rdoc/multimin.rdoc +95 -95
- data/rdoc/multiroot.rdoc +80 -80
- data/rdoc/narray.rdoc +32 -32
- data/rdoc/ndlinear.rdoc +54 -54
- data/rdoc/nonlinearfit.rdoc +100 -100
- data/rdoc/ntuple.rdoc +31 -31
- data/rdoc/odeiv.rdoc +88 -88
- data/rdoc/perm.rdoc +90 -90
- data/rdoc/poly.rdoc +66 -66
- data/rdoc/qrng.rdoc +21 -21
- data/rdoc/randist.rdoc +82 -82
- data/rdoc/ref.rdoc +57 -57
- data/rdoc/rng.rdoc +85 -85
- data/rdoc/roots.rdoc +57 -57
- data/rdoc/sf.rdoc +428 -428
- data/rdoc/siman.rdoc +19 -19
- data/rdoc/sort.rdoc +30 -30
- data/rdoc/start.rdoc +8 -8
- data/rdoc/stats.rdoc +52 -52
- data/rdoc/sum.rdoc +12 -12
- data/rdoc/tensor.rdoc +31 -31
- data/rdoc/tut.rdoc +1 -1
- data/rdoc/use.rdoc +39 -39
- data/rdoc/vector.rdoc +188 -188
- data/rdoc/vector_complex.rdoc +24 -24
- data/rdoc/wavelet.rdoc +46 -46
- data/test/gsl/blas_test.rb +79 -0
- data/test/gsl/bspline_test.rb +63 -0
- data/test/gsl/cdf_test.rb +1512 -0
- data/test/gsl/cheb_test.rb +80 -0
- data/test/gsl/combination_test.rb +100 -0
- data/test/gsl/complex_test.rb +20 -0
- data/test/gsl/const_test.rb +29 -0
- data/test/gsl/deriv_test.rb +62 -0
- data/test/gsl/dht_test.rb +79 -0
- data/test/gsl/diff_test.rb +53 -0
- data/test/gsl/eigen_test.rb +563 -0
- data/test/gsl/err_test.rb +23 -0
- data/test/gsl/fit_test.rb +101 -0
- data/test/gsl/histo_test.rb +14 -0
- data/test/gsl/index_test.rb +61 -0
- data/test/gsl/integration_test.rb +274 -0
- data/test/gsl/interp_test.rb +27 -0
- data/test/gsl/linalg_test.rb +463 -0
- data/test/gsl/matrix_nmf_test.rb +37 -0
- data/test/gsl/matrix_test.rb +98 -0
- data/test/gsl/min_test.rb +89 -0
- data/test/gsl/monte_test.rb +77 -0
- data/test/gsl/multifit_test.rb +753 -0
- data/test/gsl/multimin_test.rb +157 -0
- data/test/gsl/multiroot_test.rb +135 -0
- data/test/gsl/multiset_test.rb +52 -0
- data/test/gsl/odeiv_test.rb +275 -0
- data/test/gsl/oper_test.rb +98 -0
- data/test/gsl/poly_test.rb +338 -0
- data/test/gsl/qrng_test.rb +94 -0
- data/test/gsl/quartic_test.rb +28 -0
- data/test/gsl/randist_test.rb +122 -0
- data/test/gsl/rng_test.rb +303 -0
- data/test/gsl/roots_test.rb +78 -0
- data/test/gsl/sf_test.rb +2079 -0
- data/test/gsl/stats_test.rb +122 -0
- data/test/gsl/sum_test.rb +69 -0
- data/test/gsl/tensor_test.rb +396 -0
- data/test/gsl/vector_test.rb +223 -0
- data/test/gsl/wavelet_test.rb +130 -0
- data/test/gsl_test.rb +321 -0
- data/test/test_helper.rb +42 -0
- data/uncrustify.cfg +1693 -0
- metadata +337 -378
- data/README +0 -32
- data/VERSION +0 -1
- data/ext/bspline.c +0 -130
- data/ext/const.c +0 -673
- data/ext/cqp.c +0 -283
- data/ext/extconf.rb +0 -295
- data/ext/fcmp.c +0 -66
- data/ext/fresnel.c +0 -312
- data/ext/jacobi.c +0 -739
- data/ext/ool.c +0 -879
- data/ext/oper_complex_source.c +0 -253
- data/ext/sf_mathieu.c +0 -238
- data/include/rb_gsl_config.h +0 -62
- data/include/rb_gsl_dirac.h +0 -13
- data/rdoc/index.rdoc +0 -62
- data/rdoc/rngextra.rdoc +0 -11
- data/rdoc/screenshot.rdoc +0 -40
- data/setup.rb +0 -1585
- data/tests/blas/amax.rb +0 -14
- data/tests/blas/asum.rb +0 -16
- data/tests/blas/axpy.rb +0 -25
- data/tests/blas/copy.rb +0 -23
- data/tests/blas/dot.rb +0 -23
- data/tests/bspline.rb +0 -53
- data/tests/cdf.rb +0 -1388
- data/tests/cheb.rb +0 -112
- data/tests/combination.rb +0 -123
- data/tests/complex.rb +0 -17
- data/tests/const.rb +0 -24
- data/tests/deriv.rb +0 -85
- data/tests/dht/dht1.rb +0 -17
- data/tests/dht/dht2.rb +0 -23
- data/tests/dht/dht3.rb +0 -23
- data/tests/dht/dht4.rb +0 -23
- data/tests/diff.rb +0 -78
- data/tests/eigen/eigen.rb +0 -220
- data/tests/eigen/gen.rb +0 -105
- data/tests/eigen/genherm.rb +0 -66
- data/tests/eigen/gensymm.rb +0 -68
- data/tests/eigen/nonsymm.rb +0 -53
- data/tests/eigen/nonsymmv.rb +0 -53
- data/tests/eigen/symm-herm.rb +0 -74
- data/tests/err.rb +0 -58
- data/tests/fit.rb +0 -124
- data/tests/gsl_test.rb +0 -118
- data/tests/gsl_test2.rb +0 -110
- data/tests/histo.rb +0 -12
- data/tests/integration/integration1.rb +0 -72
- data/tests/integration/integration2.rb +0 -71
- data/tests/integration/integration3.rb +0 -71
- data/tests/integration/integration4.rb +0 -71
- data/tests/interp.rb +0 -45
- data/tests/linalg/HH.rb +0 -64
- data/tests/linalg/LU.rb +0 -47
- data/tests/linalg/QR.rb +0 -77
- data/tests/linalg/SV.rb +0 -24
- data/tests/linalg/TDN.rb +0 -116
- data/tests/linalg/TDS.rb +0 -122
- data/tests/linalg/bidiag.rb +0 -73
- data/tests/linalg/cholesky.rb +0 -20
- data/tests/linalg/linalg.rb +0 -158
- data/tests/matrix/matrix_complex_test.rb +0 -36
- data/tests/matrix/matrix_nmf_test.rb +0 -39
- data/tests/matrix/matrix_test.rb +0 -48
- data/tests/min.rb +0 -99
- data/tests/monte/miser.rb +0 -31
- data/tests/monte/vegas.rb +0 -45
- data/tests/multifit/test_2dgauss.rb +0 -112
- data/tests/multifit/test_brown.rb +0 -90
- data/tests/multifit/test_enso.rb +0 -246
- data/tests/multifit/test_filip.rb +0 -155
- data/tests/multifit/test_gauss.rb +0 -97
- data/tests/multifit/test_longley.rb +0 -110
- data/tests/multifit/test_multifit.rb +0 -52
- data/tests/multimin.rb +0 -139
- data/tests/multiroot.rb +0 -131
- data/tests/multiset.rb +0 -52
- data/tests/narray/blas_dnrm2.rb +0 -20
- data/tests/odeiv.rb +0 -353
- data/tests/poly/poly.rb +0 -290
- data/tests/poly/special.rb +0 -65
- data/tests/qrng.rb +0 -131
- data/tests/quartic.rb +0 -29
- data/tests/randist.rb +0 -134
- data/tests/rng.rb +0 -305
- data/tests/roots.rb +0 -76
- data/tests/run-test.sh +0 -17
- data/tests/sf/gsl_test_sf.rb +0 -249
- data/tests/sf/test_airy.rb +0 -83
- data/tests/sf/test_bessel.rb +0 -306
- data/tests/sf/test_coulomb.rb +0 -17
- data/tests/sf/test_dilog.rb +0 -25
- data/tests/sf/test_gamma.rb +0 -209
- data/tests/sf/test_hyperg.rb +0 -356
- data/tests/sf/test_legendre.rb +0 -227
- data/tests/sf/test_mathieu.rb +0 -59
- data/tests/sf/test_mode.rb +0 -19
- data/tests/sf/test_sf.rb +0 -839
- data/tests/stats.rb +0 -174
- data/tests/stats_mt.rb +0 -16
- data/tests/sum.rb +0 -98
- data/tests/sys.rb +0 -323
- data/tests/tensor.rb +0 -419
- data/tests/vector/vector_complex_test.rb +0 -101
- data/tests/vector/vector_test.rb +0 -141
- data/tests/wavelet.rb +0 -142
@@ -10,14 +10,11 @@
|
|
10
10
|
WITHOUT ANY WARRANTY.
|
11
11
|
*/
|
12
12
|
|
13
|
-
#include "
|
14
|
-
#include "
|
15
|
-
#include "
|
16
|
-
#include "
|
17
|
-
#include "
|
18
|
-
#ifdef HAVE_NARRAY_H
|
19
|
-
#include "rb_gsl_with_narray.h"
|
20
|
-
#endif
|
13
|
+
#include "include/rb_gsl_array.h"
|
14
|
+
#include "include/rb_gsl_histogram.h"
|
15
|
+
#include "include/rb_gsl_complex.h"
|
16
|
+
#include "include/rb_gsl_poly.h"
|
17
|
+
#include "include/rb_gsl_with_narray.h"
|
21
18
|
|
22
19
|
VALUE rb_gsl_vector_inner_product(int argc, VALUE *argv, VALUE obj);
|
23
20
|
static VALUE rb_gsl_vector_product_to_m(int argc, VALUE *argv, VALUE obj);
|
@@ -25,7 +22,7 @@ VALUE rb_gsl_vector_int_to_f(VALUE obj);
|
|
25
22
|
VALUE rb_ary_to_gv(VALUE klass, VALUE ary);
|
26
23
|
|
27
24
|
static VALUE rb_gsl_vector_Xspace(double min, double max, int i,
|
28
|
-
|
25
|
+
gsl_vector* (*f)(const double, const double, const size_t))
|
29
26
|
{
|
30
27
|
gsl_vector *v = NULL;
|
31
28
|
size_t n;
|
@@ -36,8 +33,8 @@ static VALUE rb_gsl_vector_Xspace(double min, double max, int i,
|
|
36
33
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
|
37
34
|
}
|
38
35
|
|
39
|
-
static gsl_vector* gsl_vector_linspace(const double min,
|
40
|
-
|
36
|
+
static gsl_vector* gsl_vector_linspace(const double min,
|
37
|
+
const double max, const size_t n)
|
41
38
|
{
|
42
39
|
gsl_vector *v = NULL;
|
43
40
|
double dx;
|
@@ -54,8 +51,8 @@ static gsl_vector* gsl_vector_linspace(const double min,
|
|
54
51
|
return v;
|
55
52
|
}
|
56
53
|
|
57
|
-
static gsl_vector* gsl_vector_logspace(const double min,
|
58
|
-
|
54
|
+
static gsl_vector* gsl_vector_logspace(const double min,
|
55
|
+
const double max, const size_t n)
|
59
56
|
{
|
60
57
|
gsl_vector *v = NULL;
|
61
58
|
double dx;
|
@@ -87,9 +84,9 @@ static VALUE rb_gsl_vector_linspace(int argc, VALUE *argv, VALUE klass)
|
|
87
84
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 2 or 3)", argc);
|
88
85
|
break;
|
89
86
|
}
|
90
|
-
Need_Float(argv[0]); Need_Float(argv[1]);
|
87
|
+
Need_Float(argv[0]); Need_Float(argv[1]);
|
91
88
|
return rb_gsl_vector_Xspace(NUM2DBL(argv[0]), NUM2DBL(argv[1]), n,
|
92
|
-
|
89
|
+
gsl_vector_linspace);
|
93
90
|
}
|
94
91
|
|
95
92
|
static VALUE rb_gsl_vector_logspace(int argc, VALUE *argv, VALUE klass)
|
@@ -107,9 +104,9 @@ static VALUE rb_gsl_vector_logspace(int argc, VALUE *argv, VALUE klass)
|
|
107
104
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 2 or 3)", argc);
|
108
105
|
break;
|
109
106
|
}
|
110
|
-
Need_Float(argv[0]); Need_Float(argv[1]);
|
107
|
+
Need_Float(argv[0]); Need_Float(argv[1]);
|
111
108
|
return rb_gsl_vector_Xspace(NUM2DBL(argv[0]), NUM2DBL(argv[1]), n,
|
112
|
-
|
109
|
+
gsl_vector_logspace);
|
113
110
|
}
|
114
111
|
|
115
112
|
static VALUE rb_gsl_vector_logspace2(int argc, VALUE *argv, VALUE klass)
|
@@ -127,10 +124,10 @@ static VALUE rb_gsl_vector_logspace2(int argc, VALUE *argv, VALUE klass)
|
|
127
124
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 2 or 3)", argc);
|
128
125
|
break;
|
129
126
|
}
|
130
|
-
Need_Float(argv[0]); Need_Float(argv[1]);
|
131
|
-
return rb_gsl_vector_Xspace(log10(NUM2DBL(argv[0])),
|
132
|
-
|
133
|
-
|
127
|
+
Need_Float(argv[0]); Need_Float(argv[1]);
|
128
|
+
return rb_gsl_vector_Xspace(log10(NUM2DBL(argv[0])),
|
129
|
+
log10(NUM2DBL(argv[1])), n,
|
130
|
+
gsl_vector_logspace);
|
134
131
|
}
|
135
132
|
|
136
133
|
/********************************************************/
|
@@ -145,7 +142,7 @@ enum {
|
|
145
142
|
GSL_VECTOR_DIV,
|
146
143
|
};
|
147
144
|
|
148
|
-
static VALUE rb_gsl_vector_arithmetics(int flag, VALUE obj, VALUE bb)
|
145
|
+
static VALUE rb_gsl_vector_arithmetics(int flag, VALUE obj, VALUE bb)
|
149
146
|
{
|
150
147
|
gsl_vector *v = NULL, *vnew = NULL, *b = NULL;
|
151
148
|
gsl_vector_complex *cvnew = NULL, *cb = NULL;
|
@@ -172,9 +169,9 @@ static VALUE rb_gsl_vector_arithmetics(int flag, VALUE obj, VALUE bb)
|
|
172
169
|
gsl_vector_scale(vnew, 1.0/NUM2DBL(bb));
|
173
170
|
break;
|
174
171
|
}
|
175
|
-
if (!VECTOR_VIEW_P(obj))
|
172
|
+
if (!VECTOR_VIEW_P(obj))
|
176
173
|
return Data_Wrap_Struct(CLASS_OF(obj), 0, gsl_vector_free, vnew);
|
177
|
-
else
|
174
|
+
else
|
178
175
|
return Data_Wrap_Struct(VECTOR_ROW_COL(obj), 0, gsl_vector_free, vnew);
|
179
176
|
break;
|
180
177
|
default:
|
@@ -183,68 +180,68 @@ static VALUE rb_gsl_vector_arithmetics(int flag, VALUE obj, VALUE bb)
|
|
183
180
|
Data_Get_Struct(bb, gsl_vector, b);
|
184
181
|
switch (flag) {
|
185
182
|
case GSL_VECTOR_ADD:
|
186
|
-
|
187
|
-
|
188
|
-
|
183
|
+
vnew = make_vector_clone(v);
|
184
|
+
gsl_vector_add(vnew, b);
|
185
|
+
break;
|
189
186
|
case GSL_VECTOR_SUB:
|
190
|
-
|
191
|
-
|
192
|
-
|
187
|
+
vnew = make_vector_clone(v);
|
188
|
+
gsl_vector_sub(vnew, b);
|
189
|
+
break;
|
193
190
|
case GSL_VECTOR_MUL:
|
194
|
-
|
195
|
-
|
196
|
-
|
191
|
+
vnew = make_vector_clone(v);
|
192
|
+
gsl_vector_mul(vnew, b);
|
193
|
+
break;
|
197
194
|
case GSL_VECTOR_DIV:
|
198
|
-
|
199
|
-
|
200
|
-
|
195
|
+
vnew = make_vector_clone(v);
|
196
|
+
gsl_vector_div(vnew, b);
|
197
|
+
break;
|
201
198
|
}
|
202
|
-
if (!VECTOR_VIEW_P(obj))
|
203
|
-
|
204
|
-
else
|
205
|
-
|
199
|
+
if (!VECTOR_VIEW_P(obj))
|
200
|
+
return Data_Wrap_Struct(CLASS_OF(obj), 0, gsl_vector_free, vnew);
|
201
|
+
else
|
202
|
+
return Data_Wrap_Struct(VECTOR_ROW_COL(obj), 0, gsl_vector_free, vnew);
|
206
203
|
} else if (VECTOR_COMPLEX_P(bb)) {
|
207
204
|
Data_Get_Struct(bb, gsl_vector_complex, cb);
|
208
205
|
cvnew = vector_to_complex(v);
|
209
206
|
switch (flag) {
|
210
207
|
case GSL_VECTOR_ADD:
|
211
|
-
|
212
|
-
|
208
|
+
gsl_vector_complex_add(cvnew, cb);
|
209
|
+
break;
|
213
210
|
case GSL_VECTOR_SUB:
|
214
|
-
|
215
|
-
|
211
|
+
gsl_vector_complex_sub(cvnew, cb);
|
212
|
+
break;
|
216
213
|
case GSL_VECTOR_MUL:
|
217
|
-
|
218
|
-
|
214
|
+
gsl_vector_complex_mul(cvnew, cb);
|
215
|
+
break;
|
219
216
|
case GSL_VECTOR_DIV:
|
220
|
-
|
221
|
-
|
217
|
+
gsl_vector_complex_div(cvnew, cb);
|
218
|
+
break;
|
222
219
|
}
|
223
220
|
if (VECTOR_COL_P(obj))
|
224
|
-
|
221
|
+
return Data_Wrap_Struct(cgsl_vector_complex_col, 0, gsl_vector_complex_free, cvnew);
|
225
222
|
else
|
226
|
-
|
223
|
+
return Data_Wrap_Struct(cgsl_vector_complex, 0, gsl_vector_complex_free, cvnew);
|
227
224
|
} else if (COMPLEX_P(bb)) {
|
228
225
|
Data_Get_Struct(bb, gsl_complex, c);
|
229
226
|
cvnew = vector_to_complex(v);
|
230
227
|
switch (flag) {
|
231
228
|
case GSL_VECTOR_ADD:
|
232
|
-
|
233
|
-
|
229
|
+
gsl_vector_complex_add_constant(cvnew, *c);
|
230
|
+
break;
|
234
231
|
case GSL_VECTOR_SUB:
|
235
|
-
|
236
|
-
|
232
|
+
gsl_vector_complex_add_constant(cvnew, gsl_complex_negative(*c));
|
233
|
+
break;
|
237
234
|
case GSL_VECTOR_MUL:
|
238
|
-
|
239
|
-
|
235
|
+
gsl_vector_complex_scale(cvnew, *c);
|
236
|
+
break;
|
240
237
|
case GSL_VECTOR_DIV:
|
241
|
-
|
242
|
-
|
238
|
+
gsl_vector_complex_scale(cvnew, gsl_complex_inverse(*c));
|
239
|
+
break;
|
243
240
|
}
|
244
|
-
if (VECTOR_COL_P(obj))
|
245
|
-
|
241
|
+
if (VECTOR_COL_P(obj))
|
242
|
+
return Data_Wrap_Struct(cgsl_vector_complex_col, 0, gsl_vector_complex_free, cvnew);
|
246
243
|
else
|
247
|
-
|
244
|
+
return Data_Wrap_Struct(cgsl_vector_complex, 0, gsl_vector_complex_free, cvnew);
|
248
245
|
} else {
|
249
246
|
rb_raise(rb_eTypeError, "wrong type argument %s", rb_class2name(CLASS_OF(bb)));
|
250
247
|
}
|
@@ -413,17 +410,17 @@ static VALUE rb_gsl_vector_coerce(VALUE obj, VALUE other)
|
|
413
410
|
cv = gsl_vector_complex_alloc(v->size);
|
414
411
|
if (cv == NULL) rb_raise(rb_eNoMemError, "gsl_vector_alloc failed");
|
415
412
|
gsl_vector_complex_set_all(cv, *c);
|
416
|
-
if (VECTOR_ROW_P(obj))
|
417
|
-
|
413
|
+
if (VECTOR_ROW_P(obj))
|
414
|
+
vv = Data_Wrap_Struct(cgsl_vector_complex, 0, gsl_vector_complex_free, cv);
|
418
415
|
else
|
419
|
-
|
416
|
+
vv = Data_Wrap_Struct(cgsl_vector_complex_col, 0, gsl_vector_complex_free, cv);
|
420
417
|
return rb_ary_new3(2, vv, obj);
|
421
418
|
} else if (VECTOR_COMPLEX_P(other)) {
|
422
419
|
cv = vector_to_complex(v);
|
423
|
-
if (VECTOR_ROW_P(obj))
|
424
|
-
|
420
|
+
if (VECTOR_ROW_P(obj))
|
421
|
+
vv = Data_Wrap_Struct(cgsl_vector_complex, 0, gsl_vector_complex_free, cv);
|
425
422
|
else
|
426
|
-
|
423
|
+
vv = Data_Wrap_Struct(cgsl_vector_complex_col, 0, gsl_vector_complex_free, cv);
|
427
424
|
return rb_ary_new3(2, other, vv);
|
428
425
|
} else {
|
429
426
|
rb_raise(rb_eTypeError, "cannot coerced");
|
@@ -443,25 +440,25 @@ static VALUE rb_gsl_vector_product_to_m(int argc, VALUE *argv, VALUE obj)
|
|
443
440
|
case T_CLASS:
|
444
441
|
case T_OBJECT:
|
445
442
|
if (argc != 2) rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)",
|
446
|
-
|
443
|
+
argc);
|
447
444
|
if (!VECTOR_COL_P(argv[0]))
|
448
445
|
rb_raise(rb_eTypeError, "wrong argument type %s (GSL::Vector::Col expected)",
|
449
|
-
|
446
|
+
rb_class2name(CLASS_OF(argv[0])));
|
450
447
|
if (!VECTOR_ROW_P(argv[1]))
|
451
448
|
rb_raise(rb_eTypeError, "wrong argument type %s (GSL::Vector expected)",
|
452
|
-
|
449
|
+
rb_class2name(CLASS_OF(argv[1])));
|
453
450
|
Data_Get_Struct(argv[0], gsl_vector, v);
|
454
451
|
Data_Get_Struct(argv[1], gsl_vector, v2);
|
455
452
|
break;
|
456
453
|
default:
|
457
454
|
if (argc != 1) rb_raise(rb_eArgError, "wrong number of arguments (%d for 1)",
|
458
|
-
|
455
|
+
argc);
|
459
456
|
if (!VECTOR_COL_P(obj))
|
460
457
|
rb_raise(rb_eTypeError, "wrong argument type %s (GSL::Vector::Col expected)",
|
461
|
-
|
458
|
+
rb_class2name(CLASS_OF(obj)));
|
462
459
|
if (!VECTOR_ROW_P(argv[0]))
|
463
460
|
rb_raise(rb_eTypeError, "wrong argument type %s (GSL::Vector expected)",
|
464
|
-
|
461
|
+
rb_class2name(CLASS_OF(argv[0])));
|
465
462
|
Data_Get_Struct(obj, gsl_vector, v);
|
466
463
|
Data_Get_Struct(argv[0], gsl_vector, v2);
|
467
464
|
break;
|
@@ -492,7 +489,7 @@ VALUE rb_gsl_vector_to_i(VALUE obj)
|
|
492
489
|
val = (int) gsl_vector_get(v, i);
|
493
490
|
gsl_vector_int_set(vi, i, val);
|
494
491
|
}
|
495
|
-
if (VECTOR_COL_P(obj))
|
492
|
+
if (VECTOR_COL_P(obj))
|
496
493
|
return Data_Wrap_Struct(cgsl_vector_int_col, 0, gsl_vector_int_free, vi);
|
497
494
|
else
|
498
495
|
return Data_Wrap_Struct(cgsl_vector_int, 0, gsl_vector_int_free, vi);
|
@@ -504,9 +501,21 @@ static void draw_hist(VALUE obj, FILE *fp);
|
|
504
501
|
static void draw_vector(VALUE obj, FILE *fp);
|
505
502
|
static void draw_vector2(VALUE xx, VALUE yy, FILE *fp);
|
506
503
|
static void draw_vector_array(VALUE ary, FILE *fp);
|
504
|
+
|
507
505
|
#ifdef HAVE_NARRAY_H
|
508
|
-
static void draw_narray(VALUE obj, FILE *fp)
|
506
|
+
static void draw_narray(VALUE obj, FILE *fp)
|
507
|
+
{
|
508
|
+
struct NARRAY *na;
|
509
|
+
double *ptr;
|
510
|
+
size_t j;
|
511
|
+
GetNArray(obj, na);
|
512
|
+
ptr = (double *) na->ptr;
|
513
|
+
for (j = 0; j < na->total; j++)
|
514
|
+
fprintf(fp, "%d %g\n", (int) j, ptr[j]);
|
515
|
+
fflush(fp);
|
516
|
+
}
|
509
517
|
#endif // HAVE_NARRAY_H
|
518
|
+
|
510
519
|
#endif // HAVE_GNU_GRAPH
|
511
520
|
|
512
521
|
static VALUE rb_gsl_vector_graph2(int argc, VALUE *argv, VALUE obj)
|
@@ -521,7 +530,6 @@ static VALUE rb_gsl_vector_graph2(int argc, VALUE *argv, VALUE obj)
|
|
521
530
|
FILE *fp = NULL;
|
522
531
|
if (argc < 1)
|
523
532
|
rb_raise(rb_eArgError, "two few arguments");
|
524
|
-
|
525
533
|
if (TYPE(argv[argc-1]) == T_STRING) {
|
526
534
|
sprintf(command, "graph -T X %s", STR2CSTR(argv[argc-1]));
|
527
535
|
iend = argc-1;
|
@@ -529,7 +537,6 @@ static VALUE rb_gsl_vector_graph2(int argc, VALUE *argv, VALUE obj)
|
|
529
537
|
strcpy(command, "graph -T X -C -g 3");
|
530
538
|
iend = argc;
|
531
539
|
}
|
532
|
-
|
533
540
|
if (iend == 1) {
|
534
541
|
fp = popen(command, "w");
|
535
542
|
if (fp == NULL) rb_raise(rb_eIOError, "GNU graph not found.");
|
@@ -545,8 +552,8 @@ static VALUE rb_gsl_vector_graph2(int argc, VALUE *argv, VALUE obj)
|
|
545
552
|
#endif
|
546
553
|
} else {
|
547
554
|
if (fp) pclose(fp);
|
548
|
-
rb_raise(rb_eTypeError, "wrong argument type %s",
|
549
|
-
|
555
|
+
rb_raise(rb_eTypeError, "wrong argument type %s",
|
556
|
+
rb_class2name(CLASS_OF(argv[0])));
|
550
557
|
}
|
551
558
|
if (fp) pclose(fp);
|
552
559
|
return Qtrue;
|
@@ -563,7 +570,7 @@ static VALUE rb_gsl_vector_graph2(int argc, VALUE *argv, VALUE obj)
|
|
563
570
|
x = gsl_vector_alloc(h->n);
|
564
571
|
n = x->size;
|
565
572
|
for (j = 0; j < x->size; j++)
|
566
|
-
|
573
|
+
gsl_vector_set(x, j, h->range[j]);
|
567
574
|
flag = 1;
|
568
575
|
draw_hist(argv[0], fp);
|
569
576
|
fprintf(fp, "\n");
|
@@ -579,26 +586,26 @@ static VALUE rb_gsl_vector_graph2(int argc, VALUE *argv, VALUE obj)
|
|
579
586
|
} else if (NIL_P(argv[0])) {
|
580
587
|
if (argc < 2) rb_raise(rb_eArgError, "too few arguments");
|
581
588
|
if (VECTOR_P(argv[1])) {
|
582
|
-
|
583
|
-
|
589
|
+
Data_Get_Struct(argv[1], gsl_vector, y);
|
590
|
+
n = y->size;
|
584
591
|
} else if (HISTOGRAM_P(argv[1])) {
|
585
|
-
|
586
|
-
|
592
|
+
Data_Get_Struct(argv[1], gsl_histogram, h);
|
593
|
+
n = h->n;
|
587
594
|
#ifdef HAVE_NARRAY_H
|
588
595
|
} else if (NA_IsNArray(argv[1])) {
|
589
|
-
|
596
|
+
n = NA_TOTAL(argv[1]);
|
590
597
|
#endif
|
591
598
|
} else {
|
592
|
-
|
593
|
-
|
599
|
+
rb_raise(rb_eTypeError, "wrong argument type %s",
|
600
|
+
rb_class2name(CLASS_OF(argv[0])));
|
594
601
|
}
|
595
602
|
x = gsl_vector_alloc(n);
|
596
603
|
for (j = 0; j < n; j++) gsl_vector_set(x, j, (double) j);
|
597
604
|
flag = 1;
|
598
605
|
} else {
|
599
606
|
if (fp) pclose(fp);
|
600
|
-
rb_raise(rb_eTypeError, "wrong argument type %s",
|
601
|
-
|
607
|
+
rb_raise(rb_eTypeError, "wrong argument type %s",
|
608
|
+
rb_class2name(CLASS_OF(argv[0])));
|
602
609
|
}
|
603
610
|
if (flag == 1) vx = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, x);
|
604
611
|
for (i = 1; i < iend; i++) {
|
@@ -608,9 +615,9 @@ static VALUE rb_gsl_vector_graph2(int argc, VALUE *argv, VALUE obj)
|
|
608
615
|
#ifdef HAVE_NARRAY_H
|
609
616
|
else if (NA_IsNArray(argv[i])) draw_vector2(vx, argv[i], fp);
|
610
617
|
#endif
|
611
|
-
else
|
612
|
-
|
613
|
-
|
618
|
+
else
|
619
|
+
rb_raise(rb_eTypeError, "wrong argument type %s",
|
620
|
+
rb_class2name(CLASS_OF(argv[i])));
|
614
621
|
fprintf(fp, "\n");
|
615
622
|
fflush(fp);
|
616
623
|
}
|
@@ -637,9 +644,6 @@ static void draw_vector(VALUE obj, FILE *fp)
|
|
637
644
|
|
638
645
|
static void draw_vector2(VALUE xx, VALUE yy, FILE *fp)
|
639
646
|
{
|
640
|
-
#ifdef HAVE_NARRAY_H
|
641
|
-
struct NARRAY *nax, *nay;
|
642
|
-
#endif // HAVE_NARRAY_H
|
643
647
|
double *ptr1 = NULL, *ptr2 = NULL;
|
644
648
|
gsl_vector *vx, *vy;
|
645
649
|
size_t j, n, stridex = 1, stridey = 1;
|
@@ -650,6 +654,7 @@ static void draw_vector2(VALUE xx, VALUE yy, FILE *fp)
|
|
650
654
|
stridex = vx->stride;
|
651
655
|
#ifdef HAVE_NARRAY_H
|
652
656
|
} else if (NA_IsNArray(xx)) {
|
657
|
+
struct NARRAY *nax;
|
653
658
|
GetNArray(xx, nax);
|
654
659
|
ptr1 = (double *) nax->ptr;
|
655
660
|
n = nax->total;
|
@@ -657,7 +662,7 @@ static void draw_vector2(VALUE xx, VALUE yy, FILE *fp)
|
|
657
662
|
#endif // HAVE_NARRAY_H
|
658
663
|
} else {
|
659
664
|
rb_raise(rb_eTypeError, "wrong argument type %s (Vector expected)",
|
660
|
-
|
665
|
+
rb_class2name(CLASS_OF(xx)));
|
661
666
|
}
|
662
667
|
if (VECTOR_P(yy)) {
|
663
668
|
Data_Get_Struct(yy, gsl_vector, vy);
|
@@ -666,41 +671,28 @@ static void draw_vector2(VALUE xx, VALUE yy, FILE *fp)
|
|
666
671
|
stridey = vy->stride;
|
667
672
|
#ifdef HAVE_NARRAY_H
|
668
673
|
} else if (NA_IsNArray(yy)) {
|
674
|
+
struct NARRAY *nay;
|
669
675
|
GetNArray(yy, nay);
|
670
676
|
ptr2 = (double *) nay->ptr;
|
671
677
|
stridey = 1;
|
672
678
|
#endif // HAVE_NARRAY_H
|
673
679
|
} else {
|
674
680
|
rb_raise(rb_eTypeError, "wrong argument type %s (Vector expected)",
|
675
|
-
|
681
|
+
rb_class2name(CLASS_OF(yy)));
|
676
682
|
}
|
677
683
|
for (j = 0; j < n; j++)
|
678
684
|
fprintf(fp, "%g %g\n", ptr1[j*stridex], ptr2[j*stridey]);
|
679
685
|
fflush(fp);
|
680
686
|
}
|
681
687
|
|
682
|
-
#ifdef HAVE_NARRAY_H
|
683
|
-
static void draw_narray(VALUE obj, FILE *fp)
|
684
|
-
{
|
685
|
-
struct NARRAY *na;
|
686
|
-
double *ptr;
|
687
|
-
size_t j;
|
688
|
-
GetNArray(obj, na);
|
689
|
-
ptr = (double *) na->ptr;
|
690
|
-
for (j = 0; j < na->total; j++)
|
691
|
-
fprintf(fp, "%d %g\n", (int) j, ptr[j]);
|
692
|
-
fflush(fp);
|
693
|
-
}
|
694
|
-
#endif // HAVE_NARRAY_H
|
695
|
-
|
696
688
|
static void draw_hist(VALUE obj, FILE *fp)
|
697
689
|
{
|
698
690
|
gsl_histogram *h = NULL;
|
699
691
|
size_t j;
|
700
692
|
Data_Get_Struct(obj, gsl_histogram, h);
|
701
693
|
for (j = 0; j < h->n; j++) {
|
702
|
-
fprintf(fp, "%g %g\n%g %g\n",
|
703
|
-
|
694
|
+
fprintf(fp, "%g %g\n%g %g\n",
|
695
|
+
h->range[j], h->bin[j], h->range[j+1], h->bin[j]);
|
704
696
|
}
|
705
697
|
fflush(fp);
|
706
698
|
}
|
@@ -719,7 +711,7 @@ static void draw_vector_array(VALUE ary, FILE *fp)
|
|
719
711
|
case 2:
|
720
712
|
ptry = get_vector_ptr(rb_ary_entry(ary, 1), &stridey, &n);
|
721
713
|
vx = rb_ary_entry(ary, 0);
|
722
|
-
if (NIL_P(vx)) {flag = 1;}
|
714
|
+
if (NIL_P(vx)) {flag = 1; }
|
723
715
|
else {
|
724
716
|
ptrx = get_vector_ptr(vx, &stridex, &n);
|
725
717
|
}
|
@@ -728,32 +720,32 @@ static void draw_vector_array(VALUE ary, FILE *fp)
|
|
728
720
|
ptrz = get_vector_ptr(rb_ary_entry(ary, 2), &stridez, &n);
|
729
721
|
ptry = get_vector_ptr(rb_ary_entry(ary, 1), &stridey, &n);
|
730
722
|
vx = rb_ary_entry(ary, 0);
|
731
|
-
if (NIL_P(vx)) {flag = 2;}
|
723
|
+
if (NIL_P(vx)) {flag = 2; }
|
732
724
|
else {
|
733
725
|
ptrx = get_vector_ptr(vx, &stridex, &n);
|
734
726
|
flag = 3;
|
735
727
|
}
|
736
728
|
break;
|
737
729
|
default:
|
738
|
-
rb_raise(rb_eRuntimeError, "wrong array length (%d for 1 or 2)",
|
739
|
-
|
730
|
+
rb_raise(rb_eRuntimeError, "wrong array length (%d for 1 or 2)",
|
731
|
+
(int) RARRAY_LEN(ary));
|
740
732
|
break;
|
741
733
|
}
|
742
734
|
switch (flag) {
|
743
735
|
case 0:
|
744
|
-
for (j = 0; j < n; j++)
|
736
|
+
for (j = 0; j < n; j++)
|
745
737
|
fprintf(fp, "%g %g\n", ptrx[j*stridex], ptry[j*stridey]);
|
746
738
|
break;
|
747
739
|
case 1:
|
748
|
-
for (j = 0; j < n; j++)
|
740
|
+
for (j = 0; j < n; j++)
|
749
741
|
fprintf(fp, "%d %g\n", (int) j, ptry[j*stridey]);
|
750
742
|
break;
|
751
743
|
case 2:
|
752
|
-
for (j = 0; j < n; j++)
|
744
|
+
for (j = 0; j < n; j++)
|
753
745
|
fprintf(fp, "%d %g %g\n", (int) j, ptry[j*stridey], ptrz[j*stridez]);
|
754
746
|
break;
|
755
747
|
case 3:
|
756
|
-
for (j = 0; j < n; j++)
|
748
|
+
for (j = 0; j < n; j++)
|
757
749
|
fprintf(fp, "%g %g %g\n", ptrx[j*stridex], ptry[j*stridey], ptrz[j*stridez]);
|
758
750
|
break;
|
759
751
|
default:
|
@@ -777,7 +769,7 @@ static VALUE rb_gsl_vector_plot2(int argc, VALUE *argv, VALUE obj)
|
|
777
769
|
case 5:
|
778
770
|
if (TYPE(argv[4]) == T_STRING)
|
779
771
|
sprintf(command, "%s %s", command, STR2CSTR(argv[4]));
|
780
|
-
|
772
|
+
/* no break */
|
781
773
|
case 4:
|
782
774
|
if (TYPE(argv[3]) == T_STRING) {
|
783
775
|
sprintf(command, "%s %s", command, STR2CSTR(argv[3]));
|
@@ -785,9 +777,9 @@ static VALUE rb_gsl_vector_plot2(int argc, VALUE *argv, VALUE obj)
|
|
785
777
|
Data_Get_Struct(argv[3], gsl_vector, yerr);
|
786
778
|
} else {
|
787
779
|
rb_raise(rb_eTypeError, "argv[3] wrong type %s (String or Vector expected)",
|
788
|
-
|
780
|
+
rb_class2name(CLASS_OF(argv[3])));
|
789
781
|
}
|
790
|
-
|
782
|
+
/* no break */
|
791
783
|
case 3:
|
792
784
|
if (TYPE(argv[2]) == T_STRING) {
|
793
785
|
sprintf(command, "%s %s", command, STR2CSTR(argv[2]));
|
@@ -795,9 +787,9 @@ static VALUE rb_gsl_vector_plot2(int argc, VALUE *argv, VALUE obj)
|
|
795
787
|
Data_Get_Struct(argv[2], gsl_vector, xerr);
|
796
788
|
} else {
|
797
789
|
rb_raise(rb_eTypeError, "argv[2] wrong type %s (String or Vector expected)",
|
798
|
-
|
790
|
+
rb_class2name(CLASS_OF(argv[2])));
|
799
791
|
}
|
800
|
-
|
792
|
+
/* no break */
|
801
793
|
case 2:
|
802
794
|
if (TYPE(argv[1]) == T_STRING) {
|
803
795
|
sprintf(command, "%s %s", command, STR2CSTR(argv[1]));
|
@@ -805,9 +797,9 @@ static VALUE rb_gsl_vector_plot2(int argc, VALUE *argv, VALUE obj)
|
|
805
797
|
Data_Get_Struct(argv[1], gsl_vector, y);
|
806
798
|
} else {
|
807
799
|
rb_raise(rb_eTypeError, "argv[1] wrong type %s (String or Vector expected)",
|
808
|
-
|
800
|
+
rb_class2name(CLASS_OF(argv[1])));
|
809
801
|
}
|
810
|
-
|
802
|
+
/* no break */
|
811
803
|
case 1:
|
812
804
|
if (TYPE(argv[0]) == T_STRING) {
|
813
805
|
sprintf(command, "%s %s", command, STR2CSTR(argv[0]));
|
@@ -815,7 +807,7 @@ static VALUE rb_gsl_vector_plot2(int argc, VALUE *argv, VALUE obj)
|
|
815
807
|
Data_Get_Struct(argv[0], gsl_vector, x);
|
816
808
|
} else {
|
817
809
|
rb_raise(rb_eTypeError, "argv[0] wrong type %s (String or Vector expected)",
|
818
|
-
|
810
|
+
rb_class2name(CLASS_OF(argv[0])));
|
819
811
|
}
|
820
812
|
break;
|
821
813
|
default:
|
@@ -826,16 +818,16 @@ static VALUE rb_gsl_vector_plot2(int argc, VALUE *argv, VALUE obj)
|
|
826
818
|
n = x->size;
|
827
819
|
fprintf(fp, "%s\n", command);
|
828
820
|
for (i = 0; i < n; i++) {
|
829
|
-
if (y == NULL)
|
821
|
+
if (y == NULL)
|
830
822
|
fprintf(fp, "%d %g\n", (int) i, gsl_vector_get(x, i));
|
831
823
|
else if (yerr == NULL)
|
832
824
|
fprintf(fp, "%g %g\n", gsl_vector_get(x, i), gsl_vector_get(y, i));
|
833
|
-
else if (xerr)
|
825
|
+
else if (xerr)
|
834
826
|
fprintf(fp, "%g %g %g %g\n", gsl_vector_get(x, i), gsl_vector_get(y, i),
|
835
|
-
|
827
|
+
gsl_vector_get(xerr, i), gsl_vector_get(yerr, i));
|
836
828
|
else
|
837
|
-
|
838
|
-
|
829
|
+
fprintf(fp, "%g %g %g\n", gsl_vector_get(x, i), gsl_vector_get(y, i),
|
830
|
+
gsl_vector_get(yerr, i));
|
839
831
|
}
|
840
832
|
fprintf(fp, "e\n");
|
841
833
|
fflush(fp);
|
@@ -865,10 +857,10 @@ static VALUE rb_gsl_vector_normalize(int argc, VALUE *argv, VALUE obj)
|
|
865
857
|
vnew = make_vector_clone(v);
|
866
858
|
/* mean = gsl_stats_mean(v->data, v->stride, v->size);
|
867
859
|
gsl_vector_add_constant(vnew, -mean);
|
868
|
-
sd = gsl_stats_sd(vnew->data, vnew->stride, vnew->size);
|
860
|
+
sd = gsl_stats_sd(vnew->data, vnew->stride, vnew->size);
|
869
861
|
gsl_vector_scale(vnew, sqrt(nrm)/sd);*/
|
870
862
|
gsl_vector_scale(vnew, nrm/gsl_blas_dnrm2(v));
|
871
|
-
return Data_Wrap_Struct(VECTOR_ROW_COL(obj), 0, gsl_vector_free, vnew);
|
863
|
+
return Data_Wrap_Struct(VECTOR_ROW_COL(obj), 0, gsl_vector_free, vnew);
|
872
864
|
}
|
873
865
|
|
874
866
|
static VALUE rb_gsl_vector_normalize_bang(int argc, VALUE *argv, VALUE obj)
|
@@ -892,7 +884,7 @@ static VALUE rb_gsl_vector_normalize_bang(int argc, VALUE *argv, VALUE obj)
|
|
892
884
|
Data_Get_Vector(obj, v);
|
893
885
|
/* mean = gsl_stats_mean(v->data, v->stride, v->size);
|
894
886
|
gsl_vector_add_constant(v, -mean);
|
895
|
-
sd = gsl_stats_sd(v->data, v->stride, v->size);
|
887
|
+
sd = gsl_stats_sd(v->data, v->stride, v->size);
|
896
888
|
gsl_vector_scale(v, sqrt(nrm)/sd);*/
|
897
889
|
factor = nrm/gsl_blas_dnrm2(v);
|
898
890
|
gsl_vector_scale(v, factor);
|
@@ -914,13 +906,15 @@ static VALUE rb_gsl_vector_filescan_na(VALUE klass, VALUE file)
|
|
914
906
|
strcpy(filename, STR2CSTR(file));
|
915
907
|
sprintf(buf, "wc %s", filename);
|
916
908
|
fp = popen(buf, "r");
|
917
|
-
fgets(buf, 1024, fp)
|
909
|
+
if (fgets(buf, 1024, fp) == NULL)
|
910
|
+
rb_sys_fail(0);
|
918
911
|
pclose(fp);
|
919
912
|
sscanf(buf, "%d", &nn);
|
920
913
|
lines = (size_t) nn; /* vector length */
|
921
914
|
shape[0] = lines;
|
922
915
|
fp = fopen(filename, "r");
|
923
|
-
fgets(buf, 1024, fp)
|
916
|
+
if (fgets(buf, 1024, fp) == NULL)
|
917
|
+
rb_sys_fail(0);
|
924
918
|
n = count_columns(buf); /* number of vectors created */
|
925
919
|
ptr = (double**) xmalloc(sizeof(double**)*n);
|
926
920
|
ary = rb_ary_new2(n);
|
@@ -934,12 +928,13 @@ static VALUE rb_gsl_vector_filescan_na(VALUE klass, VALUE file)
|
|
934
928
|
else break;
|
935
929
|
}
|
936
930
|
for (i = 1; i < lines; i++) {
|
937
|
-
fgets(buf, 1024, fp)
|
931
|
+
if (fgets(buf, 1024, fp) == NULL)
|
932
|
+
rb_sys_fail(0);
|
938
933
|
p = buf;
|
939
934
|
for (j = 0; j < n; j++) {
|
940
935
|
p = str_scan_double(p, &val);
|
941
936
|
if (p) ptr[j][i] = val;
|
942
|
-
else break;
|
937
|
+
else break;
|
943
938
|
}
|
944
939
|
}
|
945
940
|
fclose(fp);
|
@@ -956,9 +951,9 @@ static VALUE rb_gsl_vector_decimate(VALUE obj, VALUE nn)
|
|
956
951
|
CHECK_FIXNUM(nn);
|
957
952
|
Data_Get_Vector(obj, v);
|
958
953
|
n = (size_t) FIX2INT(nn);
|
959
|
-
if (n > v->size)
|
960
|
-
rb_raise(rb_eArgError,
|
961
|
-
|
954
|
+
if (n > v->size)
|
955
|
+
rb_raise(rb_eArgError,
|
956
|
+
"decimation factor must be smaller than the vector length.");
|
962
957
|
if (n == 0) rb_raise(rb_eArgError, "decimation factor must be greater than 1");
|
963
958
|
n2 = (size_t) ceil((double)v->size/n);
|
964
959
|
vnew = gsl_vector_alloc(n2);
|
@@ -967,7 +962,7 @@ static VALUE rb_gsl_vector_decimate(VALUE obj, VALUE nn)
|
|
967
962
|
if (i == n2-1) vv = gsl_vector_subvector(v, i*n, n3);
|
968
963
|
else vv = gsl_vector_subvector(v, i*n, n);
|
969
964
|
gsl_vector_set(vnew, i, gsl_stats_mean(vv.vector.data, vv.vector.stride,
|
970
|
-
|
965
|
+
vv.vector.size));
|
971
966
|
}
|
972
967
|
return Data_Wrap_Struct(VECTOR_ROW_COL(obj), 0, gsl_vector_free, vnew);
|
973
968
|
}
|
@@ -1075,21 +1070,21 @@ static VALUE rb_gsl_vector_rotate_bang(int argc, VALUE *argv, VALUE klass)
|
|
1075
1070
|
v0 = rb_ary_entry(argv[0], 0);
|
1076
1071
|
v1 = rb_ary_entry(argv[0], 1);
|
1077
1072
|
if (VECTOR_P(v0) && VECTOR_P(v1)) {
|
1078
|
-
|
1079
|
-
|
1080
|
-
|
1081
|
-
|
1082
|
-
|
1073
|
+
Data_Get_Struct(v0, gsl_vector, vx);
|
1074
|
+
Data_Get_Struct(v1, gsl_vector, vy);
|
1075
|
+
n = (size_t) GSL_MIN(vx->size, vy->size);
|
1076
|
+
rad = NUM2DBL(argv[1]);
|
1077
|
+
retval = argv[0];
|
1083
1078
|
} else {
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1079
|
+
x = NUM2DBL(rb_ary_entry(argv[0], 0));
|
1080
|
+
y = NUM2DBL(rb_ary_entry(argv[0], 1));
|
1081
|
+
rad = NUM2DBL(argv[1]);
|
1082
|
+
c = cos(rad); s = sin(rad);
|
1083
|
+
return rb_ary_new3(2, rb_float_new(c*x - s*y), rb_float_new(s*x + c*y));
|
1089
1084
|
}
|
1090
1085
|
} else {
|
1091
1086
|
rb_raise(rb_eTypeError, "wrong argument type %s (Array expected)",
|
1092
|
-
|
1087
|
+
rb_class2name(CLASS_OF(argv[0])));
|
1093
1088
|
}
|
1094
1089
|
break;
|
1095
1090
|
case 3:
|
@@ -1134,19 +1129,19 @@ static VALUE rb_gsl_vector_rotate(int argc, VALUE *argv, VALUE klass)
|
|
1134
1129
|
v0 = rb_ary_entry(argv[0], 0);
|
1135
1130
|
v1 = rb_ary_entry(argv[0], 1);
|
1136
1131
|
if (VECTOR_P(v0) && VECTOR_P(v1)) {
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1132
|
+
Data_Get_Struct(v0, gsl_vector, vx);
|
1133
|
+
Data_Get_Struct(v1, gsl_vector, vy);
|
1134
|
+
rad = NUM2DBL(argv[1]);
|
1140
1135
|
} else {
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1136
|
+
x = NUM2DBL(rb_ary_entry(argv[0], 0));
|
1137
|
+
y = NUM2DBL(rb_ary_entry(argv[0], 1));
|
1138
|
+
rad = NUM2DBL(argv[1]);
|
1139
|
+
c = cos(rad); s = sin(rad);
|
1140
|
+
return rb_ary_new3(2, rb_float_new(c*x - s*y), rb_float_new(s*x + c*y));
|
1146
1141
|
}
|
1147
1142
|
} else {
|
1148
1143
|
rb_raise(rb_eTypeError, "wrong argument type %s (Array expected)",
|
1149
|
-
|
1144
|
+
rb_class2name(CLASS_OF(argv[0])));
|
1150
1145
|
}
|
1151
1146
|
break;
|
1152
1147
|
case 3:
|
@@ -1177,7 +1172,7 @@ static VALUE rb_gsl_vector_rotate(int argc, VALUE *argv, VALUE klass)
|
|
1177
1172
|
gsl_vector_set(vynew, i, s*x + c*y);
|
1178
1173
|
}
|
1179
1174
|
return rb_ary_new3(2, Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vxnew),
|
1180
|
-
|
1175
|
+
Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vynew));
|
1181
1176
|
}
|
1182
1177
|
|
1183
1178
|
#include "gsl/gsl_fit.h"
|
@@ -1193,21 +1188,21 @@ static VALUE rb_gsl_vector_linearfit(int argc, VALUE *argv, VALUE klass)
|
|
1193
1188
|
Data_Get_Struct(argv[1], gsl_vector, w);
|
1194
1189
|
Data_Get_Struct(argv[2], gsl_vector, y);
|
1195
1190
|
gsl_fit_wlinear(x->data, x->stride, w->data, w->stride,
|
1196
|
-
|
1197
|
-
|
1191
|
+
y->data, y->stride, y->size, &c0, &c1, &c00, &c01, &c11,
|
1192
|
+
&sumsq);
|
1198
1193
|
break;
|
1199
1194
|
case 2:
|
1200
|
-
CHECK_VECTOR(argv[0]); CHECK_VECTOR(argv[1]);
|
1195
|
+
CHECK_VECTOR(argv[0]); CHECK_VECTOR(argv[1]);
|
1201
1196
|
Data_Get_Struct(argv[0], gsl_vector, x);
|
1202
1197
|
Data_Get_Struct(argv[1], gsl_vector, y);
|
1203
|
-
gsl_fit_linear(x->data, x->stride, y->data,y->stride, y->size,
|
1204
|
-
|
1198
|
+
gsl_fit_linear(x->data, x->stride, y->data,y->stride, y->size,
|
1199
|
+
&c0, &c1, &c00, &c01, &c11, &sumsq);
|
1205
1200
|
break;
|
1206
1201
|
default:
|
1207
1202
|
rb_raise(rb_eArgError, "Wrong number of arguments (%d for 2 or 3).\n", argc);
|
1208
1203
|
}
|
1209
1204
|
return rb_ary_new3(6, rb_float_new(c0), rb_float_new(c1), rb_float_new(c00),
|
1210
|
-
|
1205
|
+
rb_float_new(c01), rb_float_new(c11), rb_float_new(sumsq));
|
1211
1206
|
}
|
1212
1207
|
|
1213
1208
|
static VALUE rb_gsl_vector_center(VALUE obj)
|
@@ -1224,7 +1219,7 @@ static VALUE rb_gsl_vector_center(VALUE obj)
|
|
1224
1219
|
|
1225
1220
|
static VALUE rb_gsl_vector_clip(int argc, VALUE *argv, VALUE obj)
|
1226
1221
|
{
|
1227
|
-
gsl_vector *v, *vnew;
|
1222
|
+
gsl_vector *v, *vnew;
|
1228
1223
|
double hi = 1.0, lo = 0.0;
|
1229
1224
|
double x;
|
1230
1225
|
size_t i;
|
@@ -1252,7 +1247,7 @@ static VALUE rb_gsl_vector_clip(int argc, VALUE *argv, VALUE obj)
|
|
1252
1247
|
x = gsl_vector_get(v, i);
|
1253
1248
|
if (x > hi) x = hi;
|
1254
1249
|
else if (x < lo) x = lo;
|
1255
|
-
else
|
1250
|
+
else {}
|
1256
1251
|
gsl_vector_set(vnew, i, x);
|
1257
1252
|
}
|
1258
1253
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
@@ -1269,12 +1264,12 @@ static VALUE rb_gsl_vector_amp_phase(VALUE obj)
|
|
1269
1264
|
amp = gsl_vector_alloc(v->size/2);
|
1270
1265
|
phase = gsl_vector_alloc(v->size/2);
|
1271
1266
|
gsl_vector_set(amp, 0, gsl_vector_get(v, 0));
|
1272
|
-
gsl_vector_set(phase, 0, 0);
|
1267
|
+
gsl_vector_set(phase, 0, 0);
|
1273
1268
|
gsl_vector_set(amp, amp->size-1, gsl_vector_get(v, v->size-1));
|
1274
|
-
gsl_vector_set(phase, phase->size-1, 0);
|
1275
|
-
for (i = 1; i < v->size-1; i+=2) {
|
1269
|
+
gsl_vector_set(phase, phase->size-1, 0);
|
1270
|
+
for (i = 1; i < v->size-1; i += 2) {
|
1276
1271
|
re = gsl_vector_get(v, i);
|
1277
|
-
im = gsl_vector_get(v, i+1);
|
1272
|
+
im = gsl_vector_get(v, i+1);
|
1278
1273
|
gsl_vector_set(amp, i/2+1, sqrt(re*re + im*im));
|
1279
1274
|
gsl_vector_set(phase, i/2+1, atan2(im, re));
|
1280
1275
|
}
|
@@ -1305,7 +1300,7 @@ static VALUE rb_gsl_vector_clean(int argc, VALUE *argv, VALUE obj)
|
|
1305
1300
|
vnew = make_vector_clone(v);
|
1306
1301
|
n = v->size;
|
1307
1302
|
for (i = 0; i < n; i++) if (fabs(vnew->data[i]) < eps) vnew->data[i] = 0.0;
|
1308
|
-
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew)
|
1303
|
+
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
1309
1304
|
}
|
1310
1305
|
|
1311
1306
|
static VALUE rb_gsl_vector_clean_bang(int argc, VALUE *argv, VALUE obj)
|
@@ -1428,11 +1423,11 @@ void Init_gsl_vector(VALUE module)
|
|
1428
1423
|
rb_define_method(cgsl_vector, "amp_phase", rb_gsl_vector_amp_phase, 0);
|
1429
1424
|
rb_define_method(cgsl_vector, "clean", rb_gsl_vector_clean, -1);
|
1430
1425
|
rb_define_method(cgsl_vector, "clean!", rb_gsl_vector_clean_bang, -1);
|
1431
|
-
|
1426
|
+
|
1432
1427
|
rb_define_method(cgsl_vector, "pow", rb_gsl_vector_pow, 1);
|
1433
1428
|
rb_define_alias(cgsl_vector, "**", "pow");
|
1434
|
-
|
1435
|
-
rb_define_method(cgsl_vector, "pow!", rb_gsl_vector_pow_bang, 1);
|
1436
|
-
|
1429
|
+
|
1430
|
+
rb_define_method(cgsl_vector, "pow!", rb_gsl_vector_pow_bang, 1);
|
1431
|
+
|
1437
1432
|
Init_gsl_vector_init(module);
|
1438
1433
|
}
|