Go to the documentation of this file.
12 #ifndef CPROVER_GOTO_INSTRUMENT_ACCELERATE_DISJUNCTIVE_POLYNOMIAL_ACCELERATION_H
13 #define CPROVER_GOTO_INSTRUMENT_ACCELERATE_DISJUNCTIVE_POLYNOMIAL_ACCELERATION_H
71 std::map<exprt, exprt> &values,
72 std::set<std::pair<expr_listt, exprt> > &coefficients,
108 #endif // CPROVER_GOTO_INSTRUMENT_ACCELERATE_DISJUNCTIVE_POLYNOMIAL_ACCELERATION_H
acceleration_utilst utils
void build_path(scratch_programt &scratch_program, patht &path)
std::map< goto_programt::targett, exprt > distinguish_mapt
std::map< exprt, bool > distinguish_valuest
goto_functionst & goto_functions
bool find_path(patht &path)
goto_programt & goto_program
void find_distinguishing_points()
message_handlert & message_handler
void assert_for_values(scratch_programt &program, std::map< exprt, exprt > &values, std::set< std::pair< expr_listt, exprt > > &coefficients, int num_unwindings, goto_programt &loop_body, exprt &target)
Base class for all expressions.
disjunctive_polynomial_accelerationt(message_handlert &message_handler, symbol_tablet &_symbol_table, goto_functionst &_goto_functions, goto_programt &_goto_program, natural_loops_mutablet::natural_loopt &_loop, goto_programt::targett _loop_header, guard_managert &guard_manager)
void find_modified(const patht &path, expr_sett &modified)
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
This is unused by this implementation of guards, but can be used by other implementations of the same...
goto_programt::targett loop_header
A loop, specified as a set of instructions.
symbol_tablet & symbol_table
std::unordered_set< exprt, irep_hash > expr_sett
bool accelerate(path_acceleratort &accelerator)
natural_loops_mutablet::natural_loopt & loop
distinguish_mapt distinguishing_points
guard_managert & guard_manager
A collection of goto functions.
bool depends_on_array(const exprt &e, exprt &array)
std::list< path_nodet > patht
bool fit_polynomial(exprt &target, polynomialt &polynomial, patht &path)
A generic container class for the GOTO intermediate representation of one function.
void record_path(scratch_programt &scratch_program)
std::list< symbol_exprt > distinguishers
std::list< distinguish_valuest > accelerated_paths
void cone_of_influence(const exprt &target, expr_sett &cone)
instructionst::iterator targett