It's exactly what I actually do ^^
I work on the code... But not really for a user goal, but programmer goal.
I've found all the mathematical code the uglier I've ever encountered in any project. And there is some functions that don't work as expected, look at
vm_test_parallel for example.
Many return-arguments (which is a relic from old days where compilers were not able to optimize temporary object return), 0% const-correct (which is a very bas thing, since the compiler can optimize better const-correct code); for example.
Lots of functions are macro defined to avoid casting from float to double. Since C++ overload each functions with every floating point types, it no more mean better performances, but worst, it increase compilation time and do not help the new programmers understanding the code.
So I've jump into the work of making a totally new math. library, made of template (which could allow later optimization through template meta-programming, allowing performances FORTRAN-like).
It's a.... HUGE (!!) work, changing nearly all the actual code to use the new lib.
I've done some perf-tests with the old and the new lib., the new library is 5% faster with double precision floating point ; certainly because everything is inlined.
It's not actually done, but it's in my head : the matrix would be a 4x4 (saved as a 4x3) matric instead of a 3x3, it would allow a common 3D optimisation, making rotations and translations together, avoiding two functions call ; it will of course need changes to vector class too.
But I don't know if my works will be accepted by most actual programmers in the project as it use as many C++ features as I find usefull...
Anyway, I'll do it, alone if I have to ; even if it's not used.
Thanks Fabian for your advice !
