Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
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
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
20namespace JMATH {}
21namespace JPP { using namespace JMATH; }
22
23namespace 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
39 using JMath<JMatrix5D>::mul;
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,
383
384 det -= a01 * JMatrix4D(a10, a12, a13, a14,
385 a20, a22, a23, a24,
386 a30, a32, a33, a34,
388
389 det += a02 * JMatrix4D(a10, a11, a13, a14,
390 a20, a21, a23, a24,
391 a30, a31, a33, a34,
393
394 det -= a03 * JMatrix4D(a10, a11, a12, a14,
395 a20, a21, a22, a24,
396 a30, a31, a32, a34,
398
399 det += a04 * JMatrix4D(a10, a11, a12, a13,
400 a20, a21, a22, a23,
401 a30, a31, a32, a33,
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
I/O manipulators.
JFormat_t & getFormat()
Get format for given type.
Definition JManip.hh:682
Base class for data structures with artithmetic capabilities.
Interface for binary input.
Interface for binary output.
4 x 4 matrix
Definition JMatrix4D.hh:36
double getDeterminant() const
Get determinant of matrix.
Definition JMatrix4D.hh:334
5 x 5 matrix
Definition JMatrix5D.hh:36
double & operator()(int row, int col)
Get matrix element.
Definition JMatrix5D.hh:514
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
JMatrix5D & add(const JMatrix5D &A)
Matrix addition.
Definition JMatrix5D.hh:210
double getDeterminant() const
Get determinant of matrix.
Definition JMatrix5D.hh:375
static const int NUMBER_OF_DIMENSIONS
Definition JMatrix5D.hh:520
static const JMatrix5D & getInstance()
Get reference to unique instance of this class object.
Definition JMatrix5D.hh:101
JMatrix5D & div(const double factor)
Scale matrix.
Definition JMatrix5D.hh:264
friend std::ostream & operator<<(std::ostream &out, const JMatrix5D &A)
Print ASCII formatted output.
Definition JMatrix5D.hh:478
bool equals(const JMatrix5D &A, const double eps=std::numeric_limits< double >::min()) const
Equality.
Definition JMatrix5D.hh:327
void set(const JMatrix5D &A)
Set matrix.
Definition JMatrix5D.hh:144
double operator()(int row, int col) const
Get matrix element.
Definition JMatrix5D.hh:501
JMatrix5D & setIdentity()
Set to identity matrix.
Definition JMatrix5D.hh:114
JMatrix5D & negate()
Negate matrix.
Definition JMatrix5D.hh:192
JMatrix5D & mul(const double factor)
Scale matrix.
Definition JMatrix5D.hh:246
void transform(double &__x0, double &__x1, double &__x2, double &__x3, double &__x4) const
Transform.
Definition JMatrix5D.hh:417
JMatrix5D & reset()
Set matrix to the null matrix.
Definition JMatrix5D.hh:155
JMatrix5D()
Default constructor.
Definition JMatrix5D.hh:45
JMatrix5D & transpose()
Transpose.
Definition JMatrix5D.hh:168
friend JReader & operator>>(JReader &in, JMatrix5D &matrix)
Read matrix from input.
Definition JMatrix5D.hh:440
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
bool isIdentity(const double eps=std::numeric_limits< double >::min()) const
Test identity.
Definition JMatrix5D.hh:364
const JMatrix5D & mul(const JMatrix5D &A, const JMatrix5D &B)
Matrix multiplication.
Definition JMatrix5D.hh:283
JMatrix5D & sub(const JMatrix5D &A)
Matrix subtraction.
Definition JMatrix5D.hh:228
Auxiliary classes and methods for mathematical operations.
Definition JEigen3D.hh:88
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Data structure for format specifications.
Definition JManip.hh:524
Auxiliary class to temporarily define format specifications.
Definition JManip.hh:636
Template definition of auxiliary base class for comparison of data structures.
Definition JEquals.hh:84
Auxiliary base class for aritmetic operations of derived class types.
Definition JMath.hh:347