Advanced Chunk Processing Library 0.2.0
A comprehensive C++ library for advanced data chunking strategies and processing operations
Loading...
Searching...
No Matches
chunk_utils::Statistics< T > Class Template Reference

#include <utils.hpp>

Static Public Member Functions

static T mean (const std::vector< T > &data)
 
static T median (std::vector< T > data)
 
static std::pair< T, size_t > mode (const std::vector< T > &data)
 

Detailed Description

template<typename T>
class chunk_utils::Statistics< T >

Definition at line 16 of file utils.hpp.

Member Function Documentation

◆ mean()

template<typename T >
static T chunk_utils::Statistics< T >::mean ( const std::vector< T > &  data)
inlinestatic

Definition at line 18 of file utils.hpp.

18 {
19 if (data.empty())
20 return T();
21 return std::accumulate(data.begin(), data.end(), T()) / static_cast<T>(data.size());
22 }

◆ median()

template<typename T >
static T chunk_utils::Statistics< T >::median ( std::vector< T >  data)
inlinestatic

Definition at line 24 of file utils.hpp.

24 {
25 if (data.empty())
26 return T();
27 std::sort(data.begin(), data.end());
28 if (data.size() % 2 == 0) {
29 // For even number of elements, return average of two middle values
30 size_t mid = data.size() / 2;
31 return (data[mid - 1] + data[mid]) / static_cast<T>(2);
32 } else {
33 // For odd number of elements, return middle value
34 return data[data.size() / 2];
35 }
36 }

◆ mode()

template<typename T >
static std::pair< T, size_t > chunk_utils::Statistics< T >::mode ( const std::vector< T > &  data)
inlinestatic

Definition at line 38 of file utils.hpp.

38 {
39 if (data.empty())
40 return {T(), 0};
41 std::map<T, size_t> freq;
42 for (const auto& val : data)
43 freq[val]++;
44 return *std::max_element(freq.begin(), freq.end(), [](const auto& p1, const auto& p2) {
45 return p1.second < p2.second;
46 });
47 }

Referenced by TEST_F().


The documentation for this class was generated from the following file: