MCPcopy Create free account
hub / github.com/apache/arrow / unpack

Function unpack

matlab/src/cpp/arrow/matlab/bit/unpack.cc:23–42  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21
22namespace arrow::matlab::bit {
23::matlab::data::TypedArray<bool> unpack(
24 const std::shared_ptr<arrow::Buffer>& packed_buffer, int64_t length,
25 int64_t start_offset) {
26 const auto packed_buffer_ptr = packed_buffer->data();
27
28 ::matlab::data::ArrayFactory factory;
29
30 const auto array_length = static_cast<size_t>(length);
31
32 auto unpacked_buffer = factory.createBuffer<bool>(array_length);
33 auto unpacked_buffer_ptr = unpacked_buffer.get();
34 auto visitFcn = [&](const bool is_valid) { *unpacked_buffer_ptr++ = is_valid; };
35
36 arrow::internal::VisitBitsUnrolled(packed_buffer_ptr, start_offset, length, visitFcn);
37
38 ::matlab::data::TypedArray<bool> unpacked_matlab_logical_Array =
39 factory.createArrayFromBuffer({array_length, 1}, std::move(unpacked_buffer));
40
41 return unpacked_matlab_logical_Array;
42}
43
44const uint8_t* extract_ptr(
45 const ::matlab::data::TypedArray<bool>& unpacked_validity_bitmap) {

Callers 2

toMATLABMethod · 0.50
getValidMethod · 0.50

Calls 3

VisitBitsUnrolledFunction · 0.50
dataMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected