I'm currently selecting a C++ math library to use for a project. There are several questions here and on SO concerning the 'best' library available and many answers with different suggestions, but I would like to run some tests on each of them before I make a decision.
I would like to select a library that will cater for my current needs but also for any needs in any projects I may work on in the future. My problem is that due to being fairly new at this, I'm not entirely sure what those needs will be yet.
Aside from the points that I can think of listed below, and assuming that I will only test libraries with a suitable license, what other commonly used features should I test/look for before making a selection?
- Matrix operations - including addition, subtraction, multiplication, inversion, transposition, translation, rotation, scale
- Vector operations - cross/dot product, normalisation, zeroing, magnitude, length2, scalar operands, normal calculation
- Euler angle + Quarternion operations - rotation, interpolation, conversion, inversion, multiplication
- Coordinate system conversion (Cartesian, spherical)
- Random numbers - generator speed, period, statistical randomness
- Possibly noise generation
- Ease of integration with gl functions like glTranslate()
Also, assuming these libraries have been tested for mathematical accuracy, are there factors other than ease of use (documentation, mailing list/developer access), speed (vectorisation, SIMD), and memory usage to consider?