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.