Jpp  17.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
JMATH::JMatrix3D Class Reference

3 x 3 matrix More...

#include <JMatrix3D.hh>

Inheritance diagram for JMATH::JMatrix3D:
JMATH::JMath< JMatrix3D > JLANG::JEquals< JFirst_t, JSecond_t > JGEOMETRY3D::JRotation3D JMATH::JMatrix3S JDETECTOR::JRotation JGEOMETRY3D::JEulerMatrix3D JGEOMETRY3D::JTransformation3D

Public Member Functions

 JMatrix3D ()
 Default constructor. More...
 
 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. More...
 
JMatrix3DsetIdentity ()
 Set to identity matrix. More...
 
void set (const JMatrix3D &A)
 Set matrix. More...
 
JMatrix3Dreset ()
 Set matrix to the null matrix. More...
 
JMatrix3Dtranspose ()
 Transpose. More...
 
JMatrix3Dnegate ()
 Negate matrix. More...
 
JMatrix3Dadd (const JMatrix3D &A)
 Matrix addition. More...
 
JMatrix3Dsub (const JMatrix3D &A)
 Matrix subtraction. More...
 
JMatrix3Dmul (const double factor)
 Scale matrix. More...
 
JMatrix3Ddiv (const double factor)
 Scale matrix. More...
 
JMatrix3Dmul (const JMatrix3D &A, const JMatrix3D &B)
 Matrix multiplication. More...
 
bool equals (const JMatrix3D &A, const double eps=std::numeric_limits< double >::min()) const
 Equality. More...
 
bool isIdentity (const double eps=std::numeric_limits< double >::min()) const
 Test identity. More...
 
double getDeterminant () const
 Get determinant of matrix. More...
 
void transform (double &__x, double &__y, double &__z) const
 Transform. More...
 
JMatrix3Dmul (const JNullType &object)
 Multiply with object. More...
 

Static Public Member Functions

static const JMatrix3DgetInstance ()
 Get reference to unique instance of this class object. More...
 
static const JMatrix3DgetIdentity ()
 Get reference to unique instance of this class object. More...
 

Public Attributes

double a00
 
double a01
 
double a02
 
double a10
 
double a11
 
double a12
 
double a20
 
double a21
 
double a22
 

Friends

JReaderoperator>> (JReader &in, JMatrix3D &matrix)
 Read matrix from input. More...
 
JWriteroperator<< (JWriter &out, const JMatrix3D &matrix)
 Write matrix to output. More...
 
std::ostream & operator<< (std::ostream &out, const JMatrix3D &A)
 Print ASCII formatted output. More...
 

Detailed Description

3 x 3 matrix

Definition at line 32 of file JMath/JMatrix3D.hh.

Constructor & Destructor Documentation

JMATH::JMatrix3D::JMatrix3D ( )
inline

Default constructor.

Definition at line 44 of file JMath/JMatrix3D.hh.

44  :
45  a00(0.0), a01(0.0), a02(0.0),
46  a10(0.0), a11(0.0), a12(0.0),
47  a20(0.0), a21(0.0), a22(0.0)
48  {}
JMATH::JMatrix3D::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 
)
inline

Contructor.

Parameters
__a00(0,0)
__a01(0,1)
__a02(0,2)
__a10(1,0)
__a11(1,1)
__a12(1,2)
__a20(2,0)
__a21(2,1)
__a22(2,2)

Definition at line 64 of file JMath/JMatrix3D.hh.

66  :
67  a00(__a00), a01(__a01), a02(__a02),
68  a10(__a10), a11(__a11), a12(__a12),
69  a20(__a20), a21(__a21), a22(__a22)
70  {}

Member Function Documentation

static const JMatrix3D& JMATH::JMatrix3D::getInstance ( )
inlinestatic

Get reference to unique instance of this class object.

Returns
zero matrix

Definition at line 78 of file JMath/JMatrix3D.hh.

79  {
80  static JMatrix3D matrix;
81 
82  return matrix;
83  }
3 x 3 matrix
JMatrix3D& JMATH::JMatrix3D::setIdentity ( )
inline

Set to identity matrix.

Returns
this matrix

Definition at line 91 of file JMath/JMatrix3D.hh.

92  {
93  a00 = 1.0; a01 = 0.0; a02 = 0.0;
94  a10 = 0.0; a11 = 1.0; a12 = 0.0;
95  a20 = 0.0; a21 = 0.0; a22 = 1.0;
96 
97  return *this;
98  }
static const JMatrix3D& JMATH::JMatrix3D::getIdentity ( )
inlinestatic

Get reference to unique instance of this class object.

Returns
identity matrix

Definition at line 106 of file JMath/JMatrix3D.hh.

107  {
108  static JMatrix3D matrix(JMatrix3D().setIdentity());
109 
110  return matrix;
111  }
JMatrix3D()
Default constructor.
3 x 3 matrix
JMatrix3D & setIdentity()
Set to identity matrix.
void JMATH::JMatrix3D::set ( const JMatrix3D A)
inline

Set matrix.

Parameters
Amatrix

Definition at line 119 of file JMath/JMatrix3D.hh.

120  {
121  static_cast<JMatrix3D&>(*this) = A;
122  }
3 x 3 matrix
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
JMatrix3D& JMATH::JMatrix3D::reset ( )
inline

Set matrix to the null matrix.

Returns
this matrix

Definition at line 130 of file JMath/JMatrix3D.hh.

131  {
132  *this = JMatrix3D();
133 
134  return *this;
135  }
JMatrix3D()
Default constructor.
JMatrix3D& JMATH::JMatrix3D::transpose ( )
inline

Transpose.

Returns
this matrix

Definition at line 143 of file JMath/JMatrix3D.hh.

144  {
145  using std::swap;
146 
147  swap(a10, a01);
148  swap(a20, a02);
149  swap(a21, a12);
150 
151  return *this;
152  }
JMatrix3D& JMATH::JMatrix3D::negate ( )
inline

Negate matrix.

Returns
-this matrix

Definition at line 160 of file JMath/JMatrix3D.hh.

161  {
162  a00 = -a00; a01 = -a01; a02 = -a02;
163  a10 = -a10; a11 = -a11; a12 = -a12;
164  a20 = -a20; a21 = -a21; a22 = -a22;
165 
166  return *this;
167  }
JMatrix3D& JMATH::JMatrix3D::add ( const JMatrix3D A)
inline

Matrix addition.

Parameters
Amatrix
Returns
this matrix + A

Definition at line 176 of file JMath/JMatrix3D.hh.

177  {
178  a00 += A.a00; a01 += A.a01; a02 += A.a02;
179  a10 += A.a10; a11 += A.a11; a12 += A.a12;
180  a20 += A.a20; a21 += A.a21; a22 += A.a22;
181 
182  return *this;
183  }
JMatrix3D& JMATH::JMatrix3D::sub ( const JMatrix3D A)
inline

Matrix subtraction.

Parameters
Amatrix
Returns
this matrix - A

Definition at line 192 of file JMath/JMatrix3D.hh.

193  {
194  a00 -= A.a00; a01 -= A.a01; a02 -= A.a02;
195  a10 -= A.a10; a11 -= A.a11; a12 -= A.a12;
196  a20 -= A.a20; a21 -= A.a21; a22 -= A.a22;
197 
198  return *this;
199  }
JMatrix3D& JMATH::JMatrix3D::mul ( const double  factor)
inline

Scale matrix.

Parameters
factorfactor
Returns
this matrix * factor

Definition at line 208 of file JMath/JMatrix3D.hh.

209  {
210  a00 *= factor; a01 *= factor; a02 *= factor;
211  a10 *= factor; a11 *= factor; a12 *= factor;
212  a20 *= factor; a21 *= factor; a22 *= factor;
213 
214  return *this;
215  }
JMatrix3D& JMATH::JMatrix3D::div ( const double  factor)
inline

Scale matrix.

Parameters
factorfactor
Returns
this matrix / factor

Definition at line 224 of file JMath/JMatrix3D.hh.

225  {
226  a00 /= factor; a01 /= factor; a02 /= factor;
227  a10 /= factor; a11 /= factor; a12 /= factor;
228  a20 /= factor; a21 /= factor; a22 /= factor;
229 
230  return *this;
231  }
JMatrix3D& JMATH::JMatrix3D::mul ( const JMatrix3D A,
const JMatrix3D B 
)
inline

Matrix multiplication.

Parameters
Amatrix
Bmatrix
Returns
this matrix

Definition at line 241 of file JMath/JMatrix3D.hh.

243  {
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;
247 
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;
251 
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;
255 
256  return *this;
257  }
bool JMATH::JMatrix3D::equals ( const JMatrix3D A,
const double  eps = std::numeric_limits<double>::min() 
) const
inline

Equality.

Parameters
Amatrix
epsnumerical precision
Returns
true if matrices identical; else false

Definition at line 267 of file JMath/JMatrix3D.hh.

269  {
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);
279  }
bool JMATH::JMatrix3D::isIdentity ( const double  eps = std::numeric_limits<double>::min()) const
inline

Test identity.

Parameters
epsnumerical precision
Returns
true if identity matrix; else false

Definition at line 288 of file JMath/JMatrix3D.hh.

289  {
290  return equals(getIdentity(), eps);
291  }
static const JMatrix3D & getIdentity()
Get reference to unique instance of this class object.
bool equals(const JMatrix3D &A, const double eps=std::numeric_limits< double >::min()) const
Equality.
double JMATH::JMatrix3D::getDeterminant ( ) const
inline

Get determinant of matrix.

Returns
determinant of matrix

Definition at line 299 of file JMath/JMatrix3D.hh.

300  {
301  double det = 0.0;
302 
303  det += a00 * (a11 * a22 - a21 * a12);
304  det -= a01 * (a10 * a22 - a20 * a12);
305  det += a02 * (a10 * a21 - a20 * a11);
306 
307  return det;
308  }
void JMATH::JMatrix3D::transform ( double &  __x,
double &  __y,
double &  __z 
) const
inline

Transform.

Parameters
__xx value
__yy value
__zz value

Definition at line 318 of file JMath/JMatrix3D.hh.

319  {
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;
323 
324  __x = x;
325  __y = y;
326  __z = z;
327  }
JMatrix3D & JMATH::JMath< JMatrix3D , JNullType >::mul ( const JNullType object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 357 of file JMath.hh.

358  {
359  return static_cast<JFirst_t&>(*this) = JCalculator<JFirst_t>::calculator.mul(static_cast<const JFirst_t&>(*this), object);
360  }
Auxiliary class for arithmetic operations on objects.
Definition: JCalculator.hh:18

Friends And Related Function Documentation

JReader& operator>> ( JReader in,
JMatrix3D matrix 
)
friend

Read matrix from input.

Parameters
inreader
matrixmatrix
Returns
reader

Definition at line 337 of file JMath/JMatrix3D.hh.

338  {
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;
342 
343  return in;
344  }
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:46
JWriter& operator<< ( JWriter out,
const JMatrix3D matrix 
)
friend

Write matrix to output.

Parameters
outwriter
matrixmatrix
Returns
writer

Definition at line 354 of file JMath/JMatrix3D.hh.

355  {
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;
359 
360  return out;
361  }
std::ostream& operator<< ( std::ostream &  out,
const JMatrix3D A 
)
friend

Print ASCII formatted output.

Parameters
outoutput stream
Amatrix
Returns
output stream

Definition at line 371 of file JMath/JMatrix3D.hh.

372  {
373  using namespace std;
374 
375  const JFormat format(out, getFormat<JMatrix3D>(JFormat_t(10, 3, std::ios::fixed | std::ios::showpos)));
376 
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;
380 
381  return out;
382  }
Auxiliary class to temporarily define format specifications.
Definition: JManip.hh:632
Data structure for format specifications.
Definition: JManip.hh:522

Member Data Documentation

double JMATH::JMatrix3D::a00

Definition at line 385 of file JMath/JMatrix3D.hh.

double JMATH::JMatrix3D::a01

Definition at line 385 of file JMath/JMatrix3D.hh.

double JMATH::JMatrix3D::a02

Definition at line 385 of file JMath/JMatrix3D.hh.

double JMATH::JMatrix3D::a10

Definition at line 386 of file JMath/JMatrix3D.hh.

double JMATH::JMatrix3D::a11

Definition at line 386 of file JMath/JMatrix3D.hh.

double JMATH::JMatrix3D::a12

Definition at line 386 of file JMath/JMatrix3D.hh.

double JMATH::JMatrix3D::a20

Definition at line 387 of file JMath/JMatrix3D.hh.

double JMATH::JMatrix3D::a21

Definition at line 387 of file JMath/JMatrix3D.hh.

double JMATH::JMatrix3D::a22

Definition at line 387 of file JMath/JMatrix3D.hh.


The documentation for this class was generated from the following file: