carray 1.5.1 → 1.5.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.
- checksums.yaml +4 -4
- data/.yardopts +32 -0
- data/{LICENSES → LICENSE} +0 -0
- data/NEWS.md +83 -0
- data/README.md +34 -18
- data/Rakefile +1 -1
- data/TODO.md +17 -0
- data/carray.gemspec +10 -7
- data/ext/ca_iter_block.c +3 -5
- data/ext/ca_iter_dimension.c +4 -5
- data/ext/ca_iter_window.c +2 -4
- data/ext/ca_obj_array.c +394 -124
- data/ext/ca_obj_bitarray.c +6 -11
- data/ext/ca_obj_bitfield.c +5 -9
- data/ext/ca_obj_block.c +5 -12
- data/ext/ca_obj_fake.c +3 -5
- data/ext/ca_obj_farray.c +3 -5
- data/ext/ca_obj_field.c +15 -17
- data/ext/ca_obj_grid.c +5 -6
- data/ext/ca_obj_mapping.c +2 -4
- data/ext/ca_obj_object.c +3 -5
- data/ext/ca_obj_reduce.c +2 -4
- data/ext/ca_obj_refer.c +11 -15
- data/ext/ca_obj_repeat.c +2 -4
- data/ext/ca_obj_select.c +2 -4
- data/ext/ca_obj_shift.c +3 -5
- data/ext/ca_obj_transpose.c +3 -5
- data/ext/ca_obj_unbound_repeat.c +68 -122
- data/ext/ca_obj_window.c +7 -9
- data/ext/carray.h +17 -8
- data/ext/carray_access.c +183 -58
- data/ext/carray_attribute.c +151 -197
- data/ext/carray_call_cfunc.c +1 -3
- data/ext/carray_cast.c +345 -144
- data/ext/carray_cast_func.rb +1 -2
- data/ext/carray_class.c +28 -36
- data/ext/carray_conversion.c +56 -59
- data/ext/carray_copy.c +16 -32
- data/ext/carray_core.c +73 -60
- data/ext/carray_element.c +25 -44
- data/ext/carray_generate.c +74 -53
- data/ext/carray_iterator.c +13 -15
- data/ext/carray_loop.c +53 -82
- data/ext/carray_mask.c +99 -119
- data/ext/carray_math.rb +28 -12
- data/ext/carray_mathfunc.c +1 -3
- data/ext/carray_numeric.c +42 -45
- data/ext/carray_operator.c +45 -32
- data/ext/carray_order.c +231 -65
- data/ext/carray_sort_addr.c +14 -21
- data/ext/carray_stat.c +1 -3
- data/ext/carray_stat_proc.rb +2 -4
- data/ext/carray_test.c +41 -30
- data/ext/carray_undef.c +1 -11
- data/ext/carray_utils.c +138 -51
- data/ext/extconf.rb +14 -2
- data/ext/mkmath.rb +2 -2
- data/ext/ruby_carray.c +15 -7
- data/ext/ruby_ccomplex.c +2 -4
- data/ext/ruby_float_func.c +1 -3
- data/ext/version.h +5 -7
- data/lib/carray.rb +9 -9
- data/lib/carray/autoload.rb +0 -2
- data/lib/carray/autoload/autoload_gem_numo_narray.rb +6 -6
- data/lib/carray/basic.rb +1 -3
- data/lib/carray/broadcast.rb +101 -0
- data/lib/carray/compose.rb +34 -10
- data/lib/carray/construct.rb +57 -18
- data/lib/carray/info.rb +1 -3
- data/lib/carray/inspect.rb +3 -5
- data/lib/carray/io/imagemagick.rb +1 -3
- data/lib/carray/iterator.rb +3 -3
- data/lib/carray/mask.rb +18 -7
- data/lib/carray/math.rb +4 -6
- data/lib/carray/math/histogram.rb +1 -3
- data/lib/carray/math/recurrence.rb +1 -3
- data/lib/carray/mkmf.rb +1 -3
- data/lib/carray/object/ca_obj_iterator.rb +1 -3
- data/lib/carray/object/ca_obj_link.rb +1 -3
- data/lib/carray/object/ca_obj_pack.rb +1 -3
- data/lib/carray/obsolete.rb +1 -17
- data/lib/carray/ordering.rb +29 -5
- data/lib/carray/serialize.rb +34 -25
- data/lib/carray/string.rb +1 -3
- data/lib/carray/struct.rb +3 -5
- data/lib/carray/testing.rb +5 -10
- data/lib/carray/time.rb +1 -3
- data/lib/carray/transform.rb +12 -3
- data/misc/NOTE +16 -38
- data/spec/Classes/CABitfield_spec.rb +58 -0
- data/spec/Classes/CABlockIterator_spec.rb +114 -0
- data/spec/Classes/CABlock_spec.rb +205 -0
- data/spec/Classes/CAField_spec.rb +39 -0
- data/spec/Classes/CAGrid_spec.rb +75 -0
- data/spec/Classes/CAMap_spec.rb +0 -0
- data/{test/test_CAMapping.rb → spec/Classes/CAMapping_spec.rb} +35 -36
- data/spec/Classes/CAObject_attribute_spec.rb +33 -0
- data/spec/Classes/CAObject_spec.rb +33 -0
- data/spec/Classes/CARefer_spec.rb +93 -0
- data/spec/Classes/CARepeat_spec.rb +65 -0
- data/spec/Classes/CASelect_spec.rb +22 -0
- data/spec/Classes/CAShift_spec.rb +16 -0
- data/spec/Classes/CAStruct_spec.rb +71 -0
- data/{test/test_CATranspose.rb → spec/Classes/CATranspose_spec.rb} +20 -21
- data/spec/Classes/CAUnboudRepeat_spec.rb +102 -0
- data/spec/Classes/CAWindow_spec.rb +54 -0
- data/spec/Classes/CAWrap_spec.rb +8 -0
- data/{test/test_CArray.rb → spec/Classes/CArray_spec.rb} +48 -92
- data/spec/Classes/CScalar_spec.rb +55 -0
- data/spec/Features/feature_130_spec.rb +19 -0
- data/spec/Features/feature_attributes_spec.rb +280 -0
- data/spec/Features/feature_boolean_spec.rb +98 -0
- data/spec/Features/feature_broadcast.rb +116 -0
- data/spec/Features/feature_cast_function.rb +19 -0
- data/spec/Features/feature_cast_spec.rb +33 -0
- data/spec/Features/feature_class_spec.rb +84 -0
- data/spec/Features/feature_complex_spec.rb +42 -0
- data/{test/test_composite.rb → spec/Features/feature_composite_spec.rb} +17 -18
- data/spec/Features/feature_convert_spec.rb +46 -0
- data/spec/Features/feature_copy_spec.rb +123 -0
- data/spec/Features/feature_creation_spec.rb +84 -0
- data/spec/Features/feature_element_spec.rb +144 -0
- data/spec/Features/feature_extream_spec.rb +54 -0
- data/spec/Features/feature_generate_spec.rb +74 -0
- data/spec/Features/feature_index_spec.rb +69 -0
- data/spec/Features/feature_mask_spec.rb +580 -0
- data/spec/Features/feature_math_spec.rb +97 -0
- data/spec/Features/feature_order_spec.rb +146 -0
- data/spec/Features/feature_ref_store_spec.rb +209 -0
- data/spec/Features/feature_serialization_spec.rb +125 -0
- data/spec/Features/feature_stat_spec.rb +397 -0
- data/spec/Features/feature_virtual_spec.rb +48 -0
- data/spec/Features/method_eq_spec.rb +81 -0
- data/spec/Features/method_is_nan_spec.rb +12 -0
- data/spec/Features/method_map_spec.rb +54 -0
- data/spec/Features/method_max_with.rb +20 -0
- data/spec/Features/method_min_with.rb +19 -0
- data/spec/Features/method_ne_spec.rb +18 -0
- data/spec/Features/method_project_spec.rb +188 -0
- data/spec/Features/method_ref_spec.rb +27 -0
- data/spec/Features/method_round_spec.rb +11 -0
- data/spec/Features/method_s_linspace_spec.rb +48 -0
- data/spec/Features/method_s_span_spec.rb +14 -0
- data/spec/Features/method_seq_spec.rb +47 -0
- data/spec/Features/method_sort_with.rb +43 -0
- data/spec/Features/method_sorted_with.rb +29 -0
- data/spec/Features/method_span_spec.rb +42 -0
- data/spec/Features/method_wrap_readonly_spec.rb +43 -0
- data/{test → spec/UnitTest}/test_CAVirtual.rb +0 -0
- data/spec/spec_all.rb +0 -1
- data/utils/convert_test.rb +73 -0
- data/utils/{extract_rdoc.rb → extract_yard.rb} +7 -12
- metadata +74 -58
- data/spec/CABlockIterator/CABlockIterator_spec.rb +0 -113
- data/spec/CArray/bug/store_spec.rb +0 -27
- data/spec/CArray/index/repeat_spec.rb +0 -10
- data/spec/CArray/method/eq_spec.rb +0 -80
- data/spec/CArray/method/is_nan_spec.rb +0 -12
- data/spec/CArray/method/ne_spec.rb +0 -18
- data/spec/CArray/method/round_spec.rb +0 -11
- data/spec/CArray/object/_attribute_spec.rb +0 -32
- data/spec/CArray/object/s_new_spec.rb +0 -31
- data/spec/CArray/serialize/Serialization_spec.rb +0 -89
- data/test/test_130.rb +0 -23
- data/test/test_ALL.rb +0 -49
- data/test/test_CABitfield.rb +0 -59
- data/test/test_CABlock.rb +0 -208
- data/test/test_CAField.rb +0 -40
- data/test/test_CAGrid.rb +0 -76
- data/test/test_CAMmap.rb +0 -11
- data/test/test_CARefer.rb +0 -94
- data/test/test_CARepeat.rb +0 -66
- data/test/test_CASelect.rb +0 -23
- data/test/test_CAShift.rb +0 -17
- data/test/test_CAWindow.rb +0 -55
- data/test/test_CAWrap.rb +0 -9
- data/test/test_CComplex.rb +0 -83
- data/test/test_CScalar.rb +0 -91
- data/test/test_attribute.rb +0 -281
- data/test/test_block_iterator.rb +0 -17
- data/test/test_boolean.rb +0 -99
- data/test/test_cast.rb +0 -33
- data/test/test_class.rb +0 -85
- data/test/test_complex.rb +0 -43
- data/test/test_convert.rb +0 -79
- data/test/test_copy.rb +0 -141
- data/test/test_creation.rb +0 -85
- data/test/test_element.rb +0 -146
- data/test/test_extream.rb +0 -55
- data/test/test_generate.rb +0 -75
- data/test/test_index.rb +0 -71
- data/test/test_mask.rb +0 -578
- data/test/test_math.rb +0 -98
- data/test/test_order.rb +0 -147
- data/test/test_ref_store.rb +0 -211
- data/test/test_stat.rb +0 -406
- data/test/test_struct.rb +0 -72
- data/test/test_virtual.rb +0 -49
data/ext/carray_attribute.c
CHANGED
@@ -3,10 +3,8 @@
|
|
3
3
|
carray_attribute.c
|
4
4
|
|
5
5
|
This file is part of Ruby/CArray extension library.
|
6
|
-
You can redistribute it and/or modify it under the terms of
|
7
|
-
the Ruby Licence.
|
8
6
|
|
9
|
-
Copyright (C) 2005 Hiroki Motoyoshi
|
7
|
+
Copyright (C) 2005-2020 Hiroki Motoyoshi
|
10
8
|
|
11
9
|
---------------------------------------------------------------------------- */
|
12
10
|
|
@@ -14,14 +12,12 @@
|
|
14
12
|
|
15
13
|
/* ------------------------------------------------------------------- */
|
16
14
|
|
17
|
-
/*
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
end
|
24
|
-
end
|
15
|
+
/* @overload obj_type
|
16
|
+
|
17
|
+
(Attribute)
|
18
|
+
Returns the object type (e.g. CA_OBJ_ARRAY, CA_OBJ_BLOCK, ...).
|
19
|
+
Since the object type can be known from the class of the object,
|
20
|
+
this attribute methods is rarely used.
|
25
21
|
*/
|
26
22
|
|
27
23
|
VALUE
|
@@ -32,12 +28,10 @@ rb_ca_obj_type (VALUE self)
|
|
32
28
|
return INT2NUM(ca->obj_type);
|
33
29
|
}
|
34
30
|
|
35
|
-
/*
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
end
|
40
|
-
end
|
31
|
+
/* @overload data_type
|
32
|
+
|
33
|
+
(Attribute)
|
34
|
+
Returns the data type of each element (e.g. CA_INT32, CA_FLOAT64, ...).
|
41
35
|
*/
|
42
36
|
|
43
37
|
VALUE
|
@@ -48,15 +42,10 @@ rb_ca_data_type (VALUE self)
|
|
48
42
|
return INT2NUM(ca->data_type);
|
49
43
|
}
|
50
44
|
|
51
|
-
/*
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
end
|
56
|
-
# returns the ndim (e.g. 1 for 1D array, 3 for 3D array, ...).
|
57
|
-
def ndims
|
58
|
-
end
|
59
|
-
end
|
45
|
+
/* @overload ndim
|
46
|
+
|
47
|
+
(Attribute)
|
48
|
+
Returns the rank (e.g. 1 for 1D array, 3 for 3D array, ...).
|
60
49
|
*/
|
61
50
|
|
62
51
|
VALUE
|
@@ -67,16 +56,14 @@ rb_ca_ndim (VALUE self)
|
|
67
56
|
return INT2NUM(ca->ndim);
|
68
57
|
}
|
69
58
|
|
70
|
-
/*
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
end
|
79
|
-
end
|
59
|
+
/* @overload bytes
|
60
|
+
|
61
|
+
(Attribute)
|
62
|
+
Returns the byte size of each element (e.g. 4 for CA_INT32, 8 for CA_FLOAT64).
|
63
|
+
The byte size can be known using CArray.sizeof(data_type)
|
64
|
+
for the numerical data types, but
|
65
|
+
the byte size of fixed-length data type can be known
|
66
|
+
only by this method.
|
80
67
|
*/
|
81
68
|
|
82
69
|
VALUE
|
@@ -87,18 +74,10 @@ rb_ca_bytes (VALUE self)
|
|
87
74
|
return SIZE2NUM(ca->bytes);
|
88
75
|
}
|
89
76
|
|
90
|
-
/*
|
91
|
-
class CArray
|
92
|
-
# returns the number of elements
|
93
|
-
def elements
|
94
|
-
end
|
77
|
+
/* @overload elements
|
95
78
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
# alias of `CArray#elements`
|
100
|
-
alias size elements
|
101
|
-
end
|
79
|
+
(Attribute)
|
80
|
+
Returns the number of elements
|
102
81
|
*/
|
103
82
|
|
104
83
|
VALUE
|
@@ -109,35 +88,11 @@ rb_ca_elements (VALUE self)
|
|
109
88
|
return SIZE2NUM(ca->elements);
|
110
89
|
}
|
111
90
|
|
112
|
-
/*
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
def dim
|
118
|
-
end
|
119
|
-
|
120
|
-
# returns the Array object contains the dimensional shape of array
|
121
|
-
# (e.g. [2,3] for 2D 2x3 array, ...).
|
122
|
-
def shape
|
123
|
-
end
|
124
|
-
|
125
|
-
# short-hand for dim[0]
|
126
|
-
def dim0
|
127
|
-
end
|
128
|
-
|
129
|
-
# short-hand for dim[1]
|
130
|
-
def dim1
|
131
|
-
end
|
132
|
-
|
133
|
-
# short-hand for dim[2]
|
134
|
-
def dim2
|
135
|
-
end
|
136
|
-
|
137
|
-
# short-hand for dim[3]
|
138
|
-
def dim3
|
139
|
-
end
|
140
|
-
end
|
91
|
+
/* @overload dim
|
92
|
+
|
93
|
+
(Attribute)
|
94
|
+
Returns the Array object contains the dimensional shape of array
|
95
|
+
(e.g. [2,3] for 2D 2x3 array, ...).
|
141
96
|
*/
|
142
97
|
|
143
98
|
VALUE
|
@@ -154,6 +109,13 @@ rb_ca_dim (VALUE self)
|
|
154
109
|
return dim;
|
155
110
|
}
|
156
111
|
|
112
|
+
/*
|
113
|
+
@overload dim0
|
114
|
+
|
115
|
+
(Attribute)
|
116
|
+
Short-hand for "dim[0]"
|
117
|
+
*/
|
118
|
+
|
157
119
|
VALUE
|
158
120
|
rb_ca_dim0 (VALUE self)
|
159
121
|
{
|
@@ -162,6 +124,13 @@ rb_ca_dim0 (VALUE self)
|
|
162
124
|
return SIZE2NUM(ca->dim[0]);
|
163
125
|
}
|
164
126
|
|
127
|
+
/*
|
128
|
+
@overload dim1
|
129
|
+
|
130
|
+
(Attribute)
|
131
|
+
Short-hand for "dim[1]"
|
132
|
+
*/
|
133
|
+
|
165
134
|
VALUE
|
166
135
|
rb_ca_dim1 (VALUE self)
|
167
136
|
{
|
@@ -170,6 +139,13 @@ rb_ca_dim1 (VALUE self)
|
|
170
139
|
return ( ca->ndim >= 2 ) ? SIZE2NUM(ca->dim[1]) : Qnil;
|
171
140
|
}
|
172
141
|
|
142
|
+
/*
|
143
|
+
@overload dim2
|
144
|
+
|
145
|
+
(Attribute)
|
146
|
+
Short-hand for 'dim[2]'
|
147
|
+
*/
|
148
|
+
|
173
149
|
VALUE
|
174
150
|
rb_ca_dim2 (VALUE self)
|
175
151
|
{
|
@@ -178,6 +154,13 @@ rb_ca_dim2 (VALUE self)
|
|
178
154
|
return ( ca->ndim >= 3 ) ? SIZE2NUM(ca->dim[2]) : Qnil;
|
179
155
|
}
|
180
156
|
|
157
|
+
/*
|
158
|
+
@overload dim3
|
159
|
+
|
160
|
+
(Attribute)
|
161
|
+
Short-hand for "dim[3]"
|
162
|
+
*/
|
163
|
+
|
181
164
|
VALUE
|
182
165
|
rb_ca_dim3 (VALUE self)
|
183
166
|
{
|
@@ -186,12 +169,10 @@ rb_ca_dim3 (VALUE self)
|
|
186
169
|
return ( ca->ndim >= 4 ) ? SIZE2NUM(ca->dim[3]) : Qnil;
|
187
170
|
}
|
188
171
|
|
189
|
-
/*
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
end
|
194
|
-
end
|
172
|
+
/* @overload data_type_name
|
173
|
+
|
174
|
+
(Attribute)
|
175
|
+
Returns the string representaion of the data_type (e.g. "int32", "fixlen")
|
195
176
|
*/
|
196
177
|
|
197
178
|
VALUE
|
@@ -211,12 +192,9 @@ ca_is_scalar (void *ap)
|
|
211
192
|
return ca_test_flag(ca, CA_FLAG_SCALAR);
|
212
193
|
}
|
213
194
|
|
214
|
-
/*
|
215
|
-
|
216
|
-
|
217
|
-
def scalar?
|
218
|
-
end
|
219
|
-
end
|
195
|
+
/* @overload scalar?
|
196
|
+
|
197
|
+
(Inquiry) Returns true if the object is a CScalar
|
220
198
|
*/
|
221
199
|
|
222
200
|
VALUE
|
@@ -249,16 +227,9 @@ ca_is_virtual (void *ap)
|
|
249
227
|
return ( ca_func[ca->obj_type].entity_type == CA_VIRTUAL_ARRAY ) ? 1 : 0;
|
250
228
|
}
|
251
229
|
|
252
|
-
/*
|
253
|
-
class CArray
|
254
|
-
# returns true if `self` is an entity array (not a virtual array).
|
255
|
-
def entity?
|
256
|
-
end
|
230
|
+
/* @overload entity?
|
257
231
|
|
258
|
-
|
259
|
-
def virtual?
|
260
|
-
end
|
261
|
-
end
|
232
|
+
(Inquiry) Returns true if `self` is an entity array (not a virtual array).
|
262
233
|
*/
|
263
234
|
|
264
235
|
VALUE
|
@@ -269,6 +240,12 @@ rb_ca_is_entity (VALUE self)
|
|
269
240
|
return ( ca_is_virtual(ca) ) ? Qfalse : Qtrue;
|
270
241
|
}
|
271
242
|
|
243
|
+
/*
|
244
|
+
@overload virtual?
|
245
|
+
|
246
|
+
(Inquiry) Returns true if `self` is a virtural array (not an entity array).
|
247
|
+
*/
|
248
|
+
|
272
249
|
VALUE
|
273
250
|
rb_ca_is_virtual (VALUE self)
|
274
251
|
{
|
@@ -279,12 +256,9 @@ rb_ca_is_virtual (VALUE self)
|
|
279
256
|
|
280
257
|
/* ------------------------------------------------------------------- */
|
281
258
|
|
282
|
-
/*
|
283
|
-
|
284
|
-
|
285
|
-
def attached?
|
286
|
-
end
|
287
|
-
end
|
259
|
+
/* @overload attached?
|
260
|
+
|
261
|
+
(Inquiry) Returns true if the object is attached.
|
288
262
|
*/
|
289
263
|
|
290
264
|
VALUE
|
@@ -297,12 +271,9 @@ rb_ca_is_attached (VALUE self)
|
|
297
271
|
|
298
272
|
/* ------------------------------------------------------------------- */
|
299
273
|
|
300
|
-
/*
|
301
|
-
|
302
|
-
|
303
|
-
def empty?
|
304
|
-
end
|
305
|
-
end
|
274
|
+
/* @overload empty?
|
275
|
+
|
276
|
+
(Inquiry) Returns true if the object is empty.
|
306
277
|
*/
|
307
278
|
|
308
279
|
VALUE
|
@@ -333,12 +304,9 @@ ca_is_readonly (void *ap)
|
|
333
304
|
}
|
334
305
|
}
|
335
306
|
|
336
|
-
/*
|
337
|
-
|
338
|
-
|
339
|
-
def read_only?
|
340
|
-
end
|
341
|
-
end
|
307
|
+
/* @overload read_only?
|
308
|
+
|
309
|
+
(Inquiry) Returns true if the object is read-only
|
342
310
|
*/
|
343
311
|
|
344
312
|
VALUE
|
@@ -369,12 +337,9 @@ ca_is_mask_array (void *ap)
|
|
369
337
|
}
|
370
338
|
}
|
371
339
|
|
372
|
-
/*
|
373
|
-
|
374
|
-
|
375
|
-
def mask_array?
|
376
|
-
end
|
377
|
-
end
|
340
|
+
/* @overload mask_array?
|
341
|
+
|
342
|
+
(Inquiry) Returns true if `self` is mask array (don't confuse with "masked array")
|
378
343
|
*/
|
379
344
|
|
380
345
|
VALUE
|
@@ -405,12 +370,9 @@ ca_is_value_array (void *ap)
|
|
405
370
|
}
|
406
371
|
}
|
407
372
|
|
408
|
-
/*
|
409
|
-
|
410
|
-
|
411
|
-
def value_array?
|
412
|
-
end
|
413
|
-
end
|
373
|
+
/* @overload value_array?
|
374
|
+
|
375
|
+
(Inquiry) Returns true if `self` is a value array
|
414
376
|
*/
|
415
377
|
|
416
378
|
VALUE
|
@@ -430,12 +392,9 @@ ca_is_fixlen_type (void *ap)
|
|
430
392
|
return ( ca->data_type == CA_FIXLEN );
|
431
393
|
}
|
432
394
|
|
433
|
-
/*
|
434
|
-
|
435
|
-
|
436
|
-
def filxen?
|
437
|
-
end
|
438
|
-
end
|
395
|
+
/* @overload fixlen?
|
396
|
+
|
397
|
+
(Inquiry) Returns true if `self` is fixed-length type array
|
439
398
|
*/
|
440
399
|
|
441
400
|
VALUE
|
@@ -455,12 +414,9 @@ ca_is_boolean_type (void *ap)
|
|
455
414
|
return ( ca->data_type == CA_BOOLEAN );
|
456
415
|
}
|
457
416
|
|
458
|
-
/*
|
459
|
-
|
460
|
-
|
461
|
-
def boolean?
|
462
|
-
end
|
463
|
-
end
|
417
|
+
/* @overload boolean?
|
418
|
+
|
419
|
+
(Inquiry) Return true if `self` is boolean type array
|
464
420
|
*/
|
465
421
|
|
466
422
|
VALUE
|
@@ -481,12 +437,9 @@ ca_is_numeric_type (void *ap)
|
|
481
437
|
( ca->data_type <= CA_CMPLX256 ) );
|
482
438
|
}
|
483
439
|
|
484
|
-
/*
|
485
|
-
|
486
|
-
|
487
|
-
def numeric?
|
488
|
-
end
|
489
|
-
end
|
440
|
+
/* @overload numeric?
|
441
|
+
|
442
|
+
(Inquiry) Returns true if `self` is numeric type array
|
490
443
|
*/
|
491
444
|
|
492
445
|
VALUE
|
@@ -507,12 +460,9 @@ ca_is_integer_type (void *ap)
|
|
507
460
|
( ca->data_type <= CA_UINT64 ) );
|
508
461
|
}
|
509
462
|
|
510
|
-
/*
|
511
|
-
|
512
|
-
|
513
|
-
def integer?
|
514
|
-
end
|
515
|
-
end
|
463
|
+
/* @overload integer?
|
464
|
+
|
465
|
+
(Inquiry) Returns true if `self` is integer type array
|
516
466
|
*/
|
517
467
|
|
518
468
|
VALUE
|
@@ -540,12 +490,9 @@ ca_is_unsigned_type (void *ap)
|
|
540
490
|
}
|
541
491
|
}
|
542
492
|
|
543
|
-
/*
|
544
|
-
|
545
|
-
|
546
|
-
def unsigned?
|
547
|
-
end
|
548
|
-
end
|
493
|
+
/* @overload unsigned?
|
494
|
+
|
495
|
+
(Inquiry) Return true if `self` is unsigned integer type array
|
549
496
|
*/
|
550
497
|
|
551
498
|
VALUE
|
@@ -566,12 +513,9 @@ ca_is_float_type (void *ap)
|
|
566
513
|
( ca->data_type <= CA_FLOAT128 ) );
|
567
514
|
}
|
568
515
|
|
569
|
-
/*
|
570
|
-
|
571
|
-
|
572
|
-
def float?
|
573
|
-
end
|
574
|
-
end
|
516
|
+
/* @overload float?
|
517
|
+
|
518
|
+
(Inquiry) Returns true if `self` is float type array
|
575
519
|
*/
|
576
520
|
|
577
521
|
VALUE
|
@@ -592,12 +536,9 @@ ca_is_complex_type (void *ap)
|
|
592
536
|
( ca->data_type <= CA_CMPLX256 ) );
|
593
537
|
}
|
594
538
|
|
595
|
-
/*
|
596
|
-
|
597
|
-
|
598
|
-
def complex?
|
599
|
-
end
|
600
|
-
end
|
539
|
+
/* @overload complex?
|
540
|
+
|
541
|
+
(Inquiry) Returns true if `self` is complex type array
|
601
542
|
*/
|
602
543
|
|
603
544
|
VALUE
|
@@ -617,12 +558,9 @@ ca_is_object_type (void *ap)
|
|
617
558
|
return ( ca->data_type == CA_OBJECT );
|
618
559
|
}
|
619
560
|
|
620
|
-
/*
|
621
|
-
|
622
|
-
|
623
|
-
def object?
|
624
|
-
end
|
625
|
-
end
|
561
|
+
/* @overload object?
|
562
|
+
|
563
|
+
(Inquiry) Returns true if `self` is object type array
|
626
564
|
*/
|
627
565
|
|
628
566
|
VALUE
|
@@ -637,13 +575,11 @@ rb_ca_is_object_type (VALUE self)
|
|
637
575
|
|
638
576
|
static ID id_parent;
|
639
577
|
|
640
|
-
/*
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
end
|
646
|
-
end
|
578
|
+
/* @overload parent
|
579
|
+
|
580
|
+
(Attribute)
|
581
|
+
Returns the parent carray if `self` has parent,
|
582
|
+
or returns nil if `self` has no parent.
|
647
583
|
*/
|
648
584
|
|
649
585
|
VALUE
|
@@ -667,13 +603,11 @@ rb_ca_set_parent (VALUE self, VALUE obj)
|
|
667
603
|
|
668
604
|
static ID id_data_class;
|
669
605
|
|
670
|
-
/*
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
end
|
676
|
-
end
|
606
|
+
/* @overload data_class
|
607
|
+
|
608
|
+
(Attribute)
|
609
|
+
Returns data_class if `self` is fixed-length type and it
|
610
|
+
has the data class.
|
677
611
|
*/
|
678
612
|
|
679
613
|
VALUE
|
@@ -727,12 +661,9 @@ rb_ca_data_class (VALUE self)
|
|
727
661
|
}
|
728
662
|
}
|
729
663
|
|
730
|
-
/*
|
731
|
-
|
732
|
-
|
733
|
-
def has_data_class?
|
734
|
-
end
|
735
|
-
end
|
664
|
+
/* @overload has_data_class?
|
665
|
+
|
666
|
+
(Inquiry) Returns true if `self` is fixed-length type and has the data class.
|
736
667
|
*/
|
737
668
|
|
738
669
|
VALUE
|
@@ -780,6 +711,20 @@ rb_ca_data_type_import (VALUE self, VALUE data_type)
|
|
780
711
|
return Qnil;
|
781
712
|
}
|
782
713
|
|
714
|
+
static VALUE
|
715
|
+
rb_ca_set_data_class (VALUE self, VALUE klass)
|
716
|
+
{
|
717
|
+
if ( RTEST(rb_ca_is_fixlen_type(self)) &&
|
718
|
+
rb_obj_is_data_class(klass) ) {
|
719
|
+
rb_ivar_set(self, rb_intern("member"), rb_hash_new());
|
720
|
+
return rb_ivar_set(self, id_data_class, klass);
|
721
|
+
}
|
722
|
+
else {
|
723
|
+
rb_raise(rb_eTypeError, "invalid data_class or self is not fixlen array.");
|
724
|
+
}
|
725
|
+
return Qnil;
|
726
|
+
}
|
727
|
+
|
783
728
|
/* ------------------------------------------------------------------- */
|
784
729
|
|
785
730
|
CArray *
|
@@ -800,7 +745,11 @@ ca_root_array (void *ap)
|
|
800
745
|
}
|
801
746
|
}
|
802
747
|
|
803
|
-
/*
|
748
|
+
/* @overload root_array
|
749
|
+
|
750
|
+
(Attribute)
|
751
|
+
Returns the object at the root of chain of reference.
|
752
|
+
*/
|
804
753
|
|
805
754
|
static VALUE
|
806
755
|
rb_ca_root_array (VALUE self)
|
@@ -845,7 +794,11 @@ rb_ca_ancestors_loop (VALUE self, VALUE list)
|
|
845
794
|
}
|
846
795
|
}
|
847
796
|
|
848
|
-
/*
|
797
|
+
/* @overload ancestors
|
798
|
+
|
799
|
+
(Attribute)
|
800
|
+
Returns the list of objects in the chain of reference.
|
801
|
+
*/
|
849
802
|
|
850
803
|
static VALUE
|
851
804
|
rb_ca_ancestors (VALUE self)
|
@@ -885,6 +838,7 @@ Init_carray_attribute ()
|
|
885
838
|
rb_define_method(rb_cCArray, "parent", rb_ca_parent, 0);
|
886
839
|
|
887
840
|
rb_define_method(rb_cCArray, "data_class", rb_ca_data_class, 0);
|
841
|
+
rb_define_method(rb_cCArray, "data_class=", rb_ca_set_data_class, 1);
|
888
842
|
|
889
843
|
rb_define_method(rb_cCArray, "scalar?", rb_ca_is_scalar, 0);
|
890
844
|
|