Sector decomposition
basic_sector_decomposition.h
Go to the documentation of this file.
1
8/*
9 * Copyright (C) 2007 Stefan Weinzierl
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */
25
26#ifndef __SECTOR_DECOMPOSITION_BASIC_SECTOR_DECOMPOSITION_H__
27#define __SECTOR_DECOMPOSITION_BASIC_SECTOR_DECOMPOSITION_H__
28
29#include <vector>
30
31#include "integrand.h"
32#include "monte_carlo.h"
33
34namespace sector_decomposition {
35
36 monte_carlo_result do_sector_decomposition(const integration_data & global_data,
37 const integrand & integrand_in,
38 const monte_carlo_parameters & mc_parameters,
39 int verbose_level = 0);
40
41 monte_carlo_result do_sector_decomposition_simplex(const integration_data & global_data,
42 const integrand & integrand_in,
43 const monte_carlo_parameters & mc_parameters,
44 int verbose_level = 0);
45
46 monte_carlo_result do_sector_decomposition_cube(const integration_data & global_data,
47 const integrand & integrand_in,
48 const monte_carlo_parameters & mc_parameters,
49 int verbose_level = 0);
50
51 monte_carlo_result do_sector_decomposition_cube_coordinate_subspace(const integration_data & global_data,
52 const integrand & integrand_in,
53 const monte_carlo_parameters & mc_parameters,
54 int verbose_level = 0);
55
68
69 // member functions
70 public:
72 const integrand & integrand_in,
73 const monte_carlo_parameters & mc_parameters,
74 const int & verbose_level);
75
77 const integrand & integrand_in,
78 const monte_carlo_parameters & mc_parameters,
79 const int & integration_domain,
80 const int & verbose_level);
81
82 void generate_homogenous_polynomials(const integration_data & global_data,
83 const integrand & integrand_in, integrand & integrand_out);
84
85 void generate_primary_sectors(const integration_data & global_data,
86 const integrand & integrand_in, std::vector<integrand> & lst_integrand_out);
87
88 void generate_primary_sectors_cube(const integration_data & global_data,
89 const integrand & integrand_in, std::vector<integrand> & lst_integrand_out);
90
91 void iterate_sector_decomposition(const integration_data & global_data,
92 std::vector<integrand> & lst_integrand_in, std::vector<integrand> & lst_integrand_out);
93
94 void strategy_A(const integration_data & global_data,
95 std::vector<integrand> & lst_integrand_in, std::vector<integrand> & lst_integrand_out);
96
97 void strategy_B(const integration_data & global_data,
98 std::vector<integrand> & lst_integrand_in, std::vector<integrand> & lst_integrand_out);
99
100 void strategy_C(const integration_data & global_data,
101 std::vector<integrand> & lst_integrand_in, std::vector<integrand> & lst_integrand_out);
102
103 void strategy_X(const integration_data & global_data,
104 std::vector<integrand> & lst_integrand_in, std::vector<integrand> & lst_integrand_out);
105
106 void strategy_Y(const integration_data & global_data,
107 std::vector<integrand> & lst_integrand_in, std::vector<integrand> & lst_integrand_out);
108
109 void generate_subtraction_terms(const integration_data & global_data,
110 std::vector<integrand> & lst_integrand_in, std::vector<GiNaC::ex> & lst_integrand_out);
111
112 void expand_in_epsilon(const integration_data & global_data,
113 std::vector<GiNaC::ex> & lst_integrand_in, GiNaC::ex & res_out);
114
115 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);
116
117 };
118
119} // namespace sector_decomposition
120
121#endif // ndef __SECTOR_DECOMPOSITION_BASIC_SECTOR_DECOMPOSITION_H__
122
Definition: basic_sector_decomposition.h:67
void generate_homogenous_polynomials(const integration_data &global_data, const integrand &integrand_in, integrand &integrand_out)
Definition: basic_sector_decomposition.cc:442
void strategy_X(const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< integrand > &lst_integrand_out)
Definition: basic_sector_decomposition.cc:768
void strategy_B(const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< integrand > &lst_integrand_out)
Definition: basic_sector_decomposition.cc:600
void iterate_sector_decomposition(const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< integrand > &lst_integrand_out)
Definition: basic_sector_decomposition.cc:493
void generate_subtraction_terms(const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< GiNaC::ex > &lst_integrand_out)
Definition: basic_sector_decomposition.cc:950
void generate_primary_sectors(const integration_data &global_data, const integrand &integrand_in, std::vector< integrand > &lst_integrand_out)
Definition: basic_sector_decomposition.cc:454
void strategy_Y(const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< integrand > &lst_integrand_out)
Definition: basic_sector_decomposition.cc:852
void generate_primary_sectors_cube(const integration_data &global_data, const integrand &integrand_in, std::vector< integrand > &lst_integrand_out)
Definition: basic_sector_decomposition.cc:472
monte_carlo_result operator()(const integration_data &global_data, const integrand &integrand_in, const monte_carlo_parameters &mc_parameters, const int &verbose_level)
Definition: basic_sector_decomposition.cc:249
void expand_in_epsilon(const integration_data &global_data, std::vector< GiNaC::ex > &lst_integrand_in, GiNaC::ex &res_out)
Definition: basic_sector_decomposition.cc:1016
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)
Definition: basic_sector_decomposition.cc:1037
void strategy_A(const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< integrand > &lst_integrand_out)
Definition: basic_sector_decomposition.cc:528
void strategy_C(const integration_data &global_data, std::vector< integrand > &lst_integrand_in, std::vector< integrand > &lst_integrand_out)
Definition: basic_sector_decomposition.cc:672
Definition: integrand.h:140
Definition: integrand.h:52
Definition: monte_carlo.h:76
Definition: basic_sector_decomposition.cc:36
monte_carlo_result do_sector_decomposition_cube_coordinate_subspace(const integration_data &global_data, const integrand &integrand_in, const monte_carlo_parameters &mc_parameters, int verbose_level)
Definition: basic_sector_decomposition.cc:235
monte_carlo_result do_sector_decomposition_simplex(const integration_data &global_data, const integrand &integrand_in, const monte_carlo_parameters &mc_parameters, int verbose_level)
Definition: basic_sector_decomposition.cc:169
monte_carlo_result do_sector_decomposition_cube(const integration_data &global_data, const integrand &integrand_in, const monte_carlo_parameters &mc_parameters, int verbose_level)
Definition: basic_sector_decomposition.cc:204
monte_carlo_result do_sector_decomposition(const integration_data &global_data, const integrand &integrand_in, const monte_carlo_parameters &mc_parameters, int verbose_level)
Definition: basic_sector_decomposition.cc:152