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

Function GetDLDataType

cpp/src/arrow/c/dlpack.cc:31–60  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29namespace {
30
31Result<DLDataType> GetDLDataType(const DataType& type) {
32 DLDataType dtype;
33 dtype.lanes = 1;
34 dtype.bits = type.bit_width();
35 switch (type.id()) {
36 case Type::INT8:
37 case Type::INT16:
38 case Type::INT32:
39 case Type::INT64:
40 dtype.code = DLDataTypeCode::kDLInt;
41 return dtype;
42 case Type::UINT8:
43 case Type::UINT16:
44 case Type::UINT32:
45 case Type::UINT64:
46 dtype.code = DLDataTypeCode::kDLUInt;
47 return dtype;
48 case Type::HALF_FLOAT:
49 case Type::FLOAT:
50 case Type::DOUBLE:
51 dtype.code = DLDataTypeCode::kDLFloat;
52 return dtype;
53 case Type::BOOL:
54 // DLPack supports byte-packed boolean values
55 return Status::TypeError("Bit-packed boolean data type not supported by DLPack.");
56 default:
57 return Status::TypeError("DataType is not compatible with DLPack spec: ",
58 type.ToString());
59 }
60}
61
62struct ManagerCtx {
63 std::shared_ptr<ArrayData> array;

Callers

nothing calls this directly

Calls 4

TypeErrorFunction · 0.50
bit_widthMethod · 0.45
idMethod · 0.45
ToStringMethod · 0.45

Tested by

no test coverage detected