carray 2.0.1 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.yardopts +6 -25
- data/CHANGELOG.md +338 -0
- data/{NEWS.md → CHANGELOG.v1.md} +3 -0
- data/LICENSE +1 -1
- data/README.md +120 -36
- data/carray.gemspec +32 -30
- data/ext/ca_array_pool.c +91 -0
- data/ext/ca_axis_descriptor.h +186 -0
- data/ext/ca_axis_dispatch.c +924 -0
- data/ext/ca_axis_group.c +1244 -0
- data/ext/ca_bincmp_dispatch.c +76 -0
- data/ext/ca_bincmp_dispatch.h +85 -0
- data/ext/ca_binop_dispatch.c +124 -0
- data/ext/ca_binop_dispatch.h +152 -0
- data/ext/ca_categorical_iterator.c +1375 -0
- data/ext/ca_compare.c +94 -0
- data/ext/ca_compare.h +26 -0
- data/ext/ca_composite_dispatch.c +414 -0
- data/ext/ca_composite_dispatch.h +116 -0
- data/ext/ca_for_buffer.h +96 -0
- data/ext/ca_for_each_element.h +239 -0
- data/ext/ca_group_iter.c +304 -0
- data/ext/ca_iter_substrate.h +325 -0
- data/ext/ca_kernel_iterator.c +4367 -0
- data/ext/ca_kernel_iterator.h +2596 -0
- data/ext/ca_moncmp_dispatch.c +37 -0
- data/ext/ca_moncmp_dispatch.h +62 -0
- data/ext/ca_monop_dispatch.c +200 -0
- data/ext/ca_monop_dispatch.h +235 -0
- data/ext/ca_obj_array.c +355 -359
- data/ext/ca_obj_bincmp.c +839 -0
- data/ext/ca_obj_binop.c +948 -0
- data/ext/ca_obj_bitarray.c +369 -164
- data/ext/ca_obj_bitfield.c +294 -234
- data/ext/ca_obj_block.c +189 -711
- data/ext/ca_obj_byte_swap.c +766 -0
- data/ext/ca_obj_const_string.c +967 -0
- data/ext/ca_obj_face.c +750 -0
- data/ext/ca_obj_face.h +279 -0
- data/ext/ca_obj_fake.c +239 -100
- data/ext/ca_obj_farray.c +54 -441
- data/ext/ca_obj_field.c +82 -529
- data/ext/ca_obj_fixlen_string.c +308 -0
- data/ext/ca_obj_grid.c +866 -440
- data/ext/ca_obj_meld.c +1039 -0
- data/ext/ca_obj_moncmp.c +588 -0
- data/ext/ca_obj_monop.c +1123 -0
- data/ext/ca_obj_object.c +866 -296
- data/ext/ca_obj_record.c +470 -0
- data/ext/ca_obj_reduce.c +97 -82
- data/ext/ca_obj_refer.c +593 -459
- data/ext/ca_obj_remap.c +475 -0
- data/ext/ca_obj_repeat.c +92 -477
- data/ext/ca_obj_roll.c +624 -0
- data/ext/ca_obj_select.c +344 -296
- data/ext/ca_obj_select_axis.c +1306 -0
- data/ext/ca_obj_shift.c +231 -793
- data/ext/ca_obj_source.c +78 -0
- data/ext/ca_obj_stack.c +1173 -0
- data/ext/ca_obj_stride.c +2584 -0
- data/ext/ca_obj_string.c +270 -0
- data/ext/ca_obj_tile.c +622 -0
- data/ext/ca_obj_time.c +548 -0
- data/ext/ca_obj_timedelta.c +437 -0
- data/ext/ca_obj_transpose.c +62 -516
- data/ext/ca_obj_triop.c +785 -0
- data/ext/ca_obj_window.c +1202 -565
- data/ext/ca_op_byte_swap.c +175 -0
- data/ext/ca_op_cmplx64.h +123 -0
- data/ext/ca_op_ipower.c +316 -0
- data/ext/ca_op_powi.h +88 -0
- data/ext/ca_sort_kernels.h +132 -0
- data/ext/ca_sweep_engine.c +473 -0
- data/ext/ca_sweep_engine.h +166 -0
- data/ext/ca_transform_common.c +235 -0
- data/ext/ca_triop_dispatch.c +55 -0
- data/ext/ca_triop_dispatch.h +62 -0
- data/ext/carray.h +810 -420
- data/ext/carray_access.c +873 -731
- data/ext/carray_attribute.c +98 -329
- data/ext/carray_bincount.c +255 -0
- data/ext/carray_broadcast.c +376 -0
- data/ext/carray_build_flags.h +3 -0
- data/ext/carray_call_cfunc.c +2897 -874
- data/ext/carray_call_cfunc.h +313 -0
- data/ext/carray_cast.c +1264 -315
- data/ext/carray_cast_func.rb +81 -40
- data/ext/carray_class.c +53 -63
- data/ext/carray_config.h +28 -0
- data/ext/carray_conversion.c +350 -346
- data/ext/carray_copy.c +168 -270
- data/ext/carray_core.c +1396 -206
- data/ext/carray_count.c +312 -0
- data/ext/carray_data_type.c +43 -19
- data/ext/carray_element.c +585 -213
- data/ext/carray_factorize.c +2542 -0
- data/ext/carray_generate.c +230 -559
- data/ext/carray_histogram.c +490 -0
- data/ext/carray_hold.c +228 -0
- data/ext/carray_index_classifier.c +1021 -0
- data/ext/carray_index_classifier.h +27 -0
- data/ext/carray_internal.h +136 -0
- data/ext/carray_kernels_bincmp.c +4446 -0
- data/ext/carray_kernels_binop.c +11001 -0
- data/ext/carray_kernels_init.c +1131 -0
- data/ext/carray_kernels_map.c +3467 -0
- data/ext/carray_kernels_moncmp.c +2097 -0
- data/ext/carray_kernels_monop.c +18313 -0
- data/ext/carray_kernels_reduce_aggregate.c +25837 -0
- data/ext/carray_kernels_reduce_boolean.c +330 -0
- data/ext/carray_kernels_reduce_cumulative.c +14593 -0
- data/ext/carray_kernels_reduce_extreme.c +16948 -0
- data/ext/carray_kernels_reduce_variance.c +3910 -0
- data/ext/carray_kernels_scan.c +3693 -0
- data/ext/carray_kernels_search.c +32138 -0
- data/ext/carray_kernels_sort.c +10626 -0
- data/ext/carray_kernels_triop.c +1392 -0
- data/ext/carray_lazy.c +737 -0
- data/ext/carray_loop.c +88 -200
- data/ext/carray_mask.c +853 -158
- data/ext/carray_math_kernel.h +120 -0
- data/ext/carray_mathfunc.c +10 -241
- data/ext/carray_median_percentile.c +1257 -0
- data/ext/carray_memory_view.c +1650 -0
- data/ext/carray_operator.c +1525 -320
- data/ext/carray_order.c +664 -1394
- data/ext/carray_partition.c +416 -0
- data/ext/carray_random.c +518 -0
- data/ext/carray_scatter.c +357 -0
- data/ext/carray_slab.c +1219 -0
- data/ext/carray_slab.h +84 -0
- data/ext/carray_sort.c +829 -0
- data/ext/carray_sort_kernel.c +620 -0
- data/ext/carray_struct.c +695 -0
- data/ext/carray_test.c +343 -229
- data/ext/carray_undef.c +34 -17
- data/ext/carray_utils.c +175 -74
- data/ext/extconf.rb +234 -55
- data/ext/mk_call_cfunc.rb +671 -0
- data/ext/mkkernel.rb +9096 -0
- data/ext/ruby_carray.c +211 -108
- data/ext/version.h +4 -14
- data/ext/version.rb +5 -13
- data/lib/carray/arrow_tensor.rb +401 -0
- data/lib/carray/attribute.rb +166 -0
- data/lib/carray/autoload_carray.rb +239 -0
- data/lib/carray/autoload_method_extension.rb +45 -0
- data/lib/carray/axis_group.rb +711 -0
- data/lib/carray/basics.rb +481 -0
- data/lib/carray/bincount_nd.rb +358 -0
- data/lib/carray/block_iterator.rb +614 -0
- data/lib/carray/boolean_reduce.rb +109 -0
- data/lib/carray/categorical.rb +561 -0
- data/lib/carray/categorical_iterator.rb +1084 -0
- data/lib/carray/complex.rb +150 -0
- data/lib/carray/conditional.rb +216 -0
- data/lib/carray/const_string.rb +228 -0
- data/lib/carray/construct.rb +160 -328
- data/lib/carray/core_extensions.rb +297 -0
- data/lib/carray/data_type_extension.rb +250 -0
- data/lib/carray/fixlen_string.rb +95 -0
- data/lib/carray/frame/concat.rb +132 -0
- data/lib/carray/frame/convert.rb +95 -0
- data/lib/carray/frame/csv_parser.rb +211 -0
- data/lib/carray/frame/frame.rb +642 -0
- data/lib/carray/frame/group.rb +186 -0
- data/lib/carray/frame/io.rb +321 -0
- data/lib/carray/frame/join.rb +248 -0
- data/lib/carray/frame/records.rb +99 -0
- data/lib/carray/frame/sort.rb +113 -0
- data/lib/carray/frame/verbs.rb +316 -0
- data/lib/carray/frame.rb +16 -0
- data/lib/carray/fuse_source.rb +123 -0
- data/lib/carray/fusion.rb +218 -0
- data/lib/carray/histogram.rb +512 -0
- data/lib/carray/inspect.rb +37 -26
- data/lib/carray/iterator.rb +58 -349
- data/lib/carray/lazy.rb +941 -0
- data/lib/carray/mask_gap_fill.rb +200 -0
- data/lib/carray/math.rb +78 -342
- data/lib/carray/meld_reduce.rb +289 -0
- data/lib/carray/methods/align_addr.rb +116 -0
- data/lib/carray/methods/bin.rb +128 -0
- data/lib/carray/methods/bincount.rb +87 -0
- data/lib/carray/methods/bit_string.rb +92 -0
- data/lib/carray/methods/broadcast.rb +63 -0
- data/lib/carray/methods/choose.rb +39 -0
- data/lib/carray/methods/composition.rb +280 -0
- data/lib/carray/methods/gather_nd.rb +206 -0
- data/lib/carray/methods/index.rb +39 -0
- data/lib/carray/methods/insert_block.rb +99 -0
- data/lib/carray/methods/is_in.rb +141 -0
- data/lib/carray/methods/join.rb +90 -0
- data/lib/carray/methods/locate_addr.rb +52 -0
- data/lib/carray/methods/mask_duplicates.rb +41 -0
- data/lib/carray/methods/meshgrid.rb +90 -0
- data/lib/carray/methods/mode.rb +126 -0
- data/lib/carray/methods/nunique.rb +46 -0
- data/lib/carray/methods/resize.rb +56 -0
- data/lib/carray/methods/snap.rb +161 -0
- data/lib/carray/methods/string_format.rb +57 -0
- data/lib/carray/methods/unique.rb +47 -0
- data/lib/carray/methods/value_counts.rb +71 -0
- data/lib/carray/mkmf.rb +124 -101
- data/lib/carray/runtime.rb +89 -0
- data/lib/carray/serialize.rb +478 -167
- data/lib/carray/slab_iterator.rb +305 -0
- data/lib/carray/stack.rb +291 -0
- data/lib/carray/string.rb +56 -180
- data/lib/carray/string_operation_extension.rb +289 -0
- data/lib/carray/struct.rb +335 -323
- data/lib/carray/struct_builder.rb +697 -0
- data/lib/carray/table.rb +41 -2
- data/lib/carray/time.rb +2654 -38
- data/lib/carray/window_iterator.rb +927 -0
- data/lib/carray.rb +55 -57
- data/yard-stubs/ca_obj_array.rb +385 -0
- data/yard-stubs/ca_obj_bitarray.rb +38 -0
- data/yard-stubs/ca_obj_bitfield.rb +43 -0
- data/yard-stubs/ca_obj_block.rb +73 -0
- data/yard-stubs/ca_obj_byte_swap.rb +56 -0
- data/yard-stubs/ca_obj_fake.rb +31 -0
- data/yard-stubs/ca_obj_farray.rb +32 -0
- data/yard-stubs/ca_obj_field.rb +45 -0
- data/yard-stubs/ca_obj_grid.rb +35 -0
- data/yard-stubs/ca_obj_refer.rb +72 -0
- data/yard-stubs/ca_obj_roll.rb +45 -0
- data/yard-stubs/ca_obj_shift.rb +43 -0
- data/yard-stubs/ca_obj_stride.rb +181 -0
- data/yard-stubs/ca_obj_tile.rb +29 -0
- data/yard-stubs/ca_obj_transpose.rb +40 -0
- data/yard-stubs/ca_obj_window.rb +49 -0
- data/yard-stubs/carray_access.rb +131 -0
- data/yard-stubs/carray_attribute.rb +246 -0
- data/yard-stubs/carray_broadcast.rb +37 -0
- data/yard-stubs/carray_cast.rb +489 -0
- data/yard-stubs/carray_class.rb +65 -0
- data/yard-stubs/carray_conversion.rb +76 -0
- data/yard-stubs/carray_copy.rb +79 -0
- data/yard-stubs/carray_core.rb +114 -0
- data/yard-stubs/carray_count.rb +79 -0
- data/yard-stubs/carray_element.rb +108 -0
- data/yard-stubs/carray_generate.rb +66 -0
- data/yard-stubs/carray_lazy.rb +23 -0
- data/yard-stubs/carray_loop.rb +140 -0
- data/yard-stubs/carray_mask.rb +259 -0
- data/yard-stubs/carray_math.rb +132 -0
- data/yard-stubs/carray_mathfunc.rb +45 -0
- data/yard-stubs/carray_median_percentile.rb +89 -0
- data/yard-stubs/carray_memory_view.rb +163 -0
- data/yard-stubs/carray_order.rb +312 -0
- data/yard-stubs/carray_random.rb +89 -0
- data/yard-stubs/carray_scatter.rb +106 -0
- data/yard-stubs/carray_slab.rb +57 -0
- data/yard-stubs/carray_sort.rb +163 -0
- data/yard-stubs/carray_test.rb +85 -0
- data/yard-stubs/carray_undef.rb +64 -0
- data/yard-stubs/carray_utils.rb +97 -0
- data/yard-stubs/ruby_carray.rb +193 -0
- metadata +220 -138
- data/Rakefile +0 -51
- data/TODO.md +0 -18
- data/ext/ca_iter_block.c +0 -257
- data/ext/ca_iter_dimension.c +0 -299
- data/ext/ca_iter_window.c +0 -214
- data/ext/ca_obj_mapping.c +0 -644
- data/ext/ca_obj_unbound_repeat.c +0 -529
- data/ext/carray_iterator.c +0 -641
- data/ext/carray_math.rb +0 -850
- data/ext/carray_numeric.c +0 -259
- data/ext/carray_sort_addr.c +0 -254
- data/ext/carray_stat.c +0 -2100
- data/ext/carray_stat_proc.rb +0 -1999
- data/ext/mkmath.rb +0 -741
- data/ext/ruby_ccomplex.c +0 -509
- data/ext/ruby_float_func.c +0 -86
- data/lib/carray/array.rb +0 -8
- data/lib/carray/autoload/autoload_base.rb +0 -19
- data/lib/carray/autoload/autoload_gem_cairo.rb +0 -9
- data/lib/carray/autoload/autoload_gem_ffi.rb +0 -9
- data/lib/carray/autoload/autoload_gem_gnuplot.rb +0 -2
- data/lib/carray/autoload/autoload_gem_io_csv.rb +0 -14
- data/lib/carray/autoload/autoload_gem_io_pg.rb +0 -6
- data/lib/carray/autoload/autoload_gem_io_sqlite3.rb +0 -12
- data/lib/carray/autoload/autoload_gem_narray.rb +0 -10
- data/lib/carray/autoload/autoload_gem_numo_narray.rb +0 -15
- data/lib/carray/autoload/autoload_gem_opencv.rb +0 -16
- data/lib/carray/autoload/autoload_gem_random.rb +0 -8
- data/lib/carray/autoload/autoload_gem_rmagick.rb +0 -23
- data/lib/carray/autoload/autoload_gem_zimg.rb +0 -3
- data/lib/carray/autoload/autoload_io_imagemagick.rb +0 -6
- data/lib/carray/autoload/autoload_math_histogram.rb +0 -5
- data/lib/carray/autoload/autoload_math_recurrence.rb +0 -6
- data/lib/carray/autoload/autoload_object_iterator.rb +0 -1
- data/lib/carray/autoload/autoload_object_link.rb +0 -1
- data/lib/carray/autoload/autoload_object_pack.rb +0 -2
- data/lib/carray/autoload.rb +0 -141
- data/lib/carray/basic.rb +0 -191
- data/lib/carray/broadcast.rb +0 -101
- data/lib/carray/compose.rb +0 -315
- data/lib/carray/convert.rb +0 -115
- data/lib/carray/info.rb +0 -110
- data/lib/carray/io/imagemagick.rb +0 -235
- data/lib/carray/mask.rb +0 -102
- data/lib/carray/math/histogram.rb +0 -177
- data/lib/carray/math/recurrence.rb +0 -93
- data/lib/carray/object/ca_obj_iterator.rb +0 -50
- data/lib/carray/object/ca_obj_link.rb +0 -50
- data/lib/carray/object/ca_obj_pack.rb +0 -99
- data/lib/carray/obsolete.rb +0 -256
- data/lib/carray/ordering.rb +0 -181
- data/lib/carray/testing.rb +0 -51
- data/lib/carray/transform.rb +0 -109
- data/mailmap +0 -1
- data/misc/Methods.ja.md +0 -182
- data/misc/NOTE +0 -51
- data/spec/Classes/CABitfield_spec.rb +0 -58
- data/spec/Classes/CABlockIterator_spec.rb +0 -114
- data/spec/Classes/CABlock_spec.rb +0 -205
- data/spec/Classes/CAField_spec.rb +0 -39
- data/spec/Classes/CAGrid_spec.rb +0 -75
- data/spec/Classes/CAMap_spec.rb +0 -0
- data/spec/Classes/CAMapping_spec.rb +0 -105
- data/spec/Classes/CAObject_attribute_spec.rb +0 -33
- data/spec/Classes/CAObject_spec.rb +0 -33
- data/spec/Classes/CARefer_spec.rb +0 -93
- data/spec/Classes/CARepeat_spec.rb +0 -65
- data/spec/Classes/CASelect_spec.rb +0 -22
- data/spec/Classes/CAShift_spec.rb +0 -16
- data/spec/Classes/CAStruct_spec.rb +0 -71
- data/spec/Classes/CATranspose_spec.rb +0 -60
- data/spec/Classes/CAUnboudRepeat_spec.rb +0 -102
- data/spec/Classes/CAWindow_spec.rb +0 -54
- data/spec/Classes/CAWrap_spec.rb +0 -8
- data/spec/Classes/CArray_spec.rb +0 -184
- data/spec/Classes/CScalar_spec.rb +0 -55
- data/spec/Features/feature_130_spec.rb +0 -19
- data/spec/Features/feature_attributes_spec.rb +0 -280
- data/spec/Features/feature_boolean_spec.rb +0 -98
- data/spec/Features/feature_broadcast.rb +0 -116
- data/spec/Features/feature_cast_function.rb +0 -19
- data/spec/Features/feature_cast_spec.rb +0 -33
- data/spec/Features/feature_class_spec.rb +0 -84
- data/spec/Features/feature_complex_spec.rb +0 -42
- data/spec/Features/feature_composite_spec.rb +0 -124
- data/spec/Features/feature_convert_spec.rb +0 -46
- data/spec/Features/feature_copy_spec.rb +0 -123
- data/spec/Features/feature_creation_spec.rb +0 -84
- data/spec/Features/feature_element_spec.rb +0 -144
- data/spec/Features/feature_extream_spec.rb +0 -54
- data/spec/Features/feature_generate_spec.rb +0 -74
- data/spec/Features/feature_index_spec.rb +0 -69
- data/spec/Features/feature_mask_spec.rb +0 -580
- data/spec/Features/feature_math_spec.rb +0 -97
- data/spec/Features/feature_order_spec.rb +0 -146
- data/spec/Features/feature_ref_store_spec.rb +0 -209
- data/spec/Features/feature_serialization_spec.rb +0 -125
- data/spec/Features/feature_stat_spec.rb +0 -397
- data/spec/Features/feature_virtual_spec.rb +0 -48
- data/spec/Features/method_eq_spec.rb +0 -81
- data/spec/Features/method_is_nan_spec.rb +0 -12
- data/spec/Features/method_map_spec.rb +0 -54
- data/spec/Features/method_max_with.rb +0 -20
- data/spec/Features/method_min_with.rb +0 -19
- data/spec/Features/method_ne_spec.rb +0 -18
- data/spec/Features/method_project_spec.rb +0 -188
- data/spec/Features/method_ref_spec.rb +0 -27
- data/spec/Features/method_round_spec.rb +0 -11
- data/spec/Features/method_s_linspace_spec.rb +0 -48
- data/spec/Features/method_s_span_spec.rb +0 -14
- data/spec/Features/method_seq_spec.rb +0 -47
- data/spec/Features/method_sort_with.rb +0 -43
- data/spec/Features/method_sorted_with.rb +0 -29
- data/spec/Features/method_span_spec.rb +0 -42
- data/spec/Features/method_wrap_readonly_spec.rb +0 -43
- data/spec/UnitTest/test_CAVirtual.rb +0 -214
- data/spec/spec_all.rb +0 -10
- data/utils/ca_ase.rb +0 -21
- data/utils/ca_methods.rb +0 -15
- data/utils/cast_checker.rb +0 -30
- data/utils/convert_test.rb +0 -73
- data/utils/extract_yard.rb +0 -22
- data/utils/guess_shape.rb +0 -76
- data/utils/monkey_patch_methods.rb +0 -62
- data/utils/remove_resource_fork.sh +0 -5
data/ext/ruby_carray.c
CHANGED
|
@@ -1,27 +1,33 @@
|
|
|
1
1
|
/* ---------------------------------------------------------------------------
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Single entry point Init_carray_ext: declares the CArray class
|
|
4
|
+
hierarchy + exception class + CA module, populates top-level
|
|
5
|
+
constants (CA_RANK_MAX / CA_* data_type Symbols / alignment
|
|
6
|
+
values), then drives the per-module Init_* sequence in load order.
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
CAREFUL: the Init_* call order below carries real ordering
|
|
9
|
+
invariants in several places (e.g. CAStride before its subclasses,
|
|
10
|
+
ca_op_ipower before mask_fast_paths, ca_face before its concrete
|
|
11
|
+
Faces, lazy before monop). Each load-bearing edge is annotated at
|
|
12
|
+
the callsite; do not reorder without reading those notes.
|
|
8
13
|
|
|
9
14
|
---------------------------------------------------------------------------- */
|
|
10
15
|
|
|
11
16
|
#include "carray.h"
|
|
17
|
+
#include "carray_build_flags.h"
|
|
12
18
|
#include "version.h"
|
|
13
19
|
|
|
14
20
|
#ifdef HAVE_RB_ARITHMETIC_SEQUENCE_EXTRACT
|
|
15
21
|
VALUE rb_cArithSeq;
|
|
16
22
|
#endif
|
|
23
|
+
|
|
24
|
+
/* Form-only base of the 3.0 iterator family (defined in Init_carray_ext). */
|
|
25
|
+
VALUE rb_cCAIterator;
|
|
17
26
|
|
|
18
27
|
VALUE rb_eCADataTypeError;
|
|
19
28
|
VALUE rb_mCA;
|
|
20
29
|
|
|
21
|
-
VALUE
|
|
22
|
-
|
|
23
|
-
void Init_ccomplex ();
|
|
24
|
-
void Init_numeric_float_function ();
|
|
30
|
+
VALUE CA_UNSPECIFIED;
|
|
25
31
|
|
|
26
32
|
void Init_carray_core ();
|
|
27
33
|
void Init_carray_undef ();
|
|
@@ -31,51 +37,92 @@ void Init_carray_test ();
|
|
|
31
37
|
void Init_carray_attribute ();
|
|
32
38
|
void Init_carray_loop ();
|
|
33
39
|
void Init_carray_mask ();
|
|
40
|
+
void Init_carray_hold ();
|
|
41
|
+
void Init_carray_mask_fast_paths (); /* patches generated bit-op tables;
|
|
42
|
+
must run AFTER Init_ca_op_ipower */
|
|
34
43
|
void Init_carray_access ();
|
|
44
|
+
void Init_carray_index_classifier ();
|
|
35
45
|
void Init_carray_element ();
|
|
36
|
-
void
|
|
46
|
+
void Init_carray_scatter (); /* scatter_*! family */
|
|
47
|
+
void Init_ca_axis_group (); /* devel/MEMO_AXIS_GROUP.md — axis-group reduction kernel */
|
|
48
|
+
void Init_ca_group_iter (); /* devel/MEMO_AXIS_GROUP.md — axis-group [] surface */
|
|
49
|
+
void Init_carray_bincount (); /* bincount dedicated kernel */
|
|
50
|
+
void Init_carray_factorize (); /* single-pass integer factorization for categorize */
|
|
51
|
+
void Init_carray_histogram (); /* histogram + histbin_ki */
|
|
52
|
+
void Init_ca_categorical_iterator (); /* CACategoricalIterator counting-sort scatter */
|
|
37
53
|
void Init_carray_operator ();
|
|
38
|
-
void
|
|
39
|
-
void Init_carray_math ();
|
|
54
|
+
void Init_ca_op_ipower ();
|
|
40
55
|
void Init_carray_utils ();
|
|
41
56
|
void Init_carray_order ();
|
|
42
|
-
void
|
|
43
|
-
void
|
|
44
|
-
void
|
|
57
|
+
void Init_carray_partition (); /* partition / partition_copy */
|
|
58
|
+
void Init_carray_median_percentile (); /* median / percentile / quantile */
|
|
59
|
+
void Init_carray_sort (); /* sort / sort_copy / sort_addr / axis2addr */
|
|
60
|
+
void Init_carray_count ();
|
|
61
|
+
void Init_carray_kernels (); /* mkkernel-generated: reductions + maps */
|
|
45
62
|
void Init_carray_utils ();
|
|
46
63
|
void Init_carray_generate ();
|
|
47
64
|
void Init_carray_copy ();
|
|
48
65
|
void Init_carray_conversion ();
|
|
49
66
|
void Init_carray_cast ();
|
|
67
|
+
void Init_carray_broadcast ();
|
|
50
68
|
|
|
51
69
|
void Init_ca_obj_array ();
|
|
52
70
|
void Init_ca_obj_refer ();
|
|
53
71
|
void Init_ca_obj_farray ();
|
|
54
72
|
void Init_ca_obj_block ();
|
|
55
73
|
void Init_ca_obj_select ();
|
|
74
|
+
void Init_ca_obj_select_axis ();
|
|
56
75
|
void Init_ca_obj_object ();
|
|
57
76
|
void Init_ca_obj_grid ();
|
|
58
77
|
void Init_ca_obj_window ();
|
|
59
78
|
void Init_ca_obj_shift ();
|
|
79
|
+
void Init_ca_obj_tile ();
|
|
80
|
+
void Init_ca_obj_roll ();
|
|
81
|
+
void Init_ca_obj_stack (); /* multi-parent outer-axis stack */
|
|
82
|
+
void Init_ca_obj_meld (); /* multi-parent ragged concat along existing axis */
|
|
60
83
|
void Init_ca_obj_transpose ();
|
|
61
|
-
void Init_ca_obj_mapping ();
|
|
62
84
|
void Init_ca_obj_repeat ();
|
|
63
|
-
void Init_ca_obj_unbound_repeat ();
|
|
64
85
|
void Init_ca_obj_reduce ();
|
|
65
86
|
void Init_ca_obj_field ();
|
|
66
87
|
void Init_ca_obj_fake ();
|
|
88
|
+
void Init_ca_obj_byte_swap ();
|
|
89
|
+
void Init_ca_face (); /* CAFace abstract base; must precede CATime / CATimedelta / CARecord / CAConstString */
|
|
90
|
+
void Init_ca_source (); /* CASource abstract base; concrete sources live in C extensions */
|
|
91
|
+
void Init_ca_obj_time (); /* first numeric Face */
|
|
92
|
+
void Init_ca_obj_timedelta (); /* CATime sibling */
|
|
93
|
+
void Init_ca_obj_record (); /* composite Face for CAStruct backing */
|
|
94
|
+
void Init_ca_obj_const_string ();/* read-only variable-length string Face */
|
|
95
|
+
void Init_ca_obj_string (); /* mutable string Face over CA_OBJECT storage */
|
|
96
|
+
void Init_ca_obj_fixlen_string ();/* string Face over CA_FIXLEN storage */
|
|
67
97
|
void Init_ca_obj_bitarray ();
|
|
68
98
|
void Init_ca_obj_bitfield ();
|
|
69
|
-
|
|
70
|
-
void
|
|
71
|
-
void
|
|
72
|
-
void
|
|
73
|
-
void
|
|
99
|
+
void Init_ca_obj_stride ();
|
|
100
|
+
void Init_ca_obj_remap (); /* internal-only (no Ruby surface) */
|
|
101
|
+
void Init_carray_lazy (); /* CALazyMarker; must precede Init_ca_obj_monop / _binop / _moncmp / _bincmp */
|
|
102
|
+
void Init_ca_obj_monop (); /* CAMonOp + lazy elementwise monadic dispatch */
|
|
103
|
+
void Init_ca_obj_binop (); /* CABinOp + lazy elementwise binary dispatch */
|
|
104
|
+
void Init_ca_obj_triop (); /* CATriOp + lazy elementwise triadic dispatch */
|
|
105
|
+
void Init_ca_obj_bincmp (); /* CABinCmp + lazy elementwise comparison dispatch */
|
|
106
|
+
void Init_ca_obj_moncmp (); /* CAMonCmp + lazy elementwise predicate dispatch */
|
|
107
|
+
|
|
108
|
+
/* Init_carray_iterator retired; CAIterator is a form-only base defined inline
|
|
109
|
+
in Init_carray_ext (accessors in lib/carray/iterator.rb). The 2.0 C engines
|
|
110
|
+
(dimension / window / block iterators) were retired in 3.0. */
|
|
74
111
|
|
|
75
112
|
void Init_carray_mathfunc ();
|
|
76
113
|
|
|
114
|
+
void Init_carray_memory_view ();
|
|
115
|
+
|
|
116
|
+
void Init_carray_struct ();
|
|
117
|
+
|
|
118
|
+
void Init_carray_random ();
|
|
119
|
+
|
|
120
|
+
void Init_ca_kernel_iterator ();
|
|
121
|
+
|
|
122
|
+
void Init_carray_slab ();
|
|
123
|
+
|
|
77
124
|
void
|
|
78
|
-
Init_carray_ext ()
|
|
125
|
+
Init_carray_ext (void)
|
|
79
126
|
{
|
|
80
127
|
|
|
81
128
|
#ifdef HAVE_RB_EXT_RACTOR_SAFE
|
|
@@ -93,68 +140,57 @@ Init_carray_ext ()
|
|
|
93
140
|
rb_cCArray = rb_define_class("CArray", rb_cObject);
|
|
94
141
|
rb_cCAWrap = rb_define_class("CAWrap", rb_cCArray);
|
|
95
142
|
rb_cCScalar = rb_define_class("CScalar", rb_cCArray);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
143
|
+
rb_cCAView = rb_define_class("CAView", rb_cCArray);
|
|
144
|
+
/* CAREFUL: CAStride must exist before its subclasses (CARefer /
|
|
145
|
+
CABlock / CAField / CARepeat / CATranspose /
|
|
146
|
+
CAFarray) are defined or registered. See devel/CAStride.md. */
|
|
147
|
+
rb_cCAStride = rb_define_class("CAStride", rb_cCAView);
|
|
148
|
+
rb_cCARefer = rb_define_class("CARefer", rb_cCAStride);
|
|
149
|
+
rb_cCABlock = rb_define_class("CABlock", rb_cCAStride);
|
|
150
|
+
rb_cCAField = rb_define_class("CAField", rb_cCAStride);
|
|
151
|
+
rb_cCASelect = rb_define_class("CASelect", rb_cCAView);
|
|
152
|
+
rb_cCAObject = rb_define_class("CAObject", rb_cCAView);
|
|
153
|
+
rb_cCARepeat = rb_define_class("CARepeat", rb_cCAStride);
|
|
104
154
|
rb_cCArrayMask = rb_define_class("CArrayMask", rb_cCArray);
|
|
155
|
+
rb_cCAStrideMask = rb_define_class("CAStrideMask", rb_cCAStride);
|
|
105
156
|
rb_cCAReferMask = rb_define_class("CAReferMask", rb_cCARefer);
|
|
106
157
|
rb_cCABlockMask = rb_define_class("CABlockMask", rb_cCABlock);
|
|
158
|
+
rb_cCAFieldMask = rb_define_class("CAFieldMask", rb_cCAField);
|
|
107
159
|
rb_cCASelectMask = rb_define_class("CASelectMask", rb_cCASelect);
|
|
108
160
|
rb_cCARepeatMask = rb_define_class("CARepeatMask", rb_cCARepeat);
|
|
109
|
-
rb_cCAUnboundRepeatMask = rb_define_class("CAUnboundRepeatMask", rb_cCAUnboundRepeat);
|
|
110
161
|
|
|
111
162
|
/* -- Exception class -- */
|
|
112
163
|
|
|
113
164
|
rb_eCADataTypeError =
|
|
114
165
|
rb_define_class_under(rb_cCArray, "DataTypeError", rb_eStandardError);
|
|
115
166
|
|
|
116
|
-
/*
|
|
117
|
-
class CArray::DataTypeError # :nodoc:
|
|
118
|
-
end
|
|
119
|
-
*/
|
|
120
|
-
|
|
121
|
-
/* -- CA module -- */
|
|
122
|
-
/* a namespace for misc utilities related with CArray */
|
|
167
|
+
/* -- CA module -- namespace for misc utilities related to CArray */
|
|
123
168
|
|
|
124
169
|
rb_mCA = rb_define_module("CA");
|
|
125
170
|
|
|
126
|
-
/* CArray constants */
|
|
127
|
-
|
|
128
171
|
/* -- version -- */
|
|
129
172
|
|
|
130
|
-
/*
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
VERSION_TEENY = nil # :nodoc:
|
|
137
|
-
VERSION_DATE = nil # :nodoc:
|
|
138
|
-
end
|
|
139
|
-
*/
|
|
140
|
-
|
|
141
|
-
/* @private */
|
|
142
|
-
rb_define_const(rb_cCArray, "VERSION", rb_str_new2(CA_VERSION));
|
|
143
|
-
/* @private */
|
|
144
|
-
rb_define_const(rb_cCArray, "VERSION_CODE", INT2NUM(CA_VERSION_CODE));
|
|
145
|
-
/* @private */
|
|
173
|
+
/* The flags this build's arithmetic was compiled with. Anything that
|
|
174
|
+
computes what these kernels compute, somewhere other than in them, has
|
|
175
|
+
to be built the same way to arrive at the same answer. */
|
|
176
|
+
rb_define_const(rb_cCArray, "BUILD_FLAGS", rb_str_new2(CA_BUILD_FLAGS));
|
|
177
|
+
rb_define_const(rb_cCArray, "VERSION", rb_str_new2(CA_VERSION));
|
|
178
|
+
rb_define_const(rb_cCArray, "VERSION_CODE", INT2NUM(CA_VERSION_CODE));
|
|
146
179
|
rb_define_const(rb_cCArray, "VERSION_MAJOR", INT2NUM(CA_VERSION_MAJOR));
|
|
147
|
-
/* @private */
|
|
148
180
|
rb_define_const(rb_cCArray, "VERSION_MINOR", INT2NUM(CA_VERSION_MINOR));
|
|
149
|
-
/* @private */
|
|
150
181
|
rb_define_const(rb_cCArray, "VERSION_TEENY", INT2NUM(CA_VERSION_TEENY));
|
|
151
|
-
|
|
152
|
-
rb_define_const(rb_cCArray, "VERSION_DATE", rb_str_new2(CA_VERSION_DATE));
|
|
182
|
+
rb_define_const(rb_cCArray, "VERSION_DATE", rb_str_new2(CA_VERSION_DATE));
|
|
153
183
|
|
|
154
184
|
/* -- system -- */
|
|
155
185
|
rb_define_const(rb_cObject, "CA_RANK_MAX", INT2NUM(CA_RANK_MAX));
|
|
156
|
-
|
|
157
|
-
|
|
186
|
+
/* Sentinel meaning "the caller did not give this argument". It is
|
|
187
|
+
distinct from nil because nil is itself a legal fill value (a
|
|
188
|
+
CA_OBJECT array can be filled with nil), so nil cannot mark
|
|
189
|
+
absence. C code only ever compares against it; the value is never
|
|
190
|
+
read and must never be passed in from Ruby. The constant exists to
|
|
191
|
+
anchor the object against the GC. */
|
|
192
|
+
CA_UNSPECIFIED = rb_funcall(rb_cObject, rb_intern("new"), 0);
|
|
193
|
+
rb_define_const(rb_cCArray, "UNSPECIFIED", CA_UNSPECIFIED);
|
|
158
194
|
|
|
159
195
|
#ifdef HAVE_COMPLEX_H
|
|
160
196
|
/* @private */
|
|
@@ -166,32 +202,53 @@ Init_carray_ext ()
|
|
|
166
202
|
|
|
167
203
|
/* -- data types -- */
|
|
168
204
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
rb_define_const(rb_cObject, "
|
|
192
|
-
rb_define_const(rb_cObject, "
|
|
193
|
-
rb_define_const(rb_cObject, "
|
|
194
|
-
rb_define_const(rb_cObject, "
|
|
205
|
+
/* CAREFUL: precompute the Symbol ID cache for the ca.data_type
|
|
206
|
+
accessor BEFORE the CA_* data_type constants below are defined —
|
|
207
|
+
they read from ca_data_type_sym[]. */
|
|
208
|
+
{
|
|
209
|
+
int i;
|
|
210
|
+
for ( i = 0; i < CA_NTYPE; i++ ) {
|
|
211
|
+
if ( ca_type_name[i] != NULL ) {
|
|
212
|
+
ca_data_type_sym[i] = rb_intern(ca_type_name[i]);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
ca_data_type_sym[i] = rb_intern("");
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/* The Ruby-surface CA_* data_type constants are Symbols (the C
|
|
221
|
+
internal `#define CA_INT64 8` etc. is unchanged); both sides flip
|
|
222
|
+
to Symbol together so `case when CA_INT64` over `ca.data_type`
|
|
223
|
+
stays transparent. Alias constants (CA_DOUBLE etc.) share the
|
|
224
|
+
canonical Symbol via Symbol identity, so `CA_DOUBLE ==
|
|
225
|
+
CA_FLOAT64` evaluates true. */
|
|
226
|
+
|
|
227
|
+
rb_define_const(rb_cObject, "CA_FIXLEN", ID2SYM(ca_data_type_sym[CA_FIXLEN]));
|
|
228
|
+
rb_define_const(rb_cObject, "CA_BOOLEAN", ID2SYM(ca_data_type_sym[CA_BOOLEAN]));
|
|
229
|
+
rb_define_const(rb_cObject, "CA_INT8", ID2SYM(ca_data_type_sym[CA_INT8]));
|
|
230
|
+
rb_define_const(rb_cObject, "CA_UINT8", ID2SYM(ca_data_type_sym[CA_UINT8]));
|
|
231
|
+
rb_define_const(rb_cObject, "CA_INT16", ID2SYM(ca_data_type_sym[CA_INT16]));
|
|
232
|
+
rb_define_const(rb_cObject, "CA_UINT16", ID2SYM(ca_data_type_sym[CA_UINT16]));
|
|
233
|
+
rb_define_const(rb_cObject, "CA_INT32", ID2SYM(ca_data_type_sym[CA_INT32]));
|
|
234
|
+
rb_define_const(rb_cObject, "CA_UINT32", ID2SYM(ca_data_type_sym[CA_UINT32]));
|
|
235
|
+
rb_define_const(rb_cObject, "CA_INT64", ID2SYM(ca_data_type_sym[CA_INT64]));
|
|
236
|
+
rb_define_const(rb_cObject, "CA_UINT64", ID2SYM(ca_data_type_sym[CA_UINT64]));
|
|
237
|
+
rb_define_const(rb_cObject, "CA_FLOAT32", ID2SYM(ca_data_type_sym[CA_FLOAT32]));
|
|
238
|
+
rb_define_const(rb_cObject, "CA_FLOAT64", ID2SYM(ca_data_type_sym[CA_FLOAT64]));
|
|
239
|
+
rb_define_const(rb_cObject, "CA_CMPLX64", ID2SYM(ca_data_type_sym[CA_CMPLX64]));
|
|
240
|
+
rb_define_const(rb_cObject, "CA_CMPLX128", ID2SYM(ca_data_type_sym[CA_CMPLX128]));
|
|
241
|
+
rb_define_const(rb_cObject, "CA_OBJECT", ID2SYM(ca_data_type_sym[CA_OBJECT]));
|
|
242
|
+
|
|
243
|
+
/* Aliases share the canonical Symbol: CA_BYTE == CA_UINT8, etc. */
|
|
244
|
+
rb_define_const(rb_cObject, "CA_BYTE", ID2SYM(ca_data_type_sym[CA_BYTE]));
|
|
245
|
+
rb_define_const(rb_cObject, "CA_SHORT", ID2SYM(ca_data_type_sym[CA_INT16]));
|
|
246
|
+
rb_define_const(rb_cObject, "CA_INT", ID2SYM(ca_data_type_sym[CA_INT32]));
|
|
247
|
+
rb_define_const(rb_cObject, "CA_FLOAT", ID2SYM(ca_data_type_sym[CA_FLOAT]));
|
|
248
|
+
rb_define_const(rb_cObject, "CA_DOUBLE", ID2SYM(ca_data_type_sym[CA_DOUBLE]));
|
|
249
|
+
rb_define_const(rb_cObject, "CA_COMPLEX", ID2SYM(ca_data_type_sym[CA_COMPLEX]));
|
|
250
|
+
rb_define_const(rb_cObject, "CA_DCOMPLEX", ID2SYM(ca_data_type_sym[CA_DCOMPLEX]));
|
|
251
|
+
rb_define_const(rb_cObject, "CA_SIZE", ID2SYM(ca_data_type_sym[CA_SIZE]));
|
|
195
252
|
|
|
196
253
|
rb_define_const(rb_cObject, "CA_ALIGN_VOIDP", INT2NUM(CA_ALIGN_VOIDP));
|
|
197
254
|
rb_define_const(rb_cObject, "CA_ALIGN_FIXLEN", INT2NUM(CA_ALIGN_INT8));
|
|
@@ -202,38 +259,44 @@ Init_carray_ext ()
|
|
|
202
259
|
rb_define_const(rb_cObject, "CA_ALIGN_INT64", INT2NUM(CA_ALIGN_INT64));
|
|
203
260
|
rb_define_const(rb_cObject, "CA_ALIGN_FLOAT32", INT2NUM(CA_ALIGN_FLOAT32));
|
|
204
261
|
rb_define_const(rb_cObject, "CA_ALIGN_FLOAT64", INT2NUM(CA_ALIGN_FLOAT64));
|
|
205
|
-
rb_define_const(rb_cObject, "CA_ALIGN_FLOAT128", INT2NUM(CA_ALIGN_FLOAT128));
|
|
206
262
|
rb_define_const(rb_cObject, "CA_ALIGN_CMPLX64", INT2NUM(CA_ALIGN_CMPLX64));
|
|
207
263
|
rb_define_const(rb_cObject, "CA_ALIGN_CMPLX128", INT2NUM(CA_ALIGN_CMPLX128));
|
|
208
|
-
rb_define_const(rb_cObject, "CA_ALIGN_CMPLX256", INT2NUM(CA_ALIGN_CMPLX256));
|
|
209
264
|
rb_define_const(rb_cObject, "CA_ALIGN_OBJECT", INT2NUM(CA_ALIGN_OBJECT));
|
|
210
265
|
|
|
211
266
|
/* load modules in external files */
|
|
212
267
|
|
|
213
268
|
Init_carray_core(); /* Init_carray_core should be called first*/
|
|
214
269
|
|
|
215
|
-
#ifdef HAVE_COMPLEX_H
|
|
216
|
-
Init_ccomplex();
|
|
217
|
-
#endif
|
|
218
|
-
|
|
219
|
-
Init_numeric_float_function();
|
|
220
|
-
|
|
221
270
|
Init_carray_class();
|
|
222
271
|
Init_carray_data_type();
|
|
223
272
|
Init_carray_test();
|
|
224
273
|
Init_carray_attribute();
|
|
225
274
|
Init_carray_undef();
|
|
226
275
|
Init_carray_mask();
|
|
276
|
+
Init_carray_hold();
|
|
227
277
|
Init_carray_loop();
|
|
228
278
|
Init_carray_access();
|
|
279
|
+
Init_carray_index_classifier();
|
|
229
280
|
Init_carray_element();
|
|
281
|
+
Init_carray_scatter();
|
|
282
|
+
Init_ca_axis_group(); /* devel/MEMO_AXIS_GROUP.md — axis-group reduction kernel */
|
|
283
|
+
Init_carray_bincount();
|
|
284
|
+
Init_carray_factorize();
|
|
285
|
+
Init_carray_histogram();
|
|
286
|
+
Init_ca_categorical_iterator();
|
|
230
287
|
Init_carray_operator();
|
|
231
|
-
|
|
232
|
-
|
|
288
|
+
Init_ca_op_ipower(); /* CArray#pow / pow! + ipower fast path.
|
|
289
|
+
CAREFUL: must precede the numeric init
|
|
290
|
+
block that follows. */
|
|
291
|
+
Init_carray_mask_fast_paths(); /* patches bit-op tables for boolean8_t;
|
|
292
|
+
must run AFTER Init_ca_op_ipower
|
|
293
|
+
(which sets up the tables). */
|
|
233
294
|
Init_carray_order();
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
295
|
+
Init_carray_partition(); /* partition / partition_copy */
|
|
296
|
+
Init_carray_median_percentile(); /* needs partition_copy_c from carray_partition */
|
|
297
|
+
Init_carray_sort(); /* sort / sort_copy / sort_addr / axis2addr */
|
|
298
|
+
Init_carray_count();
|
|
299
|
+
Init_carray_kernels(); /* mkkernel-generated: reductions + maps */
|
|
237
300
|
|
|
238
301
|
Init_carray_utils();
|
|
239
302
|
|
|
@@ -241,34 +304,74 @@ Init_carray_ext ()
|
|
|
241
304
|
Init_carray_copy();
|
|
242
305
|
Init_carray_conversion();
|
|
243
306
|
Init_carray_cast();
|
|
307
|
+
Init_carray_broadcast();
|
|
244
308
|
|
|
245
309
|
Init_ca_obj_array();
|
|
246
310
|
Init_ca_obj_refer();
|
|
311
|
+
Init_ca_obj_stride(); /* CAREFUL: must precede CAStride subclasses
|
|
312
|
+
(farray / block / transpose / repeat /
|
|
313
|
+
unbound_repeat / field). */
|
|
247
314
|
Init_ca_obj_farray();
|
|
248
315
|
Init_ca_obj_block();
|
|
249
316
|
Init_ca_obj_select();
|
|
317
|
+
Init_ca_obj_select_axis();
|
|
250
318
|
Init_ca_obj_object();
|
|
251
319
|
Init_ca_obj_grid();
|
|
252
320
|
Init_ca_obj_window();
|
|
253
321
|
Init_ca_obj_shift();
|
|
322
|
+
Init_ca_obj_tile();
|
|
323
|
+
Init_ca_obj_roll(); /* depends on tile */
|
|
324
|
+
Init_ca_obj_stack();
|
|
325
|
+
Init_ca_obj_meld();
|
|
254
326
|
Init_ca_obj_transpose();
|
|
255
|
-
Init_ca_obj_mapping();
|
|
256
327
|
Init_ca_obj_repeat();
|
|
257
|
-
Init_ca_obj_unbound_repeat();
|
|
258
328
|
Init_ca_obj_reduce();
|
|
259
329
|
Init_ca_obj_field();
|
|
260
330
|
Init_ca_obj_fake();
|
|
331
|
+
Init_ca_obj_byte_swap();
|
|
332
|
+
Init_ca_source(); /* CASource: abstract, no obj_type of its own.
|
|
333
|
+
Concrete sources are registered by C
|
|
334
|
+
extensions via ca_install_obj_type. */
|
|
335
|
+
Init_ca_face(); /* CAREFUL: must precede every concrete Face
|
|
336
|
+
(datetime / timedelta / record /
|
|
337
|
+
const_string). */
|
|
338
|
+
Init_ca_obj_time();
|
|
339
|
+
Init_ca_obj_timedelta();
|
|
340
|
+
Init_ca_obj_record();
|
|
341
|
+
Init_ca_obj_const_string();
|
|
342
|
+
Init_ca_obj_string();
|
|
343
|
+
Init_ca_obj_fixlen_string();
|
|
261
344
|
Init_ca_obj_bitarray();
|
|
262
345
|
Init_ca_obj_bitfield();
|
|
346
|
+
Init_ca_obj_remap(); /* internal-only (no Ruby surface) */
|
|
347
|
+
Init_carray_lazy(); /* CALazyMarker; CAREFUL: must precede the
|
|
348
|
+
four lazy elementwise inits below. */
|
|
349
|
+
Init_ca_obj_monop();
|
|
350
|
+
Init_ca_obj_binop();
|
|
351
|
+
Init_ca_obj_triop();
|
|
352
|
+
Init_ca_obj_bincmp();
|
|
353
|
+
Init_ca_obj_moncmp();
|
|
354
|
+
|
|
355
|
+
/* CAIterator is the form-only base of the 3.0 iterator family; its shared
|
|
356
|
+
accessors are plain Ruby attr_readers (lib/carray/iterator.rb). The C
|
|
357
|
+
reduction iterators subclass it and carray_access.c constructs
|
|
358
|
+
CASlabIterator by name, so the class object must exist here. */
|
|
359
|
+
rb_cCAIterator = rb_define_class("CAIterator", rb_cObject);
|
|
360
|
+
|
|
361
|
+
Init_ca_group_iter(); /* devel/MEMO_AXIS_GROUP.md — axis-group [] surface
|
|
362
|
+
(CAGroupIterator); after CAIterator is defined
|
|
363
|
+
(CAGroupIterator subclasses it). */
|
|
263
364
|
|
|
264
|
-
|
|
365
|
+
Init_carray_mathfunc();
|
|
265
366
|
|
|
266
|
-
|
|
267
|
-
Init_ca_iter_block();
|
|
268
|
-
Init_ca_iter_window();
|
|
367
|
+
Init_carray_memory_view();
|
|
269
368
|
|
|
270
|
-
|
|
369
|
+
Init_carray_struct();
|
|
370
|
+
|
|
371
|
+
Init_carray_random();
|
|
271
372
|
|
|
373
|
+
Init_ca_kernel_iterator();
|
|
272
374
|
|
|
375
|
+
Init_carray_slab();
|
|
273
376
|
}
|
|
274
377
|
|
data/ext/version.h
CHANGED
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
This file is part of Ruby/CArray extension library.
|
|
6
|
-
|
|
7
|
-
Copyright (C) 2005-2025 Hiroki Motoyoshi
|
|
8
|
-
|
|
9
|
-
---------------------------------------------------------------------------- */
|
|
10
|
-
|
|
11
|
-
#define CA_VERSION "2.0.1"
|
|
12
|
-
#define CA_VERSION_CODE 201
|
|
13
|
-
#define CA_VERSION_MAJOR 2
|
|
1
|
+
#define CA_VERSION "3.0.1"
|
|
2
|
+
#define CA_VERSION_CODE 301
|
|
3
|
+
#define CA_VERSION_MAJOR 3
|
|
14
4
|
#define CA_VERSION_MINOR 0
|
|
15
5
|
#define CA_VERSION_TEENY 1
|
|
16
|
-
#define CA_VERSION_DATE "
|
|
6
|
+
#define CA_VERSION_DATE "2026/09/07"
|
data/ext/version.rb
CHANGED
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
# ----------------------------------------------------------------------------
|
|
2
|
-
#
|
|
3
|
-
# version.rb
|
|
4
|
-
#
|
|
5
|
-
# This file is part of Ruby/CArray extension library.
|
|
6
|
-
# You can redistribute it and/or modify it under the terms of
|
|
7
|
-
# the Ruby Licence.
|
|
8
|
-
#
|
|
9
|
-
# Copyright (C) 2005 Hiroki Motoyoshi
|
|
10
|
-
#
|
|
11
|
-
# ----------------------------------------------------------------------------
|
|
12
|
-
|
|
13
1
|
def carray_version
|
|
14
2
|
|
|
15
3
|
io = open(File.join(File.dirname(__FILE__), "version.h"))
|
|
@@ -36,7 +24,11 @@ def carray_version
|
|
|
36
24
|
ca_version_code2 =
|
|
37
25
|
100 * ca_version_major + 10*ca_version_minor + ca_version_teeny
|
|
38
26
|
|
|
39
|
-
|
|
27
|
+
# Allow pre-release suffix like "3.0.0.dev" / "3.0.0.alpha1" while still
|
|
28
|
+
# validating the numeric MAJOR.MINOR.TEENY prefix.
|
|
29
|
+
ca_version_numeric = ca_version.split(".")[0, 3].join(".")
|
|
30
|
+
|
|
31
|
+
if ca_version_numeric != ca_version2 or ca_version_code != ca_version_code2
|
|
40
32
|
raise "invalid version.h"
|
|
41
33
|
end
|
|
42
34
|
|