45 logger.assert_always(destroy.getNumberOfRows() == 3,
"Rows in a matrix");
46 logger.assert_always(destroy.getNCols() == 3,
"Columns in a matrix");
47 logger.assert_always(destroy.size() == 9,
"Size of a matrix");
48 for(std::size_t
i = 0;
i < destroy.size(); ++
i)
50 logger.assert_always(
std::abs(destroy[
i] - 1.) < 1
e-12,
"Entry of a matrix");
52 for(std::size_t
i = 0;
i < destroy.getNumberOfRows(); ++
i)
54 for(std::size_t
j = 0;
j < destroy.getNCols(); ++
j)
60 logger.assert_always(moved.getNumberOfRows() == 3,
"Rows in a matrix");
61 logger.assert_always(moved.getNCols() == 3,
"Columns in a matrix");
62 logger.assert_always(moved.size() == 9,
"Size of a matrix");
63 for(std::size_t
i = 0;
i < moved.size(); ++
i)
67 for(std::size_t
i = 0;
i < moved.getNumberOfRows(); ++
i)
69 for(std::size_t
j = 0;
j < moved.getNCols(); ++
j)
76 logger.assert_always(A0.
size() == 9,
"Size of a matrix");
79 logger.assert_always(A22.
size() == 4,
"Size of a matrix");
82 logger.assert_always(A23.
size() == 6,
"Size of a matrix");
85 logger.assert_always(A32.
size() == 6,
"Size of a matrix");
86 logger.assert_always(count0.getNumberOfRows() == 2,
"Rows in a matrix");
87 logger.assert_always(count0.getNCols() == 2,
"Columns in a matrix");
88 logger.assert_always(count0.size() == 4,
"Size of a matrix");
89 for(std::size_t
i = 0;
i < count0.size(); ++
i)
93 logger.assert_always(
std::abs(count0(0, 0) - 0.) < 1
e-12,
"Entry of a matrix");
94 logger.assert_always(
std::abs(count0(1, 0) - 1.) < 1
e-12,
"Entry of a matrix");
95 logger.assert_always(
std::abs(count0(0, 1) - 2.) < 1
e-12,
"Entry of a matrix");
96 logger.assert_always(
std::abs(count0(1, 1) - 3.) < 1
e-12,
"Entry of a matrix");
97 logger.assert_always(count1.getNumberOfRows() == 2,
"Rows in a matrix");
98 logger.assert_always(count1.getNCols() == 2,
"Columns in a matrix");
99 logger.assert_always(count1.size() == 4,
"Size of a matrix");
100 for(std::size_t
i = 0;
i < count1.size(); ++
i)
104 logger.assert_always(
copy.getNumberOfRows() == 2,
"Rows in a matrix");
105 logger.assert_always(
copy.getNCols() == 2,
"Columns in a matrix");
106 logger.assert_always(
copy.size() == 4,
"Size of a matrix");
107 for(std::size_t
i = 0;
i <
copy.size(); ++
i)
125 logger.assert_always(
std::abs((count0*count1)(0, 0) - 10.) < 1
e-12,
"multiply");
126 logger.assert_always(
std::abs((count0*count1)(1, 0) - 19.) < 1
e-12,
"multiply");
127 logger.assert_always(
std::abs((count0*count1)(0, 1) - 14.) < 1
e-12,
"multiply");
128 logger.assert_always(
std::abs((count0*count1)(1, 1) - 27.) < 1
e-12,
"multiply");
129 logger.assert_always(
std::abs((count1*count0)(0, 0) - 6.) < 1
e-12,
"multiply");
130 logger.assert_always(
std::abs((count1*count0)(1, 0) - 7.) < 1
e-12,
"multiply");
131 logger.assert_always(
std::abs((count1*count0)(0, 1) - 26.) < 1
e-12,
"multiply");
132 logger.assert_always(
std::abs((count1*count0)(1, 1) - 31.) < 1
e-12,
"multiply");
133 logger.assert_always(
std::abs((count0*A23)(0, 0) - .2) < 1
e-12,
"multiply");
134 logger.assert_always(
std::abs((count0*A23)(1, 0) - .3) < 1
e-12,
"multiply");
135 logger.assert_always(
std::abs((count0*A23)(0, 1) - .6) < 1
e-12,
"multiply");
136 logger.assert_always(
std::abs((count0*A23)(1, 1) - 1.1) < 1
e-12,
"multiply");
137 logger.assert_always(
std::abs((count0*A23)(0, 2) - 1.) < 1
e-12,
"multiply");
138 logger.assert_always(
std::abs((count0*A23)(1, 2) - 1.9) < 1
e-12,
"multiply");
139 logger.assert_always(
std::abs((A32*count0)(0, 0) - .3) < 1
e-12,
"multiply");
140 logger.assert_always(
std::abs((A32*count0)(1, 0) - .4) < 1
e-12,
"multiply");
141 logger.assert_always(
std::abs((A32*count0)(2, 0) - .5) < 1
e-12,
"multiply");
142 logger.assert_always(
std::abs((A32*count0)(0, 1) - .9) < 1
e-12,
"multiply");
143 logger.assert_always(
std::abs((A32*count0)(1, 1) - 1.4) < 1
e-12,
"multiply");
144 logger.assert_always(
std::abs((A32*count0)(2, 1) - 1.9) < 1
e-12,
"multiply");
145 logger.assert_always(
std::abs((A32*A23)(0, 0) - .03) < 1
e-12,
"multiply");
146 logger.assert_always(
std::abs((A32*A23)(1, 0) - .04) < 1
e-12,
"multiply");
147 logger.assert_always(
std::abs((A32*A23)(2, 0) - .05) < 1
e-12,
"multiply");
148 logger.assert_always(
std::abs((A32*A23)(0, 1) - .09) < 1
e-12,
"multiply");
149 logger.assert_always(
std::abs((A32*A23)(1, 1) - .14) < 1
e-12,
"multiply");
150 logger.assert_always(
std::abs((A32*A23)(2, 1) - .19) < 1
e-12,
"multiply");
151 logger.assert_always(
std::abs((A32*A23)(0, 2) - .15) < 1
e-12,
"multiply");
152 logger.assert_always(
std::abs((A32*A23)(1, 2) - .24) < 1
e-12,
"multiply");
153 logger.assert_always(
std::abs((A32*A23)(2, 2) - .33) < 1
e-12,
"multiply");
154 logger.assert_always(
std::abs((A23*A32)(0, 0) - .1) < 1
e-12,
"multiply");
155 logger.assert_always(
std::abs((A23*A32)(1, 0) - .13) < 1
e-12,
"multiply");
156 logger.assert_always(
std::abs((A23*A32)(0, 1) - .28) < 1
e-12,
"multiply");
157 logger.assert_always(
std::abs((A23*A32)(1, 1) - .40) < 1
e-12,
"multiply");
161 logger.assert_always(
std::abs(size3*(A32*vec0) - 5) < 1
e-12,
"multiply");
162 logger.assert_always(
std::abs((size3*A32)*vec0 - 5) < 1
e-12,
"multiply");
163 logger.assert_always(
std::abs((2*count0*2)(0, 0) - 0.) < 1
e-12,
"multiply");
164 logger.assert_always(
std::abs((2*count0*2)(1, 0) - 4.) < 1
e-12,
"multiply");
165 logger.assert_always(
std::abs((2*count0*2)(0, 1) - 8.) < 1
e-12,
"multiply");
166 logger.assert_always(
std::abs((2*count0*2)(1, 1) - 12.) < 1
e-12,
"multiply");
167 logger.assert_always(
std::abs((count0/2.)(0, 0) - 0.) < 1
e-12,
"divide");
168 logger.assert_always(
std::abs((count0/2.)(1, 0) - .5) < 1
e-12,
"divide");
169 logger.assert_always(
std::abs((count0/2.)(0, 1) - 1.) < 1
e-12,
"divide");
170 logger.assert_always(
std::abs((count0/2.)(1, 1) - 1.5) < 1
e-12,
"divide");
171 logger.assert_always(
std::abs((count0+count1)(0, 0) - 4.) < 1
e-12,
"add");
172 logger.assert_always(
std::abs((count0+count1)(1, 0) - 6.) < 1
e-12,
"add");
173 logger.assert_always(
std::abs((count0+count1)(0, 1) - 8.) < 1
e-12,
"add");
174 logger.assert_always(
std::abs((count0+count1)(1, 1) - 10.) < 1
e-12,
"add");
175 logger.assert_always(
std::abs((count1+count0)(0, 0) - 4.) < 1
e-12,
"add");
176 logger.assert_always(
std::abs((count1+count0)(1, 0) - 6.) < 1
e-12,
"add");
177 logger.assert_always(
std::abs((count1+count0)(0, 1) - 8.) < 1
e-12,
"add");
178 logger.assert_always(
std::abs((count1+count0)(1, 1) - 10.) < 1
e-12,
"add");
179 logger.assert_always(
std::abs((count0-count1)(0, 0) + 4.) < 1
e-12,
"subtract");
180 logger.assert_always(
std::abs((count0-count1)(1, 0) + 4.) < 1
e-12,
"subtract");
181 logger.assert_always(
std::abs((count0-count1)(0, 1) + 4.) < 1
e-12,
"subtract");
182 logger.assert_always(
std::abs((count0-count1)(1, 1) + 4.) < 1
e-12,
"subtract");
183 logger.assert_always(
std::abs((count1-count0)(0, 0) - 4.) < 1
e-12,
"subtract");
184 logger.assert_always(
std::abs((count1-count0)(1, 0) - 4.) < 1
e-12,
"subtract");
185 logger.assert_always(
std::abs((count1-count0)(0, 1) - 4.) < 1
e-12,
"subtract");
186 logger.assert_always(
std::abs((count1-count0)(1, 1) - 4.) < 1
e-12,
"subtract");
191 logger.assert_always(extra.
getNCols() == 2,
"Columns in a matrix");
192 logger.assert_always(extra.
size() == 4,
"Size of a matrix");
193 for(std::size_t
i = 0;
i < extra.
size(); ++
i)
198 logger.assert_always(
copy.getNumberOfRows() == 2,
"Rows in a matrix");
199 logger.assert_always(
copy.getNCols() == 2,
"Columns in a matrix");
200 logger.assert_always(
copy.size() == 4,
"Size of a matrix");
201 for(std::size_t
i = 0;
i <
copy.size(); ++
i)
206 logger.assert_always(count0.getNumberOfRows() == 2,
"Rows in a matrix");
207 logger.assert_always(count0.getNCols() == 2,
"Columns in a matrix");
208 logger.assert_always(count0.size() == 4,
"Size of a matrix");
209 logger.assert_always(
std::abs((count0)(0, 0) - 10.) < 1
e-12,
"multiply");
210 logger.assert_always(
std::abs((count0)(1, 0) - 19.) < 1
e-12,
"multiply");
211 logger.assert_always(
std::abs((count0)(0, 1) - 14.) < 1
e-12,
"multiply");
212 logger.assert_always(
std::abs((count0)(1, 1) - 27.) < 1
e-12,
"multiply");
214 logger.assert_always(count0.getNumberOfRows() == 2,
"Rows in a matrix");
215 logger.assert_always(count0.getNCols() == 2,
"Columns in a matrix");
216 logger.assert_always(count0.size() == 4,
"Size of a matrix");
217 logger.assert_always(
std::abs((count0)(0, 0) - 40.) < 1
e-12,
"multiply");
218 logger.assert_always(
std::abs((count0)(1, 0) - 76.) < 1
e-12,
"multiply");
219 logger.assert_always(
std::abs((count0)(0, 1) - 56.) < 1
e-12,
"multiply");
220 logger.assert_always(
std::abs((count0)(1, 1) - 108.) < 1
e-12,
"multiply");
222 logger.assert_always(count0.getNumberOfRows() == 2,
"Rows in a matrix");
223 logger.assert_always(count0.getNCols() == 2,
"Columns in a matrix");
224 logger.assert_always(count0.size() == 4,
"Size of a matrix");
225 logger.assert_always(
std::abs((count0)(0, 0) - 20.) < 1
e-12,
"divide");
226 logger.assert_always(
std::abs((count0)(1, 0) - 38.) < 1
e-12,
"divide");
227 logger.assert_always(
std::abs((count0)(0, 1) - 28.) < 1
e-12,
"divide");
228 logger.assert_always(
std::abs((count0)(1, 1) - 54.) < 1
e-12,
"divide");
230 logger.assert_always(
copy.getNumberOfRows() == 2,
"Rows in a matrix");
231 logger.assert_always(
copy.getNCols() == 2,
"Columns in a matrix");
232 logger.assert_always(
copy.size() == 4,
"Size of a matrix");
239 logger.assert_always(extra.
getNCols() == 2,
"Columns in a matrix");
240 logger.assert_always(extra.
size() == 4,
"Size of a matrix");
241 logger.assert_always(
std::abs((extra)(0, 0) + 20.) < 1
e-12,
"subtract");
242 logger.assert_always(
std::abs((extra)(1, 0) + 37.) < 1
e-12,
"subtract");
243 logger.assert_always(
std::abs((extra)(0, 1) + 26.) < 1
e-12,
"subtract");
244 logger.assert_always(
std::abs((extra)(1, 1) + 51.) < 1
e-12,
"subtract");
247 logger.assert_always(extra.
getNCols() == 2,
"Columns in a matrix");
248 logger.assert_always(extra.
size() == 4,
"Size of a matrix");
254 SmallVector<3> vec3D0{{0., 1., 2.}}, vec3D1{{3., 4., 5.}}, vec3D2{{0., -1., 2.}};
255 SmallVector<4> vec4D0{{0., 1., 2., 3.}}, vec4D1{{4., 5., 6., 7.}}, vec4D2{{0., -1., 2., -3.}}, vec4D3{{0., -1., -2., 3.}};
279 logger.assert_always(
std::abs((vec2 - count0.inverse() * duplicate)[0]) < 1
e-12,
"inverse and solve");
280 logger.assert_always(
std::abs((vec2 - count0.inverse() * duplicate)[1]) < 1
e-12,
"inverse and solve");
281 logger.assert_always(
std::abs((count0 - count0.inverse().inverse())[0]) < 1
e-12,
"inverse");
282 logger.assert_always(
std::abs((count0 - count0.inverse().inverse())[1]) < 1
e-12,
"inverse");
283 logger.assert_always(
std::abs((count0 - count0.inverse().inverse())[2]) < 1
e-12,
"inverse");
284 logger.assert_always(
std::abs((count0 - count0.inverse().inverse())[3]) < 1
e-12,
"inverse");
285 logger.assert_always(
std::abs((count0 - count0.transpose().transpose())[0]) < 1
e-12,
"transpose");
286 logger.assert_always(
std::abs((count0 - count0.transpose().transpose())[1]) < 1
e-12,
"transpose");
287 logger.assert_always(
std::abs((count0 - count0.transpose().transpose())[2]) < 1
e-12,
"transpose");
288 logger.assert_always(
std::abs((count0 - count0.transpose().transpose())[3]) < 1
e-12,
"transpose");
289 logger.assert_always(
std::abs(A23(0, 0) - A23.transpose()(0, 0)) < 1
e-12,
"transpose");
290 logger.assert_always(
std::abs(A23(1, 0) - A23.transpose()(0, 1)) < 1
e-12,
"transpose");
291 logger.assert_always(
std::abs(A23(0, 1) - A23.transpose()(1, 0)) < 1
e-12,
"transpose");
292 logger.assert_always(
std::abs(A23(1, 1) - A23.transpose()(1, 1)) < 1
e-12,
"transpose");
293 logger.assert_always(
std::abs(A23(0, 2) - A23.transpose()(2, 0)) < 1
e-12,
"transpose");
294 logger.assert_always(
std::abs(A23(1, 2) - A23.transpose()(2, 1)) < 1
e-12,
"transpose");
296 auto data = A23.data();
AnnoyingScalar abs(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:135
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
int data[]
Definition: Map_placement_new.cpp:1
Scalar Scalar int size
Definition: benchVecAdd.cpp:17
Data type for small dense matrix.
Definition: SmallMatrix.h:48
unsigned int getNCols() const
Definition: SmallMatrix.h:278
unsigned int size() const
Get total number of Matrix entries.
Definition: SmallMatrix.h:255
unsigned int getNumberOfRows() const
Get the number of rows.
Definition: SmallMatrix.h:261
void axpy(Mdouble a, const SmallMatrix &x)
Applies the matrix y=ax + y, where x is another matrix and a is a scalar.
Definition: SmallMatrix.h:246
Definition: SmallVector.h:42
EIGEN_BLAS_FUNC() copy(int *n, RealScalar *px, int *incx, RealScalar *py, int *incy)
Definition: level1_impl.h:32
#define INFO(i)
Definition: mumps_solver.h:54
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2