rb-gsl 1.16.0.4 → 1.16.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +12 -0
- data/.travis.yml +24 -0
- data/AUTHORS +6 -0
- data/COPYING +341 -339
- data/ChangeLog +608 -587
- data/Gemfile +4 -0
- data/README.md +77 -0
- data/Rakefile +14 -33
- 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/{gsl → gsl_native}/alf.c +9 -9
- data/ext/{gsl → gsl_native}/array.c +64 -151
- data/ext/{gsl → gsl_native}/array_complex.c +61 -63
- data/ext/{gsl → gsl_native}/blas.c +0 -0
- data/ext/{gsl → gsl_native}/blas1.c +32 -32
- data/ext/{gsl → gsl_native}/blas2.c +54 -58
- data/ext/{gsl → gsl_native}/blas3.c +54 -54
- data/ext/{gsl → gsl_native}/block.c +3 -6
- data/ext/{gsl/block_source.c → gsl_native/block_source.h} +109 -111
- data/ext/gsl_native/bspline.c +122 -0
- data/ext/{gsl → gsl_native}/bundle.c +0 -0
- data/ext/{gsl → gsl_native}/cdf.c +76 -88
- data/ext/{gsl → gsl_native}/cheb.c +74 -85
- data/ext/{gsl → gsl_native}/combination.c +9 -16
- data/ext/{gsl → gsl_native}/common.c +7 -37
- data/ext/{gsl → gsl_native}/complex.c +113 -115
- data/ext/gsl_native/const.c +331 -0
- data/ext/{gsl → gsl_native}/const_additional.c +12 -33
- data/ext/gsl_native/cqp.c +283 -0
- data/ext/{gsl → gsl_native}/deriv.c +22 -30
- data/ext/{gsl → gsl_native}/dht.c +20 -28
- data/ext/{gsl → gsl_native}/diff.c +23 -25
- data/ext/{gsl → gsl_native}/dirac.c +44 -45
- data/ext/{gsl → gsl_native}/eigen.c +1031 -1082
- data/ext/{gsl → gsl_native}/error.c +13 -13
- data/ext/{gsl → gsl_native}/extconf.rb +5 -13
- data/ext/{gsl → gsl_native}/fft.c +192 -198
- data/ext/{gsl → gsl_native}/fit.c +16 -16
- data/ext/gsl_native/fresnel.c +312 -0
- data/ext/{gsl → gsl_native}/function.c +29 -35
- data/ext/{gsl → gsl_native}/geometry.c +15 -15
- data/ext/{gsl → gsl_native}/graph.c +37 -87
- data/ext/{gsl → gsl_native}/gsl.c +10 -23
- data/ext/{gsl → gsl_native}/gsl_narray.c +15 -24
- data/ext/{gsl → gsl_native}/histogram.c +123 -150
- data/ext/{gsl → gsl_native}/histogram2d.c +71 -96
- data/ext/{gsl → gsl_native}/histogram3d.c +72 -72
- data/ext/{gsl → gsl_native}/histogram3d_source.c +195 -196
- data/ext/{gsl → gsl_native}/histogram_find.c +31 -33
- data/ext/{gsl → gsl_native}/histogram_oper.c +43 -52
- data/ext/{gsl → gsl_native}/ieee.c +7 -15
- data/ext/{gsl → gsl_native}/include/rb_gsl.h +0 -7
- data/ext/{gsl → gsl_native}/include/rb_gsl_array.h +15 -25
- data/ext/{gsl → gsl_native}/include/rb_gsl_cheb.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_common.h +44 -52
- data/ext/{gsl → gsl_native}/include/rb_gsl_complex.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_const.h +0 -5
- data/ext/{gsl → gsl_native}/include/rb_gsl_dirac.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_eigen.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_fft.h +0 -3
- data/ext/{gsl → gsl_native}/include/rb_gsl_fit.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_function.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_graph.h +2 -2
- data/ext/{gsl → gsl_native}/include/rb_gsl_histogram.h +8 -8
- data/ext/{gsl → gsl_native}/include/rb_gsl_histogram3d.h +50 -50
- data/ext/{gsl → gsl_native}/include/rb_gsl_integration.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_interp.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_linalg.h +0 -1
- data/ext/{gsl → gsl_native}/include/rb_gsl_math.h +0 -4
- data/ext/{gsl → gsl_native}/include/rb_gsl_odeiv.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_poly.h +3 -3
- data/ext/{gsl → gsl_native}/include/rb_gsl_rational.h +1 -1
- data/ext/{gsl → gsl_native}/include/rb_gsl_rng.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_root.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_sf.h +39 -43
- data/ext/{gsl → gsl_native}/include/rb_gsl_statistics.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_tensor.h +0 -0
- data/ext/{gsl → gsl_native}/include/rb_gsl_with_narray.h +0 -0
- data/ext/{gsl → gsl_native}/include/templates_off.h +0 -0
- data/ext/{gsl → gsl_native}/include/templates_on.h +1 -1
- data/ext/{gsl → gsl_native}/integration.c +160 -183
- data/ext/{gsl → gsl_native}/interp.c +23 -31
- data/ext/gsl_native/jacobi.c +733 -0
- data/ext/{gsl → gsl_native}/linalg.c +448 -576
- data/ext/{gsl → gsl_native}/linalg_complex.c +84 -98
- data/ext/{gsl → gsl_native}/math.c +45 -63
- data/ext/{gsl → gsl_native}/matrix.c +4 -6
- data/ext/{gsl → gsl_native}/matrix_complex.c +111 -114
- data/ext/{gsl → gsl_native}/matrix_double.c +74 -77
- data/ext/{gsl → gsl_native}/matrix_int.c +49 -50
- data/ext/{gsl/matrix_source.c → gsl_native/matrix_source.h} +280 -302
- data/ext/{gsl → gsl_native}/min.c +43 -74
- data/ext/{gsl → gsl_native}/monte.c +45 -59
- data/ext/{gsl → gsl_native}/multifit.c +138 -147
- data/ext/{gsl → gsl_native}/multimin.c +55 -83
- data/ext/{gsl → gsl_native}/multimin_fsdf.c +15 -15
- data/ext/{gsl → gsl_native}/multiroots.c +61 -64
- data/ext/{gsl → gsl_native}/multiset.c +3 -7
- data/ext/{gsl → gsl_native}/ndlinear.c +320 -321
- data/ext/{gsl → gsl_native}/nmf.c +11 -11
- data/ext/{gsl → gsl_native}/nmf_wrap.c +1 -1
- data/ext/{gsl → gsl_native}/ntuple.c +13 -13
- data/ext/{gsl → gsl_native}/odeiv.c +95 -106
- data/ext/gsl_native/ool.c +879 -0
- data/ext/{gsl → gsl_native}/permutation.c +36 -34
- data/ext/{gsl → gsl_native}/poly.c +2 -5
- data/ext/{gsl → gsl_native}/poly2.c +6 -6
- data/ext/{gsl/poly_source.c → gsl_native/poly_source.h} +232 -275
- data/ext/{gsl → gsl_native}/qrng.c +6 -17
- data/ext/{gsl → gsl_native}/randist.c +218 -243
- data/ext/{gsl → gsl_native}/rational.c +9 -9
- data/ext/{gsl → gsl_native}/rng.c +29 -45
- data/ext/{gsl → gsl_native}/root.c +43 -43
- data/ext/{gsl → gsl_native}/sf.c +163 -197
- data/ext/{gsl → gsl_native}/sf_airy.c +0 -0
- data/ext/{gsl → gsl_native}/sf_bessel.c +6 -6
- data/ext/{gsl → gsl_native}/sf_clausen.c +0 -0
- data/ext/{gsl → gsl_native}/sf_coulomb.c +39 -39
- data/ext/{gsl → gsl_native}/sf_coupling.c +29 -29
- data/ext/{gsl → gsl_native}/sf_dawson.c +0 -0
- data/ext/{gsl → gsl_native}/sf_debye.c +0 -9
- data/ext/{gsl → gsl_native}/sf_dilog.c +0 -0
- data/ext/{gsl → gsl_native}/sf_elementary.c +2 -2
- data/ext/{gsl → gsl_native}/sf_ellint.c +42 -42
- data/ext/{gsl → gsl_native}/sf_elljac.c +2 -2
- data/ext/{gsl → gsl_native}/sf_erfc.c +0 -4
- data/ext/{gsl → gsl_native}/sf_exp.c +2 -2
- data/ext/{gsl → gsl_native}/sf_expint.c +1 -11
- data/ext/{gsl → gsl_native}/sf_fermi_dirac.c +0 -0
- data/ext/{gsl → gsl_native}/sf_gamma.c +1 -5
- data/ext/{gsl → gsl_native}/sf_gegenbauer.c +0 -0
- data/ext/{gsl → gsl_native}/sf_hyperg.c +0 -0
- data/ext/{gsl → gsl_native}/sf_laguerre.c +3 -3
- data/ext/{gsl → gsl_native}/sf_lambert.c +0 -0
- data/ext/{gsl → gsl_native}/sf_legendre.c +0 -0
- data/ext/{gsl → gsl_native}/sf_log.c +3 -3
- data/ext/gsl_native/sf_mathieu.c +235 -0
- data/ext/{gsl → gsl_native}/sf_power.c +0 -0
- data/ext/{gsl → gsl_native}/sf_psi.c +2 -11
- data/ext/{gsl → gsl_native}/sf_synchrotron.c +0 -0
- data/ext/{gsl → gsl_native}/sf_transport.c +0 -0
- data/ext/{gsl → gsl_native}/sf_trigonometric.c +3 -3
- data/ext/{gsl → gsl_native}/sf_zeta.c +0 -4
- data/ext/{gsl → gsl_native}/signal.c +60 -64
- data/ext/{gsl → gsl_native}/siman.c +36 -40
- data/ext/{gsl → gsl_native}/sort.c +3 -4
- data/ext/{gsl → gsl_native}/spline.c +25 -43
- data/ext/{gsl → gsl_native}/stats.c +102 -115
- data/ext/{gsl → gsl_native}/sum.c +32 -32
- data/ext/{gsl → gsl_native}/tamu_anova.c +0 -0
- data/ext/{gsl → gsl_native}/tensor.c +2 -4
- data/ext/{gsl/tensor_source.c → gsl_native/tensor_source.h} +144 -144
- data/ext/{gsl → gsl_native}/vector.c +2 -4
- data/ext/{gsl → gsl_native}/vector_complex.c +165 -171
- data/ext/{gsl → gsl_native}/vector_double.c +167 -174
- data/ext/{gsl → gsl_native}/vector_int.c +23 -25
- data/ext/{gsl/vector_source.c → gsl_native/vector_source.h} +400 -414
- data/ext/{gsl → gsl_native}/wavelet.c +215 -236
- data/lib/gsl.rb +1 -7
- data/lib/gsl/gnuplot.rb +2 -2
- data/lib/gsl/version.rb +1 -3
- data/rb-gsl.gemspec +29 -0
- data/rdoc/blas.rdoc +3 -3
- data/rdoc/bspline.rdoc +7 -7
- data/rdoc/cheb.rdoc +8 -8
- data/rdoc/cholesky_complex.rdoc +1 -1
- data/rdoc/combi.rdoc +9 -9
- data/rdoc/complex.rdoc +11 -11
- data/rdoc/const.rdoc +20 -20
- data/rdoc/dht.rdoc +6 -6
- data/rdoc/diff.rdoc +6 -6
- data/rdoc/ehandling.rdoc +3 -3
- data/rdoc/eigen.rdoc +11 -11
- data/rdoc/fft.rdoc +26 -26
- data/rdoc/fit.rdoc +18 -18
- data/rdoc/graph.rdoc +2 -2
- data/rdoc/hist.rdoc +16 -16
- data/rdoc/hist2d.rdoc +4 -4
- data/rdoc/hist3d.rdoc +3 -3
- data/rdoc/integration.rdoc +16 -16
- data/rdoc/interp.rdoc +11 -11
- data/rdoc/intro.rdoc +3 -3
- data/rdoc/linalg.rdoc +20 -20
- data/rdoc/linalg_complex.rdoc +1 -1
- data/rdoc/math.rdoc +13 -13
- data/rdoc/matrix.rdoc +22 -22
- data/rdoc/min.rdoc +9 -9
- data/rdoc/monte.rdoc +3 -3
- data/rdoc/multimin.rdoc +12 -12
- data/rdoc/multiroot.rdoc +12 -12
- data/rdoc/narray.rdoc +9 -9
- data/rdoc/ndlinear.rdoc +4 -4
- data/rdoc/nonlinearfit.rdoc +17 -17
- data/rdoc/ntuple.rdoc +5 -5
- data/rdoc/odeiv.rdoc +12 -12
- data/rdoc/perm.rdoc +11 -11
- data/rdoc/poly.rdoc +17 -17
- data/rdoc/qrng.rdoc +9 -9
- data/rdoc/randist.rdoc +10 -10
- data/rdoc/ref.rdoc +49 -49
- data/rdoc/rng.rdoc +9 -9
- data/rdoc/roots.rdoc +12 -12
- data/rdoc/sf.rdoc +35 -35
- data/rdoc/siman.rdoc +3 -3
- data/rdoc/sort.rdoc +6 -6
- data/rdoc/start.rdoc +2 -2
- data/rdoc/stats.rdoc +13 -13
- data/rdoc/sum.rdoc +4 -4
- data/rdoc/tensor.rdoc +3 -3
- data/rdoc/tut.rdoc +1 -1
- data/rdoc/use.rdoc +3 -3
- data/rdoc/vector.rdoc +28 -28
- data/rdoc/vector_complex.rdoc +6 -6
- data/rdoc/wavelet.rdoc +8 -8
- data/test/gsl/blas_test.rb +1 -1
- data/test/gsl/index_test.rb +61 -0
- data/test/gsl/matrix_test.rb +21 -0
- data/uncrustify.cfg +1693 -0
- metadata +212 -243
- data/README +0 -28
- data/ext/gsl/bspline.c +0 -130
- data/ext/gsl/const.c +0 -672
- data/ext/gsl/cqp.c +0 -283
- data/ext/gsl/fcmp.c +0 -64
- data/ext/gsl/fresnel.c +0 -312
- data/ext/gsl/jacobi.c +0 -739
- data/ext/gsl/ool.c +0 -879
- data/ext/gsl/oper_complex_source.c +0 -251
- data/ext/gsl/sf_mathieu.c +0 -238
- data/rdoc/index.rdoc +0 -50
@@ -91,11 +91,11 @@ static VALUE rb_gsl_blas_dgemm(int argc, VALUE *argv, VALUE obj)
|
|
91
91
|
static VALUE rb_gsl_blas_zgemm(int argc, VALUE *argv, VALUE obj)
|
92
92
|
{
|
93
93
|
gsl_matrix_complex *A = NULL, *B = NULL, *C = NULL;
|
94
|
-
gsl_complex
|
94
|
+
gsl_complex *pa = NULL, *pb = NULL;
|
95
95
|
CBLAS_TRANSPOSE_t TransA, TransB;
|
96
96
|
int flag = 0;
|
97
|
-
|
98
|
-
|
97
|
+
(*pa).dat[0] = 1.0; (*pa).dat[1] = 0.0;
|
98
|
+
(*pb).dat[0] = 0.0; (*pb).dat[1] = 0.0;
|
99
99
|
switch (argc) {
|
100
100
|
case 2:
|
101
101
|
CHECK_MATRIX_COMPLEX(argv[0]);
|
@@ -156,7 +156,7 @@ static VALUE rb_gsl_blas_zgemm(int argc, VALUE *argv, VALUE obj)
|
|
156
156
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 2 or 7)", argc);
|
157
157
|
break;
|
158
158
|
}
|
159
|
-
gsl_blas_zgemm(TransA, TransB,
|
159
|
+
gsl_blas_zgemm(TransA, TransB, *pa, A, B, *pb, C);
|
160
160
|
if (flag == 1) return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, C);
|
161
161
|
else return argv[6];
|
162
162
|
}
|
@@ -307,7 +307,7 @@ static VALUE rb_gsl_blas_zsymm(int argc, VALUE *argv, VALUE obj)
|
|
307
307
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 2 or 7)", argc);
|
308
308
|
break;
|
309
309
|
}
|
310
|
-
gsl_blas_zsymm(Side, Uplo,
|
310
|
+
gsl_blas_zsymm(Side, Uplo, *pa, A, B, *pb, C);
|
311
311
|
if (flag == 1) return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, C);
|
312
312
|
else return argv[6];
|
313
313
|
}
|
@@ -382,13 +382,13 @@ static VALUE rb_gsl_blas_zhemm(int argc, VALUE *argv, VALUE obj)
|
|
382
382
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 2 or 7)", argc);
|
383
383
|
break;
|
384
384
|
}
|
385
|
-
gsl_blas_zhemm(Side, Uplo,
|
385
|
+
gsl_blas_zhemm(Side, Uplo, *pa, A, B, *pb, C);
|
386
386
|
if (flag == 1) return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, C);
|
387
387
|
else return argv[6];
|
388
388
|
}
|
389
389
|
|
390
|
-
static VALUE rb_gsl_blas_dtrmm(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
391
|
-
|
390
|
+
static VALUE rb_gsl_blas_dtrmm(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
391
|
+
VALUE d, VALUE a, VALUE aa, VALUE bb)
|
392
392
|
{
|
393
393
|
gsl_matrix *A = NULL, *B = NULL;
|
394
394
|
double alpha;
|
@@ -410,8 +410,8 @@ static VALUE rb_gsl_blas_dtrmm(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
|
410
410
|
return bb;
|
411
411
|
}
|
412
412
|
|
413
|
-
static VALUE rb_gsl_blas_dtrmm2(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
414
|
-
|
413
|
+
static VALUE rb_gsl_blas_dtrmm2(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
414
|
+
VALUE d, VALUE a, VALUE aa, VALUE bb)
|
415
415
|
{
|
416
416
|
gsl_matrix *A = NULL, *B = NULL, *Bnew = NULL;
|
417
417
|
double alpha;
|
@@ -435,11 +435,11 @@ static VALUE rb_gsl_blas_dtrmm2(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
|
435
435
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, Bnew);
|
436
436
|
}
|
437
437
|
|
438
|
-
static VALUE rb_gsl_blas_ztrmm(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
439
|
-
|
438
|
+
static VALUE rb_gsl_blas_ztrmm(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
439
|
+
VALUE d, VALUE a, VALUE aa, VALUE bb)
|
440
440
|
{
|
441
441
|
gsl_matrix_complex *A = NULL, *B = NULL;
|
442
|
-
gsl_complex
|
442
|
+
gsl_complex *pa = NULL;
|
443
443
|
CBLAS_SIDE_t Side;
|
444
444
|
CBLAS_UPLO_t Uplo;
|
445
445
|
CBLAS_TRANSPOSE_t TransA;
|
@@ -455,15 +455,15 @@ static VALUE rb_gsl_blas_ztrmm(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
|
455
455
|
Data_Get_Struct(a, gsl_complex, pa);
|
456
456
|
Data_Get_Struct(aa, gsl_matrix_complex, A);
|
457
457
|
Data_Get_Struct(bb, gsl_matrix_complex, B);
|
458
|
-
gsl_blas_ztrmm(Side, Uplo, TransA, Diag,
|
458
|
+
gsl_blas_ztrmm(Side, Uplo, TransA, Diag, *pa, A, B);
|
459
459
|
return bb;
|
460
460
|
}
|
461
461
|
|
462
|
-
static VALUE rb_gsl_blas_ztrmm2(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
463
|
-
|
462
|
+
static VALUE rb_gsl_blas_ztrmm2(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
463
|
+
VALUE d, VALUE a, VALUE aa, VALUE bb)
|
464
464
|
{
|
465
465
|
gsl_matrix_complex *A = NULL, *B = NULL, *Bnew = NULL;
|
466
|
-
gsl_complex
|
466
|
+
gsl_complex *pa = NULL;
|
467
467
|
CBLAS_SIDE_t Side;
|
468
468
|
CBLAS_UPLO_t Uplo;
|
469
469
|
CBLAS_TRANSPOSE_t TransA;
|
@@ -480,12 +480,12 @@ static VALUE rb_gsl_blas_ztrmm2(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
|
480
480
|
Data_Get_Struct(bb, gsl_matrix_complex, B);
|
481
481
|
Bnew = gsl_matrix_complex_alloc(B->size1, B->size2);
|
482
482
|
gsl_matrix_complex_memcpy(Bnew, B);
|
483
|
-
gsl_blas_ztrmm(Side, Uplo, TransA, Diag,
|
483
|
+
gsl_blas_ztrmm(Side, Uplo, TransA, Diag, *pa, A, Bnew);
|
484
484
|
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, Bnew);
|
485
485
|
}
|
486
486
|
|
487
|
-
static VALUE rb_gsl_blas_dtrsm(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
488
|
-
|
487
|
+
static VALUE rb_gsl_blas_dtrsm(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
488
|
+
VALUE d, VALUE a, VALUE aa, VALUE bb)
|
489
489
|
{
|
490
490
|
gsl_matrix *A = NULL, *B = NULL;
|
491
491
|
double alpha;
|
@@ -507,8 +507,8 @@ static VALUE rb_gsl_blas_dtrsm(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
|
507
507
|
return bb;
|
508
508
|
}
|
509
509
|
|
510
|
-
static VALUE rb_gsl_blas_dtrsm2(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
511
|
-
|
510
|
+
static VALUE rb_gsl_blas_dtrsm2(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
511
|
+
VALUE d, VALUE a, VALUE aa, VALUE bb)
|
512
512
|
{
|
513
513
|
gsl_matrix *A = NULL, *B = NULL, *Bnew = NULL;
|
514
514
|
double alpha;
|
@@ -532,11 +532,11 @@ static VALUE rb_gsl_blas_dtrsm2(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
|
532
532
|
return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, Bnew);
|
533
533
|
}
|
534
534
|
|
535
|
-
static VALUE rb_gsl_blas_ztrsm(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
536
|
-
|
535
|
+
static VALUE rb_gsl_blas_ztrsm(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
536
|
+
VALUE d, VALUE a, VALUE aa, VALUE bb)
|
537
537
|
{
|
538
538
|
gsl_matrix_complex *A = NULL, *B = NULL;
|
539
|
-
gsl_complex
|
539
|
+
gsl_complex *pa = NULL;
|
540
540
|
CBLAS_SIDE_t Side;
|
541
541
|
CBLAS_UPLO_t Uplo;
|
542
542
|
CBLAS_TRANSPOSE_t TransA;
|
@@ -552,15 +552,15 @@ static VALUE rb_gsl_blas_ztrsm(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
|
552
552
|
Data_Get_Struct(a, gsl_complex, pa);
|
553
553
|
Data_Get_Struct(aa, gsl_matrix_complex, A);
|
554
554
|
Data_Get_Struct(bb, gsl_matrix_complex, B);
|
555
|
-
gsl_blas_ztrsm(Side, Uplo, TransA, Diag,
|
555
|
+
gsl_blas_ztrsm(Side, Uplo, TransA, Diag, *pa, A, B);
|
556
556
|
return bb;
|
557
557
|
}
|
558
558
|
|
559
|
-
static VALUE rb_gsl_blas_ztrsm2(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
560
|
-
|
559
|
+
static VALUE rb_gsl_blas_ztrsm2(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
560
|
+
VALUE d, VALUE a, VALUE aa, VALUE bb)
|
561
561
|
{
|
562
562
|
gsl_matrix_complex *A = NULL, *B = NULL, *Bnew = NULL;
|
563
|
-
gsl_complex
|
563
|
+
gsl_complex *pa = NULL;
|
564
564
|
CBLAS_SIDE_t Side;
|
565
565
|
CBLAS_UPLO_t Uplo;
|
566
566
|
CBLAS_TRANSPOSE_t TransA;
|
@@ -578,12 +578,12 @@ static VALUE rb_gsl_blas_ztrsm2(VALUE obj, VALUE s, VALUE u, VALUE ta,
|
|
578
578
|
Data_Get_Struct(bb, gsl_matrix_complex, B);
|
579
579
|
Bnew = gsl_matrix_complex_alloc(B->size1, B->size2);
|
580
580
|
gsl_matrix_complex_memcpy(Bnew, B);
|
581
|
-
gsl_blas_ztrsm(Side, Uplo, TransA, Diag,
|
581
|
+
gsl_blas_ztrsm(Side, Uplo, TransA, Diag, *pa, A, Bnew);
|
582
582
|
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, Bnew);
|
583
583
|
}
|
584
584
|
|
585
585
|
static VALUE rb_gsl_blas_dsyrk(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
586
|
-
|
586
|
+
VALUE b, VALUE cc)
|
587
587
|
{
|
588
588
|
gsl_matrix *A = NULL, *C = NULL;
|
589
589
|
double alpha, beta;
|
@@ -603,7 +603,7 @@ static VALUE rb_gsl_blas_dsyrk(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
|
603
603
|
}
|
604
604
|
|
605
605
|
static VALUE rb_gsl_blas_dsyrk2(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
606
|
-
|
606
|
+
VALUE b, VALUE cc)
|
607
607
|
{
|
608
608
|
gsl_matrix *A = NULL, *C = NULL, *Cnew = NULL;
|
609
609
|
double alpha, beta;
|
@@ -625,10 +625,10 @@ static VALUE rb_gsl_blas_dsyrk2(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
|
625
625
|
}
|
626
626
|
|
627
627
|
static VALUE rb_gsl_blas_zsyrk(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
628
|
-
|
628
|
+
VALUE b, VALUE cc)
|
629
629
|
{
|
630
630
|
gsl_matrix_complex *A = NULL, *C = NULL;
|
631
|
-
gsl_complex
|
631
|
+
gsl_complex *pa = NULL, *pb = NULL;
|
632
632
|
CBLAS_UPLO_t Uplo;
|
633
633
|
CBLAS_TRANSPOSE_t Trans;
|
634
634
|
CHECK_FIXNUM(u); CHECK_FIXNUM(t);
|
@@ -640,15 +640,15 @@ static VALUE rb_gsl_blas_zsyrk(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
|
640
640
|
Data_Get_Struct(b, gsl_complex, pb);
|
641
641
|
Data_Get_Struct(aa, gsl_matrix_complex, A);
|
642
642
|
Data_Get_Struct(cc, gsl_matrix_complex, C);
|
643
|
-
gsl_blas_zsyrk(Uplo, Trans,
|
643
|
+
gsl_blas_zsyrk(Uplo, Trans, *pa, A, *pb, C);
|
644
644
|
return cc;
|
645
645
|
}
|
646
646
|
|
647
647
|
static VALUE rb_gsl_blas_zsyrk2(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
648
|
-
|
648
|
+
VALUE b, VALUE cc)
|
649
649
|
{
|
650
650
|
gsl_matrix_complex *A = NULL, *C = NULL, *Cnew = NULL;
|
651
|
-
gsl_complex
|
651
|
+
gsl_complex *pa = NULL, *pb = NULL;
|
652
652
|
CBLAS_UPLO_t Uplo;
|
653
653
|
CBLAS_TRANSPOSE_t Trans;
|
654
654
|
CHECK_FIXNUM(u); CHECK_FIXNUM(t);
|
@@ -662,12 +662,12 @@ static VALUE rb_gsl_blas_zsyrk2(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
|
662
662
|
Data_Get_Struct(cc, gsl_matrix_complex, C);
|
663
663
|
Cnew = gsl_matrix_complex_alloc(C->size1, C->size2);
|
664
664
|
gsl_matrix_complex_memcpy(Cnew, C);
|
665
|
-
gsl_blas_zsyrk(Uplo, Trans,
|
665
|
+
gsl_blas_zsyrk(Uplo, Trans, *pa, A, *pb, Cnew);
|
666
666
|
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, Cnew);
|
667
667
|
}
|
668
668
|
|
669
669
|
static VALUE rb_gsl_blas_zherk(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
670
|
-
|
670
|
+
VALUE b, VALUE cc)
|
671
671
|
{
|
672
672
|
gsl_matrix_complex *A = NULL, *C = NULL;
|
673
673
|
double alpha, beta;
|
@@ -688,7 +688,7 @@ static VALUE rb_gsl_blas_zherk(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
|
688
688
|
}
|
689
689
|
|
690
690
|
static VALUE rb_gsl_blas_zherk2(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
691
|
-
|
691
|
+
VALUE b, VALUE cc)
|
692
692
|
{
|
693
693
|
gsl_matrix_complex *A = NULL, *C = NULL, *Cnew = NULL;
|
694
694
|
double alpha, beta;
|
@@ -710,7 +710,7 @@ static VALUE rb_gsl_blas_zherk2(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
|
710
710
|
}
|
711
711
|
|
712
712
|
static VALUE rb_gsl_blas_dsyr2k(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
713
|
-
|
713
|
+
VALUE bb, VALUE b, VALUE cc)
|
714
714
|
{
|
715
715
|
gsl_matrix *A = NULL, *B = NULL, *C = NULL;
|
716
716
|
double alpha, beta;
|
@@ -731,7 +731,7 @@ static VALUE rb_gsl_blas_dsyr2k(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
|
731
731
|
}
|
732
732
|
|
733
733
|
static VALUE rb_gsl_blas_dsyr2k2(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
734
|
-
|
734
|
+
VALUE bb, VALUE b, VALUE cc)
|
735
735
|
{
|
736
736
|
gsl_matrix *A = NULL, *B = NULL, *C = NULL, *Cnew = NULL;
|
737
737
|
double alpha, beta;
|
@@ -754,10 +754,10 @@ static VALUE rb_gsl_blas_dsyr2k2(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
|
754
754
|
}
|
755
755
|
|
756
756
|
static VALUE rb_gsl_blas_zsyr2k(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
757
|
-
|
757
|
+
VALUE bb, VALUE b, VALUE cc)
|
758
758
|
{
|
759
759
|
gsl_matrix_complex *A = NULL, *B = NULL, *C = NULL;
|
760
|
-
gsl_complex
|
760
|
+
gsl_complex *pa = NULL, *pb = NULL;
|
761
761
|
CBLAS_UPLO_t Uplo;
|
762
762
|
CBLAS_TRANSPOSE_t Trans;
|
763
763
|
CHECK_FIXNUM(u); CHECK_FIXNUM(t);
|
@@ -770,15 +770,15 @@ static VALUE rb_gsl_blas_zsyr2k(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
|
770
770
|
Data_Get_Struct(aa, gsl_matrix_complex, A);
|
771
771
|
Data_Get_Struct(bb, gsl_matrix_complex, B);
|
772
772
|
Data_Get_Struct(cc, gsl_matrix_complex, C);
|
773
|
-
gsl_blas_zsyr2k(Uplo, Trans,
|
773
|
+
gsl_blas_zsyr2k(Uplo, Trans, *pa, A, B, *pb, C);
|
774
774
|
return cc;
|
775
775
|
}
|
776
776
|
|
777
777
|
static VALUE rb_gsl_blas_zsyr2k2(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
778
|
-
|
778
|
+
VALUE bb, VALUE b, VALUE cc)
|
779
779
|
{
|
780
780
|
gsl_matrix_complex *A = NULL, *B = NULL, *C = NULL, *Cnew = NULL;
|
781
|
-
gsl_complex
|
781
|
+
gsl_complex *pa = NULL, *pb = NULL;
|
782
782
|
CBLAS_UPLO_t Uplo;
|
783
783
|
CBLAS_TRANSPOSE_t Trans;
|
784
784
|
CHECK_FIXNUM(u); CHECK_FIXNUM(t);
|
@@ -793,15 +793,15 @@ static VALUE rb_gsl_blas_zsyr2k2(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
|
793
793
|
Data_Get_Struct(cc, gsl_matrix_complex, C);
|
794
794
|
Cnew = gsl_matrix_complex_alloc(C->size1, C->size2);
|
795
795
|
gsl_matrix_complex_memcpy(Cnew, C);
|
796
|
-
gsl_blas_zsyr2k(Uplo, Trans,
|
796
|
+
gsl_blas_zsyr2k(Uplo, Trans, *pa, A, B, *pb, Cnew);
|
797
797
|
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, Cnew);
|
798
798
|
}
|
799
799
|
|
800
800
|
static VALUE rb_gsl_blas_zher2k(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
801
|
-
|
801
|
+
VALUE bb, VALUE b, VALUE cc)
|
802
802
|
{
|
803
803
|
gsl_matrix_complex *A = NULL, *B = NULL, *C = NULL;
|
804
|
-
gsl_complex
|
804
|
+
gsl_complex *pa = NULL;
|
805
805
|
double beta;
|
806
806
|
CBLAS_UPLO_t Uplo;
|
807
807
|
CBLAS_TRANSPOSE_t Trans;
|
@@ -816,15 +816,15 @@ static VALUE rb_gsl_blas_zher2k(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
|
816
816
|
Data_Get_Struct(aa, gsl_matrix_complex, A);
|
817
817
|
Data_Get_Struct(bb, gsl_matrix_complex, B);
|
818
818
|
Data_Get_Struct(cc, gsl_matrix_complex, C);
|
819
|
-
gsl_blas_zher2k(Uplo, Trans,
|
819
|
+
gsl_blas_zher2k(Uplo, Trans, *pa, A, B, beta, C);
|
820
820
|
return cc;
|
821
821
|
}
|
822
822
|
|
823
823
|
static VALUE rb_gsl_blas_zher2k2(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
824
|
-
|
824
|
+
VALUE bb, VALUE b, VALUE cc)
|
825
825
|
{
|
826
826
|
gsl_matrix_complex *A = NULL, *B = NULL, *C = NULL, *Cnew = NULL;
|
827
|
-
gsl_complex
|
827
|
+
gsl_complex *pa = NULL;
|
828
828
|
double beta;
|
829
829
|
CBLAS_UPLO_t Uplo;
|
830
830
|
CBLAS_TRANSPOSE_t Trans;
|
@@ -841,7 +841,7 @@ static VALUE rb_gsl_blas_zher2k2(VALUE obj, VALUE u, VALUE t, VALUE a, VALUE aa,
|
|
841
841
|
Data_Get_Struct(cc, gsl_matrix_complex, C);
|
842
842
|
Cnew = gsl_matrix_complex_alloc(C->size1, C->size2);
|
843
843
|
gsl_matrix_complex_memcpy(Cnew, C);
|
844
|
-
gsl_blas_zher2k(Uplo, Trans,
|
844
|
+
gsl_blas_zher2k(Uplo, Trans, *pa, A, B, beta, Cnew);
|
845
845
|
return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, Cnew);
|
846
846
|
}
|
847
847
|
|
@@ -18,26 +18,23 @@
|
|
18
18
|
#include "include/rb_gsl_histogram.h"
|
19
19
|
#include "include/rb_gsl_complex.h"
|
20
20
|
#include "include/rb_gsl_poly.h"
|
21
|
-
|
22
|
-
#ifdef HAVE_NARRAY_H
|
23
21
|
#include "include/rb_gsl_with_narray.h"
|
24
|
-
#endif
|
25
22
|
|
26
23
|
#define BASE_DOUBLE
|
27
24
|
#include "include/templates_on.h"
|
28
|
-
#include "block_source.
|
25
|
+
#include "block_source.h"
|
29
26
|
#include "include/templates_off.h"
|
30
27
|
#undef BASE_DOUBLE
|
31
28
|
|
32
29
|
#define BASE_INT
|
33
30
|
#include "include/templates_on.h"
|
34
|
-
#include "block_source.
|
31
|
+
#include "block_source.h"
|
35
32
|
#include "include/templates_off.h"
|
36
33
|
#undef BASE_INT
|
37
34
|
|
38
35
|
#define BASE_UCHAR
|
39
36
|
#include "include/templates_on.h"
|
40
|
-
#include "block_source.
|
37
|
+
#include "block_source.h"
|
41
38
|
#include "include/templates_off.h"
|
42
39
|
#undef BASE_UCHAR
|
43
40
|
|
@@ -82,9 +82,9 @@ static VALUE FUNCTION(rb_gsl_block,fprintf)(int argc, VALUE *argv, VALUE obj)
|
|
82
82
|
GSL_TYPE(gsl_block) *h = NULL;
|
83
83
|
FILE *fp = NULL;
|
84
84
|
int status, flag = 0;
|
85
|
-
if (argc != 1 && argc != 2)
|
86
|
-
rb_raise(rb_eArgError,
|
87
|
-
|
85
|
+
if (argc != 1 && argc != 2)
|
86
|
+
rb_raise(rb_eArgError,
|
87
|
+
"wrong number of arguments (%d for 1 or 2)", argc);
|
88
88
|
Data_Get_Struct(obj, GSL_TYPE(gsl_block), h);
|
89
89
|
fp = rb_gsl_open_writefile(argv[0], &flag);
|
90
90
|
if (argc == 2) {
|
@@ -203,28 +203,27 @@ static VALUE FUNCTION(rb_gsl_block,get)(int argc, VALUE *argv, VALUE obj)
|
|
203
203
|
n = RARRAY_LEN(argv[0]);
|
204
204
|
bnew = FUNCTION(gsl_block,alloc)(n);
|
205
205
|
for (j = 0; j < n; j++) {
|
206
|
-
|
207
|
-
|
208
|
-
|
206
|
+
i = FIX2INT(rb_ary_entry(argv[0], j));
|
207
|
+
if (i < 0) k = b->size + i; else k = i;
|
208
|
+
bnew->data[j] = b->data[k];
|
209
209
|
}
|
210
210
|
return Data_Wrap_Struct(GSL_TYPE(cgsl_block), 0, FUNCTION(gsl_block,free), bnew);
|
211
211
|
break;
|
212
212
|
default:
|
213
213
|
if (PERMUTATION_P(argv[0])) {
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
214
|
+
Data_Get_Struct(argv[0], gsl_index, p);
|
215
|
+
bnew = FUNCTION(gsl_block,alloc)(p->size);
|
216
|
+
for (j = 0; j < p->size; j++) bnew->data[j] = b->data[p->data[j]];
|
217
|
+
return Data_Wrap_Struct(GSL_TYPE(cgsl_block), 0, FUNCTION(gsl_block,free), bnew);
|
218
218
|
} else if (CLASS_OF(argv[0]) == rb_cRange) {
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
bnew);
|
219
|
+
get_range_int_beg_en_n(argv[0], &beg, &en, &n, &step);
|
220
|
+
bnew = FUNCTION(gsl_block,alloc)(n);
|
221
|
+
for (j = 0; j < n; j++)
|
222
|
+
bnew->data[j] = b->data[beg+j];
|
223
|
+
return Data_Wrap_Struct(GSL_TYPE(cgsl_block), 0, FUNCTION(gsl_block,free), bnew);
|
225
224
|
} else {
|
226
|
-
|
227
|
-
|
225
|
+
rb_raise(rb_eArgError, "wrong argument type %s (Fixnum, Array, or Range expected)", rb_class2name(CLASS_OF(argv[0])));
|
226
|
+
break;
|
228
227
|
}
|
229
228
|
}
|
230
229
|
break;
|
@@ -237,7 +236,6 @@ static VALUE FUNCTION(rb_gsl_block,get)(int argc, VALUE *argv, VALUE obj)
|
|
237
236
|
}
|
238
237
|
return Data_Wrap_Struct(GSL_TYPE(cgsl_block), 0, FUNCTION(gsl_block,free), bnew);
|
239
238
|
|
240
|
-
|
241
239
|
break;
|
242
240
|
}
|
243
241
|
return Qnil;
|
@@ -257,9 +255,9 @@ static VALUE FUNCTION(rb_gsl_block,set)(VALUE obj, VALUE ii, VALUE xx)
|
|
257
255
|
}
|
258
256
|
|
259
257
|
|
260
|
-
static int FUNCTION(gsl_block,eq)(const GSL_TYPE(gsl_block) *a,
|
261
|
-
|
262
|
-
|
258
|
+
static int FUNCTION(gsl_block,eq)(const GSL_TYPE(gsl_block) *a,
|
259
|
+
const GSL_TYPE(gsl_block) *b,
|
260
|
+
gsl_block_uchar *c)
|
263
261
|
{
|
264
262
|
size_t i;
|
265
263
|
BASE x, y;
|
@@ -273,9 +271,9 @@ static int FUNCTION(gsl_block,eq)(const GSL_TYPE(gsl_block) *a,
|
|
273
271
|
return 0;
|
274
272
|
}
|
275
273
|
|
276
|
-
static int FUNCTION(gsl_block,ne)(const GSL_TYPE(gsl_block) *a,
|
277
|
-
|
278
|
-
|
274
|
+
static int FUNCTION(gsl_block,ne)(const GSL_TYPE(gsl_block) *a,
|
275
|
+
const GSL_TYPE(gsl_block) *b,
|
276
|
+
gsl_block_uchar *c)
|
279
277
|
{
|
280
278
|
size_t i;
|
281
279
|
BASE x, y;
|
@@ -289,9 +287,9 @@ static int FUNCTION(gsl_block,ne)(const GSL_TYPE(gsl_block) *a,
|
|
289
287
|
return 0;
|
290
288
|
}
|
291
289
|
|
292
|
-
static int FUNCTION(gsl_block,gt)(const GSL_TYPE(gsl_block) *a,
|
293
|
-
|
294
|
-
|
290
|
+
static int FUNCTION(gsl_block,gt)(const GSL_TYPE(gsl_block) *a,
|
291
|
+
const GSL_TYPE(gsl_block) *b,
|
292
|
+
gsl_block_uchar *c)
|
295
293
|
{
|
296
294
|
size_t i;
|
297
295
|
BASE x, y;
|
@@ -305,9 +303,9 @@ static int FUNCTION(gsl_block,gt)(const GSL_TYPE(gsl_block) *a,
|
|
305
303
|
return 0;
|
306
304
|
}
|
307
305
|
|
308
|
-
static int FUNCTION(gsl_block,ge)(const GSL_TYPE(gsl_block) *a,
|
309
|
-
|
310
|
-
|
306
|
+
static int FUNCTION(gsl_block,ge)(const GSL_TYPE(gsl_block) *a,
|
307
|
+
const GSL_TYPE(gsl_block) *b,
|
308
|
+
gsl_block_uchar *c)
|
311
309
|
{
|
312
310
|
size_t i;
|
313
311
|
BASE x, y;
|
@@ -321,9 +319,9 @@ static int FUNCTION(gsl_block,ge)(const GSL_TYPE(gsl_block) *a,
|
|
321
319
|
return 0;
|
322
320
|
}
|
323
321
|
|
324
|
-
static int FUNCTION(gsl_block,lt)(const GSL_TYPE(gsl_block) *a,
|
325
|
-
|
326
|
-
|
322
|
+
static int FUNCTION(gsl_block,lt)(const GSL_TYPE(gsl_block) *a,
|
323
|
+
const GSL_TYPE(gsl_block) *b,
|
324
|
+
gsl_block_uchar *c)
|
327
325
|
{
|
328
326
|
size_t i;
|
329
327
|
BASE x, y;
|
@@ -337,9 +335,9 @@ static int FUNCTION(gsl_block,lt)(const GSL_TYPE(gsl_block) *a,
|
|
337
335
|
return 0;
|
338
336
|
}
|
339
337
|
|
340
|
-
static int FUNCTION(gsl_block,le)(const GSL_TYPE(gsl_block) *a,
|
341
|
-
|
342
|
-
|
338
|
+
static int FUNCTION(gsl_block,le)(const GSL_TYPE(gsl_block) *a,
|
339
|
+
const GSL_TYPE(gsl_block) *b,
|
340
|
+
gsl_block_uchar *c)
|
343
341
|
{
|
344
342
|
size_t i;
|
345
343
|
BASE x, y;
|
@@ -353,9 +351,9 @@ static int FUNCTION(gsl_block,le)(const GSL_TYPE(gsl_block) *a,
|
|
353
351
|
return 0;
|
354
352
|
}
|
355
353
|
|
356
|
-
static int FUNCTION(gsl_block,and)(const GSL_TYPE(gsl_block) *a,
|
357
|
-
|
358
|
-
|
354
|
+
static int FUNCTION(gsl_block,and)(const GSL_TYPE(gsl_block) *a,
|
355
|
+
const GSL_TYPE(gsl_block) *b,
|
356
|
+
gsl_block_uchar *c)
|
359
357
|
{
|
360
358
|
size_t i;
|
361
359
|
BASE x, y;
|
@@ -369,9 +367,9 @@ static int FUNCTION(gsl_block,and)(const GSL_TYPE(gsl_block) *a,
|
|
369
367
|
return 0;
|
370
368
|
}
|
371
369
|
|
372
|
-
static int FUNCTION(gsl_block,or)(const GSL_TYPE(gsl_block) *a,
|
373
|
-
|
374
|
-
|
370
|
+
static int FUNCTION(gsl_block,or)(const GSL_TYPE(gsl_block) *a,
|
371
|
+
const GSL_TYPE(gsl_block) *b,
|
372
|
+
gsl_block_uchar *c)
|
375
373
|
{
|
376
374
|
size_t i;
|
377
375
|
BASE x, y;
|
@@ -385,9 +383,9 @@ static int FUNCTION(gsl_block,or)(const GSL_TYPE(gsl_block) *a,
|
|
385
383
|
return 0;
|
386
384
|
}
|
387
385
|
|
388
|
-
static int FUNCTION(gsl_block,xor)(const GSL_TYPE(gsl_block) *a,
|
389
|
-
|
390
|
-
|
386
|
+
static int FUNCTION(gsl_block,xor)(const GSL_TYPE(gsl_block) *a,
|
387
|
+
const GSL_TYPE(gsl_block) *b,
|
388
|
+
gsl_block_uchar *c)
|
391
389
|
{
|
392
390
|
size_t i;
|
393
391
|
BASE x, y;
|
@@ -401,8 +399,8 @@ static int FUNCTION(gsl_block,xor)(const GSL_TYPE(gsl_block) *a,
|
|
401
399
|
return 0;
|
402
400
|
}
|
403
401
|
|
404
|
-
static int FUNCTION(gsl_block,eq2)(const GSL_TYPE(gsl_block) *a,
|
405
|
-
|
402
|
+
static int FUNCTION(gsl_block,eq2)(const GSL_TYPE(gsl_block) *a,
|
403
|
+
BASE b, gsl_block_uchar *c)
|
406
404
|
{
|
407
405
|
size_t i;
|
408
406
|
BASE x, y;
|
@@ -415,9 +413,9 @@ static int FUNCTION(gsl_block,eq2)(const GSL_TYPE(gsl_block) *a,
|
|
415
413
|
return 0;
|
416
414
|
}
|
417
415
|
|
418
|
-
static int FUNCTION(gsl_block,ne2)(const GSL_TYPE(gsl_block) *a,
|
419
|
-
|
420
|
-
|
416
|
+
static int FUNCTION(gsl_block,ne2)(const GSL_TYPE(gsl_block) *a,
|
417
|
+
BASE b,
|
418
|
+
gsl_block_uchar *c)
|
421
419
|
{
|
422
420
|
size_t i;
|
423
421
|
BASE x, y;
|
@@ -430,9 +428,9 @@ static int FUNCTION(gsl_block,ne2)(const GSL_TYPE(gsl_block) *a,
|
|
430
428
|
return 0;
|
431
429
|
}
|
432
430
|
|
433
|
-
static int FUNCTION(gsl_block,gt2)(const GSL_TYPE(gsl_block) *a,
|
434
|
-
|
435
|
-
|
431
|
+
static int FUNCTION(gsl_block,gt2)(const GSL_TYPE(gsl_block) *a,
|
432
|
+
BASE b,
|
433
|
+
gsl_block_uchar *c)
|
436
434
|
{
|
437
435
|
size_t i;
|
438
436
|
BASE x, y;
|
@@ -445,9 +443,9 @@ static int FUNCTION(gsl_block,gt2)(const GSL_TYPE(gsl_block) *a,
|
|
445
443
|
return 0;
|
446
444
|
}
|
447
445
|
|
448
|
-
static int FUNCTION(gsl_block,ge2)(const GSL_TYPE(gsl_block) *a,
|
449
|
-
|
450
|
-
|
446
|
+
static int FUNCTION(gsl_block,ge2)(const GSL_TYPE(gsl_block) *a,
|
447
|
+
BASE b,
|
448
|
+
gsl_block_uchar *c)
|
451
449
|
{
|
452
450
|
size_t i;
|
453
451
|
BASE x, y;
|
@@ -460,9 +458,9 @@ static int FUNCTION(gsl_block,ge2)(const GSL_TYPE(gsl_block) *a,
|
|
460
458
|
return 0;
|
461
459
|
}
|
462
460
|
|
463
|
-
static int FUNCTION(gsl_block,lt2)(const GSL_TYPE(gsl_block) *a,
|
464
|
-
|
465
|
-
|
461
|
+
static int FUNCTION(gsl_block,lt2)(const GSL_TYPE(gsl_block) *a,
|
462
|
+
BASE b,
|
463
|
+
gsl_block_uchar *c)
|
466
464
|
{
|
467
465
|
size_t i;
|
468
466
|
BASE x, y;
|
@@ -475,9 +473,9 @@ static int FUNCTION(gsl_block,lt2)(const GSL_TYPE(gsl_block) *a,
|
|
475
473
|
return 0;
|
476
474
|
}
|
477
475
|
|
478
|
-
static int FUNCTION(gsl_block,le2)(const GSL_TYPE(gsl_block) *a,
|
479
|
-
|
480
|
-
|
476
|
+
static int FUNCTION(gsl_block,le2)(const GSL_TYPE(gsl_block) *a,
|
477
|
+
BASE b,
|
478
|
+
gsl_block_uchar *c)
|
481
479
|
{
|
482
480
|
size_t i;
|
483
481
|
BASE x, y;
|
@@ -490,9 +488,9 @@ static int FUNCTION(gsl_block,le2)(const GSL_TYPE(gsl_block) *a,
|
|
490
488
|
return 0;
|
491
489
|
}
|
492
490
|
|
493
|
-
static int FUNCTION(gsl_block,and2)(const GSL_TYPE(gsl_block) *a,
|
494
|
-
|
495
|
-
|
491
|
+
static int FUNCTION(gsl_block,and2)(const GSL_TYPE(gsl_block) *a,
|
492
|
+
BASE b,
|
493
|
+
gsl_block_uchar *c)
|
496
494
|
{
|
497
495
|
size_t i;
|
498
496
|
BASE x, y;
|
@@ -505,9 +503,9 @@ static int FUNCTION(gsl_block,and2)(const GSL_TYPE(gsl_block) *a,
|
|
505
503
|
return 0;
|
506
504
|
}
|
507
505
|
|
508
|
-
static int FUNCTION(gsl_block,or2)(const GSL_TYPE(gsl_block) *a,
|
509
|
-
|
510
|
-
|
506
|
+
static int FUNCTION(gsl_block,or2)(const GSL_TYPE(gsl_block) *a,
|
507
|
+
BASE b,
|
508
|
+
gsl_block_uchar *c)
|
511
509
|
{
|
512
510
|
size_t i;
|
513
511
|
BASE x, y;
|
@@ -520,9 +518,9 @@ static int FUNCTION(gsl_block,or2)(const GSL_TYPE(gsl_block) *a,
|
|
520
518
|
return 0;
|
521
519
|
}
|
522
520
|
|
523
|
-
static int FUNCTION(gsl_block,xor2)(const GSL_TYPE(gsl_block) *a,
|
524
|
-
|
525
|
-
|
521
|
+
static int FUNCTION(gsl_block,xor2)(const GSL_TYPE(gsl_block) *a,
|
522
|
+
BASE b,
|
523
|
+
gsl_block_uchar *c)
|
526
524
|
{
|
527
525
|
size_t i;
|
528
526
|
BASE x, y;
|
@@ -537,12 +535,12 @@ static int FUNCTION(gsl_block,xor2)(const GSL_TYPE(gsl_block) *a,
|
|
537
535
|
|
538
536
|
|
539
537
|
static VALUE FUNCTION(rb_gsl_block,compare)(VALUE aa, VALUE bb,
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
538
|
+
int (*cmp)(const GSL_TYPE (gsl_block)*,
|
539
|
+
const GSL_TYPE (gsl_block)*,
|
540
|
+
gsl_block_uchar*),
|
541
|
+
int (*cmp2)(const GSL_TYPE (gsl_block)*,
|
542
|
+
BASE,
|
543
|
+
gsl_block_uchar*))
|
546
544
|
{
|
547
545
|
GSL_TYPE(gsl_block) *a, *b;
|
548
546
|
/* gsl_block_int *c;*/
|
@@ -553,9 +551,9 @@ static VALUE FUNCTION(rb_gsl_block,compare)(VALUE aa, VALUE bb,
|
|
553
551
|
c = gsl_block_uchar_alloc(a->size);
|
554
552
|
if (BL_P(bb)) {
|
555
553
|
Data_Get_Struct(bb, GSL_TYPE(gsl_block), b);
|
556
|
-
if (a->size != b->size)
|
557
|
-
rb_raise(rb_eRuntimeError, "Block size mismatch, %d and %d", (int) a->size,
|
558
|
-
|
554
|
+
if (a->size != b->size)
|
555
|
+
rb_raise(rb_eRuntimeError, "Block size mismatch, %d and %d", (int) a->size,
|
556
|
+
(int) b->size);
|
559
557
|
/*status =*/ (*cmp)(a, b, c);
|
560
558
|
} else {
|
561
559
|
/*status =*/ (*cmp2)(a, NUMCONV(bb), c);
|
@@ -566,55 +564,55 @@ static VALUE FUNCTION(rb_gsl_block,compare)(VALUE aa, VALUE bb,
|
|
566
564
|
static VALUE FUNCTION(rb_gsl_block,eq)(VALUE aa, VALUE bb)
|
567
565
|
{
|
568
566
|
return FUNCTION(rb_gsl_block,compare)(aa, bb, FUNCTION(gsl_block,eq),
|
569
|
-
|
567
|
+
FUNCTION(gsl_block,eq2));
|
570
568
|
}
|
571
569
|
|
572
570
|
static VALUE FUNCTION(rb_gsl_block,ne)(VALUE aa, VALUE bb)
|
573
571
|
{
|
574
572
|
return FUNCTION(rb_gsl_block,compare)(aa, bb, FUNCTION(gsl_block,ne),
|
575
|
-
|
573
|
+
FUNCTION(gsl_block,ne2));
|
576
574
|
}
|
577
575
|
|
578
576
|
static VALUE FUNCTION(rb_gsl_block,gt)(VALUE aa, VALUE bb)
|
579
577
|
{
|
580
578
|
return FUNCTION(rb_gsl_block,compare)(aa, bb, FUNCTION(gsl_block,gt),
|
581
|
-
|
579
|
+
FUNCTION(gsl_block,gt2));
|
582
580
|
}
|
583
581
|
|
584
582
|
static VALUE FUNCTION(rb_gsl_block,ge)(VALUE aa, VALUE bb)
|
585
583
|
{
|
586
584
|
return FUNCTION(rb_gsl_block,compare)(aa, bb, FUNCTION(gsl_block,ge),
|
587
|
-
|
585
|
+
FUNCTION(gsl_block,ge2));
|
588
586
|
}
|
589
587
|
|
590
588
|
static VALUE FUNCTION(rb_gsl_block,lt)(VALUE aa, VALUE bb)
|
591
589
|
{
|
592
590
|
return FUNCTION(rb_gsl_block,compare)(aa, bb, FUNCTION(gsl_block,lt),
|
593
|
-
|
591
|
+
FUNCTION(gsl_block,lt2));
|
594
592
|
}
|
595
593
|
|
596
594
|
static VALUE FUNCTION(rb_gsl_block,le)(VALUE aa, VALUE bb)
|
597
595
|
{
|
598
596
|
return FUNCTION(rb_gsl_block,compare)(aa, bb, FUNCTION(gsl_block,le),
|
599
|
-
|
597
|
+
FUNCTION(gsl_block,le2));
|
600
598
|
}
|
601
599
|
|
602
600
|
static VALUE FUNCTION(rb_gsl_block,and)(VALUE aa, VALUE bb)
|
603
601
|
{
|
604
602
|
return FUNCTION(rb_gsl_block,compare)(aa, bb, FUNCTION(gsl_block,and),
|
605
|
-
|
603
|
+
FUNCTION(gsl_block,and2));
|
606
604
|
}
|
607
605
|
|
608
606
|
static VALUE FUNCTION(rb_gsl_block,or)(VALUE aa, VALUE bb)
|
609
607
|
{
|
610
608
|
return FUNCTION(rb_gsl_block,compare)(aa, bb, FUNCTION(gsl_block,or),
|
611
|
-
|
609
|
+
FUNCTION(gsl_block,or2));
|
612
610
|
}
|
613
611
|
|
614
612
|
static VALUE FUNCTION(rb_gsl_block,xor)(VALUE aa, VALUE bb)
|
615
613
|
{
|
616
614
|
return FUNCTION(rb_gsl_block,compare)(aa, bb, FUNCTION(gsl_block,xor),
|
617
|
-
|
615
|
+
FUNCTION(gsl_block,xor2));
|
618
616
|
}
|
619
617
|
|
620
618
|
static VALUE FUNCTION(rb_gsl_block,not)(VALUE obj)
|
@@ -669,11 +667,11 @@ static VALUE FUNCTION(rb_gsl_block,all)(VALUE obj)
|
|
669
667
|
|
670
668
|
Data_Get_Struct(obj, GSL_TYPE(gsl_block), v);
|
671
669
|
if (rb_block_given_p()) {
|
672
|
-
for (i = 0; i < v->size; i++)
|
670
|
+
for (i = 0; i < v->size; i++)
|
673
671
|
if (!rb_yield(C_TO_VALUE(v->data[i]))) return Qfalse;
|
674
672
|
return Qtrue;
|
675
673
|
} else {
|
676
|
-
for (i = 0; i < v->size; i++)
|
674
|
+
for (i = 0; i < v->size; i++)
|
677
675
|
if (!v->data[i]) return Qfalse;
|
678
676
|
return Qtrue;
|
679
677
|
}
|
@@ -686,11 +684,11 @@ static VALUE FUNCTION(rb_gsl_block,none)(VALUE obj)
|
|
686
684
|
|
687
685
|
Data_Get_Struct(obj, GSL_TYPE(gsl_block), v);
|
688
686
|
if (rb_block_given_p()) {
|
689
|
-
for (i = 0; i < v->size; i++)
|
687
|
+
for (i = 0; i < v->size; i++)
|
690
688
|
if (rb_yield(C_TO_VALUE(v->data[i]))) return Qfalse;
|
691
689
|
return Qtrue;
|
692
690
|
} else {
|
693
|
-
for (i = 0; i < v->size; i++)
|
691
|
+
for (i = 0; i < v->size; i++)
|
694
692
|
if (v->data[i]) return Qfalse;
|
695
693
|
return Qtrue;
|
696
694
|
}
|
@@ -708,10 +706,10 @@ static VALUE FUNCTION(rb_gsl_block,where)(VALUE obj)
|
|
708
706
|
btmp = gsl_block_uchar_alloc(v->size);
|
709
707
|
for (i = 0; i < v->size; i++) {
|
710
708
|
if (rb_yield(C_TO_VALUE(v->data[i]))) {
|
711
|
-
|
712
|
-
|
709
|
+
btmp->data[i] = 1;
|
710
|
+
n++;
|
713
711
|
} else {
|
714
|
-
|
712
|
+
btmp->data[i] = 0;
|
715
713
|
}
|
716
714
|
} /* for */
|
717
715
|
} else { /* block is not given */
|
@@ -744,10 +742,10 @@ static VALUE FUNCTION(rb_gsl_block,where2)(VALUE obj)
|
|
744
742
|
btmp = gsl_block_uchar_alloc(v->size);
|
745
743
|
for (i = 0; i < v->size; i++) {
|
746
744
|
if (rb_yield(C_TO_VALUE(v->data[i]))) {
|
747
|
-
|
748
|
-
|
745
|
+
btmp->data[i] = 1;
|
746
|
+
n++;
|
749
747
|
} else {
|
750
|
-
|
748
|
+
btmp->data[i] = 0;
|
751
749
|
}
|
752
750
|
} /* for */
|
753
751
|
} else { /* block is not given */
|
@@ -758,11 +756,11 @@ static VALUE FUNCTION(rb_gsl_block,where2)(VALUE obj)
|
|
758
756
|
v2 = gsl_permutation_calloc(v->size); /* calloc() initializes v2 */
|
759
757
|
vv1 = Qnil;
|
760
758
|
vv2 = Data_Wrap_Struct(cgsl_index, 0, gsl_permutation_free, v2);
|
761
|
-
} else if (v->size-n == 0) {
|
759
|
+
} else if (v->size-n == 0) {
|
762
760
|
v1 = gsl_permutation_calloc(n); /* calloc() initializes v1 */
|
763
|
-
vv1 = Data_Wrap_Struct(cgsl_index, 0, gsl_permutation_free, v1);
|
761
|
+
vv1 = Data_Wrap_Struct(cgsl_index, 0, gsl_permutation_free, v1);
|
764
762
|
vv2 = Qnil;
|
765
|
-
} else {
|
763
|
+
} else {
|
766
764
|
/* same case as 'where' */
|
767
765
|
v1 = gsl_permutation_alloc(n);
|
768
766
|
v2 = gsl_permutation_alloc(v->size-n);
|
@@ -830,12 +828,12 @@ static VALUE FUNCTION(rb_gsl_block,collect_bang)(VALUE obj)
|
|
830
828
|
|
831
829
|
void FUNCTION(Init_gsl_block,init)(VALUE module)
|
832
830
|
{
|
833
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_block), "new",
|
834
|
-
|
835
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_block), "alloc",
|
836
|
-
|
837
|
-
rb_define_singleton_method(GSL_TYPE(cgsl_block), "calloc",
|
838
|
-
|
831
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_block), "new",
|
832
|
+
FUNCTION(rb_gsl_block,new), 1);
|
833
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_block), "alloc",
|
834
|
+
FUNCTION(rb_gsl_block,new), 1);
|
835
|
+
rb_define_singleton_method(GSL_TYPE(cgsl_block), "calloc",
|
836
|
+
FUNCTION(rb_gsl_block,calloc), 1);
|
839
837
|
|
840
838
|
rb_define_method(GSL_TYPE(cgsl_block), "size", FUNCTION(rb_gsl_block,size), 0);
|
841
839
|
rb_define_alias(GSL_TYPE(cgsl_block), "length", "size");
|
@@ -871,9 +869,9 @@ void FUNCTION(Init_gsl_block,init)(VALUE module)
|
|
871
869
|
rb_define_method(GSL_TYPE(cgsl_block), "all?", FUNCTION(rb_gsl_block,all), 0);
|
872
870
|
rb_define_method(GSL_TYPE(cgsl_block), "none?", FUNCTION(rb_gsl_block,none), 0);
|
873
871
|
rb_define_method(GSL_TYPE(cgsl_block), "any",
|
874
|
-
|
872
|
+
FUNCTION(rb_gsl_block,any), 0);
|
875
873
|
rb_define_method(GSL_TYPE(cgsl_block), "any?",
|
876
|
-
|
874
|
+
FUNCTION(rb_gsl_block,any2), 0);
|
877
875
|
|
878
876
|
rb_define_method(GSL_TYPE(cgsl_block), "where", FUNCTION(rb_gsl_block,where), 0);
|
879
877
|
rb_define_method(GSL_TYPE(cgsl_block), "where2", FUNCTION(rb_gsl_block,where2), 0);
|