gsl 1.14.5 → 1.14.6
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 +6 -0
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/ext/gsl_narray.c +192 -35
- data/include/rb_gsl_with_narray.h +2 -0
- data/rdoc/index.rdoc +1 -1
- data/rdoc/narray.rdoc +7 -3
- metadata +6 -6
data/ChangeLog
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
Thu Feb 24 10:27:08 PST 2011
|
2
|
+
* Ruby/GSL 1.14.6
|
3
|
+
* Add Vector::Complex support to NArray conversions
|
4
|
+
* Raise exception when trying to create View from NArray object of
|
5
|
+
incompatible type.
|
6
|
+
|
1
7
|
Sun Nov 14 17:01:07 PST 2010
|
2
8
|
* Ruby/GSL 1.14.5
|
3
9
|
* Convert docs from rdtool to rdoc
|
data/Rakefile
CHANGED
@@ -8,8 +8,8 @@ spec = Gem::Specification.new do |s|
|
|
8
8
|
# Basics
|
9
9
|
s.name = 'gsl'
|
10
10
|
s.version = RB_GSL_VERSION
|
11
|
-
s.summary = 'Ruby interface to
|
12
|
-
s.description = '
|
11
|
+
s.summary = 'Ruby interface to GNU Scientific Library'
|
12
|
+
s.description = 'Ruby/GSL is a Ruby interface to the GNU Scientific Library, for numerical computing with Ruby'
|
13
13
|
#s.platform = Gem::Platform::Ruby
|
14
14
|
s.required_ruby_version = '>= 1.8.1'
|
15
15
|
s.requirements << 'GSL (http://www.gnu.org/software/gsl/)'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.14.
|
1
|
+
1.14.6
|
data/ext/gsl_narray.c
CHANGED
@@ -18,6 +18,7 @@ static VALUE rb_gsl_vector_int_to_na(VALUE obj);
|
|
18
18
|
static VALUE rb_gsl_na_to_gsl_vector_int(VALUE obj, VALUE na);
|
19
19
|
|
20
20
|
/* GSL::Vector -> NArray */
|
21
|
+
|
21
22
|
static VALUE rb_gsl_vector_to_narray(VALUE obj, VALUE klass)
|
22
23
|
{
|
23
24
|
gsl_vector *v = NULL;
|
@@ -39,9 +40,45 @@ static VALUE rb_gsl_vector_to_narray(VALUE obj, VALUE klass)
|
|
39
40
|
return nary;
|
40
41
|
}
|
41
42
|
|
43
|
+
static VALUE rb_gsl_vector_complex_to_narray(VALUE obj, VALUE klass)
|
44
|
+
{
|
45
|
+
gsl_vector_complex *v = NULL;
|
46
|
+
VALUE nary;
|
47
|
+
int shape[1];
|
48
|
+
Data_Get_Struct(obj, gsl_vector_complex, v);
|
49
|
+
shape[0] = v->size;
|
50
|
+
nary = na_make_object(NA_DCOMPLEX, 1, shape, klass);
|
51
|
+
if (v->stride == 1) {
|
52
|
+
memcpy(NA_PTR_TYPE(nary,double*), v->data, shape[0]*2*sizeof(double));
|
53
|
+
} else {
|
54
|
+
int i;
|
55
|
+
struct NARRAY *na;
|
56
|
+
GetNArray(nary, na);
|
57
|
+
for(i=0; i < 2*v->size; i++) {
|
58
|
+
(NA_PTR_TYPE(nary,gsl_complex*))[i] = gsl_vector_complex_get(v, i);
|
59
|
+
}
|
60
|
+
}
|
61
|
+
return nary;
|
62
|
+
}
|
63
|
+
|
42
64
|
static VALUE rb_gsl_vector_to_na(VALUE obj)
|
43
65
|
{
|
44
|
-
|
66
|
+
VALUE na = Qnil;
|
67
|
+
|
68
|
+
if(VECTOR_P(obj))
|
69
|
+
na = rb_gsl_vector_to_narray(obj, cNArray);
|
70
|
+
else if(VECTOR_COMPLEX_P(obj))
|
71
|
+
na = rb_gsl_vector_complex_to_narray(obj, cNArray);
|
72
|
+
else
|
73
|
+
rb_raise(rb_eRuntimeError, "unexpected type '%s'",
|
74
|
+
rb_obj_classname(obj));
|
75
|
+
|
76
|
+
return na;
|
77
|
+
}
|
78
|
+
|
79
|
+
static VALUE rb_gsl_vector_complex_to_na(VALUE obj)
|
80
|
+
{
|
81
|
+
return rb_gsl_vector_complex_to_narray(obj, cNArray);
|
45
82
|
}
|
46
83
|
|
47
84
|
static VALUE rb_gsl_vector_to_nvector(VALUE obj)
|
@@ -49,6 +86,13 @@ static VALUE rb_gsl_vector_to_nvector(VALUE obj)
|
|
49
86
|
return rb_gsl_vector_to_narray(obj, cNVector);
|
50
87
|
}
|
51
88
|
|
89
|
+
static VALUE rb_gsl_vector_complex_to_nvector(VALUE obj)
|
90
|
+
{
|
91
|
+
return rb_gsl_vector_complex_to_narray(obj, cNVector);
|
92
|
+
}
|
93
|
+
|
94
|
+
/* GSL::Vector -> NArray view */
|
95
|
+
|
52
96
|
static struct NARRAY* rb_gsl_na_view_alloc(int rank, int total, int type)
|
53
97
|
{
|
54
98
|
struct NARRAY *na;
|
@@ -56,6 +100,8 @@ static struct NARRAY* rb_gsl_na_view_alloc(int rank, int total, int type)
|
|
56
100
|
na->rank = rank;
|
57
101
|
na->total = total;
|
58
102
|
na->type = type;
|
103
|
+
// TODO Set na->ref to a one element NArray of type NAObject that contains
|
104
|
+
// the GSL::Vector being referenced.
|
59
105
|
na->ref = Qtrue; /* to initialize */
|
60
106
|
na->shape = (int *) malloc(sizeof(int)*rank);
|
61
107
|
return na;
|
@@ -70,6 +116,7 @@ static void rb_gsl_na_view_free(struct NARRAY *na)
|
|
70
116
|
static VALUE rb_gsl_vector_to_narray_ref(VALUE obj, VALUE klass)
|
71
117
|
{
|
72
118
|
gsl_vector *v = NULL;
|
119
|
+
gsl_vector_complex *vc = NULL;
|
73
120
|
gsl_vector_int *vi = NULL;
|
74
121
|
VALUE nary;
|
75
122
|
struct NARRAY *na;
|
@@ -89,8 +136,17 @@ static VALUE rb_gsl_vector_to_narray_ref(VALUE obj, VALUE klass)
|
|
89
136
|
na = rb_gsl_na_view_alloc(1, vi->size, NA_LINT);
|
90
137
|
na->shape[0] = vi->size;
|
91
138
|
na->ptr = (char *) vi->data;
|
139
|
+
} else if (VECTOR_COMPLEX_P(obj)) {
|
140
|
+
Data_Get_Struct(obj, gsl_vector_complex, vc);
|
141
|
+
if (vc->stride != 1) {
|
142
|
+
rb_raise(rb_eRuntimeError, "Cannot make a reference obj: stride!=1");
|
143
|
+
}
|
144
|
+
na = rb_gsl_na_view_alloc(1, vc->size, NA_DCOMPLEX);
|
145
|
+
na->shape[0] = vc->size;
|
146
|
+
na->ptr = (char *) vc->data;
|
92
147
|
} else {
|
93
|
-
rb_raise(rb_eRuntimeError, "
|
148
|
+
rb_raise(rb_eRuntimeError, "cannot convert %s to NArray reference object",
|
149
|
+
rb_obj_classname(obj));
|
94
150
|
}
|
95
151
|
nary = Data_Wrap_Struct(klass, 0, rb_gsl_na_view_free, na);
|
96
152
|
return nary;
|
@@ -141,68 +197,129 @@ static VALUE rb_gsl_vector_int_to_nvector(VALUE obj)
|
|
141
197
|
static VALUE rb_gsl_na_to_gsl_vector(VALUE obj, VALUE na)
|
142
198
|
{
|
143
199
|
return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free,
|
144
|
-
|
200
|
+
na_to_gv(na));
|
145
201
|
}
|
146
202
|
|
147
203
|
static VALUE rb_gsl_na_to_gsl_vector_view(VALUE obj, VALUE na)
|
148
204
|
{
|
149
205
|
return Data_Wrap_Struct(cgsl_vector_view, 0, gsl_vector_view_free,
|
150
|
-
|
206
|
+
na_to_gv_view(na));
|
207
|
+
}
|
208
|
+
|
209
|
+
static VALUE rb_gsl_na_to_gsl_vector_complex(VALUE obj, VALUE na)
|
210
|
+
{
|
211
|
+
return Data_Wrap_Struct(cgsl_vector_complex, 0, gsl_vector_complex_free,
|
212
|
+
na_to_gv_complex(na));
|
213
|
+
}
|
214
|
+
|
215
|
+
static VALUE rb_gsl_na_to_gsl_vector_complex_view(VALUE obj, VALUE na)
|
216
|
+
{
|
217
|
+
return Data_Wrap_Struct(cgsl_vector_complex_view, 0, gsl_vector_complex_view_free,
|
218
|
+
na_to_gv_complex_view(na));
|
151
219
|
}
|
152
220
|
|
153
221
|
static VALUE rb_gsl_na_to_gsl_vector_int(VALUE obj, VALUE na)
|
154
222
|
{
|
155
223
|
return Data_Wrap_Struct(cgsl_vector_int, 0, gsl_vector_int_free,
|
156
|
-
|
224
|
+
na_to_gv_int(na));
|
157
225
|
}
|
158
226
|
|
159
227
|
static VALUE rb_gsl_na_to_gsl_vector_int_view(VALUE obj, VALUE na)
|
160
228
|
{
|
161
229
|
return Data_Wrap_Struct(cgsl_vector_int_view, 0, rb_gsl_vector_int_view_free,
|
162
|
-
|
230
|
+
na_to_gv_int_view(na));
|
163
231
|
}
|
164
232
|
|
165
233
|
static VALUE rb_gsl_na_to_gsl_vector_method(VALUE na)
|
166
234
|
{
|
167
|
-
|
168
|
-
|
235
|
+
VALUE v;
|
236
|
+
|
237
|
+
if(NA_TYPE(na) == NA_SCOMPLEX || NA_TYPE(na) == NA_DCOMPLEX)
|
238
|
+
v = Data_Wrap_Struct(cgsl_vector_complex, 0, gsl_vector_complex_free,
|
239
|
+
na_to_gv_complex(na));
|
240
|
+
else
|
241
|
+
v = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free,
|
242
|
+
na_to_gv(na));
|
243
|
+
|
244
|
+
return v;
|
169
245
|
}
|
170
246
|
|
171
247
|
static VALUE rb_gsl_na_to_gsl_vector_view_method(VALUE na)
|
172
248
|
{
|
173
|
-
|
174
|
-
|
249
|
+
VALUE v;
|
250
|
+
|
251
|
+
if(NA_TYPE(na) == NA_SCOMPLEX || NA_TYPE(na) == NA_DCOMPLEX)
|
252
|
+
v = Data_Wrap_Struct(cgsl_vector_complex_view, 0, gsl_vector_complex_view_free,
|
253
|
+
na_to_gv_complex_view(na));
|
254
|
+
else
|
255
|
+
v = Data_Wrap_Struct(cgsl_vector_view, 0, gsl_vector_view_free,
|
256
|
+
na_to_gv_view(na));
|
257
|
+
|
258
|
+
return v;
|
175
259
|
}
|
176
260
|
|
177
261
|
static VALUE rb_gsl_na_to_gsl_vector_int_method(VALUE na)
|
178
262
|
{
|
179
263
|
return Data_Wrap_Struct(cgsl_vector_int, 0, gsl_vector_int_free,
|
180
|
-
|
264
|
+
na_to_gv_int(na));
|
181
265
|
}
|
182
266
|
|
183
267
|
static VALUE rb_gsl_na_to_gsl_vector_int_view_method(VALUE na)
|
184
268
|
{
|
185
269
|
return Data_Wrap_Struct(cgsl_vector_int_view, 0, rb_gsl_vector_int_view_free,
|
186
|
-
|
270
|
+
na_to_gv_int_view(na));
|
187
271
|
}
|
188
272
|
|
189
273
|
gsl_vector* na_to_gv(VALUE na)
|
190
274
|
{
|
191
275
|
gsl_vector *v = NULL;
|
192
|
-
VALUE nary;
|
276
|
+
VALUE nary = na;
|
193
277
|
v = gsl_vector_alloc(NA_TOTAL(na));
|
194
|
-
|
195
|
-
|
278
|
+
if(NA_TYPE(na) != NA_DFLOAT) {
|
279
|
+
nary = na_change_type(na, NA_DFLOAT);
|
280
|
+
}
|
281
|
+
memcpy(v->data, NA_PTR_TYPE(na,double*), v->size*sizeof(double));
|
196
282
|
return v;
|
197
283
|
}
|
198
284
|
|
199
285
|
gsl_vector_view* na_to_gv_view(VALUE na)
|
200
286
|
{
|
201
287
|
gsl_vector_view *v = NULL;
|
202
|
-
|
288
|
+
|
289
|
+
// Raise exception if na's type is not NA_DFLOAT.
|
290
|
+
if(NA_TYPE(na) != NA_DFLOAT)
|
291
|
+
rb_raise(rb_eTypeError, "GSL::Vector::View requires NArray be DFLOAT");
|
292
|
+
|
203
293
|
v = gsl_vector_view_alloc();
|
204
|
-
|
205
|
-
v->vector.
|
294
|
+
v->vector.data = NA_PTR_TYPE(na,double*);
|
295
|
+
v->vector.size = NA_TOTAL(na);
|
296
|
+
v->vector.stride = 1;
|
297
|
+
v->vector.owner = 0;
|
298
|
+
return v;
|
299
|
+
}
|
300
|
+
|
301
|
+
gsl_vector_complex* na_to_gv_complex(VALUE na)
|
302
|
+
{
|
303
|
+
gsl_vector_complex *v = NULL;
|
304
|
+
VALUE nary = na;
|
305
|
+
v = gsl_vector_complex_alloc(NA_TOTAL(na));
|
306
|
+
if(NA_TYPE(na) != NA_DCOMPLEX) {
|
307
|
+
nary = na_change_type(na, NA_DCOMPLEX);
|
308
|
+
}
|
309
|
+
memcpy(v->data, NA_PTR_TYPE(na,gsl_complex*), v->size*sizeof(gsl_complex));
|
310
|
+
return v;
|
311
|
+
}
|
312
|
+
|
313
|
+
gsl_vector_complex_view* na_to_gv_complex_view(VALUE na)
|
314
|
+
{
|
315
|
+
gsl_vector_complex_view *v = NULL;
|
316
|
+
|
317
|
+
// Raise exception if na's type is not NA_DCOMPLEX
|
318
|
+
if(NA_TYPE(na) != NA_DCOMPLEX)
|
319
|
+
rb_raise(rb_eTypeError, "GSL::Vector::Complex::View requires NArray be DCOMPLEX");
|
320
|
+
|
321
|
+
v = gsl_vector_complex_view_alloc();
|
322
|
+
v->vector.data = NA_PTR_TYPE(na,double*);
|
206
323
|
v->vector.size = NA_TOTAL(na);
|
207
324
|
v->vector.stride = 1;
|
208
325
|
v->vector.owner = 0;
|
@@ -212,9 +329,11 @@ gsl_vector_view* na_to_gv_view(VALUE na)
|
|
212
329
|
gsl_vector_int* na_to_gv_int(VALUE na)
|
213
330
|
{
|
214
331
|
gsl_vector_int *v = NULL;
|
215
|
-
VALUE nary;
|
332
|
+
VALUE nary = na;
|
216
333
|
v = gsl_vector_int_alloc(NA_TOTAL(na));
|
217
|
-
|
334
|
+
if(NA_TYPE(na) != NA_LINT) {
|
335
|
+
nary = na_change_type(na, NA_LINT);
|
336
|
+
}
|
218
337
|
memcpy(v->data, NA_PTR_TYPE(nary,int*), v->size*sizeof(int));
|
219
338
|
return v;
|
220
339
|
}
|
@@ -222,10 +341,12 @@ gsl_vector_int* na_to_gv_int(VALUE na)
|
|
222
341
|
gsl_vector_int_view* na_to_gv_int_view(VALUE na)
|
223
342
|
{
|
224
343
|
gsl_vector_int_view *v = NULL;
|
225
|
-
|
344
|
+
|
345
|
+
// Raise exception if na's type is not NA_LINT
|
346
|
+
if(NA_TYPE(na) != NA_LINT)
|
347
|
+
rb_raise(rb_eTypeError, "GSL::Vector::Int::View requires NArray be LINT");
|
226
348
|
v = rb_gsl_vector_int_view_alloc(NA_TOTAL(na));
|
227
|
-
|
228
|
-
v->vector.data = NA_PTR_TYPE(ary2,int*);
|
349
|
+
v->vector.data = NA_PTR_TYPE(na,int*);
|
229
350
|
v->vector.size = NA_TOTAL(na);
|
230
351
|
v->vector.stride = 1;
|
231
352
|
v->vector.owner = 0;
|
@@ -244,7 +365,7 @@ static VALUE rb_gsl_matrix_to_narray(VALUE obj, VALUE klass)
|
|
244
365
|
nary = na_make_object(NA_DFLOAT, 2, shape, klass);
|
245
366
|
for (i = 0; i < shape[1]; i++) {
|
246
367
|
memcpy(NA_PTR_TYPE(nary,double*)+(i*shape[0]), m->data+(i*m->tda),
|
247
|
-
|
368
|
+
shape[0]*sizeof(double));
|
248
369
|
}
|
249
370
|
return nary;
|
250
371
|
}
|
@@ -271,7 +392,7 @@ static VALUE rb_gsl_matrix_int_to_narray(VALUE obj, VALUE klass)
|
|
271
392
|
nary = na_make_object(NA_LINT, 2, shape, klass);
|
272
393
|
for (i = 0; i < shape[1]; i++) {
|
273
394
|
memcpy(NA_PTR_TYPE(nary,int*)+(i*shape[0]), m->data+(i*m->tda),
|
274
|
-
|
395
|
+
shape[0]*sizeof(int));
|
275
396
|
}
|
276
397
|
return nary;
|
277
398
|
}
|
@@ -414,6 +535,10 @@ gsl_matrix_view* na_to_gm_view(VALUE nna)
|
|
414
535
|
gsl_matrix_view *m = NULL;
|
415
536
|
VALUE ary2;
|
416
537
|
struct NARRAY *na = NULL;
|
538
|
+
|
539
|
+
// Raise exception if nna's type is not NA_DFLOAT
|
540
|
+
if(NA_TYPE(nna) != NA_DFLOAT)
|
541
|
+
rb_raise(rb_eTypeError, "GSL::Matrix::View requires NArray be DFLOAT");
|
417
542
|
GetNArray(nna, na);
|
418
543
|
m = gsl_matrix_view_alloc();
|
419
544
|
ary2 = na_change_type(nna, NA_DFLOAT);
|
@@ -442,6 +567,10 @@ gsl_matrix_int_view* na_to_gm_int_view(VALUE nna)
|
|
442
567
|
gsl_matrix_int_view *m = NULL;
|
443
568
|
VALUE ary2;
|
444
569
|
struct NARRAY *na = NULL;
|
570
|
+
|
571
|
+
// Raise exception if nna's type is not NA_LINT
|
572
|
+
if(NA_TYPE(nna) != NA_LINT)
|
573
|
+
rb_raise(rb_eTypeError, "GSL::Matrix::Int::View requires NArray be LINT");
|
445
574
|
GetNArray(nna, na);
|
446
575
|
m = rb_gsl_matrix_int_view_alloc(na->shape[1], na->shape[0]);
|
447
576
|
ary2 = na_change_type(nna, NA_LINT);
|
@@ -489,14 +618,14 @@ static VALUE rb_gsl_narray_histogram(int argc, VALUE *argv, VALUE obj)
|
|
489
618
|
break;
|
490
619
|
default:
|
491
620
|
if (VECTOR_P(argv[0])) {
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
621
|
+
Data_Get_Struct(argv[0], gsl_vector, ranges);
|
622
|
+
n = ranges->size - 1;
|
623
|
+
h = gsl_histogram_alloc(n);
|
624
|
+
gsl_histogram_set_ranges(h, ranges->data, ranges->size);
|
496
625
|
} else if (NA_IsNArray(argv[0])) {
|
497
|
-
|
498
|
-
|
499
|
-
|
626
|
+
ptr_range = get_vector_ptr(argv[0], &stride, &n);
|
627
|
+
h = gsl_histogram_alloc(n);
|
628
|
+
gsl_histogram_set_ranges(h, ptr_range, n);
|
500
629
|
}
|
501
630
|
break;
|
502
631
|
}
|
@@ -510,7 +639,7 @@ static VALUE rb_gsl_narray_histogram(int argc, VALUE *argv, VALUE obj)
|
|
510
639
|
break;
|
511
640
|
default:
|
512
641
|
rb_raise(rb_eTypeError, "wrong argument type %s (Array expected)",
|
513
|
-
|
642
|
+
rb_class2name(CLASS_OF(argv[1])));
|
514
643
|
break;
|
515
644
|
}
|
516
645
|
h = gsl_histogram_alloc(n);
|
@@ -556,7 +685,7 @@ void Init_gsl_narray(VALUE module)
|
|
556
685
|
rb_define_singleton_method(cgsl_vector, "to_gv_view", rb_gsl_na_to_gsl_vector_view, 1);
|
557
686
|
|
558
687
|
rb_define_singleton_method(cgsl_vector, "na_to_gslv_view", rb_gsl_na_to_gsl_vector_view, 1);
|
559
|
-
rb_define_singleton_method(cgsl_vector, "na_to_gv_view",
|
688
|
+
rb_define_singleton_method(cgsl_vector, "na_to_gv_view", rb_gsl_na_to_gsl_vector_view, 1);
|
560
689
|
|
561
690
|
rb_define_method(cNArray, "to_gv", rb_gsl_na_to_gsl_vector_method, 0);
|
562
691
|
rb_define_alias(cNArray, "to_gslv", "to_gv");
|
@@ -564,6 +693,31 @@ void Init_gsl_narray(VALUE module)
|
|
564
693
|
rb_define_alias(cNArray, "to_gslv_view", "to_gv_view");
|
565
694
|
rb_define_alias(cNArray, "to_gv2", "to_gv_view");
|
566
695
|
rb_define_alias(cNArray, "to_gv_ref", "to_gv_view");
|
696
|
+
/*****/
|
697
|
+
rb_define_method(cgsl_vector_complex, "to_na", rb_gsl_vector_complex_to_na, 0);
|
698
|
+
rb_define_alias(cgsl_vector_complex, "to_narray", "to_na");
|
699
|
+
|
700
|
+
rb_define_method(cgsl_vector_complex, "to_na2", rb_gsl_vector_to_na_ref, 0);
|
701
|
+
rb_define_alias(cgsl_vector_complex, "to_narray_ref", "to_na2");
|
702
|
+
rb_define_alias(cgsl_vector_complex, "to_na_ref", "to_na2");
|
703
|
+
|
704
|
+
rb_define_method(cgsl_vector_complex, "to_nv", rb_gsl_vector_complex_to_nvector, 0);
|
705
|
+
rb_define_alias(cgsl_vector_complex, "to_nvector", "to_nv");
|
706
|
+
|
707
|
+
rb_define_method(cgsl_vector_complex, "to_nv2", rb_gsl_vector_to_nvector_ref, 0);
|
708
|
+
rb_define_alias(cgsl_vector_complex, "to_nv_ref", "to_nv2");
|
709
|
+
rb_define_alias(cgsl_vector_complex, "to_nvector_ref", "to_nv2");
|
710
|
+
|
711
|
+
rb_define_singleton_method(cgsl_vector_complex, "to_gslv", rb_gsl_na_to_gsl_vector_complex, 1);
|
712
|
+
rb_define_singleton_method(cgsl_vector_complex, "to_gv", rb_gsl_na_to_gsl_vector_complex, 1);
|
713
|
+
rb_define_singleton_method(cgsl_vector_complex, "na_to_gslv", rb_gsl_na_to_gsl_vector_complex, 1);
|
714
|
+
rb_define_singleton_method(cgsl_vector_complex, "na_to_gv", rb_gsl_na_to_gsl_vector_complex, 1);
|
715
|
+
|
716
|
+
rb_define_singleton_method(cgsl_vector_complex, "to_gslv_view", rb_gsl_na_to_gsl_vector_complex_view, 1);
|
717
|
+
rb_define_singleton_method(cgsl_vector_complex, "to_gv_view", rb_gsl_na_to_gsl_vector_complex_view, 1);
|
718
|
+
rb_define_singleton_method(cgsl_vector_complex, "na_to_gslv_view", rb_gsl_na_to_gsl_vector_complex_view, 1);
|
719
|
+
rb_define_singleton_method(cgsl_vector_complex, "na_to_gv_view", rb_gsl_na_to_gsl_vector_complex_view, 1);
|
720
|
+
|
567
721
|
/*****/
|
568
722
|
rb_define_method(cgsl_vector_int, "to_na", rb_gsl_vector_int_to_na, 0);
|
569
723
|
rb_define_alias(cgsl_vector_int, "to_narray", "to_na");
|
@@ -584,7 +738,7 @@ void Init_gsl_narray(VALUE module)
|
|
584
738
|
rb_define_singleton_method(cgsl_vector_int, "to_gslv_view", rb_gsl_na_to_gsl_vector_int_view, 1);
|
585
739
|
rb_define_singleton_method(cgsl_vector_int, "to_gv_view", rb_gsl_na_to_gsl_vector_int_view, 1);
|
586
740
|
|
587
|
-
rb_define_singleton_method(cgsl_vector_int, "na_to_gslv_view",
|
741
|
+
rb_define_singleton_method(cgsl_vector_int, "na_to_gslv_view", rb_gsl_na_to_gsl_vector_int_view, 1);
|
588
742
|
rb_define_singleton_method(cgsl_vector_int, "na_to_gv_view", rb_gsl_na_to_gsl_vector_int_view, 1);
|
589
743
|
|
590
744
|
rb_define_method(cNArray, "to_gv_int", rb_gsl_na_to_gsl_vector_int_method, 0);
|
@@ -620,6 +774,9 @@ void Init_gsl_narray(VALUE module)
|
|
620
774
|
rb_define_method(cNArray, "to_gslm_view", rb_gsl_na_to_gsl_matrix_view_method, 0);
|
621
775
|
rb_define_alias(cNArray, "to_gm_view", "to_gslm_view");
|
622
776
|
|
777
|
+
/*****/
|
778
|
+
// TODO Complex matrix
|
779
|
+
|
623
780
|
/*****/
|
624
781
|
rb_define_method(cgsl_matrix_int, "to_na", rb_gsl_matrix_int_to_na, 0);
|
625
782
|
rb_define_alias(cgsl_matrix_int, "to_narray", "to_na");
|
data/rdoc/index.rdoc
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
# === {}[link:index.html"name="3.2] Using the setup.rb command
|
19
19
|
# If you prefer, Ruby/GSL may still be installed using setup.rb.
|
20
20
|
# 1. Get and install {GSL}[http://www.gnu.org/software/gsl/#downloading"target="_top]. Make sure the command "gsl-config" is in command search path.
|
21
|
-
# 1. {Download}[http://rubyforge.org/frs/?group_id=285"target="_top] Ruby/GSL, ungzip and untar the archive <tt>rb-gsl-xxx.
|
21
|
+
# 1. {Download}[http://rubyforge.org/frs/?group_id=285"target="_top] Ruby/GSL, ungzip and untar the archive <tt>rb-gsl-xxx.tgz</tt>.
|
22
22
|
# 1. <tt> % cd rb-gsl-xxx/</tt>
|
23
23
|
# 1. <tt> % ruby setup.rb config</tt>
|
24
24
|
# 1. <tt> % ruby setup.rb setup</tt>
|
data/rdoc/narray.rdoc
CHANGED
@@ -10,16 +10,19 @@
|
|
10
10
|
# ---
|
11
11
|
# * GSL::Vector#to_na
|
12
12
|
# * GSL::Vector#to_nvector
|
13
|
+
# * GSL::Vector::Complex#to_na
|
14
|
+
# * GSL::Vector::Complex#to_nvector
|
13
15
|
# * GSL::Matrix#to_na
|
14
16
|
# * GSL::Matrix#to_nmatrix
|
15
17
|
#
|
16
18
|
# Convert GSL objects to NArray. The data contained by the GSL objects
|
17
19
|
# are copied to a newly allocated memory block of the NArray objects created.
|
18
20
|
#
|
19
|
-
#
|
20
21
|
# ---
|
21
22
|
# * GSL::Vector#to_na_ref
|
22
23
|
# * GSL::Vector#to_nvector_ref
|
24
|
+
# * GSL::Vector::Complex#to_na_ref
|
25
|
+
# * GSL::Vector::Complex#to_nvector_ref
|
23
26
|
# * GSL::Matrix#to_na_ref
|
24
27
|
# * GSL::Matrix#to_nmatrix_ref
|
25
28
|
#
|
@@ -44,8 +47,9 @@
|
|
44
47
|
# * NArray#to_gv
|
45
48
|
# * NArray#to_gm
|
46
49
|
#
|
47
|
-
#
|
48
|
-
#
|
50
|
+
# <tt>NArray#to_gv</tt> converts NArray objects to <tt>GSL::Vector</tt> or
|
51
|
+
# <tt>GSL::Vector::Complex</tt>. <tt>NArray#to_gm</tt> converts NArray
|
52
|
+
# objects to <tt>GSL::Matrix</tt>. The data contained by the NArray objects
|
49
53
|
# are copied to a newly allocated memory block of the GSL objects created.
|
50
54
|
#
|
51
55
|
# ---
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 35
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 14
|
9
|
-
-
|
10
|
-
version: 1.14.
|
9
|
+
- 6
|
10
|
+
version: 1.14.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Yoshiki Tsunesada
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date:
|
19
|
+
date: 2011-02-24 00:00:00 -08:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -35,7 +35,7 @@ dependencies:
|
|
35
35
|
version: 0.5.9
|
36
36
|
type: :runtime
|
37
37
|
version_requirements: *id001
|
38
|
-
description:
|
38
|
+
description: Ruby/GSL is a Ruby interface to the GNU Scientific Library, for numerical computing with Ruby
|
39
39
|
email: y-tsunesada@mm.em-net.ne.jp
|
40
40
|
executables: []
|
41
41
|
|
@@ -800,6 +800,6 @@ rubyforge_project: rb-gsl
|
|
800
800
|
rubygems_version: 1.3.7
|
801
801
|
signing_key:
|
802
802
|
specification_version: 3
|
803
|
-
summary: Ruby interface to
|
803
|
+
summary: Ruby interface to GNU Scientific Library
|
804
804
|
test_files: []
|
805
805
|
|