135 -2.298476964000715e-01, 8.834610176985250e-01,
136 -5.247448187602936e-01, 2.407824921325463e-01,
137 -8.196419411205157e-01, -4.018960334334318e-01});
140 -6.196294838293402e-01, -7.848944532670524e-01,
141 -7.848944532670524e-01, 6.196294838293400e-01});
148 for (
unsigned i=0; i<U.
m(); ++i)
149 for (
unsigned j=0; j<U.
n(); ++j)
150 LIBMESH_ASSERT_NUMBERS_EQUAL( U(i,j), true_U(i,j), tol);
152 for (
unsigned i=0; i<VT.
m(); ++i)
153 for (
unsigned j=0; j<VT.
n(); ++j)
154 LIBMESH_ASSERT_NUMBERS_EQUAL( VT(i,j), true_VT(i,j), tol);
156 for (
unsigned i=0; i<sigma.
size(); ++i)
157 LIBMESH_ASSERT_FP_EQUAL(sigma(i), true_sigma(i), tol);
166 std::vector<Real> true_lambda_real,
167 std::vector<Real> true_lambda_imag,
173#ifdef LIBMESH_USE_REAL_NUMBERS
184 const unsigned N = A.
m();
191 for (
unsigned eigenval=0; eigenval<N; ++eigenval)
194 if (std::abs(lambda_imag(eigenval)) < tol*tol)
198 for (
unsigned i=0; i<N; ++i)
200 rhs(i) = lambda_real(eigenval) * VL(i, eigenval);
201 for (
unsigned j=0; j<N; ++j)
202 lhs(i) += A(j, i) * VL(j, eigenval);
208 LIBMESH_ASSERT_FP_EQUAL(0., lhs.l2_norm(), std::sqrt(tol)*tol);
225 for (
unsigned i=0; i<N; ++i)
227 rhs(i) = lambda_real(eigenval) * VL(i, eigenval) + lambda_imag(eigenval) * VL(i, eigenval+1);
228 for (
unsigned j=0; j<N; ++j)
229 lhs(i) += A(j, i) * VL(j, eigenval);
233 LIBMESH_ASSERT_FP_EQUAL(0., lhs.l2_norm(), std::sqrt(tol)*tol);
244 for (
unsigned i=0; i<N; ++i)
246 rhs(i) = -lambda_imag(eigenval) * VL(i, eigenval) + lambda_real(eigenval) * VL(i, eigenval+1);
247 for (
unsigned j=0; j<N; ++j)
248 lhs(i) += A(j, i) * VL(j, eigenval+1);
252 LIBMESH_ASSERT_FP_EQUAL(0., lhs.l2_norm(), std::sqrt(tol)*tol);
272 for (
unsigned eigenval=0; eigenval<N; ++eigenval)
275 if (std::abs(lambda_imag(eigenval)) < tol*tol)
279 for (
unsigned i=0; i<N; ++i)
281 rhs(i) = lambda_real(eigenval) * VR(i, eigenval);
282 for (
unsigned j=0; j<N; ++j)
283 lhs(i) += A(i, j) * VR(j, eigenval);
287 LIBMESH_ASSERT_FP_EQUAL(0., lhs.l2_norm(), std::sqrt(tol)*tol);
304 for (
unsigned i=0; i<N; ++i)
306 rhs(i) = lambda_real(eigenval) * VR(i, eigenval) - lambda_imag(eigenval) * VR(i, eigenval+1);
307 for (
unsigned j=0; j<N; ++j)
308 lhs(i) += A(i, j) * VR(j, eigenval);
312 LIBMESH_ASSERT_FP_EQUAL(0., lhs.l2_norm(), std::sqrt(tol)*tol);
317 for (
unsigned i=0; i<N; ++i)
319 rhs(i) = lambda_imag(eigenval) * VR(i, eigenval) + lambda_real(eigenval) * VR(i, eigenval+1);
320 for (
unsigned j=0; j<N; ++j)
321 lhs(i) += A(i, j) * VR(j, eigenval+1);
325 LIBMESH_ASSERT_FP_EQUAL(0., lhs.l2_norm(), std::sqrt(tol)*tol);
339 std::sort(true_lambda_real.begin(), true_lambda_real.end());
340 std::sort(true_lambda_imag.begin(), true_lambda_imag.end());
343 for (
unsigned i=0; i<lambda_real.
size(); ++i)
350 LIBMESH_ASSERT_FP_EQUAL(true_lambda_real[i], lambda_real(i), std::sqrt(tol)*tol);
351 LIBMESH_ASSERT_FP_EQUAL(true_lambda_imag[i], lambda_imag(i), std::sqrt(tol)*tol);
363 A(0,0) = -149; A(0,1) = -50; A(0,2) = -154;
364 A(1,0) = 537; A(1,1) = 180; A(1,2) = 546;
365 A(2,0) = -27; A(2,1) = -9; A(2,2) = -25;
367 std::vector<Real> true_lambda_real(3);
368 true_lambda_real[0] = 1.;
369 true_lambda_real[1] = 2.;
370 true_lambda_real[2] = 3.;
371 std::vector<Real> true_lambda_imag(3);
384 A(0,0) = 0; A(0,1) = -6; A(0,2) = -1;
385 A(1,0) = 6; A(1,1) = 2; A(1,2) = -16;
386 A(2,0) = -5; A(2,1) = 20; A(2,2) = -10;
388 std::vector<Real> true_lambda_real(3);
389 true_lambda_real[0] = -3.070950351248293;
390 true_lambda_real[1] = -2.464524824375853;
391 true_lambda_real[2] = -2.464524824375853;
392 std::vector<Real> true_lambda_imag(3);
393 true_lambda_imag[0] = 0.;
394 true_lambda_imag[1] = 17.60083096447099;
395 true_lambda_imag[2] = -17.60083096447099;
407#ifdef LIBMESH_USE_COMPLEX_NUMBERS
412 A(0,0) =
Complex(2.18904,4.44523e-18); A(0,1) =
Complex(-3.20491,-0.136699); A(0,2) =
Complex(0.716316,-0.964802);
413 A(1,0) =
Complex(-3.20491,0.136699); A(1,1) =
Complex(4.70076,-3.25261e-18); A(1,2) =
Complex(-0.98849,1.45727);
414 A(2,0) =
Complex(0.716316,0.964802); A(2,1) =
Complex(-0.98849,-1.45727); A(2,2) =
Complex(0.659629,-4.01155e-18);
420 true_sigma(0) = 7.54942516052;
421 true_sigma(1) = 3.17479511368e-06;
422 true_sigma(2) = 6.64680908281e-07;
424 for (
unsigned i=0; i<sigma.
size(); ++i)
425 LIBMESH_ASSERT_FP_EQUAL(sigma(i), true_sigma(i), 1.e-10);
434 A(0,0) = 1.0; A(0,1) = 2.0; A(0,2) = 3.0;
435 A(1,0) = 4.0; A(1,1) = 5.0; A(1,2) = 6.0;
436 A(2,0) = 7.0; A(2,1) = 8.0; A(2,2) = 9.0;
437 A(3,0) =10.0; A(3,1) =11.0; A(3,2) =12.0;
440 B(0,0) = 7.0;
B(0,1) = 8.0;
441 B(1,0) =10.0;
B(1,1) =11.0;
444 CPPUNIT_ASSERT(
B == C);