flexiblesusy is hosted by Hepforge, IPPP Durham
FlexibleSUSY
sum.hpp File Reference
#include <type_traits>
#include <cstddef>
#include <Eigen/Core>
Include dependency graph for sum.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  flexiblesusy::create_zero< T, isEigenType >
 
struct  flexiblesusy::create_zero< T, true >
 
struct  flexiblesusy::EvalEigenXprImpl< Idx, Function, isEigenType >
 
struct  flexiblesusy::EvalEigenXprImpl< Idx, Function, true >
 
struct  flexiblesusy::is_eigen_type< T >
 

Namespaces

namespace  flexiblesusy
 

Macros

#define get_sum(...)   get_sum_macro(__VA_ARGS__, sum_user_t, sum_ptrdiff_t,)
 
#define get_sum_macro(_1, _2, _3, _4, _5, name, ...)   name
 
#define SUM(...)   (get_sum(__VA_ARGS__)(__VA_ARGS__))
 
#define sum_ptrdiff_t(idx, ini, fin, expr)    sum<std::ptrdiff_t>((ini), (fin), [&](std::ptrdiff_t (idx)) { return (expr); })
 
#define sum_user_t(type, idx, ini, fin, expr)    sum<type>((ini), (fin), [&](type (idx)) { return (expr); })
 

Functions

template<typename Idx , typename Function >
auto flexiblesusy::EvalEigenXpr (Idx i, Function f) -> decltype(EvalEigenXprImpl< Idx, Function, is_eigen_type< decltype(f(i))>::value >::eval(i, f))
 
template<class Idx , class Function >
auto flexiblesusy::sum (Idx ini, Idx fin, Function f) -> decltype(EvalEigenXpr< Idx >(ini, f))
 

Macro Definition Documentation

◆ get_sum

#define get_sum (   ...)    get_sum_macro(__VA_ARGS__, sum_user_t, sum_ptrdiff_t,)

Definition at line 30 of file sum.hpp.

◆ get_sum_macro

#define get_sum_macro (   _1,
  _2,
  _3,
  _4,
  _5,
  name,
  ... 
)    name

Definition at line 32 of file sum.hpp.

◆ SUM

#define SUM (   ...)    (get_sum(__VA_ARGS__)(__VA_ARGS__))

Definition at line 28 of file sum.hpp.

◆ sum_ptrdiff_t

#define sum_ptrdiff_t (   idx,
  ini,
  fin,
  expr 
)     sum<std::ptrdiff_t>((ini), (fin), [&](std::ptrdiff_t (idx)) { return (expr); })

Definition at line 34 of file sum.hpp.

◆ sum_user_t

#define sum_user_t (   type,
  idx,
  ini,
  fin,
  expr 
)     sum<type>((ini), (fin), [&](type (idx)) { return (expr); })

Definition at line 37 of file sum.hpp.