Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
JMATH::JMatrix2D Class Reference

2 x 2 matrix More...

#include <JMatrix2D.hh>

Inheritance diagram for JMATH::JMatrix2D:
JMATH::JMath< JMatrix2D > JLANG::JEquals< JFirst_t, JSecond_t > JGEOMETRY2D::JRotation2D JMATH::JMatrix2S JGEOMETRY3D::JRotation3X JGEOMETRY3D::JRotation3Y JGEOMETRY3D::JRotation3Z

Public Member Functions

 JMatrix2D ()
 Default constructor.
 
 JMatrix2D (const double __a00, const double __a01, const double __a10, const double __a11)
 Contructor.
 
JMatrix2DsetIdentity ()
 Set to identity matrix.
 
void set (const JMatrix2D &A)
 Set matrix.
 
JMatrix2Dreset ()
 Set matrix to the null matrix.
 
JMatrix2Dtranspose ()
 Transpose.
 
JMatrix2Dnegate ()
 Negate matrix.
 
JMatrix2Dadd (const JMatrix2D &A)
 Matrix addition.
 
JMatrix2Dsub (const JMatrix2D &A)
 Matrix subtraction.
 
JMatrix2Dmul (const double factor)
 Scale matrix.
 
JMatrix2Ddiv (const double factor)
 Scale matrix.
 
JMatrix2Dmul (const JMatrix2D &A, const JMatrix2D &B)
 Matrix multiplication.
 
bool equals (const JMatrix2D &A, const double eps=std::numeric_limits< double >::min()) const
 Equality.
 
bool isIdentity (const double eps=std::numeric_limits< double >::min()) const
 Test identity.
 
double getDeterminant () const
 Get determinant of matrix.
 
void transform (double &__x, double &__y) const
 Transform.
 
JMatrix2Dmul (const JSecond_t &object)
 Multiply with object.
 

Static Public Member Functions

static const JMatrix2DgetInstance ()
 Get reference to unique instance of this class object.
 
static const JMatrix2DgetIdentity ()
 Get reference to unique instance of this class object.
 

Public Attributes

double a00
 
double a01
 
double a10
 
double a11
 

Friends

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

Detailed Description

2 x 2 matrix

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

Constructor & Destructor Documentation

◆ JMatrix2D() [1/2]

JMATH::JMatrix2D::JMatrix2D ( )
inline

Default constructor.

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

44 :
45 a00(0.0), a01(0.0),
46 a10(0.0), a11(0.0)
47 {}

◆ JMatrix2D() [2/2]

JMATH::JMatrix2D::JMatrix2D ( const double __a00,
const double __a01,
const double __a10,
const double __a11 )
inline

Contructor.

Parameters
__a00(0,0)
__a01(0,1)
__a10(1,0)
__a11(1,1)

Definition at line 58 of file JMath/JMatrix2D.hh.

59 :
60 a00(__a00), a01(__a01),
61 a10(__a10), a11(__a11)
62 {}

Member Function Documentation

◆ getInstance()

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

Get reference to unique instance of this class object.

Returns
zero matrix

Definition at line 70 of file JMath/JMatrix2D.hh.

71 {
72 static JMatrix2D matrix;
73
74 return matrix;
75 }
JMatrix2D()
Default constructor.

◆ setIdentity()

JMatrix2D & JMATH::JMatrix2D::setIdentity ( )
inline

Set to identity matrix.

Returns
this matrix

Definition at line 83 of file JMath/JMatrix2D.hh.

84 {
85 a00 = 1.0; a01 = 0.0;
86 a10 = 0.0; a11 = 1.0;
87
88 return *this;
89 }

◆ getIdentity()

static const JMatrix2D & JMATH::JMatrix2D::getIdentity ( )
inlinestatic

Get reference to unique instance of this class object.

Returns
identity matrix

Definition at line 97 of file JMath/JMatrix2D.hh.

98 {
99 static JMatrix2D matrix(JMatrix2D().setIdentity());
100
101 return matrix;
102 }
JMatrix2D & setIdentity()
Set to identity matrix.

◆ set()

void JMATH::JMatrix2D::set ( const JMatrix2D & A)
inline

Set matrix.

Parameters
Amatrix

Definition at line 110 of file JMath/JMatrix2D.hh.

111 {
112 static_cast<JMatrix2D&>(*this) = A;
113 }

◆ reset()

JMatrix2D & JMATH::JMatrix2D::reset ( )
inline

Set matrix to the null matrix.

Returns
this matrix

Definition at line 121 of file JMath/JMatrix2D.hh.

122 {
123 *this = JMatrix2D();
124
125 return *this;
126 }

◆ transpose()

JMatrix2D & JMATH::JMatrix2D::transpose ( )
inline

Transpose.

Returns
this matrix

Definition at line 134 of file JMath/JMatrix2D.hh.

135 {
136 using std::swap;
137
138 swap(a10, a01);
139
140 return *this;
141 }

◆ negate()

JMatrix2D & JMATH::JMatrix2D::negate ( )
inline

Negate matrix.

Returns
-this matrix

Definition at line 149 of file JMath/JMatrix2D.hh.

150 {
151 a00 = -a00; a01 = -a01;
152 a10 = -a10; a11 = -a11;
153
154 return *this;
155 }

◆ add()

JMatrix2D & JMATH::JMatrix2D::add ( const JMatrix2D & A)
inline

Matrix addition.

Parameters
Amatrix
Returns
this matrix + A

Definition at line 164 of file JMath/JMatrix2D.hh.

165 {
166 a00 += A.a00; a01 += A.a01;
167 a10 += A.a10; a11 += A.a11;
168
169 return *this;
170 }

◆ sub()

JMatrix2D & JMATH::JMatrix2D::sub ( const JMatrix2D & A)
inline

Matrix subtraction.

Parameters
Amatrix
Returns
this matrix - A

Definition at line 179 of file JMath/JMatrix2D.hh.

180 {
181 a00 -= A.a00; a01 -= A.a01;
182 a10 -= A.a10; a11 -= A.a11;
183
184 return *this;
185 }

◆ mul() [1/3]

JMatrix2D & JMATH::JMatrix2D::mul ( const double factor)
inline

Scale matrix.

Parameters
factorfactor
Returns
this matrix * factor

Definition at line 194 of file JMath/JMatrix2D.hh.

195 {
196 a00 *= factor; a01 *= factor;
197 a10 *= factor; a11 *= factor;
198
199 return *this;
200 }

◆ div()

JMatrix2D & JMATH::JMatrix2D::div ( const double factor)
inline

Scale matrix.

Parameters
factorfactor
Returns
this matrix / factor

Definition at line 209 of file JMath/JMatrix2D.hh.

210 {
211 a00 /= factor; a01 /= factor;
212 a10 /= factor; a11 /= factor;
213
214 return *this;
215 }

◆ mul() [2/3]

JMatrix2D & JMATH::JMatrix2D::mul ( const JMatrix2D & A,
const JMatrix2D & B )
inline

Matrix multiplication.

Parameters
Amatrix
Bmatrix
Returns
this matrix

Definition at line 225 of file JMath/JMatrix2D.hh.

227 {
228 a00 = A.a00 * B.a00 + A.a01 * B.a10;
229 a01 = A.a00 * B.a01 + A.a01 * B.a11;
230
231 a10 = A.a10 * B.a00 + A.a11 * B.a10;
232 a11 = A.a10 * B.a01 + A.a11 * B.a11;
233
234 return *this;
235 }

◆ equals()

bool JMATH::JMatrix2D::equals ( const JMatrix2D & 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 245 of file JMath/JMatrix2D.hh.

247 {
248 return (fabs(a00 - A.a00) <= eps &&
249 fabs(a01 - A.a01) <= eps &&
250 fabs(a10 - A.a10) <= eps &&
251 fabs(a11 - A.a11) <= eps);
252 }

◆ isIdentity()

bool JMATH::JMatrix2D::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 261 of file JMath/JMatrix2D.hh.

262 {
263 return equals(getIdentity(), eps);
264 }
static const JMatrix2D & getIdentity()
Get reference to unique instance of this class object.
bool equals(const JMatrix2D &A, const double eps=std::numeric_limits< double >::min()) const
Equality.

◆ getDeterminant()

double JMATH::JMatrix2D::getDeterminant ( ) const
inline

Get determinant of matrix.

Returns
determinant of matrix

Definition at line 272 of file JMath/JMatrix2D.hh.

273 {
274 return a00 * a11 - a01 * a10;
275 }

◆ transform()

void JMATH::JMatrix2D::transform ( double & __x,
double & __y ) const
inline

Transform.

Parameters
__xx value
__yy value

Definition at line 284 of file JMath/JMatrix2D.hh.

285 {
286 const double x = a00 * __x + a01 * __y;
287 const double y = a10 * __x + a11 * __y;
288
289 __x = x;
290 __y = y;
291 }

◆ mul() [3/3]

JMatrix2D & JMATH::JMath< JMatrix2D, JSecond_t >::mul ( const JSecond_t & object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 354 of file JMath.hh.

355 {
356 return static_cast<JFirst_t&>(*this) = JFirst_t().mul(static_cast<const JFirst_t&>(*this), object);
357 }

Friends And Related Symbol Documentation

◆ operator>>

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

Read matrix from input.

Parameters
inreader
matrixmatrix
Returns
reader

Definition at line 301 of file JMath/JMatrix2D.hh.

302 {
303 in >> matrix.a00; in >> matrix.a01;
304 in >> matrix.a10; in >> matrix.a11;
305
306 return in;
307 }

◆ operator<< [1/2]

JWriter & operator<< ( JWriter & out,
const JMatrix2D & matrix )
friend

Write matrix to output.

Parameters
outwriter
matrixmatrix
Returns
writer

Definition at line 317 of file JMath/JMatrix2D.hh.

318 {
319 out << matrix.a00; out << matrix.a01;
320 out << matrix.a10; out << matrix.a11;
321
322 return out;
323 }

◆ operator<< [2/2]

std::ostream & operator<< ( std::ostream & out,
const JMatrix2D & A )
friend

Print ASCII formatted output.

Parameters
outoutput stream
Amatrix
Returns
output stream

Definition at line 333 of file JMath/JMatrix2D.hh.

334 {
335 using namespace std;
336
337 const JFormat format(out, getFormat<JMatrix2D>(JFormat_t(10, 3, std::ios::fixed | std::ios::showpos)));
338
339 out << format << A.a00 << ' ' << format << A.a01 << endl;
340 out << format << A.a10 << ' ' << format << A.a11 << endl;
341
342 return out;
343 }
JFormat_t & getFormat()
Get format for given type.
Definition JManip.hh:682
Data structure for format specifications.
Definition JManip.hh:524
Auxiliary class to temporarily define format specifications.
Definition JManip.hh:636

Member Data Documentation

◆ a00

double JMATH::JMatrix2D::a00

Definition at line 346 of file JMath/JMatrix2D.hh.

◆ a01

double JMATH::JMatrix2D::a01

Definition at line 346 of file JMath/JMatrix2D.hh.

◆ a10

double JMATH::JMatrix2D::a10

Definition at line 347 of file JMath/JMatrix2D.hh.

◆ a11

double JMATH::JMatrix2D::a11

Definition at line 347 of file JMath/JMatrix2D.hh.


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