166 os << A.
XX <<
' ' << A.
XY <<
' ' << A.
XZ <<
" " << A.
YY <<
' ' << A.
YZ <<
" " << A.
ZZ;
static MatrixSymmetric3D square(const MatrixSymmetric3D &A)
Calculates the pointwise square.
Mdouble X
the vector components
MatrixSymmetric3D & operator-=(const MatrixSymmetric3D &A)
Matrix substraction.
std::istream & operator>>(std::istream &is, MatrixSymmetric3D &A)
std::ostream & operator<<(std::ostream &os, const MatrixSymmetric3D &A)
T square(T val)
squares a number
MatrixSymmetric3D operator+(const MatrixSymmetric3D &A) const
Matrix addition.
Vec3D operator*(const MatrixSymmetric3D &A, const Vec3D &b)
MatrixSymmetric3D & operator/=(const Mdouble a)
Scalar division.
void setZero()
Sets all elements to zero.
MatrixSymmetric3D operator-(const MatrixSymmetric3D &A) const
Matrix substraction.
MatrixSymmetric3D & operator+=(const MatrixSymmetric3D &A)
Matrix addition.
static MatrixSymmetric3D symmetrisedDyadic(const Vec3D &a, const Vec3D &b)
Calculates the symmetrised dyadic product of two Vec3D: .
static MatrixSymmetric3D selfDyadic(const Vec3D &a)
Calculates the dyadic product of a Vec3D with itself: .
MatrixSymmetric3D operator/(const Mdouble a) const
Scalar division.
MatrixSymmetric3D()
Default constructor.
friend Vec3D operator*(const MatrixSymmetric3D &A, const Vec3D &b)
Vector multiplication.
Implementation of a 3D matrix.
Implementation of a 3D vector (by Vitaliy).
Mdouble trace() const
Returns the MEAN of the diagonal elements (i.e. the trace divided by three).
static MatrixSymmetric3D sqrt(const MatrixSymmetric3D &A)
Calculates the pointwise square root.
Implementation of a 3D symmetric matrix.
Mdouble XX
The six distinctive matrix elements.