carray 3.0.0 → 3.0.1
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 +2 -1
- data/CHANGELOG.md +325 -3
- data/{NEWS.md → CHANGELOG.v1.md} +1 -1
- data/README.md +32 -32
- data/carray.gemspec +12 -8
- data/ext/ca_axis_group.c +55 -19
- data/ext/ca_binop_dispatch.c +5 -6
- data/ext/ca_binop_dispatch.h +0 -7
- data/ext/ca_categorical_iterator.c +13 -13
- data/ext/ca_for_each_element.h +6 -8
- data/ext/ca_group_iter.c +1 -1
- data/ext/ca_kernel_iterator.c +69 -23
- data/ext/ca_kernel_iterator.h +3 -10
- data/ext/ca_obj_bincmp.c +57 -27
- data/ext/ca_obj_binop.c +86 -30
- data/ext/ca_obj_const_string.c +3 -1
- data/ext/ca_obj_face.c +80 -0
- data/ext/ca_obj_face.h +33 -1
- data/ext/ca_obj_fake.c +11 -0
- data/ext/ca_obj_fixlen_string.c +3 -1
- data/ext/ca_obj_grid.c +11 -3
- data/ext/ca_obj_meld.c +13 -8
- data/ext/ca_obj_moncmp.c +33 -14
- data/ext/ca_obj_monop.c +19 -7
- data/ext/ca_obj_object.c +99 -4
- data/ext/ca_obj_record.c +3 -1
- data/ext/ca_obj_refer.c +30 -6
- data/ext/ca_obj_roll.c +13 -5
- data/ext/ca_obj_select_axis.c +16 -6
- data/ext/ca_obj_shift.c +3 -3
- data/ext/ca_obj_stride.c +106 -23
- data/ext/ca_obj_string.c +3 -1
- data/ext/ca_obj_tile.c +13 -5
- data/ext/ca_obj_time.c +3 -1
- data/ext/ca_obj_timedelta.c +3 -1
- data/ext/ca_obj_transpose.c +1 -1
- data/ext/ca_obj_triop.c +62 -23
- data/ext/ca_obj_window.c +86 -17
- data/ext/ca_op_cmplx64.h +123 -0
- data/ext/ca_op_ipower.c +0 -3
- data/ext/ca_sort_kernels.h +5 -5
- data/ext/ca_sweep_engine.c +78 -35
- data/ext/ca_sweep_engine.h +13 -4
- data/ext/ca_transform_common.c +7 -0
- data/ext/carray.h +127 -130
- data/ext/carray_access.c +56 -34
- data/ext/carray_bincount.c +8 -8
- data/ext/carray_broadcast.c +99 -6
- data/ext/carray_build_flags.h +3 -0
- data/ext/carray_call_cfunc.c +1491 -0
- data/ext/carray_call_cfunc.h +153 -0
- data/ext/carray_cast.c +69 -31
- data/ext/carray_conversion.c +22 -22
- data/ext/carray_copy.c +12 -2
- data/ext/carray_core.c +57 -10
- data/ext/carray_count.c +1 -1
- data/ext/carray_element.c +7 -7
- data/ext/carray_factorize.c +28 -28
- data/ext/carray_hold.c +1 -1
- data/ext/carray_index_classifier.c +7 -21
- data/ext/carray_internal.h +19 -3
- data/ext/carray_kernels_bincmp.c +1 -0
- data/ext/carray_kernels_binop.c +320 -298
- data/ext/carray_kernels_init.c +1095 -0
- data/ext/carray_kernels_map.c +1 -0
- data/ext/carray_kernels_moncmp.c +1 -0
- data/ext/carray_kernels_monop.c +412 -411
- data/ext/carray_kernels_reduce_aggregate.c +88 -87
- data/ext/carray_kernels_reduce_boolean.c +1 -0
- data/ext/carray_kernels_reduce_cumulative.c +54 -53
- data/ext/carray_kernels_reduce_extreme.c +51 -50
- data/ext/carray_kernels_reduce_variance.c +1 -0
- data/ext/carray_kernels_scan.c +1 -0
- data/ext/carray_kernels_search.c +93 -92
- data/ext/carray_kernels_sort.c +1 -0
- data/ext/carray_kernels_triop.c +1 -0
- data/ext/carray_lazy.c +175 -5
- data/ext/carray_mask.c +6 -5
- data/ext/carray_median_percentile.c +1 -1
- data/ext/carray_memory_view.c +46 -21
- data/ext/carray_operator.c +46 -49
- data/ext/carray_partition.c +4 -4
- data/ext/carray_random.c +7 -7
- data/ext/carray_scatter.c +1 -1
- data/ext/carray_sort.c +3 -3
- data/ext/carray_sort_kernel.c +10 -10
- data/ext/carray_test.c +1 -1
- data/ext/extconf.rb +18 -0
- data/ext/mk_call_cfunc.rb +243 -52
- data/ext/mkkernel.rb +354 -100
- data/ext/ruby_carray.c +18 -16
- data/ext/version.h +4 -4
- data/lib/carray/autoload_carray.rb +19 -0
- data/lib/carray/autoload_method_extension.rb +2 -1
- data/lib/carray/axis_group.rb +7 -7
- data/lib/carray/basics.rb +59 -59
- data/lib/carray/bincount_nd.rb +12 -12
- data/lib/carray/block_iterator.rb +24 -14
- data/lib/carray/categorical.rb +4 -4
- data/lib/carray/categorical_iterator.rb +98 -76
- data/lib/carray/conditional.rb +14 -14
- data/lib/carray/construct.rb +21 -0
- data/lib/carray/core_extensions.rb +62 -5
- data/lib/carray/data_type_extension.rb +18 -1
- data/lib/carray/frame/concat.rb +3 -3
- data/lib/carray/frame/convert.rb +1 -1
- data/lib/carray/frame/frame.rb +4 -11
- data/lib/carray/frame/io.rb +159 -2
- data/lib/carray/frame/sort.rb +1 -1
- data/lib/carray/frame/verbs.rb +18 -1
- data/lib/carray/fuse_source.rb +123 -0
- data/lib/carray/fusion.rb +218 -0
- data/lib/carray/histogram.rb +16 -16
- data/lib/carray/inspect.rb +1 -7
- data/lib/carray/iterator.rb +4 -3
- data/lib/carray/lazy.rb +125 -73
- data/lib/carray/meld_reduce.rb +2 -2
- data/lib/carray/methods/align_addr.rb +1 -1
- data/lib/carray/methods/composition.rb +1 -1
- data/lib/carray/methods/is_in.rb +12 -12
- data/lib/carray/methods/locate_addr.rb +6 -1
- data/lib/carray/methods/mask_duplicates.rb +1 -1
- data/lib/carray/methods/meshgrid.rb +4 -5
- data/lib/carray/methods/mode.rb +2 -2
- data/lib/carray/methods/nunique.rb +1 -1
- data/lib/carray/methods/snap.rb +7 -2
- data/lib/carray/methods/unique.rb +3 -3
- data/lib/carray/methods/value_counts.rb +2 -2
- data/lib/carray/runtime.rb +0 -19
- data/lib/carray/slab_iterator.rb +20 -7
- data/lib/carray/string_operation_extension.rb +5 -5
- data/lib/carray/time.rb +890 -491
- data/lib/carray/window_iterator.rb +285 -13
- data/lib/carray.rb +5 -5
- data/yard-stubs/ca_obj_array.rb +385 -0
- data/yard-stubs/ca_obj_bitarray.rb +38 -0
- data/yard-stubs/ca_obj_bitfield.rb +43 -0
- data/yard-stubs/ca_obj_block.rb +73 -0
- data/yard-stubs/ca_obj_byte_swap.rb +56 -0
- data/yard-stubs/ca_obj_fake.rb +31 -0
- data/yard-stubs/ca_obj_farray.rb +32 -0
- data/yard-stubs/ca_obj_field.rb +45 -0
- data/yard-stubs/ca_obj_grid.rb +35 -0
- data/yard-stubs/ca_obj_refer.rb +72 -0
- data/yard-stubs/ca_obj_roll.rb +45 -0
- data/yard-stubs/ca_obj_shift.rb +43 -0
- data/yard-stubs/ca_obj_stride.rb +181 -0
- data/yard-stubs/ca_obj_tile.rb +29 -0
- data/yard-stubs/ca_obj_transpose.rb +40 -0
- data/yard-stubs/ca_obj_window.rb +49 -0
- data/yard-stubs/carray_access.rb +131 -0
- data/yard-stubs/carray_attribute.rb +246 -0
- data/yard-stubs/carray_broadcast.rb +37 -0
- data/yard-stubs/carray_cast.rb +489 -0
- data/yard-stubs/carray_class.rb +65 -0
- data/yard-stubs/carray_conversion.rb +76 -0
- data/yard-stubs/carray_copy.rb +79 -0
- data/yard-stubs/carray_core.rb +114 -0
- data/yard-stubs/carray_count.rb +79 -0
- data/yard-stubs/carray_element.rb +108 -0
- data/yard-stubs/carray_generate.rb +66 -0
- data/yard-stubs/carray_lazy.rb +23 -0
- data/yard-stubs/carray_loop.rb +140 -0
- data/yard-stubs/carray_mask.rb +259 -0
- data/yard-stubs/carray_math.rb +132 -0
- data/yard-stubs/carray_mathfunc.rb +45 -0
- data/yard-stubs/carray_median_percentile.rb +89 -0
- data/yard-stubs/carray_memory_view.rb +163 -0
- data/yard-stubs/carray_order.rb +312 -0
- data/yard-stubs/carray_random.rb +89 -0
- data/yard-stubs/carray_scatter.rb +106 -0
- data/yard-stubs/carray_slab.rb +57 -0
- data/yard-stubs/carray_sort.rb +163 -0
- data/yard-stubs/carray_test.rb +85 -0
- data/yard-stubs/carray_undef.rb +64 -0
- data/yard-stubs/carray_utils.rb +97 -0
- data/yard-stubs/ruby_carray.rb +193 -0
- metadata +59 -10
- data/ext/ca_obj_unbound_repeat.c +0 -496
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
# DOCUMENTATION ONLY — DO NOT REQUIRE.
|
|
2
|
+
# Stubs for methods defined in ext/carray_attribute.c.
|
|
3
|
+
# See yard-stubs/README.md and yard-stubs/STYLE.md.
|
|
4
|
+
|
|
5
|
+
class CArray
|
|
6
|
+
# @!group Attributes
|
|
7
|
+
|
|
8
|
+
# @overload obj_type
|
|
9
|
+
# Returns the object-type integer of `self` (e.g. `CA_OBJ_ARRAY`,
|
|
10
|
+
# `CA_OBJ_BLOCK`).
|
|
11
|
+
#
|
|
12
|
+
# Rarely needed in user code; the same information is available
|
|
13
|
+
# from `self.class`.
|
|
14
|
+
# @return [Integer]
|
|
15
|
+
def obj_type; end
|
|
16
|
+
|
|
17
|
+
# @!group Type inquiry
|
|
18
|
+
|
|
19
|
+
# @overload data_type
|
|
20
|
+
# Returns the data type of each element as a Symbol (e.g. `:int32`,
|
|
21
|
+
# `:float64`).
|
|
22
|
+
# @return [Symbol]
|
|
23
|
+
def data_type; end
|
|
24
|
+
|
|
25
|
+
# @overload data_type_name
|
|
26
|
+
# Returns the String name of `data_type` (e.g. `"int32"`,
|
|
27
|
+
# `"fixlen"`).
|
|
28
|
+
# @return [String]
|
|
29
|
+
def data_type_name; end
|
|
30
|
+
|
|
31
|
+
# @!group Attributes
|
|
32
|
+
|
|
33
|
+
# @overload ndim
|
|
34
|
+
# Returns the number of dimensions of `self`.
|
|
35
|
+
# @return [Integer]
|
|
36
|
+
def ndim; end
|
|
37
|
+
|
|
38
|
+
# @overload rank
|
|
39
|
+
# @deprecated Use {#ndim}.
|
|
40
|
+
# @return [Integer]
|
|
41
|
+
def rank; end
|
|
42
|
+
|
|
43
|
+
# @overload bytes
|
|
44
|
+
# Returns the byte size of one element. Equals
|
|
45
|
+
# `CArray.sizeof(data_type)` for numeric types; for fixed-length
|
|
46
|
+
# types this method is the only way to obtain the size.
|
|
47
|
+
# @return [Integer]
|
|
48
|
+
def bytes; end
|
|
49
|
+
|
|
50
|
+
# @overload flags
|
|
51
|
+
# Returns the raw internal flag bitset (`ca->flags`) as an Integer.
|
|
52
|
+
# The bits record structural facts about the array (scalar, Face,
|
|
53
|
+
# view, read-only, …). This is a low-level provenance value with no
|
|
54
|
+
# stable public meaning; it is exposed mainly so the `_CARRAY3`
|
|
55
|
+
# serializer can snapshot it into a saved file's header.
|
|
56
|
+
# @return [Integer]
|
|
57
|
+
def flags; end
|
|
58
|
+
|
|
59
|
+
# @overload elements
|
|
60
|
+
# Returns the total number of elements (product of `shape`).
|
|
61
|
+
# @return [Integer]
|
|
62
|
+
def elements; end
|
|
63
|
+
|
|
64
|
+
# @overload size
|
|
65
|
+
# Alias of {#elements}.
|
|
66
|
+
# @return [Integer]
|
|
67
|
+
def size; end
|
|
68
|
+
|
|
69
|
+
# @overload length
|
|
70
|
+
# @deprecated Use {#elements} or {#size}.
|
|
71
|
+
# @return [Integer]
|
|
72
|
+
def length; end
|
|
73
|
+
|
|
74
|
+
# @overload shape
|
|
75
|
+
# Returns a freshly allocated Array containing the dimensional
|
|
76
|
+
# shape of `self` (e.g. `[2, 3]` for a 2×3 array).
|
|
77
|
+
#
|
|
78
|
+
# This is the recommended accessor. {#dim} is a legacy alias.
|
|
79
|
+
# @return [Array<Integer>]
|
|
80
|
+
# @example
|
|
81
|
+
# CArray.float64(2, 3).shape # => [2, 3]
|
|
82
|
+
def shape; end
|
|
83
|
+
|
|
84
|
+
# @overload dim
|
|
85
|
+
# @deprecated Use {#shape}.
|
|
86
|
+
# @return [Array<Integer>]
|
|
87
|
+
def dim; end
|
|
88
|
+
|
|
89
|
+
# @overload dim0
|
|
90
|
+
# Returns `shape[0]`.
|
|
91
|
+
# @return [Integer]
|
|
92
|
+
def dim0; end
|
|
93
|
+
|
|
94
|
+
# @overload dim1
|
|
95
|
+
# Returns `shape[1]`, or `nil` if `ndim < 2`.
|
|
96
|
+
# @return [Integer, nil]
|
|
97
|
+
def dim1; end
|
|
98
|
+
|
|
99
|
+
# @overload dim2
|
|
100
|
+
# Returns `shape[2]`, or `nil` if `ndim < 3`.
|
|
101
|
+
# @return [Integer, nil]
|
|
102
|
+
def dim2; end
|
|
103
|
+
|
|
104
|
+
# @overload dim3
|
|
105
|
+
# Returns `shape[3]`, or `nil` if `ndim < 4`.
|
|
106
|
+
# @return [Integer, nil]
|
|
107
|
+
def dim3; end
|
|
108
|
+
|
|
109
|
+
# @overload parent
|
|
110
|
+
# Returns the parent CArray of `self`, or `nil` if `self` has no
|
|
111
|
+
# parent (i.e. is an entity).
|
|
112
|
+
# @return [CArray, nil]
|
|
113
|
+
def parent; end
|
|
114
|
+
|
|
115
|
+
# @overload root_array
|
|
116
|
+
# Returns the array at the root of the view chain (the entity).
|
|
117
|
+
# Returns `self` if `self` is already an entity.
|
|
118
|
+
# @return [CArray]
|
|
119
|
+
def root_array; end
|
|
120
|
+
|
|
121
|
+
# @overload ancestors
|
|
122
|
+
# Returns the list of arrays in the view chain, ordered from root
|
|
123
|
+
# to `self`.
|
|
124
|
+
# @return [Array<CArray>]
|
|
125
|
+
def ancestors; end
|
|
126
|
+
|
|
127
|
+
# @!group Type inquiry
|
|
128
|
+
|
|
129
|
+
# @overload data_class
|
|
130
|
+
# Returns the `data_class` of `self` if it is a Face that carries
|
|
131
|
+
# one (e.g. `CARecord`). Returns `nil` for non-Face arrays.
|
|
132
|
+
# @return [Class, nil]
|
|
133
|
+
def data_class; end
|
|
134
|
+
|
|
135
|
+
# @overload data_class=(klass)
|
|
136
|
+
# Always raises. `data_class` now lives on the Face tail
|
|
137
|
+
# (`CARecord`); use `CARecord.new(klass, *shape)` or
|
|
138
|
+
# `CARecord.wrap(entity, klass)` instead.
|
|
139
|
+
# @param klass [Class] unused.
|
|
140
|
+
# @return [void]
|
|
141
|
+
# @raise [ArgumentError] always.
|
|
142
|
+
def data_class=(klass); end
|
|
143
|
+
|
|
144
|
+
# @!endgroup
|
|
145
|
+
|
|
146
|
+
# @!group State inquiry
|
|
147
|
+
|
|
148
|
+
# @overload scalar?
|
|
149
|
+
# Returns `true` if `self` is a {CScalar}.
|
|
150
|
+
# @return [Boolean]
|
|
151
|
+
def scalar?; end
|
|
152
|
+
|
|
153
|
+
# @overload entity?
|
|
154
|
+
# Returns `true` if `self` is an entity array (not a virtual
|
|
155
|
+
# view).
|
|
156
|
+
# @return [Boolean]
|
|
157
|
+
def entity?; end
|
|
158
|
+
|
|
159
|
+
# @overload virtual?
|
|
160
|
+
# Returns `true` if `self` is a virtual array (a view, not an
|
|
161
|
+
# entity).
|
|
162
|
+
# @return [Boolean]
|
|
163
|
+
def virtual?; end
|
|
164
|
+
|
|
165
|
+
# @overload attached?
|
|
166
|
+
# Returns `true` if `self` is currently attached
|
|
167
|
+
# (`ptr != NULL`).
|
|
168
|
+
# @return [Boolean]
|
|
169
|
+
def attached?; end
|
|
170
|
+
|
|
171
|
+
# @overload empty?
|
|
172
|
+
# Returns `true` if `self` has zero elements.
|
|
173
|
+
# @return [Boolean]
|
|
174
|
+
def empty?; end
|
|
175
|
+
|
|
176
|
+
# @overload read_only?
|
|
177
|
+
# Returns `true` if `self` is read-only.
|
|
178
|
+
# @return [Boolean]
|
|
179
|
+
def read_only?; end
|
|
180
|
+
|
|
181
|
+
# @overload mask_array?
|
|
182
|
+
# Returns `true` if `self` is itself a mask array. (Not the same
|
|
183
|
+
# as "a masked array"; for that see {#has_mask?}.)
|
|
184
|
+
# @return [Boolean]
|
|
185
|
+
def mask_array?; end
|
|
186
|
+
|
|
187
|
+
# @overload value_array?
|
|
188
|
+
# Returns `true` if `self` is a value array (the `.value` view of
|
|
189
|
+
# a masked array).
|
|
190
|
+
# @return [Boolean]
|
|
191
|
+
def value_array?; end
|
|
192
|
+
|
|
193
|
+
# @!group Type inquiry
|
|
194
|
+
|
|
195
|
+
# @overload face?
|
|
196
|
+
# Returns `true` if `self` is a Face view (`CA_FLAG_IS_FACE`
|
|
197
|
+
# set).
|
|
198
|
+
# @return [Boolean]
|
|
199
|
+
def face?; end
|
|
200
|
+
|
|
201
|
+
# @overload has_data_class?
|
|
202
|
+
# Returns `true` if `self` carries a `data_class` (i.e. is a Face
|
|
203
|
+
# such as `CARecord`).
|
|
204
|
+
# @return [Boolean]
|
|
205
|
+
def has_data_class?; end
|
|
206
|
+
|
|
207
|
+
# @overload fixlen?
|
|
208
|
+
# Returns `true` if `self` is a fixed-length type array.
|
|
209
|
+
# @return [Boolean]
|
|
210
|
+
def fixlen?; end
|
|
211
|
+
|
|
212
|
+
# @overload boolean?
|
|
213
|
+
# Returns `true` if `self` is a boolean type array.
|
|
214
|
+
# @return [Boolean]
|
|
215
|
+
def boolean?; end
|
|
216
|
+
|
|
217
|
+
# @overload numeric?
|
|
218
|
+
# Returns `true` if `self` is a numeric type array (any integer,
|
|
219
|
+
# float, or complex type).
|
|
220
|
+
# @return [Boolean]
|
|
221
|
+
def numeric?; end
|
|
222
|
+
|
|
223
|
+
# @overload integer?
|
|
224
|
+
# Returns `true` if `self` is an integer type array (signed or
|
|
225
|
+
# unsigned, any width).
|
|
226
|
+
# @return [Boolean]
|
|
227
|
+
def integer?; end
|
|
228
|
+
|
|
229
|
+
# @overload float?
|
|
230
|
+
# Returns `true` if `self` is a floating-point type array.
|
|
231
|
+
# @return [Boolean]
|
|
232
|
+
def float?; end
|
|
233
|
+
|
|
234
|
+
# @overload complex?
|
|
235
|
+
# Returns `true` if `self` is a complex type array.
|
|
236
|
+
# @return [Boolean]
|
|
237
|
+
def complex?; end
|
|
238
|
+
|
|
239
|
+
# @overload object?
|
|
240
|
+
# Returns `true` if `self` is an object type array
|
|
241
|
+
# (`data_type == :object`).
|
|
242
|
+
# @return [Boolean]
|
|
243
|
+
def object?; end
|
|
244
|
+
|
|
245
|
+
# @!endgroup
|
|
246
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# DOCUMENTATION ONLY — DO NOT REQUIRE.
|
|
2
|
+
# Stubs for methods defined in ext/carray_broadcast.c.
|
|
3
|
+
# See yard-stubs/README.md and yard-stubs/STYLE.md.
|
|
4
|
+
|
|
5
|
+
class CArray
|
|
6
|
+
# @!group Views
|
|
7
|
+
|
|
8
|
+
# @overload broadcast_to(*shape)
|
|
9
|
+
# Returns a read-only `CARepeat` view of `self` whose shape is
|
|
10
|
+
# `shape`. Axes are paired right-to-left:
|
|
11
|
+
#
|
|
12
|
+
# - matching extents reuse the source stride
|
|
13
|
+
# - target extent `> 1` against source extent `1` repeats with
|
|
14
|
+
# stride `0`
|
|
15
|
+
# - extra leading target axes require the corresponding source
|
|
16
|
+
# axis to be `1` (otherwise raises)
|
|
17
|
+
#
|
|
18
|
+
# `CScalar` sources broadcast to any target shape with all
|
|
19
|
+
# strides `0`.
|
|
20
|
+
#
|
|
21
|
+
# The result is read-only because writes against a stride-0
|
|
22
|
+
# axis would be ambiguous.
|
|
23
|
+
# @param shape [Array<Integer>] target shape, with
|
|
24
|
+
# `length >= self.ndim`.
|
|
25
|
+
# @return [CArray]
|
|
26
|
+
# @raise [RuntimeError] if a source axis cannot be paired with a
|
|
27
|
+
# target axis (cross-ndim expansion is intentionally strict —
|
|
28
|
+
# see {CArray.broadcast} for the explicit-`:_` / `:*` axis
|
|
29
|
+
# declaration form).
|
|
30
|
+
# @example
|
|
31
|
+
# a = CArray.float64(3) { [1.0, 2.0, 3.0] }
|
|
32
|
+
# a.broadcast_to(2, 3).to_a
|
|
33
|
+
# # => [[1.0, 2.0, 3.0], [1.0, 2.0, 3.0]]
|
|
34
|
+
def broadcast_to(*shape); end
|
|
35
|
+
|
|
36
|
+
# @!endgroup
|
|
37
|
+
end
|