GLM is a header only C++ math library based on GLSL specification so that if you know how to use GLSL, you know how to use GLSL types and functions: They are the same, same behaviors, same rules. Mostly all GLSL specification have been implemented except texture related issues.

GLM handle all vector and matrix types, GLSL conversions, swizzle operators, the math function library, etc... Beyond the GLSL features an extension system based on GLSL extension system is available. It provides to GLM lot of features like quaternion, matrix transformations, splines, intersections, number precisions, euler angles and various useful functions.

GLM website:

http://glm.g-truc.net