carray 2.0.0 → 3.0.0
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 +5 -25
- data/CHANGELOG.md +16 -0
- data/LICENSE +1 -1
- data/NEWS.md +3 -0
- data/README.md +128 -44
- data/carray.gemspec +22 -24
- 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 +1208 -0
- data/ext/ca_bincmp_dispatch.c +76 -0
- data/ext/ca_bincmp_dispatch.h +85 -0
- data/ext/ca_binop_dispatch.c +125 -0
- data/ext/ca_binop_dispatch.h +159 -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 +241 -0
- data/ext/ca_group_iter.c +304 -0
- data/ext/ca_iter_substrate.h +325 -0
- data/ext/ca_kernel_iterator.c +4321 -0
- data/ext/ca_kernel_iterator.h +2603 -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 +809 -0
- data/ext/ca_obj_binop.c +892 -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 +965 -0
- data/ext/ca_obj_face.c +670 -0
- data/ext/ca_obj_face.h +247 -0
- data/ext/ca_obj_fake.c +228 -100
- data/ext/ca_obj_farray.c +54 -441
- data/ext/ca_obj_field.c +82 -529
- data/ext/ca_obj_fixlen_string.c +306 -0
- data/ext/ca_obj_grid.c +858 -440
- data/ext/ca_obj_meld.c +1034 -0
- data/ext/ca_obj_moncmp.c +569 -0
- data/ext/ca_obj_monop.c +1111 -0
- data/ext/ca_obj_object.c +774 -298
- data/ext/ca_obj_record.c +468 -0
- data/ext/ca_obj_reduce.c +97 -82
- data/ext/ca_obj_refer.c +569 -459
- data/ext/ca_obj_remap.c +475 -0
- data/ext/ca_obj_repeat.c +92 -477
- data/ext/ca_obj_roll.c +616 -0
- data/ext/ca_obj_select.c +344 -296
- data/ext/ca_obj_select_axis.c +1296 -0
- data/ext/ca_obj_shift.c +230 -792
- data/ext/ca_obj_source.c +78 -0
- data/ext/ca_obj_stack.c +1173 -0
- data/ext/ca_obj_stride.c +2501 -0
- data/ext/ca_obj_string.c +268 -0
- data/ext/ca_obj_tile.c +614 -0
- data/ext/ca_obj_time.c +546 -0
- data/ext/ca_obj_timedelta.c +435 -0
- data/ext/ca_obj_transpose.c +62 -516
- data/ext/ca_obj_triop.c +746 -0
- data/ext/ca_obj_unbound_repeat.c +208 -241
- data/ext/ca_obj_window.c +1131 -563
- data/ext/ca_op_byte_swap.c +175 -0
- data/ext/ca_op_ipower.c +319 -0
- data/ext/ca_op_powi.h +88 -0
- data/ext/ca_sort_kernels.h +132 -0
- data/ext/ca_sweep_engine.c +430 -0
- data/ext/ca_sweep_engine.h +157 -0
- data/ext/ca_transform_common.c +228 -0
- data/ext/ca_triop_dispatch.c +55 -0
- data/ext/ca_triop_dispatch.h +62 -0
- data/ext/carray.h +795 -402
- data/ext/carray_access.c +831 -711
- data/ext/carray_attribute.c +98 -330
- data/ext/carray_bincount.c +255 -0
- data/ext/carray_broadcast.c +283 -0
- data/ext/carray_call_cfunc.c +1360 -828
- data/ext/carray_call_cfunc.h +160 -0
- data/ext/carray_cast.c +1212 -301
- 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 +156 -268
- data/ext/carray_core.c +1342 -199
- 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 +1035 -0
- data/ext/carray_index_classifier.h +27 -0
- data/ext/carray_internal.h +120 -0
- data/ext/carray_kernels_bincmp.c +4445 -0
- data/ext/carray_kernels_binop.c +10979 -0
- data/ext/carray_kernels_init.c +36 -0
- data/ext/carray_kernels_map.c +3466 -0
- data/ext/carray_kernels_moncmp.c +2096 -0
- data/ext/carray_kernels_monop.c +18312 -0
- data/ext/carray_kernels_reduce_aggregate.c +25836 -0
- data/ext/carray_kernels_reduce_boolean.c +329 -0
- data/ext/carray_kernels_reduce_cumulative.c +14592 -0
- data/ext/carray_kernels_reduce_extreme.c +16947 -0
- data/ext/carray_kernels_reduce_variance.c +3909 -0
- data/ext/carray_kernels_scan.c +3692 -0
- data/ext/carray_kernels_search.c +32137 -0
- data/ext/carray_kernels_sort.c +10625 -0
- data/ext/carray_kernels_triop.c +1391 -0
- data/ext/carray_lazy.c +567 -0
- data/ext/carray_loop.c +88 -200
- data/ext/carray_mask.c +848 -154
- 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 +1625 -0
- data/ext/carray_operator.c +1526 -318
- 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 +216 -55
- data/ext/mk_call_cfunc.rb +480 -0
- data/ext/mkkernel.rb +8842 -0
- data/ext/ruby_carray.c +202 -101
- 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 +220 -0
- data/lib/carray/autoload_method_extension.rb +44 -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 +604 -0
- data/lib/carray/boolean_reduce.rb +109 -0
- data/lib/carray/categorical.rb +561 -0
- data/lib/carray/categorical_iterator.rb +1062 -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 +139 -328
- data/lib/carray/core_extensions.rb +240 -0
- data/lib/carray/data_type_extension.rb +233 -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 +649 -0
- data/lib/carray/frame/group.rb +186 -0
- data/lib/carray/frame/io.rb +164 -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 +299 -0
- data/lib/carray/frame.rb +16 -0
- data/lib/carray/histogram.rb +512 -0
- data/lib/carray/inspect.rb +37 -20
- data/lib/carray/iterator.rb +57 -349
- data/lib/carray/lazy.rb +889 -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 +47 -0
- data/lib/carray/methods/mask_duplicates.rb +41 -0
- data/lib/carray/methods/meshgrid.rb +91 -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 +156 -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 +108 -0
- data/lib/carray/serialize.rb +478 -167
- data/lib/carray/slab_iterator.rb +292 -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 +2255 -38
- data/lib/carray/window_iterator.rb +655 -0
- data/lib/carray.rb +55 -57
- metadata +163 -130
- 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/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/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/Classes/ex1.rb +0 -46
- 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
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* ---------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
carray_index_classifier.h
|
|
4
|
+
|
|
5
|
+
rb_ca_scan_index v2 — internal declarations.
|
|
6
|
+
|
|
7
|
+
PROPOSAL_INDEXER_REDESIGN.md I.2 sub-step. Parallel implementation
|
|
8
|
+
of v1 (= rb_ca_scan_index in ext/carray_access.c). Pre-swap (before
|
|
9
|
+
I.6) v2 is dormant: not reachable from outside this file group.
|
|
10
|
+
After I.6, rb_ca_scan_index forwards here.
|
|
11
|
+
|
|
12
|
+
The public C API signature (= void rb_ca_scan_index(...)) is
|
|
13
|
+
unchanged; this header is internal and intentionally not exported.
|
|
14
|
+
|
|
15
|
+
--------------------------------------------------------------------------- */
|
|
16
|
+
|
|
17
|
+
#ifndef CARRAY_INDEX_CLASSIFIER_H
|
|
18
|
+
#define CARRAY_INDEX_CLASSIFIER_H
|
|
19
|
+
|
|
20
|
+
#include "carray.h"
|
|
21
|
+
|
|
22
|
+
/* v2 entry point. Signature identical to v1's rb_ca_scan_index, so
|
|
23
|
+
the I.6 swap is a single-line forward call. */
|
|
24
|
+
void rb_ca_scan_index_v2 (int ca_ndim, ca_size_t *ca_dim, ca_size_t ca_elements,
|
|
25
|
+
long argc, VALUE *argv, CAIndexInfo *info);
|
|
26
|
+
|
|
27
|
+
#endif /* CARRAY_INDEX_CLASSIFIER_H */
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/* ---------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
carray_internal.h -- declarations that are only ever called by CArray's
|
|
4
|
+
own translation units, kept out of the public surface.
|
|
5
|
+
|
|
6
|
+
carray.h is what a downstream gem gets from `#include "carray.h"`, so
|
|
7
|
+
everything it declares is a contract. Symbols with no external caller
|
|
8
|
+
live here instead, and are moved in one audited cluster at a time (see
|
|
9
|
+
devel/PROPOSAL_CARRAY_H_REORG.md for the layering and the backlog).
|
|
10
|
+
|
|
11
|
+
This header is NOT installed (see ext/extconf.rb $INSTALLFILES) and must
|
|
12
|
+
NOT be included by carray.h -- including it there would put every symbol
|
|
13
|
+
below straight back into the public closure. Wiring is per-move: a .c
|
|
14
|
+
gains `#include "carray_internal.h"` when it consumes a symbol that has
|
|
15
|
+
landed here.
|
|
16
|
+
|
|
17
|
+
Some internal clusters keep their own non-installed header rather than
|
|
18
|
+
folding in (ca_sort_kernels.h, ca_op_powi.h, ca_composite_dispatch.h);
|
|
19
|
+
what matters is only that they stay out of carray.h and out of the
|
|
20
|
+
install list.
|
|
21
|
+
|
|
22
|
+
---------------------------------------------------------------------------- */
|
|
23
|
+
|
|
24
|
+
#ifndef CARRAY_INTERNAL_H
|
|
25
|
+
#define CARRAY_INTERNAL_H
|
|
26
|
+
|
|
27
|
+
#include "carray.h"
|
|
28
|
+
|
|
29
|
+
/* ---- bulk bit pack / unpack (ca_obj_bitarray.c) --------------------------
|
|
30
|
+
|
|
31
|
+
Drive the CABitarray whole-view xfer_all / xfer_addrs fast paths, which
|
|
32
|
+
read or write every bit of the parent in one pass instead of going
|
|
33
|
+
through per-element fetch.
|
|
34
|
+
|
|
35
|
+
multibyte_byteswap = 1 walks the bytes within each parent element in
|
|
36
|
+
reverse (big-endian network byte order); pbytes = 1 ignores the flag
|
|
37
|
+
(the walk is linear either way). Bit order within a byte is LSB-first
|
|
38
|
+
and is NOT configurable -- both directions assume it, so changing one
|
|
39
|
+
without the other silently transposes every bit. */
|
|
40
|
+
|
|
41
|
+
void ca_bit_unpack (const uint8_t *src, ca_size_t elements, ca_size_t pbytes,
|
|
42
|
+
int multibyte_byteswap, boolean8_t *dst);
|
|
43
|
+
void ca_bit_pack (const boolean8_t *src, ca_size_t elements, ca_size_t pbytes,
|
|
44
|
+
int multibyte_byteswap, uint8_t *dst);
|
|
45
|
+
|
|
46
|
+
/* ---- lazy arena (carray_lazy.c) ------------------------------------------
|
|
47
|
+
|
|
48
|
+
Slot-pool scratch reuse for the CAMonOp / CABinOp materialise paths, so a
|
|
49
|
+
chain of lazy views does not xmalloc a fresh buffer per link. _enter and
|
|
50
|
+
_exit bracket a region in which _acquire may hand back a pooled buffer;
|
|
51
|
+
outside such a region _acquire falls back to a plain allocation. See
|
|
52
|
+
ext/carray_lazy.c for the pool semantics.
|
|
53
|
+
|
|
54
|
+
The pool is global static state, so this is single-owner by construction.
|
|
55
|
+
Thread-safety is a non-goal: operating on one array family from more than
|
|
56
|
+
one thread is the caller's responsibility, not something this pool guards
|
|
57
|
+
against. */
|
|
58
|
+
|
|
59
|
+
void ca_lazy_arena_enter (void);
|
|
60
|
+
void ca_lazy_arena_exit (void);
|
|
61
|
+
void *ca_lazy_arena_acquire (ca_size_t bytes);
|
|
62
|
+
void ca_lazy_arena_release (void *ptr);
|
|
63
|
+
|
|
64
|
+
/* Non-zero iff the object is an element-wise lazy view (CAMonOp / CABinOp /
|
|
65
|
+
CABinCmp / CAMonCmp / CALazyMarker). The streaming branch of the
|
|
66
|
+
mkkernel-generated reduction kernels tests this to decide whether it can
|
|
67
|
+
consume the source without materialising it. */
|
|
68
|
+
|
|
69
|
+
int ca_is_lazy_view (void *ap);
|
|
70
|
+
|
|
71
|
+
/* ---- per-obj_type view constructors --------------------------------------
|
|
72
|
+
|
|
73
|
+
Constructors for view types that only carray itself builds. Ruby-side
|
|
74
|
+
construction goes through the indexer and the view methods, and no ext
|
|
75
|
+
author has been given a reason to reach for these from C.
|
|
76
|
+
|
|
77
|
+
The constructors that DO belong to the ext-author surface stay in
|
|
78
|
+
carray.h and are not repeated here: ca_wrap_new / rb_ca_wrap_new (adopt
|
|
79
|
+
external memory), ca_stride_setup / ca_stride_new / rb_ca_stride_new
|
|
80
|
+
(author a strided view -- see devel/CAStride.md), and ca_refer_new /
|
|
81
|
+
rb_ca_refer_new (reinterpret / re-mask, which a bridge gem does use). */
|
|
82
|
+
|
|
83
|
+
/* ca_obj_block.c */
|
|
84
|
+
CABlock *ca_block_new (CArray *carray,
|
|
85
|
+
int8_t ndim, ca_size_t *dim,
|
|
86
|
+
ca_size_t *start, ca_size_t *step, ca_size_t *count,
|
|
87
|
+
ca_size_t offset);
|
|
88
|
+
VALUE rb_ca_block_new (VALUE cary, int8_t ndim, ca_size_t *dim,
|
|
89
|
+
ca_size_t *start, ca_size_t *step, ca_size_t *count,
|
|
90
|
+
ca_size_t offset);
|
|
91
|
+
/* Recompute base_offset from offset/start/size0/bytes after a caller has
|
|
92
|
+
mutated start[] in place; the prefix goes stale otherwise and the view
|
|
93
|
+
silently reads the wrong cells. */
|
|
94
|
+
void ca_block_sync_base_offset (CABlock *cb);
|
|
95
|
+
|
|
96
|
+
/* ca_obj_select.c */
|
|
97
|
+
VALUE rb_ca_select_new (VALUE cary, VALUE select);
|
|
98
|
+
VALUE rb_ca_select_new_share (VALUE cary, VALUE select);
|
|
99
|
+
|
|
100
|
+
/* ca_obj_mapping.c */
|
|
101
|
+
VALUE rb_ca_mapping_new (VALUE cary, CArray *mapper);
|
|
102
|
+
|
|
103
|
+
/* ca_obj_field.c */
|
|
104
|
+
VALUE rb_ca_field_new (VALUE cary,
|
|
105
|
+
ca_size_t offset, int8_t data_type, ca_size_t bytes);
|
|
106
|
+
|
|
107
|
+
/* ca_obj_fake.c */
|
|
108
|
+
VALUE rb_ca_fake_new (VALUE cary, int8_t data_type, ca_size_t bytes);
|
|
109
|
+
|
|
110
|
+
/* ca_obj_repeat.c */
|
|
111
|
+
CARepeat *ca_repeat_new (CArray *carray, int8_t ndim, ca_size_t *count);
|
|
112
|
+
VALUE rb_ca_repeat_new (VALUE cary, int8_t ndim, ca_size_t *count);
|
|
113
|
+
|
|
114
|
+
/* ca_obj_unbound_repeat.c */
|
|
115
|
+
VALUE rb_ca_ubrep_new (VALUE cary, int32_t rep_ndim, ca_size_t *rep_dim);
|
|
116
|
+
|
|
117
|
+
/* ca_obj_reduce.c */
|
|
118
|
+
CAReduce *ca_reduce_new (CArray *carray, ca_size_t count, ca_size_t offset);
|
|
119
|
+
|
|
120
|
+
#endif /* CARRAY_INTERNAL_H */
|