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
@@ -910,9 +910,9 @@ static const ca_kernel_body_t ca_kernel_bodies[] = {
910
910
  { "binop", "pmax", "uint64",
911
911
  "(#3) = (#1) > (#2) ? (#1) : (#2);" },
912
912
  { "binop", "pmax", "float32",
913
- "(#3) = fmax(#1, #2);" },
913
+ "(#3) = isnan(#1) ? (#2) : isnan(#2) ? (#1) : ((#1) > (#2) || ((#1) == (#2) && !signbit(#1))) ? (#1) : (#2);" },
914
914
  { "binop", "pmax", "float64",
915
- "(#3) = fmax(#1, #2);" },
915
+ "(#3) = isnan(#1) ? (#2) : isnan(#2) ? (#1) : ((#1) > (#2) || ((#1) == (#2) && !signbit(#1))) ? (#1) : (#2);" },
916
916
  { "binop", "pmin", "int8",
917
917
  "(#3) = (#1) < (#2) ? (#1) : (#2);" },
918
918
  { "binop", "pmin", "uint8",
@@ -930,9 +930,9 @@ static const ca_kernel_body_t ca_kernel_bodies[] = {
930
930
  { "binop", "pmin", "uint64",
931
931
  "(#3) = (#1) < (#2) ? (#1) : (#2);" },
932
932
  { "binop", "pmin", "float32",
933
- "(#3) = fmin(#1, #2);" },
933
+ "(#3) = isnan(#1) ? (#2) : isnan(#2) ? (#1) : ((#1) < (#2) || ((#1) == (#2) && signbit(#1))) ? (#1) : (#2);" },
934
934
  { "binop", "pmin", "float64",
935
- "(#3) = fmin(#1, #2);" },
935
+ "(#3) = isnan(#1) ? (#2) : isnan(#2) ? (#1) : ((#1) < (#2) || ((#1) == (#2) && signbit(#1))) ? (#1) : (#2);" },
936
936
  { "binop", "maximum", "int8",
937
937
  "(#3) = (#1) > (#2) ? (#1) : (#2);" },
938
938
  { "binop", "maximum", "uint8",
@@ -110,8 +110,8 @@ ca_moncmp_is_nan_int16_t (ca_size_t n, boolean8_t *m,
110
110
  char *ptr1, ca_size_t i1,
111
111
  boolean8_t *ptr2, ca_size_t i2)
112
112
  {
113
- int16_t *q1 = (int16_t *) ptr1;
114
- int16_t *p1 = q1;
113
+ ca_u_int16_t *q1 = (ca_u_int16_t *) ptr1;
114
+ ca_u_int16_t *p1 = q1;
115
115
  boolean8_t *q2 = (boolean8_t *) ptr2;
116
116
  boolean8_t *p2 = q2;
117
117
  ca_size_t k;
@@ -140,8 +140,8 @@ ca_moncmp_is_nan_uint16_t (ca_size_t n, boolean8_t *m,
140
140
  char *ptr1, ca_size_t i1,
141
141
  boolean8_t *ptr2, ca_size_t i2)
142
142
  {
143
- uint16_t *q1 = (uint16_t *) ptr1;
144
- uint16_t *p1 = q1;
143
+ ca_u_uint16_t *q1 = (ca_u_uint16_t *) ptr1;
144
+ ca_u_uint16_t *p1 = q1;
145
145
  boolean8_t *q2 = (boolean8_t *) ptr2;
146
146
  boolean8_t *p2 = q2;
147
147
  ca_size_t k;
@@ -170,8 +170,8 @@ ca_moncmp_is_nan_int32_t (ca_size_t n, boolean8_t *m,
170
170
  char *ptr1, ca_size_t i1,
171
171
  boolean8_t *ptr2, ca_size_t i2)
172
172
  {
173
- int32_t *q1 = (int32_t *) ptr1;
174
- int32_t *p1 = q1;
173
+ ca_u_int32_t *q1 = (ca_u_int32_t *) ptr1;
174
+ ca_u_int32_t *p1 = q1;
175
175
  boolean8_t *q2 = (boolean8_t *) ptr2;
176
176
  boolean8_t *p2 = q2;
177
177
  ca_size_t k;
@@ -200,8 +200,8 @@ ca_moncmp_is_nan_uint32_t (ca_size_t n, boolean8_t *m,
200
200
  char *ptr1, ca_size_t i1,
201
201
  boolean8_t *ptr2, ca_size_t i2)
202
202
  {
203
- uint32_t *q1 = (uint32_t *) ptr1;
204
- uint32_t *p1 = q1;
203
+ ca_u_uint32_t *q1 = (ca_u_uint32_t *) ptr1;
204
+ ca_u_uint32_t *p1 = q1;
205
205
  boolean8_t *q2 = (boolean8_t *) ptr2;
206
206
  boolean8_t *p2 = q2;
207
207
  ca_size_t k;
@@ -230,8 +230,8 @@ ca_moncmp_is_nan_int64_t (ca_size_t n, boolean8_t *m,
230
230
  char *ptr1, ca_size_t i1,
231
231
  boolean8_t *ptr2, ca_size_t i2)
232
232
  {
233
- int64_t *q1 = (int64_t *) ptr1;
234
- int64_t *p1 = q1;
233
+ ca_u_int64_t *q1 = (ca_u_int64_t *) ptr1;
234
+ ca_u_int64_t *p1 = q1;
235
235
  boolean8_t *q2 = (boolean8_t *) ptr2;
236
236
  boolean8_t *p2 = q2;
237
237
  ca_size_t k;
@@ -260,8 +260,8 @@ ca_moncmp_is_nan_uint64_t (ca_size_t n, boolean8_t *m,
260
260
  char *ptr1, ca_size_t i1,
261
261
  boolean8_t *ptr2, ca_size_t i2)
262
262
  {
263
- uint64_t *q1 = (uint64_t *) ptr1;
264
- uint64_t *p1 = q1;
263
+ ca_u_uint64_t *q1 = (ca_u_uint64_t *) ptr1;
264
+ ca_u_uint64_t *p1 = q1;
265
265
  boolean8_t *q2 = (boolean8_t *) ptr2;
266
266
  boolean8_t *p2 = q2;
267
267
  ca_size_t k;
@@ -290,8 +290,8 @@ ca_moncmp_is_nan_float32_t (ca_size_t n, boolean8_t *m,
290
290
  char *ptr1, ca_size_t i1,
291
291
  boolean8_t *ptr2, ca_size_t i2)
292
292
  {
293
- float *q1 = (float *) ptr1;
294
- float *p1 = q1;
293
+ ca_u_float32_t *q1 = (ca_u_float32_t *) ptr1;
294
+ ca_u_float32_t *p1 = q1;
295
295
  boolean8_t *q2 = (boolean8_t *) ptr2;
296
296
  boolean8_t *p2 = q2;
297
297
  ca_size_t k;
@@ -320,8 +320,8 @@ ca_moncmp_is_nan_float64_t (ca_size_t n, boolean8_t *m,
320
320
  char *ptr1, ca_size_t i1,
321
321
  boolean8_t *ptr2, ca_size_t i2)
322
322
  {
323
- double *q1 = (double *) ptr1;
324
- double *p1 = q1;
323
+ ca_u_float64_t *q1 = (ca_u_float64_t *) ptr1;
324
+ ca_u_float64_t *p1 = q1;
325
325
  boolean8_t *q2 = (boolean8_t *) ptr2;
326
326
  boolean8_t *p2 = q2;
327
327
  ca_size_t k;
@@ -350,8 +350,8 @@ ca_moncmp_is_nan_cmplx64_t (ca_size_t n, boolean8_t *m,
350
350
  char *ptr1, ca_size_t i1,
351
351
  boolean8_t *ptr2, ca_size_t i2)
352
352
  {
353
- cmplx64_t *q1 = (cmplx64_t *) ptr1;
354
- cmplx64_t *p1 = q1;
353
+ ca_u_cmplx64_t *q1 = (ca_u_cmplx64_t *) ptr1;
354
+ ca_u_cmplx64_t *p1 = q1;
355
355
  boolean8_t *q2 = (boolean8_t *) ptr2;
356
356
  boolean8_t *p2 = q2;
357
357
  ca_size_t k;
@@ -380,8 +380,8 @@ ca_moncmp_is_nan_cmplx128_t (ca_size_t n, boolean8_t *m,
380
380
  char *ptr1, ca_size_t i1,
381
381
  boolean8_t *ptr2, ca_size_t i2)
382
382
  {
383
- cmplx128_t *q1 = (cmplx128_t *) ptr1;
384
- cmplx128_t *p1 = q1;
383
+ ca_u_cmplx128_t *q1 = (ca_u_cmplx128_t *) ptr1;
384
+ ca_u_cmplx128_t *p1 = q1;
385
385
  boolean8_t *q2 = (boolean8_t *) ptr2;
386
386
  boolean8_t *p2 = q2;
387
387
  ca_size_t k;
@@ -526,8 +526,8 @@ ca_moncmp_is_inf_int16_t (ca_size_t n, boolean8_t *m,
526
526
  char *ptr1, ca_size_t i1,
527
527
  boolean8_t *ptr2, ca_size_t i2)
528
528
  {
529
- int16_t *q1 = (int16_t *) ptr1;
530
- int16_t *p1 = q1;
529
+ ca_u_int16_t *q1 = (ca_u_int16_t *) ptr1;
530
+ ca_u_int16_t *p1 = q1;
531
531
  boolean8_t *q2 = (boolean8_t *) ptr2;
532
532
  boolean8_t *p2 = q2;
533
533
  ca_size_t k;
@@ -556,8 +556,8 @@ ca_moncmp_is_inf_uint16_t (ca_size_t n, boolean8_t *m,
556
556
  char *ptr1, ca_size_t i1,
557
557
  boolean8_t *ptr2, ca_size_t i2)
558
558
  {
559
- uint16_t *q1 = (uint16_t *) ptr1;
560
- uint16_t *p1 = q1;
559
+ ca_u_uint16_t *q1 = (ca_u_uint16_t *) ptr1;
560
+ ca_u_uint16_t *p1 = q1;
561
561
  boolean8_t *q2 = (boolean8_t *) ptr2;
562
562
  boolean8_t *p2 = q2;
563
563
  ca_size_t k;
@@ -586,8 +586,8 @@ ca_moncmp_is_inf_int32_t (ca_size_t n, boolean8_t *m,
586
586
  char *ptr1, ca_size_t i1,
587
587
  boolean8_t *ptr2, ca_size_t i2)
588
588
  {
589
- int32_t *q1 = (int32_t *) ptr1;
590
- int32_t *p1 = q1;
589
+ ca_u_int32_t *q1 = (ca_u_int32_t *) ptr1;
590
+ ca_u_int32_t *p1 = q1;
591
591
  boolean8_t *q2 = (boolean8_t *) ptr2;
592
592
  boolean8_t *p2 = q2;
593
593
  ca_size_t k;
@@ -616,8 +616,8 @@ ca_moncmp_is_inf_uint32_t (ca_size_t n, boolean8_t *m,
616
616
  char *ptr1, ca_size_t i1,
617
617
  boolean8_t *ptr2, ca_size_t i2)
618
618
  {
619
- uint32_t *q1 = (uint32_t *) ptr1;
620
- uint32_t *p1 = q1;
619
+ ca_u_uint32_t *q1 = (ca_u_uint32_t *) ptr1;
620
+ ca_u_uint32_t *p1 = q1;
621
621
  boolean8_t *q2 = (boolean8_t *) ptr2;
622
622
  boolean8_t *p2 = q2;
623
623
  ca_size_t k;
@@ -646,8 +646,8 @@ ca_moncmp_is_inf_int64_t (ca_size_t n, boolean8_t *m,
646
646
  char *ptr1, ca_size_t i1,
647
647
  boolean8_t *ptr2, ca_size_t i2)
648
648
  {
649
- int64_t *q1 = (int64_t *) ptr1;
650
- int64_t *p1 = q1;
649
+ ca_u_int64_t *q1 = (ca_u_int64_t *) ptr1;
650
+ ca_u_int64_t *p1 = q1;
651
651
  boolean8_t *q2 = (boolean8_t *) ptr2;
652
652
  boolean8_t *p2 = q2;
653
653
  ca_size_t k;
@@ -676,8 +676,8 @@ ca_moncmp_is_inf_uint64_t (ca_size_t n, boolean8_t *m,
676
676
  char *ptr1, ca_size_t i1,
677
677
  boolean8_t *ptr2, ca_size_t i2)
678
678
  {
679
- uint64_t *q1 = (uint64_t *) ptr1;
680
- uint64_t *p1 = q1;
679
+ ca_u_uint64_t *q1 = (ca_u_uint64_t *) ptr1;
680
+ ca_u_uint64_t *p1 = q1;
681
681
  boolean8_t *q2 = (boolean8_t *) ptr2;
682
682
  boolean8_t *p2 = q2;
683
683
  ca_size_t k;
@@ -706,8 +706,8 @@ ca_moncmp_is_inf_float32_t (ca_size_t n, boolean8_t *m,
706
706
  char *ptr1, ca_size_t i1,
707
707
  boolean8_t *ptr2, ca_size_t i2)
708
708
  {
709
- float *q1 = (float *) ptr1;
710
- float *p1 = q1;
709
+ ca_u_float32_t *q1 = (ca_u_float32_t *) ptr1;
710
+ ca_u_float32_t *p1 = q1;
711
711
  boolean8_t *q2 = (boolean8_t *) ptr2;
712
712
  boolean8_t *p2 = q2;
713
713
  ca_size_t k;
@@ -736,8 +736,8 @@ ca_moncmp_is_inf_float64_t (ca_size_t n, boolean8_t *m,
736
736
  char *ptr1, ca_size_t i1,
737
737
  boolean8_t *ptr2, ca_size_t i2)
738
738
  {
739
- double *q1 = (double *) ptr1;
740
- double *p1 = q1;
739
+ ca_u_float64_t *q1 = (ca_u_float64_t *) ptr1;
740
+ ca_u_float64_t *p1 = q1;
741
741
  boolean8_t *q2 = (boolean8_t *) ptr2;
742
742
  boolean8_t *p2 = q2;
743
743
  ca_size_t k;
@@ -766,8 +766,8 @@ ca_moncmp_is_inf_cmplx64_t (ca_size_t n, boolean8_t *m,
766
766
  char *ptr1, ca_size_t i1,
767
767
  boolean8_t *ptr2, ca_size_t i2)
768
768
  {
769
- cmplx64_t *q1 = (cmplx64_t *) ptr1;
770
- cmplx64_t *p1 = q1;
769
+ ca_u_cmplx64_t *q1 = (ca_u_cmplx64_t *) ptr1;
770
+ ca_u_cmplx64_t *p1 = q1;
771
771
  boolean8_t *q2 = (boolean8_t *) ptr2;
772
772
  boolean8_t *p2 = q2;
773
773
  ca_size_t k;
@@ -796,8 +796,8 @@ ca_moncmp_is_inf_cmplx128_t (ca_size_t n, boolean8_t *m,
796
796
  char *ptr1, ca_size_t i1,
797
797
  boolean8_t *ptr2, ca_size_t i2)
798
798
  {
799
- cmplx128_t *q1 = (cmplx128_t *) ptr1;
800
- cmplx128_t *p1 = q1;
799
+ ca_u_cmplx128_t *q1 = (ca_u_cmplx128_t *) ptr1;
800
+ ca_u_cmplx128_t *p1 = q1;
801
801
  boolean8_t *q2 = (boolean8_t *) ptr2;
802
802
  boolean8_t *p2 = q2;
803
803
  ca_size_t k;
@@ -942,8 +942,8 @@ ca_moncmp_is_finite_int16_t (ca_size_t n, boolean8_t *m,
942
942
  char *ptr1, ca_size_t i1,
943
943
  boolean8_t *ptr2, ca_size_t i2)
944
944
  {
945
- int16_t *q1 = (int16_t *) ptr1;
946
- int16_t *p1 = q1;
945
+ ca_u_int16_t *q1 = (ca_u_int16_t *) ptr1;
946
+ ca_u_int16_t *p1 = q1;
947
947
  boolean8_t *q2 = (boolean8_t *) ptr2;
948
948
  boolean8_t *p2 = q2;
949
949
  ca_size_t k;
@@ -972,8 +972,8 @@ ca_moncmp_is_finite_uint16_t (ca_size_t n, boolean8_t *m,
972
972
  char *ptr1, ca_size_t i1,
973
973
  boolean8_t *ptr2, ca_size_t i2)
974
974
  {
975
- uint16_t *q1 = (uint16_t *) ptr1;
976
- uint16_t *p1 = q1;
975
+ ca_u_uint16_t *q1 = (ca_u_uint16_t *) ptr1;
976
+ ca_u_uint16_t *p1 = q1;
977
977
  boolean8_t *q2 = (boolean8_t *) ptr2;
978
978
  boolean8_t *p2 = q2;
979
979
  ca_size_t k;
@@ -1002,8 +1002,8 @@ ca_moncmp_is_finite_int32_t (ca_size_t n, boolean8_t *m,
1002
1002
  char *ptr1, ca_size_t i1,
1003
1003
  boolean8_t *ptr2, ca_size_t i2)
1004
1004
  {
1005
- int32_t *q1 = (int32_t *) ptr1;
1006
- int32_t *p1 = q1;
1005
+ ca_u_int32_t *q1 = (ca_u_int32_t *) ptr1;
1006
+ ca_u_int32_t *p1 = q1;
1007
1007
  boolean8_t *q2 = (boolean8_t *) ptr2;
1008
1008
  boolean8_t *p2 = q2;
1009
1009
  ca_size_t k;
@@ -1032,8 +1032,8 @@ ca_moncmp_is_finite_uint32_t (ca_size_t n, boolean8_t *m,
1032
1032
  char *ptr1, ca_size_t i1,
1033
1033
  boolean8_t *ptr2, ca_size_t i2)
1034
1034
  {
1035
- uint32_t *q1 = (uint32_t *) ptr1;
1036
- uint32_t *p1 = q1;
1035
+ ca_u_uint32_t *q1 = (ca_u_uint32_t *) ptr1;
1036
+ ca_u_uint32_t *p1 = q1;
1037
1037
  boolean8_t *q2 = (boolean8_t *) ptr2;
1038
1038
  boolean8_t *p2 = q2;
1039
1039
  ca_size_t k;
@@ -1062,8 +1062,8 @@ ca_moncmp_is_finite_int64_t (ca_size_t n, boolean8_t *m,
1062
1062
  char *ptr1, ca_size_t i1,
1063
1063
  boolean8_t *ptr2, ca_size_t i2)
1064
1064
  {
1065
- int64_t *q1 = (int64_t *) ptr1;
1066
- int64_t *p1 = q1;
1065
+ ca_u_int64_t *q1 = (ca_u_int64_t *) ptr1;
1066
+ ca_u_int64_t *p1 = q1;
1067
1067
  boolean8_t *q2 = (boolean8_t *) ptr2;
1068
1068
  boolean8_t *p2 = q2;
1069
1069
  ca_size_t k;
@@ -1092,8 +1092,8 @@ ca_moncmp_is_finite_uint64_t (ca_size_t n, boolean8_t *m,
1092
1092
  char *ptr1, ca_size_t i1,
1093
1093
  boolean8_t *ptr2, ca_size_t i2)
1094
1094
  {
1095
- uint64_t *q1 = (uint64_t *) ptr1;
1096
- uint64_t *p1 = q1;
1095
+ ca_u_uint64_t *q1 = (ca_u_uint64_t *) ptr1;
1096
+ ca_u_uint64_t *p1 = q1;
1097
1097
  boolean8_t *q2 = (boolean8_t *) ptr2;
1098
1098
  boolean8_t *p2 = q2;
1099
1099
  ca_size_t k;
@@ -1122,8 +1122,8 @@ ca_moncmp_is_finite_float32_t (ca_size_t n, boolean8_t *m,
1122
1122
  char *ptr1, ca_size_t i1,
1123
1123
  boolean8_t *ptr2, ca_size_t i2)
1124
1124
  {
1125
- float *q1 = (float *) ptr1;
1126
- float *p1 = q1;
1125
+ ca_u_float32_t *q1 = (ca_u_float32_t *) ptr1;
1126
+ ca_u_float32_t *p1 = q1;
1127
1127
  boolean8_t *q2 = (boolean8_t *) ptr2;
1128
1128
  boolean8_t *p2 = q2;
1129
1129
  ca_size_t k;
@@ -1152,8 +1152,8 @@ ca_moncmp_is_finite_float64_t (ca_size_t n, boolean8_t *m,
1152
1152
  char *ptr1, ca_size_t i1,
1153
1153
  boolean8_t *ptr2, ca_size_t i2)
1154
1154
  {
1155
- double *q1 = (double *) ptr1;
1156
- double *p1 = q1;
1155
+ ca_u_float64_t *q1 = (ca_u_float64_t *) ptr1;
1156
+ ca_u_float64_t *p1 = q1;
1157
1157
  boolean8_t *q2 = (boolean8_t *) ptr2;
1158
1158
  boolean8_t *p2 = q2;
1159
1159
  ca_size_t k;
@@ -1182,8 +1182,8 @@ ca_moncmp_is_finite_cmplx64_t (ca_size_t n, boolean8_t *m,
1182
1182
  char *ptr1, ca_size_t i1,
1183
1183
  boolean8_t *ptr2, ca_size_t i2)
1184
1184
  {
1185
- cmplx64_t *q1 = (cmplx64_t *) ptr1;
1186
- cmplx64_t *p1 = q1;
1185
+ ca_u_cmplx64_t *q1 = (ca_u_cmplx64_t *) ptr1;
1186
+ ca_u_cmplx64_t *p1 = q1;
1187
1187
  boolean8_t *q2 = (boolean8_t *) ptr2;
1188
1188
  boolean8_t *p2 = q2;
1189
1189
  ca_size_t k;
@@ -1212,8 +1212,8 @@ ca_moncmp_is_finite_cmplx128_t (ca_size_t n, boolean8_t *m,
1212
1212
  char *ptr1, ca_size_t i1,
1213
1213
  boolean8_t *ptr2, ca_size_t i2)
1214
1214
  {
1215
- cmplx128_t *q1 = (cmplx128_t *) ptr1;
1216
- cmplx128_t *p1 = q1;
1215
+ ca_u_cmplx128_t *q1 = (ca_u_cmplx128_t *) ptr1;
1216
+ ca_u_cmplx128_t *p1 = q1;
1217
1217
  boolean8_t *q2 = (boolean8_t *) ptr2;
1218
1218
  boolean8_t *p2 = q2;
1219
1219
  ca_size_t k;
@@ -1388,8 +1388,8 @@ ca_moncmp_is_invalid_int16_t (ca_size_t n, boolean8_t *m,
1388
1388
  char *ptr1, ca_size_t i1,
1389
1389
  boolean8_t *ptr2, ca_size_t i2)
1390
1390
  {
1391
- int16_t *q1 = (int16_t *) ptr1;
1392
- int16_t *p1 = q1;
1391
+ ca_u_int16_t *q1 = (ca_u_int16_t *) ptr1;
1392
+ ca_u_int16_t *p1 = q1;
1393
1393
  boolean8_t *q2 = (boolean8_t *) ptr2;
1394
1394
  boolean8_t *p2 = q2;
1395
1395
  ca_size_t k;
@@ -1418,8 +1418,8 @@ ca_moncmp_is_invalid_uint16_t (ca_size_t n, boolean8_t *m,
1418
1418
  char *ptr1, ca_size_t i1,
1419
1419
  boolean8_t *ptr2, ca_size_t i2)
1420
1420
  {
1421
- uint16_t *q1 = (uint16_t *) ptr1;
1422
- uint16_t *p1 = q1;
1421
+ ca_u_uint16_t *q1 = (ca_u_uint16_t *) ptr1;
1422
+ ca_u_uint16_t *p1 = q1;
1423
1423
  boolean8_t *q2 = (boolean8_t *) ptr2;
1424
1424
  boolean8_t *p2 = q2;
1425
1425
  ca_size_t k;
@@ -1448,8 +1448,8 @@ ca_moncmp_is_invalid_int32_t (ca_size_t n, boolean8_t *m,
1448
1448
  char *ptr1, ca_size_t i1,
1449
1449
  boolean8_t *ptr2, ca_size_t i2)
1450
1450
  {
1451
- int32_t *q1 = (int32_t *) ptr1;
1452
- int32_t *p1 = q1;
1451
+ ca_u_int32_t *q1 = (ca_u_int32_t *) ptr1;
1452
+ ca_u_int32_t *p1 = q1;
1453
1453
  boolean8_t *q2 = (boolean8_t *) ptr2;
1454
1454
  boolean8_t *p2 = q2;
1455
1455
  ca_size_t k;
@@ -1478,8 +1478,8 @@ ca_moncmp_is_invalid_uint32_t (ca_size_t n, boolean8_t *m,
1478
1478
  char *ptr1, ca_size_t i1,
1479
1479
  boolean8_t *ptr2, ca_size_t i2)
1480
1480
  {
1481
- uint32_t *q1 = (uint32_t *) ptr1;
1482
- uint32_t *p1 = q1;
1481
+ ca_u_uint32_t *q1 = (ca_u_uint32_t *) ptr1;
1482
+ ca_u_uint32_t *p1 = q1;
1483
1483
  boolean8_t *q2 = (boolean8_t *) ptr2;
1484
1484
  boolean8_t *p2 = q2;
1485
1485
  ca_size_t k;
@@ -1508,8 +1508,8 @@ ca_moncmp_is_invalid_int64_t (ca_size_t n, boolean8_t *m,
1508
1508
  char *ptr1, ca_size_t i1,
1509
1509
  boolean8_t *ptr2, ca_size_t i2)
1510
1510
  {
1511
- int64_t *q1 = (int64_t *) ptr1;
1512
- int64_t *p1 = q1;
1511
+ ca_u_int64_t *q1 = (ca_u_int64_t *) ptr1;
1512
+ ca_u_int64_t *p1 = q1;
1513
1513
  boolean8_t *q2 = (boolean8_t *) ptr2;
1514
1514
  boolean8_t *p2 = q2;
1515
1515
  ca_size_t k;
@@ -1538,8 +1538,8 @@ ca_moncmp_is_invalid_uint64_t (ca_size_t n, boolean8_t *m,
1538
1538
  char *ptr1, ca_size_t i1,
1539
1539
  boolean8_t *ptr2, ca_size_t i2)
1540
1540
  {
1541
- uint64_t *q1 = (uint64_t *) ptr1;
1542
- uint64_t *p1 = q1;
1541
+ ca_u_uint64_t *q1 = (ca_u_uint64_t *) ptr1;
1542
+ ca_u_uint64_t *p1 = q1;
1543
1543
  boolean8_t *q2 = (boolean8_t *) ptr2;
1544
1544
  boolean8_t *p2 = q2;
1545
1545
  ca_size_t k;
@@ -1568,8 +1568,8 @@ ca_moncmp_is_invalid_float32_t (ca_size_t n, boolean8_t *m,
1568
1568
  char *ptr1, ca_size_t i1,
1569
1569
  boolean8_t *ptr2, ca_size_t i2)
1570
1570
  {
1571
- float *q1 = (float *) ptr1;
1572
- float *p1 = q1;
1571
+ ca_u_float32_t *q1 = (ca_u_float32_t *) ptr1;
1572
+ ca_u_float32_t *p1 = q1;
1573
1573
  boolean8_t *q2 = (boolean8_t *) ptr2;
1574
1574
  boolean8_t *p2 = q2;
1575
1575
  ca_size_t k;
@@ -1598,8 +1598,8 @@ ca_moncmp_is_invalid_float64_t (ca_size_t n, boolean8_t *m,
1598
1598
  char *ptr1, ca_size_t i1,
1599
1599
  boolean8_t *ptr2, ca_size_t i2)
1600
1600
  {
1601
- double *q1 = (double *) ptr1;
1602
- double *p1 = q1;
1601
+ ca_u_float64_t *q1 = (ca_u_float64_t *) ptr1;
1602
+ ca_u_float64_t *p1 = q1;
1603
1603
  boolean8_t *q2 = (boolean8_t *) ptr2;
1604
1604
  boolean8_t *p2 = q2;
1605
1605
  ca_size_t k;
@@ -1628,8 +1628,8 @@ ca_moncmp_is_invalid_cmplx64_t (ca_size_t n, boolean8_t *m,
1628
1628
  char *ptr1, ca_size_t i1,
1629
1629
  boolean8_t *ptr2, ca_size_t i2)
1630
1630
  {
1631
- cmplx64_t *q1 = (cmplx64_t *) ptr1;
1632
- cmplx64_t *p1 = q1;
1631
+ ca_u_cmplx64_t *q1 = (ca_u_cmplx64_t *) ptr1;
1632
+ ca_u_cmplx64_t *p1 = q1;
1633
1633
  boolean8_t *q2 = (boolean8_t *) ptr2;
1634
1634
  boolean8_t *p2 = q2;
1635
1635
  ca_size_t k;
@@ -1658,8 +1658,8 @@ ca_moncmp_is_invalid_cmplx128_t (ca_size_t n, boolean8_t *m,
1658
1658
  char *ptr1, ca_size_t i1,
1659
1659
  boolean8_t *ptr2, ca_size_t i2)
1660
1660
  {
1661
- cmplx128_t *q1 = (cmplx128_t *) ptr1;
1662
- cmplx128_t *p1 = q1;
1661
+ ca_u_cmplx128_t *q1 = (ca_u_cmplx128_t *) ptr1;
1662
+ ca_u_cmplx128_t *p1 = q1;
1663
1663
  boolean8_t *q2 = (boolean8_t *) ptr2;
1664
1664
  boolean8_t *p2 = q2;
1665
1665
  ca_size_t k;
@@ -1774,8 +1774,8 @@ ca_moncmp_signbit_int16_t (ca_size_t n, boolean8_t *m,
1774
1774
  char *ptr1, ca_size_t i1,
1775
1775
  boolean8_t *ptr2, ca_size_t i2)
1776
1776
  {
1777
- int16_t *q1 = (int16_t *) ptr1;
1778
- int16_t *p1 = q1;
1777
+ ca_u_int16_t *q1 = (ca_u_int16_t *) ptr1;
1778
+ ca_u_int16_t *p1 = q1;
1779
1779
  boolean8_t *q2 = (boolean8_t *) ptr2;
1780
1780
  boolean8_t *p2 = q2;
1781
1781
  ca_size_t k;
@@ -1804,8 +1804,8 @@ ca_moncmp_signbit_int32_t (ca_size_t n, boolean8_t *m,
1804
1804
  char *ptr1, ca_size_t i1,
1805
1805
  boolean8_t *ptr2, ca_size_t i2)
1806
1806
  {
1807
- int32_t *q1 = (int32_t *) ptr1;
1808
- int32_t *p1 = q1;
1807
+ ca_u_int32_t *q1 = (ca_u_int32_t *) ptr1;
1808
+ ca_u_int32_t *p1 = q1;
1809
1809
  boolean8_t *q2 = (boolean8_t *) ptr2;
1810
1810
  boolean8_t *p2 = q2;
1811
1811
  ca_size_t k;
@@ -1834,8 +1834,8 @@ ca_moncmp_signbit_int64_t (ca_size_t n, boolean8_t *m,
1834
1834
  char *ptr1, ca_size_t i1,
1835
1835
  boolean8_t *ptr2, ca_size_t i2)
1836
1836
  {
1837
- int64_t *q1 = (int64_t *) ptr1;
1838
- int64_t *p1 = q1;
1837
+ ca_u_int64_t *q1 = (ca_u_int64_t *) ptr1;
1838
+ ca_u_int64_t *p1 = q1;
1839
1839
  boolean8_t *q2 = (boolean8_t *) ptr2;
1840
1840
  boolean8_t *p2 = q2;
1841
1841
  ca_size_t k;
@@ -1894,8 +1894,8 @@ ca_moncmp_signbit_uint16_t (ca_size_t n, boolean8_t *m,
1894
1894
  char *ptr1, ca_size_t i1,
1895
1895
  boolean8_t *ptr2, ca_size_t i2)
1896
1896
  {
1897
- uint16_t *q1 = (uint16_t *) ptr1;
1898
- uint16_t *p1 = q1;
1897
+ ca_u_uint16_t *q1 = (ca_u_uint16_t *) ptr1;
1898
+ ca_u_uint16_t *p1 = q1;
1899
1899
  boolean8_t *q2 = (boolean8_t *) ptr2;
1900
1900
  boolean8_t *p2 = q2;
1901
1901
  ca_size_t k;
@@ -1924,8 +1924,8 @@ ca_moncmp_signbit_uint32_t (ca_size_t n, boolean8_t *m,
1924
1924
  char *ptr1, ca_size_t i1,
1925
1925
  boolean8_t *ptr2, ca_size_t i2)
1926
1926
  {
1927
- uint32_t *q1 = (uint32_t *) ptr1;
1928
- uint32_t *p1 = q1;
1927
+ ca_u_uint32_t *q1 = (ca_u_uint32_t *) ptr1;
1928
+ ca_u_uint32_t *p1 = q1;
1929
1929
  boolean8_t *q2 = (boolean8_t *) ptr2;
1930
1930
  boolean8_t *p2 = q2;
1931
1931
  ca_size_t k;
@@ -1954,8 +1954,8 @@ ca_moncmp_signbit_uint64_t (ca_size_t n, boolean8_t *m,
1954
1954
  char *ptr1, ca_size_t i1,
1955
1955
  boolean8_t *ptr2, ca_size_t i2)
1956
1956
  {
1957
- uint64_t *q1 = (uint64_t *) ptr1;
1958
- uint64_t *p1 = q1;
1957
+ ca_u_uint64_t *q1 = (ca_u_uint64_t *) ptr1;
1958
+ ca_u_uint64_t *p1 = q1;
1959
1959
  boolean8_t *q2 = (boolean8_t *) ptr2;
1960
1960
  boolean8_t *p2 = q2;
1961
1961
  ca_size_t k;
@@ -1984,8 +1984,8 @@ ca_moncmp_signbit_float32_t (ca_size_t n, boolean8_t *m,
1984
1984
  char *ptr1, ca_size_t i1,
1985
1985
  boolean8_t *ptr2, ca_size_t i2)
1986
1986
  {
1987
- float *q1 = (float *) ptr1;
1988
- float *p1 = q1;
1987
+ ca_u_float32_t *q1 = (ca_u_float32_t *) ptr1;
1988
+ ca_u_float32_t *p1 = q1;
1989
1989
  boolean8_t *q2 = (boolean8_t *) ptr2;
1990
1990
  boolean8_t *p2 = q2;
1991
1991
  ca_size_t k;
@@ -2014,8 +2014,8 @@ ca_moncmp_signbit_float64_t (ca_size_t n, boolean8_t *m,
2014
2014
  char *ptr1, ca_size_t i1,
2015
2015
  boolean8_t *ptr2, ca_size_t i2)
2016
2016
  {
2017
- double *q1 = (double *) ptr1;
2018
- double *p1 = q1;
2017
+ ca_u_float64_t *q1 = (ca_u_float64_t *) ptr1;
2018
+ ca_u_float64_t *p1 = q1;
2019
2019
  boolean8_t *q2 = (boolean8_t *) ptr2;
2020
2020
  boolean8_t *p2 = q2;
2021
2021
  ca_size_t k;