Sector decomposition
|
#include <integrand.h>
Public Member Functions | |
integrand () | |
integrand (const std::vector< size_t > &index, const std::vector< exponent > &nu, const std::vector< GiNaC::ex > &poly_list, const std::vector< exponent > &c) | |
integrand (const std::vector< exponent > &nu, const std::vector< GiNaC::ex > &poly_list, const std::vector< exponent > &c) | |
integrand (size_t n, const std::vector< GiNaC::ex > &poly_list, const std::vector< exponent > &c) | |
integrand (const std::vector< size_t > &index, const std::vector< exponent > &nu, const std::vector< GiNaC::ex > &poly_list, const std::vector< exponent > &c, GiNaC::ex extra_factor) | |
integrand (const std::vector< size_t > &index, const std::vector< exponent > &nu, GiNaC::ex extra_factor) | |
integrand (const std::vector< exponent > &nu, const std::vector< GiNaC::ex > &poly_list, const std::vector< exponent > &c, GiNaC::ex extra_factor) | |
integrand (size_t n, const std::vector< GiNaC::ex > &poly_list, const std::vector< exponent > &c, GiNaC::ex extra_factor) | |
GiNaC::ex | get_integrand (const integration_data &global_data) const |
GiNaC::ex | get_weight_factor (const integration_data &global_data) const |
GiNaC::ex | get_polynomials (const integration_data &global_data) const |
GiNaC::ex | get_polynomials_without_exponent (const integration_data &global_data) const |
GiNaC::ex | get_extra_factor () const |
bool | check_homogeneous_polynomial (size_t k, const integration_data &global_data) const |
int | get_homogeneous_degree (size_t k, const integration_data &global_data) const |
int | get_degree (GiNaC::ex poly, const integration_data &global_data) const |
void | make_homogeneous (size_t k, const integration_data &global_data) |
void | make_homogeneous (const integration_data &global_data) |
void | restrict_to_primary_sector (size_t k, const integration_data &global_data) |
void | restrict_to_primary_sector_cube (const multi_index_counter &index_set, const integration_data &global_data) |
bool | check_zero (size_t k, const multi_index_ordered &index_set, const integration_data &global_data) const |
bool | check_zero (const multi_index_ordered &index_set, const integration_data &global_data) const |
int | get_ldegree (size_t k, const multi_index_ordered &index_set, const integration_data &global_data) const |
int | get_ldegree (const multi_index_ordered &index_set, const integration_data &global_data) const |
GiNaC::ex | get_polyhedra_polynomial (const integration_data &global_data) const |
bool | find_min_max (std::vector< size_t > &k_min_max_set, const integration_data &global_data) |
bool | get_S_strategy_B (std::vector< size_t > &index_set, const integration_data &global_data) |
bool | get_S_strategy_C (std::vector< size_t > &index_set, const integration_data &global_data) |
void | create_subsector (size_t k, const std::vector< size_t > &index_set, const integration_data &global_data) |
void | create_subsector (size_t k, const multi_index_ordered &index_set, const integration_data &global_data) |
int | get_subtraction_vector (std::vector< size_t > &subtr_vec, std::vector< size_t > &index_set) const |
GiNaC::ex | taylor_term (GiNaC::ex polynomials, const multi_index_counter_indv &counter, const std::vector< size_t > &index_set, const integration_data &global_data) const |
void | integrated_taylor_term (const multi_index_counter_indv &counter, const std::vector< size_t > &index_set, const integration_data &global_data) |
Public Attributes | |
std::vector< size_t > | index |
a vector, serving as an index for integration_data::list_feynman_parameter | |
std::vector< exponent > | weight |
a vector holding the exponents of the single factors ![]() | |
std::vector< GiNaC::ex > | polynomial_list |
a vector holding the ![]() | |
std::vector< exponent > | poly_exponent |
a vector holding the exponents of the polynomials | |
GiNaC::ex | extra_factor |
an extra prefactor | |
Friends | |
std::ostream & | operator<< (std::ostream &os, const integrand &arg) |
The class integrand defines an integrand of the form
The data members are:
integrand | ( | ) |
Constructor.
integrand | ( | const std::vector< size_t > & | arg_index, |
const std::vector< exponent > & | nu, | ||
const std::vector< GiNaC::ex > & | poly_list, | ||
const std::vector< exponent > & | c | ||
) |
Constructor.
index is initialised with arg_index, weight is initialised with nu, polynomial_list is initialised with poly_list, poly_exponent is initialised with c.
extra_factor is initialised with 1.
integrand | ( | const std::vector< exponent > & | nu, |
const std::vector< GiNaC::ex > & | poly_list, | ||
const std::vector< exponent > & | c | ||
) |
Constructor.
weight is initialised with nu, polynomial_list is initialised with poly_list, poly_exponent is initialised with c.
extra_factor is initialised with 1, index is initialised with (0,1,2,...)
integrand | ( | size_t | n, |
const std::vector< GiNaC::ex > & | poly_list, | ||
const std::vector< exponent > & | c | ||
) |
Constructor.
polynomial_list is initialised with poly_list, poly_exponent is initialised with c.
extra_factor is initialised with 1, index is initialised with (0,1,2,...,n-1), weight is initialised with n copies of exponent(0,0).
integrand | ( | const std::vector< size_t > & | arg_index, |
const std::vector< exponent > & | nu, | ||
const std::vector< GiNaC::ex > & | poly_list, | ||
const std::vector< exponent > & | c, | ||
GiNaC::ex | arg_extra_factor | ||
) |
Constructor.
index is initialised with arg_index, weight is initialised with nu, polynomial_list is initialised with poly_list, poly_exponent is initialised with c. extra_factor is initialised with arg_extra_factor.
integrand | ( | const std::vector< size_t > & | arg_index, |
const std::vector< exponent > & | nu, | ||
GiNaC::ex | arg_extra_factor | ||
) |
Constructor.
index is initialised with arg_index, weight is initialised with nu, extra_factor is initialised with arg_extra_factor.
polynomial_list and poly_exponent are empty.
integrand | ( | const std::vector< exponent > & | nu, |
const std::vector< GiNaC::ex > & | poly_list, | ||
const std::vector< exponent > & | c, | ||
GiNaC::ex | arg_extra_factor | ||
) |
Constructor.
weight is initialised with nu, polynomial_list is initialised with poly_list, poly_exponent is initialised with c.
extra_factor is initialised with arg_extra_factor. index is initialised with (0,1,2,...)
integrand | ( | size_t | n, |
const std::vector< GiNaC::ex > & | poly_list, | ||
const std::vector< exponent > & | c, | ||
GiNaC::ex | arg_extra_factor | ||
) |
Constructor.
polynomial_list is initialised with poly_list, poly_exponent is initialised with c.
extra_factor is initialised with arg_extra_factor. index is initialised with (0,1,2,...,n-1), weight is initialised with n copies of exponent(0,0).
bool check_homogeneous_polynomial | ( | size_t | k, |
const integration_data & | global_data | ||
) | const |
Returns true if the
bool check_zero | ( | const multi_index_ordered & | index_set, |
const integration_data & | global_data | ||
) | const |
Returns true if at least one of the polynomials vanishes, when the elements of index_set are set to zero.
bool check_zero | ( | size_t | k, |
const multi_index_ordered & | index_set, | ||
const integration_data & | global_data | ||
) | const |
Checks if the
void create_subsector | ( | size_t | k, |
const multi_index_ordered & | index_set, | ||
const integration_data & | global_data | ||
) |
Creates the
void create_subsector | ( | size_t | k, |
const std::vector< size_t > & | index_set, | ||
const integration_data & | global_data | ||
) |
Creates the
bool find_min_max | ( | std::vector< size_t > & | k_min_max_set, |
const integration_data & | global_data | ||
) |
Implementation of Zeillinger's strategy.
int get_degree | ( | GiNaC::ex | poly, |
const integration_data & | global_data | ||
) | const |
Returns the degree of poly.
GiNaC::ex get_extra_factor | ( | ) | const |
Returns the prefactor.
int get_homogeneous_degree | ( | size_t | k, |
const integration_data & | global_data | ||
) | const |
Returns the homogeneous degree, if the
Returns
GiNaC::ex get_integrand | ( | const integration_data & | global_data | ) | const |
Returns the explicit form of the integrand.
int get_ldegree | ( | const multi_index_ordered & | index_set, |
const integration_data & | global_data | ||
) | const |
Returns the ldegree of the product of all polynomials in the elements of index_set.
int get_ldegree | ( | size_t | k, |
const multi_index_ordered & | index_set, | ||
const integration_data & | global_data | ||
) | const |
Returns the ldegree of the
GiNaC::ex get_polyhedra_polynomial | ( | const integration_data & | global_data | ) | const |
Returns a polynomial, where only terms corresponding to corners of a polyhedra have been kept.
GiNaC::ex get_polynomials | ( | const integration_data & | global_data | ) | const |
Returns the explicit form of the polynomials.
GiNaC::ex get_polynomials_without_exponent | ( | const integration_data & | global_data | ) | const |
Returns the explicit form of the polynomials without the exponent.
The polynomial is returned in expanded form.
bool get_S_strategy_B | ( | std::vector< size_t > & | index_set, |
const integration_data & | global_data | ||
) |
Determines a subset of Feynman parameters accoriding to Spivakovsky's strategy.
bool get_S_strategy_C | ( | std::vector< size_t > & | index_set, |
const integration_data & | global_data | ||
) |
Determines a subset of Feynman parameters accoriding to strategy C.
int get_subtraction_vector | ( | std::vector< size_t > & | subtr_vec, |
std::vector< size_t > & | index_set | ||
) | const |
The routine fills a vector, indicating how many subtractions are needed for each variable. The indices for the corresponding variables are stored in index_set. If no subtractions are needed, the corresponding entry is not included. The return value is the number of variables, in which subtractions are needed.
GiNaC::ex get_weight_factor | ( | const integration_data & | global_data | ) | const |
Returns the explicit form of the weight factor.
void integrated_taylor_term | ( | const multi_index_counter_indv & | counter, |
const std::vector< size_t > & | index_set, | ||
const integration_data & | global_data | ||
) |
Returns one term in the Taylor expansion, integrated over the singular variables.
void make_homogeneous | ( | const integration_data & | global_data | ) |
Transforms all polynomials into homogeneous polynomials.
void make_homogeneous | ( | size_t | k, |
const integration_data & | global_data | ||
) |
Transforms the
void restrict_to_primary_sector | ( | size_t | k, |
const integration_data & | global_data | ||
) |
Restricts to the
void restrict_to_primary_sector_cube | ( | const multi_index_counter & | index_set, |
const integration_data & | global_data | ||
) |
Restricts to one primary sector for the integration over the standard hyper-cube.
GiNaC::ex taylor_term | ( | GiNaC::ex | expr, |
const multi_index_counter_indv & | counter, | ||
const std::vector< size_t > & | index_set, | ||
const integration_data & | global_data | ||
) | const |
Returns one term in the Taylor expansion.
|
friend |
Output. Prints out the data of the class integrand without reference to a class integration_data.