![]() |
|
#include <iostream>
#include <cstdint>
#include <cstdlib>
#include <vector>
#include <algorithm>
#include <fstream>
#include <string>
#include <cmath>
#include <cassert>
#include <cstring>
#include <memory>
#include <Eigen/Core>
Classes | |
struct | size_triple_t |
struct | inputfile_entry_t |
struct | inputfile_t |
struct | preprocessed_inputfile_entry_t |
struct | preprocessed_inputfile_t |
struct | action_t |
struct | partition_action_t |
struct | evaluate_defaults_action_t |
struct | evaluate_defaults_action_t::results_entry_t |
Functions | |
uint8_t | log2_pot (size_t x) |
uint16_t | compact_size_triple (size_t k, size_t m, size_t n) |
ostream & | operator<< (ostream &s, const size_triple_t &t) |
bool | lower_efficiency (const preprocessed_inputfile_entry_t &e1, const preprocessed_inputfile_entry_t &e2) |
void | check_all_files_in_same_exact_order (const vector< preprocessed_inputfile_t > &preprocessed_inputfiles) |
float | efficiency_of_subset (const vector< preprocessed_inputfile_t > &preprocessed_inputfiles, const vector< size_t > &subset) |
void | dump_table_for_subset (const vector< preprocessed_inputfile_t > &preprocessed_inputfiles, const vector< size_t > &subset) |
float | efficiency_of_partition (const vector< preprocessed_inputfile_t > &preprocessed_inputfiles, const vector< vector< size_t >> &partition) |
void | make_first_subset (size_t subset_size, vector< size_t > &out_subset, size_t set_size) |
bool | is_last_subset (const vector< size_t > &subset, size_t set_size) |
void | next_subset (vector< size_t > &inout_subset, size_t set_size) |
bool | is_number_of_subsets_feasible (size_t n, size_t p) |
size_t | max_feasible_subset_size (size_t n) |
void | find_subset_with_efficiency_higher_than (const vector< preprocessed_inputfile_t > &preprocessed_inputfiles, float required_efficiency_to_beat, vector< size_t > &inout_remainder, vector< size_t > &out_subset) |
void | find_partition_with_efficiency_higher_than (const vector< preprocessed_inputfile_t > &preprocessed_inputfiles, float required_efficiency_to_beat, vector< vector< size_t >> &out_partition) |
void | print_partition (const vector< preprocessed_inputfile_t > &preprocessed_inputfiles, const vector< vector< size_t >> &partition) |
void | show_usage_and_exit (int argc, char *argv[], const vector< unique_ptr< action_t >> &available_actions) |
int | main (int argc, char *argv[]) |
Variables | |
const int | default_precision = 4 |
bool | only_cubic_sizes = false |
bool | dump_tables = false |
const size_t | number_of_subsets_limit = 100 |
const size_t | always_search_subsets_of_size_at_least = 2 |
void check_all_files_in_same_exact_order | ( | const vector< preprocessed_inputfile_t > & | preprocessed_inputfiles | ) |
References preprocessed_inputfile_t::entries, preprocessed_inputfile_t::filename, and i.
Referenced by partition_action_t::run().
uint16_t compact_size_triple | ( | size_t | k, |
size_t | m, | ||
size_t | n | ||
) |
References k, log2_pot(), m, and n.
void dump_table_for_subset | ( | const vector< preprocessed_inputfile_t > & | preprocessed_inputfiles, |
const vector< size_t > & | subset | ||
) |
References e(), preprocessed_inputfile_t::entries, i, size_triple_t::is_cubic(), size_triple_t::k, log2_pot(), min, and only_cubic_sizes.
Referenced by print_partition().
float efficiency_of_partition | ( | const vector< preprocessed_inputfile_t > & | preprocessed_inputfiles, |
const vector< vector< size_t >> & | partition | ||
) |
References efficiency_of_subset(), min, and s.
Referenced by print_partition(), and partition_action_t::run().
float efficiency_of_subset | ( | const vector< preprocessed_inputfile_t > & | preprocessed_inputfiles, |
const vector< size_t > & | subset | ||
) |
References e(), preprocessed_inputfile_t::entries, i, max, and min.
Referenced by efficiency_of_partition(), find_subset_with_efficiency_higher_than(), and print_partition().
void find_partition_with_efficiency_higher_than | ( | const vector< preprocessed_inputfile_t > & | preprocessed_inputfiles, |
float | required_efficiency_to_beat, | ||
vector< vector< size_t >> & | out_partition | ||
) |
References find_subset_with_efficiency_higher_than(), and i.
Referenced by partition_action_t::run().
void find_subset_with_efficiency_higher_than | ( | const vector< preprocessed_inputfile_t > & | preprocessed_inputfiles, |
float | required_efficiency_to_beat, | ||
vector< size_t > & | inout_remainder, | ||
vector< size_t > & | out_subset | ||
) |
References efficiency_of_subset(), i, is_last_subset(), make_first_subset(), max_feasible_subset_size(), and next_subset().
Referenced by find_partition_with_efficiency_higher_than().
bool is_last_subset | ( | const vector< size_t > & | subset, |
size_t | set_size | ||
) |
Referenced by find_subset_with_efficiency_higher_than(), and next_subset().
bool is_number_of_subsets_feasible | ( | size_t | n, |
size_t | p | ||
) |
References assert, i, n, number_of_subsets_limit, and p.
Referenced by max_feasible_subset_size().
uint8_t log2_pot | ( | size_t | x | ) |
bool lower_efficiency | ( | const preprocessed_inputfile_entry_t & | e1, |
const preprocessed_inputfile_entry_t & | e2 | ||
) |
References preprocessed_inputfile_entry_t::efficiency.
Referenced by evaluate_defaults_action_t::run().
References calibrate::action, default_precision, dump_tables, i, only_cubic_sizes, and show_usage_and_exit().
void make_first_subset | ( | size_t | subset_size, |
vector< size_t > & | out_subset, | ||
size_t | set_size | ||
) |
size_t max_feasible_subset_size | ( | size_t | n | ) |
References always_search_subsets_of_size_at_least, assert, is_number_of_subsets_feasible(), max, n, and p.
Referenced by find_subset_with_efficiency_higher_than().
void next_subset | ( | vector< size_t > & | inout_subset, |
size_t | set_size | ||
) |
References assert, i, is_last_subset(), j, and p.
Referenced by find_subset_with_efficiency_higher_than().
ostream& operator<< | ( | ostream & | s, |
const size_triple_t & | t | ||
) |
void print_partition | ( | const vector< preprocessed_inputfile_t > & | preprocessed_inputfiles, |
const vector< vector< size_t >> & | partition | ||
) |
References dump_table_for_subset(), dump_tables, efficiency_of_partition(), and efficiency_of_subset().
Referenced by partition_action_t::run().
void show_usage_and_exit | ( | int | argc, |
char * | argv[], | ||
const vector< unique_ptr< action_t >> & | available_actions | ||
) |
Referenced by main(), and evaluate_defaults_action_t::run().
const size_t always_search_subsets_of_size_at_least = 2 |
Referenced by max_feasible_subset_size().
const int default_precision = 4 |
Referenced by main(), and evaluate_defaults_action_t::run().
bool dump_tables = false |
Referenced by main(), and print_partition().
const size_t number_of_subsets_limit = 100 |
Referenced by is_number_of_subsets_feasible().
bool only_cubic_sizes = false |
Referenced by dump_table_for_subset(), inputfile_t::inputfile_t(), and main().