carray 3.0.1 → 3.0.2

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 (104) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +520 -0
  3. data/README.md +2 -2
  4. data/carray.gemspec +1 -1
  5. data/ext/ca_axis_dispatch.c +33 -4
  6. data/ext/ca_axis_group.c +202 -96
  7. data/ext/ca_categorical_iterator.c +108 -54
  8. data/ext/ca_kernel_iterator.c +317 -51
  9. data/ext/ca_kernel_iterator.h +142 -35
  10. data/ext/ca_obj_array.c +62 -20
  11. data/ext/ca_obj_block.c +4 -4
  12. data/ext/ca_obj_const_string.c +85 -26
  13. data/ext/ca_obj_face.c +24 -0
  14. data/ext/ca_obj_face.h +15 -0
  15. data/ext/ca_obj_fixlen_string.c +18 -5
  16. data/ext/ca_obj_meld.c +123 -25
  17. data/ext/ca_obj_object.c +8 -0
  18. data/ext/ca_obj_select.c +49 -34
  19. data/ext/ca_obj_stack.c +3 -8
  20. data/ext/ca_obj_stride.c +72 -1
  21. data/ext/ca_obj_string.c +8 -4
  22. data/ext/ca_obj_window.c +8 -2
  23. data/ext/ca_op_ipower.c +1 -2
  24. data/ext/ca_rng_normal.h +42 -0
  25. data/ext/ca_rng_xoshiro256pp.h +105 -0
  26. data/ext/ca_sweep_engine.c +307 -143
  27. data/ext/ca_sweep_engine.h +26 -5
  28. data/ext/carray.h +21 -2
  29. data/ext/carray_access.c +32 -20
  30. data/ext/carray_address_basis.c +590 -0
  31. data/ext/carray_broadcast.c +3 -3
  32. data/ext/carray_call_cfunc.c +667 -483
  33. data/ext/carray_cast.c +115 -41
  34. data/ext/carray_copy.c +55 -30
  35. data/ext/carray_core.c +83 -3
  36. data/ext/carray_count.c +9 -10
  37. data/ext/carray_factorize.c +46 -25
  38. data/ext/carray_internal.h +17 -0
  39. data/ext/carray_kernels_reduce_aggregate.c +168 -0
  40. data/ext/carray_kernels_reduce_cumulative.c +270 -1
  41. data/ext/carray_kernels_reduce_extreme.c +554 -8
  42. data/ext/carray_kernels_scan.c +4 -4
  43. data/ext/carray_kernels_search.c +94 -14
  44. data/ext/carray_loop.c +7 -1
  45. data/ext/carray_mask.c +23 -8
  46. data/ext/carray_median_percentile.c +55 -0
  47. data/ext/carray_operator.c +4 -4
  48. data/ext/carray_order.c +1 -1
  49. data/ext/carray_random.c +384 -40
  50. data/ext/carray_slab.c +13 -0
  51. data/ext/carray_sort.c +20 -22
  52. data/ext/mk_call_cfunc.rb +103 -116
  53. data/ext/mkkernel.rb +297 -29
  54. data/ext/ruby_carray.c +10 -1
  55. data/ext/version.h +4 -4
  56. data/lib/carray/autoload_carray.rb +5 -3
  57. data/lib/carray/autoload_method_extension.rb +12 -0
  58. data/lib/carray/axis_group.rb +77 -0
  59. data/lib/carray/basics.rb +4 -0
  60. data/lib/carray/block_iterator.rb +92 -16
  61. data/lib/carray/categorical.rb +150 -33
  62. data/lib/carray/categorical_iterator.rb +207 -80
  63. data/lib/carray/const_string.rb +131 -27
  64. data/lib/carray/construct.rb +40 -0
  65. data/lib/carray/data_type_extension.rb +3 -0
  66. data/lib/carray/data_type_limits.rb +91 -0
  67. data/lib/carray/fixlen_string.rb +1 -1
  68. data/lib/carray/frame/csv_parser.rb +11 -4
  69. data/lib/carray/frame/frame.rb +81 -10
  70. data/lib/carray/frame/group.rb +36 -3
  71. data/lib/carray/frame/io.rb +67 -15
  72. data/lib/carray/frame/records.rb +18 -4
  73. data/lib/carray/frame/verbs.rb +14 -11
  74. data/lib/carray/inspect.rb +42 -9
  75. data/lib/carray/iterator.rb +143 -0
  76. data/lib/carray/lazy.rb +0 -37
  77. data/lib/carray/mask_gap_fill.rb +3 -1
  78. data/lib/carray/methods/discovery_along.rb +74 -0
  79. data/lib/carray/methods/factorize.rb +50 -0
  80. data/lib/carray/methods/is_in.rb +13 -2
  81. data/lib/carray/methods/locate_addr.rb +75 -2
  82. data/lib/carray/methods/mask_duplicates.rb +35 -1
  83. data/lib/carray/methods/nunique.rb +22 -1
  84. data/lib/carray/methods/repeat.rb +110 -0
  85. data/lib/carray/methods/unique.rb +41 -1
  86. data/lib/carray/rng.rb +86 -0
  87. data/lib/carray/slab_iterator.rb +58 -13
  88. data/lib/carray/string_operation_extension.rb +5 -1
  89. data/lib/carray/time.rb +18 -2
  90. data/lib/carray/window_iterator.rb +142 -20
  91. data/lib/carray.rb +2 -0
  92. data/yard-stubs/ca_obj_block.rb +2 -7
  93. data/yard-stubs/ca_obj_window.rb +10 -2
  94. data/yard-stubs/carray_access.rb +1 -1
  95. data/yard-stubs/carray_broadcast.rb +1 -1
  96. data/yard-stubs/carray_core.rb +0 -80
  97. data/yard-stubs/carray_count.rb +7 -2
  98. data/yard-stubs/carray_lazy.rb +205 -0
  99. data/yard-stubs/carray_math.rb +1486 -3
  100. data/yard-stubs/carray_median_percentile.rb +16 -2
  101. data/yard-stubs/carray_order.rb +9 -69
  102. data/yard-stubs/carray_slab.rb +9 -7
  103. data/yard-stubs/carray_sort.rb +7 -5
  104. metadata +9 -1
@@ -137,6 +137,7 @@ sum_ki_native_i8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int k
137
137
  (void) v;
138
138
  }
139
139
  }
140
+
140
141
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
141
142
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
142
143
  }
@@ -216,6 +217,7 @@ sum_ki_native_i8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int k
216
217
  (void) v;
217
218
  }
218
219
  }
220
+
219
221
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
220
222
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
221
223
  }
@@ -341,6 +343,7 @@ sum_ki_native_i8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int k
341
343
  (void) v;
342
344
  }
343
345
  }
346
+
344
347
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
345
348
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
346
349
  }
@@ -501,6 +504,7 @@ sum_ki_native_i8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int k
501
504
  (void) v;
502
505
  }
503
506
  }
507
+
504
508
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
505
509
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
506
510
  }
@@ -656,6 +660,7 @@ sum_ki_native_u8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int k
656
660
  (void) v;
657
661
  }
658
662
  }
663
+
659
664
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
660
665
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
661
666
  }
@@ -735,6 +740,7 @@ sum_ki_native_u8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int k
735
740
  (void) v;
736
741
  }
737
742
  }
743
+
738
744
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
739
745
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
740
746
  }
@@ -860,6 +866,7 @@ sum_ki_native_u8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int k
860
866
  (void) v;
861
867
  }
862
868
  }
869
+
863
870
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
864
871
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
865
872
  }
@@ -1020,6 +1027,7 @@ sum_ki_native_u8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int k
1020
1027
  (void) v;
1021
1028
  }
1022
1029
  }
1030
+
1023
1031
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
1024
1032
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
1025
1033
  }
@@ -1175,6 +1183,7 @@ sum_ki_native_i16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
1175
1183
  (void) v;
1176
1184
  }
1177
1185
  }
1186
+
1178
1187
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
1179
1188
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
1180
1189
  }
@@ -1254,6 +1263,7 @@ sum_ki_native_i16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
1254
1263
  (void) v;
1255
1264
  }
1256
1265
  }
1266
+
1257
1267
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
1258
1268
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
1259
1269
  }
@@ -1379,6 +1389,7 @@ sum_ki_native_i16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
1379
1389
  (void) v;
1380
1390
  }
1381
1391
  }
1392
+
1382
1393
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
1383
1394
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
1384
1395
  }
@@ -1539,6 +1550,7 @@ sum_ki_native_i16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
1539
1550
  (void) v;
1540
1551
  }
1541
1552
  }
1553
+
1542
1554
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
1543
1555
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
1544
1556
  }
@@ -1694,6 +1706,7 @@ sum_ki_native_u16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
1694
1706
  (void) v;
1695
1707
  }
1696
1708
  }
1709
+
1697
1710
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
1698
1711
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
1699
1712
  }
@@ -1773,6 +1786,7 @@ sum_ki_native_u16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
1773
1786
  (void) v;
1774
1787
  }
1775
1788
  }
1789
+
1776
1790
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
1777
1791
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
1778
1792
  }
@@ -1898,6 +1912,7 @@ sum_ki_native_u16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
1898
1912
  (void) v;
1899
1913
  }
1900
1914
  }
1915
+
1901
1916
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
1902
1917
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
1903
1918
  }
@@ -2058,6 +2073,7 @@ sum_ki_native_u16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
2058
2073
  (void) v;
2059
2074
  }
2060
2075
  }
2076
+
2061
2077
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
2062
2078
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
2063
2079
  }
@@ -2213,6 +2229,7 @@ sum_ki_native_i32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
2213
2229
  (void) v;
2214
2230
  }
2215
2231
  }
2232
+
2216
2233
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
2217
2234
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
2218
2235
  }
@@ -2292,6 +2309,7 @@ sum_ki_native_i32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
2292
2309
  (void) v;
2293
2310
  }
2294
2311
  }
2312
+
2295
2313
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
2296
2314
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
2297
2315
  }
@@ -2417,6 +2435,7 @@ sum_ki_native_i32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
2417
2435
  (void) v;
2418
2436
  }
2419
2437
  }
2438
+
2420
2439
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
2421
2440
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
2422
2441
  }
@@ -2577,6 +2596,7 @@ sum_ki_native_i32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
2577
2596
  (void) v;
2578
2597
  }
2579
2598
  }
2599
+
2580
2600
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
2581
2601
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
2582
2602
  }
@@ -2732,6 +2752,7 @@ sum_ki_native_u32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
2732
2752
  (void) v;
2733
2753
  }
2734
2754
  }
2755
+
2735
2756
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
2736
2757
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
2737
2758
  }
@@ -2811,6 +2832,7 @@ sum_ki_native_u32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
2811
2832
  (void) v;
2812
2833
  }
2813
2834
  }
2835
+
2814
2836
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
2815
2837
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
2816
2838
  }
@@ -2936,6 +2958,7 @@ sum_ki_native_u32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
2936
2958
  (void) v;
2937
2959
  }
2938
2960
  }
2961
+
2939
2962
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
2940
2963
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
2941
2964
  }
@@ -3096,6 +3119,7 @@ sum_ki_native_u32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
3096
3119
  (void) v;
3097
3120
  }
3098
3121
  }
3122
+
3099
3123
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
3100
3124
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
3101
3125
  }
@@ -3251,6 +3275,7 @@ sum_ki_native_i64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
3251
3275
  (void) v;
3252
3276
  }
3253
3277
  }
3278
+
3254
3279
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
3255
3280
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
3256
3281
  }
@@ -3330,6 +3355,7 @@ sum_ki_native_i64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
3330
3355
  (void) v;
3331
3356
  }
3332
3357
  }
3358
+
3333
3359
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
3334
3360
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
3335
3361
  }
@@ -3455,6 +3481,7 @@ sum_ki_native_i64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
3455
3481
  (void) v;
3456
3482
  }
3457
3483
  }
3484
+
3458
3485
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
3459
3486
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
3460
3487
  }
@@ -3615,6 +3642,7 @@ sum_ki_native_i64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
3615
3642
  (void) v;
3616
3643
  }
3617
3644
  }
3645
+
3618
3646
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
3619
3647
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
3620
3648
  }
@@ -3770,6 +3798,7 @@ sum_ki_native_u64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
3770
3798
  (void) v;
3771
3799
  }
3772
3800
  }
3801
+
3773
3802
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
3774
3803
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
3775
3804
  }
@@ -3849,6 +3878,7 @@ sum_ki_native_u64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
3849
3878
  (void) v;
3850
3879
  }
3851
3880
  }
3881
+
3852
3882
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
3853
3883
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
3854
3884
  }
@@ -3974,6 +4004,7 @@ sum_ki_native_u64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
3974
4004
  (void) v;
3975
4005
  }
3976
4006
  }
4007
+
3977
4008
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
3978
4009
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
3979
4010
  }
@@ -4134,6 +4165,7 @@ sum_ki_native_u64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
4134
4165
  (void) v;
4135
4166
  }
4136
4167
  }
4168
+
4137
4169
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
4138
4170
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
4139
4171
  }
@@ -4289,6 +4321,7 @@ sum_ki_native_f32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
4289
4321
  (void) v;
4290
4322
  }
4291
4323
  }
4324
+
4292
4325
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
4293
4326
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
4294
4327
  }
@@ -4368,6 +4401,7 @@ sum_ki_native_f32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
4368
4401
  (void) v;
4369
4402
  }
4370
4403
  }
4404
+
4371
4405
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
4372
4406
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
4373
4407
  }
@@ -4493,6 +4527,7 @@ sum_ki_native_f32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
4493
4527
  (void) v;
4494
4528
  }
4495
4529
  }
4530
+
4496
4531
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
4497
4532
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
4498
4533
  }
@@ -4653,6 +4688,7 @@ sum_ki_native_f32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
4653
4688
  (void) v;
4654
4689
  }
4655
4690
  }
4691
+
4656
4692
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
4657
4693
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
4658
4694
  }
@@ -4808,6 +4844,7 @@ sum_ki_native_f64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
4808
4844
  (void) v;
4809
4845
  }
4810
4846
  }
4847
+
4811
4848
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
4812
4849
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
4813
4850
  }
@@ -4887,6 +4924,7 @@ sum_ki_native_f64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
4887
4924
  (void) v;
4888
4925
  }
4889
4926
  }
4927
+
4890
4928
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
4891
4929
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
4892
4930
  }
@@ -5012,6 +5050,7 @@ sum_ki_native_f64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
5012
5050
  (void) v;
5013
5051
  }
5014
5052
  }
5053
+
5015
5054
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
5016
5055
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
5017
5056
  }
@@ -5172,6 +5211,7 @@ sum_ki_native_f64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
5172
5211
  (void) v;
5173
5212
  }
5174
5213
  }
5214
+
5175
5215
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
5176
5216
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
5177
5217
  }
@@ -5327,6 +5367,7 @@ sum_ki_native_cmplx64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
5327
5367
  (void) v;
5328
5368
  }
5329
5369
  }
5370
+
5330
5371
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
5331
5372
  op[__li_o * __li_INNER + __li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
5332
5373
  }
@@ -5406,6 +5447,7 @@ sum_ki_native_cmplx64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
5406
5447
  (void) v;
5407
5448
  }
5408
5449
  }
5450
+
5409
5451
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
5410
5452
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
5411
5453
  }
@@ -5531,6 +5573,7 @@ sum_ki_native_cmplx64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
5531
5573
  (void) v;
5532
5574
  }
5533
5575
  }
5576
+
5534
5577
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
5535
5578
  __li_op_k[__li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
5536
5579
  }
@@ -5691,6 +5734,7 @@ sum_ki_native_cmplx64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
5691
5734
  (void) v;
5692
5735
  }
5693
5736
  }
5737
+
5694
5738
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
5695
5739
  __li_op_k[__li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
5696
5740
  }
@@ -5846,6 +5890,7 @@ sum_ki_native_cmplx128 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
5846
5890
  (void) v;
5847
5891
  }
5848
5892
  }
5893
+
5849
5894
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
5850
5895
  op[__li_o * __li_INNER + __li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
5851
5896
  }
@@ -5925,6 +5970,7 @@ sum_ki_native_cmplx128 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
5925
5970
  (void) v;
5926
5971
  }
5927
5972
  }
5973
+
5928
5974
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
5929
5975
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
5930
5976
  }
@@ -6050,6 +6096,7 @@ sum_ki_native_cmplx128 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
6050
6096
  (void) v;
6051
6097
  }
6052
6098
  }
6099
+
6053
6100
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
6054
6101
  __li_op_k[__li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
6055
6102
  }
@@ -6210,6 +6257,7 @@ sum_ki_native_cmplx128 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
6210
6257
  (void) v;
6211
6258
  }
6212
6259
  }
6260
+
6213
6261
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
6214
6262
  __li_op_k[__li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
6215
6263
  }
@@ -6365,6 +6413,7 @@ sum_ki_native_bool (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
6365
6413
  (void) v;
6366
6414
  }
6367
6415
  }
6416
+
6368
6417
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
6369
6418
  op[__li_o * __li_INNER + __li_tile + __j] = (uint64_t) (__li_buf_acc[__j]);
6370
6419
  }
@@ -6444,6 +6493,7 @@ sum_ki_native_bool (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
6444
6493
  (void) v;
6445
6494
  }
6446
6495
  }
6496
+
6447
6497
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
6448
6498
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (uint64_t) (__li_buf_acc[__j]);
6449
6499
  }
@@ -6569,6 +6619,7 @@ sum_ki_native_bool (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
6569
6619
  (void) v;
6570
6620
  }
6571
6621
  }
6622
+
6572
6623
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
6573
6624
  __li_op_k[__li_tile + __j] = (uint64_t) (__li_buf_acc[__j]);
6574
6625
  }
@@ -6729,6 +6780,7 @@ sum_ki_native_bool (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
6729
6780
  (void) v;
6730
6781
  }
6731
6782
  }
6783
+
6732
6784
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
6733
6785
  __li_op_k[__li_tile + __j] = (uint64_t) (__li_buf_acc[__j]);
6734
6786
  }
@@ -6884,6 +6936,7 @@ sum_ki_native_object (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, i
6884
6936
  (void) v;
6885
6937
  }
6886
6938
  }
6939
+
6887
6940
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
6888
6941
  op[__li_o * __li_INNER + __li_tile + __j] = (VALUE) (__li_buf_acc[__j]);
6889
6942
  }
@@ -6963,6 +7016,7 @@ sum_ki_native_object (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, i
6963
7016
  (void) v;
6964
7017
  }
6965
7018
  }
7019
+
6966
7020
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
6967
7021
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (VALUE) (__li_buf_acc[__j]);
6968
7022
  }
@@ -7088,6 +7142,7 @@ sum_ki_native_object (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, i
7088
7142
  (void) v;
7089
7143
  }
7090
7144
  }
7145
+
7091
7146
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
7092
7147
  __li_op_k[__li_tile + __j] = (VALUE) (__li_buf_acc[__j]);
7093
7148
  }
@@ -7248,6 +7303,7 @@ sum_ki_native_object (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, i
7248
7303
  (void) v;
7249
7304
  }
7250
7305
  }
7306
+
7251
7307
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
7252
7308
  __li_op_k[__li_tile + __j] = (VALUE) (__li_buf_acc[__j]);
7253
7309
  }
@@ -7501,6 +7557,7 @@ prod_ki_native_i8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
7501
7557
  (void) v;
7502
7558
  }
7503
7559
  }
7560
+
7504
7561
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
7505
7562
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
7506
7563
  }
@@ -7580,6 +7637,7 @@ prod_ki_native_i8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
7580
7637
  (void) v;
7581
7638
  }
7582
7639
  }
7640
+
7583
7641
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
7584
7642
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
7585
7643
  }
@@ -7705,6 +7763,7 @@ prod_ki_native_i8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
7705
7763
  (void) v;
7706
7764
  }
7707
7765
  }
7766
+
7708
7767
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
7709
7768
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
7710
7769
  }
@@ -7865,6 +7924,7 @@ prod_ki_native_i8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
7865
7924
  (void) v;
7866
7925
  }
7867
7926
  }
7927
+
7868
7928
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
7869
7929
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
7870
7930
  }
@@ -8020,6 +8080,7 @@ prod_ki_native_u8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
8020
8080
  (void) v;
8021
8081
  }
8022
8082
  }
8083
+
8023
8084
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
8024
8085
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
8025
8086
  }
@@ -8099,6 +8160,7 @@ prod_ki_native_u8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
8099
8160
  (void) v;
8100
8161
  }
8101
8162
  }
8163
+
8102
8164
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
8103
8165
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
8104
8166
  }
@@ -8224,6 +8286,7 @@ prod_ki_native_u8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
8224
8286
  (void) v;
8225
8287
  }
8226
8288
  }
8289
+
8227
8290
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
8228
8291
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
8229
8292
  }
@@ -8384,6 +8447,7 @@ prod_ki_native_u8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
8384
8447
  (void) v;
8385
8448
  }
8386
8449
  }
8450
+
8387
8451
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
8388
8452
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
8389
8453
  }
@@ -8539,6 +8603,7 @@ prod_ki_native_i16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
8539
8603
  (void) v;
8540
8604
  }
8541
8605
  }
8606
+
8542
8607
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
8543
8608
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
8544
8609
  }
@@ -8618,6 +8683,7 @@ prod_ki_native_i16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
8618
8683
  (void) v;
8619
8684
  }
8620
8685
  }
8686
+
8621
8687
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
8622
8688
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
8623
8689
  }
@@ -8743,6 +8809,7 @@ prod_ki_native_i16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
8743
8809
  (void) v;
8744
8810
  }
8745
8811
  }
8812
+
8746
8813
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
8747
8814
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
8748
8815
  }
@@ -8903,6 +8970,7 @@ prod_ki_native_i16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
8903
8970
  (void) v;
8904
8971
  }
8905
8972
  }
8973
+
8906
8974
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
8907
8975
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
8908
8976
  }
@@ -9058,6 +9126,7 @@ prod_ki_native_u16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
9058
9126
  (void) v;
9059
9127
  }
9060
9128
  }
9129
+
9061
9130
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
9062
9131
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
9063
9132
  }
@@ -9137,6 +9206,7 @@ prod_ki_native_u16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
9137
9206
  (void) v;
9138
9207
  }
9139
9208
  }
9209
+
9140
9210
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
9141
9211
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
9142
9212
  }
@@ -9262,6 +9332,7 @@ prod_ki_native_u16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
9262
9332
  (void) v;
9263
9333
  }
9264
9334
  }
9335
+
9265
9336
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
9266
9337
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
9267
9338
  }
@@ -9422,6 +9493,7 @@ prod_ki_native_u16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
9422
9493
  (void) v;
9423
9494
  }
9424
9495
  }
9496
+
9425
9497
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
9426
9498
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
9427
9499
  }
@@ -9577,6 +9649,7 @@ prod_ki_native_i32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
9577
9649
  (void) v;
9578
9650
  }
9579
9651
  }
9652
+
9580
9653
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
9581
9654
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
9582
9655
  }
@@ -9656,6 +9729,7 @@ prod_ki_native_i32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
9656
9729
  (void) v;
9657
9730
  }
9658
9731
  }
9732
+
9659
9733
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
9660
9734
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
9661
9735
  }
@@ -9781,6 +9855,7 @@ prod_ki_native_i32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
9781
9855
  (void) v;
9782
9856
  }
9783
9857
  }
9858
+
9784
9859
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
9785
9860
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
9786
9861
  }
@@ -9941,6 +10016,7 @@ prod_ki_native_i32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
9941
10016
  (void) v;
9942
10017
  }
9943
10018
  }
10019
+
9944
10020
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
9945
10021
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
9946
10022
  }
@@ -10096,6 +10172,7 @@ prod_ki_native_u32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
10096
10172
  (void) v;
10097
10173
  }
10098
10174
  }
10175
+
10099
10176
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
10100
10177
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
10101
10178
  }
@@ -10175,6 +10252,7 @@ prod_ki_native_u32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
10175
10252
  (void) v;
10176
10253
  }
10177
10254
  }
10255
+
10178
10256
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
10179
10257
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
10180
10258
  }
@@ -10300,6 +10378,7 @@ prod_ki_native_u32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
10300
10378
  (void) v;
10301
10379
  }
10302
10380
  }
10381
+
10303
10382
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
10304
10383
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
10305
10384
  }
@@ -10460,6 +10539,7 @@ prod_ki_native_u32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
10460
10539
  (void) v;
10461
10540
  }
10462
10541
  }
10542
+
10463
10543
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
10464
10544
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
10465
10545
  }
@@ -10615,6 +10695,7 @@ prod_ki_native_i64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
10615
10695
  (void) v;
10616
10696
  }
10617
10697
  }
10698
+
10618
10699
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
10619
10700
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
10620
10701
  }
@@ -10694,6 +10775,7 @@ prod_ki_native_i64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
10694
10775
  (void) v;
10695
10776
  }
10696
10777
  }
10778
+
10697
10779
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
10698
10780
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
10699
10781
  }
@@ -10819,6 +10901,7 @@ prod_ki_native_i64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
10819
10901
  (void) v;
10820
10902
  }
10821
10903
  }
10904
+
10822
10905
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
10823
10906
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
10824
10907
  }
@@ -10979,6 +11062,7 @@ prod_ki_native_i64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
10979
11062
  (void) v;
10980
11063
  }
10981
11064
  }
11065
+
10982
11066
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
10983
11067
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
10984
11068
  }
@@ -11134,6 +11218,7 @@ prod_ki_native_u64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
11134
11218
  (void) v;
11135
11219
  }
11136
11220
  }
11221
+
11137
11222
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
11138
11223
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
11139
11224
  }
@@ -11213,6 +11298,7 @@ prod_ki_native_u64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
11213
11298
  (void) v;
11214
11299
  }
11215
11300
  }
11301
+
11216
11302
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
11217
11303
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
11218
11304
  }
@@ -11338,6 +11424,7 @@ prod_ki_native_u64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
11338
11424
  (void) v;
11339
11425
  }
11340
11426
  }
11427
+
11341
11428
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
11342
11429
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
11343
11430
  }
@@ -11498,6 +11585,7 @@ prod_ki_native_u64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
11498
11585
  (void) v;
11499
11586
  }
11500
11587
  }
11588
+
11501
11589
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
11502
11590
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
11503
11591
  }
@@ -11653,6 +11741,7 @@ prod_ki_native_f32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
11653
11741
  (void) v;
11654
11742
  }
11655
11743
  }
11744
+
11656
11745
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
11657
11746
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
11658
11747
  }
@@ -11732,6 +11821,7 @@ prod_ki_native_f32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
11732
11821
  (void) v;
11733
11822
  }
11734
11823
  }
11824
+
11735
11825
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
11736
11826
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
11737
11827
  }
@@ -11857,6 +11947,7 @@ prod_ki_native_f32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
11857
11947
  (void) v;
11858
11948
  }
11859
11949
  }
11950
+
11860
11951
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
11861
11952
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
11862
11953
  }
@@ -12017,6 +12108,7 @@ prod_ki_native_f32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
12017
12108
  (void) v;
12018
12109
  }
12019
12110
  }
12111
+
12020
12112
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
12021
12113
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
12022
12114
  }
@@ -12172,6 +12264,7 @@ prod_ki_native_f64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
12172
12264
  (void) v;
12173
12265
  }
12174
12266
  }
12267
+
12175
12268
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
12176
12269
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
12177
12270
  }
@@ -12251,6 +12344,7 @@ prod_ki_native_f64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
12251
12344
  (void) v;
12252
12345
  }
12253
12346
  }
12347
+
12254
12348
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
12255
12349
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (__li_buf_acc[__j]);
12256
12350
  }
@@ -12376,6 +12470,7 @@ prod_ki_native_f64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
12376
12470
  (void) v;
12377
12471
  }
12378
12472
  }
12473
+
12379
12474
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
12380
12475
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
12381
12476
  }
@@ -12536,6 +12631,7 @@ prod_ki_native_f64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
12536
12631
  (void) v;
12537
12632
  }
12538
12633
  }
12634
+
12539
12635
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
12540
12636
  __li_op_k[__li_tile + __j] = (double) (__li_buf_acc[__j]);
12541
12637
  }
@@ -12691,6 +12787,7 @@ prod_ki_native_cmplx64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
12691
12787
  (void) v;
12692
12788
  }
12693
12789
  }
12790
+
12694
12791
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
12695
12792
  op[__li_o * __li_INNER + __li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
12696
12793
  }
@@ -12770,6 +12867,7 @@ prod_ki_native_cmplx64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
12770
12867
  (void) v;
12771
12868
  }
12772
12869
  }
12870
+
12773
12871
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
12774
12872
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
12775
12873
  }
@@ -12895,6 +12993,7 @@ prod_ki_native_cmplx64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
12895
12993
  (void) v;
12896
12994
  }
12897
12995
  }
12996
+
12898
12997
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
12899
12998
  __li_op_k[__li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
12900
12999
  }
@@ -13055,6 +13154,7 @@ prod_ki_native_cmplx64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
13055
13154
  (void) v;
13056
13155
  }
13057
13156
  }
13157
+
13058
13158
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
13059
13159
  __li_op_k[__li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
13060
13160
  }
@@ -13210,6 +13310,7 @@ prod_ki_native_cmplx128 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes
13210
13310
  (void) v;
13211
13311
  }
13212
13312
  }
13313
+
13213
13314
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
13214
13315
  op[__li_o * __li_INNER + __li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
13215
13316
  }
@@ -13289,6 +13390,7 @@ prod_ki_native_cmplx128 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes
13289
13390
  (void) v;
13290
13391
  }
13291
13392
  }
13393
+
13292
13394
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
13293
13395
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
13294
13396
  }
@@ -13414,6 +13516,7 @@ prod_ki_native_cmplx128 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes
13414
13516
  (void) v;
13415
13517
  }
13416
13518
  }
13519
+
13417
13520
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
13418
13521
  __li_op_k[__li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
13419
13522
  }
@@ -13574,6 +13677,7 @@ prod_ki_native_cmplx128 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes
13574
13677
  (void) v;
13575
13678
  }
13576
13679
  }
13680
+
13577
13681
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
13578
13682
  __li_op_k[__li_tile + __j] = (cmplx128_t) (__li_buf_acc[__j]);
13579
13683
  }
@@ -13729,6 +13833,7 @@ prod_ki_native_bool (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, in
13729
13833
  (void) v;
13730
13834
  }
13731
13835
  }
13836
+
13732
13837
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
13733
13838
  op[__li_o * __li_INNER + __li_tile + __j] = (uint64_t) (__li_buf_acc[__j]);
13734
13839
  }
@@ -13808,6 +13913,7 @@ prod_ki_native_bool (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, in
13808
13913
  (void) v;
13809
13914
  }
13810
13915
  }
13916
+
13811
13917
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
13812
13918
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (uint64_t) (__li_buf_acc[__j]);
13813
13919
  }
@@ -13933,6 +14039,7 @@ prod_ki_native_bool (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, in
13933
14039
  (void) v;
13934
14040
  }
13935
14041
  }
14042
+
13936
14043
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
13937
14044
  __li_op_k[__li_tile + __j] = (uint64_t) (__li_buf_acc[__j]);
13938
14045
  }
@@ -14093,6 +14200,7 @@ prod_ki_native_bool (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, in
14093
14200
  (void) v;
14094
14201
  }
14095
14202
  }
14203
+
14096
14204
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
14097
14205
  __li_op_k[__li_tile + __j] = (uint64_t) (__li_buf_acc[__j]);
14098
14206
  }
@@ -14248,6 +14356,7 @@ prod_ki_native_object (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
14248
14356
  (void) v;
14249
14357
  }
14250
14358
  }
14359
+
14251
14360
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
14252
14361
  op[__li_o * __li_INNER + __li_tile + __j] = (VALUE) (__li_buf_acc[__j]);
14253
14362
  }
@@ -14327,6 +14436,7 @@ prod_ki_native_object (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
14327
14436
  (void) v;
14328
14437
  }
14329
14438
  }
14439
+
14330
14440
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
14331
14441
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (VALUE) (__li_buf_acc[__j]);
14332
14442
  }
@@ -14452,6 +14562,7 @@ prod_ki_native_object (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
14452
14562
  (void) v;
14453
14563
  }
14454
14564
  }
14565
+
14455
14566
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
14456
14567
  __li_op_k[__li_tile + __j] = (VALUE) (__li_buf_acc[__j]);
14457
14568
  }
@@ -14612,6 +14723,7 @@ prod_ki_native_object (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
14612
14723
  (void) v;
14613
14724
  }
14614
14725
  }
14726
+
14615
14727
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
14616
14728
  __li_op_k[__li_tile + __j] = (VALUE) (__li_buf_acc[__j]);
14617
14729
  }
@@ -14866,6 +14978,7 @@ mean_ki_native_i8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
14866
14978
  (void) v;
14867
14979
  }
14868
14980
  }
14981
+
14869
14982
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
14870
14983
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
14871
14984
  }
@@ -14945,6 +15058,7 @@ mean_ki_native_i8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
14945
15058
  (void) v;
14946
15059
  }
14947
15060
  }
15061
+
14948
15062
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
14949
15063
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
14950
15064
  }
@@ -15070,6 +15184,7 @@ mean_ki_native_i8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
15070
15184
  (void) v;
15071
15185
  }
15072
15186
  }
15187
+
15073
15188
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
15074
15189
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
15075
15190
  }
@@ -15230,6 +15345,7 @@ mean_ki_native_i8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
15230
15345
  (void) v;
15231
15346
  }
15232
15347
  }
15348
+
15233
15349
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
15234
15350
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
15235
15351
  }
@@ -15388,6 +15504,7 @@ mean_ki_native_u8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
15388
15504
  (void) v;
15389
15505
  }
15390
15506
  }
15507
+
15391
15508
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
15392
15509
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
15393
15510
  }
@@ -15467,6 +15584,7 @@ mean_ki_native_u8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
15467
15584
  (void) v;
15468
15585
  }
15469
15586
  }
15587
+
15470
15588
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
15471
15589
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
15472
15590
  }
@@ -15592,6 +15710,7 @@ mean_ki_native_u8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
15592
15710
  (void) v;
15593
15711
  }
15594
15712
  }
15713
+
15595
15714
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
15596
15715
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
15597
15716
  }
@@ -15752,6 +15871,7 @@ mean_ki_native_u8 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
15752
15871
  (void) v;
15753
15872
  }
15754
15873
  }
15874
+
15755
15875
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
15756
15876
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
15757
15877
  }
@@ -15910,6 +16030,7 @@ mean_ki_native_i16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
15910
16030
  (void) v;
15911
16031
  }
15912
16032
  }
16033
+
15913
16034
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
15914
16035
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
15915
16036
  }
@@ -15989,6 +16110,7 @@ mean_ki_native_i16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
15989
16110
  (void) v;
15990
16111
  }
15991
16112
  }
16113
+
15992
16114
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
15993
16115
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
15994
16116
  }
@@ -16114,6 +16236,7 @@ mean_ki_native_i16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
16114
16236
  (void) v;
16115
16237
  }
16116
16238
  }
16239
+
16117
16240
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
16118
16241
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
16119
16242
  }
@@ -16274,6 +16397,7 @@ mean_ki_native_i16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
16274
16397
  (void) v;
16275
16398
  }
16276
16399
  }
16400
+
16277
16401
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
16278
16402
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
16279
16403
  }
@@ -16432,6 +16556,7 @@ mean_ki_native_u16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
16432
16556
  (void) v;
16433
16557
  }
16434
16558
  }
16559
+
16435
16560
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
16436
16561
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
16437
16562
  }
@@ -16511,6 +16636,7 @@ mean_ki_native_u16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
16511
16636
  (void) v;
16512
16637
  }
16513
16638
  }
16639
+
16514
16640
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
16515
16641
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
16516
16642
  }
@@ -16636,6 +16762,7 @@ mean_ki_native_u16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
16636
16762
  (void) v;
16637
16763
  }
16638
16764
  }
16765
+
16639
16766
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
16640
16767
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
16641
16768
  }
@@ -16796,6 +16923,7 @@ mean_ki_native_u16 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
16796
16923
  (void) v;
16797
16924
  }
16798
16925
  }
16926
+
16799
16927
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
16800
16928
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
16801
16929
  }
@@ -16954,6 +17082,7 @@ mean_ki_native_i32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
16954
17082
  (void) v;
16955
17083
  }
16956
17084
  }
17085
+
16957
17086
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
16958
17087
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
16959
17088
  }
@@ -17033,6 +17162,7 @@ mean_ki_native_i32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
17033
17162
  (void) v;
17034
17163
  }
17035
17164
  }
17165
+
17036
17166
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
17037
17167
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
17038
17168
  }
@@ -17158,6 +17288,7 @@ mean_ki_native_i32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
17158
17288
  (void) v;
17159
17289
  }
17160
17290
  }
17291
+
17161
17292
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
17162
17293
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
17163
17294
  }
@@ -17318,6 +17449,7 @@ mean_ki_native_i32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
17318
17449
  (void) v;
17319
17450
  }
17320
17451
  }
17452
+
17321
17453
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
17322
17454
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
17323
17455
  }
@@ -17476,6 +17608,7 @@ mean_ki_native_u32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
17476
17608
  (void) v;
17477
17609
  }
17478
17610
  }
17611
+
17479
17612
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
17480
17613
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
17481
17614
  }
@@ -17555,6 +17688,7 @@ mean_ki_native_u32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
17555
17688
  (void) v;
17556
17689
  }
17557
17690
  }
17691
+
17558
17692
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
17559
17693
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
17560
17694
  }
@@ -17680,6 +17814,7 @@ mean_ki_native_u32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
17680
17814
  (void) v;
17681
17815
  }
17682
17816
  }
17817
+
17683
17818
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
17684
17819
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
17685
17820
  }
@@ -17840,6 +17975,7 @@ mean_ki_native_u32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
17840
17975
  (void) v;
17841
17976
  }
17842
17977
  }
17978
+
17843
17979
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
17844
17980
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
17845
17981
  }
@@ -17998,6 +18134,7 @@ mean_ki_native_i64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
17998
18134
  (void) v;
17999
18135
  }
18000
18136
  }
18137
+
18001
18138
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
18002
18139
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
18003
18140
  }
@@ -18077,6 +18214,7 @@ mean_ki_native_i64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
18077
18214
  (void) v;
18078
18215
  }
18079
18216
  }
18217
+
18080
18218
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
18081
18219
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
18082
18220
  }
@@ -18202,6 +18340,7 @@ mean_ki_native_i64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
18202
18340
  (void) v;
18203
18341
  }
18204
18342
  }
18343
+
18205
18344
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
18206
18345
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
18207
18346
  }
@@ -18362,6 +18501,7 @@ mean_ki_native_i64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
18362
18501
  (void) v;
18363
18502
  }
18364
18503
  }
18504
+
18365
18505
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
18366
18506
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
18367
18507
  }
@@ -18520,6 +18660,7 @@ mean_ki_native_u64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
18520
18660
  (void) v;
18521
18661
  }
18522
18662
  }
18663
+
18523
18664
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
18524
18665
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
18525
18666
  }
@@ -18599,6 +18740,7 @@ mean_ki_native_u64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
18599
18740
  (void) v;
18600
18741
  }
18601
18742
  }
18743
+
18602
18744
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
18603
18745
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
18604
18746
  }
@@ -18724,6 +18866,7 @@ mean_ki_native_u64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
18724
18866
  (void) v;
18725
18867
  }
18726
18868
  }
18869
+
18727
18870
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
18728
18871
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
18729
18872
  }
@@ -18884,6 +19027,7 @@ mean_ki_native_u64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
18884
19027
  (void) v;
18885
19028
  }
18886
19029
  }
19030
+
18887
19031
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
18888
19032
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
18889
19033
  }
@@ -19042,6 +19186,7 @@ mean_ki_native_f32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
19042
19186
  (void) v;
19043
19187
  }
19044
19188
  }
19189
+
19045
19190
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
19046
19191
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
19047
19192
  }
@@ -19121,6 +19266,7 @@ mean_ki_native_f32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
19121
19266
  (void) v;
19122
19267
  }
19123
19268
  }
19269
+
19124
19270
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
19125
19271
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
19126
19272
  }
@@ -19246,6 +19392,7 @@ mean_ki_native_f32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
19246
19392
  (void) v;
19247
19393
  }
19248
19394
  }
19395
+
19249
19396
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
19250
19397
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
19251
19398
  }
@@ -19406,6 +19553,7 @@ mean_ki_native_f32 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
19406
19553
  (void) v;
19407
19554
  }
19408
19555
  }
19556
+
19409
19557
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
19410
19558
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
19411
19559
  }
@@ -19564,6 +19712,7 @@ mean_ki_native_f64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
19564
19712
  (void) v;
19565
19713
  }
19566
19714
  }
19715
+
19567
19716
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
19568
19717
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
19569
19718
  }
@@ -19643,6 +19792,7 @@ mean_ki_native_f64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
19643
19792
  (void) v;
19644
19793
  }
19645
19794
  }
19795
+
19646
19796
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
19647
19797
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
19648
19798
  }
@@ -19768,6 +19918,7 @@ mean_ki_native_f64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
19768
19918
  (void) v;
19769
19919
  }
19770
19920
  }
19921
+
19771
19922
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
19772
19923
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
19773
19924
  }
@@ -19928,6 +20079,7 @@ mean_ki_native_f64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, int
19928
20079
  (void) v;
19929
20080
  }
19930
20081
  }
20082
+
19931
20083
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
19932
20084
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
19933
20085
  }
@@ -20086,6 +20238,7 @@ mean_ki_native_cmplx64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
20086
20238
  (void) v;
20087
20239
  }
20088
20240
  }
20241
+
20089
20242
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
20090
20243
  op[__li_o * __li_INNER + __li_tile + __j] = (cmplx128_t) (((int64_t)__li_M) ? __li_buf_acc[__j] / (cmplx128_t) ((int64_t)__li_M) : 0);
20091
20244
  }
@@ -20165,6 +20318,7 @@ mean_ki_native_cmplx64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
20165
20318
  (void) v;
20166
20319
  }
20167
20320
  }
20321
+
20168
20322
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
20169
20323
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (cmplx128_t) (((int64_t)__li_M) ? __li_buf_acc[__j] / (cmplx128_t) ((int64_t)__li_M) : 0);
20170
20324
  }
@@ -20290,6 +20444,7 @@ mean_ki_native_cmplx64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
20290
20444
  (void) v;
20291
20445
  }
20292
20446
  }
20447
+
20293
20448
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
20294
20449
  __li_op_k[__li_tile + __j] = (cmplx128_t) (((int64_t)__li_M) ? __li_buf_acc[__j] / (cmplx128_t) ((int64_t)__li_M) : 0);
20295
20450
  }
@@ -20450,6 +20605,7 @@ mean_ki_native_cmplx64 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
20450
20605
  (void) v;
20451
20606
  }
20452
20607
  }
20608
+
20453
20609
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
20454
20610
  __li_op_k[__li_tile + __j] = (cmplx128_t) (((int64_t)__li_M) ? __li_buf_acc[__j] / (cmplx128_t) ((int64_t)__li_M) : 0);
20455
20611
  }
@@ -20608,6 +20764,7 @@ mean_ki_native_cmplx128 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes
20608
20764
  (void) v;
20609
20765
  }
20610
20766
  }
20767
+
20611
20768
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
20612
20769
  op[__li_o * __li_INNER + __li_tile + __j] = (cmplx128_t) (((int64_t)__li_M) ? __li_buf_acc[__j] / (cmplx128_t) ((int64_t)__li_M) : 0);
20613
20770
  }
@@ -20687,6 +20844,7 @@ mean_ki_native_cmplx128 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes
20687
20844
  (void) v;
20688
20845
  }
20689
20846
  }
20847
+
20690
20848
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
20691
20849
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (cmplx128_t) (((int64_t)__li_M) ? __li_buf_acc[__j] / (cmplx128_t) ((int64_t)__li_M) : 0);
20692
20850
  }
@@ -20812,6 +20970,7 @@ mean_ki_native_cmplx128 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes
20812
20970
  (void) v;
20813
20971
  }
20814
20972
  }
20973
+
20815
20974
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
20816
20975
  __li_op_k[__li_tile + __j] = (cmplx128_t) (((int64_t)__li_M) ? __li_buf_acc[__j] / (cmplx128_t) ((int64_t)__li_M) : 0);
20817
20976
  }
@@ -20972,6 +21131,7 @@ mean_ki_native_cmplx128 (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes
20972
21131
  (void) v;
20973
21132
  }
20974
21133
  }
21134
+
20975
21135
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
20976
21136
  __li_op_k[__li_tile + __j] = (cmplx128_t) (((int64_t)__li_M) ? __li_buf_acc[__j] / (cmplx128_t) ((int64_t)__li_M) : 0);
20977
21137
  }
@@ -21130,6 +21290,7 @@ mean_ki_native_bool (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, in
21130
21290
  (void) v;
21131
21291
  }
21132
21292
  }
21293
+
21133
21294
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
21134
21295
  op[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
21135
21296
  }
@@ -21209,6 +21370,7 @@ mean_ki_native_bool (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, in
21209
21370
  (void) v;
21210
21371
  }
21211
21372
  }
21373
+
21212
21374
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
21213
21375
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
21214
21376
  }
@@ -21334,6 +21496,7 @@ mean_ki_native_bool (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, in
21334
21496
  (void) v;
21335
21497
  }
21336
21498
  }
21499
+
21337
21500
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
21338
21501
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
21339
21502
  }
@@ -21494,6 +21657,7 @@ mean_ki_native_bool (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes, in
21494
21657
  (void) v;
21495
21658
  }
21496
21659
  }
21660
+
21497
21661
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
21498
21662
  __li_op_k[__li_tile + __j] = (double) (((int64_t)__li_M) ? __li_buf_acc[__j] / (double) ((int64_t)__li_M) : 0);
21499
21663
  }
@@ -21652,6 +21816,7 @@ mean_ki_native_object (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
21652
21816
  (void) v;
21653
21817
  }
21654
21818
  }
21819
+
21655
21820
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
21656
21821
  op[__li_o * __li_INNER + __li_tile + __j] = (VALUE) (((int64_t)__li_M) ? rb_funcall(__li_buf_acc[__j], rb_intern("/"), 1, LONG2NUM(((int64_t)__li_M))) : Qnil);
21657
21822
  }
@@ -21731,6 +21896,7 @@ mean_ki_native_object (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
21731
21896
  (void) v;
21732
21897
  }
21733
21898
  }
21899
+
21734
21900
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
21735
21901
  __li_op_k[__li_o * __li_INNER + __li_tile + __j] = (VALUE) (((int64_t)__li_M) ? rb_funcall(__li_buf_acc[__j], rb_intern("/"), 1, LONG2NUM(((int64_t)__li_M))) : Qnil);
21736
21902
  }
@@ -21856,6 +22022,7 @@ mean_ki_native_object (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
21856
22022
  (void) v;
21857
22023
  }
21858
22024
  }
22025
+
21859
22026
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
21860
22027
  __li_op_k[__li_tile + __j] = (VALUE) (((int64_t)__li_M) ? rb_funcall(__li_buf_acc[__j], rb_intern("/"), 1, LONG2NUM(((int64_t)__li_M))) : Qnil);
21861
22028
  }
@@ -22016,6 +22183,7 @@ mean_ki_native_object (VALUE self, CArray *ca, int8_t *slab_axes, int8_t naxes,
22016
22183
  (void) v;
22017
22184
  }
22018
22185
  }
22186
+
22019
22187
  for ( ca_size_t __j = 0; __j < __li_tile_len; __j++ ) {
22020
22188
  __li_op_k[__li_tile + __j] = (VALUE) (((int64_t)__li_M) ? rb_funcall(__li_buf_acc[__j], rb_intern("/"), 1, LONG2NUM(((int64_t)__li_M))) : Qnil);
22021
22189
  }