<ahref="a00013.html">Go to the documentation of this file.</a><divclass="fragment"><divclass="line"><aname="l00001"></a><spanclass="lineno"> 1</span> </div>
<divclass="line"><aname="l00051"></a><spanclass="lineno"> 51</span> <spanclass="preprocessor">#if(GLM_COMPILER & GLM_COMPILER_VC)</span></div>
<divclass="line"><aname="l00052"></a><spanclass="lineno"> 52</span> <spanclass="preprocessor"></span><spanclass="preprocessor"># include <cfloat></span></div>
<divclass="line"><aname="l00053"></a><spanclass="lineno"> 53</span> <spanclass="preprocessor">#elif(GLM_COMPILER & GLM_COMPILER_GCC)</span></div>
<divclass="line"><aname="l00054"></a><spanclass="lineno"> 54</span> <spanclass="preprocessor"></span><spanclass="preprocessor"># include <cmath></span></div>
<divclass="line"><aname="l00055"></a><spanclass="lineno"> 55</span> <spanclass="preprocessor"># if(GLM_PLATFORM & GLM_PLATFORM_ANDROID)</span></div>
<divclass="line"><aname="l00065"></a><spanclass="lineno"><aclass="code"href="a00166.html#ga5494ba3a95ea6594c86fc75236886864"> 65</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER T <aclass="code"href="a00166.html#ga5494ba3a95ea6594c86fc75236886864"title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(T x, T y, T a){<spanclass="keywordflow">return</span><aclass="code"href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<divclass="line"><aname="l00066"></a><spanclass="lineno"><aclass="code"href="a00166.html#ga27390ee6e4797335f0a751e021038a41"> 66</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER detail::tvec2<T><aclass="code"href="a00166.html#ga5494ba3a95ea6594c86fc75236886864"title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<spanclass="keyword">const</span> detail::tvec2<T>& x, <spanclass="keyword">const</span> detail::tvec2<T>& y, T a){<spanclass="keywordflow">return</span><aclass="code"href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<divclass="line"><aname="l00067"></a><spanclass="lineno"><aclass="code"href="a00166.html#gaf2ca5584fe9c3a2e5e5b12bbfcecfe38"> 67</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER detail::tvec3<T><aclass="code"href="a00166.html#ga5494ba3a95ea6594c86fc75236886864"title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<spanclass="keyword">const</span> detail::tvec3<T>& x, <spanclass="keyword">const</span> detail::tvec3<T>& y, T a){<spanclass="keywordflow">return</span><aclass="code"href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<divclass="line"><aname="l00068"></a><spanclass="lineno"><aclass="code"href="a00166.html#gae3cac5586d127568383d7df9d258a443"> 68</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER detail::tvec4<T><aclass="code"href="a00166.html#ga5494ba3a95ea6594c86fc75236886864"title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<spanclass="keyword">const</span> detail::tvec4<T>& x, <spanclass="keyword">const</span> detail::tvec4<T>& y, T a){<spanclass="keywordflow">return</span><aclass="code"href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<divclass="line"><aname="l00069"></a><spanclass="lineno"><aclass="code"href="a00166.html#ga535230f9887c77a056e535c3c7cf741c"> 69</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER detail::tvec2<T><aclass="code"href="a00166.html#ga5494ba3a95ea6594c86fc75236886864"title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<spanclass="keyword">const</span> detail::tvec2<T>& x, <spanclass="keyword">const</span> detail::tvec2<T>& y, <spanclass="keyword">const</span> detail::tvec2<T>& a){<spanclass="keywordflow">return</span><aclass="code"href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<divclass="line"><aname="l00070"></a><spanclass="lineno"><aclass="code"href="a00166.html#ga9e840980e570e588d18793ecfe152bc4"> 70</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER detail::tvec3<T><aclass="code"href="a00166.html#ga5494ba3a95ea6594c86fc75236886864"title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<spanclass="keyword">const</span> detail::tvec3<T>& x, <spanclass="keyword">const</span> detail::tvec3<T>& y, <spanclass="keyword">const</span> detail::tvec3<T>& a){<spanclass="keywordflow">return</span><aclass="code"href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<divclass="line"><aname="l00071"></a><spanclass="lineno"><aclass="code"href="a00166.html#ga4f8591445ad6b900b0456dc2d01f8ee4"> 71</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER detail::tvec4<T><aclass="code"href="a00166.html#ga5494ba3a95ea6594c86fc75236886864"title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<spanclass="keyword">const</span> detail::tvec4<T>& x, <spanclass="keyword">const</span> detail::tvec4<T>& y, <spanclass="keyword">const</span> detail::tvec4<T>& a){<spanclass="keywordflow">return</span><aclass="code"href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<divclass="line"><aname="l00073"></a><spanclass="lineno"><aclass="code"href="a00166.html#gaa299989529dc364bf823ed340f92d1d0"> 73</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER T <aclass="code"href="a00166.html#gaa299989529dc364bf823ed340f92d1d0"title="Returns the slurp interpolation between two quaternions.">slerp</a>(detail::tquat<T><spanclass="keyword">const</span>& x, detail::tquat<T><spanclass="keyword">const</span>& y, T <spanclass="keyword">const</span>& a){<spanclass="keywordflow">return</span><aclass="code"href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<divclass="line"><aname="l00075"></a><spanclass="lineno"><aclass="code"href="a00166.html#ga744b98814a35336e25cc0d1ba30f63f7"> 75</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER T <aclass="code"href="a00166.html#ga744b98814a35336e25cc0d1ba30f63f7"title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(T x){<spanclass="keywordflow">return</span><aclass="code"href="a00129.html#ga99b1ce602a02833646e5077345858da4"title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(x, T(0), T(1));} </div>
<divclass="line"><aname="l00076"></a><spanclass="lineno"><aclass="code"href="a00166.html#ga79ae98d7b28ae3095a653258b5aa2d9d"> 76</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER detail::tvec2<T><aclass="code"href="a00166.html#ga744b98814a35336e25cc0d1ba30f63f7"title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(<spanclass="keyword">const</span> detail::tvec2<T>& x){<spanclass="keywordflow">return</span><aclass="code"href="a00129.html#ga99b1ce602a02833646e5077345858da4"title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(x, T(0), T(1));} </div>
<divclass="line"><aname="l00077"></a><spanclass="lineno"><aclass="code"href="a00166.html#gaaa1fd467493e144ce1b2043c776afdcd"> 77</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER detail::tvec3<T><aclass="code"href="a00166.html#ga744b98814a35336e25cc0d1ba30f63f7"title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(<spanclass="keyword">const</span> detail::tvec3<T>& x){<spanclass="keywordflow">return</span><aclass="code"href="a00129.html#ga99b1ce602a02833646e5077345858da4"title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(x, T(0), T(1));} </div>
<divclass="line"><aname="l00078"></a><spanclass="lineno"><aclass="code"href="a00166.html#ga71c18fe8bc1e69c2b3c11feb13cf6695"> 78</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER detail::tvec4<T><aclass="code"href="a00166.html#ga744b98814a35336e25cc0d1ba30f63f7"title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(<spanclass="keyword">const</span> detail::tvec4<T>& x){<spanclass="keywordflow">return</span><aclass="code"href="a00129.html#ga99b1ce602a02833646e5077345858da4"title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(x, T(0), T(1));} </div>
<divclass="line"><aname="l00080"></a><spanclass="lineno"><aclass="code"href="a00166.html#gabdc84536daab78c6a169eeb93cf9cb3b"> 80</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER T <aclass="code"href="a00166.html#gabdc84536daab78c6a169eeb93cf9cb3b"title="Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...">atan2</a>(T x, T y){<spanclass="keywordflow">return</span><aclass="code"href="a00136.html#ga2394d11075a74869cd88473c76722bc8"title="Arc tangent.">atan</a>(x, y);} </div>
<divclass="line"><aname="l00081"></a><spanclass="lineno"><aclass="code"href="a00166.html#ga808e842fd066ba7f41c71add20a02730"> 81</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER detail::tvec2<T><aclass="code"href="a00166.html#gabdc84536daab78c6a169eeb93cf9cb3b"title="Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...">atan2</a>(<spanclass="keyword">const</span> detail::tvec2<T>& x, <spanclass="keyword">const</span> detail::tvec2<T>& y){<spanclass="keywordflow">return</span><aclass="code"href="a00136.html#ga2394d11075a74869cd88473c76722bc8"title="Arc tangent.">atan</a>(x, y);} </div>
<divclass="line"><aname="l00082"></a><spanclass="lineno"><aclass="code"href="a00166.html#gadd42ce7d69bb6a0e75c9f0945fbc2ab5"> 82</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER detail::tvec3<T><aclass="code"href="a00166.html#gabdc84536daab78c6a169eeb93cf9cb3b"title="Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...">atan2</a>(<spanclass="keyword">const</span> detail::tvec3<T>& x, <spanclass="keyword">const</span> detail::tvec3<T>& y){<spanclass="keywordflow">return</span><aclass="code"href="a00136.html#ga2394d11075a74869cd88473c76722bc8"title="Arc tangent.">atan</a>(x, y);} </div>
<divclass="line"><aname="l00083"></a><spanclass="lineno"><aclass="code"href="a00166.html#ga593a3c43b415ec4a8e87ccfb55570f64"> 83</a></span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> T> GLM_FUNC_QUALIFIER detail::tvec4<T><aclass="code"href="a00166.html#gabdc84536daab78c6a169eeb93cf9cb3b"title="Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...">atan2</a>(<spanclass="keyword">const</span> detail::tvec4<T>& x, <spanclass="keyword">const</span> detail::tvec4<T>& y){<spanclass="keywordflow">return</span><aclass="code"href="a00136.html#ga2394d11075a74869cd88473c76722bc8"title="Arc tangent.">atan</a>(x, y);} </div>
<divclass="line"><aname="l00085"></a><spanclass="lineno"> 85</span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> genType><spanclass="keywordtype">bool</span><aclass="code"href="a00166.html#ga39d6ffe6d42d4ec33036e735d7c39781"title="Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...">isfinite</a>(genType <spanclass="keyword">const</span>& x); </div>
<divclass="line"><aname="l00086"></a><spanclass="lineno"> 86</span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> valType> detail::tvec2<bool><aclass="code"href="a00166.html#ga39d6ffe6d42d4ec33036e735d7c39781"title="Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...">isfinite</a>(<spanclass="keyword">const</span> detail::tvec2<valType>& x); </div>
<divclass="line"><aname="l00087"></a><spanclass="lineno"> 87</span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> valType> detail::tvec3<bool><aclass="code"href="a00166.html#ga39d6ffe6d42d4ec33036e735d7c39781"title="Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...">isfinite</a>(<spanclass="keyword">const</span> detail::tvec3<valType>& x); </div>
<divclass="line"><aname="l00088"></a><spanclass="lineno"> 88</span> <spanclass="keyword">template</span><<spanclass="keyword">typename</span> valType> detail::tvec4<bool><aclass="code"href="a00166.html#ga39d6ffe6d42d4ec33036e735d7c39781"title="Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...">isfinite</a>(<spanclass="keyword">const</span> detail::tvec4<valType>& x); </div>
<divclass="line"><aname="l00090"></a><spanclass="lineno"><aclass="code"href="a00166.html#gaddcd7aa2e30e61af5b38660613d3979e"> 90</a></span> <spanclass="keyword">typedef</span><spanclass="keywordtype">bool</span><aclass="code"href="a00166.html#gaddcd7aa2e30e61af5b38660613d3979e"title="boolean type with 1 component. (From GLM_GTX_compatibility extension)">bool1</a>; </div>
<divclass="line"><aname="l00091"></a><spanclass="lineno"><aclass="code"href="a00166.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d"> 91</a></span> <spanclass="keyword">typedef</span> detail::tvec2<bool><aclass="code"href="a00166.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d"title="boolean type with 2 components. (From GLM_GTX_compatibility extension)">bool2</a>; </div>
<divclass="line"><aname="l00092"></a><spanclass="lineno"><aclass="code"href="a00166.html#gade36f151806e985eec29fdf96ae6a2bb"> 92</a></span> <spanclass="keyword">typedef</span> detail::tvec3<bool><aclass="code"href="a00166.html#gade36f151806e985eec29fdf96ae6a2bb"title="boolean type with 3 components. (From GLM_GTX_compatibility extension)">bool3</a>; </div>
<divclass="line"><aname="l00093"></a><spanclass="lineno"><aclass="code"href="a00166.html#ga1ee8c362caed549a5a83fdd9db6ec6c2"> 93</a></span> <spanclass="keyword">typedef</span> detail::tvec4<bool><aclass="code"href="a00166.html#ga1ee8c362caed549a5a83fdd9db6ec6c2"title="boolean type with 4 components. (From GLM_GTX_compatibility extension)">bool4</a>; </div>