|  ▼GTC Extensions (Stable) | Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program  | 
|  GLM_GTC_bitfield | Allow to perform bit operations on integer values  | 
|  GLM_GTC_color_encoding | Allow to perform bit operations on integer values  | 
|  GLM_GTC_color_space | Allow to perform bit operations on integer values  | 
|  GLM_GTC_constants | Provide a list of constants and precomputed useful values  | 
|  GLM_GTC_epsilon | Comparison functions for a user defined epsilon values  | 
|  GLM_GTC_functions | List of useful common functions  | 
|  GLM_GTC_integer | Allow to perform bit operations on integer values  | 
|  GLM_GTC_matrix_access | Defines functions to access rows or columns of a matrix easily  | 
|  GLM_GTC_matrix_integer | Defines a number of matrices with integer types  | 
|  GLM_GTC_matrix_inverse | Defines additional matrix inverting functions  | 
|  GLM_GTC_matrix_transform | Defines functions that generate common transformation matrices  | 
|  GLM_GTC_noise | Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": https://github.com/ashima/webgl-noise Following Stefan Gustavson's paper "Simplex noise demystified": http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf <glm/gtc/noise.hpp> need to be included to use these functionalities  | 
|  GLM_GTC_packing | This extension provides a set of function to convert vertors to packed formats  | 
|  GLM_GTC_quaternion | Defines a templated quaternion type and several quaternion operations  | 
|  GLM_GTC_random | Generate random number from various distribution methods  | 
|  GLM_GTC_reciprocal | Define secant, cosecant and cotangent functions  | 
|  GLM_GTC_round | Rounding value to specific boundings  | 
|  GLM_GTC_type_aligned | Aligned types  | 
|  GLM_GTC_type_precision | Defines specific C++-based precision types  | 
|  GLM_GTC_type_ptr | Handles the interaction between pointers and vector, matrix types  | 
|  GLM_GTC_ulp | Allow the measurement of the accuracy of a function against a reference implementation  | 
|  GLM_GTC_vec1 | Add vec1, ivec1, uvec1 and bvec1 types  | 
|  ▼GTX Extensions (Experimental) | Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program  | 
|  GLM_GTX_associated_min_max | Min and max functions that return associated values not the compared onces  | 
|  GLM_GTX_bit | Allow to perform bit operations on integer values  | 
|  GLM_GTX_closest_point | Find the point on a straight line which is the closet of a point  | 
|  GLM_GTX_color_space | Related to RGB to HSV conversions and operations  | 
|  GLM_GTX_color_space_YCoCg | RGB to YCoCg conversions and operations  | 
|  GLM_GTX_common | Provide functions to increase the compatibility with Cg and HLSL languages  | 
|  GLM_GTX_compatibility | Provide functions to increase the compatibility with Cg and HLSL languages  | 
|  GLM_GTX_component_wise | Operations between components of a type  | 
|  GLM_GTX_dual_quaternion | Defines a templated dual-quaternion type and several dual-quaternion operations  | 
|  GLM_GTX_euler_angles | Build matrices from Euler angles  | 
|  GLM_GTX_extend | Extend a position from a source to a position at a defined length  | 
|  GLM_GTX_extented_min_max | Min and max functions for 3 to 4 parameters  | 
|  GLM_GTX_fast_exponential | Fast but less accurate implementations of exponential based functions  | 
|  GLM_GTX_fast_square_root | Fast but less accurate implementations of square root based functions  | 
|  GLM_GTX_fast_trigonometry | Fast but less accurate implementations of trigonometric functions  | 
|  GLM_GTX_gradient_paint | Functions that return the color of procedural gradient for specific coordinates  | 
|  GLM_GTX_handed_coordinate_space | To know if a set of three basis vectors defines a right or left-handed coordinate system  | 
|  GLM_GTX_hash | Add std::hash support for glm types  | 
|  GLM_GTX_integer | Add support for integer for core functions  | 
|  GLM_GTX_intersect | Add intersection functions  | 
|  GLM_GTX_io | Std::[w]ostream support for glm types  | 
|  GLM_GTX_log_base | Logarithm for any base  | 
|  GLM_GTX_matrix_cross_product | Build cross product matrices  | 
|  GLM_GTX_matrix_decompose | Decomposes a model matrix to translations, rotation and scale components  | 
|  GLM_GTX_matrix_interpolation | Allows to directly interpolate two exiciting matrices  | 
|  GLM_GTX_matrix_major_storage | Build matrices with specific matrix order, row or column  | 
|  GLM_GTX_matrix_operation | Build diagonal matrices from vectors  | 
|  GLM_GTX_matrix_query | Query to evaluate matrix properties  | 
|  GLM_GTX_matrix_transform_2d | Defines functions that generate common 2d transformation matrices  | 
|  GLM_GTX_mixed_producte | Mixed product of 3 vectors  | 
|  GLM_GTX_norm | Various ways to compute vector norms  | 
|  GLM_GTX_normal | Compute the normal of a triangle  | 
|  GLM_GTX_normalize_dot | Dot product of vectors that need to be normalize with a single square root  | 
|  GLM_GTX_number_precision | Defined size types  | 
|  GLM_GTX_optimum_pow | Integer exponentiation of power functions  | 
|  GLM_GTX_orthonormalize | Orthonormalize matrices  | 
|  GLM_GTX_perpendicular | Perpendicular of a vector from other one  | 
|  GLM_GTX_polar_coordinates | Conversion from Euclidean space to polar space and revert  | 
|  GLM_GTX_projection | Projection of a vector to other one  | 
|  GLM_GTX_quaternion | Extented quaternion types and functions  | 
|  GLM_GTX_range | Defines begin and end for vectors and matrices  | 
|  GLM_GTX_raw_data | Projection of a vector to other one  | 
|  GLM_GTX_rotate_normalized_axis | Quaternions and matrices rotations around normalized axis  | 
|  GLM_GTX_rotate_vector | Function to directly rotate a vector  | 
|  GLM_GTX_scalar_relational | Extend a position from a source to a position at a defined length  | 
|  GLM_GTX_spline | Spline functions  | 
|  GLM_GTX_std_based_type | Adds vector types based on STL value types  | 
|  GLM_GTX_string_cast | Setup strings for GLM type values  | 
|  GLM_GTX_transform | Add transformation matrices  | 
|  GLM_GTX_transform2 | Add extra transformation matrices  | 
|  GLM_GTX_type_aligned | Defines aligned types  | 
|  GLM_GTX_type_trait | Defines traits for each type  | 
|  GLM_GTX_vec_swizzle | Functions to perform swizzle operation  | 
|  GLM_GTX_vector_angle | Compute angle between vectors  | 
|  GLM_GTX_vector_query | Query informations of vector types  | 
|  GLM_GTX_wrap | Wrapping mode of texture coordinates  | 
|  ▼GLM Core | The core of GLM, which implements exactly and only the GLSL specification to the degree possible  | 
|  Common functions | These all operate component-wise  | 
|  Exponential functions | These all operate component-wise  | 
|  Geometric functions | These operate on vectors as vectors, not component-wise  | 
|  Integer functions | These all operate component-wise  | 
|  Matrix functions | For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision  | 
|  Floating-Point Pack and Unpack Functions | These functions do not operate component-wise, rather as described in each case  | 
|  Angle and Trigonometry Functions | Function parameters specified as angle are assumed to be in units of radians  | 
|  Vector Relational Functions | Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results  | 
|  ▼Types | The standard types defined by the specification  | 
|  Precision types | Non-GLSL types that are used to define precision-based types  | 
|  Precision types | Non-GLSL types that are used to define precision-based types  | 
|  Template types | The generic template types used as the basis for the core types  |