20namespace JPP { 
using namespace JMATH; }
 
   33    public JMath  <JMatrix3D>,
 
   64    JMatrix3D(
const double __a00, 
const double __a01, 
const double __a02,
 
   65              const double __a10, 
const double __a11, 
const double __a12,
 
   66              const double __a20, 
const double __a21, 
const double __a22) :
 
 
  179      a10 += A.a10;  
a11 += A.a11;  
a12 += A.a12;
 
  180      a20 += A.a20;  
a21 += A.a21;  
a22 += A.a22;
 
 
  195      a10 -= A.a10;  
a11 -= A.a11;  
a12 -= A.a12;
 
  196      a20 -= A.a20;  
a21 -= A.a21;  
a22 -= A.a22;
 
 
  210      a00 *= factor; 
a01 *= factor; 
a02 *= factor;
 
  211      a10 *= factor; 
a11 *= factor; 
a12 *= factor;
 
  212      a20 *= factor; 
a21 *= factor; 
a22 *= factor;
 
 
  226      a00 /= factor; 
a01 /= factor; 
a02 /= factor;
 
  227      a10 /= factor; 
a11 /= factor; 
a12 /= factor;
 
  228      a20 /= factor; 
a21 /= factor; 
a22 /= factor;
 
 
  244      a00 = A.
a00 * B.a00  +  A.a01 * B.a10  +  A.a02 * B.a20;
 
  245      a01 = A.a00 * B.a01  +  A.a01 * B.a11  +  A.a02 * B.a21;
 
  246      a02 = A.a00 * B.a02  +  A.a01 * B.a12  +  A.a02 * B.a22;
 
  248      a10 = A.a10 * B.a00  +  A.a11 * B.a10  +  A.a12 * B.a20;
 
  249      a11 = A.a10 * B.a01  +  A.a11 * B.a11  +  A.a12 * B.a21;
 
  250      a12 = A.a10 * B.a02  +  A.a11 * B.a12  +  A.a12 * B.a22;
 
  252      a20 = A.a20 * B.a00  +  A.a21 * B.a10  +  A.a22 * B.a20;
 
  253      a21 = A.a20 * B.a01  +  A.a21 * B.a11  +  A.a22 * B.a21;
 
  254      a22 = A.a20 * B.a02  +  A.a21 * B.a12  +  A.a22 * B.a22;
 
 
  268                const double     eps = std::numeric_limits<double>::min())
 const 
  270      return (fabs(
a00 - A.a00) <= eps  &&
 
  271              fabs(
a01 - A.a01) <= eps  &&
 
  272              fabs(
a02 - A.a02) <= eps  &&
 
  273              fabs(
a10 - A.a10) <= eps  &&
 
  274              fabs(
a11 - A.a11) <= eps  &&
 
  275              fabs(
a12 - A.a12) <= eps  &&
 
  276              fabs(
a20 - A.a20) <= eps  &&
 
  277              fabs(
a21 - A.a21) <= eps  &&
 
  278              fabs(
a22 - A.a22) <= eps);
 
 
  288    bool isIdentity(
const double eps = std::numeric_limits<double>::min())
 const 
 
  318    void transform(
double& __x, 
double& __y, 
double& __z)
 const 
  320      const double x = 
a00 * __x  +  
a01 * __y  +  
a02 * __z;
 
  321      const double y = 
a10 * __x  +  
a11 * __y  +  
a12 * __z;
 
  322      const double z = 
a20 * __x  +  
a21 * __y  +  
a22 * __z;
 
 
  339      in >> matrix.
a00;  in >> matrix.
a01;  in >> matrix.
a02;
 
  340      in >> matrix.
a10;  in >> matrix.
a11;  in >> matrix.
a12;
 
  341      in >> matrix.
a20;  in >> matrix.
a21;  in >> matrix.
a22;
 
 
  356      out << matrix.
a00;  out << matrix.
a01;  out << matrix.
a02;
 
  357      out << matrix.
a10;  out << matrix.
a11;  out << matrix.
a12;
 
  358      out << matrix.
a20;  out << matrix.
a21;  out << matrix.
a22;
 
 
  377      out << format << A.a00 << 
' ' << format << A.a01 << 
' ' << format << A.a02 << endl;
 
  378      out << format << A.a10 << 
' ' << format << A.a11 << 
' ' << format << A.a12 << endl;
 
  379      out << format << A.a20 << 
' ' << format << A.a21 << 
' ' << format << A.a22 << endl;
 
 
 
JFormat_t & getFormat()
Get format for given type.
 
Base class for data structures with artithmetic capabilities.
 
Interface for binary input.
 
Interface for binary output.
 
JMatrix3D()
Default constructor.
 
JMatrix3D & add(const JMatrix3D &A)
Matrix addition.
 
static const JMatrix3D & getIdentity()
Get reference to unique instance of this class object.
 
JMatrix3D & negate()
Negate matrix.
 
void set(const JMatrix3D &A)
Set matrix.
 
friend std::ostream & operator<<(std::ostream &out, const JMatrix3D &A)
Print ASCII formatted output.
 
double getDeterminant() const
Get determinant of matrix.
 
JMatrix3D & mul(const double factor)
Scale matrix.
 
friend JReader & operator>>(JReader &in, JMatrix3D &matrix)
Read matrix from input.
 
JMatrix3D & transpose()
Transpose.
 
JMatrix3D & reset()
Set matrix to the null matrix.
 
JMatrix3D(const double __a00, const double __a01, const double __a02, const double __a10, const double __a11, const double __a12, const double __a20, const double __a21, const double __a22)
Contructor.
 
JMatrix3D & setIdentity()
Set to identity matrix.
 
void transform(double &__x, double &__y, double &__z) const
Transform.
 
bool isIdentity(const double eps=std::numeric_limits< double >::min()) const
Test identity.
 
JMatrix3D & sub(const JMatrix3D &A)
Matrix subtraction.
 
static const JMatrix3D & getInstance()
Get reference to unique instance of this class object.
 
JMatrix3D & mul(const JMatrix3D &A, const JMatrix3D &B)
Matrix multiplication.
 
JMatrix3D & div(const double factor)
Scale matrix.
 
bool equals(const JMatrix3D &A, const double eps=std::numeric_limits< double >::min()) const
Equality.
 
friend JWriter & operator<<(JWriter &out, const JMatrix3D &matrix)
Write matrix to output.
 
Auxiliary classes and methods for mathematical operations.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Template definition of auxiliary base class for comparison of data structures.
 
Auxiliary base class for aritmetic operations of derived class types.