gsl 1.14.7 → 1.15.3
Sign up to get free protection for your applications and to get access to all the features.
- 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/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
2
|
+
require 'rubygems/package_task'
|
3
3
|
require 'rake/rdoctask'
|
4
4
|
|
5
5
|
RB_GSL_VERSION = File.readlines('VERSION')[0].chomp
|
@@ -33,7 +33,8 @@ spec = Gem::Specification.new do |s|
|
|
33
33
|
'THANKS',
|
34
34
|
'VERSION',
|
35
35
|
'examples/**/*',
|
36
|
-
'ext
|
36
|
+
'ext/extconf.rb',
|
37
|
+
'ext/*.c',
|
37
38
|
'lib/**/*',
|
38
39
|
'include/*',
|
39
40
|
'rdoc/*',
|
@@ -69,7 +70,7 @@ Rake::PackageTask.new('rb-gsl', RB_GSL_VERSION) do |pkg|
|
|
69
70
|
pkg.package_files = spec.files
|
70
71
|
end
|
71
72
|
|
72
|
-
|
73
|
+
Gem::PackageTask.new(spec) do |pkg|
|
73
74
|
pkg.need_zip = false
|
74
75
|
pkg.need_tar = false
|
75
76
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.15.3
|
data/ext/array.c
CHANGED
@@ -169,21 +169,6 @@ void cvector_set_from_carray(gsl_vector *v, const double *a)
|
|
169
169
|
for (i = 0; i < v->size; i++) gsl_vector_set(v, i, a[i]);
|
170
170
|
}
|
171
171
|
|
172
|
-
void cvector_set_from_rarrays(gsl_vector *v, VALUE ary)
|
173
|
-
{
|
174
|
-
if (CLASS_OF(ary) == rb_cRange) ary = rb_gsl_range2ary(ary);
|
175
|
-
if (TYPE(ary) == T_ARRAY) {
|
176
|
-
return cvector_set_from_rarray(v, ary);
|
177
|
-
#ifdef HAVE_NARRAY_H
|
178
|
-
} else if (NA_IsNArray(ary)) {
|
179
|
-
return cvector_set_from_narray(v, ary);
|
180
|
-
#endif
|
181
|
-
} else {
|
182
|
-
rb_raise(rb_eTypeError,
|
183
|
-
"wrong argument type %s", rb_class2name(CLASS_OF(ary)));
|
184
|
-
}
|
185
|
-
}
|
186
|
-
|
187
172
|
void carray_set_from_cvector(double *a, const gsl_vector *v)
|
188
173
|
{
|
189
174
|
size_t i;
|
@@ -255,15 +240,6 @@ gsl_vector* make_cvector_from_narray(VALUE ary)
|
|
255
240
|
return v;
|
256
241
|
}
|
257
242
|
|
258
|
-
void cvector_set_from_narray(gsl_vector *v, VALUE ary)
|
259
|
-
{
|
260
|
-
int size;
|
261
|
-
if (!NA_IsNArray(ary))
|
262
|
-
rb_raise(rb_eTypeError,
|
263
|
-
"wrong argument type %s", rb_class2name(CLASS_OF(ary)));
|
264
|
-
size = NA_TOTAL(ary);
|
265
|
-
carray_set_from_narray(v->data, ary);
|
266
|
-
}
|
267
243
|
#endif
|
268
244
|
|
269
245
|
gsl_vector_complex* make_vector_complex_clone(const gsl_vector_complex *v)
|
data/ext/array_complex.c
CHANGED
@@ -30,29 +30,30 @@ static VALUE rb_gsl_complex_arithmetics5(int flag, VALUE obj, VALUE bb)
|
|
30
30
|
gsl_vector *v = NULL;
|
31
31
|
gsl_vector_complex *cv = NULL, *cvnew = NULL;
|
32
32
|
gsl_complex (*func1)(gsl_complex, gsl_complex);
|
33
|
-
|
34
|
-
int (*
|
33
|
+
// local variables "func2" iand "func3" declared and set, but never used
|
34
|
+
//int (*func2)(gsl_matrix_complex*, const gsl_matrix_complex*);
|
35
|
+
//int (*func3)(gsl_matrix_complex*, const gsl_complex);
|
35
36
|
int flagcm = 0;
|
36
37
|
switch (flag) {
|
37
38
|
case GSL_COMPLEX_ADD:
|
38
39
|
func1 = gsl_complex_add;
|
39
|
-
func2 = gsl_matrix_complex_add;
|
40
|
-
func3 = gsl_matrix_complex_add_constant;
|
40
|
+
//func2 = gsl_matrix_complex_add;
|
41
|
+
//func3 = gsl_matrix_complex_add_constant;
|
41
42
|
break;
|
42
43
|
case GSL_COMPLEX_SUB:
|
43
44
|
func1 = gsl_complex_sub;
|
44
|
-
func2 = gsl_matrix_complex_sub;
|
45
|
-
func3 = gsl_matrix_complex_add_constant;
|
45
|
+
//func2 = gsl_matrix_complex_sub;
|
46
|
+
//func3 = gsl_matrix_complex_add_constant;
|
46
47
|
break;
|
47
48
|
case GSL_COMPLEX_MUL:
|
48
49
|
func1 = gsl_complex_mul;
|
49
|
-
func2 = gsl_matrix_complex_mul_elements;
|
50
|
-
func3 = gsl_matrix_complex_scale;
|
50
|
+
//func2 = gsl_matrix_complex_mul_elements;
|
51
|
+
//func3 = gsl_matrix_complex_scale;
|
51
52
|
break;
|
52
53
|
case GSL_COMPLEX_DIV:
|
53
54
|
func1 = gsl_complex_div;
|
54
|
-
func2 = gsl_matrix_complex_div_elements;
|
55
|
-
func3 = gsl_matrix_complex_scale;
|
55
|
+
//func2 = gsl_matrix_complex_div_elements;
|
56
|
+
//func3 = gsl_matrix_complex_scale;
|
56
57
|
break;
|
57
58
|
default:
|
58
59
|
rb_raise(rb_eRuntimeError, "undefined operation");
|
data/ext/blas1.c
CHANGED
@@ -116,32 +116,35 @@ static int get_vector_complex2(int argc, VALUE *argv, VALUE obj,
|
|
116
116
|
static VALUE rb_gsl_blas_ddot(int argc, VALUE *argv, VALUE obj)
|
117
117
|
{
|
118
118
|
double r;
|
119
|
-
|
119
|
+
// local variable "status" declared and set, but never used
|
120
|
+
//int status;
|
120
121
|
gsl_vector *x = NULL, *y = NULL;
|
121
122
|
get_vector2(argc, argv, obj, &x, &y);
|
122
|
-
status
|
123
|
+
/*status =*/ gsl_blas_ddot(x, y, &r);
|
123
124
|
return rb_float_new(r);
|
124
125
|
}
|
125
126
|
|
126
127
|
static VALUE rb_gsl_blas_zdotu(int argc, VALUE *argv, VALUE obj)
|
127
128
|
{
|
128
129
|
gsl_complex *r;
|
129
|
-
|
130
|
+
// local variable "status" declared and set, but never used
|
131
|
+
//int status;
|
130
132
|
gsl_vector_complex *x = NULL, *y = NULL;
|
131
133
|
get_vector_complex2(argc, argv, obj, &x, &y);
|
132
134
|
r = ALLOC(gsl_complex);
|
133
|
-
status
|
135
|
+
/*status =*/ gsl_blas_zdotu(x, y, r);
|
134
136
|
return Data_Wrap_Struct(cgsl_complex, 0, free, r);
|
135
137
|
}
|
136
138
|
|
137
139
|
static VALUE rb_gsl_blas_zdotc(int argc, VALUE *argv, VALUE obj)
|
138
140
|
{
|
139
141
|
gsl_complex *r;
|
140
|
-
|
142
|
+
// local variable "status" declared and set, but never used
|
143
|
+
//int status;
|
141
144
|
gsl_vector_complex *x = NULL, *y = NULL;
|
142
145
|
get_vector_complex2(argc, argv, obj, &x, &y);
|
143
146
|
r = ALLOC(gsl_complex);
|
144
|
-
status
|
147
|
+
/*status =*/ gsl_blas_zdotc(x, y, r);
|
145
148
|
return Data_Wrap_Struct(cgsl_complex, 0, free, r);
|
146
149
|
}
|
147
150
|
|
data/ext/block_source.c
CHANGED
@@ -547,7 +547,8 @@ static VALUE FUNCTION(rb_gsl_block,compare)(VALUE aa, VALUE bb,
|
|
547
547
|
GSL_TYPE(gsl_block) *a, *b;
|
548
548
|
/* gsl_block_int *c;*/
|
549
549
|
gsl_block_uchar *c;
|
550
|
-
|
550
|
+
// local variable "status" declared and set, but never used
|
551
|
+
//int status;
|
551
552
|
Data_Get_Struct(aa, GSL_TYPE(gsl_block), a);
|
552
553
|
c = gsl_block_uchar_alloc(a->size);
|
553
554
|
if (BL_P(bb)) {
|
@@ -555,9 +556,9 @@ static VALUE FUNCTION(rb_gsl_block,compare)(VALUE aa, VALUE bb,
|
|
555
556
|
if (a->size != b->size)
|
556
557
|
rb_raise(rb_eRuntimeError, "Block size mismatch, %d and %d", (int) a->size,
|
557
558
|
(int) b->size);
|
558
|
-
status
|
559
|
+
/*status =*/ (*cmp)(a, b, c);
|
559
560
|
} else {
|
560
|
-
status
|
561
|
+
/*status =*/ (*cmp2)(a, NUMCONV(bb), c);
|
561
562
|
}
|
562
563
|
return Data_Wrap_Struct(cgsl_block_uchar, 0, gsl_block_uchar_free, c);
|
563
564
|
}
|
data/ext/dirac.c
CHANGED
@@ -33,9 +33,6 @@ static VALUE rb_dirac_commute(VALUE obj, VALUE mm1, VALUE mm2)
|
|
33
33
|
{
|
34
34
|
gsl_matrix_complex *m1, *m2;
|
35
35
|
gsl_matrix_complex *mnew1, *mnew2;
|
36
|
-
gsl_complex z, z2;
|
37
|
-
z.dat[0] = 1; z.dat[1] = 0;
|
38
|
-
z2.dat[0] = 0; z2.dat[1] = 0;
|
39
36
|
CHECK_MATRIX_COMPLEX(mm1);
|
40
37
|
CHECK_MATRIX_COMPLEX(mm2);
|
41
38
|
Data_Get_Struct(mm1, gsl_matrix_complex, m1);
|
@@ -54,9 +51,6 @@ static VALUE rb_dirac_anticommute(VALUE obj, VALUE mm1, VALUE mm2)
|
|
54
51
|
{
|
55
52
|
gsl_matrix_complex *m1, *m2;
|
56
53
|
gsl_matrix_complex *mnew1, *mnew2;
|
57
|
-
gsl_complex z, z2;
|
58
|
-
z.dat[0] = 1; z.dat[1] = 0;
|
59
|
-
z2.dat[0] = 0; z2.dat[1] = 0;
|
60
54
|
CHECK_MATRIX_COMPLEX(mm1);
|
61
55
|
CHECK_MATRIX_COMPLEX(mm2);
|
62
56
|
Data_Get_Struct(mm1, gsl_matrix_complex, m1);
|
data/ext/error.c
CHANGED
@@ -38,12 +38,11 @@ static void rb_gsl_my_error_handler(const char *reason, const char *file,
|
|
38
38
|
{
|
39
39
|
VALUE vreason, vfile;
|
40
40
|
VALUE vline, verrno;
|
41
|
-
VALUE result;
|
42
41
|
vreason = rb_str_new2(reason);
|
43
42
|
vfile = rb_str_new2(file);
|
44
43
|
vline = INT2FIX(line);
|
45
44
|
verrno = INT2FIX(gsl_errno);
|
46
|
-
|
45
|
+
rb_funcall(eHandler, RBGSL_ID_call, 4, vreason, vfile, vline, verrno);
|
47
46
|
}
|
48
47
|
|
49
48
|
static VALUE rb_gsl_set_error_handler(int argc, VALUE *argv, VALUE module)
|
data/ext/extconf.rb
CHANGED
@@ -126,14 +126,19 @@ def check_version(configfile)
|
|
126
126
|
|
127
127
|
if ver >= "1.14"
|
128
128
|
configfile.printf("#ifndef GSL_1_14_LATER\n#define GSL_1_14_LATER\n#endif\n")
|
129
|
-
end
|
130
|
-
|
129
|
+
end
|
130
|
+
|
131
|
+
if ver >= "1.15"
|
132
|
+
configfile.printf("#ifndef GSL_1_15_LATER\n#define GSL_1_15_LATER\n#endif\n")
|
133
|
+
end
|
134
|
+
|
131
135
|
end
|
132
136
|
end
|
133
137
|
|
134
138
|
#####
|
135
139
|
|
136
|
-
$CFLAGS
|
140
|
+
$CFLAGS ||= ''
|
141
|
+
$CFLAGS += " -Wall -I../include "
|
137
142
|
|
138
143
|
begin
|
139
144
|
RB_GSL_CONFIG = File.open("../include/rb_gsl_config.h", "w")
|
@@ -242,7 +247,7 @@ narray_config = dir_config('narray',$sitearchdir,$sitearchdir)
|
|
242
247
|
# Try to find narray with RubyGems
|
243
248
|
begin
|
244
249
|
require 'rubygems'
|
245
|
-
na_gemspec=Gem.
|
250
|
+
na_gemspec=Gem::Specification.find_by_path('narray.h')
|
246
251
|
if na_gemspec
|
247
252
|
narray_config = File.join(na_gemspec.full_gem_path, na_gemspec.require_path)
|
248
253
|
$CPPFLAGS = " -I#{narray_config} "+$CPPFLAGS
|
data/ext/fft.c
CHANGED
@@ -463,7 +463,9 @@ static VALUE rb_fft_complex_trans(int argc, VALUE *argv, VALUE obj,
|
|
463
463
|
gsl_fft_complex_workspace *),
|
464
464
|
int sss)
|
465
465
|
{
|
466
|
-
int flag = 0
|
466
|
+
int flag = 0;
|
467
|
+
// local variable "status" was defined and set, but never used
|
468
|
+
//int status;
|
467
469
|
size_t stride, n;
|
468
470
|
gsl_complex_packed_array data;
|
469
471
|
gsl_vector_complex *vin, *vout;
|
@@ -473,11 +475,11 @@ static VALUE rb_fft_complex_trans(int argc, VALUE *argv, VALUE obj,
|
|
473
475
|
if (sss == RB_GSL_FFT_COPY) {
|
474
476
|
vout = gsl_vector_complex_alloc(n);
|
475
477
|
gsl_vector_complex_memcpy(vout, vin);
|
476
|
-
status
|
478
|
+
/*status =*/ (*transform)(vout->data, vout->stride /*1*/, vout->size /*n*/, table, space);
|
477
479
|
gsl_fft_free(flag, (GSL_FFT_Wavetable *) table, (GSL_FFT_Workspace *) space);
|
478
480
|
return Data_Wrap_Struct(cgsl_vector_complex, 0, gsl_vector_complex_free, vout);
|
479
481
|
} else { /* in-place */
|
480
|
-
status
|
482
|
+
/*status =*/ (*transform)(data, stride, n, table, space);
|
481
483
|
gsl_fft_free(flag, (GSL_FFT_Wavetable *) table, (GSL_FFT_Workspace *) space);
|
482
484
|
return obj;
|
483
485
|
}
|
@@ -497,7 +499,9 @@ static VALUE rb_gsl_fft_complex_forward2(int argc, VALUE *argv, VALUE obj)
|
|
497
499
|
|
498
500
|
static VALUE rb_gsl_fft_complex_transform(int argc, VALUE *argv, VALUE obj)
|
499
501
|
{
|
500
|
-
int flag = 0
|
502
|
+
int flag = 0;
|
503
|
+
// local variable "status" was defined and set, but never used
|
504
|
+
//int status;
|
501
505
|
size_t stride, n;
|
502
506
|
gsl_vector_complex *vin, *vout;
|
503
507
|
gsl_fft_direction sign;
|
@@ -509,7 +513,7 @@ static VALUE rb_gsl_fft_complex_transform(int argc, VALUE *argv, VALUE obj)
|
|
509
513
|
flag = gsl_fft_get_argv_complex(argc-1, argv, obj, &vin, &data, &stride, &n, &table, &space);
|
510
514
|
vout = gsl_vector_complex_alloc(n);
|
511
515
|
gsl_vector_complex_memcpy(vout, vin);
|
512
|
-
status
|
516
|
+
/*status =*/ gsl_fft_complex_transform(vout->data, stride, n, table, space, sign);
|
513
517
|
gsl_fft_free(flag, (GSL_FFT_Wavetable *) table, (GSL_FFT_Workspace *) space);
|
514
518
|
return Data_Wrap_Struct(cgsl_vector_complex, 0, gsl_vector_complex_free, vout);
|
515
519
|
}
|
@@ -517,7 +521,9 @@ static VALUE rb_gsl_fft_complex_transform(int argc, VALUE *argv, VALUE obj)
|
|
517
521
|
/* in-place */
|
518
522
|
static VALUE rb_gsl_fft_complex_transform2(int argc, VALUE *argv, VALUE obj)
|
519
523
|
{
|
520
|
-
int flag = 0
|
524
|
+
int flag = 0;
|
525
|
+
// local variable "status" was defined and set, but never used
|
526
|
+
//int status;
|
521
527
|
size_t stride, n;
|
522
528
|
gsl_fft_direction sign;
|
523
529
|
gsl_complex_packed_array data;
|
@@ -526,7 +532,7 @@ static VALUE rb_gsl_fft_complex_transform2(int argc, VALUE *argv, VALUE obj)
|
|
526
532
|
CHECK_FIXNUM(argv[argc-1]);
|
527
533
|
sign = FIX2INT(argv[argc-1]);
|
528
534
|
flag = gsl_fft_get_argv_complex(argc-1, argv, obj, NULL, &data, &stride, &n, &table, &space);
|
529
|
-
status
|
535
|
+
/*status =*/ gsl_fft_complex_transform(data, stride, n, table, space, sign);
|
530
536
|
gsl_fft_free(flag, (GSL_FFT_Wavetable *) table, (GSL_FFT_Workspace *) space);
|
531
537
|
return obj;
|
532
538
|
}
|
@@ -666,7 +672,9 @@ static VALUE rb_fft_real_trans(int argc, VALUE *argv, VALUE obj,
|
|
666
672
|
gsl_fft_real_workspace *),
|
667
673
|
int sss)
|
668
674
|
{
|
669
|
-
int flag = 0,
|
675
|
+
int flag = 0, naflag = 0;
|
676
|
+
// local variable "status" was defined and set, but never used
|
677
|
+
//int status;
|
670
678
|
size_t stride, n;
|
671
679
|
gsl_vector *vnew;
|
672
680
|
gsl_vector_view vv;
|
@@ -708,9 +716,9 @@ static VALUE rb_fft_real_trans(int argc, VALUE *argv, VALUE obj,
|
|
708
716
|
} else {
|
709
717
|
rb_raise(rb_eRuntimeError, "something wrong");
|
710
718
|
}
|
711
|
-
status
|
719
|
+
/*status =*/ (*trans)(ptr2, stride, n, table, space);
|
712
720
|
gsl_fft_free(flag, (GSL_FFT_Wavetable *) table, (GSL_FFT_Workspace *) space);
|
713
|
-
return ary;
|
721
|
+
return ary;
|
714
722
|
}
|
715
723
|
|
716
724
|
static VALUE rb_gsl_fft_real_transform(int argc, VALUE *argv, VALUE obj)
|
@@ -730,7 +738,9 @@ static VALUE rb_fft_halfcomplex_trans(int argc, VALUE *argv, VALUE obj,
|
|
730
738
|
const gsl_fft_halfcomplex_wavetable *, gsl_fft_real_workspace *),
|
731
739
|
int sss)
|
732
740
|
{
|
733
|
-
int flag = 0,
|
741
|
+
int flag = 0, naflag = 0;
|
742
|
+
// local variable "status" was defined and set, but never used
|
743
|
+
//int status;
|
734
744
|
size_t stride, n;
|
735
745
|
gsl_vector *vnew;
|
736
746
|
gsl_vector_view vv;
|
@@ -773,7 +783,7 @@ static VALUE rb_fft_halfcomplex_trans(int argc, VALUE *argv, VALUE obj,
|
|
773
783
|
} else {
|
774
784
|
rb_raise(rb_eRuntimeError, "something wrong");
|
775
785
|
}
|
776
|
-
status
|
786
|
+
/*status =*/ (*trans)(ptr2, stride, n, table, space);
|
777
787
|
gsl_fft_free(flag, (GSL_FFT_Wavetable *) table, (GSL_FFT_Workspace *) space);
|
778
788
|
return ary;
|
779
789
|
}
|
data/ext/function.c
CHANGED
@@ -485,13 +485,13 @@ static void rb_gsl_function_fdf_fdf(double x, void *p, double *f, double *df)
|
|
485
485
|
|
486
486
|
void Init_gsl_function(VALUE module)
|
487
487
|
{
|
488
|
-
VALUE cgsl_function_fdf2;
|
489
488
|
RBGSL_ID_call = rb_intern("call");
|
490
489
|
RBGSL_ID_arity = rb_intern("arity");
|
491
490
|
|
492
491
|
cgsl_function = rb_define_class_under(module, "Function", cGSL_Object);
|
493
492
|
cgsl_function_fdf = rb_define_class_under(module, "Function_fdf", cGSL_Object);
|
494
|
-
|
493
|
+
// This Fdf class seems superfluous. Should probably be deleted?
|
494
|
+
rb_define_class_under(cgsl_function_fdf, "Fdf", cgsl_function_fdf);
|
495
495
|
|
496
496
|
/* rb_define_singleton_method(cgsl_function, "new", rb_gsl_function_new, -1);*/
|
497
497
|
rb_define_singleton_method(cgsl_function, "alloc", rb_gsl_function_alloc, -1);
|
data/ext/graph.c
CHANGED
@@ -971,6 +971,7 @@ static VALUE rb_gsl_graph_O(VALUE obj)
|
|
971
971
|
return g->O;
|
972
972
|
}
|
973
973
|
|
974
|
+
#ifdef HAVE_GNU_GRAPH
|
974
975
|
static void gsl_graph_set_command(gsl_graph *g, char *command)
|
975
976
|
{
|
976
977
|
char str[256];
|
@@ -1200,6 +1201,7 @@ static void gsl_graph_set_command(gsl_graph *g, char *command)
|
|
1200
1201
|
if (g->O == Qtrue)
|
1201
1202
|
sprintf(command, "%s -O", command);
|
1202
1203
|
}
|
1204
|
+
#endif
|
1203
1205
|
|
1204
1206
|
static VALUE rb_gsl_graph_graph(int argc, VALUE *argv, VALUE obj)
|
1205
1207
|
{
|
data/ext/gsl_narray.c
CHANGED
@@ -31,8 +31,6 @@ static VALUE rb_gsl_vector_to_narray(VALUE obj, VALUE klass)
|
|
31
31
|
memcpy(NA_PTR_TYPE(nary,double*), v->data, shape[0]*sizeof(double));
|
32
32
|
} else {
|
33
33
|
int i;
|
34
|
-
struct NARRAY *na;
|
35
|
-
GetNArray(nary, na);
|
36
34
|
for(i=0; i < v->size; i++) {
|
37
35
|
(NA_PTR_TYPE(nary,double*))[i] = gsl_vector_get(v, i);
|
38
36
|
}
|
@@ -52,8 +50,6 @@ static VALUE rb_gsl_vector_complex_to_narray(VALUE obj, VALUE klass)
|
|
52
50
|
memcpy(NA_PTR_TYPE(nary,double*), v->data, shape[0]*2*sizeof(double));
|
53
51
|
} else {
|
54
52
|
int i;
|
55
|
-
struct NARRAY *na;
|
56
|
-
GetNArray(nary, na);
|
57
53
|
for(i=0; i < 2*v->size; i++) {
|
58
54
|
(NA_PTR_TYPE(nary,gsl_complex*))[i] = gsl_vector_complex_get(v, i);
|
59
55
|
}
|
@@ -174,8 +170,6 @@ static VALUE rb_gsl_vector_int_to_narray(VALUE obj, VALUE klass)
|
|
174
170
|
memcpy(NA_PTR_TYPE(nary,int*), v->data, shape[0]*sizeof(int));
|
175
171
|
} else {
|
176
172
|
int i;
|
177
|
-
struct NARRAY *na;
|
178
|
-
GetNArray(nary, na);
|
179
173
|
for(i=0; i < v->size; i++) {
|
180
174
|
(NA_PTR_TYPE(nary,int*))[i] = gsl_vector_int_get(v, i);
|
181
175
|
}
|
@@ -244,7 +238,7 @@ static VALUE rb_gsl_na_to_gsl_vector_method(VALUE na)
|
|
244
238
|
return v;
|
245
239
|
}
|
246
240
|
|
247
|
-
|
241
|
+
VALUE rb_gsl_na_to_gsl_vector_view_method(VALUE na)
|
248
242
|
{
|
249
243
|
VALUE v;
|
250
244
|
|
data/ext/histogram.c
CHANGED
@@ -1026,7 +1026,6 @@ struct fit_histogram {
|
|
1026
1026
|
|
1027
1027
|
static VALUE rb_gsl_histogram_fit_exponential(int argc, VALUE *argv, VALUE obj)
|
1028
1028
|
{
|
1029
|
-
struct fit_histogram hh;
|
1030
1029
|
gsl_histogram *h;
|
1031
1030
|
gsl_vector *x, *lny, *w;
|
1032
1031
|
size_t binstart = 0, binend, n, p = 2, dof, i;
|
@@ -1047,9 +1046,6 @@ static VALUE rb_gsl_histogram_fit_exponential(int argc, VALUE *argv, VALUE obj)
|
|
1047
1046
|
rb_raise(rb_eArgError, "too many arguments (%d for 0 or 2)", argc);
|
1048
1047
|
break;
|
1049
1048
|
}
|
1050
|
-
hh.h = h;
|
1051
|
-
hh.binstart = binstart;
|
1052
|
-
hh.binend = binend;
|
1053
1049
|
n = binend - binstart + 1;
|
1054
1050
|
dof = n - p;
|
1055
1051
|
|
@@ -1076,7 +1072,6 @@ static VALUE rb_gsl_histogram_fit_exponential(int argc, VALUE *argv, VALUE obj)
|
|
1076
1072
|
|
1077
1073
|
static VALUE rb_gsl_histogram_fit_power(int argc, VALUE *argv, VALUE obj)
|
1078
1074
|
{
|
1079
|
-
struct fit_histogram hh;
|
1080
1075
|
gsl_histogram *h;
|
1081
1076
|
gsl_vector *lnx, *lny, *w;
|
1082
1077
|
size_t binstart = 0, binend, n, p = 2, dof, i;
|
@@ -1097,9 +1092,6 @@ static VALUE rb_gsl_histogram_fit_power(int argc, VALUE *argv, VALUE obj)
|
|
1097
1092
|
rb_raise(rb_eArgError, "too many arguments (%d for 0 or 2)", argc);
|
1098
1093
|
break;
|
1099
1094
|
}
|
1100
|
-
hh.h = h;
|
1101
|
-
hh.binstart = binstart;
|
1102
|
-
hh.binend = binend;
|
1103
1095
|
n = binend - binstart + 1;
|
1104
1096
|
dof = n - p;
|
1105
1097
|
|