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.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +205 -0
  3. data/carray.gemspec +1 -1
  4. data/ext/ca_array_pool.c +25 -1
  5. data/ext/ca_axis_dispatch.c +13 -20
  6. data/ext/ca_categorical_iterator.c +27 -20
  7. data/ext/ca_compare.c +4 -4
  8. data/ext/ca_composite_dispatch.c +9 -9
  9. data/ext/ca_kernel_iterator.c +6 -6
  10. data/ext/ca_kernel_iterator.h +112 -83
  11. data/ext/ca_obj_array.c +69 -19
  12. data/ext/ca_obj_bincmp.c +1 -0
  13. data/ext/ca_obj_binop.c +1 -0
  14. data/ext/ca_obj_bitarray.c +5 -1
  15. data/ext/ca_obj_bitfield.c +58 -43
  16. data/ext/ca_obj_byte_swap.c +2 -1
  17. data/ext/ca_obj_const_string.c +15 -3
  18. data/ext/ca_obj_face.c +42 -1
  19. data/ext/ca_obj_field.c +13 -3
  20. data/ext/ca_obj_grid.c +52 -5
  21. data/ext/ca_obj_monop.c +46 -10
  22. data/ext/ca_obj_object.c +64 -12
  23. data/ext/ca_obj_record.c +3 -0
  24. data/ext/ca_obj_reduce.c +4 -0
  25. data/ext/ca_obj_refer.c +18 -9
  26. data/ext/ca_obj_roll.c +26 -6
  27. data/ext/ca_obj_select.c +34 -5
  28. data/ext/ca_obj_shift.c +31 -7
  29. data/ext/ca_obj_stack.c +1 -0
  30. data/ext/ca_obj_stride.c +28 -19
  31. data/ext/ca_obj_string.c +11 -2
  32. data/ext/ca_obj_tile.c +27 -7
  33. data/ext/ca_obj_transpose.c +8 -4
  34. data/ext/ca_obj_triop.c +3 -0
  35. data/ext/ca_obj_window.c +79 -50
  36. data/ext/ca_op_ipower.c +4 -4
  37. data/ext/ca_sort_kernels.h +6 -3
  38. data/ext/carray.h +33 -0
  39. data/ext/carray_access.c +16 -3
  40. data/ext/carray_attribute.c +24 -0
  41. data/ext/carray_cast.c +243 -82
  42. data/ext/carray_cast_func.rb +56 -26
  43. data/ext/carray_conversion.c +2 -2
  44. data/ext/carray_core.c +3 -0
  45. data/ext/carray_count.c +6 -0
  46. data/ext/carray_element.c +9 -4
  47. data/ext/carray_factorize.c +20 -20
  48. data/ext/carray_generate.c +8 -2
  49. data/ext/carray_histogram.c +1 -1
  50. data/ext/carray_index_classifier.c +4 -4
  51. data/ext/carray_internal.h +12 -0
  52. data/ext/carray_kernels_bincmp.c +168 -168
  53. data/ext/carray_kernels_binop.c +900 -900
  54. data/ext/carray_kernels_init.c +4 -4
  55. data/ext/carray_kernels_moncmp.c +96 -96
  56. data/ext/carray_kernels_monop.c +1984 -1984
  57. data/ext/carray_kernels_reduce_aggregate.c +1733 -1733
  58. data/ext/carray_kernels_reduce_cumulative.c +642 -642
  59. data/ext/carray_kernels_reduce_extreme.c +1150 -1150
  60. data/ext/carray_kernels_reduce_variance.c +258 -258
  61. data/ext/carray_kernels_scan.c +128 -128
  62. data/ext/carray_kernels_search.c +340 -340
  63. data/ext/carray_kernels_sort.c +295 -304
  64. data/ext/carray_kernels_triop.c +114 -114
  65. data/ext/carray_key_windows.c +4 -0
  66. data/ext/carray_mask.c +45 -22
  67. data/ext/carray_memory_view.c +2 -2
  68. data/ext/carray_operator.c +5 -5
  69. data/ext/carray_order.c +227 -8
  70. data/ext/carray_random.c +18 -18
  71. data/ext/carray_scatter.c +24 -7
  72. data/ext/carray_slab.c +32 -9
  73. data/ext/carray_sort.c +224 -16
  74. data/ext/carray_sort_kernel.c +5 -7
  75. data/ext/carray_struct.c +35 -43
  76. data/ext/carray_time_text.c +4 -2
  77. data/ext/carray_utils.c +63 -21
  78. data/ext/mkkernel.rb +210 -115
  79. data/ext/version.h +4 -4
  80. data/lib/carray/attribute.rb +17 -4
  81. data/lib/carray/basics.rb +27 -7
  82. data/lib/carray/categorical.rb +30 -16
  83. data/lib/carray/categorical_iterator.rb +6 -6
  84. data/lib/carray/const_string.rb +10 -0
  85. data/lib/carray/data_type_extension.rb +8 -1
  86. data/lib/carray/fixlen_string.rb +41 -2
  87. data/lib/carray/frame/column_verbs.rb +4 -3
  88. data/lib/carray/frame/concat.rb +17 -3
  89. data/lib/carray/frame/frame.rb +6 -7
  90. data/lib/carray/frame/group.rb +100 -13
  91. data/lib/carray/frame/io.rb +3 -1
  92. data/lib/carray/fuse_source.rb +31 -2
  93. data/lib/carray/lazy.rb +35 -0
  94. data/lib/carray/methods/is_in.rb +8 -1
  95. data/lib/carray/segment_iterator.rb +12 -8
  96. data/lib/carray/serialize.rb +19 -2
  97. data/lib/carray/stack.rb +15 -12
  98. data/lib/carray/string.rb +8 -0
  99. data/lib/carray/string_operation_extension.rb +13 -5
  100. data/lib/carray/struct_builder.rb +5 -3
  101. data/lib/carray/time.rb +107 -68
  102. data/yard-stubs/ca_obj_transpose.rb +5 -4
  103. data/yard-stubs/carray_attribute.rb +3 -1
  104. data/yard-stubs/carray_cast.rb +2 -0
  105. data/yard-stubs/carray_conversion.rb +5 -1
  106. data/yard-stubs/carray_element.rb +7 -6
  107. data/yard-stubs/carray_mask.rb +8 -3
  108. data/yard-stubs/carray_math.rb +14 -4
  109. data/yard-stubs/carray_order.rb +100 -4
  110. data/yard-stubs/carray_scatter.rb +7 -5
  111. metadata +1 -1
@@ -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(double)));
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, double, st_in, pi, mi,
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(double)));
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, double, st_in, pi, mi,
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(double)));
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(int16_t, double, st_in, pi, mi,
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(double)));
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(uint16_t, double, st_in, pi, mi,
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(double)));
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(int32_t, double, st_in, pi, mi,
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(double)));
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(uint32_t, double, st_in, pi, mi,
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(double)));
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(int64_t, double, st_in, pi, mi,
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(double)));
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(uint64_t, double, st_in, pi, mi,
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(double)));
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(float, double, st_in, pi, mi,
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(double)));
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(double, double, st_in, pi, mi,
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(cmplx128_t)));
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(cmplx64_t, cmplx128_t, st_in, pi, mi,
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(cmplx128_t)));
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(cmplx128_t, cmplx128_t, st_in, pi, mi,
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(uint64_t)));
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, uint64_t, st_in, pi, mi,
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(int16_t)));
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(int16_t, int16_t, st_in, pi, mi,
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(uint16_t)));
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(uint16_t, uint16_t, st_in, pi, mi,
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(int32_t)));
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(int32_t, int32_t, st_in, pi, mi,
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(uint32_t)));
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(uint32_t, uint32_t, st_in, pi, mi,
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(int64_t)));
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(int64_t, int64_t, st_in, pi, mi,
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(uint64_t)));
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(uint64_t, uint64_t, st_in, pi, mi,
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(double)));
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, double, st_in, pi, mi,
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(double)));
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, double, st_in, pi, mi,
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(double)));
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(int16_t, double, st_in, pi, mi,
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(double)));
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(uint16_t, double, st_in, pi, mi,
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(double)));
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(int32_t, double, st_in, pi, mi,
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(double)));
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(uint32_t, double, st_in, pi, mi,
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(double)));
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(int64_t, double, st_in, pi, mi,
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(double)));
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(uint64_t, double, st_in, pi, mi,
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(double)));
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(float, double, st_in, pi, mi,
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(double)));
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(double, double, st_in, pi, mi,
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(cmplx128_t)));
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(cmplx64_t, cmplx128_t, st_in, pi, mi,
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(cmplx128_t)));
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(cmplx128_t, cmplx128_t, st_in, pi, mi,
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(uint64_t)));
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, uint64_t, st_in, pi, mi,
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(int16_t)));
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(int16_t, int16_t, st_in, pi, mi,
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(uint16_t)));
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(uint16_t, uint16_t, st_in, pi, mi,
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(int32_t)));
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(int32_t, int32_t, st_in, pi, mi,
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(uint32_t)));
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(uint32_t, uint32_t, st_in, pi, mi,
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(int64_t)));
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(int64_t, int64_t, st_in, pi, mi,
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(uint64_t)));
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(uint64_t, uint64_t, st_in, pi, mi,
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(float)));
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(float, float, st_in, pi, mi,
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(double)));
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(double, double, st_in, pi, mi,
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(uint64_t)));
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, uint64_t, st_in, pi, mi,
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(int16_t)));
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(int16_t, int16_t, st_in, pi, mi,
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(uint16_t)));
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(uint16_t, uint16_t, st_in, pi, mi,
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(int32_t)));
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(int32_t, int32_t, st_in, pi, mi,
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(uint32_t)));
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(uint32_t, uint32_t, st_in, pi, mi,
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(int64_t)));
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(int64_t, int64_t, st_in, pi, mi,
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(uint64_t)));
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(uint64_t, uint64_t, st_in, pi, mi,
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(float)));
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(float, float, st_in, pi, mi,
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(double)));
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(double, double, st_in, pi, mi,
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(uint64_t)));
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, uint64_t, st_in, pi, mi,
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(int64_t)));
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, int64_t, st_in, pi, mi,
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(int64_t)));
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, int64_t, st_in, pi, mi,
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(int64_t)));
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(int16_t, int64_t, st_in, pi, mi,
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(int64_t)));
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(uint16_t, int64_t, st_in, pi, mi,
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(int64_t)));
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(int32_t, int64_t, st_in, pi, mi,
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(int64_t)));
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(uint32_t, int64_t, st_in, pi, mi,
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(int64_t)));
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(int64_t, int64_t, st_in, pi, mi,
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(int64_t)));
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(uint64_t, int64_t, st_in, pi, mi,
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(int64_t)));
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(float, int64_t, st_in, pi, mi,
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(int64_t)));
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(double, int64_t, st_in, pi, mi,
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(int16_t, boolean8_t, int16_t, st_in, pi, mi,
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(uint16_t, boolean8_t, uint16_t, st_in, pi, mi,
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(int32_t, boolean8_t, int32_t, st_in, pi, mi,
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(uint32_t, boolean8_t, uint32_t, st_in, pi, mi,
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(int64_t, boolean8_t, int64_t, st_in, pi, mi,
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(uint64_t, boolean8_t, uint64_t, st_in, pi, mi,
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(float, boolean8_t, float, st_in, pi, mi,
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(double, boolean8_t, double, st_in, pi, mi,
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
  }