Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JMathTestkit.hh
Go to the documentation of this file.
1#ifndef __JMATHTESTKIT__
2#define __JMATHTESTKIT__
3
4#include "TRandom3.h"
5
6#include "JMath/JMatrix1D.hh"
7#include "JMath/JMatrix2D.hh"
8#include "JMath/JMatrix3D.hh"
9#include "JMath/JMatrix4D.hh"
10#include "JMath/JMatrix5D.hh"
11#include "JMath/JMatrix1S.hh"
12#include "JMath/JMatrix2S.hh"
13#include "JMath/JMatrix3S.hh"
14#include "JMath/JMatrix4S.hh"
15#include "JMath/JMatrix5S.hh"
16#include "JMath/JRandom.hh"
17
18/**
19 * \author mdejong
20 */
21
22namespace JMATH {}
23namespace JPP { using namespace JMATH; }
24
25namespace JMATH {
26
27
28 /**
29 * Randomize matrix.
30 *
31 * \param p pointer to valid object
32 */
33 inline void randomize(JMatrix1D* p)
34 {
35 new (p) JMatrix1D(getRandom<double>(-1.0, +1.0));
36 }
37
38
39 /**
40 * Randomize matrix.
41 *
42 * \param p pointer to valid object
43 */
44 inline void randomize(JMatrix2D* p)
45 {
46 new (p) JMatrix2D(getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
47 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0));
48 }
49
50
51 /**
52 * Randomize matrix.
53 *
54 * \param p pointer to valid object
55 */
56 inline void randomize(JMatrix3D* p)
57 {
58 new (p) JMatrix3D(getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
59 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
60 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0));
61 }
62
63
64 /**
65 * Randomize matrix.
66 *
67 * \param p pointer to valid object
68 */
69 inline void randomize(JMatrix4D* p)
70 {
71 new (p) JMatrix4D(getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
72 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
73 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
74 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0));
75 }
76
77
78 /**
79 * Randomize matrix.
80 *
81 * \param p pointer to valid object
82 */
83 inline void randomize(JMatrix5D* p)
84 {
85 new (p) JMatrix5D(getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
86 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
87 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
88 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
89 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0));
90 }
91
92
93 /**
94 * Randomize matrix.
95 *
96 * \param p pointer to valid object
97 */
98 inline void randomize(JMatrix1S* p)
99 {
100 new (p) JMatrix1S(getRandom<double>(-1.0, +1.0));
101 }
102
103
104 /**
105 * Randomize matrix.
106 *
107 * \param p pointer to valid object
108 */
109 inline void randomize(JMatrix2S* p)
110 {
111 new (p) JMatrix2S(getRandom<double>(-1.0,+1.0),
112 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0));
113
114 p->a01 = p->a10;
115 }
116
117
118 /**
119 * Randomize matrix.
120 *
121 * \param p pointer to valid object
122 */
123 inline void randomize(JMatrix3S* p)
124 {
125 new (p) JMatrix3S(getRandom<double>(-1.0,+1.0),
126 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
127 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0));
128
129 p->a01 = p->a10;
130 p->a02 = p->a20;
131 p->a12 = p->a21;
132 }
133
134
135 /**
136 * Randomize matrix.
137 *
138 * \param p pointer to valid object
139 */
140 inline void randomize(JMatrix4S* p)
141 {
142 new (p) JMatrix4S(getRandom<double>(-1.0,+1.0),
143 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
144 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
145 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0));
146
147 p->a01 = p->a10;
148 p->a02 = p->a20;
149 p->a03 = p->a30;
150 p->a12 = p->a21;
151 p->a13 = p->a31;
152 p->a23 = p->a32;
153 }
154
155
156 /**
157 * Randomize matrix.
158 *
159 * \param p pointer to valid object
160 */
161 inline void randomize(JMatrix5S* p)
162 {
163 new (p) JMatrix5S(getRandom<double>(-1.0,+1.0),
164 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
165 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
166 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0),
167 getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0), getRandom<double>(-1.0,+1.0));
168
169 p->a01 = p->a10;
170 p->a02 = p->a20;
171 p->a03 = p->a30;
172 p->a04 = p->a40;
173 p->a12 = p->a21;
174 p->a13 = p->a31;
175 p->a14 = p->a41;
176 p->a23 = p->a32;
177 p->a24 = p->a42;
178 p->a34 = p->a43;
179 }
180}
181
182#endif
Definition of random value generator.
1 x 1 matrix
Definition JMatrix1D.hh:35
1 x 1 symmetric matrix
Definition JMatrix1S.hh:28
2 x 2 symmetric matrix
Definition JMatrix2S.hh:28
3 x 3 symmetric matrix
Definition JMatrix3S.hh:31
4 x 4 matrix
Definition JMatrix4D.hh:36
4 x 4 symmetric matrix
Definition JMatrix4S.hh:28
5 x 5 matrix
Definition JMatrix5D.hh:36
5 x 5 symmetric matrix
Definition JMatrix5S.hh:28
Auxiliary classes and methods for mathematical operations.
Definition JEigen3D.hh:88
void randomize(JMatrix1D *p)
Randomize matrix.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).