gsl 1.14.7 → 1.15.3
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.
- data/ChangeLog +139 -134
- data/Rakefile +4 -3
- data/VERSION +1 -1
- data/ext/array.c +0 -24
- data/ext/array_complex.c +11 -10
- data/ext/blas1.c +9 -6
- data/ext/block_source.c +4 -3
- data/ext/dirac.c +0 -6
- data/ext/error.c +1 -2
- data/ext/extconf.rb +9 -4
- data/ext/fft.c +22 -12
- data/ext/function.c +2 -2
- data/ext/graph.c +2 -0
- data/ext/gsl_narray.c +1 -7
- data/ext/histogram.c +0 -8
- data/ext/ieee.c +3 -1
- data/ext/integration.c +5 -3
- data/ext/linalg.c +11 -16
- data/ext/linalg_complex.c +1 -3
- data/ext/matrix_complex.c +10 -5
- data/ext/matrix_int.c +10 -10
- data/ext/matrix_source.c +3 -2
- data/ext/multifit.c +21 -29
- data/ext/multimin.c +1 -3
- data/ext/odeiv.c +9 -6
- data/ext/poly_source.c +82 -52
- data/ext/sf_bessel.c +8 -4
- data/ext/sf_coulomb.c +8 -8
- data/ext/sf_coupling.c +9 -6
- data/ext/sf_dilog.c +3 -2
- data/ext/sf_elementary.c +6 -4
- data/ext/sf_elljac.c +3 -2
- data/ext/sf_exp.c +15 -10
- data/ext/sf_gamma.c +9 -6
- data/ext/sf_gegenbauer.c +3 -2
- data/ext/sf_hyperg.c +18 -12
- data/ext/sf_laguerre.c +3 -2
- data/ext/sf_legendre.c +3 -2
- data/ext/sf_log.c +3 -2
- data/ext/sf_power.c +3 -2
- data/ext/sf_trigonometric.c +9 -6
- data/ext/signal.c +1 -3
- data/ext/siman.c +1 -2
- data/ext/stats.c +1 -0
- data/ext/vector_complex.c +5 -2
- data/ext/vector_double.c +13 -8
- data/ext/vector_source.c +6 -5
- data/ext/wavelet.c +16 -8
- data/include/rb_gsl_common.h +5 -6
- data/include/rb_gsl_config.h +62 -0
- data/include/rb_gsl_with_narray.h +6 -1
- data/lib/gsl.rb +3 -0
- data/lib/rbgsl.rb +3 -0
- data/rdoc/fit.rdoc +5 -5
- data/rdoc/ndlinear.rdoc +5 -2
- data/tests/gsl_test2.rb +3 -0
- data/tests/matrix/matrix_complex_test.rb +36 -0
- data/tests/narray/blas_dnrm2.rb +20 -0
- data/tests/poly/poly.rb +48 -0
- data/tests/sf/test_mode.rb +19 -0
- data/tests/stats_mt.rb +16 -0
- metadata +15 -11
- data/ext/MANIFEST +0 -119
data/ext/sf_dilog.c
CHANGED
@@ -26,11 +26,12 @@ static VALUE rb_gsl_sf_complex_dilog_e(VALUE obj, VALUE r, VALUE theta)
|
|
26
26
|
{
|
27
27
|
gsl_sf_result *re, *im;
|
28
28
|
VALUE vre, vim;
|
29
|
-
|
29
|
+
// local variable "status" declared and set, but never used
|
30
|
+
//int status;
|
30
31
|
Need_Float(r); Need_Float(theta);
|
31
32
|
vre = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, re);
|
32
33
|
vim = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, im);
|
33
|
-
status
|
34
|
+
/*status =*/ gsl_sf_complex_dilog_e(NUM2DBL(r), NUM2DBL(theta), re, im);
|
34
35
|
return rb_ary_new3(2, vre, vim);
|
35
36
|
}
|
36
37
|
|
data/ext/sf_elementary.c
CHANGED
@@ -16,10 +16,11 @@ static VALUE rb_gsl_sf_multiply_e(VALUE obj, VALUE x, VALUE y)
|
|
16
16
|
{
|
17
17
|
gsl_sf_result *r;
|
18
18
|
VALUE v;
|
19
|
-
|
19
|
+
// local variable "status" declared and set, but never used
|
20
|
+
//int status;
|
20
21
|
Need_Float(x); Need_Float(y);
|
21
22
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, r);
|
22
|
-
status
|
23
|
+
/*status =*/ gsl_sf_multiply_e(NUM2DBL(x), NUM2DBL(y), r);
|
23
24
|
return v;
|
24
25
|
}
|
25
26
|
|
@@ -28,11 +29,12 @@ static VALUE rb_gsl_sf_multiply_err_e(VALUE obj, VALUE x, VALUE dx,
|
|
28
29
|
{
|
29
30
|
gsl_sf_result *r;
|
30
31
|
VALUE v;
|
31
|
-
|
32
|
+
// local variable "status" declared and set, but never used
|
33
|
+
//int status;
|
32
34
|
Need_Float(x); Need_Float(y);
|
33
35
|
Need_Float(dx); Need_Float(dy);
|
34
36
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, r);
|
35
|
-
status
|
37
|
+
/*status =*/ gsl_sf_multiply_err_e(NUM2DBL(x), NUM2DBL(dx),
|
36
38
|
NUM2DBL(y), NUM2DBL(dy), r);
|
37
39
|
return v;
|
38
40
|
}
|
data/ext/sf_elljac.c
CHANGED
@@ -15,9 +15,10 @@
|
|
15
15
|
static VALUE rb_gsl_sf_elljac_e(VALUE obj, VALUE n, VALUE m)
|
16
16
|
{
|
17
17
|
double sn, cn, dn;
|
18
|
-
|
18
|
+
// local variable "status" declared and set, but never used
|
19
|
+
//int status;
|
19
20
|
Need_Float(n); Need_Float(m);
|
20
|
-
status
|
21
|
+
/*status =*/ gsl_sf_elljac_e(NUM2DBL(n), NUM2DBL(m), &sn, &cn, &dn);
|
21
22
|
return rb_ary_new3(3, rb_float_new(sn),
|
22
23
|
rb_float_new(cn), rb_float_new(dn));
|
23
24
|
}
|
data/ext/sf_exp.c
CHANGED
@@ -30,10 +30,11 @@ static VALUE rb_gsl_sf_exp_e10_e(VALUE obj, VALUE x)
|
|
30
30
|
{
|
31
31
|
gsl_sf_result_e10 *rslt = NULL;
|
32
32
|
VALUE v;
|
33
|
-
|
33
|
+
// local variable "status" declared and set, but never used
|
34
|
+
//int status;
|
34
35
|
Need_Float(x);
|
35
36
|
v = Data_Make_Struct(cgsl_sf_result_e10, gsl_sf_result_e10, 0, free, rslt);
|
36
|
-
status
|
37
|
+
/*status =*/ gsl_sf_exp_e10_e(NUM2DBL(x), rslt);
|
37
38
|
return v;
|
38
39
|
}
|
39
40
|
|
@@ -52,10 +53,11 @@ static VALUE rb_gsl_sf_exp_mult_e10_e(VALUE obj, VALUE x, VALUE y)
|
|
52
53
|
{
|
53
54
|
gsl_sf_result_e10 *rslt = NULL;
|
54
55
|
VALUE v;
|
55
|
-
|
56
|
+
// local variable "status" declared and set, but never used
|
57
|
+
//int status;
|
56
58
|
Need_Float(x); Need_Float(y);
|
57
59
|
v = Data_Make_Struct(cgsl_sf_result_e10, gsl_sf_result_e10, 0, free, rslt);
|
58
|
-
status
|
60
|
+
/*status =*/ gsl_sf_exp_mult_e10_e(NUM2DBL(x), NUM2DBL(y), rslt);
|
59
61
|
return v;
|
60
62
|
}
|
61
63
|
|
@@ -108,10 +110,11 @@ static VALUE rb_gsl_sf_exp_err_e10_e(VALUE obj, VALUE x, VALUE dx)
|
|
108
110
|
{
|
109
111
|
gsl_sf_result_e10 *rslt = NULL;
|
110
112
|
VALUE v;
|
111
|
-
|
113
|
+
// local variable "status" declared and set, but never used
|
114
|
+
//int status;
|
112
115
|
Need_Float(x); Need_Float(dx);
|
113
116
|
v = Data_Make_Struct(cgsl_sf_result_e10, gsl_sf_result_e10, 0, free, rslt);
|
114
|
-
status
|
117
|
+
/*status =*/ gsl_sf_exp_err_e10_e(NUM2DBL(x), NUM2DBL(dx), rslt);
|
115
118
|
return v;
|
116
119
|
}
|
117
120
|
|
@@ -120,11 +123,12 @@ static VALUE rb_gsl_sf_exp_mult_err_e(VALUE obj, VALUE x, VALUE dx,
|
|
120
123
|
{
|
121
124
|
gsl_sf_result *rslt = NULL;
|
122
125
|
VALUE v;
|
123
|
-
|
126
|
+
// local variable "status" declared and set, but never used
|
127
|
+
//int status;
|
124
128
|
Need_Float(x); Need_Float(y);
|
125
129
|
Need_Float(dx); Need_Float(dy);
|
126
130
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
127
|
-
status
|
131
|
+
/*status =*/ gsl_sf_exp_mult_err_e(NUM2DBL(x), NUM2DBL(dx), NUM2DBL(y), NUM2DBL(dy), rslt);
|
128
132
|
return v;
|
129
133
|
}
|
130
134
|
|
@@ -133,11 +137,12 @@ static VALUE rb_gsl_sf_exp_mult_err_e10_e(VALUE obj, VALUE x, VALUE dx,
|
|
133
137
|
{
|
134
138
|
gsl_sf_result_e10 *rslt = NULL;
|
135
139
|
VALUE v;
|
136
|
-
|
140
|
+
// local variable "status" declared and set, but never used
|
141
|
+
//int status;
|
137
142
|
Need_Float(x); Need_Float(y);
|
138
143
|
Need_Float(dx); Need_Float(dy);
|
139
144
|
v = Data_Make_Struct(cgsl_sf_result_e10, gsl_sf_result_e10, 0, free, rslt);
|
140
|
-
status
|
145
|
+
/*status =*/ gsl_sf_exp_mult_err_e10_e(NUM2DBL(x), NUM2DBL(dx), NUM2DBL(y), NUM2DBL(dy), rslt);
|
141
146
|
return v;
|
142
147
|
}
|
143
148
|
|
data/ext/sf_gamma.c
CHANGED
@@ -35,11 +35,12 @@ static VALUE rb_gsl_sf_lngamma_sgn_e(VALUE obj, VALUE x)
|
|
35
35
|
{
|
36
36
|
gsl_sf_result *rslt = NULL;
|
37
37
|
VALUE v;
|
38
|
-
|
38
|
+
// local variable "status" declared and set, but never used
|
39
|
+
//int status;
|
39
40
|
double sgn;
|
40
41
|
Need_Float(x);
|
41
42
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
42
|
-
status
|
43
|
+
/*status =*/ gsl_sf_lngamma_sgn_e(NUM2DBL(x), rslt, &sgn);
|
43
44
|
return rb_ary_new3(2, v, rb_float_new(sgn));
|
44
45
|
}
|
45
46
|
|
@@ -165,10 +166,11 @@ static VALUE rb_gsl_sf_lnchoose_e(VALUE obj, VALUE n, VALUE m)
|
|
165
166
|
{
|
166
167
|
gsl_sf_result *rslt = NULL;
|
167
168
|
VALUE v;
|
168
|
-
|
169
|
+
// local variable "status" declared and set, but never used
|
170
|
+
//int status;
|
169
171
|
CHECK_FIXNUM(n); CHECK_FIXNUM(m);
|
170
172
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
171
|
-
status
|
173
|
+
/*status =*/ gsl_sf_lnchoose_e(FIX2INT(n), FIX2INT(m), rslt);
|
172
174
|
return v;
|
173
175
|
}
|
174
176
|
|
@@ -197,10 +199,11 @@ static VALUE rb_gsl_sf_lnpoch_sgn_e(VALUE obj, VALUE a, VALUE x)
|
|
197
199
|
gsl_sf_result *rslt = NULL;
|
198
200
|
VALUE v;
|
199
201
|
double sgn;
|
200
|
-
|
202
|
+
// local variable "status" declared and set, but never used
|
203
|
+
//int status;
|
201
204
|
Need_Float(a); Need_Float(x);
|
202
205
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
203
|
-
status
|
206
|
+
/*status =*/ gsl_sf_lnpoch_sgn_e(NUM2DBL(a), NUM2DBL(x), rslt, &sgn);
|
204
207
|
return rb_ary_new3(2, v, rb_float_new(sgn));
|
205
208
|
}
|
206
209
|
|
data/ext/sf_gegenbauer.c
CHANGED
@@ -50,11 +50,12 @@ static VALUE rb_gsl_sf_gegenpoly_n_e(VALUE obj, VALUE n, VALUE lambda, VALUE x)
|
|
50
50
|
{
|
51
51
|
gsl_sf_result *rslt = NULL;
|
52
52
|
VALUE v;
|
53
|
-
|
53
|
+
// local variable "status" declared and set, but never used
|
54
|
+
//int status;
|
54
55
|
CHECK_FIXNUM(n);
|
55
56
|
Need_Float(lambda); Need_Float(x);
|
56
57
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
57
|
-
status
|
58
|
+
/*status =*/ gsl_sf_gegenpoly_n_e(FIX2INT(n), NUM2DBL(lambda), NUM2DBL(x), rslt);
|
58
59
|
|
59
60
|
return v;
|
60
61
|
}
|
data/ext/sf_hyperg.c
CHANGED
@@ -31,10 +31,11 @@ static VALUE rb_gsl_sf_hyperg_1F1_int_e(VALUE obj, VALUE m, VALUE n, VALUE x)
|
|
31
31
|
{
|
32
32
|
gsl_sf_result *rslt = NULL;
|
33
33
|
VALUE v;
|
34
|
-
|
34
|
+
// local variable "status" declared and set, but never used
|
35
|
+
//int status;
|
35
36
|
CHECK_FIXNUM(m); CHECK_FIXNUM(n); Need_Float(x);
|
36
37
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
37
|
-
status
|
38
|
+
/*status =*/ gsl_sf_hyperg_1F1_int_e(FIX2INT(m), FIX2INT(n), NUM2DBL(x), rslt);
|
38
39
|
return v;
|
39
40
|
}
|
40
41
|
|
@@ -57,10 +58,11 @@ static VALUE rb_gsl_sf_hyperg_U_int_e(VALUE obj, VALUE m, VALUE n, VALUE x)
|
|
57
58
|
{
|
58
59
|
gsl_sf_result *rslt = NULL;
|
59
60
|
VALUE v;
|
60
|
-
|
61
|
+
// local variable "status" declared and set, but never used
|
62
|
+
//int status;
|
61
63
|
CHECK_FIXNUM(m); CHECK_FIXNUM(n); Need_Float(x);
|
62
64
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
63
|
-
status
|
65
|
+
/*status =*/ gsl_sf_hyperg_U_int_e(FIX2INT(m), FIX2INT(n), NUM2DBL(x), rslt);
|
64
66
|
return v;
|
65
67
|
}
|
66
68
|
|
@@ -68,10 +70,11 @@ static VALUE rb_gsl_sf_hyperg_U_int_e10_e(VALUE obj, VALUE m, VALUE n, VALUE x)
|
|
68
70
|
{
|
69
71
|
gsl_sf_result_e10 *rslt = NULL;
|
70
72
|
VALUE v;
|
71
|
-
|
73
|
+
// local variable "status" declared and set, but never used
|
74
|
+
//int status;
|
72
75
|
CHECK_FIXNUM(m); CHECK_FIXNUM(n); Need_Float(x);
|
73
76
|
v = Data_Make_Struct(cgsl_sf_result_e10, gsl_sf_result_e10, 0, free, rslt);
|
74
|
-
status
|
77
|
+
/*status =*/ gsl_sf_hyperg_U_int_e10_e(FIX2INT(m), FIX2INT(n), NUM2DBL(x), rslt);
|
75
78
|
return v;
|
76
79
|
}
|
77
80
|
|
@@ -121,10 +124,11 @@ static VALUE rb_gsl_sf_hyperg_2F1_conj_e(VALUE obj, VALUE aR, VALUE aI, VALUE c,
|
|
121
124
|
{
|
122
125
|
gsl_sf_result *rslt = NULL;
|
123
126
|
VALUE v;
|
124
|
-
|
127
|
+
// local variable "status" declared and set, but never used
|
128
|
+
//int status;
|
125
129
|
Need_Float(aR); Need_Float(aI); Need_Float(c); Need_Float(x);
|
126
130
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
127
|
-
status
|
131
|
+
/*status =*/ gsl_sf_hyperg_2F1_conj_e(NUM2DBL(aR), NUM2DBL(aI), NUM2DBL(c), NUM2DBL(x), rslt);
|
128
132
|
return v;
|
129
133
|
}
|
130
134
|
|
@@ -137,10 +141,11 @@ static VALUE rb_gsl_sf_hyperg_2F1_renorm_e(VALUE obj, VALUE a, VALUE b, VALUE c,
|
|
137
141
|
{
|
138
142
|
gsl_sf_result *rslt = NULL;
|
139
143
|
VALUE v;
|
140
|
-
|
144
|
+
// local variable "status" declared and set, but never used
|
145
|
+
//int status;
|
141
146
|
Need_Float(a); Need_Float(b); Need_Float(c); Need_Float(x);
|
142
147
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
143
|
-
status
|
148
|
+
/*status =*/ gsl_sf_hyperg_2F1_renorm_e(NUM2DBL(a), NUM2DBL(b), NUM2DBL(c), NUM2DBL(x), rslt);
|
144
149
|
return v;
|
145
150
|
}
|
146
151
|
|
@@ -153,10 +158,11 @@ static VALUE rb_gsl_sf_hyperg_2F1_conj_renorm_e(VALUE obj, VALUE aR, VALUE aI, V
|
|
153
158
|
{
|
154
159
|
gsl_sf_result *rslt = NULL;
|
155
160
|
VALUE v;
|
156
|
-
|
161
|
+
// local variable "status" declared and set, but never used
|
162
|
+
//int status;
|
157
163
|
Need_Float(aR); Need_Float(aI); Need_Float(c); Need_Float(x);
|
158
164
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
159
|
-
status
|
165
|
+
/*status =*/ gsl_sf_hyperg_2F1_conj_renorm_e(NUM2DBL(aR), NUM2DBL(aI), NUM2DBL(c), NUM2DBL(x), rslt);
|
160
166
|
return v;
|
161
167
|
}
|
162
168
|
|
data/ext/sf_laguerre.c
CHANGED
@@ -78,11 +78,12 @@ static VALUE rb_gsl_sf_laguerre_n_e(VALUE obj, VALUE n, VALUE a, VALUE x)
|
|
78
78
|
{
|
79
79
|
gsl_sf_result *rslt = NULL;
|
80
80
|
VALUE v;
|
81
|
-
|
81
|
+
// local variable "status" declared and set, but never used
|
82
|
+
//int status;
|
82
83
|
CHECK_FIXNUM(n);
|
83
84
|
Need_Float(a); Need_Float(x);
|
84
85
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
85
|
-
status
|
86
|
+
/*status =*/ gsl_sf_laguerre_n_e(FIX2INT(n), NUM2DBL(a), NUM2DBL(x), rslt);
|
86
87
|
return v;
|
87
88
|
}
|
88
89
|
|
data/ext/sf_legendre.c
CHANGED
@@ -255,12 +255,13 @@ static VALUE rb_gsl_sf_legendre_H3d_e(VALUE obj,VALUE l, VALUE lambda, VALUE et
|
|
255
255
|
{
|
256
256
|
gsl_sf_result *rslt = NULL;
|
257
257
|
VALUE v;
|
258
|
-
|
258
|
+
// local variable "status" declared and set, but never used
|
259
|
+
//int status;
|
259
260
|
CHECK_FIXNUM(l);
|
260
261
|
Need_Float(lambda);
|
261
262
|
Need_Float(eta);
|
262
263
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
263
|
-
status
|
264
|
+
/*status =*/ gsl_sf_legendre_H3d_e(FIX2INT(l), NUM2DBL(lambda), NUM2DBL(eta), rslt);
|
264
265
|
return v;
|
265
266
|
}
|
266
267
|
|
data/ext/sf_log.c
CHANGED
@@ -47,7 +47,8 @@ static VALUE rb_gsl_sf_complex_log_e(int argc, VALUE *argv, VALUE obj)
|
|
47
47
|
gsl_complex *z = NULL;
|
48
48
|
VALUE vlnr, vtheta;
|
49
49
|
double re, im;
|
50
|
-
|
50
|
+
// local variable "status" was defined and set, but never used
|
51
|
+
//int status;
|
51
52
|
switch (argc) {
|
52
53
|
case 1:
|
53
54
|
CHECK_COMPLEX(argv[0]);
|
@@ -65,7 +66,7 @@ static VALUE rb_gsl_sf_complex_log_e(int argc, VALUE *argv, VALUE obj)
|
|
65
66
|
}
|
66
67
|
vlnr = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt1);
|
67
68
|
vtheta = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt2);
|
68
|
-
status
|
69
|
+
/*status =*/ gsl_sf_complex_log_e(re, im, rslt1, rslt2);
|
69
70
|
return rb_ary_new3(2, vlnr, vtheta);
|
70
71
|
}
|
71
72
|
|
data/ext/sf_power.c
CHANGED
@@ -27,11 +27,12 @@ static VALUE rb_gsl_sf_pow_int_e(VALUE obj, VALUE x, VALUE n)
|
|
27
27
|
{
|
28
28
|
gsl_sf_result *rslt = NULL;
|
29
29
|
VALUE v;
|
30
|
-
|
30
|
+
// local variable "status" declared and set, but never used
|
31
|
+
//int status;
|
31
32
|
Need_Float(x);
|
32
33
|
CHECK_FIXNUM(n);
|
33
34
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
34
|
-
status
|
35
|
+
/*status =*/ gsl_sf_pow_int_e(NUM2DBL(x), FIX2INT(n), rslt);
|
35
36
|
return v;
|
36
37
|
}
|
37
38
|
|
data/ext/sf_trigonometric.c
CHANGED
@@ -63,7 +63,8 @@ static VALUE rb_gsl_sf_complex_XXX_e(int argc, VALUE *argv, VALUE obj,
|
|
63
63
|
gsl_complex *z;
|
64
64
|
double re, im;
|
65
65
|
VALUE v1, v2;
|
66
|
-
|
66
|
+
// local variable "status" declared and set, but never used
|
67
|
+
//int status;
|
67
68
|
switch (argc) {
|
68
69
|
case 1:
|
69
70
|
CHECK_COMPLEX(argv[0]);
|
@@ -82,7 +83,7 @@ static VALUE rb_gsl_sf_complex_XXX_e(int argc, VALUE *argv, VALUE obj,
|
|
82
83
|
}
|
83
84
|
v1 = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, r1);
|
84
85
|
v2 = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, r2);
|
85
|
-
status
|
86
|
+
/*status =*/ (*f)(re, im, r1, r2);
|
86
87
|
return rb_ary_new3(2, v1, v2);
|
87
88
|
}
|
88
89
|
|
@@ -157,11 +158,12 @@ static VALUE rb_gsl_sf_sin_err_e(VALUE obj, VALUE x, VALUE dx)
|
|
157
158
|
{
|
158
159
|
gsl_sf_result *rslt = NULL;
|
159
160
|
VALUE v;
|
160
|
-
|
161
|
+
// local variable "status" declared and set, but never used
|
162
|
+
//int status;
|
161
163
|
Need_Float(x);
|
162
164
|
Need_Float(dx);
|
163
165
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
164
|
-
status
|
166
|
+
/*status =*/ gsl_sf_sin_err_e(NUM2DBL(x), NUM2DBL(dx), rslt);
|
165
167
|
return v;
|
166
168
|
}
|
167
169
|
|
@@ -169,11 +171,12 @@ static VALUE rb_gsl_sf_cos_err_e(VALUE obj, VALUE x, VALUE dx)
|
|
169
171
|
{
|
170
172
|
gsl_sf_result *rslt = NULL;
|
171
173
|
VALUE v;
|
172
|
-
|
174
|
+
// local variable "status" declared and set, but never used
|
175
|
+
//int status;
|
173
176
|
Need_Float(x);
|
174
177
|
Need_Float(dx);
|
175
178
|
v = Data_Make_Struct(cgsl_sf_result, gsl_sf_result, 0, free, rslt);
|
176
|
-
status
|
179
|
+
/*status =*/ gsl_sf_cos_err_e(NUM2DBL(x), NUM2DBL(dx), rslt);
|
177
180
|
return v;
|
178
181
|
}
|
179
182
|
|
data/ext/signal.c
CHANGED
@@ -105,7 +105,7 @@ static VALUE rb_gsl_fft_conv_corr(int argc, VALUE *argv, VALUE obj,
|
|
105
105
|
enum FFT_CONV_CORR flag2)
|
106
106
|
{
|
107
107
|
double *data1, *data2, *data3;
|
108
|
-
size_t stride1, stride2,
|
108
|
+
size_t stride1, stride2, size1, size2;
|
109
109
|
#ifdef HAVE_NARRAY_H
|
110
110
|
int naflag1, naflag2, shape;
|
111
111
|
#else
|
@@ -170,14 +170,12 @@ static VALUE rb_gsl_fft_conv_corr(int argc, VALUE *argv, VALUE obj,
|
|
170
170
|
break;
|
171
171
|
}
|
172
172
|
data3 = v->data;
|
173
|
-
stride3 = 1;
|
174
173
|
break;
|
175
174
|
case 1:
|
176
175
|
#ifdef HAVE_NARRAY_H
|
177
176
|
shape = (int) size1;
|
178
177
|
ary = na_make_object(NA_DFLOAT, 1, &shape, cNArray);
|
179
178
|
data3 = NA_PTR_TYPE(ary, double*);
|
180
|
-
stride3 = 1;
|
181
179
|
#endif
|
182
180
|
break;
|
183
181
|
default:
|
data/ext/siman.c
CHANGED
@@ -569,7 +569,7 @@ static VALUE rb_gsl_siman_solver_solve(VALUE obj, VALUE rng,
|
|
569
569
|
siman_metric *metric = NULL;
|
570
570
|
siman_print *print = NULL;
|
571
571
|
gsl_vector *vtmp = NULL;
|
572
|
-
gsl_siman_params_t *params = NULL
|
572
|
+
gsl_siman_params_t *params = NULL;
|
573
573
|
int flag = 0;
|
574
574
|
/* Data_Get_Struct(obj, siman_solver, ss);*/
|
575
575
|
CHECK_VECTOR(vx0p);
|
@@ -622,7 +622,6 @@ static VALUE rb_gsl_siman_solver_solve(VALUE obj, VALUE rng,
|
|
622
622
|
ss->proc_metric = metric->proc;
|
623
623
|
|
624
624
|
gsl_vector_memcpy(ss->vx, vtmp);
|
625
|
-
ppp = *params;
|
626
625
|
|
627
626
|
if (NIL_P(vprint)) {
|
628
627
|
gsl_siman_solve(r, ss, rb_gsl_siman_Efunc_t,
|
data/ext/stats.c
CHANGED
@@ -45,6 +45,7 @@ static VALUE rb_gsl_stats_XXX1(int argc, VALUE *argv, VALUE obj,
|
|
45
45
|
{
|
46
46
|
size_t stride, size;
|
47
47
|
double *data = NULL;
|
48
|
+
if (argc < 1) rb_raise(rb_eArgError, "too few arguments");
|
48
49
|
data = get_vector_stats2(argc, argv, obj, &stride, &size);
|
49
50
|
return rb_float_new((*f)(data, stride, size, NUM2DBL(argv[argc-1])));
|
50
51
|
}
|
data/ext/vector_complex.c
CHANGED
@@ -1986,7 +1986,10 @@ static VALUE rb_gsl_vector_complex_zip(int argc, VALUE *argv, VALUE obj)
|
|
1986
1986
|
return ary;
|
1987
1987
|
}
|
1988
1988
|
|
1989
|
-
|
1989
|
+
// Starting with version 1.15, GSL provides a gsl_vector_complex_equal
|
1990
|
+
// function, but it only determines absolute equality (i.e. is has no epsilon
|
1991
|
+
// argument).
|
1992
|
+
static int gsl_vector_complex_equal_eps(const gsl_vector_complex *v1,
|
1990
1993
|
const gsl_vector_complex *v2, double eps)
|
1991
1994
|
{
|
1992
1995
|
gsl_complex z1, z2;
|
@@ -2019,7 +2022,7 @@ static VALUE rb_gsl_vector_complex_equal(int argc, VALUE *argv, VALUE obj)
|
|
2019
2022
|
Data_Get_Struct(obj, gsl_vector_complex, v1);
|
2020
2023
|
CHECK_VECTOR_COMPLEX(argv[0]);
|
2021
2024
|
Data_Get_Struct(argv[0], gsl_vector_complex, v2);
|
2022
|
-
ret =
|
2025
|
+
ret = gsl_vector_complex_equal_eps(v1, v2, eps);
|
2023
2026
|
if (ret == 1) return Qtrue;
|
2024
2027
|
else return Qfalse;
|
2025
2028
|
}
|