1#ifndef _RHEOLEF_MEMORIZED_VALUE_H
2#define _RHEOLEF_MEMORIZED_VALUE_H
39#include "rheolef/compiler_eigen.h"
41namespace rheolef {
namespace details {
50#define _RHEOLEF_class_specialization(VALUE,MEMBER) \
52struct memorized_vector<T,VALUE> { \
53 template <class Object> \
54 Eigen::Matrix<VALUE,Eigen::Dynamic,1>& \
55 get (const Object& obj, const reference_element& hat_K) const { \
56 return obj.MEMBER [hat_K.variant()]; \
65#undef _RHEOLEF_class_specialization
72#define _RHEOLEF_class_specialization(VALUE,MEMBER) \
74struct memorized_matrix<T,VALUE> { \
75 template <class Object> \
76 Eigen::Matrix<VALUE,Eigen::Dynamic,Eigen::Dynamic>& \
77 get (const Object& obj, const reference_element& hat_K) const { \
78 return obj.MEMBER [hat_K.variant()]; \
87#undef _RHEOLEF_class_specialization
94#define _RHEOLEF_class_specialization(VALUE,MEMBER) \
96struct memorized_side_value<T,VALUE> { \
97 template <class Object> \
98 Eigen::Matrix<VALUE,Eigen::Dynamic,Eigen::Dynamic>& \
101 const reference_element& hat_K, \
102 const side_information_type& sid) const { \
103 size_t ori_idx = (sid.orient == 1) ? 0 : 1; \
104 return obj.MEMBER [hat_K.variant()] [sid.loc_isid] [ori_idx] [sid.shift]; \
113#undef _RHEOLEF_class_specialization
#define _RHEOLEF_class_specialization(VALUE, MEMBER)
This file is part of Rheolef.