21namespace JPP { 
using namespace JMATH; }
 
   34    public JMath  <JMatrix5D>,
 
   83    JMatrix5D(
const double __a00, 
const double __a01, 
const double __a02, 
const double __a03, 
const double __a04,
 
   84              const double __a10, 
const double __a11, 
const double __a12, 
const double __a13, 
const double __a14,
 
   85              const double __a20, 
const double __a21, 
const double __a22, 
const double __a23, 
const double __a24,
 
   86              const double __a30, 
const double __a31, 
const double __a32, 
const double __a33, 
const double __a34,
 
   87              const double __a40, 
const double __a41, 
const double __a42, 
const double __a43, 
const double __a44) :
 
 
  248      a00 *= factor; 
a01 *= factor; 
a02 *= factor; 
a03 *= factor; 
a04 *= factor;
 
  249      a10 *= factor; 
a11 *= factor; 
a12 *= factor; 
a13 *= factor; 
a14 *= factor;
 
  250      a20 *= factor; 
a21 *= factor; 
a22 *= factor; 
a23 *= factor; 
a24 *= factor;
 
  251      a30 *= factor; 
a31 *= factor; 
a32 *= factor; 
a33 *= factor; 
a34 *= factor;
 
  252      a40 *= factor; 
a41 *= factor; 
a42 *= factor; 
a43 *= factor; 
a44 *= factor;
 
 
  266      a00 /= factor; 
a01 /= factor; 
a02 /= factor; 
a03 /= factor; 
a04 /= factor;
 
  267      a10 /= factor; 
a11 /= factor; 
a12 /= factor; 
a13 /= factor; 
a14 /= factor;
 
  268      a20 /= factor; 
a21 /= factor; 
a22 /= factor; 
a23 /= factor; 
a24 /= factor;
 
  269      a30 /= factor; 
a31 /= factor; 
a32 /= factor; 
a33 /= factor; 
a34 /= factor;
 
  270      a40 /= factor; 
a41 /= factor; 
a42 /= factor; 
a43 /= factor; 
a44 /= factor;
 
 
  286      a00 = A.
a00 * B.a00  +  A.a01 * B.a10  +  A.a02 * B.a20  +  A.a03 * B.a30  +  A.a04 * B.a40;
 
  287      a01 = A.a00 * B.a01  +  A.a01 * B.a11  +  A.a02 * B.a21  +  A.a03 * B.a31  +  A.a04 * B.a41;
 
  288      a02 = A.a00 * B.a02  +  A.a01 * B.a12  +  A.a02 * B.a22  +  A.a03 * B.a32  +  A.a04 * B.a42;
 
  289      a03 = A.a00 * B.a03  +  A.a01 * B.a13  +  A.a02 * B.a23  +  A.a03 * B.a33  +  A.a04 * B.a43;
 
  290      a04 = A.a00 * B.a04  +  A.a01 * B.a14  +  A.a02 * B.a24  +  A.a03 * B.a34  +  A.a04 * B.a44;
 
  292      a10 = A.a10 * B.a00  +  A.a11 * B.a10  +  A.a12 * B.a20  +  A.a13 * B.a30  +  A.a14 * B.a40;
 
  293      a11 = A.a10 * B.a01  +  A.a11 * B.a11  +  A.a12 * B.a21  +  A.a13 * B.a31  +  A.a14 * B.a41;
 
  294      a12 = A.a10 * B.a02  +  A.a11 * B.a12  +  A.a12 * B.a22  +  A.a13 * B.a32  +  A.a14 * B.a42;
 
  295      a13 = A.a10 * B.a03  +  A.a11 * B.a13  +  A.a12 * B.a23  +  A.a13 * B.a33  +  A.a14 * B.a43;
 
  296      a14 = A.a10 * B.a04  +  A.a11 * B.a14  +  A.a12 * B.a24  +  A.a13 * B.a34  +  A.a14 * B.a44;
 
  298      a20 = A.a20 * B.a00  +  A.a21 * B.a10  +  A.a22 * B.a20  +  A.a23 * B.a30  +  A.a24 * B.a40;
 
  299      a21 = A.a20 * B.a01  +  A.a21 * B.a11  +  A.a22 * B.a21  +  A.a23 * B.a31  +  A.a24 * B.a41;
 
  300      a22 = A.a20 * B.a02  +  A.a21 * B.a12  +  A.a22 * B.a22  +  A.a23 * B.a32  +  A.a24 * B.a42;
 
  301      a23 = A.a20 * B.a03  +  A.a21 * B.a13  +  A.a22 * B.a23  +  A.a23 * B.a33  +  A.a24 * B.a43;
 
  302      a24 = A.a20 * B.a04  +  A.a21 * B.a14  +  A.a22 * B.a24  +  A.a23 * B.a34  +  A.a24 * B.a44;
 
  304      a30 = A.a30 * B.a00  +  A.a31 * B.a10  +  A.a32 * B.a20  +  A.a33 * B.a30  +  A.a34 * B.a40;
 
  305      a31 = A.a30 * B.a01  +  A.a31 * B.a11  +  A.a32 * B.a21  +  A.a33 * B.a31  +  A.a34 * B.a41;
 
  306      a32 = A.a30 * B.a02  +  A.a31 * B.a12  +  A.a32 * B.a22  +  A.a33 * B.a32  +  A.a34 * B.a42;
 
  307      a33 = A.a30 * B.a03  +  A.a31 * B.a13  +  A.a32 * B.a23  +  A.a33 * B.a33  +  A.a34 * B.a43;
 
  308      a34 = A.a30 * B.a04  +  A.a31 * B.a14  +  A.a32 * B.a24  +  A.a33 * B.a34  +  A.a34 * B.a44;
 
  310      a40 = A.a40 * B.a00  +  A.a41 * B.a10  +  A.a42 * B.a20  +  A.a43 * B.a30  +  A.a44 * B.a40;
 
  311      a41 = A.a40 * B.a01  +  A.a41 * B.a11  +  A.a42 * B.a21  +  A.a43 * B.a31  +  A.a44 * B.a41;
 
  312      a42 = A.a40 * B.a02  +  A.a41 * B.a12  +  A.a42 * B.a22  +  A.a43 * B.a32  +  A.a44 * B.a42;
 
  313      a43 = A.a40 * B.a03  +  A.a41 * B.a13  +  A.a42 * B.a23  +  A.a43 * B.a33  +  A.a44 * B.a43;
 
  314      a44 = A.a40 * B.a04  +  A.a41 * B.a14  +  A.a42 * B.a24  +  A.a43 * B.a34  +  A.a44 * B.a44;
 
 
  328                const double     eps = std::numeric_limits<double>::min())
 const 
  330      return (fabs(
a00 - A.a00) <= eps  &&
 
  331              fabs(
a01 - A.a01) <= eps  &&
 
  332              fabs(
a02 - A.a02) <= eps  &&
 
  333              fabs(
a03 - A.a03) <= eps  &&
 
  334              fabs(
a04 - A.a04) <= eps  &&
 
  335              fabs(
a10 - A.a10) <= eps  &&
 
  336              fabs(
a11 - A.a11) <= eps  &&
 
  337              fabs(
a12 - A.a12) <= eps  &&
 
  338              fabs(
a13 - A.a13) <= eps  &&
 
  339              fabs(
a14 - A.a14) <= eps  &&
 
  340              fabs(
a20 - A.a20) <= eps  &&
 
  341              fabs(
a21 - A.a21) <= eps  &&
 
  342              fabs(
a22 - A.a22) <= eps  &&
 
  343              fabs(
a23 - A.a23) <= eps  &&
 
  344              fabs(
a24 - A.a24) <= eps  &&
 
  345              fabs(
a30 - A.a30) <= eps  &&
 
  346              fabs(
a31 - A.a31) <= eps  &&
 
  347              fabs(
a32 - A.a32) <= eps  &&
 
  348              fabs(
a33 - A.a33) <= eps  &&
 
  349              fabs(
a34 - A.a34) <= eps  &&
 
  350              fabs(
a40 - A.a40) <= eps  &&
 
  351              fabs(
a41 - A.a41) <= eps  &&
 
  352              fabs(
a42 - A.a42) <= eps  &&
 
  353              fabs(
a43 - A.a43) <= eps  &&
 
  354              fabs(
a44 - A.a44) <= eps);
 
 
  364    bool isIdentity(
const double eps = std::numeric_limits<double>::min())
 const 
 
  417    void transform(
double& __x0, 
double& __x1, 
double& __x2, 
double& __x3, 
double& __x4)
 const 
  419      const double x0 = 
a00 * __x0  +  
a01 * __x1  +  
a02 * __x2  +  
a03 * __x3  +  
a04 * __x4;
 
  420      const double x1 = 
a10 * __x0  +  
a11 * __x1  +  
a12 * __x2  +  
a13 * __x3  +  
a14 * __x4;
 
  421      const double x2 = 
a20 * __x0  +  
a21 * __x1  +  
a22 * __x2  +  
a23 * __x3  +  
a24 * __x4;
 
  422      const double x3 = 
a30 * __x0  +  
a31 * __x1  +  
a32 * __x2  +  
a33 * __x3  +  
a34 * __x4;
 
  423      const double x4 = 
a40 * __x0  +  
a41 * __x1  +  
a42 * __x2  +  
a43 * __x3  +  
a44 * __x4;
 
 
  442      in >> matrix.
a00;  in >> matrix.
a01;  in >> matrix.
a02;  in >> matrix.
a03;  in >> matrix.
a04;
 
  443      in >> matrix.
a10;  in >> matrix.
a11;  in >> matrix.
a12;  in >> matrix.
a13;  in >> matrix.
a14;
 
  444      in >> matrix.
a20;  in >> matrix.
a21;  in >> matrix.
a22;  in >> matrix.
a23;  in >> matrix.
a24;
 
  445      in >> matrix.
a30;  in >> matrix.
a31;  in >> matrix.
a32;  in >> matrix.
a33;  in >> matrix.
a34;
 
  446      in >> matrix.
a40;  in >> matrix.
a41;  in >> matrix.
a42;  in >> matrix.
a43;  in >> matrix.
a44;
 
 
  461      out << matrix.
a00;  out << matrix.
a01;  out << matrix.
a02;  out << matrix.
a03;  out << matrix.
a04;
 
  462      out << matrix.
a10;  out << matrix.
a11;  out << matrix.
a12;  out << matrix.
a13;  out << matrix.
a14;
 
  463      out << matrix.
a20;  out << matrix.
a21;  out << matrix.
a22;  out << matrix.
a23;  out << matrix.
a24;
 
  464      out << matrix.
a30;  out << matrix.
a31;  out << matrix.
a32;  out << matrix.
a33;  out << matrix.
a34;
 
  465      out << matrix.
a40;  out << matrix.
a41;  out << matrix.
a42;  out << matrix.
a43;  out << matrix.
a44;
 
 
  484      out << format << A.a00 << 
' ' << format << A.a01 << 
' ' << format << A.a02 << 
' ' << format << A.a03 << 
' ' << format << A.a04 << endl;
 
  485      out << format << A.a10 << 
' ' << format << A.a11 << 
' ' << format << A.a12 << 
' ' << format << A.a13 << 
' ' << format << A.a14 << endl;
 
  486      out << format << A.a20 << 
' ' << format << A.a21 << 
' ' << format << A.a22 << 
' ' << format << A.a23 << 
' ' << format << A.a24 << endl;
 
  487      out << format << A.a30 << 
' ' << format << A.a31 << 
' ' << format << A.a32 << 
' ' << format << A.a33 << 
' ' << format << A.a34 << endl;
 
  488      out << format << A.a40 << 
' ' << format << A.a41 << 
' ' << format << A.a42 << 
' ' << format << A.a43 << 
' ' << format << A.a44 << 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.
 
double getDeterminant() const
Get determinant of matrix.
 
double & operator()(int row, int col)
Get matrix element.
 
JMatrix5D(const double __a00, const double __a01, const double __a02, const double __a03, const double __a04, const double __a10, const double __a11, const double __a12, const double __a13, const double __a14, const double __a20, const double __a21, const double __a22, const double __a23, const double __a24, const double __a30, const double __a31, const double __a32, const double __a33, const double __a34, const double __a40, const double __a41, const double __a42, const double __a43, const double __a44)
Contructor.
 
JMatrix5D & add(const JMatrix5D &A)
Matrix addition.
 
double getDeterminant() const
Get determinant of matrix.
 
static const int NUMBER_OF_DIMENSIONS
 
static const JMatrix5D & getInstance()
Get reference to unique instance of this class object.
 
JMatrix5D & div(const double factor)
Scale matrix.
 
friend std::ostream & operator<<(std::ostream &out, const JMatrix5D &A)
Print ASCII formatted output.
 
bool equals(const JMatrix5D &A, const double eps=std::numeric_limits< double >::min()) const
Equality.
 
void set(const JMatrix5D &A)
Set matrix.
 
double operator()(int row, int col) const
Get matrix element.
 
JMatrix5D & setIdentity()
Set to identity matrix.
 
JMatrix5D & negate()
Negate matrix.
 
JMatrix5D & mul(const double factor)
Scale matrix.
 
void transform(double &__x0, double &__x1, double &__x2, double &__x3, double &__x4) const
Transform.
 
JMatrix5D & reset()
Set matrix to the null matrix.
 
JMatrix5D()
Default constructor.
 
JMatrix5D & transpose()
Transpose.
 
friend JReader & operator>>(JReader &in, JMatrix5D &matrix)
Read matrix from input.
 
friend JWriter & operator<<(JWriter &out, const JMatrix5D &matrix)
Write matrix to output.
 
static const JMatrix5D & getIdentity()
Get reference to unique instance of this class object.
 
bool isIdentity(const double eps=std::numeric_limits< double >::min()) const
Test identity.
 
const JMatrix5D & mul(const JMatrix5D &A, const JMatrix5D &B)
Matrix multiplication.
 
JMatrix5D & sub(const JMatrix5D &A)
Matrix subtraction.
 
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.