23 #define CUDF_HOST_DEVICE __host__ __device__
27 #define CUDF_KERNEL __global__ static
32 #define CUDF_HOST_DEVICE
36 #define CUDF_KERNEL static
39 #include <cudf/utilities/export.hpp>
59 namespace CUDF_EXPORT
cudf {
63 class mutable_column_view;
73 template <
typename T>
class numeric_scalar;
74 template <
typename T>
class fixed_point_scalar;
75 template <
typename T>
class timestamp_scalar;
76 template <
typename T>
class duration_scalar;
78 class string_scalar_device_view;
79 template <
typename T>
class numeric_scalar_device_view;
80 template <
typename T>
class fixed_point_scalar_device_view;
81 template <
typename T>
class timestamp_scalar_device_view;
82 template <
typename T>
class duration_scalar_device_view;
87 class mutable_table_view;
109 template <
typename T>
279 assert(
id == type_id::DECIMAL32 ||
id == type_id::DECIMAL64 ||
id == type_id::DECIMAL128);
296 return _fixed_point_scale;
304 int32_t _fixed_point_scale{};
data_type & operator=(data_type &&)=default
data_type 的移动赋值运算符。
data_type(data_type &&)=default
移动构造函数。
constexpr CUDF_HOST_DEVICE type_id id() const noexcept
返回类型标识符。
data_type(type_id id, int32_t scale)
构造一个新的用于 numeric::fixed_point 的 data_type 对象。
data_type & operator=(data_type const &)=default
data_type 的拷贝赋值运算符。
data_type(data_type const &)=default
拷贝构造函数。
constexpr CUDF_HOST_DEVICE data_type(type_id id)
构造一个新的 data_type 对象。
constexpr CUDF_HOST_DEVICE int32_t scale() const noexcept
返回小数位数(用于 fixed_point 类型)。
null_order
指示 null 值与所有其他值的比较方式。
null_equality
用于将两个 null 值视为相等或不相等的枚举。
int32_t size_type
列和表的行索引类型。
null_policy
用于指定是否包含 null 或排除 null 的枚举。
uint32_t bitmask_type
存储为 32 位无符号整数的位掩码类型。
size_type distance(T f, T l)
类似于 std::distance,但返回 cudf::size_type 并执行 static_cast。
constexpr bool operator==(data_type const &lhs, data_type const &rhs)
比较两个 data_type 对象的相等性。
mask_state
控制 null 掩码的分配/初始化。
std::size_t size_of(data_type t)
返回指定 data_type 元素的字节大小。
int64_t thread_index_type
核函数中的线程索引类型。
nan_policy
用于将 NaN 浮点值视为 null 或非 null 元素的枚举。
bool operator!=(data_type const &lhs, data_type const &rhs)
比较两个 data_type 对象的不相等性。
uint8_t valid_type
主机内存中的有效类型。
interpolation
当所需的 quantile 位于两个数据点 i 和 j 之间时使用的插值方法。
nan_equality
用于将持有 NaN 值的不同元素(浮点类型)视为相等或不相等的枚举。
uint32_t char_utf8
UTF-8 字符为 1-4 字节。
@ ALL_VALID
已分配 null 掩码,初始化为所有元素都有效。
@ UNALLOCATED
未分配 null 掩码(所有元素都有效)。
@ ALL_NULL
已分配 null 掩码,初始化为所有元素都为 NULL。
@ UNINITIALIZED
已分配 null 掩码,但未初始化。
@ NAN_IS_VALID
将 NaN 视为有效元素(非 null)。
@ NAN_IS_NULL
将 NaN 视为 null 元素。
@ BOOL8
布尔类型,每个值使用一个字节,0 表示 false,否则为 true。
@ DURATION_MILLISECONDS
int64 表示的毫秒时间间隔。
@ DECIMAL128
使用 __int128_t 的定点类型。
@ TIMESTAMP_MILLISECONDS
自 Unix Epoch 起以 int64 表示的毫秒时间点。
@ DURATION_NANOSECONDS
int64 表示的纳秒时间间隔。
@ DURATION_DAYS
int32 表示的天时间间隔。
@ TIMESTAMP_MICROSECONDS
自 Unix Epoch 起以 int64 表示的微秒时间点。
@ DURATION_SECONDS
int64 表示的秒时间间隔。
@ DURATION_MICROSECONDS
int64 表示的微秒时间间隔。
@ TIMESTAMP_SECONDS
自 Unix Epoch 起以 int64 表示的秒时间点。
@ TIMESTAMP_NANOSECONDS
自 Unix Epoch 起以 int64 表示的纳秒时间点。
@ TIMESTAMP_DAYS
自 Unix Epoch 起以 int32 表示的天时间点。
@ DECIMAL64
使用 int64_t 的定点类型。
@ DECIMAL32
使用 int32_t 的定点类型。
@ DICTIONARY32
使用 int32 索引的字典类型。
@ UNEQUAL
所有 NaN 比较结果均不相等 (IEEE754 行为)。
@ ALL_EQUAL
所有 NaN 比较结果均相等,无论符号如何。
null_order null_ordering
指示 null 值与所有其他值的比较方式。
sorted is_sorted
指示集合是否已排序。
#define CUDF_HOST_DEVICE
表示函数或方法可在 host 和 device 上使用。