rb-gsl 1.16.0.5 → 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 +4 -4
- data/rb-gsl.gemspec +5 -10
- metadata +10 -713
- data/.gitignore +0 -12
- data/.travis.yml +0 -24
- data/AUTHORS +0 -12
- data/COPYING +0 -341
- data/ChangeLog +0 -621
- data/Gemfile +0 -4
- data/README.md +0 -77
- data/Rakefile +0 -20
- data/THANKS +0 -17
- data/examples/alf/alf.gp +0 -15
- data/examples/alf/alf.rb +0 -32
- data/examples/blas/blas.rb +0 -13
- data/examples/blas/dnrm2.rb +0 -16
- data/examples/blas/level1.rb +0 -81
- data/examples/blas/level2.rb +0 -11
- data/examples/blas/level3.rb +0 -12
- data/examples/bspline.rb +0 -57
- data/examples/cdf.rb +0 -16
- data/examples/cheb.rb +0 -21
- data/examples/combination.rb +0 -23
- data/examples/complex/RC-lpf.rb +0 -47
- data/examples/complex/add.rb +0 -36
- data/examples/complex/coerce.rb +0 -14
- data/examples/complex/complex.rb +0 -25
- data/examples/complex/fpmi.rb +0 -70
- data/examples/complex/functions.rb +0 -77
- data/examples/complex/michelson.rb +0 -36
- data/examples/complex/mul.rb +0 -28
- data/examples/complex/oscillator.rb +0 -17
- data/examples/complex/set.rb +0 -37
- data/examples/const/physconst.rb +0 -151
- data/examples/const/travel.rb +0 -45
- data/examples/deriv/demo.rb +0 -13
- data/examples/deriv/deriv.rb +0 -36
- data/examples/deriv/diff.rb +0 -35
- data/examples/dht.rb +0 -42
- data/examples/dirac.rb +0 -56
- data/examples/eigen/eigen.rb +0 -34
- data/examples/eigen/herm.rb +0 -22
- data/examples/eigen/narray.rb +0 -9
- data/examples/eigen/nonsymm.rb +0 -37
- data/examples/eigen/nonsymmv.rb +0 -43
- data/examples/eigen/qhoscillator.gp +0 -35
- data/examples/eigen/qhoscillator.rb +0 -90
- data/examples/eigen/vander.rb +0 -41
- data/examples/fft/fft.rb +0 -17
- data/examples/fft/fft2.rb +0 -17
- data/examples/fft/forward.rb +0 -25
- data/examples/fft/forward2.rb +0 -26
- data/examples/fft/radix2.rb +0 -18
- data/examples/fft/real-halfcomplex.rb +0 -33
- data/examples/fft/real-halfcomplex2.rb +0 -30
- data/examples/fft/realradix2.rb +0 -19
- data/examples/fft/sunspot.dat +0 -256
- data/examples/fft/sunspot.rb +0 -16
- data/examples/fit/expdata.dat +0 -20
- data/examples/fit/expfit.rb +0 -31
- data/examples/fit/gaussfit.rb +0 -29
- data/examples/fit/gaussian_2peaks.rb +0 -34
- data/examples/fit/hillfit.rb +0 -40
- data/examples/fit/lognormal.rb +0 -26
- data/examples/fit/lorentzfit.rb +0 -22
- data/examples/fit/multifit.rb +0 -72
- data/examples/fit/ndlinear.rb +0 -133
- data/examples/fit/nonlinearfit.rb +0 -89
- data/examples/fit/plot.gp +0 -36
- data/examples/fit/polyfit.rb +0 -9
- data/examples/fit/powerfit.rb +0 -21
- data/examples/fit/sigmoidfit.rb +0 -40
- data/examples/fit/sinfit.rb +0 -22
- data/examples/fit/wlinear.rb +0 -46
- data/examples/fresnel.rb +0 -11
- data/examples/function/function.rb +0 -36
- data/examples/function/log.rb +0 -7
- data/examples/function/min.rb +0 -33
- data/examples/function/sin.rb +0 -10
- data/examples/function/synchrotron.rb +0 -18
- data/examples/gallery/butterfly.rb +0 -7
- data/examples/gallery/cayley.rb +0 -12
- data/examples/gallery/cornu.rb +0 -23
- data/examples/gallery/eight.rb +0 -11
- data/examples/gallery/koch.rb +0 -40
- data/examples/gallery/lemniscate.rb +0 -11
- data/examples/gallery/polar.rb +0 -11
- data/examples/gallery/rgplot/cossin.rb +0 -35
- data/examples/gallery/rgplot/rgplot.replaced +0 -0
- data/examples/gallery/rgplot/roesller.rb +0 -55
- data/examples/gallery/roesller.rb +0 -39
- data/examples/gallery/scarabaeus.rb +0 -14
- data/examples/histogram/cauchy.rb +0 -27
- data/examples/histogram/cauchy.sh +0 -2
- data/examples/histogram/exponential.rb +0 -19
- data/examples/histogram/gauss.rb +0 -16
- data/examples/histogram/gsl-histogram.rb +0 -40
- data/examples/histogram/histo2d.rb +0 -31
- data/examples/histogram/histo3d.rb +0 -34
- data/examples/histogram/histogram-pdf.rb +0 -27
- data/examples/histogram/histogram.rb +0 -26
- data/examples/histogram/integral.rb +0 -28
- data/examples/histogram/poisson.rb +0 -27
- data/examples/histogram/power.rb +0 -25
- data/examples/histogram/rebin.rb +0 -17
- data/examples/histogram/smp.dat +0 -5
- data/examples/histogram/xexp.rb +0 -21
- data/examples/integration/ahmed.rb +0 -21
- data/examples/integration/cosmology.rb +0 -75
- data/examples/integration/friedmann.gp +0 -16
- data/examples/integration/friedmann.rb +0 -35
- data/examples/integration/gamma-zeta.rb +0 -35
- data/examples/integration/integration.rb +0 -22
- data/examples/integration/qag.rb +0 -8
- data/examples/integration/qag2.rb +0 -14
- data/examples/integration/qag3.rb +0 -8
- data/examples/integration/qagi.rb +0 -28
- data/examples/integration/qagi2.rb +0 -49
- data/examples/integration/qagiu.rb +0 -29
- data/examples/integration/qagp.rb +0 -20
- data/examples/integration/qags.rb +0 -14
- data/examples/integration/qawc.rb +0 -18
- data/examples/integration/qawf.rb +0 -41
- data/examples/integration/qawo.rb +0 -29
- data/examples/integration/qaws.rb +0 -30
- data/examples/integration/qng.rb +0 -17
- data/examples/interp/demo.gp +0 -20
- data/examples/interp/demo.rb +0 -45
- data/examples/interp/interp.rb +0 -37
- data/examples/interp/points +0 -10
- data/examples/interp/spline.rb +0 -20
- data/examples/jacobi/deriv.rb +0 -40
- data/examples/jacobi/integrate.rb +0 -34
- data/examples/jacobi/interp.rb +0 -43
- data/examples/jacobi/jacobi.rb +0 -11
- data/examples/linalg/HH.rb +0 -15
- data/examples/linalg/HH_narray.rb +0 -13
- data/examples/linalg/LQ_solve.rb +0 -73
- data/examples/linalg/LU.rb +0 -84
- data/examples/linalg/LU2.rb +0 -31
- data/examples/linalg/LU_narray.rb +0 -24
- data/examples/linalg/PTLQ.rb +0 -47
- data/examples/linalg/QR.rb +0 -18
- data/examples/linalg/QRPT.rb +0 -47
- data/examples/linalg/QR_solve.rb +0 -78
- data/examples/linalg/QR_solve_narray.rb +0 -13
- data/examples/linalg/SV.rb +0 -16
- data/examples/linalg/SV_narray.rb +0 -12
- data/examples/linalg/SV_solve.rb +0 -49
- data/examples/linalg/chol.rb +0 -29
- data/examples/linalg/chol_narray.rb +0 -15
- data/examples/linalg/complex.rb +0 -57
- data/examples/linalg/invert_narray.rb +0 -10
- data/examples/math/const.rb +0 -67
- data/examples/math/elementary.rb +0 -35
- data/examples/math/functions.rb +0 -41
- data/examples/math/inf_nan.rb +0 -34
- data/examples/math/minmax.rb +0 -22
- data/examples/math/power.rb +0 -18
- data/examples/math/test.rb +0 -31
- data/examples/matrix/a.dat +0 -0
- data/examples/matrix/add.rb +0 -45
- data/examples/matrix/b.dat +0 -4
- data/examples/matrix/cat.rb +0 -31
- data/examples/matrix/colvectors.rb +0 -24
- data/examples/matrix/complex.rb +0 -41
- data/examples/matrix/det.rb +0 -29
- data/examples/matrix/diagonal.rb +0 -23
- data/examples/matrix/get_all.rb +0 -159
- data/examples/matrix/hilbert.rb +0 -31
- data/examples/matrix/iterator.rb +0 -19
- data/examples/matrix/matrix.rb +0 -57
- data/examples/matrix/minmax.rb +0 -53
- data/examples/matrix/mul.rb +0 -39
- data/examples/matrix/rand.rb +0 -20
- data/examples/matrix/read.rb +0 -29
- data/examples/matrix/rowcol.rb +0 -47
- data/examples/matrix/set.rb +0 -41
- data/examples/matrix/set_all.rb +0 -100
- data/examples/matrix/view.rb +0 -32
- data/examples/matrix/view_all.rb +0 -148
- data/examples/matrix/write.rb +0 -23
- data/examples/min.rb +0 -29
- data/examples/monte/miser.rb +0 -47
- data/examples/monte/monte.rb +0 -47
- data/examples/monte/plain.rb +0 -47
- data/examples/monte/vegas.rb +0 -46
- data/examples/multimin/bundle.rb +0 -66
- data/examples/multimin/cqp.rb +0 -109
- data/examples/multimin/fdfminimizer.rb +0 -40
- data/examples/multimin/fminimizer.rb +0 -41
- data/examples/multiroot/demo.rb +0 -36
- data/examples/multiroot/fdfsolver.rb +0 -50
- data/examples/multiroot/fsolver.rb +0 -33
- data/examples/multiroot/fsolver2.rb +0 -32
- data/examples/multiroot/fsolver3.rb +0 -26
- data/examples/narray/histogram.rb +0 -14
- data/examples/narray/mandel.rb +0 -27
- data/examples/narray/narray.rb +0 -28
- data/examples/narray/narray2.rb +0 -44
- data/examples/narray/sf.rb +0 -26
- data/examples/ntuple/create.rb +0 -17
- data/examples/ntuple/project.rb +0 -31
- data/examples/odeiv/binarysystem.gp +0 -23
- data/examples/odeiv/binarysystem.rb +0 -104
- data/examples/odeiv/demo.gp +0 -24
- data/examples/odeiv/demo.rb +0 -69
- data/examples/odeiv/demo2.gp +0 -26
- data/examples/odeiv/duffing.rb +0 -45
- data/examples/odeiv/frei1.rb +0 -109
- data/examples/odeiv/frei2.rb +0 -76
- data/examples/odeiv/legendre.rb +0 -52
- data/examples/odeiv/odeiv.rb +0 -32
- data/examples/odeiv/odeiv2.rb +0 -45
- data/examples/odeiv/oscillator.rb +0 -42
- data/examples/odeiv/sedov.rb +0 -97
- data/examples/odeiv/whitedwarf.gp +0 -40
- data/examples/odeiv/whitedwarf.rb +0 -158
- data/examples/ool/conmin.rb +0 -100
- data/examples/ool/gencan.rb +0 -99
- data/examples/ool/pgrad.rb +0 -100
- data/examples/ool/spg.rb +0 -100
- data/examples/pdf/bernoulli.rb +0 -5
- data/examples/pdf/beta.rb +0 -7
- data/examples/pdf/binomiral.rb +0 -10
- data/examples/pdf/cauchy.rb +0 -6
- data/examples/pdf/chisq.rb +0 -8
- data/examples/pdf/exponential.rb +0 -7
- data/examples/pdf/exppow.rb +0 -6
- data/examples/pdf/fdist.rb +0 -7
- data/examples/pdf/flat.rb +0 -7
- data/examples/pdf/gamma.rb +0 -8
- data/examples/pdf/gauss-tail.rb +0 -5
- data/examples/pdf/gauss.rb +0 -6
- data/examples/pdf/geometric.rb +0 -5
- data/examples/pdf/gumbel.rb +0 -6
- data/examples/pdf/hypergeometric.rb +0 -11
- data/examples/pdf/landau.rb +0 -5
- data/examples/pdf/laplace.rb +0 -7
- data/examples/pdf/logarithmic.rb +0 -5
- data/examples/pdf/logistic.rb +0 -6
- data/examples/pdf/lognormal.rb +0 -6
- data/examples/pdf/neg-binomiral.rb +0 -10
- data/examples/pdf/pareto.rb +0 -7
- data/examples/pdf/pascal.rb +0 -10
- data/examples/pdf/poisson.rb +0 -5
- data/examples/pdf/rayleigh-tail.rb +0 -6
- data/examples/pdf/rayleigh.rb +0 -6
- data/examples/pdf/tdist.rb +0 -6
- data/examples/pdf/weibull.rb +0 -8
- data/examples/permutation/ex1.rb +0 -22
- data/examples/permutation/permutation.rb +0 -16
- data/examples/poly/bell.rb +0 -6
- data/examples/poly/bessel.rb +0 -6
- data/examples/poly/cheb.rb +0 -6
- data/examples/poly/cheb_II.rb +0 -6
- data/examples/poly/cubic.rb +0 -9
- data/examples/poly/demo.rb +0 -20
- data/examples/poly/eval.rb +0 -28
- data/examples/poly/eval_derivs.rb +0 -14
- data/examples/poly/fit.rb +0 -21
- data/examples/poly/hermite.rb +0 -6
- data/examples/poly/poly.rb +0 -13
- data/examples/poly/quadratic.rb +0 -25
- data/examples/random/diffusion.rb +0 -34
- data/examples/random/gaussian.rb +0 -9
- data/examples/random/generator.rb +0 -27
- data/examples/random/hdsobol.rb +0 -21
- data/examples/random/poisson.rb +0 -9
- data/examples/random/qrng.rb +0 -19
- data/examples/random/randomwalk.rb +0 -37
- data/examples/random/randomwalk2d.rb +0 -19
- data/examples/random/rayleigh.rb +0 -36
- data/examples/random/rng.rb +0 -33
- data/examples/random/rngextra.rb +0 -14
- data/examples/roots/bisection.rb +0 -25
- data/examples/roots/brent.rb +0 -43
- data/examples/roots/demo.rb +0 -30
- data/examples/roots/newton.rb +0 -46
- data/examples/roots/recombination.gp +0 -11
- data/examples/roots/recombination.rb +0 -61
- data/examples/roots/steffenson.rb +0 -48
- data/examples/sf/ShiChi.rb +0 -6
- data/examples/sf/SiCi.rb +0 -6
- data/examples/sf/airy_Ai.rb +0 -8
- data/examples/sf/airy_Bi.rb +0 -8
- data/examples/sf/bessel_IK.rb +0 -12
- data/examples/sf/bessel_JY.rb +0 -13
- data/examples/sf/beta_inc.rb +0 -9
- data/examples/sf/clausen.rb +0 -6
- data/examples/sf/dawson.rb +0 -5
- data/examples/sf/debye.rb +0 -9
- data/examples/sf/dilog.rb +0 -6
- data/examples/sf/ellint.rb +0 -6
- data/examples/sf/expint.rb +0 -8
- data/examples/sf/fermi.rb +0 -10
- data/examples/sf/gamma_inc_P.rb +0 -9
- data/examples/sf/gegenbauer.rb +0 -8
- data/examples/sf/hyperg.rb +0 -7
- data/examples/sf/laguerre.rb +0 -19
- data/examples/sf/lambertW.rb +0 -5
- data/examples/sf/legendre_P.rb +0 -10
- data/examples/sf/lngamma.rb +0 -5
- data/examples/sf/psi.rb +0 -54
- data/examples/sf/sphbessel.gp +0 -27
- data/examples/sf/sphbessel.rb +0 -30
- data/examples/sf/synchrotron.rb +0 -5
- data/examples/sf/transport.rb +0 -10
- data/examples/sf/zetam1.rb +0 -5
- data/examples/siman.rb +0 -44
- data/examples/sort/heapsort.rb +0 -23
- data/examples/sort/heapsort_vector_complex.rb +0 -21
- data/examples/sort/sort.rb +0 -23
- data/examples/sort/sort2.rb +0 -16
- data/examples/stats/mean.rb +0 -17
- data/examples/stats/statistics.rb +0 -18
- data/examples/stats/test.rb +0 -9
- data/examples/sum.rb +0 -34
- data/examples/tamu_anova.rb +0 -18
- data/examples/vector/a.dat +0 -0
- data/examples/vector/add.rb +0 -56
- data/examples/vector/b.dat +0 -4
- data/examples/vector/c.dat +0 -3
- data/examples/vector/collect.rb +0 -26
- data/examples/vector/compare.rb +0 -28
- data/examples/vector/complex.rb +0 -51
- data/examples/vector/complex_get_all.rb +0 -85
- data/examples/vector/complex_set_all.rb +0 -131
- data/examples/vector/complex_view_all.rb +0 -77
- data/examples/vector/connect.rb +0 -22
- data/examples/vector/decimate.rb +0 -38
- data/examples/vector/diff.rb +0 -31
- data/examples/vector/filescan.rb +0 -17
- data/examples/vector/floor.rb +0 -23
- data/examples/vector/get_all.rb +0 -82
- data/examples/vector/gnuplot.rb +0 -38
- data/examples/vector/graph.rb +0 -28
- data/examples/vector/histogram.rb +0 -22
- data/examples/vector/linspace.rb +0 -24
- data/examples/vector/log.rb +0 -17
- data/examples/vector/logic.rb +0 -33
- data/examples/vector/logspace.rb +0 -25
- data/examples/vector/minmax.rb +0 -47
- data/examples/vector/mul.rb +0 -49
- data/examples/vector/narray.rb +0 -46
- data/examples/vector/read.rb +0 -29
- data/examples/vector/set.rb +0 -35
- data/examples/vector/set_all.rb +0 -121
- data/examples/vector/smpv.dat +0 -15
- data/examples/vector/test.rb +0 -43
- data/examples/vector/test_gslblock.rb +0 -58
- data/examples/vector/vector.rb +0 -110
- data/examples/vector/view.rb +0 -35
- data/examples/vector/view_all.rb +0 -73
- data/examples/vector/where.rb +0 -29
- data/examples/vector/write.rb +0 -24
- data/examples/vector/zip.rb +0 -34
- data/examples/wavelet/ecg.dat +0 -256
- data/examples/wavelet/wavelet1.rb +0 -50
- data/ext/gsl_native/alf.c +0 -206
- data/ext/gsl_native/array.c +0 -553
- data/ext/gsl_native/array_complex.c +0 -245
- data/ext/gsl_native/blas.c +0 -28
- data/ext/gsl_native/blas1.c +0 -733
- data/ext/gsl_native/blas2.c +0 -1088
- data/ext/gsl_native/blas3.c +0 -880
- data/ext/gsl_native/block.c +0 -40
- data/ext/gsl_native/block_source.h +0 -885
- data/ext/gsl_native/bspline.c +0 -122
- data/ext/gsl_native/bundle.c +0 -3
- data/ext/gsl_native/cdf.c +0 -740
- data/ext/gsl_native/cheb.c +0 -531
- data/ext/gsl_native/combination.c +0 -275
- data/ext/gsl_native/common.c +0 -293
- data/ext/gsl_native/complex.c +0 -1002
- data/ext/gsl_native/const.c +0 -331
- data/ext/gsl_native/const_additional.c +0 -99
- data/ext/gsl_native/cqp.c +0 -283
- data/ext/gsl_native/deriv.c +0 -187
- data/ext/gsl_native/dht.c +0 -353
- data/ext/gsl_native/diff.c +0 -164
- data/ext/gsl_native/dirac.c +0 -388
- data/ext/gsl_native/eigen.c +0 -2322
- data/ext/gsl_native/error.c +0 -193
- data/ext/gsl_native/extconf.rb +0 -118
- data/ext/gsl_native/fft.c +0 -1095
- data/ext/gsl_native/fit.c +0 -204
- data/ext/gsl_native/fresnel.c +0 -312
- data/ext/gsl_native/function.c +0 -518
- data/ext/gsl_native/geometry.c +0 -139
- data/ext/gsl_native/graph.c +0 -1590
- data/ext/gsl_native/gsl.c +0 -259
- data/ext/gsl_native/gsl_narray.c +0 -794
- data/ext/gsl_native/histogram.c +0 -1964
- data/ext/gsl_native/histogram2d.c +0 -1042
- data/ext/gsl_native/histogram3d.c +0 -884
- data/ext/gsl_native/histogram3d_source.c +0 -749
- data/ext/gsl_native/histogram_find.c +0 -99
- data/ext/gsl_native/histogram_oper.c +0 -150
- data/ext/gsl_native/ieee.c +0 -88
- data/ext/gsl_native/include/rb_gsl.h +0 -136
- data/ext/gsl_native/include/rb_gsl_array.h +0 -214
- data/ext/gsl_native/include/rb_gsl_cheb.h +0 -19
- data/ext/gsl_native/include/rb_gsl_common.h +0 -348
- data/ext/gsl_native/include/rb_gsl_complex.h +0 -25
- data/ext/gsl_native/include/rb_gsl_const.h +0 -23
- data/ext/gsl_native/include/rb_gsl_dirac.h +0 -6
- data/ext/gsl_native/include/rb_gsl_eigen.h +0 -17
- data/ext/gsl_native/include/rb_gsl_fft.h +0 -49
- data/ext/gsl_native/include/rb_gsl_fit.h +0 -23
- data/ext/gsl_native/include/rb_gsl_function.h +0 -23
- data/ext/gsl_native/include/rb_gsl_graph.h +0 -68
- data/ext/gsl_native/include/rb_gsl_histogram.h +0 -63
- data/ext/gsl_native/include/rb_gsl_histogram3d.h +0 -97
- data/ext/gsl_native/include/rb_gsl_integration.h +0 -17
- data/ext/gsl_native/include/rb_gsl_interp.h +0 -41
- data/ext/gsl_native/include/rb_gsl_linalg.h +0 -21
- data/ext/gsl_native/include/rb_gsl_math.h +0 -20
- data/ext/gsl_native/include/rb_gsl_odeiv.h +0 -18
- data/ext/gsl_native/include/rb_gsl_poly.h +0 -67
- data/ext/gsl_native/include/rb_gsl_rational.h +0 -30
- data/ext/gsl_native/include/rb_gsl_rng.h +0 -20
- data/ext/gsl_native/include/rb_gsl_root.h +0 -22
- data/ext/gsl_native/include/rb_gsl_sf.h +0 -110
- data/ext/gsl_native/include/rb_gsl_statistics.h +0 -17
- data/ext/gsl_native/include/rb_gsl_tensor.h +0 -43
- data/ext/gsl_native/include/rb_gsl_with_narray.h +0 -31
- data/ext/gsl_native/include/templates_off.h +0 -87
- data/ext/gsl_native/include/templates_on.h +0 -241
- data/ext/gsl_native/integration.c +0 -1154
- data/ext/gsl_native/interp.c +0 -499
- data/ext/gsl_native/jacobi.c +0 -733
- data/ext/gsl_native/linalg.c +0 -3915
- data/ext/gsl_native/linalg_complex.c +0 -726
- data/ext/gsl_native/math.c +0 -706
- data/ext/gsl_native/matrix.c +0 -36
- data/ext/gsl_native/matrix_complex.c +0 -1733
- data/ext/gsl_native/matrix_double.c +0 -557
- data/ext/gsl_native/matrix_int.c +0 -255
- data/ext/gsl_native/matrix_source.h +0 -2708
- data/ext/gsl_native/min.c +0 -219
- data/ext/gsl_native/monte.c +0 -978
- data/ext/gsl_native/multifit.c +0 -1862
- data/ext/gsl_native/multimin.c +0 -778
- data/ext/gsl_native/multimin_fsdf.c +0 -156
- data/ext/gsl_native/multiroots.c +0 -952
- data/ext/gsl_native/multiset.c +0 -210
- data/ext/gsl_native/ndlinear.c +0 -320
- data/ext/gsl_native/nmf.c +0 -171
- data/ext/gsl_native/nmf_wrap.c +0 -75
- data/ext/gsl_native/ntuple.c +0 -469
- data/ext/gsl_native/odeiv.c +0 -947
- data/ext/gsl_native/ool.c +0 -879
- data/ext/gsl_native/permutation.c +0 -598
- data/ext/gsl_native/poly.c +0 -39
- data/ext/gsl_native/poly2.c +0 -265
- data/ext/gsl_native/poly_source.h +0 -1871
- data/ext/gsl_native/qrng.c +0 -160
- data/ext/gsl_native/randist.c +0 -1848
- data/ext/gsl_native/rational.c +0 -480
- data/ext/gsl_native/rng.c +0 -595
- data/ext/gsl_native/root.c +0 -407
- data/ext/gsl_native/sf.c +0 -1446
- data/ext/gsl_native/sf_airy.c +0 -200
- data/ext/gsl_native/sf_bessel.c +0 -871
- data/ext/gsl_native/sf_clausen.c +0 -28
- data/ext/gsl_native/sf_coulomb.c +0 -206
- data/ext/gsl_native/sf_coupling.c +0 -121
- data/ext/gsl_native/sf_dawson.c +0 -29
- data/ext/gsl_native/sf_debye.c +0 -148
- data/ext/gsl_native/sf_dilog.c +0 -43
- data/ext/gsl_native/sf_elementary.c +0 -46
- data/ext/gsl_native/sf_ellint.c +0 -206
- data/ext/gsl_native/sf_elljac.c +0 -30
- data/ext/gsl_native/sf_erfc.c +0 -89
- data/ext/gsl_native/sf_exp.c +0 -169
- data/ext/gsl_native/sf_expint.c +0 -201
- data/ext/gsl_native/sf_fermi_dirac.c +0 -148
- data/ext/gsl_native/sf_gamma.c +0 -343
- data/ext/gsl_native/sf_gegenbauer.c +0 -97
- data/ext/gsl_native/sf_hyperg.c +0 -203
- data/ext/gsl_native/sf_laguerre.c +0 -113
- data/ext/gsl_native/sf_lambert.c +0 -47
- data/ext/gsl_native/sf_legendre.c +0 -368
- data/ext/gsl_native/sf_log.c +0 -105
- data/ext/gsl_native/sf_mathieu.c +0 -235
- data/ext/gsl_native/sf_power.c +0 -47
- data/ext/gsl_native/sf_psi.c +0 -89
- data/ext/gsl_native/sf_synchrotron.c +0 -48
- data/ext/gsl_native/sf_transport.c +0 -76
- data/ext/gsl_native/sf_trigonometric.c +0 -210
- data/ext/gsl_native/sf_zeta.c +0 -115
- data/ext/gsl_native/signal.c +0 -303
- data/ext/gsl_native/siman.c +0 -713
- data/ext/gsl_native/sort.c +0 -207
- data/ext/gsl_native/spline.c +0 -377
- data/ext/gsl_native/stats.c +0 -787
- data/ext/gsl_native/sum.c +0 -168
- data/ext/gsl_native/tamu_anova.c +0 -56
- data/ext/gsl_native/tensor.c +0 -35
- data/ext/gsl_native/tensor_source.h +0 -1122
- data/ext/gsl_native/vector.c +0 -35
- data/ext/gsl_native/vector_complex.c +0 -2241
- data/ext/gsl_native/vector_double.c +0 -1433
- data/ext/gsl_native/vector_int.c +0 -202
- data/ext/gsl_native/vector_source.h +0 -3321
- data/ext/gsl_native/wavelet.c +0 -923
- data/lib/gsl.rb +0 -8
- data/lib/gsl/gnuplot.rb +0 -41
- data/lib/gsl/oper.rb +0 -43
- data/lib/gsl/version.rb +0 -3
- data/lib/ool.rb +0 -22
- data/lib/ool/conmin.rb +0 -30
- data/lib/rbgsl.rb +0 -1
- data/rdoc/alf.rdoc +0 -77
- data/rdoc/blas.rdoc +0 -269
- data/rdoc/bspline.rdoc +0 -42
- data/rdoc/changes.rdoc +0 -159
- data/rdoc/cheb.rdoc +0 -99
- data/rdoc/cholesky_complex.rdoc +0 -46
- data/rdoc/combi.rdoc +0 -125
- data/rdoc/complex.rdoc +0 -210
- data/rdoc/const.rdoc +0 -546
- data/rdoc/dht.rdoc +0 -122
- data/rdoc/diff.rdoc +0 -133
- data/rdoc/ehandling.rdoc +0 -50
- data/rdoc/eigen.rdoc +0 -401
- data/rdoc/fft.rdoc +0 -535
- data/rdoc/fit.rdoc +0 -284
- data/rdoc/function.rdoc +0 -94
- data/rdoc/graph.rdoc +0 -137
- data/rdoc/hist.rdoc +0 -409
- data/rdoc/hist2d.rdoc +0 -279
- data/rdoc/hist3d.rdoc +0 -112
- data/rdoc/integration.rdoc +0 -398
- data/rdoc/interp.rdoc +0 -231
- data/rdoc/intro.rdoc +0 -27
- data/rdoc/linalg.rdoc +0 -681
- data/rdoc/linalg_complex.rdoc +0 -88
- data/rdoc/math.rdoc +0 -276
- data/rdoc/matrix.rdoc +0 -1093
- data/rdoc/min.rdoc +0 -189
- data/rdoc/monte.rdoc +0 -234
- data/rdoc/multimin.rdoc +0 -312
- data/rdoc/multiroot.rdoc +0 -293
- data/rdoc/narray.rdoc +0 -177
- data/rdoc/ndlinear.rdoc +0 -250
- data/rdoc/nonlinearfit.rdoc +0 -348
- data/rdoc/ntuple.rdoc +0 -88
- data/rdoc/odeiv.rdoc +0 -378
- data/rdoc/perm.rdoc +0 -221
- data/rdoc/poly.rdoc +0 -335
- data/rdoc/qrng.rdoc +0 -90
- data/rdoc/randist.rdoc +0 -233
- data/rdoc/ref.rdoc +0 -93
- data/rdoc/rng.rdoc +0 -203
- data/rdoc/roots.rdoc +0 -305
- data/rdoc/sf.rdoc +0 -1622
- data/rdoc/siman.rdoc +0 -89
- data/rdoc/sort.rdoc +0 -94
- data/rdoc/start.rdoc +0 -16
- data/rdoc/stats.rdoc +0 -219
- data/rdoc/sum.rdoc +0 -65
- data/rdoc/tensor.rdoc +0 -251
- data/rdoc/tut.rdoc +0 -5
- data/rdoc/use.rdoc +0 -177
- data/rdoc/vector.rdoc +0 -1243
- data/rdoc/vector_complex.rdoc +0 -347
- data/rdoc/wavelet.rdoc +0 -218
- data/test/gsl/blas_test.rb +0 -79
- data/test/gsl/bspline_test.rb +0 -63
- data/test/gsl/cdf_test.rb +0 -1512
- data/test/gsl/cheb_test.rb +0 -80
- data/test/gsl/combination_test.rb +0 -100
- data/test/gsl/complex_test.rb +0 -20
- data/test/gsl/const_test.rb +0 -29
- data/test/gsl/deriv_test.rb +0 -62
- data/test/gsl/dht_test.rb +0 -79
- data/test/gsl/diff_test.rb +0 -53
- data/test/gsl/eigen_test.rb +0 -563
- data/test/gsl/err_test.rb +0 -23
- data/test/gsl/fit_test.rb +0 -101
- data/test/gsl/histo_test.rb +0 -14
- data/test/gsl/index_test.rb +0 -61
- data/test/gsl/integration_test.rb +0 -274
- data/test/gsl/interp_test.rb +0 -27
- data/test/gsl/linalg_test.rb +0 -463
- data/test/gsl/matrix_nmf_test.rb +0 -37
- data/test/gsl/matrix_test.rb +0 -98
- data/test/gsl/min_test.rb +0 -89
- data/test/gsl/monte_test.rb +0 -77
- data/test/gsl/multifit_test.rb +0 -753
- data/test/gsl/multimin_test.rb +0 -157
- data/test/gsl/multiroot_test.rb +0 -135
- data/test/gsl/multiset_test.rb +0 -52
- data/test/gsl/odeiv_test.rb +0 -275
- data/test/gsl/oper_test.rb +0 -98
- data/test/gsl/poly_test.rb +0 -338
- data/test/gsl/qrng_test.rb +0 -94
- data/test/gsl/quartic_test.rb +0 -28
- data/test/gsl/randist_test.rb +0 -122
- data/test/gsl/rng_test.rb +0 -303
- data/test/gsl/roots_test.rb +0 -78
- data/test/gsl/sf_test.rb +0 -2079
- data/test/gsl/stats_test.rb +0 -122
- data/test/gsl/sum_test.rb +0 -69
- data/test/gsl/tensor_test.rb +0 -396
- data/test/gsl/vector_test.rb +0 -223
- data/test/gsl/wavelet_test.rb +0 -130
- data/test/gsl_test.rb +0 -321
- data/test/test_helper.rb +0 -42
- data/uncrustify.cfg +0 -1693
data/ext/gsl_native/sort.c
DELETED
@@ -1,207 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
sort.c
|
3
|
-
Ruby/GSL: Ruby extension library for GSL (GNU Scientific Library)
|
4
|
-
(C) Copyright 2001-2006 by Yoshiki Tsunesada
|
5
|
-
|
6
|
-
Ruby/GSL is free software: you can redistribute it and/or modify it
|
7
|
-
under the terms of the GNU General Public License.
|
8
|
-
This library is distributed in the hope that it will be useful, but
|
9
|
-
WITHOUT ANY WARRANTY.
|
10
|
-
*/
|
11
|
-
|
12
|
-
#include "include/rb_gsl_array.h"
|
13
|
-
#include <gsl/gsl_heapsort.h>
|
14
|
-
#include <gsl/gsl_sort.h>
|
15
|
-
|
16
|
-
EXTERN ID RBGSL_ID_call;
|
17
|
-
EXTERN VALUE cgsl_complex;
|
18
|
-
|
19
|
-
int rb_gsl_comparison_double(const void *aa, const void *bb);
|
20
|
-
int rb_gsl_comparison_complex(const void *aa, const void *bb);
|
21
|
-
int rb_gsl_comparison_double(const void *aa, const void *bb)
|
22
|
-
{
|
23
|
-
double *a = NULL, *b = NULL;
|
24
|
-
a = (double *) aa;
|
25
|
-
b = (double *) bb;
|
26
|
-
return FIX2INT(rb_funcall(rb_block_proc(), RBGSL_ID_call, 2, rb_float_new(*a), rb_float_new(*b)));
|
27
|
-
}
|
28
|
-
|
29
|
-
int rb_gsl_comparison_complex(const void *aa, const void *bb)
|
30
|
-
{
|
31
|
-
gsl_complex *a = NULL, *b = NULL;
|
32
|
-
a = (gsl_complex *) aa;
|
33
|
-
b = (gsl_complex *) bb;
|
34
|
-
return FIX2INT(rb_funcall(rb_block_proc(), RBGSL_ID_call, 2,
|
35
|
-
Data_Wrap_Struct(cgsl_complex, 0, NULL, a),
|
36
|
-
Data_Wrap_Struct(cgsl_complex, 0, NULL, b)));
|
37
|
-
}
|
38
|
-
|
39
|
-
static VALUE rb_gsl_heapsort_vector(VALUE obj)
|
40
|
-
{
|
41
|
-
gsl_vector *v = NULL;
|
42
|
-
if (!rb_block_given_p()) rb_raise(rb_eRuntimeError, "Proc is not given");
|
43
|
-
Data_Get_Struct(obj, gsl_vector, v);
|
44
|
-
gsl_heapsort(v->data, v->size, sizeof(double), rb_gsl_comparison_double);
|
45
|
-
return obj;
|
46
|
-
}
|
47
|
-
|
48
|
-
static VALUE rb_gsl_heapsort_vector2(VALUE obj)
|
49
|
-
{
|
50
|
-
gsl_vector *v = NULL, *vnew = NULL;
|
51
|
-
if (!rb_block_given_p()) rb_raise(rb_eRuntimeError, "Proc is not given");
|
52
|
-
Data_Get_Struct(obj, gsl_vector, v);
|
53
|
-
vnew = gsl_vector_alloc(v->size);
|
54
|
-
gsl_vector_memcpy(vnew, v);
|
55
|
-
gsl_heapsort(vnew->data, vnew->size, sizeof(double), rb_gsl_comparison_double);
|
56
|
-
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
57
|
-
}
|
58
|
-
|
59
|
-
static VALUE rb_gsl_heapsort_index_vector(VALUE obj)
|
60
|
-
{
|
61
|
-
gsl_vector *v = NULL;
|
62
|
-
gsl_permutation *p = NULL;
|
63
|
-
if (!rb_block_given_p()) rb_raise(rb_eRuntimeError, "Proc is not given");
|
64
|
-
Data_Get_Struct(obj, gsl_vector, v);
|
65
|
-
p = gsl_permutation_alloc(v->size);
|
66
|
-
gsl_heapsort_index(p->data, v->data, v->size, sizeof(double), rb_gsl_comparison_double);
|
67
|
-
return Data_Wrap_Struct(cgsl_permutation, 0, gsl_permutation_free, p);
|
68
|
-
}
|
69
|
-
|
70
|
-
static VALUE rb_gsl_heapsort_vector_complex(VALUE obj)
|
71
|
-
{
|
72
|
-
gsl_vector_complex *v = NULL;
|
73
|
-
if (!rb_block_given_p()) rb_raise(rb_eRuntimeError, "Proc is not given");
|
74
|
-
Data_Get_Struct(obj, gsl_vector_complex, v);
|
75
|
-
gsl_heapsort(v->data, v->size, sizeof(gsl_complex), rb_gsl_comparison_complex);
|
76
|
-
return obj;
|
77
|
-
}
|
78
|
-
|
79
|
-
static VALUE rb_gsl_heapsort_vector_complex2(VALUE obj)
|
80
|
-
{
|
81
|
-
gsl_vector_complex *v = NULL, *vnew = NULL;
|
82
|
-
if (!rb_block_given_p()) rb_raise(rb_eRuntimeError, "Proc is not given");
|
83
|
-
Data_Get_Struct(obj, gsl_vector_complex, v);
|
84
|
-
vnew = gsl_vector_complex_alloc(v->size);
|
85
|
-
gsl_vector_complex_memcpy(vnew, v);
|
86
|
-
gsl_heapsort(vnew->data, vnew->size, sizeof(gsl_complex), rb_gsl_comparison_complex);
|
87
|
-
return Data_Wrap_Struct(cgsl_vector_complex, 0, gsl_vector_complex_free, vnew);
|
88
|
-
}
|
89
|
-
|
90
|
-
static VALUE rb_gsl_heapsort_index_vector_complex(VALUE obj)
|
91
|
-
{
|
92
|
-
gsl_vector_complex *v = NULL;
|
93
|
-
gsl_permutation *p = NULL;
|
94
|
-
if (!rb_block_given_p()) rb_raise(rb_eRuntimeError, "Proc is not given");
|
95
|
-
Data_Get_Struct(obj, gsl_vector_complex, v);
|
96
|
-
p = gsl_permutation_alloc(v->size);
|
97
|
-
gsl_heapsort_index(p->data, v->data, v->size, sizeof(gsl_complex), rb_gsl_comparison_complex);
|
98
|
-
return Data_Wrap_Struct(cgsl_permutation, 0, gsl_permutation_free, p);
|
99
|
-
}
|
100
|
-
|
101
|
-
/* singleton */
|
102
|
-
static VALUE rb_gsl_heapsort(VALUE obj, VALUE vv)
|
103
|
-
{
|
104
|
-
if (!rb_block_given_p()) rb_raise(rb_eRuntimeError, "Proc is not given");
|
105
|
-
if (rb_obj_is_kind_of(vv, cgsl_vector_complex)) {
|
106
|
-
return rb_gsl_heapsort_vector_complex(vv);
|
107
|
-
} else if (rb_obj_is_kind_of(vv, cgsl_vector)) {
|
108
|
-
return rb_gsl_heapsort_vector(vv);
|
109
|
-
} else {
|
110
|
-
rb_raise(rb_eTypeError, "wrong argument type %s (Vector or Vector::Complex expected)", rb_class2name(CLASS_OF(vv)));
|
111
|
-
}
|
112
|
-
return vv;
|
113
|
-
}
|
114
|
-
|
115
|
-
static VALUE rb_gsl_heapsort2(VALUE obj, VALUE vv)
|
116
|
-
{
|
117
|
-
if (!rb_block_given_p()) rb_raise(rb_eRuntimeError, "Proc is not given");
|
118
|
-
if (rb_obj_is_kind_of(vv, cgsl_vector_complex)) {
|
119
|
-
return rb_gsl_heapsort_vector_complex2(vv);
|
120
|
-
} else if (rb_obj_is_kind_of(vv, cgsl_vector)) {
|
121
|
-
return rb_gsl_heapsort_vector2(vv);
|
122
|
-
} else {
|
123
|
-
rb_raise(rb_eTypeError, "wrong argument type %s (Vector or Vector::Complex expected)", rb_class2name(CLASS_OF(vv)));
|
124
|
-
}
|
125
|
-
return vv;
|
126
|
-
}
|
127
|
-
|
128
|
-
static VALUE rb_gsl_heapsort_index(VALUE obj, VALUE vv)
|
129
|
-
{
|
130
|
-
if (!rb_block_given_p()) rb_raise(rb_eRuntimeError, "Proc is not given");
|
131
|
-
if (rb_obj_is_kind_of(vv, cgsl_vector_complex)) {
|
132
|
-
return rb_gsl_heapsort_index_vector_complex(vv);
|
133
|
-
} else if (rb_obj_is_kind_of(vv, cgsl_vector)) {
|
134
|
-
return rb_gsl_heapsort_index_vector(vv);
|
135
|
-
} else {
|
136
|
-
rb_raise(rb_eTypeError, "wrong argument type %s (Vector or Vector::Complex expected)", rb_class2name(CLASS_OF(vv)));
|
137
|
-
}
|
138
|
-
return vv;
|
139
|
-
}
|
140
|
-
|
141
|
-
/*****/
|
142
|
-
|
143
|
-
#ifdef HAVE_NARRAY_H
|
144
|
-
static VALUE rb_gsl_sort_narray(VALUE obj)
|
145
|
-
{
|
146
|
-
struct NARRAY *na;
|
147
|
-
size_t size, stride;
|
148
|
-
double *ptr1, *ptr2;
|
149
|
-
VALUE ary;
|
150
|
-
GetNArray(obj, na);
|
151
|
-
ptr1 = (double*) na->ptr;
|
152
|
-
size = na->total;
|
153
|
-
stride = 1;
|
154
|
-
ary = na_make_object(NA_DFLOAT, na->rank, na->shape, CLASS_OF(obj));
|
155
|
-
ptr2 = NA_PTR_TYPE(ary, double*);
|
156
|
-
memcpy(ptr2, ptr1, sizeof(double)*size);
|
157
|
-
gsl_sort(ptr2, stride, size);
|
158
|
-
return ary;
|
159
|
-
}
|
160
|
-
static VALUE rb_gsl_sort_narray_bang(VALUE obj)
|
161
|
-
{
|
162
|
-
struct NARRAY *na;
|
163
|
-
size_t size, stride;
|
164
|
-
double *ptr1;
|
165
|
-
GetNArray(obj, na);
|
166
|
-
ptr1 = (double*) na->ptr;
|
167
|
-
size = na->total;
|
168
|
-
stride = 1;
|
169
|
-
gsl_sort(ptr1, stride, size);
|
170
|
-
return obj;
|
171
|
-
}
|
172
|
-
static VALUE rb_gsl_sort_index_narray(VALUE obj)
|
173
|
-
{
|
174
|
-
struct NARRAY *na;
|
175
|
-
size_t size, stride;
|
176
|
-
double *ptr1;
|
177
|
-
gsl_permutation *p;
|
178
|
-
GetNArray(obj, na);
|
179
|
-
ptr1 = (double*) na->ptr;
|
180
|
-
size = na->total;
|
181
|
-
stride = 1;
|
182
|
-
p = gsl_permutation_alloc(size);
|
183
|
-
gsl_sort_index(p->data, ptr1, stride, size);
|
184
|
-
return Data_Wrap_Struct(cgsl_permutation, 0, gsl_permutation_free, p);
|
185
|
-
}
|
186
|
-
#endif
|
187
|
-
|
188
|
-
void Init_gsl_sort(VALUE module)
|
189
|
-
{
|
190
|
-
rb_define_singleton_method(module, "heapsort!", rb_gsl_heapsort, 1);
|
191
|
-
rb_define_singleton_method(module, "heapsort", rb_gsl_heapsort2, 1);
|
192
|
-
rb_define_singleton_method(module, "heapsort_index", rb_gsl_heapsort_index, 1);
|
193
|
-
|
194
|
-
rb_define_method(cgsl_vector, "heapsort!", rb_gsl_heapsort_vector, 0);
|
195
|
-
rb_define_method(cgsl_vector, "heapsort", rb_gsl_heapsort_vector2, 0);
|
196
|
-
rb_define_method(cgsl_vector, "heapsort_index", rb_gsl_heapsort_index_vector, 0);
|
197
|
-
|
198
|
-
rb_define_method(cgsl_vector_complex, "heapsort!", rb_gsl_heapsort_vector_complex, 0);
|
199
|
-
rb_define_method(cgsl_vector_complex, "heapsort", rb_gsl_heapsort_vector_complex2, 0);
|
200
|
-
rb_define_method(cgsl_vector_complex, "heapsort_index", rb_gsl_heapsort_index_vector_complex, 0);
|
201
|
-
|
202
|
-
#ifdef HAVE_NARRAY_H
|
203
|
-
rb_define_method(cNArray, "gsl_sort", rb_gsl_sort_narray, 0);
|
204
|
-
rb_define_method(cNArray, "gsl_sort!", rb_gsl_sort_narray_bang, 0);
|
205
|
-
rb_define_method(cNArray, "gsl_sort_index", rb_gsl_sort_index_narray, 0);
|
206
|
-
#endif
|
207
|
-
}
|
data/ext/gsl_native/spline.c
DELETED
@@ -1,377 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
spline.c
|
3
|
-
Ruby/GSL: Ruby extension library for GSL (GNU Scientific Library)
|
4
|
-
(C) Copyright 2001-2006 by Yoshiki Tsunesada
|
5
|
-
|
6
|
-
Ruby/GSL is free software: you can redistribute it and/or modify it
|
7
|
-
under the terms of the GNU General Public License.
|
8
|
-
This library is distributed in the hope that it will be useful, but
|
9
|
-
WITHOUT ANY WARRANTY.
|
10
|
-
*/
|
11
|
-
|
12
|
-
#include "include/rb_gsl_interp.h"
|
13
|
-
|
14
|
-
EXTERN VALUE cgsl_interp_accel; /* defined in interp.c */
|
15
|
-
|
16
|
-
static void rb_gsl_spline_free(rb_gsl_spline *sp);
|
17
|
-
|
18
|
-
static VALUE rb_gsl_spline_new(int argc, VALUE *argv, VALUE klass)
|
19
|
-
{
|
20
|
-
rb_gsl_spline *sp = NULL;
|
21
|
-
const gsl_interp_type *T = NULL;
|
22
|
-
double *ptrx = NULL, *ptry = NULL;
|
23
|
-
size_t sizex = 0, sizey = 0, size = 0, stride = 1;
|
24
|
-
int i;
|
25
|
-
for (i = 0; i < argc; i++) {
|
26
|
-
switch (TYPE(argv[i])) {
|
27
|
-
case T_STRING:
|
28
|
-
T = get_interp_type(argv[i]);
|
29
|
-
break;
|
30
|
-
case T_FIXNUM:
|
31
|
-
if (T) size = FIX2INT(argv[i]);
|
32
|
-
else T = get_interp_type(argv[i]);
|
33
|
-
break;
|
34
|
-
default:
|
35
|
-
if (ptrx == NULL) {
|
36
|
-
ptrx = get_vector_ptr(argv[i], &stride, &sizex);
|
37
|
-
} else {
|
38
|
-
ptry = get_vector_ptr(argv[i], &stride, &sizey);
|
39
|
-
size = GSL_MIN_INT(sizex, sizey);
|
40
|
-
}
|
41
|
-
break;
|
42
|
-
}
|
43
|
-
}
|
44
|
-
if (size == 0) rb_raise(rb_eRuntimeError, "spline size is not given.");
|
45
|
-
sp = ALLOC(rb_gsl_spline);
|
46
|
-
if (T == NULL) T = gsl_interp_cspline;
|
47
|
-
sp->s = gsl_spline_alloc(T, size);
|
48
|
-
sp->a = gsl_interp_accel_alloc();
|
49
|
-
if (ptrx && ptry) gsl_spline_init(sp->s, ptrx, ptry, size);
|
50
|
-
return Data_Wrap_Struct(klass, 0, rb_gsl_spline_free, sp);
|
51
|
-
}
|
52
|
-
|
53
|
-
static void rb_gsl_spline_free(rb_gsl_spline *sp)
|
54
|
-
{
|
55
|
-
gsl_spline_free(sp->s);
|
56
|
-
gsl_interp_accel_free(sp->a);
|
57
|
-
free((rb_gsl_spline *) sp);
|
58
|
-
}
|
59
|
-
|
60
|
-
static VALUE rb_gsl_spline_init(VALUE obj, VALUE xxa, VALUE yya)
|
61
|
-
{
|
62
|
-
rb_gsl_spline *sp = NULL;
|
63
|
-
gsl_spline *p = NULL;
|
64
|
-
gsl_vector *xa = NULL, *ya = NULL;
|
65
|
-
size_t i, size;
|
66
|
-
int flagx = 0, flagy = 0;
|
67
|
-
double *ptr1 = NULL, *ptr2 = NULL;
|
68
|
-
Data_Get_Struct(obj, rb_gsl_spline, sp);
|
69
|
-
p = sp->s;
|
70
|
-
if (TYPE(xxa) == T_ARRAY) {
|
71
|
-
// size = RARRAY(xxa)->len;
|
72
|
-
size = RARRAY_LEN(xxa);
|
73
|
-
xa = gsl_vector_alloc(size);
|
74
|
-
for (i = 0; i < size; i++) gsl_vector_set(xa, i, NUM2DBL(rb_ary_entry(xxa, i)));
|
75
|
-
ptr1 = xa->data;
|
76
|
-
flagx = 1;
|
77
|
-
} else if (VECTOR_P(xxa)) {
|
78
|
-
Data_Get_Struct(xxa, gsl_vector, xa);
|
79
|
-
size = xa->size;
|
80
|
-
ptr1 = xa->data;
|
81
|
-
#ifdef HAVE_NARRAY_H
|
82
|
-
} else if (NA_IsNArray(xxa)) {
|
83
|
-
struct NARRAY *nax = NULL;
|
84
|
-
GetNArray(xxa, nax);
|
85
|
-
size = nax->total;
|
86
|
-
ptr1 = (double *) nax->ptr;
|
87
|
-
#endif
|
88
|
-
} else {
|
89
|
-
rb_raise(rb_eTypeError, "not a vector");
|
90
|
-
}
|
91
|
-
if (TYPE(yya) == T_ARRAY) {
|
92
|
-
ya = gsl_vector_alloc(size);
|
93
|
-
for (i = 0; i < size; i++) gsl_vector_set(ya, i, NUM2DBL(rb_ary_entry(yya, i)));
|
94
|
-
ptr2 = ya->data;
|
95
|
-
flagy = 1;
|
96
|
-
#ifdef HAVE_NARRAY_H
|
97
|
-
} else if (NA_IsNArray(yya)) {
|
98
|
-
struct NARRAY *nay = NULL;
|
99
|
-
GetNArray(yya, nay);
|
100
|
-
ptr2 = (double *) nay->ptr;
|
101
|
-
#endif
|
102
|
-
} else if (VECTOR_P(yya)) {
|
103
|
-
Data_Get_Struct(yya, gsl_vector, ya);
|
104
|
-
ptr2 = ya->data;
|
105
|
-
} else {
|
106
|
-
rb_raise(rb_eTypeError, "not a vector");
|
107
|
-
}
|
108
|
-
gsl_spline_init(p, ptr1, ptr2, size);
|
109
|
-
if (flagx == 1) gsl_vector_free(xa);
|
110
|
-
if (flagy == 1) gsl_vector_free(ya);
|
111
|
-
return obj;
|
112
|
-
}
|
113
|
-
|
114
|
-
static VALUE rb_gsl_spline_accel(VALUE obj)
|
115
|
-
{
|
116
|
-
rb_gsl_spline *rgi = NULL;
|
117
|
-
Data_Get_Struct(obj, rb_gsl_spline, rgi);
|
118
|
-
return Data_Wrap_Struct(cgsl_interp_accel, 0, NULL, rgi->a);
|
119
|
-
}
|
120
|
-
|
121
|
-
static VALUE rb_gsl_spline_evaluate(VALUE obj, VALUE xx,
|
122
|
-
double (*eval)(const gsl_spline *, double,
|
123
|
-
gsl_interp_accel *))
|
124
|
-
{
|
125
|
-
rb_gsl_spline *rgs = NULL;
|
126
|
-
gsl_vector *v = NULL, *vnew = NULL;
|
127
|
-
gsl_matrix *m = NULL, *mnew = NULL;
|
128
|
-
VALUE ary, x;
|
129
|
-
double val;
|
130
|
-
size_t n, i, j;
|
131
|
-
Data_Get_Struct(obj, rb_gsl_spline, rgs);
|
132
|
-
if (CLASS_OF(xx) == rb_cRange) xx = rb_gsl_range2ary(xx);
|
133
|
-
switch (TYPE(xx)) {
|
134
|
-
case T_FIXNUM: case T_BIGNUM: case T_FLOAT:
|
135
|
-
Need_Float(xx);
|
136
|
-
return rb_float_new((*eval)(rgs->s, NUM2DBL(xx), rgs->a));
|
137
|
-
break;
|
138
|
-
case T_ARRAY:
|
139
|
-
// n = RARRAY(xx)->len;
|
140
|
-
n = RARRAY_LEN(xx);
|
141
|
-
ary = rb_ary_new2(n);
|
142
|
-
for (i = 0; i < n; i++) {
|
143
|
-
x = rb_ary_entry(xx, i);
|
144
|
-
Need_Float(x);
|
145
|
-
val = (*eval)(rgs->s, NUM2DBL(x), rgs->a);
|
146
|
-
rb_ary_store(ary, i, rb_float_new(val));
|
147
|
-
}
|
148
|
-
return ary;
|
149
|
-
break;
|
150
|
-
default:
|
151
|
-
#ifdef HAVE_NARRAY_H
|
152
|
-
if (NA_IsNArray(xx)) {
|
153
|
-
double *ptr1 = NULL, *ptr2 = NULL;
|
154
|
-
struct NARRAY *na = NULL;
|
155
|
-
GetNArray(xx, na);
|
156
|
-
ptr1 = (double *) na->ptr;
|
157
|
-
n = na->total;
|
158
|
-
ary = na_make_object(NA_DFLOAT, na->rank, na->shape, CLASS_OF(xx));
|
159
|
-
ptr2 = NA_PTR_TYPE(ary, double*);
|
160
|
-
for (i = 0; i < n; i++)
|
161
|
-
ptr2[i] = (*eval)(rgs->s, ptr1[i], rgs->a);
|
162
|
-
return ary;
|
163
|
-
}
|
164
|
-
#endif
|
165
|
-
if (VECTOR_P(xx)) {
|
166
|
-
Data_Get_Struct(xx, gsl_vector, v);
|
167
|
-
vnew = gsl_vector_alloc(v->size);
|
168
|
-
for (i = 0; i < v->size; i++) {
|
169
|
-
val = (*eval)(rgs->s, gsl_vector_get(v, i), rgs->a);
|
170
|
-
gsl_vector_set(vnew, i, val);
|
171
|
-
}
|
172
|
-
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
|
173
|
-
} else if (MATRIX_P(xx)) {
|
174
|
-
Data_Get_Struct(xx, gsl_matrix, m);
|
175
|
-
mnew = gsl_matrix_alloc(m->size1, m->size2);
|
176
|
-
for (i = 0; i < m->size1; i++) {
|
177
|
-
for (j = 0; j < m->size2; j++) {
|
178
|
-
val = (*eval)(rgs->s, gsl_matrix_get(m, i, j), rgs->a);
|
179
|
-
gsl_matrix_set(mnew, i, j, val);
|
180
|
-
}
|
181
|
-
}
|
182
|
-
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, mnew);
|
183
|
-
} else {
|
184
|
-
rb_raise(rb_eTypeError, "wrong argument type %s", rb_class2name(CLASS_OF(xx)));
|
185
|
-
}
|
186
|
-
break;
|
187
|
-
}
|
188
|
-
|
189
|
-
/* never reach here */
|
190
|
-
return Qnil;
|
191
|
-
}
|
192
|
-
|
193
|
-
static VALUE rb_gsl_spline_eval(VALUE obj, VALUE xx)
|
194
|
-
{
|
195
|
-
return rb_gsl_spline_evaluate(obj, xx, gsl_spline_eval);
|
196
|
-
}
|
197
|
-
|
198
|
-
static VALUE rb_gsl_spline_eval_deriv(VALUE obj, VALUE xx)
|
199
|
-
{
|
200
|
-
return rb_gsl_spline_evaluate(obj, xx, gsl_spline_eval_deriv);
|
201
|
-
}
|
202
|
-
|
203
|
-
static VALUE rb_gsl_spline_eval_deriv2(VALUE obj, VALUE xx)
|
204
|
-
{
|
205
|
-
return rb_gsl_spline_evaluate(obj, xx, gsl_spline_eval_deriv2);
|
206
|
-
}
|
207
|
-
|
208
|
-
static VALUE rb_gsl_spline_eval_integ(VALUE obj, VALUE aa, VALUE bb)
|
209
|
-
{
|
210
|
-
rb_gsl_spline *sp = NULL;
|
211
|
-
gsl_spline *s = NULL;
|
212
|
-
gsl_interp_accel *acc = NULL;
|
213
|
-
double a, b;
|
214
|
-
Need_Float(aa);
|
215
|
-
Need_Float(bb);
|
216
|
-
Data_Get_Struct(obj, rb_gsl_spline, sp);
|
217
|
-
s = sp->s;
|
218
|
-
acc = sp->a;
|
219
|
-
a = NUM2DBL(aa);
|
220
|
-
b = NUM2DBL(bb);
|
221
|
-
return rb_float_new(gsl_spline_eval_integ(s, a, b, acc));
|
222
|
-
}
|
223
|
-
|
224
|
-
static VALUE rb_gsl_spline_find(VALUE obj, VALUE vv, VALUE xx)
|
225
|
-
{
|
226
|
-
rb_gsl_spline *sp = NULL;
|
227
|
-
double *ptr = NULL, x;
|
228
|
-
size_t size, stride;
|
229
|
-
Data_Get_Struct(obj, rb_gsl_spline, sp);
|
230
|
-
ptr = get_vector_ptr(vv, &stride, &size);
|
231
|
-
// x = RFLOAT(xx)->value;
|
232
|
-
x = NUM2DBL(xx);
|
233
|
-
return INT2FIX(gsl_interp_accel_find(sp->a, ptr, size, x));
|
234
|
-
}
|
235
|
-
|
236
|
-
static VALUE rb_gsl_spline_eval_e(VALUE obj, VALUE xx)
|
237
|
-
{
|
238
|
-
rb_gsl_spline *rgs = NULL;
|
239
|
-
double val;
|
240
|
-
int status;
|
241
|
-
Data_Get_Struct(obj, rb_gsl_spline, rgs);
|
242
|
-
Need_Float(xx);
|
243
|
-
status = gsl_spline_eval_e(rgs->s, NUM2DBL(xx), rgs->a, &val);
|
244
|
-
switch (status) {
|
245
|
-
case GSL_EDOM:
|
246
|
-
rb_gsl_error_handler("gsl_spline_eval_e error", __FILE__, __LINE__, status);
|
247
|
-
break;
|
248
|
-
default:
|
249
|
-
return rb_float_new(val);
|
250
|
-
break;
|
251
|
-
}
|
252
|
-
return Qnil;
|
253
|
-
}
|
254
|
-
|
255
|
-
static VALUE rb_gsl_spline_eval_deriv_e(VALUE obj, VALUE xx)
|
256
|
-
{
|
257
|
-
rb_gsl_spline *rgs = NULL;
|
258
|
-
double val;
|
259
|
-
int status;
|
260
|
-
Data_Get_Struct(obj, rb_gsl_spline, rgs);
|
261
|
-
Need_Float(xx);
|
262
|
-
status = gsl_spline_eval_deriv_e(rgs->s, NUM2DBL(xx), rgs->a, &val);
|
263
|
-
switch (status) {
|
264
|
-
case GSL_EDOM:
|
265
|
-
rb_gsl_error_handler("gsl_spline_eval_deriv_e error", __FILE__, __LINE__, status);
|
266
|
-
break;
|
267
|
-
default:
|
268
|
-
return rb_float_new(val);
|
269
|
-
break;
|
270
|
-
}
|
271
|
-
return Qnil;
|
272
|
-
}
|
273
|
-
|
274
|
-
static VALUE rb_gsl_spline_eval_deriv2_e(VALUE obj, VALUE xx)
|
275
|
-
{
|
276
|
-
rb_gsl_spline *rgs = NULL;
|
277
|
-
double val;
|
278
|
-
int status;
|
279
|
-
Data_Get_Struct(obj, rb_gsl_spline, rgs);
|
280
|
-
Need_Float(xx);
|
281
|
-
status = gsl_spline_eval_deriv2_e(rgs->s, NUM2DBL(xx), rgs->a, &val);
|
282
|
-
switch (status) {
|
283
|
-
case GSL_EDOM:
|
284
|
-
rb_gsl_error_handler("gsl_spline_eval_deriv2_e error", __FILE__, __LINE__, status);
|
285
|
-
break;
|
286
|
-
default:
|
287
|
-
return rb_float_new(val);
|
288
|
-
break;
|
289
|
-
}
|
290
|
-
return Qnil;
|
291
|
-
}
|
292
|
-
|
293
|
-
static VALUE rb_gsl_spline_eval_integ_e(VALUE obj, VALUE a, VALUE b)
|
294
|
-
{
|
295
|
-
rb_gsl_spline *rgs = NULL;
|
296
|
-
double val;
|
297
|
-
int status;
|
298
|
-
Data_Get_Struct(obj, rb_gsl_spline, rgs);
|
299
|
-
Need_Float(a); Need_Float(b);
|
300
|
-
status = gsl_spline_eval_integ_e(rgs->s, NUM2DBL(a), NUM2DBL(b), rgs->a, &val);
|
301
|
-
switch (status) {
|
302
|
-
case GSL_EDOM:
|
303
|
-
rb_gsl_error_handler("gsl_spline_eval_integ_e error", __FILE__, __LINE__, status);
|
304
|
-
break;
|
305
|
-
default:
|
306
|
-
return rb_float_new(val);
|
307
|
-
break;
|
308
|
-
}
|
309
|
-
return Qnil;
|
310
|
-
}
|
311
|
-
|
312
|
-
static VALUE rb_gsl_spline_info(VALUE obj)
|
313
|
-
{
|
314
|
-
rb_gsl_spline *p = NULL;
|
315
|
-
char buf[256];
|
316
|
-
Data_Get_Struct(obj, rb_gsl_spline, p);
|
317
|
-
sprintf(buf, "Class: %s\n", rb_class2name(CLASS_OF(obj)));
|
318
|
-
sprintf(buf, "%sSuperClass: %s\n", buf, rb_class2name(RCLASS_SUPER(CLASS_OF(obj))));
|
319
|
-
sprintf(buf, "%sType: %s\n", buf, gsl_interp_name(p->s->interp));
|
320
|
-
sprintf(buf, "%sxmin: %f\n", buf, p->s->interp->xmin);
|
321
|
-
sprintf(buf, "%sxmax: %f\n", buf, p->s->interp->xmax);
|
322
|
-
sprintf(buf, "%sSize: %d\n", buf, (int) p->s->size);
|
323
|
-
return rb_str_new2(buf);
|
324
|
-
}
|
325
|
-
|
326
|
-
static VALUE rb_gsl_spline_name(VALUE obj)
|
327
|
-
{
|
328
|
-
rb_gsl_spline *p = NULL;
|
329
|
-
Data_Get_Struct(obj, rb_gsl_spline, p);
|
330
|
-
return rb_str_new2(gsl_spline_name(p->s));
|
331
|
-
}
|
332
|
-
static VALUE rb_gsl_spline_min_size(VALUE obj)
|
333
|
-
{
|
334
|
-
rb_gsl_spline *sp = NULL;
|
335
|
-
Data_Get_Struct(obj, rb_gsl_spline, sp);
|
336
|
-
return UINT2NUM(gsl_spline_min_size(sp->s));
|
337
|
-
}
|
338
|
-
|
339
|
-
void Init_gsl_spline(VALUE module)
|
340
|
-
{
|
341
|
-
VALUE cgsl_spline;
|
342
|
-
|
343
|
-
cgsl_spline = rb_define_class_under(module, "Spline", cGSL_Object);
|
344
|
-
|
345
|
-
rb_define_singleton_method(cgsl_spline, "alloc", rb_gsl_spline_new, -1);
|
346
|
-
|
347
|
-
/*****/
|
348
|
-
|
349
|
-
rb_define_method(cgsl_spline, "init", rb_gsl_spline_init, 2);
|
350
|
-
rb_define_method(cgsl_spline, "accel", rb_gsl_spline_accel, 0);
|
351
|
-
rb_define_method(cgsl_spline, "eval", rb_gsl_spline_eval, 1);
|
352
|
-
rb_define_alias(cgsl_spline, "[]", "eval");
|
353
|
-
rb_define_method(cgsl_spline, "eval_deriv", rb_gsl_spline_eval_deriv, 1);
|
354
|
-
rb_define_alias(cgsl_spline, "deriv", "eval_deriv");
|
355
|
-
rb_define_method(cgsl_spline, "eval_deriv2", rb_gsl_spline_eval_deriv2, 1);
|
356
|
-
rb_define_alias(cgsl_spline, "deriv2", "eval_deriv2");
|
357
|
-
rb_define_method(cgsl_spline, "eval_integ", rb_gsl_spline_eval_integ, 2);
|
358
|
-
rb_define_alias(cgsl_spline, "integ", "eval_integ");
|
359
|
-
|
360
|
-
rb_define_method(cgsl_spline, "name", rb_gsl_spline_name, 0);
|
361
|
-
rb_define_alias(cgsl_spline, "type", "name");
|
362
|
-
|
363
|
-
rb_define_method(cgsl_spline, "find", rb_gsl_spline_find, 2);
|
364
|
-
rb_define_alias(cgsl_spline, "accel_find", "find");
|
365
|
-
|
366
|
-
rb_define_method(cgsl_spline, "eval_e", rb_gsl_spline_eval_e, 1);
|
367
|
-
rb_define_method(cgsl_spline, "eval_deriv_e", rb_gsl_spline_eval_deriv_e, 1);
|
368
|
-
rb_define_alias(cgsl_spline, "deriv_e", "eval_deriv_e");
|
369
|
-
rb_define_method(cgsl_spline, "eval_deriv2_e", rb_gsl_spline_eval_deriv2_e, 1);
|
370
|
-
rb_define_alias(cgsl_spline, "deri2v_e", "eval_deriv2_e");
|
371
|
-
rb_define_method(cgsl_spline, "eval_integ_e", rb_gsl_spline_eval_integ_e, 1);
|
372
|
-
rb_define_alias(cgsl_spline, "integ_e", "eval_integ_e");
|
373
|
-
|
374
|
-
rb_define_method(cgsl_spline, "info", rb_gsl_spline_info, 0);
|
375
|
-
|
376
|
-
rb_define_method(cgsl_spline, "min_size", rb_gsl_spline_min_size, 0);
|
377
|
-
}
|