* big rework of Inverse.h:

- remove all invertibility checking, will be redundant with LU
  - general case: adapt to matrix storage order for better perf
  - size 4 case: handle corner cases without falling back to gen case.
  - rationalize with selectors instead of compile time if
  - add C-style computeInverse()
* update inverse test.
* in snippets, default cout precision to 3 decimal places
* add some cmake module from kdelibs to support btl with cmake 2.4
This commit is contained in:
Benoit Jacob
2008-07-15 23:56:17 +00:00
parent b970a9c8aa
commit 62ec1dd616
8 changed files with 319 additions and 220 deletions

View File

@@ -0,0 +1,5 @@
Matrix3d m = Matrix3d::random();
cout << "Here is the matrix m:" << endl << m << endl;
Matrix3d inv;
m.computeInverse(&inv);
cout << "Its inverse is:" << endl << inv << endl;

View File

@@ -1,7 +1,3 @@
Matrix2d m = Matrix2d::random();
Matrix3d m = Matrix3d::random();
cout << "Here is the matrix m:" << endl << m << endl;
Matrix2d::InverseType m_inv = m.inverse();
if(m_inv.exists())
cout << "m is invertible, and its inverse is:" << endl << m_inv << endl;
else
cout << "m is not invertible." << endl;
cout << "Its inverse is:" << endl << m.inverse() << endl;

View File

@@ -1,5 +0,0 @@
Matrix4d m = Matrix4d::zero();
m.part<Eigen::Upper>().setOnes();
cout << "Here is the matrix m:" << endl << m << endl;
cout << "We know for sure that it is invertible." << endl;
cout << "Here is its inverse:" << m.quickInverse() << endl;

View File

@@ -1,10 +1,13 @@
#include <Eigen/Core>
#include <Eigen/Array>
#include <Eigen/LU>
USING_PART_OF_NAMESPACE_EIGEN
using namespace std;
int main(int, char**)
{
${snippet_source_code}
return 0;
cout.precision(3);
${snippet_source_code}
return 0;
}