1#ifndef SET_MATRIX4_DIAGONAL_H
2#define SET_MATRIX4_DIAGONAL_H
4#include "AMReX_Config.H"
10#include "Set/Matrix4.H"
40 if (
i ==
k &&
j ==
l)
return A[
i][
j];
57 os <<
"A = \n" << getA();
109 return getA().lpNorm<2>();
113 if (std::isnan(getA().
lpNorm<2>()))
return true;
Matrix< _Scalar, _Rows, _Cols > & operator*=(const amrex::Vector< amrex::Real > &x)
AMREX_FORCE_INLINE void operator+=(const OP_CLASS &rhs)
bool contains_nan() const
static Matrix4< AMREX_SPACEDIM, Sym::Diagonal > Ones()
void Print(std::ostream &os)
std::array< std::array< Set::Scalar, AMREX_SPACEDIM >, AMREX_SPACEDIM > A
static Matrix4< AMREX_SPACEDIM, Sym::Diagonal > Zero()
static Matrix4< AMREX_SPACEDIM, Sym::Diagonal > Random()
AMREX_GPU_HOST_DEVICE Matrix4()=default
A collection of data types and symmetry-reduced data structures.
AMREX_FORCE_INLINE Quaternion operator-(const Quaternion a, const Quaternion b)
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE Matrix4< AMREX_SPACEDIM, Sym::Diagonal > operator/(const Matrix4< AMREX_SPACEDIM, Sym::Diagonal > &a, const Set::Scalar &b)
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
AMREX_FORCE_INLINE bool operator==(const Quaternion a, const Quaternion b)
AMREX_FORCE_INLINE Quaternion operator+(const Quaternion a, const Quaternion b)
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, AMREX_SPACEDIM > Matrix
AMREX_FORCE_INLINE Quaternion operator*(const Set::Scalar alpha, const Quaternion b)