flexiblesusy is hosted by Hepforge, IPPP Durham
FlexibleSUSY
library_collier.hpp
Go to the documentation of this file.
1// ====================================================================
2// This file is part of FlexibleSUSY.
3//
4// FlexibleSUSY is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published
6// by the Free Software Foundation, either version 3 of the License,
7// or (at your option) any later version.
8//
9// FlexibleSUSY is distributed in the hope that it will be useful, but
10// WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12// General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with FlexibleSUSY. If not, see
16// <http://www.gnu.org/licenses/>.
17// ====================================================================
18
19#ifndef LOOP_LIBRARY_COLLIER_H
20#define LOOP_LIBRARY_COLLIER_H
21
23
24#define REDEFINE(R, ARGS, NAME) \
25 std::complex<double> NAME ARGS noexcept override;
26
27namespace flexiblesusy
28{
29namespace looplibrary
30{
32{
33private:
35 void initialize() noexcept;
36 void set_mu2_uv(double) noexcept;
37
38public:
40 BOOST_PP_SEQ_FOR_EACH(REDEFINE, (A_ARGS), A_SEQ)
41 BOOST_PP_SEQ_FOR_EACH(REDEFINE, (B_ARGS), B_SEQ)
42 BOOST_PP_SEQ_FOR_EACH(REDEFINE, (C_ARGS), C_SEQ)
43 BOOST_PP_SEQ_FOR_EACH(REDEFINE, (D_ARGS), D_SEQ)
44 void A(Acoeff_t&, A_ARGS) noexcept override;
45 void B(Bcoeff_t&, B_ARGS) noexcept override;
46 void C(Ccoeff_t&, C_ARGS) noexcept override;
47 void D(Dcoeff_t&, D_ARGS) noexcept override;
48 ~Collier() noexcept override{};
49};
50} // namespace looplibrary
51} // namespace flexiblesusy
52
53#endif // LOOP_LIBRARY_COLLIER_H
void C(Ccoeff_t &, BOOST_PP_SEQ_FOR_EACH(ARGS_TYPE,,(p10_in)(p21_in)(p20_in)(m02_in)(m12_in)(m22_in)) double scl2_in) noexcept override
void D(Dcoeff_t &, BOOST_PP_SEQ_FOR_EACH(ARGS_TYPE,,(p10_in)(p21_in)(p32_in)(p30_in)(p20_in)(p31_in)(m02_in)(m12_in)(m22_in)(m32_in)) double scl2_in) noexcept override
void A(Acoeff_t &, BOOST_PP_SEQ_FOR_EACH(ARGS_TYPE,,(m02_in)) double scl2_in) noexcept override
void B(Bcoeff_t &, BOOST_PP_SEQ_FOR_EACH(ARGS_TYPE,,(p10_in)(m02_in)(m12_in)) double scl2_in) noexcept override
interface for different one loop function libraries with conventions of DE == [arXiv:0709....
#define REDEFINE(R, ARGS, NAME)
#define B_ARGS
#define C_ARGS
#define D_ARGS
#define D_SEQ
#define B_SEQ
#define C_SEQ
#define A_ARGS
#define A_SEQ
std::array< std::complex< double >, BOOST_PP_SEQ_SIZE((0)(1)(2)(00)(11)(12)(22)) > Ccoeff_t
std::array< std::complex< double >, BOOST_PP_SEQ_SIZE((0)) > Acoeff_t
std::array< std::complex< double >, BOOST_PP_SEQ_SIZE((0)(1)(2)(3)(00)(11)(12)(13)(22)(23)(33)) > Dcoeff_t
std::array< std::complex< double >, BOOST_PP_SEQ_SIZE((0)(1)(00)) > Bcoeff_t