21 namespace 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;
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;
482 const JFormat format(out, getFormat<JMatrix4D>(
JFormat_t(10, 3, std::ios::fixed | std::ios::showpos)));
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;
Base class for data structures with artithmetic capabilities.
Interface for binary input.
Interface for binary output.
double getDeterminant() const
Get determinant of matrix.
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 & div(const double factor)
Scale matrix.
friend JReader & operator>>(JReader &in, JMatrix5D &matrix)
Read matrix from input.
friend std::ostream & operator<<(std::ostream &out, const JMatrix5D &A)
Print ASCII formatted output.
double getDeterminant() const
Get determinant of matrix.
static const int NUMBER_OF_DIMENSIONS
static const JMatrix5D & getIdentity()
Get reference to unique instance of this class object.
JMatrix5D & transpose()
Transpose.
static const JMatrix5D & getInstance()
Get reference to unique instance of this class object.
const JMatrix5D & mul(const JMatrix5D &A, const JMatrix5D &B)
Matrix multiplication.
bool equals(const JMatrix5D &A, const double eps=std::numeric_limits< double >::min()) const
Equality.
void set(const JMatrix5D &A)
Set matrix.
JMatrix5D & add(const JMatrix5D &A)
Matrix addition.
JMatrix5D & reset()
Set matrix to the null matrix.
JMatrix5D & mul(const double factor)
Scale matrix.
double operator()(int row, int col) const
Get matrix element.
void transform(double &__x0, double &__x1, double &__x2, double &__x3, double &__x4) const
Transform.
JMatrix5D & setIdentity()
Set to identity matrix.
JMatrix5D()
Default constructor.
JMatrix5D & sub(const JMatrix5D &A)
Matrix subtraction.
double & operator()(int row, int col)
Get matrix element.
bool isIdentity(const double eps=std::numeric_limits< double >::min()) const
Test identity.
friend JWriter & operator<<(JWriter &out, const JMatrix5D &matrix)
Write matrix to output.
JMatrix5D & negate()
Negate matrix.
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.