OmniSciDB
c1a53651b2
|
#include <quantile.h>
Public Types | |
using | Memory = CentroidsMemory< RealType, IndexType > |
Public Member Functions | |
TDigest ()=default | |
DEVICE | TDigest (Memory &mem) |
DEVICE | TDigest (RealType q, SimpleAllocator *simple_allocator, IndexType buf_allocate, IndexType centroids_allocate) |
DEVICE Centroids< RealType, IndexType > & | centroids () |
DEVICE void | add (RealType value) |
DEVICE void | allocate () |
DEVICE void | mergeBuffer () |
DEVICE void | mergeBufferFinal () |
DEVICE void | mergeSorted (RealType *sums, IndexType *counts, IndexType size) |
DEVICE void | mergeTDigest (TDigest &t_digest) |
DEVICE VectorView< IndexType const > | partialSumOfCounts (IndexType *const buf) const |
DEVICE RealType | quantile (VectorView< IndexType const > const partial_sum, RealType const q) const |
DEVICE RealType | quantile (RealType const q) const |
DEVICE RealType | quantile () |
DEVICE void | setBuffer (Memory &mem) |
DEVICE void | setCentroids (Memory &mem) |
DEVICE void | setCentroids (VectorView< RealType > const sums, VectorView< IndexType > const counts) |
DEVICE IndexType | totalWeight () const |
Private Member Functions | |
DEVICE RealType | max () const |
DEVICE RealType | min () const |
DEVICE IndexType | maxCardinality (IndexType const sum, IndexType const total_weight, RealType const c) |
DEVICE void | mergeCentroids (Centroids< RealType, IndexType > &) |
DEVICE RealType | firstCentroid (RealType const x) const |
DEVICE RealType | interiorCentroid (RealType const x, IndexType const idx1, IndexType const prefix_sum) const |
DEVICE RealType | lastCentroid (RealType const x, IndexType const N) const |
DEVICE RealType | oneCentroid (RealType const x) const |
DEVICE RealType | slope (IndexType const idx1, IndexType const idx2) const |
Private Attributes | |
Centroids< RealType, IndexType > | buf_ |
Centroids< RealType, IndexType > | centroids_ |
bool | forward_ {true} |
std::once_flag | merge_buffer_final_once_ |
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} |
Definition at line 184 of file quantile.h.
using quantile::detail::TDigest< RealType, IndexType >::Memory = CentroidsMemory<RealType, IndexType> |
Definition at line 222 of file quantile.h.
|
default |
|
inline |
Definition at line 226 of file quantile.h.
References quantile::detail::TDigest< RealType, IndexType >::centroids_.
|
inline |
Definition at line 231 of file quantile.h.
DEVICE void quantile::detail::TDigest< RealType, IndexType >::add | ( | RealType | value | ) |
Definition at line 591 of file quantile.h.
DEVICE void quantile::detail::TDigest< RealType, IndexType >::allocate | ( | ) |
Definition at line 601 of file quantile.h.
Referenced by agg_approx_quantile(), and approx_quantile_jit_rt().
|
inline |
Definition at line 241 of file quantile.h.
References quantile::detail::TDigest< RealType, IndexType >::centroids_.
|
private |
Definition at line 718 of file quantile.h.
|
private |
Definition at line 737 of file quantile.h.
References quantile::detail::anonymous_namespace{quantile.h}::isSingleton().
|
private |
Definition at line 759 of file quantile.h.
References quantile::detail::anonymous_namespace{quantile.h}::isSingleton().
|
inlineprivate |
Definition at line 202 of file quantile.h.
References quantile::detail::TDigest< RealType, IndexType >::centroids_.
|
private |
Definition at line 619 of file quantile.h.
DEVICE void quantile::detail::TDigest< RealType, IndexType >::mergeBuffer | ( | ) |
Definition at line 640 of file quantile.h.
References gpu_enabled::sort().
Referenced by quantile::detail::TDigest< RealType, IndexType >::mergeTDigest().
DEVICE void quantile::detail::TDigest< RealType, IndexType >::mergeBufferFinal | ( | ) |
Definition at line 651 of file quantile.h.
Referenced by ResultSet::calculateQuantile().
|
private |
Definition at line 688 of file quantile.h.
References quantile::detail::Centroids< RealType, IndexType >::clear(), and quantile::detail::CentroidsMerger< RealType, IndexType >::merge().
Referenced by quantile::detail::TDigest< RealType, IndexType >::mergeTDigest().
DEVICE void quantile::detail::TDigest< RealType, IndexType >::mergeSorted | ( | RealType * | sums, |
IndexType * | counts, | ||
IndexType | size | ||
) |
Definition at line 665 of file quantile.h.
References gpu_enabled::fill(), VectorView< T >::set(), and quantile::detail::Centroids< RealType, IndexType >::sums_.
|
inline |
Definition at line 257 of file quantile.h.
References quantile::detail::TDigest< RealType, IndexType >::centroids_, quantile::detail::TDigest< RealType, IndexType >::mergeBuffer(), and quantile::detail::TDigest< RealType, IndexType >::mergeCentroids().
|
inlineprivate |
Definition at line 203 of file quantile.h.
References quantile::detail::TDigest< RealType, IndexType >::centroids_.
|
private |
Definition at line 796 of file quantile.h.
References anonymous_namespace{Utm.h}::N.
DEVICE VectorView< IndexType const > quantile::detail::TDigest< RealType, IndexType >::partialSumOfCounts | ( | IndexType *const | buf | ) | const |
Definition at line 819 of file quantile.h.
References gpu_enabled::partial_sum().
DEVICE RealType quantile::detail::TDigest< RealType, IndexType >::quantile | ( | VectorView< IndexType const > const | partial_sum, |
RealType const | q | ||
) | const |
Definition at line 827 of file quantile.h.
References VectorView< T >::back(), VectorView< T >::begin(), VectorView< T >::end(), anonymous_namespace{Utm.h}::N, and gpu_enabled::upper_bound().
Referenced by ResultSet::calculateQuantile().
|
inline |
Definition at line 270 of file quantile.h.
References quantile::detail::TDigest< RealType, IndexType >::buf_, quantile::detail::TDigest< RealType, IndexType >::centroids_, and quantile::detail::TDigest< RealType, IndexType >::quantile().
|
inline |
Definition at line 274 of file quantile.h.
References quantile::detail::TDigest< RealType, IndexType >::centroids_, quantile::detail::TDigest< RealType, IndexType >::q_, and quantile::detail::TDigest< RealType, IndexType >::quantile().
Referenced by quantile::detail::TDigest< RealType, IndexType >::quantile().
|
inline |
Definition at line 277 of file quantile.h.
References quantile::detail::TDigest< RealType, IndexType >::buf_, quantile::detail::CentroidsMemory< RealType, IndexType >::counts(), VectorView< T >::data(), quantile::detail::CentroidsMemory< RealType, IndexType >::size(), and quantile::detail::CentroidsMemory< RealType, IndexType >::sums().
|
inline |
Definition at line 284 of file quantile.h.
References quantile::detail::TDigest< RealType, IndexType >::centroids_, quantile::detail::CentroidsMemory< RealType, IndexType >::counts(), VectorView< T >::data(), quantile::detail::CentroidsMemory< RealType, IndexType >::size(), and quantile::detail::CentroidsMemory< RealType, IndexType >::sums().
|
inline |
Definition at line 290 of file quantile.h.
References quantile::detail::TDigest< RealType, IndexType >::centroids_.
|
private |
Definition at line 852 of file quantile.h.
References quantile::detail::anonymous_namespace{quantile.h}::isSingleton(), and anonymous_namespace{Utm.h}::n.
|
inline |
Definition at line 297 of file quantile.h.
References quantile::detail::TDigest< RealType, IndexType >::centroids_.
|
private |
Definition at line 188 of file quantile.h.
Referenced by quantile::detail::TDigest< RealType, IndexType >::quantile(), and quantile::detail::TDigest< RealType, IndexType >::setBuffer().
|
private |
Definition at line 199 of file quantile.h.
|
private |
Definition at line 189 of file quantile.h.
Referenced by quantile::detail::TDigest< RealType, IndexType >::centroids(), quantile::detail::TDigest< RealType, IndexType >::max(), quantile::detail::TDigest< RealType, IndexType >::mergeTDigest(), quantile::detail::TDigest< RealType, IndexType >::min(), quantile::detail::TDigest< RealType, IndexType >::quantile(), quantile::detail::TDigest< RealType, IndexType >::setCentroids(), quantile::detail::TDigest< RealType, IndexType >::TDigest(), and quantile::detail::TDigest< RealType, IndexType >::totalWeight().
|
private |
Definition at line 200 of file quantile.h.
|
private |
Definition at line 190 of file quantile.h.
|
private |
Definition at line 192 of file quantile.h.
|
private |
Definition at line 196 of file quantile.h.
Referenced by quantile::detail::TDigest< RealType, IndexType >::quantile().
|
private |
Definition at line 198 of file quantile.h.
|
private |
Definition at line 197 of file quantile.h.