Sector decomposition
|
#include <basic_sector_decomposition.h>
Public Member Functions | |
monte_carlo_result | operator() (const integration_data &global_data, const integrand &integrand_in, const monte_carlo_parameters &mc_parameters, const int &verbose_level) |
monte_carlo_result | operator() (const integration_data &global_data, const integrand &integrand_in, const monte_carlo_parameters &mc_parameters, const int &integration_domain, const int &verbose_level) |
void | generate_homogenous_polynomials (const integration_data &global_data, const integrand &integrand_in, integrand &integrand_out) |
void | generate_primary_sectors (const integration_data &global_data, const integrand &integrand_in, std::vector< integrand > &lst_integrand_out) |
void | generate_primary_sectors_cube (const integration_data &global_data, const integrand &integrand_in, std::vector< integrand > &lst_integrand_out) |
void | iterate_sector_decomposition (const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< integrand > &lst_integrand_out) |
void | strategy_A (const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< integrand > &lst_integrand_out) |
void | strategy_B (const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< integrand > &lst_integrand_out) |
void | strategy_C (const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< integrand > &lst_integrand_out) |
void | strategy_X (const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< integrand > &lst_integrand_out) |
void | strategy_Y (const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< integrand > &lst_integrand_out) |
void | generate_subtraction_terms (const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< GiNaC::ex > &lst_integrand_out) |
void | expand_in_epsilon (const integration_data &global_data, std::vector< GiNaC::ex > &lst_integrand_in, GiNaC::ex &res_out) |
void | numerical_integration (const integration_data &global_data, const monte_carlo_parameters &mc_parameters, GiNaC::ex res_in, monte_carlo_result &res_out, int verbose_level=0) |
A function object with the implementation of the algorithm for sector decomposition.
This class is called from the entry point do_sector_decomposition. The parameters are as in the function do_sector_decomposition.
The main method of this class is the operator().
void expand_in_epsilon | ( | const integration_data & | global_data, |
std::vector< GiNaC::ex > & | lst_integrand_in, | ||
GiNaC::ex & | res_out | ||
) |
Expand in epsilon.
void generate_homogenous_polynomials | ( | const integration_data & | global_data, |
const integrand & | integrand_in, | ||
integrand & | integrand_out | ||
) |
Ensures that all polynomials are homogeneous.
void generate_primary_sectors | ( | const integration_data & | global_data, |
const integrand & | integrand_in, | ||
std::vector< integrand > & | lst_integrand_out | ||
) |
Generates the primary sectors.
void generate_primary_sectors_cube | ( | const integration_data & | global_data, |
const integrand & | integrand_in, | ||
std::vector< integrand > & | lst_integrand_out | ||
) |
Generates the primary sectors for the integration over the standard hyper-cube.
void generate_subtraction_terms | ( | const integration_data & | global_data, |
std::vector< integrand > & | lst_integrand_in, | ||
std::vector< GiNaC::ex > & | lst_integrand_out | ||
) |
Generate the subtraction terms.
void iterate_sector_decomposition | ( | const integration_data & | global_data, |
std::vector< integrand > & | lst_integrand_in, | ||
std::vector< integrand > & | lst_integrand_out | ||
) |
Iterated sector decomposition. The strategy is chosen according to the global variable CHOICE_STRATEGY.
void numerical_integration | ( | const integration_data & | global_data, |
const monte_carlo_parameters & | mc_parameters, | ||
GiNaC::ex | res_in, | ||
monte_carlo_result & | res_out, | ||
int | verbose_level = 0 |
||
) |
Numerical integration.
monte_carlo_result operator() | ( | const integration_data & | global_data, |
const integrand & | integrand_in, | ||
const monte_carlo_parameters & | mc_parameters, | ||
const int & | integration_domain, | ||
const int & | verbose_level | ||
) |
The main routine of the class basic_sector_decomposition.
The routine performs the following steps:
monte_carlo_result operator() | ( | const integration_data & | global_data, |
const integrand & | integrand_in, | ||
const monte_carlo_parameters & | mc_parameters, | ||
const int & | verbose_level | ||
) |
The old entry point, which is kept for backwards compatibility.
void strategy_A | ( | const integration_data & | global_data, |
std::vector< integrand > & | lst_integrand_in, | ||
std::vector< integrand > & | lst_integrand_out | ||
) |
Iterated sector decomposition: Strategy A, Zeillinger's strategy.
void strategy_B | ( | const integration_data & | global_data, |
std::vector< integrand > & | lst_integrand_in, | ||
std::vector< integrand > & | lst_integrand_out | ||
) |
Iterated sector decomposition: Strategy B, Spivakovsky's strategy.
void strategy_C | ( | const integration_data & | global_data, |
std::vector< integrand > & | lst_integrand_in, | ||
std::vector< integrand > & | lst_integrand_out | ||
) |
Iterated sector decomposition: Strategy C.
void strategy_X | ( | const integration_data & | global_data, |
std::vector< integrand > & | lst_integrand_in, | ||
std::vector< integrand > & | lst_integrand_out | ||
) |
Iterated sector decomposition: Strategy X, one polynomial at the time.
void strategy_Y | ( | const integration_data & | global_data, |
std::vector< integrand > & | lst_integrand_in, | ||
std::vector< integrand > & | lst_integrand_out | ||
) |
Iterated sector decomposition: Strategy Y, all polynomials at the same time.