* 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
diff --git a/doc/snippets/MatrixBase_computeInverse.cpp b/doc/snippets/MatrixBase_computeInverse.cpp
new file mode 100644
index 0000000..4873d0d
--- /dev/null
+++ b/doc/snippets/MatrixBase_computeInverse.cpp
@@ -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;
diff --git a/doc/snippets/MatrixBase_inverse.cpp b/doc/snippets/MatrixBase_inverse.cpp
index eb402df..b5c645c 100644
--- a/doc/snippets/MatrixBase_inverse.cpp
+++ b/doc/snippets/MatrixBase_inverse.cpp
@@ -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;
diff --git a/doc/snippets/MatrixBase_quickInverse.cpp b/doc/snippets/MatrixBase_quickInverse.cpp
deleted file mode 100644
index cf0575f..0000000
--- a/doc/snippets/MatrixBase_quickInverse.cpp
+++ /dev/null
@@ -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;
diff --git a/doc/snippets/compile_snippet.cpp.in b/doc/snippets/compile_snippet.cpp.in
index 5d8e53a..5876aab 100644
--- a/doc/snippets/compile_snippet.cpp.in
+++ b/doc/snippets/compile_snippet.cpp.in
@@ -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;
 }