13 #include "metaphysicl/raw_type.h" 19 template <
typename V,
typename D,
bool asd>
26 template <
typename V,
typename D,
bool asd>
33 template <
typename V,
typename D,
bool asd>
40 template <
typename V,
typename D,
bool asd>
51 #include "libmesh/ignore_warnings.h" 53 #include "libmesh/restore_warnings.h" 59 template <
typename T,
int M,
int N,
int O,
int M2,
int N2>
60 struct RawType<
Eigen::Matrix<T, M, N, O, M2, N2>>
62 typedef Eigen::Matrix<typename RawType<T>::value_type, M,
N, O, M2, N2>
value_type;
66 return value_type::NullaryExpr([&in](Eigen::Index i) {
return raw_value(in(i)); });
82 template <
typename V,
typename D,
bool asd>
95 RequireInitialization = 1,
102 template <
typename BinaryOp,
typename V,
typename D,
bool asd>
107 template <
typename BinaryOp,
typename V,
typename D,
bool asd>
116 template <
typename T>
119 template <
typename T,
int M,
int N,
int O,
int M2,
int N2>
122 typedef typename Eigen::Matrix<typename ADType<T>::type, M,
N, O, M2, N2>
type;
171 Vectorizable =
false,
175 NumberOfRegisters = 1,
188 template <
typename Index,
typename DataMapper,
bool ConjugateLhs,
bool ConjugateRhs>
189 struct gebp_kernel<
ADReal,
ADReal, Index, DataMapper, 1, 1, ConjugateLhs, ConjugateRhs>
204 if (rows == 0 || cols == 0 || depth == 0)
214 for (Index i = 0; i < rows; ++i)
215 for (Index j = 0; j < cols; ++j)
217 const ADReal * A = blockA + i * strideA + offsetA;
218 const ADReal *
B = blockB + j * strideB + offsetB;
221 for (Index k = 0; k < depth; k++)
223 res(i, j) += acc1 * alpha;
MetaPhysicL::DualNumber< V, D, asd > abs(const MetaPhysicL::DualNumber< V, D, asd > &a)
int cast< ADReal, int >(const ADReal &x)
DualNumber< Real, DNDerivativeType, true > ADReal
double cast< ADReal, double >(const ADReal &x)
MetaPhysicL::DualNumber< V, D, asd > sqrt(const MetaPhysicL::DualNumber< V, D, asd > &a)
EIGEN_DONT_INLINE void operator()(const DataMapper &res, const ADReal *blockA, const ADReal *blockB, Index rows, Index depth, Index cols, const ADReal &alpha, Index strideA=-1, Index strideB=-1, Index offsetA=0, Index offsetB=0)
long double cast< ADReal, long double >(const ADReal &x)
bool isinf_impl(const MetaPhysicL::DualNumber< V, D, asd > &a)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
bool isnan_impl(const MetaPhysicL::DualNumber< V, D, asd > &a)
ResScalar LhsPacket4Packing
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
long cast< ADReal, long >(const ADReal &x)
Eigen::Matrix< typename ADType< T >::type, M, N, O, M2, N2 > type