source: pacpussensors/trunk/Vislab/lib3dv-1.2.0/lib3dv/eigen/doc/snippets/RealQZ_compute.cpp

Last change on this file was 136, checked in by ldecherf, 8 years ago

Doc

File size: 819 bytes
Line 
1MatrixXf A = MatrixXf::Random(4,4);
2MatrixXf B = MatrixXf::Random(4,4);
3RealQZ<MatrixXf> qz(4); // preallocate space for 4x4 matrices
4qz.compute(A,B); // A = Q S Z, B = Q T Z
5
6// print original matrices and result of decomposition
7cout << "A:\n" << A << "\n" << "B:\n" << B << "\n";
8cout << "S:\n" << qz.matrixS() << "\n" << "T:\n" << qz.matrixT() << "\n";
9cout << "Q:\n" << qz.matrixQ() << "\n" << "Z:\n" << qz.matrixZ() << "\n";
10
11// verify precision
12cout << "\nErrors:"
13 << "\n|A-QSZ|: " << (A-qz.matrixQ()*qz.matrixS()*qz.matrixZ()).norm()
14 << ", |B-QTZ|: " << (B-qz.matrixQ()*qz.matrixT()*qz.matrixZ()).norm()
15 << "\n|QQ* - I|: " << (qz.matrixQ()*qz.matrixQ().adjoint() - MatrixXf::Identity(4,4)).norm()
16 << ", |ZZ* - I|: " << (qz.matrixZ()*qz.matrixZ().adjoint() - MatrixXf::Identity(4,4)).norm()
17 << "\n";
Note: See TracBrowser for help on using the repository browser.