| Benoît Jacob ( @ 2006-12-30 21:23:00 |
| Entry tags: | eigen |
Eigen 1.0
Eigen 1.0 is released! This project started in July when we (that is, a handful of KDE developers) realized that we had a common need for some math functionality that no library out there seemed to cover reasonably. Sure, there are many linear algebra libraries, but they are either too small/amateurish, or too big/professional and focusing on heavy scientific stuff that we don't need. People objected (rightly) that adding a big dependency would be frowned upon by distro maintainers. So we decided to start our own linear algebra library, Eigen.
5 monthes later, it's there. If you're looking for a lightweight library for vectors, matrices and related math stuff, please give it a try. We have fixedsize classes, as in "float v[SIZE];" and they're very fast and specially optimized for low sizes (<=4). We also have dynamic-size classes, which can be useful if you're developing e.g. a spreadsheet and want to be able to solve any system of arbitrarily many linear equations. And we have special classes for projective geometry, which can be useful in OpenGL apps, as was demonstrated in my previous entry.
By the way, and Eigen is very fast with GCC, whereas some other linear algebra libraries will tell you to use the intel compiler instead. The issue here is that GCC has problems with loop unrolling. In particular, GCC often fails to unroll nested for loops, which is annoying e.g. for matrix product, see this bug report. In Eigen, this problem is worked around by manually unrolling loops in fixed-sizes up to 4 (which are the cases where loop unrolling is wanted).