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
@@ -8,16 +8,12 @@
|
|
8
8
|
This library is distributed in the hope that it will be useful, but
|
9
9
|
WITHOUT ANY WARRANTY.
|
10
10
|
*/
|
11
|
-
|
12
|
-
#
|
13
|
-
#include "
|
14
|
-
#include "rb_gsl_function.h"
|
11
|
+
|
12
|
+
#include "include/rb_gsl_common.h"
|
13
|
+
#include "include/rb_gsl_function.h"
|
15
14
|
#include <gsl/gsl_math.h>
|
16
15
|
#include <gsl/gsl_deriv.h>
|
17
16
|
#define RB_GSL_DERIV_H_DEFAULT (1e-8)
|
18
|
-
#ifdef HAVE_NARRAY_H
|
19
|
-
#include "narray.h"
|
20
|
-
#endif
|
21
17
|
|
22
18
|
static int get_func2(int argc, VALUE *argv, VALUE obj, VALUE *ff, VALUE *xx, VALUE *hh)
|
23
19
|
{
|
@@ -62,10 +58,10 @@ static int get_func2(int argc, VALUE *argv, VALUE obj, VALUE *ff, VALUE *xx, VAL
|
|
62
58
|
#undef RB_GSL_DERIV_H_DEFAULT
|
63
59
|
#endif
|
64
60
|
|
65
|
-
static VALUE rb_gsl_deriv_eval(VALUE obj, VALUE xx, VALUE hh,
|
66
|
-
|
67
|
-
|
68
|
-
|
61
|
+
static VALUE rb_gsl_deriv_eval(VALUE obj, VALUE xx, VALUE hh,
|
62
|
+
int (*deriv)(const gsl_function *,
|
63
|
+
double, double,
|
64
|
+
double *, double *))
|
69
65
|
{
|
70
66
|
gsl_function *f = NULL;
|
71
67
|
double result, abserr, h;
|
@@ -74,11 +70,6 @@ static VALUE rb_gsl_deriv_eval(VALUE obj, VALUE xx, VALUE hh,
|
|
74
70
|
gsl_matrix *m = NULL, *mnew = NULL, *merr = NULL;
|
75
71
|
size_t n, i, j;
|
76
72
|
int status;
|
77
|
-
#ifdef HAVE_NARRAY_H
|
78
|
-
struct NARRAY *na;
|
79
|
-
double *ptr1, *ptr2, *ptr3;
|
80
|
-
VALUE ary2, ary3;
|
81
|
-
#endif
|
82
73
|
Need_Float(hh);
|
83
74
|
Data_Get_Struct(obj, gsl_function, f);
|
84
75
|
h = NUM2DBL(hh);
|
@@ -107,6 +98,9 @@ static VALUE rb_gsl_deriv_eval(VALUE obj, VALUE xx, VALUE hh,
|
|
107
98
|
default:
|
108
99
|
#ifdef HAVE_NARRAY_H
|
109
100
|
if (NA_IsNArray(xx)) {
|
101
|
+
struct NARRAY *na;
|
102
|
+
double *ptr1, *ptr2, *ptr3;
|
103
|
+
VALUE ary2, ary3;
|
110
104
|
GetNArray(xx, na);
|
111
105
|
n = na->total;
|
112
106
|
ptr1 = (double*) na->ptr;
|
@@ -115,9 +109,9 @@ static VALUE rb_gsl_deriv_eval(VALUE obj, VALUE xx, VALUE hh,
|
|
115
109
|
ptr2 = NA_PTR_TYPE(ary2, double*);
|
116
110
|
ptr3 = NA_PTR_TYPE(ary3, double*);
|
117
111
|
for (i = 0; i < n; i++) {
|
118
|
-
|
119
|
-
|
120
|
-
|
112
|
+
(*deriv)(f, ptr1[i], h, &result, &abserr);
|
113
|
+
ptr2[i] = result;
|
114
|
+
ptr3[i] = abserr;
|
121
115
|
}
|
122
116
|
return rb_ary_new3(2, ary2, ary3);
|
123
117
|
}
|
@@ -127,27 +121,27 @@ static VALUE rb_gsl_deriv_eval(VALUE obj, VALUE xx, VALUE hh,
|
|
127
121
|
vnew = gsl_vector_alloc(v->size);
|
128
122
|
verr = gsl_vector_alloc(v->size);
|
129
123
|
for (i = 0; i < v->size; i++) {
|
130
|
-
|
131
|
-
|
132
|
-
|
124
|
+
(*deriv)(f, gsl_vector_get(v, i), h, &result, &abserr);
|
125
|
+
gsl_vector_set(vnew, i, result);
|
126
|
+
gsl_vector_set(verr, i, abserr);
|
133
127
|
}
|
134
128
|
return rb_ary_new3(2,
|
135
|
-
|
136
|
-
|
129
|
+
Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew),
|
130
|
+
Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, verr));
|
137
131
|
} else if (MATRIX_P(xx)) {
|
138
132
|
Data_Get_Struct(xx, gsl_matrix, m);
|
139
133
|
mnew = gsl_matrix_alloc(m->size1, m->size2);
|
140
134
|
merr = gsl_matrix_alloc(m->size1, m->size2);
|
141
135
|
for (i = 0; i < m->size1; i++) {
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
136
|
+
for (j = 0; j < m->size2; j++) {
|
137
|
+
(*deriv)(f, gsl_matrix_get(m, i, j), h, &result, &abserr);
|
138
|
+
gsl_matrix_set(mnew, i, j, result);
|
139
|
+
gsl_matrix_set(merr, i, j, abserr);
|
140
|
+
}
|
147
141
|
}
|
148
142
|
return rb_ary_new3(2,
|
149
|
-
|
150
|
-
|
143
|
+
Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew),
|
144
|
+
Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, merr));
|
151
145
|
} else {
|
152
146
|
rb_raise(rb_eTypeError, "wrong argument type");
|
153
147
|
}
|
@@ -191,5 +185,3 @@ void Init_gsl_deriv(VALUE module)
|
|
191
185
|
rb_define_singleton_method(mgsl_deriv, "forward", rb_gsl_deriv_forward, -1);
|
192
186
|
rb_define_singleton_method(mgsl_deriv, "backward", rb_gsl_deriv_backward, -1);
|
193
187
|
}
|
194
|
-
|
195
|
-
#endif
|
@@ -9,13 +9,10 @@
|
|
9
9
|
WITHOUT ANY WARRANTY.
|
10
10
|
*/
|
11
11
|
|
12
|
-
#include "rb_gsl.h"
|
13
|
-
#include "rb_gsl_array.h"
|
14
|
-
#include "rb_gsl_common.h"
|
12
|
+
#include "include/rb_gsl.h"
|
13
|
+
#include "include/rb_gsl_array.h"
|
14
|
+
#include "include/rb_gsl_common.h"
|
15
15
|
#include <gsl/gsl_dht.h>
|
16
|
-
#ifdef HAVE_NARRAY_H
|
17
|
-
#include "narray.h"
|
18
|
-
#endif
|
19
16
|
|
20
17
|
static VALUE rb_gsl_dht_alloc(int argc, VALUE *argv, VALUE klass)
|
21
18
|
{
|
@@ -29,7 +26,7 @@ static VALUE rb_gsl_dht_alloc(int argc, VALUE *argv, VALUE klass)
|
|
29
26
|
CHECK_FIXNUM(argv[0]);
|
30
27
|
Need_Float(argv[1]); Need_Float(argv[2]);
|
31
28
|
t = gsl_dht_new(FIX2INT(argv[0]), NUM2DBL(argv[1]), NUM2DBL(argv[2]));
|
32
|
-
|
29
|
+
break;
|
33
30
|
default:
|
34
31
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 1 or 3)", argc);
|
35
32
|
break;
|
@@ -52,9 +49,6 @@ static VALUE rb_gsl_dht_apply(int argc, VALUE *argv, VALUE obj)
|
|
52
49
|
double *ptr1, *ptr2;
|
53
50
|
gsl_vector *vin, *vout;
|
54
51
|
size_t size, stride;
|
55
|
-
#ifdef HAVE_NARRAY_H
|
56
|
-
struct NARRAY *na;
|
57
|
-
#endif
|
58
52
|
VALUE ary;
|
59
53
|
switch (argc) {
|
60
54
|
case 2:
|
@@ -73,6 +67,7 @@ static VALUE rb_gsl_dht_apply(int argc, VALUE *argv, VALUE obj)
|
|
73
67
|
ary = Data_Wrap_Struct(VECTOR_ROW_COL(argv[0]), 0, gsl_vector_free, vout);
|
74
68
|
#ifdef HAVE_NARRAY_H
|
75
69
|
} else if (NA_IsNArray(argv[0])) {
|
70
|
+
struct NARRAY *na;
|
76
71
|
GetNArray(argv[0], na);
|
77
72
|
ptr1 = (double*)na->ptr;
|
78
73
|
ary = na_make_object(NA_DFLOAT, na->rank, na->shape, CLASS_OF(argv[0]));
|
@@ -80,7 +75,7 @@ static VALUE rb_gsl_dht_apply(int argc, VALUE *argv, VALUE obj)
|
|
80
75
|
#endif
|
81
76
|
} else {
|
82
77
|
rb_raise(rb_eTypeError, "wrong argument type %s (Vector expected)",
|
83
|
-
|
78
|
+
rb_class2name(CLASS_OF(argv[0])));
|
84
79
|
}
|
85
80
|
gsl_dht_apply(t, ptr1, ptr2);
|
86
81
|
return ary;
|
@@ -92,8 +87,8 @@ static VALUE rb_gsl_dht_apply(int argc, VALUE *argv, VALUE obj)
|
|
92
87
|
return Qnil; /* never reach here */
|
93
88
|
}
|
94
89
|
|
95
|
-
static VALUE rb_gsl_dht_xk_sample(VALUE obj, VALUE n,
|
96
|
-
|
90
|
+
static VALUE rb_gsl_dht_xk_sample(VALUE obj, VALUE n,
|
91
|
+
double (*sample)(const gsl_dht*, int))
|
97
92
|
{
|
98
93
|
gsl_dht *t = NULL;
|
99
94
|
gsl_vector_int *vi;
|
@@ -102,11 +97,6 @@ static VALUE rb_gsl_dht_xk_sample(VALUE obj, VALUE n,
|
|
102
97
|
int nn;
|
103
98
|
VALUE ary;
|
104
99
|
double val;
|
105
|
-
#ifdef HAVE_NARRAY_H
|
106
|
-
struct NARRAY *na;
|
107
|
-
int *ptr;
|
108
|
-
double *ptr2;
|
109
|
-
#endif
|
110
100
|
Data_Get_Struct(obj, gsl_dht, t);
|
111
101
|
if (CLASS_OF(n) == rb_cRange) n = rb_gsl_range2ary(n);
|
112
102
|
switch (TYPE(n)) {
|
@@ -129,28 +119,30 @@ static VALUE rb_gsl_dht_xk_sample(VALUE obj, VALUE n,
|
|
129
119
|
Data_Get_Struct(n, gsl_vector_int, vi);
|
130
120
|
v = gsl_vector_alloc(vi->size);
|
131
121
|
for (i = 0; i < v->size; i++) {
|
132
|
-
|
133
|
-
|
134
|
-
|
122
|
+
nn = gsl_vector_int_get(vi, i);
|
123
|
+
val = (*sample)(t, nn);
|
124
|
+
gsl_vector_set(v, i, val);
|
135
125
|
}
|
136
126
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
|
137
127
|
#ifdef HAVE_NARRAY_H
|
138
128
|
} else if (NA_IsNArray(n)) {
|
129
|
+
struct NARRAY *na;
|
130
|
+
int *ptr;
|
131
|
+
double *ptr2;
|
139
132
|
GetNArray(n, na);
|
140
133
|
ptr = (int*) na->ptr;
|
141
134
|
size = na->total;
|
142
135
|
ary = na_make_object(NA_DFLOAT, na->rank, na->shape, cNArray);
|
143
136
|
ptr2 = NA_PTR_TYPE(ary, double*);
|
144
137
|
for (i = 0; i < size; i++) {
|
145
|
-
|
138
|
+
ptr2[i] = (*sample)(t, ptr[i]);
|
146
139
|
}
|
147
140
|
return ary;
|
148
141
|
#endif
|
149
142
|
} else {
|
150
143
|
rb_raise(rb_eTypeError, "wrong argument type %s (Vector::Int expected)",
|
151
|
-
|
144
|
+
rb_class2name(CLASS_OF(n)));
|
152
145
|
}
|
153
|
-
|
154
146
|
}
|
155
147
|
return Qnil;
|
156
148
|
}
|
@@ -204,8 +196,8 @@ static VALUE rb_gsl_dht_sample(int argc, VALUE *argv, VALUE obj)
|
|
204
196
|
mm = gsl_matrix_alloc(t->size, t->size);
|
205
197
|
for (n = 0; n < t->size; n++) {
|
206
198
|
for (m = 0; m < t->size; m++) {
|
207
|
-
|
208
|
-
|
199
|
+
val = t->j[n+1]*gsl_dht_x_sample(t, m)/t->xmax;
|
200
|
+
gsl_matrix_set(mm, n, m, val);
|
209
201
|
}
|
210
202
|
}
|
211
203
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mm);
|
@@ -235,8 +227,8 @@ static VALUE rb_gsl_dht_num(int argc, VALUE *argv, VALUE obj)
|
|
235
227
|
mm = gsl_matrix_alloc(t->size, t->size);
|
236
228
|
for (n = 0; n < t->size; n++) {
|
237
229
|
for (m = 0; m < t->size; m++) {
|
238
|
-
|
239
|
-
|
230
|
+
val = gsl_sf_bessel_Jnu(t->nu, t->j[n+1]*gsl_dht_x_sample(t, m)/t->xmax);
|
231
|
+
gsl_matrix_set(mm, n, m, val);
|
240
232
|
}
|
241
233
|
}
|
242
234
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mm);
|
@@ -312,9 +304,9 @@ static VALUE rb_gsl_dht_coef(int argc, VALUE *argv, VALUE obj)
|
|
312
304
|
mm = gsl_matrix_alloc(t->size, t->size);
|
313
305
|
for (n = 0; n < t->size; n++) {
|
314
306
|
for (m = 0; m < t->size; m++) {
|
315
|
-
|
316
|
-
|
317
|
-
|
307
|
+
val = gsl_sf_bessel_Jnu(t->nu, t->j[n+1]*gsl_dht_x_sample(t, m)/t->xmax);
|
308
|
+
val *= (2.0/t->xmax/t->xmax)/t->J2[m+1];
|
309
|
+
gsl_matrix_set(mm, n, m, val);
|
318
310
|
}
|
319
311
|
}
|
320
312
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mm);
|
@@ -8,9 +8,9 @@
|
|
8
8
|
This library is distributed in the hope that it will be useful, but
|
9
9
|
WITHOUT ANY WARRANTY.
|
10
10
|
*/
|
11
|
-
|
12
|
-
#include "rb_gsl_common.h"
|
13
|
-
#include "rb_gsl_function.h"
|
11
|
+
|
12
|
+
#include "include/rb_gsl_common.h"
|
13
|
+
#include "include/rb_gsl_function.h"
|
14
14
|
#include <gsl/gsl_math.h>
|
15
15
|
#include <gsl/gsl_diff.h>
|
16
16
|
|
@@ -18,19 +18,19 @@ static int get_func(int argc, VALUE *argv, VALUE obj, VALUE *ff, VALUE *xx);
|
|
18
18
|
|
19
19
|
static int get_func(int argc, VALUE *argv, VALUE obj, VALUE *ff, VALUE *xx)
|
20
20
|
{
|
21
|
-
|
21
|
+
switch (TYPE(obj)) {
|
22
22
|
case T_MODULE:
|
23
23
|
case T_CLASS:
|
24
24
|
case T_OBJECT:
|
25
25
|
if (argc != 2) rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)",
|
26
|
-
|
26
|
+
argc);
|
27
27
|
CHECK_FUNCTION(argv[0]);
|
28
28
|
*ff = argv[0];
|
29
29
|
*xx = argv[1];
|
30
30
|
break;
|
31
31
|
default:
|
32
32
|
if (argc != 1) rb_raise(rb_eArgError, "wrong number of arguments (%d for 1)",
|
33
|
-
|
33
|
+
argc);
|
34
34
|
*ff = obj;
|
35
35
|
*xx = argv[0];
|
36
36
|
break;
|
@@ -39,7 +39,7 @@ static int get_func(int argc, VALUE *argv, VALUE obj, VALUE *ff, VALUE *xx)
|
|
39
39
|
}
|
40
40
|
|
41
41
|
static VALUE rb_gsl_diff_eval(VALUE obj, VALUE xx,
|
42
|
-
|
42
|
+
int (*diff)(const gsl_function *, double, double *, double *))
|
43
43
|
{
|
44
44
|
gsl_function *f = NULL;
|
45
45
|
double result, abserr;
|
@@ -48,11 +48,6 @@ static VALUE rb_gsl_diff_eval(VALUE obj, VALUE xx,
|
|
48
48
|
gsl_matrix *m = NULL, *mnew = NULL, *merr = NULL;
|
49
49
|
size_t n, i, j;
|
50
50
|
int status;
|
51
|
-
#ifdef HAVE_NARRAY_H
|
52
|
-
double *ptr1, *ptr2, *ptr3;
|
53
|
-
struct NARRAY *na;
|
54
|
-
VALUE ary2, ary3;
|
55
|
-
#endif
|
56
51
|
Data_Get_Struct(obj, gsl_function, f);
|
57
52
|
if (CLASS_OF(xx) == rb_cRange) xx = rb_gsl_range2ary(xx);
|
58
53
|
switch (TYPE(xx)) {
|
@@ -79,6 +74,9 @@ static VALUE rb_gsl_diff_eval(VALUE obj, VALUE xx,
|
|
79
74
|
default:
|
80
75
|
#ifdef HAVE_NARRAY_H
|
81
76
|
if (NA_IsNArray(xx)) {
|
77
|
+
double *ptr1, *ptr2, *ptr3;
|
78
|
+
struct NARRAY *na;
|
79
|
+
VALUE ary2, ary3;
|
82
80
|
GetNArray(xx, na);
|
83
81
|
n = na->total;
|
84
82
|
ptr1 = (double*) na->ptr;
|
@@ -87,9 +85,9 @@ static VALUE rb_gsl_diff_eval(VALUE obj, VALUE xx,
|
|
87
85
|
ptr2 = NA_PTR_TYPE(ary2, double*);
|
88
86
|
ptr3 = NA_PTR_TYPE(ary3, double*);
|
89
87
|
for (i = 0; i < n; i++) {
|
90
|
-
|
91
|
-
|
92
|
-
|
88
|
+
(*diff)(f, ptr1[i], &result, &abserr);
|
89
|
+
ptr2[i] = result;
|
90
|
+
ptr3[i] = abserr;
|
93
91
|
}
|
94
92
|
return rb_ary_new3(2, ary2, ary3);
|
95
93
|
}
|
@@ -99,27 +97,27 @@ static VALUE rb_gsl_diff_eval(VALUE obj, VALUE xx,
|
|
99
97
|
vnew = gsl_vector_alloc(v->size);
|
100
98
|
verr = gsl_vector_alloc(v->size);
|
101
99
|
for (i = 0; i < v->size; i++) {
|
102
|
-
|
103
|
-
|
104
|
-
|
100
|
+
(*diff)(f, gsl_vector_get(v, i), &result, &abserr);
|
101
|
+
gsl_vector_set(vnew, i, result);
|
102
|
+
gsl_vector_set(verr, i, abserr);
|
105
103
|
}
|
106
104
|
return rb_ary_new3(2,
|
107
|
-
|
108
|
-
|
105
|
+
Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew),
|
106
|
+
Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, verr));
|
109
107
|
} else if (MATRIX_P(xx)) {
|
110
108
|
Data_Get_Struct(xx, gsl_matrix, m);
|
111
109
|
mnew = gsl_matrix_alloc(m->size1, m->size2);
|
112
110
|
merr = gsl_matrix_alloc(m->size1, m->size2);
|
113
111
|
for (i = 0; i < m->size1; i++) {
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
112
|
+
for (j = 0; j < m->size2; j++) {
|
113
|
+
(*diff)(f, gsl_matrix_get(m, i, j), &result, &abserr);
|
114
|
+
gsl_matrix_set(mnew, i, j, result);
|
115
|
+
gsl_matrix_set(merr, i, j, abserr);
|
116
|
+
}
|
119
117
|
}
|
120
|
-
return rb_ary_new3(2,
|
121
|
-
|
122
|
-
|
118
|
+
return rb_ary_new3(2,
|
119
|
+
Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew),
|
120
|
+
Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, merr));
|
123
121
|
} else {
|
124
122
|
rb_raise(rb_eTypeError, "wrong argument type");
|
125
123
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#include "rb_gsl_dirac.h"
|
1
|
+
#include "include/rb_gsl_dirac.h"
|
2
2
|
|
3
3
|
static VALUE cgsl_matrix_complex_const;
|
4
4
|
static VALUE cPauli;
|
@@ -43,8 +43,8 @@ static VALUE rb_dirac_commute(VALUE obj, VALUE mm1, VALUE mm2)
|
|
43
43
|
gsl_matrix_complex_mul(mnew2, m2, m1);
|
44
44
|
gsl_matrix_complex_sub(mnew1, mnew2);
|
45
45
|
gsl_matrix_complex_free(mnew2);
|
46
|
-
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free,
|
47
|
-
|
46
|
+
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free,
|
47
|
+
mnew1);
|
48
48
|
}
|
49
49
|
|
50
50
|
static VALUE rb_dirac_anticommute(VALUE obj, VALUE mm1, VALUE mm2)
|
@@ -61,8 +61,8 @@ static VALUE rb_dirac_anticommute(VALUE obj, VALUE mm1, VALUE mm2)
|
|
61
61
|
gsl_matrix_complex_mul(mnew2, m2, m1);
|
62
62
|
gsl_matrix_complex_add(mnew1, mnew2);
|
63
63
|
gsl_matrix_complex_free(mnew2);
|
64
|
-
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free,
|
65
|
-
|
64
|
+
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free,
|
65
|
+
mnew1);
|
66
66
|
}
|
67
67
|
|
68
68
|
static void Init_gsl_dirac_common(VALUE module)
|
@@ -72,7 +72,7 @@ static void Init_gsl_dirac_common(VALUE module)
|
|
72
72
|
rb_define_singleton_method(module, "anticommute", rb_dirac_anticommute, 2);
|
73
73
|
|
74
74
|
cgsl_matrix_complex_const = rb_define_class_under(module, "Const",
|
75
|
-
|
75
|
+
cgsl_matrix_complex);
|
76
76
|
rb_define_method(cgsl_matrix_complex_const, "set", rb_dirac_refuse_set, -1);
|
77
77
|
|
78
78
|
cPauli = rb_define_class_under(module, "Pauli", cgsl_matrix_complex_const);
|
@@ -88,16 +88,16 @@ static void define_eye(VALUE module)
|
|
88
88
|
gsl_complex z;
|
89
89
|
|
90
90
|
Eye2 = gsl_matrix_complex_calloc(2, 2);
|
91
|
-
VEye2 = Data_Wrap_Struct(cgsl_matrix_complex_const, 0,
|
92
|
-
|
91
|
+
VEye2 = Data_Wrap_Struct(cgsl_matrix_complex_const, 0,
|
92
|
+
gsl_matrix_complex_free, Eye2);
|
93
93
|
z.dat[0] = 1; z.dat[1] = 0;
|
94
94
|
gsl_matrix_complex_set(Eye2, 0, 0, z);
|
95
95
|
gsl_matrix_complex_set(Eye2, 1, 1, z);
|
96
96
|
rb_define_const(module, "Eye2", VEye2);
|
97
97
|
|
98
98
|
Eye4 = gsl_matrix_complex_calloc(4, 4);
|
99
|
-
VEye4 = Data_Wrap_Struct(cgsl_matrix_complex_const, 0,
|
100
|
-
|
99
|
+
VEye4 = Data_Wrap_Struct(cgsl_matrix_complex_const, 0,
|
100
|
+
gsl_matrix_complex_free, Eye4);
|
101
101
|
z.dat[0] = 1; z.dat[1] = 0;
|
102
102
|
gsl_matrix_complex_set(Eye4, 0, 0, z);
|
103
103
|
gsl_matrix_complex_set(Eye4, 1, 1, z);
|
@@ -106,16 +106,16 @@ static void define_eye(VALUE module)
|
|
106
106
|
rb_define_const(module, "Eye4", VEye4);
|
107
107
|
|
108
108
|
IEye2 = gsl_matrix_complex_calloc(2, 2);
|
109
|
-
VIEye2 = Data_Wrap_Struct(cgsl_matrix_complex_const, 0,
|
110
|
-
|
109
|
+
VIEye2 = Data_Wrap_Struct(cgsl_matrix_complex_const, 0,
|
110
|
+
gsl_matrix_complex_free, IEye2);
|
111
111
|
z.dat[0] = 0; z.dat[1] = 1;
|
112
112
|
gsl_matrix_complex_set(IEye2, 0, 0, z);
|
113
113
|
gsl_matrix_complex_set(IEye2, 1, 1, z);
|
114
114
|
rb_define_const(module, "IEye2", VIEye2);
|
115
115
|
|
116
116
|
IEye4 = gsl_matrix_complex_calloc(4, 4);
|
117
|
-
VIEye4 = Data_Wrap_Struct(cgsl_matrix_complex_const, 0,
|
118
|
-
|
117
|
+
VIEye4 = Data_Wrap_Struct(cgsl_matrix_complex_const, 0,
|
118
|
+
gsl_matrix_complex_free, IEye4);
|
119
119
|
gsl_matrix_complex_set(IEye4, 0, 0, z);
|
120
120
|
gsl_matrix_complex_set(IEye4, 1, 1, z);
|
121
121
|
gsl_matrix_complex_set(IEye4, 2, 2, z);
|
@@ -128,16 +128,16 @@ static void define_pauli(VALUE module)
|
|
128
128
|
gsl_complex z;
|
129
129
|
|
130
130
|
Pauli[0] = gsl_matrix_complex_calloc(2, 2);
|
131
|
-
VPauli[0] = Data_Wrap_Struct(cPauli, 0,
|
132
|
-
|
131
|
+
VPauli[0] = Data_Wrap_Struct(cPauli, 0,
|
132
|
+
gsl_matrix_complex_free, Pauli[0]);
|
133
133
|
z.dat[0] = 1; z.dat[1] = 0;
|
134
134
|
gsl_matrix_complex_set(Pauli[0], 0, 1, z);
|
135
135
|
gsl_matrix_complex_set(Pauli[0], 1, 0, z);
|
136
136
|
rb_define_const(module, "Pauli1", VPauli[0]);
|
137
137
|
|
138
138
|
Pauli[1] = gsl_matrix_complex_calloc(2, 2);
|
139
|
-
VPauli[1] = Data_Wrap_Struct(cPauli, 0,
|
140
|
-
|
139
|
+
VPauli[1] = Data_Wrap_Struct(cPauli, 0,
|
140
|
+
gsl_matrix_complex_free, Pauli[1]);
|
141
141
|
z.dat[0] = 0; z.dat[1] = -1;
|
142
142
|
gsl_matrix_complex_set(Pauli[1], 0, 1, z);
|
143
143
|
z.dat[0] = 0; z.dat[1] = 1;
|
@@ -145,8 +145,8 @@ static void define_pauli(VALUE module)
|
|
145
145
|
rb_define_const(module, "Pauli2", VPauli[1]);
|
146
146
|
|
147
147
|
Pauli[2] = gsl_matrix_complex_calloc(2, 2);
|
148
|
-
VPauli[2] = Data_Wrap_Struct(cPauli, 0,
|
149
|
-
|
148
|
+
VPauli[2] = Data_Wrap_Struct(cPauli, 0,
|
149
|
+
gsl_matrix_complex_free, Pauli[2]);
|
150
150
|
z.dat[0] = 1; z.dat[1] = 0;
|
151
151
|
gsl_matrix_complex_set(Pauli[2], 0, 0, z);
|
152
152
|
z.dat[0] = -1; z.dat[1] = 0;
|
@@ -159,8 +159,8 @@ static void define_beta(VALUE module)
|
|
159
159
|
gsl_complex z;
|
160
160
|
|
161
161
|
Beta = gsl_matrix_complex_calloc(4, 4);
|
162
|
-
VGamma[0] = Data_Wrap_Struct(cGamma, 0,
|
163
|
-
|
162
|
+
VGamma[0] = Data_Wrap_Struct(cGamma, 0,
|
163
|
+
gsl_matrix_complex_free, Beta);
|
164
164
|
z.dat[0] = 1; z.dat[1] = 0;
|
165
165
|
gsl_matrix_complex_set(Beta, 0, 0, z);
|
166
166
|
gsl_matrix_complex_set(Beta, 1, 1, z);
|
@@ -180,22 +180,21 @@ static void define_alpha(VALUE module)
|
|
180
180
|
|
181
181
|
for (j = 2; j < 4; j++) {
|
182
182
|
for (k = 0; k < 2; k++) {
|
183
|
-
|
184
|
-
|
183
|
+
gsl_matrix_complex_set(Alpha[i], j, k,
|
184
|
+
gsl_matrix_complex_get(Pauli[i], j-2, k));
|
185
185
|
}
|
186
186
|
}
|
187
187
|
for (j = 0; j < 2; j++) {
|
188
188
|
for (k = 2; k < 4; k++) {
|
189
|
-
|
190
|
-
|
189
|
+
gsl_matrix_complex_set(Alpha[i], j, k,
|
190
|
+
gsl_matrix_complex_get(Pauli[i], j, k-2));
|
191
191
|
}
|
192
192
|
}
|
193
|
-
VAlpha[i] = Data_Wrap_Struct(cAlpha, 0,
|
194
|
-
|
193
|
+
VAlpha[i] = Data_Wrap_Struct(cAlpha, 0,
|
194
|
+
gsl_matrix_complex_free, Alpha[i]);
|
195
195
|
sprintf(name, "Alpha%d", (int) i+1);
|
196
196
|
rb_define_const(module, name, VAlpha[i]);
|
197
197
|
}
|
198
|
-
|
199
198
|
}
|
200
199
|
|
201
200
|
static void define_gamma(VALUE module)
|
@@ -206,8 +205,8 @@ static void define_gamma(VALUE module)
|
|
206
205
|
for (i = 1; i <= 3; i++) {
|
207
206
|
Gamma[i] = gsl_matrix_complex_calloc(4, 4);
|
208
207
|
gsl_matrix_complex_mul(Gamma[i], Beta, Alpha[i-1]);
|
209
|
-
VGamma[i] = Data_Wrap_Struct(cGamma, 0,
|
210
|
-
|
208
|
+
VGamma[i] = Data_Wrap_Struct(cGamma, 0,
|
209
|
+
gsl_matrix_complex_free, Gamma[i]);
|
211
210
|
sprintf(name, "Gamma%d", (int) i);
|
212
211
|
rb_define_const(module, name, VGamma[i]);
|
213
212
|
}
|
@@ -217,8 +216,8 @@ static void define_gamma(VALUE module)
|
|
217
216
|
gsl_matrix_complex_set(Gamma[4], 1, 3, z);
|
218
217
|
gsl_matrix_complex_set(Gamma[4], 2, 0, z);
|
219
218
|
gsl_matrix_complex_set(Gamma[4], 3, 1, z);
|
220
|
-
VGamma[4] = Data_Wrap_Struct(cGamma, 0,
|
221
|
-
|
219
|
+
VGamma[4] = Data_Wrap_Struct(cGamma, 0,
|
220
|
+
gsl_matrix_complex_free, Gamma[4]);
|
222
221
|
rb_define_const(module, "Gamma5", VGamma[4]);
|
223
222
|
}
|
224
223
|
|
@@ -234,8 +233,8 @@ static void define_lambda(VALUE module)
|
|
234
233
|
zmi.dat[0] = 0; zmi.dat[1] = -1;
|
235
234
|
for (i = 0; i < 8; i++) {
|
236
235
|
Lambda[i] = gsl_matrix_complex_calloc(3, 3);
|
237
|
-
VLambda[i] = Data_Wrap_Struct(cLambda, 0,
|
238
|
-
|
236
|
+
VLambda[i] = Data_Wrap_Struct(cLambda, 0,
|
237
|
+
gsl_matrix_complex_free, Lambda[i]);
|
239
238
|
sprintf(name, "Lambda%d", (int) i+1);
|
240
239
|
rb_define_const(module, name, VLambda[i]);
|
241
240
|
}
|
@@ -332,17 +331,17 @@ static VALUE rb_Dirac_matrix_is_equal(int argc, VALUE *argv, VALUE obj)
|
|
332
331
|
#define NUM 20
|
333
332
|
static VALUE rb_Dirac_matrix_whoami(int argc, VALUE *argv, VALUE obj)
|
334
333
|
{
|
335
|
-
VALUE array[NUM] = {VPauli[0], VPauli[1], VPauli[2],
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
char *name[NUM] = {"Pauli1", "Pauli2", "Pauli3",
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
334
|
+
VALUE array[NUM] = {VPauli[0], VPauli[1], VPauli[2],
|
335
|
+
VGamma[0], VGamma[1], VGamma[2], VGamma[3],
|
336
|
+
VGamma[4], VEye2, VEye4, VIEye2, VIEye4,
|
337
|
+
VLambda[0], VLambda[1], VLambda[2], VLambda[3],
|
338
|
+
VLambda[4], VLambda[5], VLambda[6], VLambda[7]};
|
339
|
+
|
340
|
+
const char *name[NUM] = {"Pauli1", "Pauli2", "Pauli3",
|
341
|
+
"Gamma0", "Gamma1", "Gamma2", "Gamma3", "Gamma5",
|
342
|
+
"Eye2", "Eye4", "IEye2", "IEye4", "Lambda1", "Lambda2",
|
343
|
+
"Lambda3", "Lambda4", "Lambda5", "Lambda6",
|
344
|
+
"Lambda7", "Lambda8"};
|
346
345
|
gsl_matrix_complex *m1, *m2;
|
347
346
|
VALUE vz;
|
348
347
|
gsl_complex ztmp, *z;
|