![]() |
|
#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().