11 #include <cudf/utilities/export.hpp>
15 #include <cuda/std/span>
21 namespace CUDF_EXPORT
cudf {
30 namespace hashing::detail {
31 template <
typename Key>
36 template <
template <
typename>
class Hasher>
120 std::int32_t precision = 12,
122 nan_policy nan_handling = nan_policy::NAN_IS_NULL,
148 nan_policy nan_handling = nan_policy::NAN_IS_NULL,
167 std::int32_t precision,
169 nan_policy nan_handling = nan_policy::NAN_IS_NULL);
219 void merge(cuda::std::span<cuda::std::byte const> sketch_span,
240 [[nodiscard]] cuda::std::span<cuda::std::byte>
sketch() noexcept;
251 [[nodiscard]] cuda::std::span<cuda::std::
byte const> sketch() const noexcept;
272 [[nodiscard]] std::int32_t precision() const noexcept;
282 [[nodiscard]]
double standard_error() const noexcept;
290 [[nodiscard]] static std::
size_t sketch_bytes(std::int32_t precision);
297 [[nodiscard]] static std::
size_t sketch_alignment();
Object-oriented HyperLogLog sketch for approximate distinct counting.
approx_distinct_count(table_view const &input, desired_standard_error error, null_policy null_handling=null_policy::EXCLUDE, nan_policy nan_handling=nan_policy::NAN_IS_NULL, rmm::cuda_stream_view stream=cudf::get_default_stream())
Constructs an approximate distinct count sketch from a table with specified standard error.
std::size_t estimate(rmm::cuda_stream_view stream=cudf::get_default_stream()) const
Estimates the approximate number of distinct rows in the sketch.
void merge(approx_distinct_count const &other, rmm::cuda_stream_view stream=cudf::get_default_stream())
Merges another sketch into this sketch.
approx_distinct_count(approx_distinct_count &&)=default
Default move constructor.
approx_distinct_count & operator=(approx_distinct_count &&)=default
Move assignment operator.
approx_distinct_count(cuda::std::span< cuda::std::byte > sketch_span, std::int32_t precision, null_policy null_handling=null_policy::EXCLUDE, nan_policy nan_handling=nan_policy::NAN_IS_NULL)
Constructs a non-owning sketch that operates on user-allocated storage.
void merge(cuda::std::span< cuda::std::byte const > sketch_span, rmm::cuda_stream_view stream=cudf::get_default_stream())
Merges a sketch from raw bytes into this sketch.
cuda::std::span< cuda::std::byte > sketch() noexcept
Gets the raw sketch bytes for serialization or external merging.
void add(table_view const &input, rmm::cuda_stream_view stream=cudf::get_default_stream())
Adds rows from a table to the sketch.
approx_distinct_count(table_view const &input, std::int32_t precision=12, null_policy null_handling=null_policy::EXCLUDE, nan_policy nan_handling=nan_policy::NAN_IS_NULL, rmm::cuda_stream_view stream=cudf::get_default_stream())
Constructs an approximate distinct count sketch from a table with specified precision.
A set of cudf::column_view's of the same size.
rmm::cuda_stream_view const get_default_stream()
Get the current default stream.
null_policy
Enum to specify whether to include nulls or exclude nulls.
nan_policy
Enum to treat NaN floating point value as null or non-null element.
Strong type wrapper for the desired standard error constructor parameter.
double value
The requested standard error value (must be positive)
constexpr desired_standard_error(double v)
Constructs a desired_standard_error with the given value.
Class definitions for (mutable)_table_view
Type declarations for libcudf.