flexiblesusy is hosted by Hepforge, IPPP Durham
FlexibleSUSY
library_looptools.cpp File Reference
#include "library_looptools.hpp"
#include "clooptools.h"
#include "fortran_utils.hpp"
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/for_each_i.hpp>
#include <limits>
Include dependency graph for library_looptools.cpp:

Go to the source code of this file.

Namespaces

namespace  flexiblesusy
 
namespace  flexiblesusy::looplibrary
 

Macros

#define A_PAIR   (A)(aa)
 
#define B_PAIR   (B)(bb)
 
#define C_PAIR   (C)(cc)
 
#define CAT(a, b)   CAT_(a, b)
 
#define CAT_(a, b)   a##b
 
#define D_PAIR   (D)(dd)
 
#define LIB(PAIR)   BOOST_PP_SEQ_ELEM(0, PAIR)
 
#define LIB_ARGS(PAIR)   CAT(LIB(PAIR), _ARGS)
 
#define LIB_NAME(PAIR, INDEX)   CAT(LIB(PAIR), INDEX)
 
#define LT(PAIR)   BOOST_PP_SEQ_ELEM(1, PAIR)
 
#define LT_ALL(PAIR)
 
#define LT_ARGS(PAIR)   CAT(LIB(PAIR), _ARGS_SEQ)
 
#define LT_IDX(PAIR, INDEX)   CAT(LT(PAIR), INDEX)
 
#define LT_NAME(PAIR)   CAT(LIB(PAIR), 0i)
 
#define LT_ONE(_, PAIR, I, INDEX)
 
#define REAL(R, DUMMY, ELEM)   , ELEM.real()
 

Functions

void() flexiblesusy::looplibrary::A (aa)) coeff_t &arr
 
void() flexiblesusy::looplibrary::B (bb)) coeff_t &arr
 
void() flexiblesusy::looplibrary::BOOST_PP_SEQ_ELEM (0,(A)(aa)) _ARGS) noexcept
 
void() flexiblesusy::looplibrary::BOOST_PP_SEQ_ELEM (0,(B)(bb)) _ARGS) noexcept
 
void() flexiblesusy::looplibrary::BOOST_PP_SEQ_ELEM (0,(C)(cc)) _ARGS) noexcept
 
void() flexiblesusy::looplibrary::BOOST_PP_SEQ_ELEM (0,(D)(dd)) _ARGS) noexcept
 
void() flexiblesusy::looplibrary::C (cc)) coeff_t &arr
 
void() flexiblesusy::looplibrary::D (dd)) coeff_t &arr
 

Macro Definition Documentation

◆ A_PAIR

#define A_PAIR   (A)(aa)

Definition at line 26 of file library_looptools.cpp.

◆ B_PAIR

#define B_PAIR   (B)(bb)

Definition at line 27 of file library_looptools.cpp.

◆ C_PAIR

#define C_PAIR   (C)(cc)

Definition at line 28 of file library_looptools.cpp.

◆ CAT

#define CAT (   a,
 
)    CAT_(a, b)

Definition at line 34 of file library_looptools.cpp.

◆ CAT_

#define CAT_ (   a,
 
)    a##b

Definition at line 33 of file library_looptools.cpp.

◆ D_PAIR

#define D_PAIR   (D)(dd)

Definition at line 29 of file library_looptools.cpp.

◆ LIB

#define LIB (   PAIR)    BOOST_PP_SEQ_ELEM(0, PAIR)

Definition at line 36 of file library_looptools.cpp.

◆ LIB_ARGS

#define LIB_ARGS (   PAIR)    CAT(LIB(PAIR), _ARGS)

Definition at line 40 of file library_looptools.cpp.

◆ LIB_NAME

#define LIB_NAME (   PAIR,
  INDEX 
)    CAT(LIB(PAIR), INDEX)

Definition at line 39 of file library_looptools.cpp.

◆ LT

#define LT (   PAIR)    BOOST_PP_SEQ_ELEM(1, PAIR)

Definition at line 37 of file library_looptools.cpp.

◆ LT_ALL

#define LT_ALL (   PAIR)
Value:
void Looptools::LIB(PAIR)(CAT(LIB(PAIR), coeff_t) & \
arr, \
CAT(LIB(PAIR), _ARGS)) noexcept \
{ \
const int coeffs[] = {BOOST_PP_SEQ_ENUM( \
BOOST_PP_SEQ_TRANSFORM(APPEND, LT(PAIR), CAT(LIB(PAIR), _CSEQ)))}; \
ComplexType res[CAT(N, LT(PAIR))]; \
set_mu2_uv(scl2_in); \
CAT(LIB(PAIR), put) \
(res BOOST_PP_SEQ_FOR_EACH(REAL, , CAT(LIB(PAIR), _ARGS_SEQ))); \
for (int i = 0; i < CAT(LIB(PAIR), _N); ++i) { \
arr.at(i) = res[coeffs[i]]; \
} \
}
#define REAL(R, DUMMY, ELEM)
#define CAT(a, b)
#define LIB(PAIR)
#define LT(PAIR)
#define APPEND(s, data, elem)

Definition at line 55 of file library_looptools.cpp.

◆ LT_ARGS

#define LT_ARGS (   PAIR)    CAT(LIB(PAIR), _ARGS_SEQ)

Definition at line 42 of file library_looptools.cpp.

◆ LT_IDX

#define LT_IDX (   PAIR,
  INDEX 
)    CAT(LT(PAIR), INDEX)

Definition at line 44 of file library_looptools.cpp.

◆ LT_NAME

#define LT_NAME (   PAIR)    CAT(LIB(PAIR), 0i)

Definition at line 43 of file library_looptools.cpp.

◆ LT_ONE

#define LT_ONE (   _,
  PAIR,
  I,
  INDEX 
)
Value:
std::complex<double> Looptools::LIB_NAME(PAIR, \
INDEX)(LIB_ARGS(PAIR)) noexcept \
{ \
set_mu2_uv(scl2_in); \
return LT_NAME(PAIR)(LT_IDX(PAIR, INDEX) \
BOOST_PP_SEQ_FOR_EACH(REAL, , LT_ARGS(PAIR))); \
}
#define LT_ARGS(PAIR)
#define LT_IDX(PAIR, INDEX)
#define LT_NAME(PAIR)
#define LIB_NAME(PAIR, INDEX)
#define LIB_ARGS(PAIR)

Definition at line 46 of file library_looptools.cpp.

◆ REAL

#define REAL (   R,
  DUMMY,
  ELEM 
)    , ELEM.real()

Definition at line 31 of file library_looptools.cpp.