Class FuncArgTracker

Class Documentation

class SymEngine::FuncArgTracker

Public Functions

FuncArgTracker(const std::vector<std::pair<RCP<const Basic>, vec_basic>> &funcs)
template<typename Container>
vec_basic get_args_in_value_order(Container &argset)
unsigned get_or_add_value_number(RCP<const Basic> value)
void stop_arg_tracking(unsigned func_i)
std::map<unsigned, unsigned> get_common_arg_candidates(std::set<unsigned> &argset, unsigned min_func_i)
template<typename Container1, typename Container2>
std::vector<unsigned> get_subset_candidates(const Container1 &argset, const Container2 &restrict_to_funcset)
void update_func_argset(unsigned func_i, const std::vector<unsigned> &new_args)

Public Members

std::unordered_map<RCP<const Basic>, unsigned, RCPBasicHash, RCPBasicKeyEq> value_numbers
vec_basic value_number_to_value
std::vector<std::set<unsigned>> arg_to_funcset
std::vector<std::set<unsigned>> func_to_argset