Sector decomposition
Public Member Functions | List of all members
basic_sector_decomposition Class Reference

#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)
 

Detailed Description

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().

Member Function Documentation

◆ expand_in_epsilon()

void expand_in_epsilon ( const integration_data global_data,
std::vector< GiNaC::ex > &  lst_integrand_in,
GiNaC::ex &  res_out 
)

Expand in epsilon.

◆ generate_homogenous_polynomials()

void generate_homogenous_polynomials ( const integration_data global_data,
const integrand integrand_in,
integrand integrand_out 
)

Ensures that all polynomials are homogeneous.

◆ generate_primary_sectors()

void generate_primary_sectors ( const integration_data global_data,
const integrand integrand_in,
std::vector< integrand > &  lst_integrand_out 
)

Generates the primary sectors.

◆ generate_primary_sectors_cube()

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.

◆ generate_subtraction_terms()

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.

◆ iterate_sector_decomposition()

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.

◆ numerical_integration()

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.

◆ operator()() [1/2]

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:

  1. If the integration domain is the standard simplex, convert all polynomials to homogeneous polynomials.
  2. Decompose the integral into primary sectors.
  3. Iteration of the sector decomposition.
  4. Generate the subtraction terms.
  5. Expand in $\varepsilon$.
  6. Numerical integration.

◆ operator()() [2/2]

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.

◆ strategy_A()

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.

◆ strategy_B()

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.

◆ strategy_C()

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.

◆ strategy_X()

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.

◆ strategy_Y()

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.


The documentation for this class was generated from the following files: