Class quantile::detail::TDigest

template<typename RealType, typename IndexType = size_t>
class TDigest

Public Types

template<>
using Memory = CentroidsMemory<RealType, IndexType>

Public Functions

TDigest()
DEVICE TDigest(Memory &mem)
DEVICE TDigest(RealType q, SimpleAllocator *simple_allocator, IndexType buf_allocate, IndexType centroids_allocate)
DEVICE Centroids<RealType, IndexType>& quantile::detail::TDigest::centroids()
DEVICE void quantile::detail::TDigest::add(RealType value)
DEVICE void quantile::detail::TDigest::allocate()
DEVICE void quantile::detail::TDigest::mergeBuffer()
DEVICE void quantile::detail::TDigest::mergeSorted(RealType * sums, IndexType * counts, IndexType size)
DEVICE void quantile::detail::TDigest::mergeTDigest(TDigest & t_digest)
DEVICE RealType quantile::detail::TDigest::quantile(IndexType * buf, RealType const q)
DEVICE RealType quantile::detail::TDigest::quantile(RealType const q)
DEVICE RealType quantile::detail::TDigest::quantile()
DEVICE void quantile::detail::TDigest::setBuffer(Memory & mem)
DEVICE void quantile::detail::TDigest::setCentroids(Memory & mem)
DEVICE void quantile::detail::TDigest::setCentroids(VectorView < RealType > const sums, VectorView < IndexType > const counts)
DEVICE IndexType quantile::detail::TDigest::totalWeight() const

Private Functions

DEVICE RealType quantile::detail::TDigest::max() const
DEVICE RealType quantile::detail::TDigest::min() const
DEVICE IndexType quantile::detail::TDigest::maxCardinality(IndexType const sum, IndexType const total_weight, RealType const c)
DEVICE void quantile::detail::TDigest::mergeCentroids(Centroids < RealType, IndexType > & buf)
DEVICE RealType quantile::detail::TDigest::firstCentroid(RealType const x)
DEVICE RealType quantile::detail::TDigest::interiorCentroid(RealType const x, IndexType const idx1, IndexType const prefix_sum)
DEVICE RealType quantile::detail::TDigest::lastCentroid(RealType const x, IndexType const N)
DEVICE RealType quantile::detail::TDigest::oneCentroid(RealType const x)
DEVICE RealType quantile::detail::TDigest::slope(IndexType const idx1, IndexType const idx2)

Private Members

Centroids<RealType, IndexType> buf_
Centroids<RealType, IndexType> centroids_
bool forward_ = {true}
std::optional<RealType> const q_ = {std::nullopt}
bool const use_linear_scaling_function_ = {false}
SimpleAllocator *const simple_allocator_ = {nullptr}
IndexType const buf_allocate_ = {0}
IndexType const centroids_allocate_ = {0}