DiSMEC++
eigen_generic.h File Reference
#include <variant>
#include "utils/type_helpers.h"

Go to the source code of this file.

Classes

class  dismec::types::VarWrapBase
 
class  dismec::types::EigenVariantWrapper< Types >
 
class  dismec::types::GenericMatrix< Dense, Sparse >
 
class  dismec::types::RefVariant< Types >
 
class  dismec::types::GenericVectorRef< T >
 
class  dismec::types::GenericMatrixRef< T >
 

Namespaces

 Eigen
 
 dismec
 Main namespace in which all types, classes, and functions are defined.
 
 dismec::eigen_visitors
 
 dismec::types
 

Macros

#define EIGEN_VISITORS_IMPLEMENT_VISITOR(VISITOR, BASE, CALL)
 

Functions

 dismec::eigen_visitors::EIGEN_VISITORS_IMPLEMENT_VISITOR (ColsVisitor, EigenBase, cols)
 
 dismec::eigen_visitors::EIGEN_VISITORS_IMPLEMENT_VISITOR (RowsVisitor, EigenBase, rows)
 
 dismec::eigen_visitors::EIGEN_VISITORS_IMPLEMENT_VISITOR (SizeVisitor, EigenBase, size)
 
template<class T >
decltype(auto) dismec::types::unpack_variant_wrapper (T &&source, std::enable_if_t<!is_variant_wrapper< T >, void * > dispatch=nullptr)
 
template<class T >
decltype(auto) dismec::types::unpack_variant_wrapper (T &&source, std::enable_if_t< is_variant_wrapper< T >, void * > dispatch=nullptr)
 
template<class F , class... Variants>
auto dismec::types::visit (F &&f, Variants &&... variants)
 

Variables

template<class T >
constexpr bool dismec::types::is_variant_wrapper = std::is_base_of_v<VarWrapBase, std::decay_t<T>>
 

Macro Definition Documentation

◆ EIGEN_VISITORS_IMPLEMENT_VISITOR

#define EIGEN_VISITORS_IMPLEMENT_VISITOR (   VISITOR,
  BASE,
  CALL 
)
Value:
struct VISITOR { \
template<class Derived, class... Args> \
auto operator()(const Eigen::BASE<Derived>& source, Args&&... args) const { \
return source.CALL(std::forward<Args>(args)...); \
} \
}

Definition at line 18 of file eigen_generic.h.