carray 3.0.4 → 3.0.5
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/CHANGELOG.md +205 -0
- data/carray.gemspec +1 -1
- data/ext/ca_array_pool.c +25 -1
- data/ext/ca_axis_dispatch.c +13 -20
- data/ext/ca_categorical_iterator.c +27 -20
- data/ext/ca_compare.c +4 -4
- data/ext/ca_composite_dispatch.c +9 -9
- data/ext/ca_kernel_iterator.c +6 -6
- data/ext/ca_kernel_iterator.h +112 -83
- data/ext/ca_obj_array.c +69 -19
- data/ext/ca_obj_bincmp.c +1 -0
- data/ext/ca_obj_binop.c +1 -0
- data/ext/ca_obj_bitarray.c +5 -1
- data/ext/ca_obj_bitfield.c +58 -43
- data/ext/ca_obj_byte_swap.c +2 -1
- data/ext/ca_obj_const_string.c +15 -3
- data/ext/ca_obj_face.c +42 -1
- data/ext/ca_obj_field.c +13 -3
- data/ext/ca_obj_grid.c +52 -5
- data/ext/ca_obj_monop.c +46 -10
- data/ext/ca_obj_object.c +64 -12
- data/ext/ca_obj_record.c +3 -0
- data/ext/ca_obj_reduce.c +4 -0
- data/ext/ca_obj_refer.c +18 -9
- data/ext/ca_obj_roll.c +26 -6
- data/ext/ca_obj_select.c +34 -5
- data/ext/ca_obj_shift.c +31 -7
- data/ext/ca_obj_stack.c +1 -0
- data/ext/ca_obj_stride.c +28 -19
- data/ext/ca_obj_string.c +11 -2
- data/ext/ca_obj_tile.c +27 -7
- data/ext/ca_obj_transpose.c +8 -4
- data/ext/ca_obj_triop.c +3 -0
- data/ext/ca_obj_window.c +79 -50
- data/ext/ca_op_ipower.c +4 -4
- data/ext/ca_sort_kernels.h +6 -3
- data/ext/carray.h +33 -0
- data/ext/carray_access.c +16 -3
- data/ext/carray_attribute.c +24 -0
- data/ext/carray_cast.c +243 -82
- data/ext/carray_cast_func.rb +56 -26
- data/ext/carray_conversion.c +2 -2
- data/ext/carray_core.c +3 -0
- data/ext/carray_count.c +6 -0
- data/ext/carray_element.c +9 -4
- data/ext/carray_factorize.c +20 -20
- data/ext/carray_generate.c +8 -2
- data/ext/carray_histogram.c +1 -1
- data/ext/carray_index_classifier.c +4 -4
- data/ext/carray_internal.h +12 -0
- data/ext/carray_kernels_bincmp.c +168 -168
- data/ext/carray_kernels_binop.c +900 -900
- data/ext/carray_kernels_init.c +4 -4
- data/ext/carray_kernels_moncmp.c +96 -96
- data/ext/carray_kernels_monop.c +1984 -1984
- data/ext/carray_kernels_reduce_aggregate.c +1733 -1733
- data/ext/carray_kernels_reduce_cumulative.c +642 -642
- data/ext/carray_kernels_reduce_extreme.c +1150 -1150
- data/ext/carray_kernels_reduce_variance.c +258 -258
- data/ext/carray_kernels_scan.c +128 -128
- data/ext/carray_kernels_search.c +340 -340
- data/ext/carray_kernels_sort.c +295 -304
- data/ext/carray_kernels_triop.c +114 -114
- data/ext/carray_key_windows.c +4 -0
- data/ext/carray_mask.c +45 -22
- data/ext/carray_memory_view.c +2 -2
- data/ext/carray_operator.c +5 -5
- data/ext/carray_order.c +227 -8
- data/ext/carray_random.c +18 -18
- data/ext/carray_scatter.c +24 -7
- data/ext/carray_slab.c +32 -9
- data/ext/carray_sort.c +224 -16
- data/ext/carray_sort_kernel.c +5 -7
- data/ext/carray_struct.c +35 -43
- data/ext/carray_time_text.c +4 -2
- data/ext/carray_utils.c +63 -21
- data/ext/mkkernel.rb +210 -115
- data/ext/version.h +4 -4
- data/lib/carray/attribute.rb +17 -4
- data/lib/carray/basics.rb +27 -7
- data/lib/carray/categorical.rb +30 -16
- data/lib/carray/categorical_iterator.rb +6 -6
- data/lib/carray/const_string.rb +10 -0
- data/lib/carray/data_type_extension.rb +8 -1
- data/lib/carray/fixlen_string.rb +41 -2
- data/lib/carray/frame/column_verbs.rb +4 -3
- data/lib/carray/frame/concat.rb +17 -3
- data/lib/carray/frame/frame.rb +6 -7
- data/lib/carray/frame/group.rb +100 -13
- data/lib/carray/frame/io.rb +3 -1
- data/lib/carray/fuse_source.rb +31 -2
- data/lib/carray/lazy.rb +35 -0
- data/lib/carray/methods/is_in.rb +8 -1
- data/lib/carray/segment_iterator.rb +12 -8
- data/lib/carray/serialize.rb +19 -2
- data/lib/carray/stack.rb +15 -12
- data/lib/carray/string.rb +8 -0
- data/lib/carray/string_operation_extension.rb +13 -5
- data/lib/carray/struct_builder.rb +5 -3
- data/lib/carray/time.rb +107 -68
- data/yard-stubs/ca_obj_transpose.rb +5 -4
- data/yard-stubs/carray_attribute.rb +3 -1
- data/yard-stubs/carray_cast.rb +2 -0
- data/yard-stubs/carray_conversion.rb +5 -1
- data/yard-stubs/carray_element.rb +7 -6
- data/yard-stubs/carray_mask.rb +8 -3
- data/yard-stubs/carray_math.rb +14 -4
- data/yard-stubs/carray_order.rb +100 -4
- data/yard-stubs/carray_scatter.rb +7 -5
- metadata +1 -1
data/ext/carray_kernels_scan.c
CHANGED
|
@@ -49,7 +49,7 @@ static VALUE
|
|
|
49
49
|
cumsum_ki_native_i8 (VALUE self, CArray *ca, int axis)
|
|
50
50
|
{
|
|
51
51
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
52
|
-
INT2NUM(sizeof(
|
|
52
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
53
53
|
CArray *co;
|
|
54
54
|
GetCArray(vout, co);
|
|
55
55
|
|
|
@@ -78,7 +78,7 @@ cumsum_ki_native_i8 (VALUE self, CArray *ca, int axis)
|
|
|
78
78
|
boolean8_t *mi, *mo;
|
|
79
79
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
80
80
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
81
|
-
CA_SLAB_SCAN_T(int8_t,
|
|
81
|
+
CA_SLAB_SCAN_T(int8_t, ca_u_float64_t, st_in, pi, mi,
|
|
82
82
|
st_out, po, 0, acc += v; r = acc);
|
|
83
83
|
ca_iter_state_sync_slab(&st_out);
|
|
84
84
|
}
|
|
@@ -91,7 +91,7 @@ static VALUE
|
|
|
91
91
|
cumsum_ki_native_u8 (VALUE self, CArray *ca, int axis)
|
|
92
92
|
{
|
|
93
93
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
94
|
-
INT2NUM(sizeof(
|
|
94
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
95
95
|
CArray *co;
|
|
96
96
|
GetCArray(vout, co);
|
|
97
97
|
|
|
@@ -120,7 +120,7 @@ cumsum_ki_native_u8 (VALUE self, CArray *ca, int axis)
|
|
|
120
120
|
boolean8_t *mi, *mo;
|
|
121
121
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
122
122
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
123
|
-
CA_SLAB_SCAN_T(uint8_t,
|
|
123
|
+
CA_SLAB_SCAN_T(uint8_t, ca_u_float64_t, st_in, pi, mi,
|
|
124
124
|
st_out, po, 0, acc += v; r = acc);
|
|
125
125
|
ca_iter_state_sync_slab(&st_out);
|
|
126
126
|
}
|
|
@@ -133,7 +133,7 @@ static VALUE
|
|
|
133
133
|
cumsum_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
134
134
|
{
|
|
135
135
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
136
|
-
INT2NUM(sizeof(
|
|
136
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
137
137
|
CArray *co;
|
|
138
138
|
GetCArray(vout, co);
|
|
139
139
|
|
|
@@ -162,7 +162,7 @@ cumsum_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
|
162
162
|
boolean8_t *mi, *mo;
|
|
163
163
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
164
164
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
165
|
-
CA_SLAB_SCAN_T(
|
|
165
|
+
CA_SLAB_SCAN_T(ca_u_int16_t, ca_u_float64_t, st_in, pi, mi,
|
|
166
166
|
st_out, po, 0, acc += v; r = acc);
|
|
167
167
|
ca_iter_state_sync_slab(&st_out);
|
|
168
168
|
}
|
|
@@ -175,7 +175,7 @@ static VALUE
|
|
|
175
175
|
cumsum_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
176
176
|
{
|
|
177
177
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
178
|
-
INT2NUM(sizeof(
|
|
178
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
179
179
|
CArray *co;
|
|
180
180
|
GetCArray(vout, co);
|
|
181
181
|
|
|
@@ -204,7 +204,7 @@ cumsum_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
|
204
204
|
boolean8_t *mi, *mo;
|
|
205
205
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
206
206
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
207
|
-
CA_SLAB_SCAN_T(
|
|
207
|
+
CA_SLAB_SCAN_T(ca_u_uint16_t, ca_u_float64_t, st_in, pi, mi,
|
|
208
208
|
st_out, po, 0, acc += v; r = acc);
|
|
209
209
|
ca_iter_state_sync_slab(&st_out);
|
|
210
210
|
}
|
|
@@ -217,7 +217,7 @@ static VALUE
|
|
|
217
217
|
cumsum_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
218
218
|
{
|
|
219
219
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
220
|
-
INT2NUM(sizeof(
|
|
220
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
221
221
|
CArray *co;
|
|
222
222
|
GetCArray(vout, co);
|
|
223
223
|
|
|
@@ -246,7 +246,7 @@ cumsum_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
|
246
246
|
boolean8_t *mi, *mo;
|
|
247
247
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
248
248
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
249
|
-
CA_SLAB_SCAN_T(
|
|
249
|
+
CA_SLAB_SCAN_T(ca_u_int32_t, ca_u_float64_t, st_in, pi, mi,
|
|
250
250
|
st_out, po, 0, acc += v; r = acc);
|
|
251
251
|
ca_iter_state_sync_slab(&st_out);
|
|
252
252
|
}
|
|
@@ -259,7 +259,7 @@ static VALUE
|
|
|
259
259
|
cumsum_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
260
260
|
{
|
|
261
261
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
262
|
-
INT2NUM(sizeof(
|
|
262
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
263
263
|
CArray *co;
|
|
264
264
|
GetCArray(vout, co);
|
|
265
265
|
|
|
@@ -288,7 +288,7 @@ cumsum_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
|
288
288
|
boolean8_t *mi, *mo;
|
|
289
289
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
290
290
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
291
|
-
CA_SLAB_SCAN_T(
|
|
291
|
+
CA_SLAB_SCAN_T(ca_u_uint32_t, ca_u_float64_t, st_in, pi, mi,
|
|
292
292
|
st_out, po, 0, acc += v; r = acc);
|
|
293
293
|
ca_iter_state_sync_slab(&st_out);
|
|
294
294
|
}
|
|
@@ -301,7 +301,7 @@ static VALUE
|
|
|
301
301
|
cumsum_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
302
302
|
{
|
|
303
303
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
304
|
-
INT2NUM(sizeof(
|
|
304
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
305
305
|
CArray *co;
|
|
306
306
|
GetCArray(vout, co);
|
|
307
307
|
|
|
@@ -330,7 +330,7 @@ cumsum_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
|
330
330
|
boolean8_t *mi, *mo;
|
|
331
331
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
332
332
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
333
|
-
CA_SLAB_SCAN_T(
|
|
333
|
+
CA_SLAB_SCAN_T(ca_u_int64_t, ca_u_float64_t, st_in, pi, mi,
|
|
334
334
|
st_out, po, 0, acc += v; r = acc);
|
|
335
335
|
ca_iter_state_sync_slab(&st_out);
|
|
336
336
|
}
|
|
@@ -343,7 +343,7 @@ static VALUE
|
|
|
343
343
|
cumsum_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
344
344
|
{
|
|
345
345
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
346
|
-
INT2NUM(sizeof(
|
|
346
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
347
347
|
CArray *co;
|
|
348
348
|
GetCArray(vout, co);
|
|
349
349
|
|
|
@@ -372,7 +372,7 @@ cumsum_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
|
372
372
|
boolean8_t *mi, *mo;
|
|
373
373
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
374
374
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
375
|
-
CA_SLAB_SCAN_T(
|
|
375
|
+
CA_SLAB_SCAN_T(ca_u_uint64_t, ca_u_float64_t, st_in, pi, mi,
|
|
376
376
|
st_out, po, 0, acc += v; r = acc);
|
|
377
377
|
ca_iter_state_sync_slab(&st_out);
|
|
378
378
|
}
|
|
@@ -385,7 +385,7 @@ static VALUE
|
|
|
385
385
|
cumsum_ki_native_f32 (VALUE self, CArray *ca, int axis)
|
|
386
386
|
{
|
|
387
387
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
388
|
-
INT2NUM(sizeof(
|
|
388
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
389
389
|
CArray *co;
|
|
390
390
|
GetCArray(vout, co);
|
|
391
391
|
|
|
@@ -414,7 +414,7 @@ cumsum_ki_native_f32 (VALUE self, CArray *ca, int axis)
|
|
|
414
414
|
boolean8_t *mi, *mo;
|
|
415
415
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
416
416
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
417
|
-
CA_SLAB_SCAN_T(
|
|
417
|
+
CA_SLAB_SCAN_T(ca_u_float32_t, ca_u_float64_t, st_in, pi, mi,
|
|
418
418
|
st_out, po, 0, acc += v; r = acc);
|
|
419
419
|
ca_iter_state_sync_slab(&st_out);
|
|
420
420
|
}
|
|
@@ -427,7 +427,7 @@ static VALUE
|
|
|
427
427
|
cumsum_ki_native_f64 (VALUE self, CArray *ca, int axis)
|
|
428
428
|
{
|
|
429
429
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
430
|
-
INT2NUM(sizeof(
|
|
430
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
431
431
|
CArray *co;
|
|
432
432
|
GetCArray(vout, co);
|
|
433
433
|
|
|
@@ -456,7 +456,7 @@ cumsum_ki_native_f64 (VALUE self, CArray *ca, int axis)
|
|
|
456
456
|
boolean8_t *mi, *mo;
|
|
457
457
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
458
458
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
459
|
-
CA_SLAB_SCAN_T(
|
|
459
|
+
CA_SLAB_SCAN_T(ca_u_float64_t, ca_u_float64_t, st_in, pi, mi,
|
|
460
460
|
st_out, po, 0, acc += v; r = acc);
|
|
461
461
|
ca_iter_state_sync_slab(&st_out);
|
|
462
462
|
}
|
|
@@ -469,7 +469,7 @@ static VALUE
|
|
|
469
469
|
cumsum_ki_native_cmplx64 (VALUE self, CArray *ca, int axis)
|
|
470
470
|
{
|
|
471
471
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_CMPLX128),
|
|
472
|
-
INT2NUM(sizeof(
|
|
472
|
+
INT2NUM(sizeof(ca_u_cmplx128_t)));
|
|
473
473
|
CArray *co;
|
|
474
474
|
GetCArray(vout, co);
|
|
475
475
|
|
|
@@ -498,7 +498,7 @@ cumsum_ki_native_cmplx64 (VALUE self, CArray *ca, int axis)
|
|
|
498
498
|
boolean8_t *mi, *mo;
|
|
499
499
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
500
500
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
501
|
-
CA_SLAB_SCAN_T(
|
|
501
|
+
CA_SLAB_SCAN_T(ca_u_cmplx64_t, ca_u_cmplx128_t, st_in, pi, mi,
|
|
502
502
|
st_out, po, 0, acc += v; r = acc);
|
|
503
503
|
ca_iter_state_sync_slab(&st_out);
|
|
504
504
|
}
|
|
@@ -511,7 +511,7 @@ static VALUE
|
|
|
511
511
|
cumsum_ki_native_cmplx128 (VALUE self, CArray *ca, int axis)
|
|
512
512
|
{
|
|
513
513
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_CMPLX128),
|
|
514
|
-
INT2NUM(sizeof(
|
|
514
|
+
INT2NUM(sizeof(ca_u_cmplx128_t)));
|
|
515
515
|
CArray *co;
|
|
516
516
|
GetCArray(vout, co);
|
|
517
517
|
|
|
@@ -540,7 +540,7 @@ cumsum_ki_native_cmplx128 (VALUE self, CArray *ca, int axis)
|
|
|
540
540
|
boolean8_t *mi, *mo;
|
|
541
541
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
542
542
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
543
|
-
CA_SLAB_SCAN_T(
|
|
543
|
+
CA_SLAB_SCAN_T(ca_u_cmplx128_t, ca_u_cmplx128_t, st_in, pi, mi,
|
|
544
544
|
st_out, po, 0, acc += v; r = acc);
|
|
545
545
|
ca_iter_state_sync_slab(&st_out);
|
|
546
546
|
}
|
|
@@ -553,7 +553,7 @@ static VALUE
|
|
|
553
553
|
cumsum_ki_native_bool (VALUE self, CArray *ca, int axis)
|
|
554
554
|
{
|
|
555
555
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT64),
|
|
556
|
-
INT2NUM(sizeof(
|
|
556
|
+
INT2NUM(sizeof(ca_u_uint64_t)));
|
|
557
557
|
CArray *co;
|
|
558
558
|
GetCArray(vout, co);
|
|
559
559
|
|
|
@@ -582,7 +582,7 @@ cumsum_ki_native_bool (VALUE self, CArray *ca, int axis)
|
|
|
582
582
|
boolean8_t *mi, *mo;
|
|
583
583
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
584
584
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
585
|
-
CA_SLAB_SCAN_T(boolean8_t,
|
|
585
|
+
CA_SLAB_SCAN_T(boolean8_t, ca_u_uint64_t, st_in, pi, mi,
|
|
586
586
|
st_out, po, 0, acc += v; r = acc);
|
|
587
587
|
ca_iter_state_sync_slab(&st_out);
|
|
588
588
|
}
|
|
@@ -822,7 +822,7 @@ static VALUE
|
|
|
822
822
|
cumsum_in_own_type_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
823
823
|
{
|
|
824
824
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT16),
|
|
825
|
-
INT2NUM(sizeof(
|
|
825
|
+
INT2NUM(sizeof(ca_u_int16_t)));
|
|
826
826
|
CArray *co;
|
|
827
827
|
GetCArray(vout, co);
|
|
828
828
|
|
|
@@ -851,7 +851,7 @@ cumsum_in_own_type_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
|
851
851
|
boolean8_t *mi, *mo;
|
|
852
852
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
853
853
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
854
|
-
CA_SLAB_SCAN_T(
|
|
854
|
+
CA_SLAB_SCAN_T(ca_u_int16_t, ca_u_int16_t, st_in, pi, mi,
|
|
855
855
|
st_out, po, 0, acc += v; r = acc);
|
|
856
856
|
ca_iter_state_sync_slab(&st_out);
|
|
857
857
|
}
|
|
@@ -864,7 +864,7 @@ static VALUE
|
|
|
864
864
|
cumsum_in_own_type_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
865
865
|
{
|
|
866
866
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT16),
|
|
867
|
-
INT2NUM(sizeof(
|
|
867
|
+
INT2NUM(sizeof(ca_u_uint16_t)));
|
|
868
868
|
CArray *co;
|
|
869
869
|
GetCArray(vout, co);
|
|
870
870
|
|
|
@@ -893,7 +893,7 @@ cumsum_in_own_type_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
|
893
893
|
boolean8_t *mi, *mo;
|
|
894
894
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
895
895
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
896
|
-
CA_SLAB_SCAN_T(
|
|
896
|
+
CA_SLAB_SCAN_T(ca_u_uint16_t, ca_u_uint16_t, st_in, pi, mi,
|
|
897
897
|
st_out, po, 0, acc += v; r = acc);
|
|
898
898
|
ca_iter_state_sync_slab(&st_out);
|
|
899
899
|
}
|
|
@@ -906,7 +906,7 @@ static VALUE
|
|
|
906
906
|
cumsum_in_own_type_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
907
907
|
{
|
|
908
908
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT32),
|
|
909
|
-
INT2NUM(sizeof(
|
|
909
|
+
INT2NUM(sizeof(ca_u_int32_t)));
|
|
910
910
|
CArray *co;
|
|
911
911
|
GetCArray(vout, co);
|
|
912
912
|
|
|
@@ -935,7 +935,7 @@ cumsum_in_own_type_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
|
935
935
|
boolean8_t *mi, *mo;
|
|
936
936
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
937
937
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
938
|
-
CA_SLAB_SCAN_T(
|
|
938
|
+
CA_SLAB_SCAN_T(ca_u_int32_t, ca_u_int32_t, st_in, pi, mi,
|
|
939
939
|
st_out, po, 0, acc += v; r = acc);
|
|
940
940
|
ca_iter_state_sync_slab(&st_out);
|
|
941
941
|
}
|
|
@@ -948,7 +948,7 @@ static VALUE
|
|
|
948
948
|
cumsum_in_own_type_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
949
949
|
{
|
|
950
950
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT32),
|
|
951
|
-
INT2NUM(sizeof(
|
|
951
|
+
INT2NUM(sizeof(ca_u_uint32_t)));
|
|
952
952
|
CArray *co;
|
|
953
953
|
GetCArray(vout, co);
|
|
954
954
|
|
|
@@ -977,7 +977,7 @@ cumsum_in_own_type_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
|
977
977
|
boolean8_t *mi, *mo;
|
|
978
978
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
979
979
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
980
|
-
CA_SLAB_SCAN_T(
|
|
980
|
+
CA_SLAB_SCAN_T(ca_u_uint32_t, ca_u_uint32_t, st_in, pi, mi,
|
|
981
981
|
st_out, po, 0, acc += v; r = acc);
|
|
982
982
|
ca_iter_state_sync_slab(&st_out);
|
|
983
983
|
}
|
|
@@ -990,7 +990,7 @@ static VALUE
|
|
|
990
990
|
cumsum_in_own_type_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
991
991
|
{
|
|
992
992
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
993
|
-
INT2NUM(sizeof(
|
|
993
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
994
994
|
CArray *co;
|
|
995
995
|
GetCArray(vout, co);
|
|
996
996
|
|
|
@@ -1019,7 +1019,7 @@ cumsum_in_own_type_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
|
1019
1019
|
boolean8_t *mi, *mo;
|
|
1020
1020
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1021
1021
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1022
|
-
CA_SLAB_SCAN_T(
|
|
1022
|
+
CA_SLAB_SCAN_T(ca_u_int64_t, ca_u_int64_t, st_in, pi, mi,
|
|
1023
1023
|
st_out, po, 0, acc += v; r = acc);
|
|
1024
1024
|
ca_iter_state_sync_slab(&st_out);
|
|
1025
1025
|
}
|
|
@@ -1032,7 +1032,7 @@ static VALUE
|
|
|
1032
1032
|
cumsum_in_own_type_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
1033
1033
|
{
|
|
1034
1034
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT64),
|
|
1035
|
-
INT2NUM(sizeof(
|
|
1035
|
+
INT2NUM(sizeof(ca_u_uint64_t)));
|
|
1036
1036
|
CArray *co;
|
|
1037
1037
|
GetCArray(vout, co);
|
|
1038
1038
|
|
|
@@ -1061,7 +1061,7 @@ cumsum_in_own_type_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
|
1061
1061
|
boolean8_t *mi, *mo;
|
|
1062
1062
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1063
1063
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1064
|
-
CA_SLAB_SCAN_T(
|
|
1064
|
+
CA_SLAB_SCAN_T(ca_u_uint64_t, ca_u_uint64_t, st_in, pi, mi,
|
|
1065
1065
|
st_out, po, 0, acc += v; r = acc);
|
|
1066
1066
|
ca_iter_state_sync_slab(&st_out);
|
|
1067
1067
|
}
|
|
@@ -1132,7 +1132,7 @@ static VALUE
|
|
|
1132
1132
|
cumprod_ki_native_i8 (VALUE self, CArray *ca, int axis)
|
|
1133
1133
|
{
|
|
1134
1134
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
1135
|
-
INT2NUM(sizeof(
|
|
1135
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
1136
1136
|
CArray *co;
|
|
1137
1137
|
GetCArray(vout, co);
|
|
1138
1138
|
|
|
@@ -1161,7 +1161,7 @@ cumprod_ki_native_i8 (VALUE self, CArray *ca, int axis)
|
|
|
1161
1161
|
boolean8_t *mi, *mo;
|
|
1162
1162
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1163
1163
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1164
|
-
CA_SLAB_SCAN_T(int8_t,
|
|
1164
|
+
CA_SLAB_SCAN_T(int8_t, ca_u_float64_t, st_in, pi, mi,
|
|
1165
1165
|
st_out, po, 1, acc *= v; r = acc);
|
|
1166
1166
|
ca_iter_state_sync_slab(&st_out);
|
|
1167
1167
|
}
|
|
@@ -1174,7 +1174,7 @@ static VALUE
|
|
|
1174
1174
|
cumprod_ki_native_u8 (VALUE self, CArray *ca, int axis)
|
|
1175
1175
|
{
|
|
1176
1176
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
1177
|
-
INT2NUM(sizeof(
|
|
1177
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
1178
1178
|
CArray *co;
|
|
1179
1179
|
GetCArray(vout, co);
|
|
1180
1180
|
|
|
@@ -1203,7 +1203,7 @@ cumprod_ki_native_u8 (VALUE self, CArray *ca, int axis)
|
|
|
1203
1203
|
boolean8_t *mi, *mo;
|
|
1204
1204
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1205
1205
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1206
|
-
CA_SLAB_SCAN_T(uint8_t,
|
|
1206
|
+
CA_SLAB_SCAN_T(uint8_t, ca_u_float64_t, st_in, pi, mi,
|
|
1207
1207
|
st_out, po, 1, acc *= v; r = acc);
|
|
1208
1208
|
ca_iter_state_sync_slab(&st_out);
|
|
1209
1209
|
}
|
|
@@ -1216,7 +1216,7 @@ static VALUE
|
|
|
1216
1216
|
cumprod_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
1217
1217
|
{
|
|
1218
1218
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
1219
|
-
INT2NUM(sizeof(
|
|
1219
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
1220
1220
|
CArray *co;
|
|
1221
1221
|
GetCArray(vout, co);
|
|
1222
1222
|
|
|
@@ -1245,7 +1245,7 @@ cumprod_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
|
1245
1245
|
boolean8_t *mi, *mo;
|
|
1246
1246
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1247
1247
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1248
|
-
CA_SLAB_SCAN_T(
|
|
1248
|
+
CA_SLAB_SCAN_T(ca_u_int16_t, ca_u_float64_t, st_in, pi, mi,
|
|
1249
1249
|
st_out, po, 1, acc *= v; r = acc);
|
|
1250
1250
|
ca_iter_state_sync_slab(&st_out);
|
|
1251
1251
|
}
|
|
@@ -1258,7 +1258,7 @@ static VALUE
|
|
|
1258
1258
|
cumprod_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
1259
1259
|
{
|
|
1260
1260
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
1261
|
-
INT2NUM(sizeof(
|
|
1261
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
1262
1262
|
CArray *co;
|
|
1263
1263
|
GetCArray(vout, co);
|
|
1264
1264
|
|
|
@@ -1287,7 +1287,7 @@ cumprod_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
|
1287
1287
|
boolean8_t *mi, *mo;
|
|
1288
1288
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1289
1289
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1290
|
-
CA_SLAB_SCAN_T(
|
|
1290
|
+
CA_SLAB_SCAN_T(ca_u_uint16_t, ca_u_float64_t, st_in, pi, mi,
|
|
1291
1291
|
st_out, po, 1, acc *= v; r = acc);
|
|
1292
1292
|
ca_iter_state_sync_slab(&st_out);
|
|
1293
1293
|
}
|
|
@@ -1300,7 +1300,7 @@ static VALUE
|
|
|
1300
1300
|
cumprod_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
1301
1301
|
{
|
|
1302
1302
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
1303
|
-
INT2NUM(sizeof(
|
|
1303
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
1304
1304
|
CArray *co;
|
|
1305
1305
|
GetCArray(vout, co);
|
|
1306
1306
|
|
|
@@ -1329,7 +1329,7 @@ cumprod_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
|
1329
1329
|
boolean8_t *mi, *mo;
|
|
1330
1330
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1331
1331
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1332
|
-
CA_SLAB_SCAN_T(
|
|
1332
|
+
CA_SLAB_SCAN_T(ca_u_int32_t, ca_u_float64_t, st_in, pi, mi,
|
|
1333
1333
|
st_out, po, 1, acc *= v; r = acc);
|
|
1334
1334
|
ca_iter_state_sync_slab(&st_out);
|
|
1335
1335
|
}
|
|
@@ -1342,7 +1342,7 @@ static VALUE
|
|
|
1342
1342
|
cumprod_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
1343
1343
|
{
|
|
1344
1344
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
1345
|
-
INT2NUM(sizeof(
|
|
1345
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
1346
1346
|
CArray *co;
|
|
1347
1347
|
GetCArray(vout, co);
|
|
1348
1348
|
|
|
@@ -1371,7 +1371,7 @@ cumprod_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
|
1371
1371
|
boolean8_t *mi, *mo;
|
|
1372
1372
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1373
1373
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1374
|
-
CA_SLAB_SCAN_T(
|
|
1374
|
+
CA_SLAB_SCAN_T(ca_u_uint32_t, ca_u_float64_t, st_in, pi, mi,
|
|
1375
1375
|
st_out, po, 1, acc *= v; r = acc);
|
|
1376
1376
|
ca_iter_state_sync_slab(&st_out);
|
|
1377
1377
|
}
|
|
@@ -1384,7 +1384,7 @@ static VALUE
|
|
|
1384
1384
|
cumprod_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
1385
1385
|
{
|
|
1386
1386
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
1387
|
-
INT2NUM(sizeof(
|
|
1387
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
1388
1388
|
CArray *co;
|
|
1389
1389
|
GetCArray(vout, co);
|
|
1390
1390
|
|
|
@@ -1413,7 +1413,7 @@ cumprod_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
|
1413
1413
|
boolean8_t *mi, *mo;
|
|
1414
1414
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1415
1415
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1416
|
-
CA_SLAB_SCAN_T(
|
|
1416
|
+
CA_SLAB_SCAN_T(ca_u_int64_t, ca_u_float64_t, st_in, pi, mi,
|
|
1417
1417
|
st_out, po, 1, acc *= v; r = acc);
|
|
1418
1418
|
ca_iter_state_sync_slab(&st_out);
|
|
1419
1419
|
}
|
|
@@ -1426,7 +1426,7 @@ static VALUE
|
|
|
1426
1426
|
cumprod_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
1427
1427
|
{
|
|
1428
1428
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
1429
|
-
INT2NUM(sizeof(
|
|
1429
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
1430
1430
|
CArray *co;
|
|
1431
1431
|
GetCArray(vout, co);
|
|
1432
1432
|
|
|
@@ -1455,7 +1455,7 @@ cumprod_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
|
1455
1455
|
boolean8_t *mi, *mo;
|
|
1456
1456
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1457
1457
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1458
|
-
CA_SLAB_SCAN_T(
|
|
1458
|
+
CA_SLAB_SCAN_T(ca_u_uint64_t, ca_u_float64_t, st_in, pi, mi,
|
|
1459
1459
|
st_out, po, 1, acc *= v; r = acc);
|
|
1460
1460
|
ca_iter_state_sync_slab(&st_out);
|
|
1461
1461
|
}
|
|
@@ -1468,7 +1468,7 @@ static VALUE
|
|
|
1468
1468
|
cumprod_ki_native_f32 (VALUE self, CArray *ca, int axis)
|
|
1469
1469
|
{
|
|
1470
1470
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
1471
|
-
INT2NUM(sizeof(
|
|
1471
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
1472
1472
|
CArray *co;
|
|
1473
1473
|
GetCArray(vout, co);
|
|
1474
1474
|
|
|
@@ -1497,7 +1497,7 @@ cumprod_ki_native_f32 (VALUE self, CArray *ca, int axis)
|
|
|
1497
1497
|
boolean8_t *mi, *mo;
|
|
1498
1498
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1499
1499
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1500
|
-
CA_SLAB_SCAN_T(
|
|
1500
|
+
CA_SLAB_SCAN_T(ca_u_float32_t, ca_u_float64_t, st_in, pi, mi,
|
|
1501
1501
|
st_out, po, 1, acc *= v; r = acc);
|
|
1502
1502
|
ca_iter_state_sync_slab(&st_out);
|
|
1503
1503
|
}
|
|
@@ -1510,7 +1510,7 @@ static VALUE
|
|
|
1510
1510
|
cumprod_ki_native_f64 (VALUE self, CArray *ca, int axis)
|
|
1511
1511
|
{
|
|
1512
1512
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
1513
|
-
INT2NUM(sizeof(
|
|
1513
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
1514
1514
|
CArray *co;
|
|
1515
1515
|
GetCArray(vout, co);
|
|
1516
1516
|
|
|
@@ -1539,7 +1539,7 @@ cumprod_ki_native_f64 (VALUE self, CArray *ca, int axis)
|
|
|
1539
1539
|
boolean8_t *mi, *mo;
|
|
1540
1540
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1541
1541
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1542
|
-
CA_SLAB_SCAN_T(
|
|
1542
|
+
CA_SLAB_SCAN_T(ca_u_float64_t, ca_u_float64_t, st_in, pi, mi,
|
|
1543
1543
|
st_out, po, 1, acc *= v; r = acc);
|
|
1544
1544
|
ca_iter_state_sync_slab(&st_out);
|
|
1545
1545
|
}
|
|
@@ -1552,7 +1552,7 @@ static VALUE
|
|
|
1552
1552
|
cumprod_ki_native_cmplx64 (VALUE self, CArray *ca, int axis)
|
|
1553
1553
|
{
|
|
1554
1554
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_CMPLX128),
|
|
1555
|
-
INT2NUM(sizeof(
|
|
1555
|
+
INT2NUM(sizeof(ca_u_cmplx128_t)));
|
|
1556
1556
|
CArray *co;
|
|
1557
1557
|
GetCArray(vout, co);
|
|
1558
1558
|
|
|
@@ -1581,7 +1581,7 @@ cumprod_ki_native_cmplx64 (VALUE self, CArray *ca, int axis)
|
|
|
1581
1581
|
boolean8_t *mi, *mo;
|
|
1582
1582
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1583
1583
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1584
|
-
CA_SLAB_SCAN_T(
|
|
1584
|
+
CA_SLAB_SCAN_T(ca_u_cmplx64_t, ca_u_cmplx128_t, st_in, pi, mi,
|
|
1585
1585
|
st_out, po, 1, acc *= v; r = acc);
|
|
1586
1586
|
ca_iter_state_sync_slab(&st_out);
|
|
1587
1587
|
}
|
|
@@ -1594,7 +1594,7 @@ static VALUE
|
|
|
1594
1594
|
cumprod_ki_native_cmplx128 (VALUE self, CArray *ca, int axis)
|
|
1595
1595
|
{
|
|
1596
1596
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_CMPLX128),
|
|
1597
|
-
INT2NUM(sizeof(
|
|
1597
|
+
INT2NUM(sizeof(ca_u_cmplx128_t)));
|
|
1598
1598
|
CArray *co;
|
|
1599
1599
|
GetCArray(vout, co);
|
|
1600
1600
|
|
|
@@ -1623,7 +1623,7 @@ cumprod_ki_native_cmplx128 (VALUE self, CArray *ca, int axis)
|
|
|
1623
1623
|
boolean8_t *mi, *mo;
|
|
1624
1624
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1625
1625
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1626
|
-
CA_SLAB_SCAN_T(
|
|
1626
|
+
CA_SLAB_SCAN_T(ca_u_cmplx128_t, ca_u_cmplx128_t, st_in, pi, mi,
|
|
1627
1627
|
st_out, po, 1, acc *= v; r = acc);
|
|
1628
1628
|
ca_iter_state_sync_slab(&st_out);
|
|
1629
1629
|
}
|
|
@@ -1636,7 +1636,7 @@ static VALUE
|
|
|
1636
1636
|
cumprod_ki_native_bool (VALUE self, CArray *ca, int axis)
|
|
1637
1637
|
{
|
|
1638
1638
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT64),
|
|
1639
|
-
INT2NUM(sizeof(
|
|
1639
|
+
INT2NUM(sizeof(ca_u_uint64_t)));
|
|
1640
1640
|
CArray *co;
|
|
1641
1641
|
GetCArray(vout, co);
|
|
1642
1642
|
|
|
@@ -1665,7 +1665,7 @@ cumprod_ki_native_bool (VALUE self, CArray *ca, int axis)
|
|
|
1665
1665
|
boolean8_t *mi, *mo;
|
|
1666
1666
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
1667
1667
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
1668
|
-
CA_SLAB_SCAN_T(boolean8_t,
|
|
1668
|
+
CA_SLAB_SCAN_T(boolean8_t, ca_u_uint64_t, st_in, pi, mi,
|
|
1669
1669
|
st_out, po, 1, acc *= v; r = acc);
|
|
1670
1670
|
ca_iter_state_sync_slab(&st_out);
|
|
1671
1671
|
}
|
|
@@ -1923,7 +1923,7 @@ static VALUE
|
|
|
1923
1923
|
cummax_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
1924
1924
|
{
|
|
1925
1925
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT16),
|
|
1926
|
-
INT2NUM(sizeof(
|
|
1926
|
+
INT2NUM(sizeof(ca_u_int16_t)));
|
|
1927
1927
|
CArray *co;
|
|
1928
1928
|
GetCArray(vout, co);
|
|
1929
1929
|
|
|
@@ -1961,7 +1961,7 @@ cummax_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
|
1961
1961
|
boolean8_t *mo_fiber = op_mask
|
|
1962
1962
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
1963
1963
|
: NULL;
|
|
1964
|
-
CA_SLAB_SCAN_T_GATED(
|
|
1964
|
+
CA_SLAB_SCAN_T_GATED(ca_u_int16_t, ca_u_int16_t, st_in, pi, mi,
|
|
1965
1965
|
st_out, po, mo_fiber, INT16_MIN, if (v > acc) acc = v; r = acc);
|
|
1966
1966
|
ca_iter_state_sync_slab(&st_out);
|
|
1967
1967
|
}
|
|
@@ -1974,7 +1974,7 @@ static VALUE
|
|
|
1974
1974
|
cummax_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
1975
1975
|
{
|
|
1976
1976
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT16),
|
|
1977
|
-
INT2NUM(sizeof(
|
|
1977
|
+
INT2NUM(sizeof(ca_u_uint16_t)));
|
|
1978
1978
|
CArray *co;
|
|
1979
1979
|
GetCArray(vout, co);
|
|
1980
1980
|
|
|
@@ -2012,7 +2012,7 @@ cummax_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
|
2012
2012
|
boolean8_t *mo_fiber = op_mask
|
|
2013
2013
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2014
2014
|
: NULL;
|
|
2015
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2015
|
+
CA_SLAB_SCAN_T_GATED(ca_u_uint16_t, ca_u_uint16_t, st_in, pi, mi,
|
|
2016
2016
|
st_out, po, mo_fiber, 0, if (v > acc) acc = v; r = acc);
|
|
2017
2017
|
ca_iter_state_sync_slab(&st_out);
|
|
2018
2018
|
}
|
|
@@ -2025,7 +2025,7 @@ static VALUE
|
|
|
2025
2025
|
cummax_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
2026
2026
|
{
|
|
2027
2027
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT32),
|
|
2028
|
-
INT2NUM(sizeof(
|
|
2028
|
+
INT2NUM(sizeof(ca_u_int32_t)));
|
|
2029
2029
|
CArray *co;
|
|
2030
2030
|
GetCArray(vout, co);
|
|
2031
2031
|
|
|
@@ -2063,7 +2063,7 @@ cummax_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
|
2063
2063
|
boolean8_t *mo_fiber = op_mask
|
|
2064
2064
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2065
2065
|
: NULL;
|
|
2066
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2066
|
+
CA_SLAB_SCAN_T_GATED(ca_u_int32_t, ca_u_int32_t, st_in, pi, mi,
|
|
2067
2067
|
st_out, po, mo_fiber, INT32_MIN, if (v > acc) acc = v; r = acc);
|
|
2068
2068
|
ca_iter_state_sync_slab(&st_out);
|
|
2069
2069
|
}
|
|
@@ -2076,7 +2076,7 @@ static VALUE
|
|
|
2076
2076
|
cummax_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
2077
2077
|
{
|
|
2078
2078
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT32),
|
|
2079
|
-
INT2NUM(sizeof(
|
|
2079
|
+
INT2NUM(sizeof(ca_u_uint32_t)));
|
|
2080
2080
|
CArray *co;
|
|
2081
2081
|
GetCArray(vout, co);
|
|
2082
2082
|
|
|
@@ -2114,7 +2114,7 @@ cummax_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
|
2114
2114
|
boolean8_t *mo_fiber = op_mask
|
|
2115
2115
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2116
2116
|
: NULL;
|
|
2117
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2117
|
+
CA_SLAB_SCAN_T_GATED(ca_u_uint32_t, ca_u_uint32_t, st_in, pi, mi,
|
|
2118
2118
|
st_out, po, mo_fiber, 0, if (v > acc) acc = v; r = acc);
|
|
2119
2119
|
ca_iter_state_sync_slab(&st_out);
|
|
2120
2120
|
}
|
|
@@ -2127,7 +2127,7 @@ static VALUE
|
|
|
2127
2127
|
cummax_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
2128
2128
|
{
|
|
2129
2129
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
2130
|
-
INT2NUM(sizeof(
|
|
2130
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
2131
2131
|
CArray *co;
|
|
2132
2132
|
GetCArray(vout, co);
|
|
2133
2133
|
|
|
@@ -2165,7 +2165,7 @@ cummax_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
|
2165
2165
|
boolean8_t *mo_fiber = op_mask
|
|
2166
2166
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2167
2167
|
: NULL;
|
|
2168
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2168
|
+
CA_SLAB_SCAN_T_GATED(ca_u_int64_t, ca_u_int64_t, st_in, pi, mi,
|
|
2169
2169
|
st_out, po, mo_fiber, INT64_MIN, if (v > acc) acc = v; r = acc);
|
|
2170
2170
|
ca_iter_state_sync_slab(&st_out);
|
|
2171
2171
|
}
|
|
@@ -2178,7 +2178,7 @@ static VALUE
|
|
|
2178
2178
|
cummax_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
2179
2179
|
{
|
|
2180
2180
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT64),
|
|
2181
|
-
INT2NUM(sizeof(
|
|
2181
|
+
INT2NUM(sizeof(ca_u_uint64_t)));
|
|
2182
2182
|
CArray *co;
|
|
2183
2183
|
GetCArray(vout, co);
|
|
2184
2184
|
|
|
@@ -2216,7 +2216,7 @@ cummax_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
|
2216
2216
|
boolean8_t *mo_fiber = op_mask
|
|
2217
2217
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2218
2218
|
: NULL;
|
|
2219
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2219
|
+
CA_SLAB_SCAN_T_GATED(ca_u_uint64_t, ca_u_uint64_t, st_in, pi, mi,
|
|
2220
2220
|
st_out, po, mo_fiber, 0, if (v > acc) acc = v; r = acc);
|
|
2221
2221
|
ca_iter_state_sync_slab(&st_out);
|
|
2222
2222
|
}
|
|
@@ -2229,7 +2229,7 @@ static VALUE
|
|
|
2229
2229
|
cummax_ki_native_f32 (VALUE self, CArray *ca, int axis)
|
|
2230
2230
|
{
|
|
2231
2231
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT32),
|
|
2232
|
-
INT2NUM(sizeof(
|
|
2232
|
+
INT2NUM(sizeof(ca_u_float32_t)));
|
|
2233
2233
|
CArray *co;
|
|
2234
2234
|
GetCArray(vout, co);
|
|
2235
2235
|
|
|
@@ -2267,7 +2267,7 @@ cummax_ki_native_f32 (VALUE self, CArray *ca, int axis)
|
|
|
2267
2267
|
boolean8_t *mo_fiber = op_mask
|
|
2268
2268
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2269
2269
|
: NULL;
|
|
2270
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2270
|
+
CA_SLAB_SCAN_T_GATED(ca_u_float32_t, ca_u_float32_t, st_in, pi, mi,
|
|
2271
2271
|
st_out, po, mo_fiber, NAN, acc = fmax(acc, v); r = acc);
|
|
2272
2272
|
ca_iter_state_sync_slab(&st_out);
|
|
2273
2273
|
}
|
|
@@ -2280,7 +2280,7 @@ static VALUE
|
|
|
2280
2280
|
cummax_ki_native_f64 (VALUE self, CArray *ca, int axis)
|
|
2281
2281
|
{
|
|
2282
2282
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
2283
|
-
INT2NUM(sizeof(
|
|
2283
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
2284
2284
|
CArray *co;
|
|
2285
2285
|
GetCArray(vout, co);
|
|
2286
2286
|
|
|
@@ -2318,7 +2318,7 @@ cummax_ki_native_f64 (VALUE self, CArray *ca, int axis)
|
|
|
2318
2318
|
boolean8_t *mo_fiber = op_mask
|
|
2319
2319
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2320
2320
|
: NULL;
|
|
2321
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2321
|
+
CA_SLAB_SCAN_T_GATED(ca_u_float64_t, ca_u_float64_t, st_in, pi, mi,
|
|
2322
2322
|
st_out, po, mo_fiber, NAN, acc = fmax(acc, v); r = acc);
|
|
2323
2323
|
ca_iter_state_sync_slab(&st_out);
|
|
2324
2324
|
}
|
|
@@ -2331,7 +2331,7 @@ static VALUE
|
|
|
2331
2331
|
cummax_ki_native_bool (VALUE self, CArray *ca, int axis)
|
|
2332
2332
|
{
|
|
2333
2333
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT64),
|
|
2334
|
-
INT2NUM(sizeof(
|
|
2334
|
+
INT2NUM(sizeof(ca_u_uint64_t)));
|
|
2335
2335
|
CArray *co;
|
|
2336
2336
|
GetCArray(vout, co);
|
|
2337
2337
|
|
|
@@ -2369,7 +2369,7 @@ cummax_ki_native_bool (VALUE self, CArray *ca, int axis)
|
|
|
2369
2369
|
boolean8_t *mo_fiber = op_mask
|
|
2370
2370
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2371
2371
|
: NULL;
|
|
2372
|
-
CA_SLAB_SCAN_T_GATED(boolean8_t,
|
|
2372
|
+
CA_SLAB_SCAN_T_GATED(boolean8_t, ca_u_uint64_t, st_in, pi, mi,
|
|
2373
2373
|
st_out, po, mo_fiber, 0, if ((uint64_t) v > acc) acc = v; r = acc);
|
|
2374
2374
|
ca_iter_state_sync_slab(&st_out);
|
|
2375
2375
|
}
|
|
@@ -2685,7 +2685,7 @@ static VALUE
|
|
|
2685
2685
|
cummin_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
2686
2686
|
{
|
|
2687
2687
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT16),
|
|
2688
|
-
INT2NUM(sizeof(
|
|
2688
|
+
INT2NUM(sizeof(ca_u_int16_t)));
|
|
2689
2689
|
CArray *co;
|
|
2690
2690
|
GetCArray(vout, co);
|
|
2691
2691
|
|
|
@@ -2723,7 +2723,7 @@ cummin_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
|
2723
2723
|
boolean8_t *mo_fiber = op_mask
|
|
2724
2724
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2725
2725
|
: NULL;
|
|
2726
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2726
|
+
CA_SLAB_SCAN_T_GATED(ca_u_int16_t, ca_u_int16_t, st_in, pi, mi,
|
|
2727
2727
|
st_out, po, mo_fiber, INT16_MAX, if (v < acc) acc = v; r = acc);
|
|
2728
2728
|
ca_iter_state_sync_slab(&st_out);
|
|
2729
2729
|
}
|
|
@@ -2736,7 +2736,7 @@ static VALUE
|
|
|
2736
2736
|
cummin_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
2737
2737
|
{
|
|
2738
2738
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT16),
|
|
2739
|
-
INT2NUM(sizeof(
|
|
2739
|
+
INT2NUM(sizeof(ca_u_uint16_t)));
|
|
2740
2740
|
CArray *co;
|
|
2741
2741
|
GetCArray(vout, co);
|
|
2742
2742
|
|
|
@@ -2774,7 +2774,7 @@ cummin_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
|
2774
2774
|
boolean8_t *mo_fiber = op_mask
|
|
2775
2775
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2776
2776
|
: NULL;
|
|
2777
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2777
|
+
CA_SLAB_SCAN_T_GATED(ca_u_uint16_t, ca_u_uint16_t, st_in, pi, mi,
|
|
2778
2778
|
st_out, po, mo_fiber, UINT16_MAX, if (v < acc) acc = v; r = acc);
|
|
2779
2779
|
ca_iter_state_sync_slab(&st_out);
|
|
2780
2780
|
}
|
|
@@ -2787,7 +2787,7 @@ static VALUE
|
|
|
2787
2787
|
cummin_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
2788
2788
|
{
|
|
2789
2789
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT32),
|
|
2790
|
-
INT2NUM(sizeof(
|
|
2790
|
+
INT2NUM(sizeof(ca_u_int32_t)));
|
|
2791
2791
|
CArray *co;
|
|
2792
2792
|
GetCArray(vout, co);
|
|
2793
2793
|
|
|
@@ -2825,7 +2825,7 @@ cummin_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
|
2825
2825
|
boolean8_t *mo_fiber = op_mask
|
|
2826
2826
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2827
2827
|
: NULL;
|
|
2828
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2828
|
+
CA_SLAB_SCAN_T_GATED(ca_u_int32_t, ca_u_int32_t, st_in, pi, mi,
|
|
2829
2829
|
st_out, po, mo_fiber, INT32_MAX, if (v < acc) acc = v; r = acc);
|
|
2830
2830
|
ca_iter_state_sync_slab(&st_out);
|
|
2831
2831
|
}
|
|
@@ -2838,7 +2838,7 @@ static VALUE
|
|
|
2838
2838
|
cummin_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
2839
2839
|
{
|
|
2840
2840
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT32),
|
|
2841
|
-
INT2NUM(sizeof(
|
|
2841
|
+
INT2NUM(sizeof(ca_u_uint32_t)));
|
|
2842
2842
|
CArray *co;
|
|
2843
2843
|
GetCArray(vout, co);
|
|
2844
2844
|
|
|
@@ -2876,7 +2876,7 @@ cummin_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
|
2876
2876
|
boolean8_t *mo_fiber = op_mask
|
|
2877
2877
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2878
2878
|
: NULL;
|
|
2879
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2879
|
+
CA_SLAB_SCAN_T_GATED(ca_u_uint32_t, ca_u_uint32_t, st_in, pi, mi,
|
|
2880
2880
|
st_out, po, mo_fiber, UINT32_MAX, if (v < acc) acc = v; r = acc);
|
|
2881
2881
|
ca_iter_state_sync_slab(&st_out);
|
|
2882
2882
|
}
|
|
@@ -2889,7 +2889,7 @@ static VALUE
|
|
|
2889
2889
|
cummin_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
2890
2890
|
{
|
|
2891
2891
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
2892
|
-
INT2NUM(sizeof(
|
|
2892
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
2893
2893
|
CArray *co;
|
|
2894
2894
|
GetCArray(vout, co);
|
|
2895
2895
|
|
|
@@ -2927,7 +2927,7 @@ cummin_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
|
2927
2927
|
boolean8_t *mo_fiber = op_mask
|
|
2928
2928
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2929
2929
|
: NULL;
|
|
2930
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2930
|
+
CA_SLAB_SCAN_T_GATED(ca_u_int64_t, ca_u_int64_t, st_in, pi, mi,
|
|
2931
2931
|
st_out, po, mo_fiber, INT64_MAX, if (v < acc) acc = v; r = acc);
|
|
2932
2932
|
ca_iter_state_sync_slab(&st_out);
|
|
2933
2933
|
}
|
|
@@ -2940,7 +2940,7 @@ static VALUE
|
|
|
2940
2940
|
cummin_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
2941
2941
|
{
|
|
2942
2942
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT64),
|
|
2943
|
-
INT2NUM(sizeof(
|
|
2943
|
+
INT2NUM(sizeof(ca_u_uint64_t)));
|
|
2944
2944
|
CArray *co;
|
|
2945
2945
|
GetCArray(vout, co);
|
|
2946
2946
|
|
|
@@ -2978,7 +2978,7 @@ cummin_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
|
2978
2978
|
boolean8_t *mo_fiber = op_mask
|
|
2979
2979
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
2980
2980
|
: NULL;
|
|
2981
|
-
CA_SLAB_SCAN_T_GATED(
|
|
2981
|
+
CA_SLAB_SCAN_T_GATED(ca_u_uint64_t, ca_u_uint64_t, st_in, pi, mi,
|
|
2982
2982
|
st_out, po, mo_fiber, UINT64_MAX, if (v < acc) acc = v; r = acc);
|
|
2983
2983
|
ca_iter_state_sync_slab(&st_out);
|
|
2984
2984
|
}
|
|
@@ -2991,7 +2991,7 @@ static VALUE
|
|
|
2991
2991
|
cummin_ki_native_f32 (VALUE self, CArray *ca, int axis)
|
|
2992
2992
|
{
|
|
2993
2993
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT32),
|
|
2994
|
-
INT2NUM(sizeof(
|
|
2994
|
+
INT2NUM(sizeof(ca_u_float32_t)));
|
|
2995
2995
|
CArray *co;
|
|
2996
2996
|
GetCArray(vout, co);
|
|
2997
2997
|
|
|
@@ -3029,7 +3029,7 @@ cummin_ki_native_f32 (VALUE self, CArray *ca, int axis)
|
|
|
3029
3029
|
boolean8_t *mo_fiber = op_mask
|
|
3030
3030
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
3031
3031
|
: NULL;
|
|
3032
|
-
CA_SLAB_SCAN_T_GATED(
|
|
3032
|
+
CA_SLAB_SCAN_T_GATED(ca_u_float32_t, ca_u_float32_t, st_in, pi, mi,
|
|
3033
3033
|
st_out, po, mo_fiber, NAN, acc = fmin(acc, v); r = acc);
|
|
3034
3034
|
ca_iter_state_sync_slab(&st_out);
|
|
3035
3035
|
}
|
|
@@ -3042,7 +3042,7 @@ static VALUE
|
|
|
3042
3042
|
cummin_ki_native_f64 (VALUE self, CArray *ca, int axis)
|
|
3043
3043
|
{
|
|
3044
3044
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_FLOAT64),
|
|
3045
|
-
INT2NUM(sizeof(
|
|
3045
|
+
INT2NUM(sizeof(ca_u_float64_t)));
|
|
3046
3046
|
CArray *co;
|
|
3047
3047
|
GetCArray(vout, co);
|
|
3048
3048
|
|
|
@@ -3080,7 +3080,7 @@ cummin_ki_native_f64 (VALUE self, CArray *ca, int axis)
|
|
|
3080
3080
|
boolean8_t *mo_fiber = op_mask
|
|
3081
3081
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
3082
3082
|
: NULL;
|
|
3083
|
-
CA_SLAB_SCAN_T_GATED(
|
|
3083
|
+
CA_SLAB_SCAN_T_GATED(ca_u_float64_t, ca_u_float64_t, st_in, pi, mi,
|
|
3084
3084
|
st_out, po, mo_fiber, NAN, acc = fmin(acc, v); r = acc);
|
|
3085
3085
|
ca_iter_state_sync_slab(&st_out);
|
|
3086
3086
|
}
|
|
@@ -3093,7 +3093,7 @@ static VALUE
|
|
|
3093
3093
|
cummin_ki_native_bool (VALUE self, CArray *ca, int axis)
|
|
3094
3094
|
{
|
|
3095
3095
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_UINT64),
|
|
3096
|
-
INT2NUM(sizeof(
|
|
3096
|
+
INT2NUM(sizeof(ca_u_uint64_t)));
|
|
3097
3097
|
CArray *co;
|
|
3098
3098
|
GetCArray(vout, co);
|
|
3099
3099
|
|
|
@@ -3131,7 +3131,7 @@ cummin_ki_native_bool (VALUE self, CArray *ca, int axis)
|
|
|
3131
3131
|
boolean8_t *mo_fiber = op_mask
|
|
3132
3132
|
? op_mask + (ca_size_t)(po - st_out.alias_ptr) / (ca_size_t) co->bytes
|
|
3133
3133
|
: NULL;
|
|
3134
|
-
CA_SLAB_SCAN_T_GATED(boolean8_t,
|
|
3134
|
+
CA_SLAB_SCAN_T_GATED(boolean8_t, ca_u_uint64_t, st_in, pi, mi,
|
|
3135
3135
|
st_out, po, mo_fiber, 1, if ((uint64_t) v < acc) acc = v; r = acc);
|
|
3136
3136
|
ca_iter_state_sync_slab(&st_out);
|
|
3137
3137
|
}
|
|
@@ -3345,7 +3345,7 @@ static VALUE
|
|
|
3345
3345
|
cumcount_ki_native_i8 (VALUE self, CArray *ca, int axis)
|
|
3346
3346
|
{
|
|
3347
3347
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
3348
|
-
INT2NUM(sizeof(
|
|
3348
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
3349
3349
|
CArray *co;
|
|
3350
3350
|
GetCArray(vout, co);
|
|
3351
3351
|
|
|
@@ -3374,7 +3374,7 @@ cumcount_ki_native_i8 (VALUE self, CArray *ca, int axis)
|
|
|
3374
3374
|
boolean8_t *mi, *mo;
|
|
3375
3375
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
3376
3376
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
3377
|
-
CA_SLAB_SCAN_T(int8_t,
|
|
3377
|
+
CA_SLAB_SCAN_T(int8_t, ca_u_int64_t, st_in, pi, mi,
|
|
3378
3378
|
st_out, po, 0, (void) v; r = ++acc);
|
|
3379
3379
|
ca_iter_state_sync_slab(&st_out);
|
|
3380
3380
|
}
|
|
@@ -3387,7 +3387,7 @@ static VALUE
|
|
|
3387
3387
|
cumcount_ki_native_u8 (VALUE self, CArray *ca, int axis)
|
|
3388
3388
|
{
|
|
3389
3389
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
3390
|
-
INT2NUM(sizeof(
|
|
3390
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
3391
3391
|
CArray *co;
|
|
3392
3392
|
GetCArray(vout, co);
|
|
3393
3393
|
|
|
@@ -3416,7 +3416,7 @@ cumcount_ki_native_u8 (VALUE self, CArray *ca, int axis)
|
|
|
3416
3416
|
boolean8_t *mi, *mo;
|
|
3417
3417
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
3418
3418
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
3419
|
-
CA_SLAB_SCAN_T(uint8_t,
|
|
3419
|
+
CA_SLAB_SCAN_T(uint8_t, ca_u_int64_t, st_in, pi, mi,
|
|
3420
3420
|
st_out, po, 0, (void) v; r = ++acc);
|
|
3421
3421
|
ca_iter_state_sync_slab(&st_out);
|
|
3422
3422
|
}
|
|
@@ -3429,7 +3429,7 @@ static VALUE
|
|
|
3429
3429
|
cumcount_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
3430
3430
|
{
|
|
3431
3431
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
3432
|
-
INT2NUM(sizeof(
|
|
3432
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
3433
3433
|
CArray *co;
|
|
3434
3434
|
GetCArray(vout, co);
|
|
3435
3435
|
|
|
@@ -3458,7 +3458,7 @@ cumcount_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
|
3458
3458
|
boolean8_t *mi, *mo;
|
|
3459
3459
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
3460
3460
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
3461
|
-
CA_SLAB_SCAN_T(
|
|
3461
|
+
CA_SLAB_SCAN_T(ca_u_int16_t, ca_u_int64_t, st_in, pi, mi,
|
|
3462
3462
|
st_out, po, 0, (void) v; r = ++acc);
|
|
3463
3463
|
ca_iter_state_sync_slab(&st_out);
|
|
3464
3464
|
}
|
|
@@ -3471,7 +3471,7 @@ static VALUE
|
|
|
3471
3471
|
cumcount_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
3472
3472
|
{
|
|
3473
3473
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
3474
|
-
INT2NUM(sizeof(
|
|
3474
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
3475
3475
|
CArray *co;
|
|
3476
3476
|
GetCArray(vout, co);
|
|
3477
3477
|
|
|
@@ -3500,7 +3500,7 @@ cumcount_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
|
3500
3500
|
boolean8_t *mi, *mo;
|
|
3501
3501
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
3502
3502
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
3503
|
-
CA_SLAB_SCAN_T(
|
|
3503
|
+
CA_SLAB_SCAN_T(ca_u_uint16_t, ca_u_int64_t, st_in, pi, mi,
|
|
3504
3504
|
st_out, po, 0, (void) v; r = ++acc);
|
|
3505
3505
|
ca_iter_state_sync_slab(&st_out);
|
|
3506
3506
|
}
|
|
@@ -3513,7 +3513,7 @@ static VALUE
|
|
|
3513
3513
|
cumcount_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
3514
3514
|
{
|
|
3515
3515
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
3516
|
-
INT2NUM(sizeof(
|
|
3516
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
3517
3517
|
CArray *co;
|
|
3518
3518
|
GetCArray(vout, co);
|
|
3519
3519
|
|
|
@@ -3542,7 +3542,7 @@ cumcount_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
|
3542
3542
|
boolean8_t *mi, *mo;
|
|
3543
3543
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
3544
3544
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
3545
|
-
CA_SLAB_SCAN_T(
|
|
3545
|
+
CA_SLAB_SCAN_T(ca_u_int32_t, ca_u_int64_t, st_in, pi, mi,
|
|
3546
3546
|
st_out, po, 0, (void) v; r = ++acc);
|
|
3547
3547
|
ca_iter_state_sync_slab(&st_out);
|
|
3548
3548
|
}
|
|
@@ -3555,7 +3555,7 @@ static VALUE
|
|
|
3555
3555
|
cumcount_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
3556
3556
|
{
|
|
3557
3557
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
3558
|
-
INT2NUM(sizeof(
|
|
3558
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
3559
3559
|
CArray *co;
|
|
3560
3560
|
GetCArray(vout, co);
|
|
3561
3561
|
|
|
@@ -3584,7 +3584,7 @@ cumcount_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
|
3584
3584
|
boolean8_t *mi, *mo;
|
|
3585
3585
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
3586
3586
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
3587
|
-
CA_SLAB_SCAN_T(
|
|
3587
|
+
CA_SLAB_SCAN_T(ca_u_uint32_t, ca_u_int64_t, st_in, pi, mi,
|
|
3588
3588
|
st_out, po, 0, (void) v; r = ++acc);
|
|
3589
3589
|
ca_iter_state_sync_slab(&st_out);
|
|
3590
3590
|
}
|
|
@@ -3597,7 +3597,7 @@ static VALUE
|
|
|
3597
3597
|
cumcount_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
3598
3598
|
{
|
|
3599
3599
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
3600
|
-
INT2NUM(sizeof(
|
|
3600
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
3601
3601
|
CArray *co;
|
|
3602
3602
|
GetCArray(vout, co);
|
|
3603
3603
|
|
|
@@ -3626,7 +3626,7 @@ cumcount_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
|
3626
3626
|
boolean8_t *mi, *mo;
|
|
3627
3627
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
3628
3628
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
3629
|
-
CA_SLAB_SCAN_T(
|
|
3629
|
+
CA_SLAB_SCAN_T(ca_u_int64_t, ca_u_int64_t, st_in, pi, mi,
|
|
3630
3630
|
st_out, po, 0, (void) v; r = ++acc);
|
|
3631
3631
|
ca_iter_state_sync_slab(&st_out);
|
|
3632
3632
|
}
|
|
@@ -3639,7 +3639,7 @@ static VALUE
|
|
|
3639
3639
|
cumcount_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
3640
3640
|
{
|
|
3641
3641
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
3642
|
-
INT2NUM(sizeof(
|
|
3642
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
3643
3643
|
CArray *co;
|
|
3644
3644
|
GetCArray(vout, co);
|
|
3645
3645
|
|
|
@@ -3668,7 +3668,7 @@ cumcount_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
|
3668
3668
|
boolean8_t *mi, *mo;
|
|
3669
3669
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
3670
3670
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
3671
|
-
CA_SLAB_SCAN_T(
|
|
3671
|
+
CA_SLAB_SCAN_T(ca_u_uint64_t, ca_u_int64_t, st_in, pi, mi,
|
|
3672
3672
|
st_out, po, 0, (void) v; r = ++acc);
|
|
3673
3673
|
ca_iter_state_sync_slab(&st_out);
|
|
3674
3674
|
}
|
|
@@ -3681,7 +3681,7 @@ static VALUE
|
|
|
3681
3681
|
cumcount_ki_native_f32 (VALUE self, CArray *ca, int axis)
|
|
3682
3682
|
{
|
|
3683
3683
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
3684
|
-
INT2NUM(sizeof(
|
|
3684
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
3685
3685
|
CArray *co;
|
|
3686
3686
|
GetCArray(vout, co);
|
|
3687
3687
|
|
|
@@ -3710,7 +3710,7 @@ cumcount_ki_native_f32 (VALUE self, CArray *ca, int axis)
|
|
|
3710
3710
|
boolean8_t *mi, *mo;
|
|
3711
3711
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
3712
3712
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
3713
|
-
CA_SLAB_SCAN_T(
|
|
3713
|
+
CA_SLAB_SCAN_T(ca_u_float32_t, ca_u_int64_t, st_in, pi, mi,
|
|
3714
3714
|
st_out, po, 0, (void) v; r = ++acc);
|
|
3715
3715
|
ca_iter_state_sync_slab(&st_out);
|
|
3716
3716
|
}
|
|
@@ -3723,7 +3723,7 @@ static VALUE
|
|
|
3723
3723
|
cumcount_ki_native_f64 (VALUE self, CArray *ca, int axis)
|
|
3724
3724
|
{
|
|
3725
3725
|
VALUE vout = rb_ca_template_with_type(self, INT2NUM(CA_INT64),
|
|
3726
|
-
INT2NUM(sizeof(
|
|
3726
|
+
INT2NUM(sizeof(ca_u_int64_t)));
|
|
3727
3727
|
CArray *co;
|
|
3728
3728
|
GetCArray(vout, co);
|
|
3729
3729
|
|
|
@@ -3752,7 +3752,7 @@ cumcount_ki_native_f64 (VALUE self, CArray *ca, int axis)
|
|
|
3752
3752
|
boolean8_t *mi, *mo;
|
|
3753
3753
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
3754
3754
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
3755
|
-
CA_SLAB_SCAN_T(
|
|
3755
|
+
CA_SLAB_SCAN_T(ca_u_float64_t, ca_u_int64_t, st_in, pi, mi,
|
|
3756
3756
|
st_out, po, 0, (void) v; r = ++acc);
|
|
3757
3757
|
ca_iter_state_sync_slab(&st_out);
|
|
3758
3758
|
}
|
|
@@ -3938,7 +3938,7 @@ uniq_scan_ki_native_i16 (VALUE self, CArray *ca, int axis)
|
|
|
3938
3938
|
boolean8_t *mi, *mo;
|
|
3939
3939
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
3940
3940
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
3941
|
-
CA_SLAB_SCAN_TA(
|
|
3941
|
+
CA_SLAB_SCAN_TA(ca_u_int16_t, boolean8_t, ca_u_int16_t, st_in, pi, mi,
|
|
3942
3942
|
st_out, po, 0, if (first) { acc = v; r = 0; } else if (v == acc) { r = 1; } else { acc = v; r = 0; });
|
|
3943
3943
|
ca_iter_state_sync_slab(&st_out);
|
|
3944
3944
|
}
|
|
@@ -3980,7 +3980,7 @@ uniq_scan_ki_native_u16 (VALUE self, CArray *ca, int axis)
|
|
|
3980
3980
|
boolean8_t *mi, *mo;
|
|
3981
3981
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
3982
3982
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
3983
|
-
CA_SLAB_SCAN_TA(
|
|
3983
|
+
CA_SLAB_SCAN_TA(ca_u_uint16_t, boolean8_t, ca_u_uint16_t, st_in, pi, mi,
|
|
3984
3984
|
st_out, po, 0, if (first) { acc = v; r = 0; } else if (v == acc) { r = 1; } else { acc = v; r = 0; });
|
|
3985
3985
|
ca_iter_state_sync_slab(&st_out);
|
|
3986
3986
|
}
|
|
@@ -4022,7 +4022,7 @@ uniq_scan_ki_native_i32 (VALUE self, CArray *ca, int axis)
|
|
|
4022
4022
|
boolean8_t *mi, *mo;
|
|
4023
4023
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
4024
4024
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
4025
|
-
CA_SLAB_SCAN_TA(
|
|
4025
|
+
CA_SLAB_SCAN_TA(ca_u_int32_t, boolean8_t, ca_u_int32_t, st_in, pi, mi,
|
|
4026
4026
|
st_out, po, 0, if (first) { acc = v; r = 0; } else if (v == acc) { r = 1; } else { acc = v; r = 0; });
|
|
4027
4027
|
ca_iter_state_sync_slab(&st_out);
|
|
4028
4028
|
}
|
|
@@ -4064,7 +4064,7 @@ uniq_scan_ki_native_u32 (VALUE self, CArray *ca, int axis)
|
|
|
4064
4064
|
boolean8_t *mi, *mo;
|
|
4065
4065
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
4066
4066
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
4067
|
-
CA_SLAB_SCAN_TA(
|
|
4067
|
+
CA_SLAB_SCAN_TA(ca_u_uint32_t, boolean8_t, ca_u_uint32_t, st_in, pi, mi,
|
|
4068
4068
|
st_out, po, 0, if (first) { acc = v; r = 0; } else if (v == acc) { r = 1; } else { acc = v; r = 0; });
|
|
4069
4069
|
ca_iter_state_sync_slab(&st_out);
|
|
4070
4070
|
}
|
|
@@ -4106,7 +4106,7 @@ uniq_scan_ki_native_i64 (VALUE self, CArray *ca, int axis)
|
|
|
4106
4106
|
boolean8_t *mi, *mo;
|
|
4107
4107
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
4108
4108
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
4109
|
-
CA_SLAB_SCAN_TA(
|
|
4109
|
+
CA_SLAB_SCAN_TA(ca_u_int64_t, boolean8_t, ca_u_int64_t, st_in, pi, mi,
|
|
4110
4110
|
st_out, po, 0, if (first) { acc = v; r = 0; } else if (v == acc) { r = 1; } else { acc = v; r = 0; });
|
|
4111
4111
|
ca_iter_state_sync_slab(&st_out);
|
|
4112
4112
|
}
|
|
@@ -4148,7 +4148,7 @@ uniq_scan_ki_native_u64 (VALUE self, CArray *ca, int axis)
|
|
|
4148
4148
|
boolean8_t *mi, *mo;
|
|
4149
4149
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
4150
4150
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
4151
|
-
CA_SLAB_SCAN_TA(
|
|
4151
|
+
CA_SLAB_SCAN_TA(ca_u_uint64_t, boolean8_t, ca_u_uint64_t, st_in, pi, mi,
|
|
4152
4152
|
st_out, po, 0, if (first) { acc = v; r = 0; } else if (v == acc) { r = 1; } else { acc = v; r = 0; });
|
|
4153
4153
|
ca_iter_state_sync_slab(&st_out);
|
|
4154
4154
|
}
|
|
@@ -4190,7 +4190,7 @@ uniq_scan_ki_native_f32 (VALUE self, CArray *ca, int axis)
|
|
|
4190
4190
|
boolean8_t *mi, *mo;
|
|
4191
4191
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
4192
4192
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
4193
|
-
CA_SLAB_SCAN_TA(
|
|
4193
|
+
CA_SLAB_SCAN_TA(ca_u_float32_t, boolean8_t, ca_u_float32_t, st_in, pi, mi,
|
|
4194
4194
|
st_out, po, 0, if (first) { acc = v; r = 0; } else if (v == acc) { r = 1; } else { acc = v; r = 0; });
|
|
4195
4195
|
ca_iter_state_sync_slab(&st_out);
|
|
4196
4196
|
}
|
|
@@ -4232,7 +4232,7 @@ uniq_scan_ki_native_f64 (VALUE self, CArray *ca, int axis)
|
|
|
4232
4232
|
boolean8_t *mi, *mo;
|
|
4233
4233
|
while ( ca_iter_state_next_slab_axes(&st_in, &pi, &mi) &&
|
|
4234
4234
|
ca_iter_state_next_slab_axes(&st_out, &po, &mo) ) {
|
|
4235
|
-
CA_SLAB_SCAN_TA(
|
|
4235
|
+
CA_SLAB_SCAN_TA(ca_u_float64_t, boolean8_t, ca_u_float64_t, st_in, pi, mi,
|
|
4236
4236
|
st_out, po, 0, if (first) { acc = v; r = 0; } else if (v == acc) { r = 1; } else { acc = v; r = 0; });
|
|
4237
4237
|
ca_iter_state_sync_slab(&st_out);
|
|
4238
4238
|
}
|