71 const std::string& label,
int precision = 2) {
72 std::cout <<
"\n" << label <<
":\n";
73 for (
size_t i = 0; i < sub_chunks.size(); ++i) {
74 std::cout <<
"Level " << i + 1 <<
":\n";
75 for (
size_t j = 0; j < sub_chunks[i].size(); ++j) {
76 std::cout <<
" Sub-chunk " << j + 1 <<
": ";
77 for (
const auto& val : sub_chunks[i][j]) {
78 std::cout << std::fixed << std::setprecision(precision) << val <<
" ";
92 std::cout <<
"\n=== Complex Recursive Sub-chunking ===" << std::endl;
95 std::vector<double> data = {1.0, 1.1, 1.2, 5.0, 5.1, 5.2, 2.0, 2.1, 2.2, 10.0, 10.1, 10.2};
97 auto variance_strategy = std::make_shared<chunk_processing::VarianceStrategy<double>>(3.0);
99 auto recursive_result = recursive_chunker.apply(data);
111 std::cout <<
"\n=== Multi-Strategy Sub-chunking ===" << std::endl;
114 std::vector<double> data = {1.0, 1.1, 1.2, 5.0, 5.1, 5.2, 2.0, 2.1, 2.2, 10.0, 10.1, 10.2};
116 std::vector<std::shared_ptr<chunk_processing::ChunkStrategy<double>>> strategies = {
117 std::make_shared<chunk_processing::VarianceStrategy<double>>(5.0),
121 auto hierarchical_result = hierarchical_chunker.
apply(data);
133 std::cout <<
"\n=== Adaptive Conditional Sub-chunking ===" << std::endl;
136 std::vector<double> data = {1.0, 1.1, 1.2, 5.0, 5.1, 5.2, 2.0, 2.1, 2.2, 10.0, 10.1, 10.2};
138 auto variance_strategy = std::make_shared<chunk_processing::VarianceStrategy<double>>(5.0);
139 auto condition = [](
const std::vector<double>& chunk) {
140 return chunk.size() > 5;
145 auto conditional_result = conditional_chunker.
apply(data);
void demonstrate_multi_strategy_subchunking()
Demonstrates hierarchical sub-chunking using multiple strategies.
void demonstrate_adaptive_conditional_subchunking()
Demonstrates adaptive conditional sub-chunking.
void demonstrate_complex_recursive_subchunking()
Demonstrates complex recursive sub-chunking with multiple levels.
void print_sub_chunks(const std::vector< std::vector< std::vector< T > > > &sub_chunks, const std::string &label, int precision=2)
Helper function to print sub-chunks with detailed formatting.
void print_chunks(const std::vector< std::vector< T > > &chunks)
Helper function to print chunks.