Advanced Chunk Processing Library 0.2.0
A comprehensive C++ library for advanced data chunking strategies and processing operations
Loading...
Searching...
No Matches
chunk_metrics::detail Namespace Reference

Functions

template<typename T >
bool is_valid_chunk (const std::vector< T > &chunk)
 
template<typename T >
double safe_distance (const T &a, const T &b)
 
template<typename T >
double safe_mean (const std::vector< T > &data)
 

Function Documentation

◆ is_valid_chunk()

template<typename T >
bool chunk_metrics::detail::is_valid_chunk ( const std::vector< T > &  chunk)

Definition at line 23 of file chunk_metrics.hpp.

23 {
24 return !chunk.empty() && std::all_of(chunk.begin(), chunk.end(),
25 [](const T& val) { return std::isfinite(static_cast<double>(val)); });
26 }

◆ safe_distance()

template<typename T >
double chunk_metrics::detail::safe_distance ( const T &  a,
const T &  b 
)

Definition at line 45 of file chunk_metrics.hpp.

45 {
46 try {
47 double d_a = static_cast<double>(a);
48 double d_b = static_cast<double>(b);
49 return std::isfinite(d_a) && std::isfinite(d_b) ?
50 std::abs(d_a - d_b) :
51 std::numeric_limits<double>::max();
52 } catch (...) {
53 return std::numeric_limits<double>::max();
54 }
55 }

◆ safe_mean()

template<typename T >
double chunk_metrics::detail::safe_mean ( const std::vector< T > &  data)

Definition at line 29 of file chunk_metrics.hpp.

29 {
30 if (data.empty()) return 0.0;
31 double sum = 0.0;
32 size_t count = 0;
33
34 for (const auto& val : data) {
35 double d_val = static_cast<double>(val);
36 if (std::isfinite(d_val)) {
37 sum += d_val;
38 ++count;
39 }
40 }
41 return count > 0 ? sum / count : 0.0;
42 }