Opengl mathematics (glm) is a header only c++ mathematics library for graphics software based on the opengl shading language (glsl) specification.
glm provides classes and functions designed and implemented with the same naming conventions and functionalities as glsl, so that when a programmer knows glsl, he knows glm as well, which makes it really easy to use.
this project isn't limited to glsl features. an extension system, based on the glsl extension conventions, provides extended capabilities: matrix transformations, quaternions, half-based types, random numbers, et cetera.
this library works perfectly together with opengl but it also ensures interoperability with other third party libraries and sdks. it is a good candidate for software rendering (such as raytracing, rasterisation), image processing, physic simulations and any context that requires a simple and convenient mathematics library.