180 os << A.
XX <<
' ' << A.
XY <<
' ' << A.
XZ <<
' '
181 << A.
YX <<
' ' << A.
YY <<
' ' << A.
YZ <<
' '
182 << A.
ZX <<
' ' << A.
ZY <<
' ' << A.
ZZ;
274 return Matrix3D(std::sqrt(A.
XX), std::sqrt(A.
XY), std::sqrt(A.
XZ),
275 std::sqrt(A.
YX), std::sqrt(A.
YY), std::sqrt(A.
YZ),
276 std::sqrt(A.
ZX), std::sqrt(A.
ZY), std::sqrt(A.
ZZ));
288 a.
Y * b.
X, a.
Y * b.
Y, a.
Y * b.
Z,
289 a.
Z * b.
X, a.
Z * b.
Y, a.
Z * b.
Z);
Matrix3D operator-(const Matrix3D &A) const
Matrix subtraction.
double trace() const
Mean of the diagonal elements.
Matrix3D & operator+=(const Matrix3D &A)
Matrix addition.
Mdouble X
the vector components
Matrix3D & operator/=(const Mdouble a)
Scalar division.
Matrix3D operator/(const Mdouble a) const
Scalar division.
T square(T val)
squares a number
static Matrix3D dyadic(const Vec3D &a, const Vec3D &b)
Calculates the dyadic product of a two Vec3D: .
Matrix3D operator*(const Mdouble a) const
Scalar multiplication.
static Matrix3D cross(const Vec3D &a, const Matrix3D &b)
'Special' cross product; CP of vector with each column of a matrix
Matrix3D operator+(const Matrix3D &A) const
Matrix addition.
Matrix3D & operator-=(const Matrix3D &A)
Matrix substraction.
static Matrix3D sqrt(const Matrix3D &A)
Calculates the pointwise square root.
std::ostream & operator<<(std::ostream &os, const Matrix3D &A)
Mdouble XX
all nine matrix elements
void setZero()
Sets all elements to zero.
Implementation of a 3D matrix.
Implementation of a 3D vector (by Vitaliy).
std::istream & operator>>(std::istream &is, Matrix3D &A)
Matrix3D()
default constructor
static Matrix3D square(const Matrix3D &A)
Calculates the pointwise square.