Sector decomposition
|
#include <polyhedra.h>
Public Member Functions | |
polyhedra () | |
polyhedra (GiNaC::ex poly, const std::vector< size_t > &index, const integration_data &global_data) | |
polyhedra (const polyhedra &p1, const polyhedra &p2) | |
size_t | number_corners () const |
polyhedra & | keep_corners_only () |
polyhedra & | factorize_single_variables () |
polyhedra & | add_point (const std::vector< GiNaC::ex > &point) |
GiNaC::ex | get_factorization_degree () const |
GiNaC::ex | get_factorization_degree (const multi_index_ordered &index_set) const |
void | get_omega (std::vector< GiNaC::ex > &omega) const |
void | find_S (std::vector< bool > &S, GiNaC::ex f_degree) const |
polyhedra & | projection (const std::vector< bool > &S, GiNaC::ex f, GiNaC::ex c) |
void | find_minimal_subsector (std::vector< size_t > &index_set, GiNaC::ex f) const |
Friends | |
std::ostream & | operator<< (std::ostream &os, const polyhedra &arg) |
The class polyhedra.
This class is used by strategies B and C.
polyhedra | ( | ) |
Constructor.
polyhedra | ( | GiNaC::ex | poly, |
const std::vector< size_t > & | arg_index, | ||
const integration_data & | global_data | ||
) |
Constructor.
Initialises the polyhedron from the polynomial poly with the help of arg_index and global_data.
Merges the two polyhedra p1 and p2 into one (new) polyhedra.
polyhedra & add_point | ( | const std::vector< GiNaC::ex > & | point | ) |
Adds a point to the polyhedron.
polyhedra & factorize_single_variables | ( | ) |
Shifts the polyhedra, such that in the corresponding polynomial no single variable can be factorized.
In Spivakovsky's notation this corresponds to
void find_minimal_subsector | ( | std::vector< size_t > & | index_set, |
GiNaC::ex | f_degree | ||
) | const |
Finds a minimal subsector, such that index_set is permissible.
void find_S | ( | std::vector< bool > & | S, |
GiNaC::ex | f_degree | ||
) | const |
Fills a vector S of boolean variables, whether or not a variable occurs in monomials of degree f_degree.
GiNaC::ex get_factorization_degree | ( | ) | const |
Returns the factorization degree.
GiNaC::ex get_factorization_degree | ( | const multi_index_ordered & | index_set | ) | const |
Returns the factorization degree for the set index_set.
void get_omega | ( | std::vector< GiNaC::ex > & | omega | ) | const |
Determines the vector omega.
polyhedra & keep_corners_only | ( | ) |
Removes redundant points from the coordinate list.
Redundant points are points which are not corners.
size_t number_corners | ( | ) | const |
Returns the number of points stored in the array coordinates.
polyhedra & projection | ( | const std::vector< bool > & | S, |
GiNaC::ex | f, | ||
GiNaC::ex | c | ||
) |
The projection.
|
friend |
Output. Prints out the index vector and the coordinates.