There seems to be a gcc 4.7 bug that incorrectly flags the current 3x3 inverse as using uninitialized memory. I'm *pretty* sure it's a false positive, but it's hard to trigger. The same warning does not trigger with clang or later compiler versions. In trying to find a work-around, this implementation turns out to be faster anyways for static-sized matrices. ``` name old cpu/op new cpu/op delta BM_Inverse3x3<DynamicMatrix3T<float>> 423ns ± 2% 433ns ± 3% +2.32% (p=0.000 n=98+96) BM_Inverse3x3<DynamicMatrix3T<double>> 425ns ± 2% 427ns ± 3% +0.48% (p=0.003 n=99+96) BM_Inverse3x3<StaticMatrix3T<float>> 7.10ns ± 2% 0.80ns ± 1% -88.67% (p=0.000 n=114+112) BM_Inverse3x3<StaticMatrix3T<double>> 7.45ns ± 2% 1.34ns ± 1% -82.01% (p=0.000 n=105+111) BM_AliasedInverse3x3<DynamicMatrix3T<float>> 409ns ± 3% 419ns ± 3% +2.40% (p=0.000 n=100+98) BM_AliasedInverse3x3<DynamicMatrix3T<double>> 414ns ± 3% 413ns ± 2% ~ (p=0.322 n=98+98) BM_AliasedInverse3x3<StaticMatrix3T<float>> 7.57ns ± 1% 0.80ns ± 1% -89.37% (p=0.000 n=111+114) BM_AliasedInverse3x3<StaticMatrix3T<double>> 9.09ns ± 1% 2.58ns ±41% -71.60% (p=0.000 n=113+116) ``` |
||
|---|---|---|
| .gitlab | ||
| bench | ||
| blas | ||
| ci | ||
| cmake | ||
| debug | ||
| demos | ||
| doc | ||
| Eigen | ||
| failtest | ||
| lapack | ||
| scripts | ||
| test | ||
| unsupported | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .hgeol | ||
| CMakeLists.txt | ||
| COPYING.APACHE | ||
| COPYING.BSD | ||
| COPYING.GPL | ||
| COPYING.LGPL | ||
| COPYING.MINPACK | ||
| COPYING.MPL2 | ||
| COPYING.README | ||
| CTestConfig.cmake | ||
| CTestCustom.cmake.in | ||
| eigen3.pc.in | ||
| INSTALL | ||
| README.md | ||
| signature_of_eigen3_matrix_library | ||
Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
For more information go to http://eigen.tuxfamily.org/.
For pull request, bug reports, and feature requests, go to https://gitlab.com/libeigen/eigen.