Jpp  15.0.1-rc.1-highqe
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JMatrix5D.hh
Go to the documentation of this file.
1 #ifndef __JMATRIX5D__
2 #define __JMATRIX5D__
3 
4 #include <limits>
5 #include <cmath>
6 #include <ostream>
7 #include <iomanip>
8 
9 #include "JIO/JSerialisable.hh"
10 #include "JLang/JEquals.hh"
11 #include "JLang/JManip.hh"
12 #include "JMath/JMath.hh"
13 #include "JMath/JMatrix4D.hh"
14 
15 
16 /**
17  * \author mdejong
18  */
19 
20 namespace JMATH {}
21 namespace JPP { using namespace JMATH; }
22 
23 namespace JMATH {
24 
25  using JIO::JReader;
26  using JIO::JWriter;
27  using JLANG::JEquals;
28 
29 
30  /**
31  * 5 x 5 matrix
32  */
33  class JMatrix5D :
34  public JMath <JMatrix5D>,
35  public JEquals<JMatrix5D>
36  {
37  public:
38 
40 
41 
42  /**
43  * Default constructor.
44  */
46  a00(0.0), a01(0.0), a02(0.0), a03(0.0), a04(0.0),
47  a10(0.0), a11(0.0), a12(0.0), a13(0.0), a14(0.0),
48  a20(0.0), a21(0.0), a22(0.0), a23(0.0), a24(0.0),
49  a30(0.0), a31(0.0), a32(0.0), a33(0.0), a34(0.0),
50  a40(0.0), a41(0.0), a42(0.0), a43(0.0), a44(0.0)
51  {}
52 
53 
54  /**
55  * Contructor.
56  *
57  * \param __a00 (0,0)
58  * \param __a01 (0,1)
59  * \param __a02 (0,2)
60  * \param __a03 (0,3)
61  * \param __a04 (0,4)
62  * \param __a10 (1,0)
63  * \param __a11 (1,1)
64  * \param __a12 (1,2)
65  * \param __a13 (1,3)
66  * \param __a14 (1,4)
67  * \param __a20 (2,0)
68  * \param __a21 (2,1)
69  * \param __a22 (2,2)
70  * \param __a23 (2,3)
71  * \param __a24 (2,4)
72  * \param __a30 (3,0)
73  * \param __a31 (3,1)
74  * \param __a32 (3,2)
75  * \param __a33 (3,3)
76  * \param __a34 (3,4)
77  * \param __a40 (4,0)
78  * \param __a41 (4,1)
79  * \param __a42 (4,2)
80  * \param __a43 (4,3)
81  * \param __a44 (4,4)
82  */
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) :
88  a00(__a00), a01(__a01), a02(__a02), a03(__a03), a04(__a04),
89  a10(__a10), a11(__a11), a12(__a12), a13(__a13), a14(__a14),
90  a20(__a20), a21(__a21), a22(__a22), a23(__a23), a24(__a24),
91  a30(__a30), a31(__a31), a32(__a32), a33(__a33), a34(__a34),
92  a40(__a40), a41(__a41), a42(__a42), a43(__a43), a44(__a44)
93  {}
94 
95 
96  /**
97  * Get reference to unique instance of this class object.
98  *
99  * \return zero matrix
100  */
101  static const JMatrix5D& getInstance()
102  {
103  static JMatrix5D matrix;
104 
105  return matrix;
106  }
107 
108 
109  /**
110  * Set to identity matrix
111  *
112  * \return this matrix
113  */
115  {
116  a00 = 1.0; a01 = 0.0; a02 = 0.0; a03 = 0.0; a04 = 0.0;
117  a10 = 0.0; a11 = 1.0; a12 = 0.0; a13 = 0.0; a14 = 0.0;
118  a20 = 0.0; a21 = 0.0; a22 = 1.0; a23 = 0.0; a24 = 0.0;
119  a30 = 0.0; a31 = 0.0; a32 = 0.0; a33 = 1.0; a34 = 0.0;
120  a40 = 0.0; a41 = 0.0; a42 = 0.0; a43 = 0.0; a44 = 1.0;
121 
122  return *this;
123  }
124 
125 
126  /**
127  * Get reference to unique instance of this class object.
128  *
129  * \return identity matrix
130  */
131  static const JMatrix5D& getIdentity()
132  {
133  static JMatrix5D matrix(JMatrix5D().setIdentity());
134 
135  return matrix;
136  }
137 
138 
139  /**
140  * Set matrix.
141  *
142  * \param A matrix
143  */
144  void set(const JMatrix5D& A)
145  {
146  static_cast<JMatrix5D&>(*this) = A;
147  }
148 
149 
150  /**
151  * Set matrix to the null matrix.
152  *
153  * \return this matrix
154  */
156  {
157  *this = JMatrix5D();
158 
159  return *this;
160  }
161 
162 
163  /**
164  * Transpose.
165  *
166  * \return this matrix
167  */
169  {
170  using std::swap;
171 
172  swap(a10, a01);
173  swap(a20, a02);
174  swap(a21, a12);
175  swap(a30, a03);
176  swap(a31, a13);
177  swap(a32, a23);
178  swap(a40, a04);
179  swap(a41, a14);
180  swap(a42, a24);
181  swap(a43, a34);
182 
183  return *this;
184  }
185 
186 
187  /**
188  * Negate matrix.
189  *
190  * \return -this matrix
191  */
193  {
194  a00 = -a00; a01 = -a01; a02 = -a02; a03 = -a03; a04 = -a04;
195  a10 = -a10; a11 = -a11; a12 = -a12; a13 = -a13; a14 = -a14;
196  a20 = -a20; a21 = -a21; a22 = -a22; a13 = -a23; a14 = -a24;
197  a30 = -a30; a31 = -a31; a32 = -a32; a33 = -a33; a34 = -a34;
198  a40 = -a40; a41 = -a41; a42 = -a42; a43 = -a43; a44 = -a44;
199 
200  return *this;
201  }
202 
203 
204  /**
205  * Matrix addition.
206  *
207  * \param A matrix
208  * \return this matrix + A
209  */
211  {
212  a00 += A.a00; a01 += A.a01; a02 += A.a02; a03 += A.a03; a04 += A.a04;
213  a10 += A.a10; a11 += A.a11; a12 += A.a12; a13 += A.a13; a14 += A.a14;
214  a20 += A.a20; a21 += A.a21; a22 += A.a22; a23 += A.a23; a24 += A.a24;
215  a30 += A.a30; a31 += A.a31; a32 += A.a32; a33 += A.a33; a34 += A.a34;
216  a40 += A.a40; a41 += A.a41; a42 += A.a42; a43 += A.a43; a44 += A.a44;
217 
218  return *this;
219  }
220 
221 
222  /**
223  * Matrix subtraction.
224  *
225  * \param A matrix
226  * \return this matrix - A
227  */
229  {
230  a00 -= A.a00; a01 -= A.a01; a02 -= A.a02; a03 -= A.a03; a04 -= A.a04;
231  a10 -= A.a10; a11 -= A.a11; a12 -= A.a12; a13 -= A.a13; a14 -= A.a14;
232  a20 -= A.a20; a21 -= A.a21; a22 -= A.a22; a23 -= A.a23; a24 -= A.a24;
233  a30 -= A.a30; a31 -= A.a31; a32 -= A.a32; a33 -= A.a33; a34 -= A.a34;
234  a40 -= A.a40; a41 -= A.a41; a42 -= A.a42; a43 -= A.a43; a44 -= A.a44;
235 
236  return *this;
237  }
238 
239 
240  /**
241  * Scale matrix.
242  *
243  * \param factor factor
244  * \return this matrix * factor
245  */
246  JMatrix5D& mul(const double factor)
247  {
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;
253 
254  return *this;
255  }
256 
257 
258  /**
259  * Scale matrix.
260  *
261  * \param factor factor
262  * \return this matrix / factor
263  */
264  JMatrix5D& div(const double factor)
265  {
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;
271 
272  return *this;
273  }
274 
275 
276  /**
277  * Matrix multiplication.
278  *
279  * \param A matrix
280  * \param B matrix
281  * \return this matrix
282  */
283  const JMatrix5D& mul(const JMatrix5D& A,
284  const JMatrix5D& B)
285  {
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;
291 
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;
297 
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;
303 
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;
309 
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;
315 
316  return *this;
317  }
318 
319 
320  /**
321  * Equality.
322  *
323  * \param A matrix
324  * \param eps numerical precision
325  * \return true if matrices identical; else false
326  */
327  bool equals(const JMatrix5D& A,
328  const double eps = std::numeric_limits<double>::min()) const
329  {
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);
355  }
356 
357 
358  /**
359  * Test identity.
360  *
361  * \param eps numerical precision
362  * \return true if identity matrix; else false
363  */
364  bool isIdentity(const double eps = std::numeric_limits<double>::min()) const
365  {
366  return equals(getIdentity(), eps);
367  }
368 
369 
370  /**
371  * Get determinant of matrix.
372  *
373  * \return determinant of matrix
374  */
375  double getDeterminant() const
376  {
377  double det = 0.0;
378 
379  det += a00 * JMatrix4D(a11, a12, a13, a14,
380  a21, a22, a23, a24,
381  a31, a32, a33, a34,
382  a41, a42, a43, a44).getDeterminant();
383 
384  det -= a01 * JMatrix4D(a10, a12, a13, a14,
385  a20, a22, a23, a24,
386  a30, a32, a33, a34,
387  a40, a42, a43, a44).getDeterminant();
388 
389  det += a02 * JMatrix4D(a10, a11, a13, a14,
390  a20, a21, a23, a24,
391  a30, a31, a33, a34,
392  a40, a41, a43, a44).getDeterminant();
393 
394  det -= a03 * JMatrix4D(a10, a11, a12, a14,
395  a20, a21, a22, a24,
396  a30, a31, a32, a34,
397  a40, a41, a42, a44).getDeterminant();
398 
399  det += a04 * JMatrix4D(a10, a11, a12, a13,
400  a20, a21, a22, a23,
401  a30, a31, a32, a33,
402  a40, a41, a42, a43).getDeterminant();
403 
404  return det;
405  }
406 
407 
408  /**
409  * Transform.
410  *
411  * \param __x0 x0 value
412  * \param __x1 x1 value
413  * \param __x2 x2 value
414  * \param __x3 x3 value
415  * \param __x4 x4 value
416  */
417  void transform(double& __x0, double& __x1, double& __x2, double& __x3, double& __x4) const
418  {
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;
424 
425  __x0 = x0;
426  __x1 = x1;
427  __x2 = x2;
428  __x3 = x3;
429  __x4 = x4;
430  }
431 
432 
433  /**
434  * Read matrix from input.
435  *
436  * \param in reader
437  * \param matrix matrix
438  * \return reader
439  */
440  friend inline JReader& operator>>(JReader& in, JMatrix5D& matrix)
441  {
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;
447 
448  return in;
449  }
450 
451 
452  /**
453  * Write matrix to output.
454  *
455  * \param out writer
456  * \param matrix matrix
457  * \return writer
458  */
459  friend inline JWriter& operator<<(JWriter& out, const JMatrix5D& matrix)
460  {
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;
466 
467  return out;
468  }
469 
470 
471  /**
472  * Print ASCII formatted output.
473  *
474  * \param out output stream
475  * \param A matrix
476  * \return output stream
477  */
478  friend inline std::ostream& operator<<(std::ostream& out, const JMatrix5D& A)
479  {
480  using namespace std;
481 
482  const JFormat format(out, getFormat<JMatrix4D>(JFormat_t(10, 3, std::ios::fixed | std::ios::showpos)));
483 
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;
489 
490  return out;
491  }
492 
493 
494  /**
495  * Get matrix element.
496  *
497  * \param row row number
498  * \param col column number
499  * \return matrix element at (row,col)
500  */
501  double operator()(int row, int col) const
502  {
503  return (&a00)[row * NUMBER_OF_DIMENSIONS + col];
504  }
505 
506 
507  /**
508  * Get matrix element.
509  *
510  * \param row row number
511  * \param col column number
512  * \return matrix element at (row,col)
513  */
514  double& operator()(int row, int col)
515  {
516  return (&a00)[row * NUMBER_OF_DIMENSIONS + col];
517  }
518 
519 
520  static const int NUMBER_OF_DIMENSIONS = 5;
521 
522  double a00, a01, a02, a03, a04;
523  double a10, a11, a12, a13, a14;
524  double a20, a21, a22, a23, a24;
525  double a30, a31, a32, a33, a34;
526  double a40, a41, a42, a43, a44;
527  };
528 }
529 
530 #endif
JMatrix5D & reset()
Set matrix to the null matrix.
Definition: JMatrix5D.hh:155
JMatrix5D & sub(const JMatrix5D &A)
Matrix subtraction.
Definition: JMatrix5D.hh:228
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.
Definition: JMatrix5D.hh:83
Interface for binary output.
Auxiliary base class for aritmetic operations of derived class types.
Definition: JMath.hh:110
4 x 4 matrix
Definition: JMatrix4D.hh:33
friend JReader & operator>>(JReader &in, JMatrix5D &matrix)
Read matrix from input.
Definition: JMatrix5D.hh:440
double operator()(int row, int col) const
Get matrix element.
Definition: JMatrix5D.hh:501
void set(const JMatrix5D &A)
Set matrix.
Definition: JMatrix5D.hh:144
Auxiliary class to temporarily define format specifications.
Definition: JManip.hh:632
double getDeterminant() const
Get determinant of matrix.
Definition: JMatrix5D.hh:375
bool isIdentity(const double eps=std::numeric_limits< double >::min()) const
Test identity.
Definition: JMatrix5D.hh:364
friend JWriter & operator<<(JWriter &out, const JMatrix5D &matrix)
Write matrix to output.
Definition: JMatrix5D.hh:459
static const JMatrix5D & getIdentity()
Get reference to unique instance of this class object.
Definition: JMatrix5D.hh:131
JMatrix5D & setIdentity()
Set to identity matrix.
Definition: JMatrix5D.hh:114
JMatrix5D & div(const double factor)
Scale matrix.
Definition: JMatrix5D.hh:264
Template definition of auxiliary base class for comparison of data structures.
Definition: JEquals.hh:24
double getDeterminant() const
Get determinant of matrix.
Definition: JMatrix4D.hh:334
JMatrix5D & transpose()
Transpose.
Definition: JMatrix5D.hh:168
double & operator()(int row, int col)
Get matrix element.
Definition: JMatrix5D.hh:514
Interface for binary input.
I/O manipulators.
5 x 5 matrix
Definition: JMatrix5D.hh:33
friend std::ostream & operator<<(std::ostream &out, const JMatrix5D &A)
Print ASCII formatted output.
Definition: JMatrix5D.hh:478
JMatrix5D & mul(const double factor)
Scale matrix.
Definition: JMatrix5D.hh:246
const JMatrix5D & mul(const JMatrix5D &A, const JMatrix5D &B)
Matrix multiplication.
Definition: JMatrix5D.hh:283
Base class for data structures with artithmetic capabilities.
bool equals(const JMatrix5D &A, const double eps=std::numeric_limits< double >::min()) const
Equality.
Definition: JMatrix5D.hh:327
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 source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:41
void transform(double &__x0, double &__x1, double &__x2, double &__x3, double &__x4) const
Transform.
Definition: JMatrix5D.hh:417
JMatrix5D & add(const JMatrix5D &A)
Matrix addition.
Definition: JMatrix5D.hh:210
static const JMatrix5D & getInstance()
Get reference to unique instance of this class object.
Definition: JMatrix5D.hh:101
Data structure for format specifications.
Definition: JManip.hh:522
JMatrix5D & negate()
Negate matrix.
Definition: JMatrix5D.hh:192
source $JPP_DIR setenv csh $JPP_DIR eval JShellParser o a A
static const int NUMBER_OF_DIMENSIONS
Definition: JMatrix5D.hh:520
JMatrix5D()
Default constructor.
Definition: JMatrix5D.hh:45