HG-MD  1
Public Member Functions | Public Attributes | Friends
Matrix3D Class Reference

Implementation of a 3D matrix. More...

#include <Matrix.h>

List of all members.

Public Member Functions

 Matrix3D (void)
 Matrix3D (const Mdouble xx, const Mdouble xy, const Mdouble xz, const Mdouble yx, const Mdouble yy, const Mdouble yz, const Mdouble zx, const Mdouble zy, const Mdouble zz)
void set_zero ()
Mdouble trace () const
Matrix3D operator+ (const Matrix3D &A) const
Matrix3D operator- (const Matrix3D &A) const
Matrix3D operator+ (const Mdouble A) const
Matrix3D operator- (const Mdouble A) const
Matrix3D operator* (const Mdouble A) const
Vec3D operator* (const Vec3D A) const
Matrix3D operator/ (const Mdouble A) const
Matrix3Doperator+= (const Matrix3D &A)
Matrix3Doperator-= (const Matrix3D &A)
Matrix3Doperator/= (const Mdouble A)

Public Attributes

Mdouble XX
Mdouble XY
Mdouble XZ
Mdouble YX
Mdouble YY
Mdouble YZ
Mdouble ZX
Mdouble ZY
Mdouble ZZ

Friends

std::ostream & operator<< (std::ostream &os, const Matrix3D &A)
std::istream & operator>> (std::istream &is, Matrix3D &A)
Matrix3D square (const Matrix3D &A)
Matrix3D sqrt (const Matrix3D &A)

Detailed Description

Implementation of a 3D matrix.


Constructor & Destructor Documentation

Matrix3D::Matrix3D ( void  ) [inline]

Referenced by operator*(), operator+(), operator-(), and operator/().

{}
Matrix3D::Matrix3D ( const Mdouble  xx,
const Mdouble  xy,
const Mdouble  xz,
const Mdouble  yx,
const Mdouble  yy,
const Mdouble  yz,
const Mdouble  zx,
const Mdouble  zy,
const Mdouble  zz 
) [inline]

References XX, XY, XZ, YX, YY, YZ, ZX, ZY, and ZZ.

                {       
                        XX = xx; XY = xy; XZ = xz;
                        YX = yx; YY = yy; YZ = yz;
                        ZX = zx; ZY = zy; ZZ = zz;
                }

Member Function Documentation

Matrix3D Matrix3D::operator* ( const Mdouble  A) const [inline]

References Matrix3D(), XX, XY, XZ, YX, YY, YZ, ZX, ZY, and ZZ.

        { 
                return Matrix3D(XX * A, XY * A, XZ * A, 
                                                YX * A, YY * A, YZ * A, 
                                                ZX * A, ZY * A, ZZ * A); 
        }
Vec3D Matrix3D::operator* ( const Vec3D  A) const [inline]

References Vec3D::X, XX, XY, XZ, Vec3D::Y, YX, YY, YZ, Vec3D::Z, ZX, ZY, and ZZ.

        { 
                return Vec3D(XX * A.X + XY * A.Y + XZ * A.Z, 
                             YX * A.X + YY * A.Y + YZ * A.Z,
                             ZX * A.X + ZY * A.Y + ZZ * A.Z );
        }
Matrix3D Matrix3D::operator+ ( const Matrix3D A) const [inline]

References Matrix3D(), XX, XY, XZ, YX, YY, YZ, ZX, ZY, and ZZ.

        { 
                return Matrix3D(XX + A.XX, XY + A.XY, XZ + A.XZ, 
                                                YX + A.YX, YY + A.YY, YZ + A.YZ, 
                                                ZX + A.ZX, ZY + A.ZY, ZZ + A.ZZ); 
        }
Matrix3D Matrix3D::operator+ ( const Mdouble  A) const [inline]

References Matrix3D(), XX, XY, XZ, YX, YY, YZ, ZX, ZY, and ZZ.

        { 
                return Matrix3D(XX + A, XY + A, XZ + A, 
                                                YX + A, YY + A, YZ + A, 
                                                ZX + A, ZY + A, ZZ + A); 
        }
Matrix3D& Matrix3D::operator+= ( const Matrix3D A) [inline]

References XX, XY, XZ, YX, YY, YZ, ZX, ZY, and ZZ.

        {
                XX += A.XX;
                XY += A.XY;
                XZ += A.XZ;
                YX += A.YX;
                YY += A.YY;
                YZ += A.YZ;
                ZX += A.ZX;
                ZY += A.ZY;
                ZZ += A.ZZ;
                return *this;
        }
Matrix3D Matrix3D::operator- ( const Matrix3D A) const [inline]

References Matrix3D(), XX, XY, XZ, YX, YY, YZ, ZX, ZY, and ZZ.

        { 
                return Matrix3D(XX - A.XX, XY - A.XY, XZ - A.XZ, 
                                                YX - A.YX, YY - A.YY, YZ - A.YZ, 
                                                ZX - A.ZX, ZY - A.ZY, ZZ - A.ZZ); 
        }
Matrix3D Matrix3D::operator- ( const Mdouble  A) const [inline]

References Matrix3D(), XX, XY, XZ, YX, YY, YZ, ZX, ZY, and ZZ.

        { 
                return Matrix3D(XX - A, XY - A, XZ - A, 
                                                YX - A, YY - A, YZ - A, 
                                                ZX - A, ZY - A, ZZ - A); 
        }
Matrix3D& Matrix3D::operator-= ( const Matrix3D A) [inline]

References XX, XY, XZ, YX, YY, YZ, ZX, ZY, and ZZ.

        {
                XX -= A.XX;
                XY -= A.XY;
                XZ -= A.XZ;
                YX -= A.YX;
                YY -= A.YY;
                YZ -= A.YZ;
                ZX -= A.ZX;
                ZY -= A.ZY;
                ZZ -= A.ZZ;
                return *this;
        }
Matrix3D Matrix3D::operator/ ( const Mdouble  A) const [inline]

References Matrix3D(), XX, XY, XZ, YX, YY, YZ, ZX, ZY, and ZZ.

        { 
                return Matrix3D(XX / A, XY / A, XZ / A, 
                                                YX / A, YY / A, YZ / A, 
                                                ZX / A, ZY / A, ZZ / A); 
        }
Matrix3D& Matrix3D::operator/= ( const Mdouble  A) [inline]

References XX, XY, XZ, YX, YY, YZ, ZX, ZY, and ZZ.

        {
                XX /= A;
                XY /= A;
                XZ /= A;
                YX /= A;
                YY /= A;
                YZ /= A;
                ZX /= A;
                ZY /= A;
                ZZ /= A;
                return *this;
        }
void Matrix3D::set_zero ( ) [inline]

References XX, XY, XZ, YX, YY, YZ, ZX, ZY, and ZZ.

        {       
                XX = XY = XZ = YX = YY = YZ = ZX = ZY = ZZ = 0.0;
        }
Mdouble Matrix3D::trace ( ) const [inline]

References XX, YY, and ZZ.

        {       
                return (XX+YY+ZZ)/3;
        }

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const Matrix3D A 
) [friend]
        {
                os      << A.XX << ' ' << A.XY << ' ' << A.XZ << ' ' 
                        << A.YX << ' ' << A.YY << ' ' << A.YZ << ' '
                        << A.ZX << ' ' << A.ZY << ' ' << A.ZZ;
                return os;
        }
std::istream& operator>> ( std::istream &  is,
Matrix3D A 
) [friend]
        {
                is >> A.XX >> A.XY >> A.XZ >> A.YX >> A.YY >> A.YZ >> A.ZX >> A.ZY >> A.ZZ;
                return is;
        }
Matrix3D sqrt ( const Matrix3D A) [friend]
        {
                return Matrix3D(sqrt(A.XX), sqrt(A.XY), sqrt(A.XZ), 
                                                sqrt(A.YX), sqrt(A.YY), sqrt(A.YZ), 
                                                sqrt(A.ZX), sqrt(A.ZY), sqrt(A.ZZ));
        }
Matrix3D square ( const Matrix3D A) [friend]
        {
                return Matrix3D(sqr(A.XX), sqr(A.XY), sqr(A.XZ), 
                                                sqr(A.YX), sqr(A.YY), sqr(A.YZ), 
                                                sqr(A.ZX), sqr(A.ZY), sqr(A.ZZ));
        }

Member Data Documentation


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines