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
data/ext/ieee.c CHANGED
@@ -21,6 +21,7 @@ static VALUE rb_gsl_ieee_fprintf_double(int argc, VALUE *argv, VALUE obj)
21
21
  {
22
22
  #ifdef RUBY_1_9_LATER
23
23
  rb_io_t *fptr = NULL;
24
+ double ftmp;
24
25
  #else
25
26
  OpenFile *fptr = NULL;
26
27
  #endif
@@ -61,7 +62,8 @@ static VALUE rb_gsl_ieee_fprintf_double(int argc, VALUE *argv, VALUE obj)
61
62
  rb_raise(rb_eTypeError, "wrong argument type %s (Float expected)",
62
63
  rb_class2name(CLASS_OF(vtmp)));
63
64
  #ifdef RUBY_1_9_LATER
64
- gsl_ieee_fprintf_double(fp, &(RFLOAT_VALUE(vtmp)));
65
+ ftmp = RFLOAT_VALUE(vtmp);
66
+ gsl_ieee_fprintf_double(fp, &ftmp);
65
67
  #else
66
68
  gsl_ieee_fprintf_double(fp, &(RFLOAT(vtmp)->value));
67
69
  #endif
@@ -267,7 +267,9 @@ static VALUE rb_gsl_integration_qng(int argc, VALUE *argv, VALUE obj)
267
267
  double result, abserr;
268
268
  size_t neval;
269
269
  gsl_function *F = NULL;
270
- int status, itmp;
270
+ int status;
271
+ // local variable 'itmp' declared and set, but never used
272
+ //int itmp;
271
273
 
272
274
  if (argc < 1) rb_raise(rb_eArgError,
273
275
  "wrong number of arguments (%d for >= 1)", argc);
@@ -276,10 +278,10 @@ static VALUE rb_gsl_integration_qng(int argc, VALUE *argv, VALUE obj)
276
278
  case T_MODULE: case T_CLASS: case T_OBJECT:
277
279
  CHECK_FUNCTION(argv[0]);
278
280
  Data_Get_Struct(argv[0], gsl_function, F);
279
- itmp = get_a_b_epsabs_epsrel(argc, argv, 1, &a, &b, &epsabs, &epsrel);
281
+ /*itmp =*/ get_a_b_epsabs_epsrel(argc, argv, 1, &a, &b, &epsabs, &epsrel);
280
282
  break;
281
283
  default:
282
- itmp = get_a_b_epsabs_epsrel(argc, argv, 0, &a, &b, &epsabs, &epsrel);
284
+ /*itmp =*/ get_a_b_epsabs_epsrel(argc, argv, 0, &a, &b, &epsabs, &epsrel);
283
285
  Data_Get_Struct(obj, gsl_function, F);
284
286
  break;
285
287
  }
@@ -666,7 +666,6 @@ static VALUE rb_gsl_linalg_QR_LQ_decomposition(int argc, VALUE *argv, VALUE obj,
666
666
  gsl_vector *tau = NULL;
667
667
  int (*fdecomp)(gsl_matrix *, gsl_vector *);
668
668
  int itmp, status;
669
- size_t size;
670
669
  VALUE vtau, mdecomp, omatrix;
671
670
 
672
671
  switch (TYPE(obj)) {
@@ -712,7 +711,6 @@ static VALUE rb_gsl_linalg_QR_LQ_decomposition(int argc, VALUE *argv, VALUE obj,
712
711
  rb_raise(rb_eRuntimeError, "unknown operation");
713
712
  break;
714
713
  }
715
- size = m->size1;
716
714
  switch (argc - itmp) {
717
715
  case 0:
718
716
  tau = gsl_vector_alloc(GSL_MIN(mtmp->size1, mtmp->size2));
@@ -931,7 +929,7 @@ static VALUE rb_gsl_linalg_QR_LQ_lssolve(int argc, VALUE *argv, VALUE obj, int f
931
929
  gsl_matrix *m = NULL;
932
930
  gsl_vector *b = NULL, *x = NULL, *tau = NULL, *r = NULL;
933
931
  VALUE omatrix;
934
- int flagm = 0, flagt = 0, flagb = 0, flagx = 0, flagr = 0, itmp, status;
932
+ int flagm = 0, flagt = 0, flagb = 0, itmp, status;
935
933
  size_t size;
936
934
  int (*fdecomp)(gsl_matrix*, gsl_vector*);
937
935
  int (*flssolve)(const gsl_matrix*, const gsl_vector*, const gsl_vector*, gsl_vector*,
@@ -991,22 +989,17 @@ static VALUE rb_gsl_linalg_QR_LQ_lssolve(int argc, VALUE *argv, VALUE obj, int f
991
989
  case 2:
992
990
  CHECK_VECTOR(argv[argc-2]);
993
991
  Data_Get_Struct(argv[argc-2], gsl_vector, x);
994
- flagx = 0;
995
992
  CHECK_VECTOR(argv[argc-1]);
996
993
  Data_Get_Struct(argv[argc-1], gsl_vector, r);
997
- flagr = 0;
998
994
  break;
999
995
  case 1:
1000
996
  CHECK_VECTOR(argv[argc-1]);
1001
997
  Data_Get_Struct(argv[argc-1], gsl_vector, x);
1002
- flagx = 0;
1003
998
  r = gsl_vector_alloc(x->size);
1004
- flagr = 1;
1005
999
  break;
1006
1000
  case 0:
1007
1001
  x = gsl_vector_alloc(m->size1);
1008
1002
  r = gsl_vector_alloc(m->size1);
1009
- flagx = 1; flagr = 1;
1010
1003
  break;
1011
1004
  default:
1012
1005
  rb_raise(rb_eArgError, "wrong number of arguments");
@@ -2133,7 +2126,7 @@ static VALUE rb_gsl_linalg_QRLQPT_RLsvx(int argc, VALUE *argv, VALUE obj, int fl
2133
2126
  gsl_matrix *QR = NULL;
2134
2127
  gsl_vector *b = NULL;
2135
2128
  gsl_permutation *p = NULL;
2136
- int itmp, flagb = 0;
2129
+ int itmp;
2137
2130
  VALUE vtmp, klass;
2138
2131
  int (*fsvx)(const gsl_matrix*, const gsl_permutation*, gsl_vector*);
2139
2132
  switch (flag) {
@@ -2174,7 +2167,6 @@ static VALUE rb_gsl_linalg_QRLQPT_RLsvx(int argc, VALUE *argv, VALUE obj, int fl
2174
2167
  itmp++;
2175
2168
  if (TYPE(argv[itmp]) == T_ARRAY) {
2176
2169
  b = make_cvector_from_rarray(argv[itmp]);
2177
- flagb = 1;
2178
2170
  } else {
2179
2171
  CHECK_VECTOR(argv[itmp]);
2180
2172
  Data_Get_Struct(argv[itmp], gsl_vector, b);
@@ -2853,7 +2845,8 @@ static VALUE rb_gsl_linalg_bidiag_decomp(int argc, VALUE *argv, VALUE obj)
2853
2845
  gsl_matrix *A = NULL, *Atmp = NULL;
2854
2846
  gsl_vector *tau_U = NULL, *tau_V = NULL;
2855
2847
  size_t size0;
2856
- int status;
2848
+ // local variable "status" was defined and set, but never used
2849
+ //int status;
2857
2850
  VALUE vu, vv, vA;
2858
2851
 
2859
2852
  switch (TYPE(obj)) {
@@ -2870,7 +2863,7 @@ static VALUE rb_gsl_linalg_bidiag_decomp(int argc, VALUE *argv, VALUE obj)
2870
2863
  size0 = GSL_MIN(A->size1, A->size2);
2871
2864
  tau_U = gsl_vector_alloc(size0);
2872
2865
  tau_V = gsl_vector_alloc(size0-1);
2873
- status = gsl_linalg_bidiag_decomp(A, tau_U, tau_V);
2866
+ /*status =*/ gsl_linalg_bidiag_decomp(A, tau_U, tau_V);
2874
2867
  vA = Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, A);
2875
2868
  vu = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, tau_U);
2876
2869
  vv = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, tau_V);
@@ -3320,9 +3313,10 @@ static VALUE rb_gsl_linalg_balance_columns_bang(int argc, VALUE *argv, VALUE obj
3320
3313
  gsl_matrix *A = NULL;
3321
3314
  gsl_vector *D = NULL;
3322
3315
  VALUE mat, vec;
3323
- int status;
3316
+ // local variable "status" was defined and set, but never used
3317
+ //int status;
3324
3318
  rb_gsl_linalg_balance_columns_init(argc, argv, obj, &mat, &vec, &A, &D);
3325
- status = gsl_linalg_balance_columns(A, D);
3319
+ /*status =*/ gsl_linalg_balance_columns(A, D);
3326
3320
  return rb_ary_new3(2, mat, vec);
3327
3321
  }
3328
3322
 
@@ -3331,11 +3325,12 @@ static VALUE rb_gsl_linalg_balance_columns(int argc, VALUE *argv, VALUE obj)
3331
3325
  gsl_matrix *A = NULL, *Anew;
3332
3326
  gsl_vector *D = NULL;
3333
3327
  VALUE mat, vec;
3334
- int status;
3328
+ // local variable "status" was defined and set, but never used
3329
+ //int status;
3335
3330
  rb_gsl_linalg_balance_columns_init(argc, argv, obj, &mat, &vec, &A, &D);
3336
3331
  Anew = make_matrix_clone(A);
3337
3332
  mat = Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, Anew);
3338
- status = gsl_linalg_balance_columns(Anew, D);
3333
+ /*status =*/ gsl_linalg_balance_columns(Anew, D);
3339
3334
  return rb_ary_new3(2, mat, vec);
3340
3335
  }
3341
3336
 
@@ -362,7 +362,7 @@ static VALUE rb_gsl_linalg_complex_LU_lndet(int argc, VALUE *argv, VALUE obj)
362
362
  gsl_matrix_complex *m = NULL, *mtmp = NULL;
363
363
  gsl_permutation *p = NULL;
364
364
  double lndet;
365
- int flagm = 0, signum, itmp;
365
+ int flagm = 0, signum;
366
366
  switch (TYPE(obj)) {
367
367
  case T_MODULE:
368
368
  case T_CLASS:
@@ -376,7 +376,6 @@ static VALUE rb_gsl_linalg_complex_LU_lndet(int argc, VALUE *argv, VALUE obj)
376
376
  } else {
377
377
  mtmp = m;
378
378
  }
379
- itmp = 1;
380
379
  break;
381
380
  default:
382
381
  Data_Get_Struct(obj, gsl_matrix_complex, m);
@@ -387,7 +386,6 @@ static VALUE rb_gsl_linalg_complex_LU_lndet(int argc, VALUE *argv, VALUE obj)
387
386
  } else {
388
387
  mtmp = m;
389
388
  }
390
- itmp = 0;
391
389
  }
392
390
  if (flagm == 1) {
393
391
  p = gsl_permutation_alloc(m->size1);
@@ -199,7 +199,7 @@ static VALUE rb_gsl_matrix_complex_eye(int argc, VALUE *argv, VALUE klass)
199
199
  {
200
200
  size_t n, i;
201
201
  gsl_matrix_complex *m = NULL;
202
- gsl_complex z, *p = &z;
202
+ gsl_complex z, *pz = &z;
203
203
  switch (argc) {
204
204
  case 1:
205
205
  CHECK_FIXNUM(argv[0]);
@@ -223,7 +223,8 @@ static VALUE rb_gsl_matrix_complex_eye(int argc, VALUE *argv, VALUE klass)
223
223
  break;
224
224
  default:
225
225
  if (rb_obj_is_kind_of(argv[1], cgsl_complex)) {
226
- Data_Get_Struct(argv[1], gsl_complex, p);
226
+ Data_Get_Struct(argv[1], gsl_complex, pz);
227
+ z = *pz;
227
228
  } else {
228
229
  rb_raise(rb_eTypeError,
229
230
  "wrong argument type %s", rb_class2name(CLASS_OF(argv[1])));
@@ -422,6 +423,7 @@ static VALUE rb_gsl_matrix_complex_set_row(int argc, VALUE *argv, VALUE obj)
422
423
  default:
423
424
  CHECK_COMPLEX(argv[k]);
424
425
  Data_Get_Struct(argv[k], gsl_complex, pz);
426
+ z = *pz;
425
427
  break;
426
428
  }
427
429
  gsl_matrix_complex_set(A, i, k-1, z);
@@ -448,6 +450,7 @@ static VALUE rb_gsl_matrix_complex_set_col(int argc, VALUE *argv, VALUE obj)
448
450
  default:
449
451
  CHECK_COMPLEX(argv[k]);
450
452
  Data_Get_Struct(argv[k], gsl_complex, pz);
453
+ z = *pz;
451
454
  break;
452
455
  }
453
456
  gsl_matrix_complex_set(A, k-1, j, z);
@@ -1519,8 +1522,10 @@ static VALUE rb_gsl_matrix_complex_indgen_singleton(int argc, VALUE *argv, VALUE
1519
1522
  return Data_Wrap_Struct(cgsl_matrix_complex, 0, gsl_matrix_complex_free, mnew);
1520
1523
  }
1521
1524
 
1522
-
1523
- static int gsl_matrix_complex_equal(const gsl_matrix_complex *m1,
1525
+ // Starting with version 1.15, GSL provides a gsl_matrix_complex_equal
1526
+ // function, but it only determines absolute equality (i.e. is has no epsilon
1527
+ // argument).
1528
+ static int gsl_matrix_complex_equal_eps(const gsl_matrix_complex *m1,
1524
1529
  const gsl_matrix_complex *m2, double eps)
1525
1530
  {
1526
1531
  gsl_complex z1, z2;
@@ -1555,7 +1560,7 @@ static VALUE rb_gsl_matrix_complex_equal(int argc, VALUE *argv, VALUE obj)
1555
1560
  Data_Get_Struct(obj, gsl_matrix_complex, m1);
1556
1561
  CHECK_MATRIX_COMPLEX(argv[0]);
1557
1562
  Data_Get_Struct(argv[0], gsl_matrix_complex, m2);
1558
- ret = gsl_matrix_complex_equal(m1, m2, eps);
1563
+ ret = gsl_matrix_complex_equal_eps(m1, m2, eps);
1559
1564
  if (ret == 1) return Qtrue;
1560
1565
  else return Qfalse;
1561
1566
  }
@@ -71,13 +71,13 @@ enum {
71
71
  GSL_MATRIX_INT_DIV,
72
72
  };
73
73
 
74
- static VALUE rb_gsl_matrix_int_operation1(VALUE obj, VALUE other, int flag);
75
74
  static VALUE rb_gsl_matrix_int_operation1(VALUE obj, VALUE other, int flag)
76
75
  {
77
76
  gsl_matrix_int *a, *anew, *b;
78
77
  gsl_vector_int *vi, *vinew;
79
78
  double bval;
80
- int result;
79
+ // local variable "result" declared and set, but never used
80
+ //int result;
81
81
  Data_Get_Struct(obj, gsl_matrix_int, a);
82
82
  switch (TYPE(other)) {
83
83
  case T_FIXNUM:
@@ -86,16 +86,16 @@ static VALUE rb_gsl_matrix_int_operation1(VALUE obj, VALUE other, int flag)
86
86
  anew = make_matrix_int_clone(a);
87
87
  switch (flag) {
88
88
  case GSL_MATRIX_INT_ADD:
89
- result = gsl_matrix_int_add_constant(anew, bval);
89
+ /*result =*/ gsl_matrix_int_add_constant(anew, bval);
90
90
  break;
91
91
  case GSL_MATRIX_INT_SUB:
92
- result = gsl_matrix_int_add_constant(anew, -bval);
92
+ /*result =*/ gsl_matrix_int_add_constant(anew, -bval);
93
93
  break;
94
94
  case GSL_MATRIX_INT_MUL:
95
- result = gsl_matrix_int_scale(anew, bval);
95
+ /*result =*/ gsl_matrix_int_scale(anew, bval);
96
96
  break;
97
97
  case GSL_MATRIX_INT_DIV:
98
- result = gsl_matrix_int_scale(anew, 1.0/bval);
98
+ /*result =*/ gsl_matrix_int_scale(anew, 1.0/bval);
99
99
  break;
100
100
  default:
101
101
  break;
@@ -109,16 +109,16 @@ static VALUE rb_gsl_matrix_int_operation1(VALUE obj, VALUE other, int flag)
109
109
  Data_Get_Struct(other, gsl_matrix_int, b);
110
110
  switch (flag) {
111
111
  case GSL_MATRIX_INT_ADD:
112
- result = gsl_matrix_int_add(anew, b);
112
+ /*result =*/ gsl_matrix_int_add(anew, b);
113
113
  break;
114
114
  case GSL_MATRIX_INT_SUB:
115
- result = gsl_matrix_int_sub(anew, b);
115
+ /*result =*/ gsl_matrix_int_sub(anew, b);
116
116
  break;
117
117
  case GSL_MATRIX_INT_MUL:
118
- result = gsl_matrix_int_mul_elements(anew, b);
118
+ /*result =*/ gsl_matrix_int_mul_elements(anew, b);
119
119
  break;
120
120
  case GSL_MATRIX_INT_DIV:
121
- result = gsl_matrix_int_div_elements(anew, b);
121
+ /*result =*/ gsl_matrix_int_div_elements(anew, b);
122
122
  break;
123
123
  default:
124
124
  break;
@@ -875,14 +875,15 @@ static VALUE FUNCTION(rb_gsl_matrix,to_s)(VALUE obj)
875
875
  char buf[32], format[32], format2[32];
876
876
  size_t i, j;
877
877
  VALUE str;
878
- BASE x, min;
878
+ BASE x;
879
879
  int dig = 8;
880
880
  #ifdef BASE_INT
881
+ BASE min;
881
882
  BASE max;
882
883
  #endif
883
884
  Data_Get_Struct(obj, GSL_TYPE(gsl_matrix), m);
884
- min = FUNCTION(gsl_matrix,min)(m);
885
885
  #ifdef BASE_INT
886
+ min = FUNCTION(gsl_matrix,min)(m);
886
887
  max = gsl_matrix_int_max(m);
887
888
  dig = (int) GSL_MAX(fabs(max),fabs(min));
888
889
  if (dig > 0) dig = ceil(log10(dig+1e-10));
@@ -354,14 +354,15 @@ static VALUE rb_gsl_multifit_fdfsolver_gradient(int argc, VALUE *argv, VALUE obj
354
354
  {
355
355
  gsl_multifit_fdfsolver *solver = NULL;
356
356
  gsl_vector *g = NULL;
357
- int status;
357
+ // local variable "status" declared and set, but never used
358
+ //int status;
358
359
  Data_Get_Struct(obj, gsl_multifit_fdfsolver, solver);
359
360
  if (argc == 1) {
360
361
  Data_Get_Vector(argv[0], g);
361
362
  return INT2FIX(gsl_multifit_gradient(solver->J, solver->f, g));
362
363
  } else {
363
364
  g = gsl_vector_alloc(solver->x->size);
364
- status = gsl_multifit_gradient(solver->J, solver->f, g);
365
+ /*status =*/ gsl_multifit_gradient(solver->J, solver->f, g);
365
366
  return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, g);
366
367
  }
367
368
  }
@@ -371,7 +372,8 @@ static VALUE rb_gsl_multifit_fdfsolver_covar(int argc, VALUE *argv, VALUE obj)
371
372
  gsl_multifit_fdfsolver *solver = NULL;
372
373
  gsl_matrix *covar = NULL;
373
374
  double epsrel;
374
- int status;
375
+ // local variable "status" declared and set, but never used
376
+ //int status;
375
377
  if (argc < 1) rb_raise(rb_eArgError, "too few arguments");
376
378
  Need_Float(argv[0]);
377
379
  Data_Get_Struct(obj, gsl_multifit_fdfsolver, solver);
@@ -379,7 +381,7 @@ static VALUE rb_gsl_multifit_fdfsolver_covar(int argc, VALUE *argv, VALUE obj)
379
381
  switch (argc) {
380
382
  case 1:
381
383
  covar = gsl_matrix_alloc(solver->x->size, solver->x->size);
382
- status = gsl_multifit_covar(solver->J, epsrel, covar);
384
+ /*status =*/ gsl_multifit_covar(solver->J, epsrel, covar);
383
385
  return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, covar);
384
386
  break;
385
387
  case 2:
@@ -442,13 +444,14 @@ static VALUE rb_gsl_multifit_gradient(int argc, VALUE *argv, VALUE obj)
442
444
  {
443
445
  gsl_vector *g = NULL, *f = NULL;
444
446
  gsl_matrix *J = NULL;
445
- int status;
447
+ // local variable "status" declared and set, but never used
448
+ //int status;
446
449
  switch (argc) {
447
450
  case 2:
448
451
  Data_Get_Matrix(argv[0], J);
449
452
  Data_Get_Vector(argv[1], f);
450
453
  g = gsl_vector_alloc(f->size);
451
- status = gsl_multifit_gradient(J, f, g);
454
+ /*status =*/ gsl_multifit_gradient(J, f, g);
452
455
  return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, g);
453
456
  break;
454
457
  case 3:
@@ -474,7 +477,7 @@ static VALUE rb_gsl_multifit_covar(int argc, VALUE *argv, VALUE obj)
474
477
  Data_Get_Matrix(argv[0], J);
475
478
  epsrel = NUM2DBL(argv[1]);
476
479
  covar = gsl_matrix_alloc(J->size2, J->size2);
477
- status = gsl_multifit_covar(J, epsrel, covar);
480
+ /*status =*/ gsl_multifit_covar(J, epsrel, covar);
478
481
  return Data_Wrap_Struct(cgsl_matrix, 0, gsl_matrix_free, covar);
479
482
  break;
480
483
  case 3:
@@ -783,10 +786,9 @@ static int Gaussian_df(const gsl_vector *v, void *data, gsl_matrix *J)
783
786
  double A, x0, var, xi, yy, wi;
784
787
  size_t i;
785
788
  struct fitting_xydata *xydata;
786
- gsl_vector *x, *y, *w;
789
+ gsl_vector *x, *w;
787
790
  xydata = (struct fitting_xydata*) data;
788
791
  x = xydata->x;
789
- y = xydata->y;
790
792
  w = xydata->w;
791
793
  var = gsl_vector_get(v, 3);
792
794
  x0 = gsl_vector_get(v, 2);
@@ -854,10 +856,9 @@ static int Gaussian_2peaks_df(const gsl_vector *v, void *data, gsl_matrix *J)
854
856
  double A1, x01, var1, A2, x02, var2, xi, yy, wi;
855
857
  size_t i;
856
858
  struct fitting_xydata *xydata;
857
- gsl_vector *x, *y, *w;
859
+ gsl_vector *x, *w;
858
860
  xydata = (struct fitting_xydata*) data;
859
861
  x = xydata->x;
860
- y = xydata->y;
861
862
  w = xydata->w;
862
863
  A1 = gsl_vector_get(v, 1);
863
864
  x01 = gsl_vector_get(v, 2);
@@ -925,10 +926,9 @@ static int Exponential_df(const gsl_vector *v, void *data, gsl_matrix *J)
925
926
  double A, b, xi, yy, wi;
926
927
  size_t i;
927
928
  struct fitting_xydata *xydata;
928
- gsl_vector *x, *y, *w;
929
+ gsl_vector *x, *w;
929
930
  xydata = (struct fitting_xydata*) data;
930
931
  x = xydata->x;
931
- y = xydata->y;
932
932
  w = xydata->w;
933
933
  A = gsl_vector_get(v, 1);
934
934
  b = gsl_vector_get(v, 2);
@@ -991,10 +991,9 @@ static int DblExponential_df(const gsl_vector *v, void *data, gsl_matrix *J)
991
991
  double A1, b1, A2, b2, xi, yy1, yy2, wi;
992
992
  size_t i;
993
993
  struct fitting_xydata *xydata;
994
- gsl_vector *x, *y, *w;
994
+ gsl_vector *x, *w;
995
995
  xydata = (struct fitting_xydata*) data;
996
996
  x = xydata->x;
997
- y = xydata->y;
998
997
  w = xydata->w;
999
998
  A1 = gsl_vector_get(v, 1);
1000
999
  b1 = gsl_vector_get(v, 2);
@@ -1059,10 +1058,9 @@ static int Lorentzian_df(const gsl_vector *v, void *data, gsl_matrix *J)
1059
1058
  double A, B, x0, xi, yy, wi;
1060
1059
  size_t i;
1061
1060
  struct fitting_xydata *xydata;
1062
- gsl_vector *x, *y, *w;
1061
+ gsl_vector *x, *w;
1063
1062
  xydata = (struct fitting_xydata*) data;
1064
1063
  x = xydata->x;
1065
- y = xydata->y;
1066
1064
  w = xydata->w;
1067
1065
  A = gsl_vector_get(v, 1);
1068
1066
  x0 = gsl_vector_get(v, 2);
@@ -1124,10 +1122,9 @@ static int Sin_df(const gsl_vector *v, void *data, gsl_matrix *J)
1124
1122
  double A, fc, phi, xi, ys, yc, wi;
1125
1123
  size_t i;
1126
1124
  struct fitting_xydata *xydata;
1127
- gsl_vector *x, *y, *w;
1125
+ gsl_vector *x, *w;
1128
1126
  xydata = (struct fitting_xydata*) data;
1129
1127
  x = xydata->x;
1130
- y = xydata->y;
1131
1128
  w = xydata->w;
1132
1129
  A = gsl_vector_get(v, 1);
1133
1130
  fc = gsl_vector_get(v, 2);
@@ -1190,10 +1187,9 @@ static int Hill_df(const gsl_vector *v, void *data, gsl_matrix *J)
1190
1187
  double y0, m, xhalf, r, yy, xi, wi, a;
1191
1188
  size_t i;
1192
1189
  struct fitting_xydata *xydata;
1193
- gsl_vector *x, *y, *w;
1190
+ gsl_vector *x, *w;
1194
1191
  xydata = (struct fitting_xydata*) data;
1195
1192
  x = xydata->x;
1196
- y = xydata->y;
1197
1193
  w = xydata->w;
1198
1194
  y0 = gsl_vector_get(v, 0);
1199
1195
  m = gsl_vector_get(v, 1);
@@ -1257,10 +1253,9 @@ static int Sigmoid_df(const gsl_vector *v, void *data, gsl_matrix *J)
1257
1253
  double m, x0, r, xi, wi, a, yy;
1258
1254
  size_t i;
1259
1255
  struct fitting_xydata *xydata;
1260
- gsl_vector *x, *y, *w;
1256
+ gsl_vector *x, *w;
1261
1257
  xydata = (struct fitting_xydata*) data;
1262
1258
  x = xydata->x;
1263
- y = xydata->y;
1264
1259
  w = xydata->w;
1265
1260
  m = gsl_vector_get(v, 1);
1266
1261
  x0 = gsl_vector_get(v, 2);
@@ -1322,10 +1317,9 @@ static int Power_df(const gsl_vector *v, void *data, gsl_matrix *J)
1322
1317
  double A, r, xi, wi, a;
1323
1318
  size_t i;
1324
1319
  struct fitting_xydata *xydata;
1325
- gsl_vector *x, *y, *w;
1320
+ gsl_vector *x, *w;
1326
1321
  xydata = (struct fitting_xydata*) data;
1327
1322
  x = xydata->x;
1328
- y = xydata->y;
1329
1323
  w = xydata->w;
1330
1324
  A = gsl_vector_get(v, 1);
1331
1325
  r = gsl_vector_get(v, 2);
@@ -1387,10 +1381,9 @@ static int Lognormal_df(const gsl_vector *v, void *data, gsl_matrix *J)
1387
1381
  double A, x0, width, xi, wi, a, b;
1388
1382
  size_t i;
1389
1383
  struct fitting_xydata *xydata;
1390
- gsl_vector *x, *y, *w;
1384
+ gsl_vector *x, *w;
1391
1385
  xydata = (struct fitting_xydata*) data;
1392
1386
  x = xydata->x;
1393
- y = xydata->y;
1394
1387
  w = xydata->w;
1395
1388
  A = gsl_vector_get(v, 1);
1396
1389
  x0 = gsl_vector_get(v, 2);
@@ -1449,10 +1442,9 @@ static int Rayleigh_df(const gsl_vector *v, void *data, gsl_matrix *J)
1449
1442
  double A, var, xi, yy, wi;
1450
1443
  size_t i;
1451
1444
  struct fitting_xydata *xydata;
1452
- gsl_vector *x, *y, *w;
1445
+ gsl_vector *x, *w;
1453
1446
  xydata = (struct fitting_xydata*) data;
1454
1447
  x = xydata->x;
1455
- y = xydata->y;
1456
1448
  w = xydata->w;
1457
1449
  var = gsl_vector_get(v, 1);
1458
1450
  A = gsl_vector_get(v, 0);