Google's MathFu: a x-platform geometry math library for C++
google.github.io
google.github.io
What is the implication of this? I am not an Android developer; is this tracking common?
For applications on Google Play that integrate this tool, usage is tracked. This tracking is done automatically using the embedded version string (kMathFuFunVersionString), and helps us continue to optimize it. Aside from consuming a few extra bytes in your application binary, it shouldn't affect your application at all. We use this information to let us know if MathFu is useful and if we should continue to invest in it. Since this is open source, you are free to remove the version string but we would appreciate if you would leave it in.
Since the code is open-source, you can always remove the string yourself.
This isn't scary. It's not phoning home to a web server or anything. If the library was dynamically linked as a .so/DLL instead of header-only, you'd be able to find the same information by looking at the ELF/EXE file header.
(edited to link to Eigen discussion -- Blaze was reporting MKL's performance as their own, despite Eigen supporting the same option to fall through to MKL)
[1] https://code.google.com/p/blaze-lib/ [2] http://comments.gmane.org/gmane.comp.lib.eigen/3423
-------------
This library provides classes and functions designed and implemented following as strictly as possible the GLSL conventions and functionalities so that when a programmer knows GLSL, he knows GLM as well, making it really easy to use.
This project isn't limited to GLSL features. An extension system provides extended capabilities: matrix transformations, quaternions, half-based types, random number generation, procedural noise functions, etc.
GLM ensures interoperability with third party libraries, SDKs and OpenGL; replacing advantageously the deprecated matrix functions. It is a good candidate for software rendering (Raytracing / Rasterisation), image processing, physic simulations and any context that requires a simple and convenient mathematics library.
It is a platform independent library with no dependence to external libraries even OpenGL. GLM is written in C++98 but can take advantage of C++11 when available.
#pragma GCC push_options
#pragma GCC optimize("O2")
#include <something>
#pragma GCC pop_options
[1] https://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option-... mathfu::Vector <float, 3>::CrossProduct (u, v)
instead of cross_product (u, v)
would get really old really fast.The simplicity is what gets to me:
vcross(v1, v2) * v3 (with gcc/clangs vector extensions)
Great codegen too.