48 double buf[] = {1.0, 3.0, 2.0, 4.0};
52 BOOST_CHECK_CLOSE(*m(0, 0), -2.0, .00001);
53 BOOST_CHECK_CLOSE(*m(0, 1), 1.0, .00001);
54 BOOST_CHECK_CLOSE(*m(1, 0), 3.0 / 2.0, .00001);
55 BOOST_CHECK_CLOSE(*m(1, 1), -1.0 / 2.0, .00001);
59 double buf[] = {1.7, 5.6, 9.1, -3.4, -2.0, 4.5, 7.8, 8.2, -2.5,
60 5.0, 9.0, 3.6, 7.3, .98, 1.0, -12.6, 2.9, 6.4,
61 .02, -4.0, -1, 1.7, 5.6, 2.98, 5.0};
65 BOOST_CHECK_CLOSE(*m(0, 0), 0.0005010995978, .000001);
66 BOOST_CHECK_CLOSE(*m(0, 1), -0.4704403712, .000001);
67 BOOST_CHECK_CLOSE(*m(0, 2), 0.2719063614, .000001);
68 BOOST_CHECK_CLOSE(*m(0, 3), -0.3941557805, .000001);
69 BOOST_CHECK_CLOSE(*m(0, 4), 0.09043166650, .000001);
71 BOOST_CHECK_CLOSE(*m(1, 0), -0.01087166322, .000001);
72 BOOST_CHECK_CLOSE(*m(1, 1), 0.3242048735, .000001);
73 BOOST_CHECK_CLOSE(*m(1, 2), -0.1605116333, .000001);
74 BOOST_CHECK_CLOSE(*m(1, 3), 0.09133673974, .000001);
75 BOOST_CHECK_CLOSE(*m(1, 4), 0.01293234281, .000001);
77 BOOST_CHECK_CLOSE(*m(2, 0), 0.06465598241, .000001);
78 BOOST_CHECK_CLOSE(*m(2, 1), 0.2593895742, .000001);
79 BOOST_CHECK_CLOSE(*m(2, 2), -0.09057233795, .000001);
80 BOOST_CHECK_CLOSE(*m(2, 3), 0.3106562459, .000001);
81 BOOST_CHECK_CLOSE(*m(2, 4), -0.1589713628, .000001);
83 BOOST_CHECK_CLOSE(*m(3, 0), -0.03464982687, .000001);
84 BOOST_CHECK_CLOSE(*m(3, 1), 0.2655177914, .000001);
85 BOOST_CHECK_CLOSE(*m(3, 2), -0.1016866584, .000001);
86 BOOST_CHECK_CLOSE(*m(3, 3), 0.2125363445, .000001);
87 BOOST_CHECK_CLOSE(*m(3, 4), -0.1099886183, .000001);
89 BOOST_CHECK_CLOSE(*m(4, 0), -0.02957895492, .000001);
90 BOOST_CHECK_CLOSE(*m(4, 1), -0.3518447037, .000001);
91 BOOST_CHECK_CLOSE(*m(4, 2), 0.2060393188, .000001);
92 BOOST_CHECK_CLOSE(*m(4, 3), -0.1411012255, .000001);
93 BOOST_CHECK_CLOSE(*m(4, 4), 0.1670437017, .000001);
102 double buf[] = {1.0, 3.0, 5.0, 2.0, 4.0, 6.0};
107 BOOST_CHECK_EQUAL(m.GetRows(), 2u);
108 BOOST_CHECK_EQUAL(m.GetColumns(), 3u);
110 double epsilon = 1.0e-10;
111 BOOST_CHECK_CLOSE(*m(0, 0), -4.0 / 3.0, epsilon);
112 BOOST_CHECK_CLOSE(*m(0, 1), -1.0 / 3.0, epsilon);
113 BOOST_CHECK_CLOSE(*m(0, 2), 2.0 / 3.0, epsilon);
115 BOOST_CHECK_CLOSE(*m(1, 0), 13.0 / 12.0, epsilon);
116 BOOST_CHECK_CLOSE(*m(1, 1), 1.0 / 3.0, epsilon);
117 BOOST_CHECK_CLOSE(*m(1, 2), -5.0 / 12.0, epsilon);
135 std::shared_ptr<Nektar::Matrix<double>> a(
137 std::shared_ptr<Nektar::NekMatrix<double>> b(
140 BOOST_CHECK_EQUAL(a->GetRows(), 3u);
141 BOOST_CHECK_EQUAL(a->GetColumns(), 4u);
142 BOOST_CHECK_EQUAL(a->GetSize()[0], 3u);
143 BOOST_CHECK_EQUAL(a->GetSize()[1], 4u);
145 BOOST_CHECK_EQUAL(b->GetRows(), 5u);
146 BOOST_CHECK_EQUAL(b->GetColumns(), 6u);
147 BOOST_CHECK_EQUAL(b->GetSize()[0], 5u);
148 BOOST_CHECK_EQUAL(b->GetSize()[1], 6u);
150 BOOST_CHECK_EQUAL(a->GetStorageType(),
eFULL);
151 BOOST_CHECK_EQUAL(b->GetStorageType(),
eFULL);
153 BOOST_CHECK_EQUAL(a->GetStorageSize(), 3 * 4);
154 BOOST_CHECK_EQUAL(b->GetStorageSize(), 5 * 6);
158 std::shared_ptr<Nektar::Matrix<double>> a(
160 std::shared_ptr<Nektar::NekMatrix<double>> b(
163 BOOST_CHECK_EQUAL(a->GetRows(), 3);
164 BOOST_CHECK_EQUAL(a->GetColumns(), 3);
165 BOOST_CHECK_EQUAL(a->GetSize()[0], 3);
166 BOOST_CHECK_EQUAL(a->GetSize()[1], 3);
168 BOOST_CHECK_EQUAL(b->GetRows(), 5);
169 BOOST_CHECK_EQUAL(b->GetColumns(), 5);
170 BOOST_CHECK_EQUAL(b->GetSize()[0], 5);
171 BOOST_CHECK_EQUAL(b->GetSize()[1], 5);
173 BOOST_CHECK_EQUAL(a->GetStorageType(),
eDIAGONAL);
174 BOOST_CHECK_EQUAL(b->GetStorageType(),
eDIAGONAL);
176 BOOST_CHECK_EQUAL(a->GetStorageSize(), 3);
177 BOOST_CHECK_EQUAL(b->GetStorageSize(), 5);
184 double data[] = {1.0, 89.0, 0.0, 45.12, 2.0, -12.3,
185 892.2532, 76.12, 3.0, -56.7, 211.22, 45.23};
189 BOOST_CHECK_EQUAL(m(0, 0), 1.0);
190 BOOST_CHECK_EQUAL(m(0, 1), 2.0);
191 BOOST_CHECK_EQUAL(m(0, 2), 3.0);
193 BOOST_CHECK_EQUAL(m(1, 0), 89.0);
194 BOOST_CHECK_EQUAL(m(1, 1), -12.3);
195 BOOST_CHECK_EQUAL(m(1, 2), -56.7);
197 BOOST_CHECK_EQUAL(m(2, 0), 0.0);
198 BOOST_CHECK_EQUAL(m(2, 1), 892.2532);
199 BOOST_CHECK_EQUAL(m(2, 2), 211.22);
201 BOOST_CHECK_EQUAL(m(3, 0), 45.12);
202 BOOST_CHECK_EQUAL(m(3, 1), 76.12);
203 BOOST_CHECK_EQUAL(m(3, 2), 45.23);
205#ifdef NEKTAR_FULLDEBUG
211 std::shared_ptr<Nektar::Matrix<double>> m1(
213 std::shared_ptr<Nektar::NekMatrix<double>> m2(
216 BOOST_CHECK_EQUAL((*m1)(0, 0), 1.0);
217 BOOST_CHECK_EQUAL((*m1)(0, 1), 2.0);
218 BOOST_CHECK_EQUAL((*m1)(0, 2), 3.0);
220 BOOST_CHECK_EQUAL((*m1)(1, 0), 89.0);
221 BOOST_CHECK_EQUAL((*m1)(1, 1), -12.3);
222 BOOST_CHECK_EQUAL((*m1)(1, 2), -56.7);
224 BOOST_CHECK_EQUAL((*m1)(2, 0), 0.0);
225 BOOST_CHECK_EQUAL((*m1)(2, 1), 892.2532);
226 BOOST_CHECK_EQUAL((*m1)(2, 2), 211.22);
228 BOOST_CHECK_EQUAL((*m1)(3, 0), 45.12);
229 BOOST_CHECK_EQUAL((*m1)(3, 1), 76.12);
230 BOOST_CHECK_EQUAL((*m1)(3, 2), 45.23);
232#ifdef NEKTAR_FULLDEBUG
238 BOOST_CHECK_EQUAL((*m2)(0, 0), 1.0);
239 BOOST_CHECK_EQUAL((*m2)(0, 1), 2.0);
240 BOOST_CHECK_EQUAL((*m2)(0, 2), 3.0);
242 BOOST_CHECK_EQUAL((*m2)(1, 0), 89.0);
243 BOOST_CHECK_EQUAL((*m2)(1, 1), -12.3);
244 BOOST_CHECK_EQUAL((*m2)(1, 2), -56.7);
246 BOOST_CHECK_EQUAL((*m2)(2, 0), 0.0);
247 BOOST_CHECK_EQUAL((*m2)(2, 1), 892.2532);
248 BOOST_CHECK_EQUAL((*m2)(2, 2), 211.22);
250 BOOST_CHECK_EQUAL((*m2)(3, 0), 45.12);
251 BOOST_CHECK_EQUAL((*m2)(3, 1), 76.12);
252 BOOST_CHECK_EQUAL((*m2)(3, 2), 45.23);
254#ifdef NEKTAR_FULLDEBUG
264 double data[] = {8.9, 3.4, 5.7};
266 std::shared_ptr<Nektar::Matrix<double>> m2(
268 std::shared_ptr<Nektar::NekMatrix<double>> m3(
271 BOOST_CHECK_EQUAL(m1(0, 0), 8.9);
272 BOOST_CHECK_EQUAL((*m2)(0, 0), 8.9);
273 BOOST_CHECK_EQUAL((*m3)(0, 0), 8.9);
275 BOOST_CHECK_EQUAL(m1(0, 1), 0.0);
276 BOOST_CHECK_EQUAL((*m2)(0, 1), 0.0);
277 BOOST_CHECK_EQUAL((*m3)(0, 1), 0.0);
279 BOOST_CHECK_EQUAL(m1(0, 2), 0.0);
280 BOOST_CHECK_EQUAL((*m2)(0, 2), 0.0);
281 BOOST_CHECK_EQUAL((*m3)(0, 2), 0.0);
283 BOOST_CHECK_EQUAL(m1(1, 0), 0.0);
284 BOOST_CHECK_EQUAL((*m2)(1, 0), 0.0);
285 BOOST_CHECK_EQUAL((*m3)(1, 0), 0.0);
287 BOOST_CHECK_EQUAL(m1(1, 1), 3.4);
288 BOOST_CHECK_EQUAL((*m2)(1, 1), 3.4);
289 BOOST_CHECK_EQUAL((*m3)(1, 1), 3.4);
291 BOOST_CHECK_EQUAL(m1(1, 2), 0.0);
292 BOOST_CHECK_EQUAL((*m2)(1, 2), 0.0);
293 BOOST_CHECK_EQUAL((*m3)(1, 2), 0.0);
295 BOOST_CHECK_EQUAL(m1(2, 0), 0.0);
296 BOOST_CHECK_EQUAL((*m2)(2, 0), 0.0);
297 BOOST_CHECK_EQUAL((*m3)(2, 0), 0.0);
299 BOOST_CHECK_EQUAL(m1(2, 1), 0.0);
300 BOOST_CHECK_EQUAL((*m2)(2, 1), 0.0);
301 BOOST_CHECK_EQUAL((*m3)(2, 1), 0.0);
303 BOOST_CHECK_EQUAL(m1(2, 2), 5.7);
304 BOOST_CHECK_EQUAL((*m2)(2, 2), 5.7);
305 BOOST_CHECK_EQUAL((*m3)(2, 2), 5.7);
307#ifdef NEKTAR_FULLDEBUG
324 double data[] = {1.0, 3.0, 5.0, 2.0, 4.0, 6.0};
326 std::shared_ptr<Nektar::Matrix<double>> m2(
328 std::shared_ptr<Nektar::NekMatrix<double>> m3(
331 m1.SetValue(0, 0, -1.0);
332 m2->SetValue(1, 1, -2.0);
333 m3->SetValue(2, 1, -3.0);
335 BOOST_CHECK_EQUAL(m1(0, 0), -1.0);
336 BOOST_CHECK_EQUAL(m1(0, 1), 2.0);
337 BOOST_CHECK_EQUAL(m1(1, 0), 3.0);
338 BOOST_CHECK_EQUAL(m1(1, 1), 4.0);
339 BOOST_CHECK_EQUAL(m1(2, 0), 5.0);
340 BOOST_CHECK_EQUAL(m1(2, 1), 6.0);
342 BOOST_CHECK_EQUAL((*m2)(0, 0), 1.0);
343 BOOST_CHECK_EQUAL((*m2)(0, 1), 2.0);
344 BOOST_CHECK_EQUAL((*m2)(1, 0), 3.0);
345 BOOST_CHECK_EQUAL((*m2)(1, 1), -2.0);
346 BOOST_CHECK_EQUAL((*m2)(2, 0), 5.0);
347 BOOST_CHECK_EQUAL((*m2)(2, 1), 6.0);
349 BOOST_CHECK_EQUAL((*m3)(0, 0), 1.0);
350 BOOST_CHECK_EQUAL((*m3)(0, 1), 2.0);
351 BOOST_CHECK_EQUAL((*m3)(1, 0), 3.0);
352 BOOST_CHECK_EQUAL((*m3)(1, 1), 4.0);
353 BOOST_CHECK_EQUAL((*m3)(2, 0), 5.0);
354 BOOST_CHECK_EQUAL((*m3)(2, 1), -3.0);
360 double data[] = {8.9, 3.4, 5.7};
362 std::shared_ptr<Nektar::Matrix<double>> m2(
364 std::shared_ptr<Nektar::NekMatrix<double>> m3(
367 m1.SetValue(0, 0, 1.0);
368 m2->SetValue(1, 1, 2.0);
369 m3->SetValue(2, 2, 3.0);
371 BOOST_CHECK_EQUAL(m1.GetStorageType(),
eDIAGONAL);
372 BOOST_CHECK_EQUAL(m2->GetStorageType(),
eDIAGONAL);
373 BOOST_CHECK_EQUAL(m3->GetStorageType(),
eDIAGONAL);
375 BOOST_CHECK_EQUAL(m1(0, 0), 1.0);
376 BOOST_CHECK_EQUAL(m1(1, 1), 3.4);
377 BOOST_CHECK_EQUAL(m1(2, 2), 5.7);
379 BOOST_CHECK_EQUAL((*m2)(0, 0), 8.9);
380 BOOST_CHECK_EQUAL((*m2)(1, 1), 2.0);
381 BOOST_CHECK_EQUAL((*m2)(2, 2), 5.7);
383 BOOST_CHECK_EQUAL((*m3)(0, 0), 8.9);
384 BOOST_CHECK_EQUAL((*m3)(1, 1), 3.4);
385 BOOST_CHECK_EQUAL((*m3)(2, 2), 3.0);
387#ifdef NEKTAR_FULLDEBUG
404 double lhs_data[] = {1.0, 4.0, 2.0, 5.0, 3.0, 6.0};
405 double rhs_data[] = {10.0, 13.0, 11.0, 14.0, 12.0, 15.0};
411 BOOST_CHECK_EQUAL(result.GetRows(), 2);
412 BOOST_CHECK_EQUAL(result.GetColumns(), 3);
413 BOOST_CHECK_EQUAL(result.GetStorageType(),
eFULL);
414 BOOST_CHECK_EQUAL(result(0, 0), 11.0);
415 BOOST_CHECK_EQUAL(result(0, 1), 13.0);
416 BOOST_CHECK_EQUAL(result(0, 2), 15.0);
417 BOOST_CHECK_EQUAL(result(1, 0), 17.0);
418 BOOST_CHECK_EQUAL(result(1, 1), 19.0);
419 BOOST_CHECK_EQUAL(result(1, 2), 21.0);