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.
Files changed (63) hide show
  1. data/ChangeLog +139 -134
  2. data/Rakefile +4 -3
  3. data/VERSION +1 -1
  4. data/ext/array.c +0 -24
  5. data/ext/array_complex.c +11 -10
  6. data/ext/blas1.c +9 -6
  7. data/ext/block_source.c +4 -3
  8. data/ext/dirac.c +0 -6
  9. data/ext/error.c +1 -2
  10. data/ext/extconf.rb +9 -4
  11. data/ext/fft.c +22 -12
  12. data/ext/function.c +2 -2
  13. data/ext/graph.c +2 -0
  14. data/ext/gsl_narray.c +1 -7
  15. data/ext/histogram.c +0 -8
  16. data/ext/ieee.c +3 -1
  17. data/ext/integration.c +5 -3
  18. data/ext/linalg.c +11 -16
  19. data/ext/linalg_complex.c +1 -3
  20. data/ext/matrix_complex.c +10 -5
  21. data/ext/matrix_int.c +10 -10
  22. data/ext/matrix_source.c +3 -2
  23. data/ext/multifit.c +21 -29
  24. data/ext/multimin.c +1 -3
  25. data/ext/odeiv.c +9 -6
  26. data/ext/poly_source.c +82 -52
  27. data/ext/sf_bessel.c +8 -4
  28. data/ext/sf_coulomb.c +8 -8
  29. data/ext/sf_coupling.c +9 -6
  30. data/ext/sf_dilog.c +3 -2
  31. data/ext/sf_elementary.c +6 -4
  32. data/ext/sf_elljac.c +3 -2
  33. data/ext/sf_exp.c +15 -10
  34. data/ext/sf_gamma.c +9 -6
  35. data/ext/sf_gegenbauer.c +3 -2
  36. data/ext/sf_hyperg.c +18 -12
  37. data/ext/sf_laguerre.c +3 -2
  38. data/ext/sf_legendre.c +3 -2
  39. data/ext/sf_log.c +3 -2
  40. data/ext/sf_power.c +3 -2
  41. data/ext/sf_trigonometric.c +9 -6
  42. data/ext/signal.c +1 -3
  43. data/ext/siman.c +1 -2
  44. data/ext/stats.c +1 -0
  45. data/ext/vector_complex.c +5 -2
  46. data/ext/vector_double.c +13 -8
  47. data/ext/vector_source.c +6 -5
  48. data/ext/wavelet.c +16 -8
  49. data/include/rb_gsl_common.h +5 -6
  50. data/include/rb_gsl_config.h +62 -0
  51. data/include/rb_gsl_with_narray.h +6 -1
  52. data/lib/gsl.rb +3 -0
  53. data/lib/rbgsl.rb +3 -0
  54. data/rdoc/fit.rdoc +5 -5
  55. data/rdoc/ndlinear.rdoc +5 -2
  56. data/tests/gsl_test2.rb +3 -0
  57. data/tests/matrix/matrix_complex_test.rb +36 -0
  58. data/tests/narray/blas_dnrm2.rb +20 -0
  59. data/tests/poly/poly.rb +48 -0
  60. data/tests/sf/test_mode.rb +19 -0
  61. data/tests/stats_mt.rb +16 -0
  62. metadata +15 -11
  63. data/ext/MANIFEST +0 -119
@@ -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
- int status;
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 = gsl_sf_complex_dilog_e(NUM2DBL(r), NUM2DBL(theta), re, im);
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
 
@@ -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
- int status;
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 = gsl_sf_multiply_e(NUM2DBL(x), NUM2DBL(y), r);
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
- int status;
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 = gsl_sf_multiply_err_e(NUM2DBL(x), NUM2DBL(dx),
37
+ /*status =*/ gsl_sf_multiply_err_e(NUM2DBL(x), NUM2DBL(dx),
36
38
  NUM2DBL(y), NUM2DBL(dy), r);
37
39
  return v;
38
40
  }
@@ -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
- int status;
18
+ // local variable "status" declared and set, but never used
19
+ //int status;
19
20
  Need_Float(n); Need_Float(m);
20
- status = gsl_sf_elljac_e(NUM2DBL(n), NUM2DBL(m), &sn, &cn, &dn);
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
  }
@@ -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
- int status;
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 = gsl_sf_exp_e10_e(NUM2DBL(x), rslt);
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
- int status;
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 = gsl_sf_exp_mult_e10_e(NUM2DBL(x), NUM2DBL(y), rslt);
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
- int status;
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 = gsl_sf_exp_err_e10_e(NUM2DBL(x), NUM2DBL(dx), rslt);
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
- int status;
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 = gsl_sf_exp_mult_err_e(NUM2DBL(x), NUM2DBL(dx), NUM2DBL(y), NUM2DBL(dy), rslt);
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
- int status;
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 = gsl_sf_exp_mult_err_e10_e(NUM2DBL(x), NUM2DBL(dx), NUM2DBL(y), NUM2DBL(dy), rslt);
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
 
@@ -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
- int status;
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 = gsl_sf_lngamma_sgn_e(NUM2DBL(x), rslt, &sgn);
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
- int status;
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 = gsl_sf_lnchoose_e(FIX2INT(n), FIX2INT(m), rslt);
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
- int status;
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 = gsl_sf_lnpoch_sgn_e(NUM2DBL(a), NUM2DBL(x), rslt, &sgn);
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
 
@@ -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
- int status;
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 = gsl_sf_gegenpoly_n_e(FIX2INT(n), NUM2DBL(lambda), NUM2DBL(x), rslt);
58
+ /*status =*/ gsl_sf_gegenpoly_n_e(FIX2INT(n), NUM2DBL(lambda), NUM2DBL(x), rslt);
58
59
 
59
60
  return v;
60
61
  }
@@ -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
- int status;
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 = gsl_sf_hyperg_1F1_int_e(FIX2INT(m), FIX2INT(n), NUM2DBL(x), rslt);
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
- int status;
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 = gsl_sf_hyperg_U_int_e(FIX2INT(m), FIX2INT(n), NUM2DBL(x), rslt);
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
- int status;
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 = gsl_sf_hyperg_U_int_e10_e(FIX2INT(m), FIX2INT(n), NUM2DBL(x), rslt);
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
- int status;
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 = gsl_sf_hyperg_2F1_conj_e(NUM2DBL(aR), NUM2DBL(aI), NUM2DBL(c), NUM2DBL(x), rslt);
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
- int status;
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 = gsl_sf_hyperg_2F1_renorm_e(NUM2DBL(a), NUM2DBL(b), NUM2DBL(c), NUM2DBL(x), rslt);
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
- int status;
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 = gsl_sf_hyperg_2F1_conj_renorm_e(NUM2DBL(aR), NUM2DBL(aI), NUM2DBL(c), NUM2DBL(x), rslt);
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
 
@@ -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
- int status;
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 = gsl_sf_laguerre_n_e(FIX2INT(n), NUM2DBL(a), NUM2DBL(x), rslt);
86
+ /*status =*/ gsl_sf_laguerre_n_e(FIX2INT(n), NUM2DBL(a), NUM2DBL(x), rslt);
86
87
  return v;
87
88
  }
88
89
 
@@ -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
- int status;
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 = gsl_sf_legendre_H3d_e(FIX2INT(l), NUM2DBL(lambda), NUM2DBL(eta), rslt);
264
+ /*status =*/ gsl_sf_legendre_H3d_e(FIX2INT(l), NUM2DBL(lambda), NUM2DBL(eta), rslt);
264
265
  return v;
265
266
  }
266
267
 
@@ -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
- int status;
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 = gsl_sf_complex_log_e(re, im, rslt1, rslt2);
69
+ /*status =*/ gsl_sf_complex_log_e(re, im, rslt1, rslt2);
69
70
  return rb_ary_new3(2, vlnr, vtheta);
70
71
  }
71
72
 
@@ -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
- int status;
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 = gsl_sf_pow_int_e(NUM2DBL(x), FIX2INT(n), rslt);
35
+ /*status =*/ gsl_sf_pow_int_e(NUM2DBL(x), FIX2INT(n), rslt);
35
36
  return v;
36
37
  }
37
38
 
@@ -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
- int status;
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 = (*f)(re, im, r1, r2);
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
- int status;
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 = gsl_sf_sin_err_e(NUM2DBL(x), NUM2DBL(dx), rslt);
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
- int status;
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 = gsl_sf_cos_err_e(NUM2DBL(x), NUM2DBL(dx), rslt);
179
+ /*status =*/ gsl_sf_cos_err_e(NUM2DBL(x), NUM2DBL(dx), rslt);
177
180
  return v;
178
181
  }
179
182
 
@@ -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, stride3 = 1, size1, size2;
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:
@@ -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, ppp;
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,
@@ -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
  }
@@ -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
- static int gsl_vector_complex_equal(const gsl_vector_complex *v1,
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 = gsl_vector_complex_equal(v1, v2, eps);
2025
+ ret = gsl_vector_complex_equal_eps(v1, v2, eps);
2023
2026
  if (ret == 1) return Qtrue;
2024
2027
  else return Qfalse;
2025
2028
  }