1 /// @ref gtx_fast_exponential 2 /// @file glm/gtx/fast_exponential.hpp 3 /// 4 /// @see core (dependence) 5 /// @see gtx_half_float (dependence) 6 /// 7 /// @defgroup gtx_fast_exponential GLM_GTX_fast_exponential 8 /// @ingroup gtx 9 /// 10 /// @brief Fast but less accurate implementations of exponential based functions. 11 /// 12 /// <glm/gtx/fast_exponential.hpp> need to be included to use these functionalities. 13 14 #pragma once 15 16 // Dependency: 17 #include "../glm.hpp" 18 19 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 20 # pragma message("GLM: GLM_GTX_fast_exponential extension included") 21 #endif 22 23 namespace glm 24 { 25 /// @addtogroup gtx_fast_exponential 26 /// @{ 27 28 /// Faster than the common pow function but less accurate. 29 /// @see gtx_fast_exponential 30 template <typename genType> 31 GLM_FUNC_DECL genType fastPow(genType x, genType y); 32 33 /// Faster than the common pow function but less accurate. 34 /// @see gtx_fast_exponential 35 template <typename T, precision P, template <typename, precision> class vecType> 36 GLM_FUNC_DECL vecType<T, P> fastPow(vecType<T, P> const & x, vecType<T, P> const & y); 37 38 /// Faster than the common pow function but less accurate. 39 /// @see gtx_fast_exponential 40 template <typename genTypeT, typename genTypeU> 41 GLM_FUNC_DECL genTypeT fastPow(genTypeT x, genTypeU y); 42 43 /// Faster than the common pow function but less accurate. 44 /// @see gtx_fast_exponential 45 template <typename T, precision P, template <typename, precision> class vecType> 46 GLM_FUNC_DECL vecType<T, P> fastPow(vecType<T, P> const & x); 47 48 /// Faster than the common exp function but less accurate. 49 /// @see gtx_fast_exponential 50 template <typename T> 51 GLM_FUNC_DECL T fastExp(T x); 52 53 /// Faster than the common exp function but less accurate. 54 /// @see gtx_fast_exponential 55 template <typename T, precision P, template <typename, precision> class vecType> 56 GLM_FUNC_DECL vecType<T, P> fastExp(vecType<T, P> const & x); 57 58 /// Faster than the common log function but less accurate. 59 /// @see gtx_fast_exponential 60 template <typename T> 61 GLM_FUNC_DECL T fastLog(T x); 62 63 /// Faster than the common exp2 function but less accurate. 64 /// @see gtx_fast_exponential 65 template <typename T, precision P, template <typename, precision> class vecType> 66 GLM_FUNC_DECL vecType<T, P> fastLog(vecType<T, P> const & x); 67 68 /// Faster than the common exp2 function but less accurate. 69 /// @see gtx_fast_exponential 70 template <typename T> 71 GLM_FUNC_DECL T fastExp2(T x); 72 73 /// Faster than the common exp2 function but less accurate. 74 /// @see gtx_fast_exponential 75 template <typename T, precision P, template <typename, precision> class vecType> 76 GLM_FUNC_DECL vecType<T, P> fastExp2(vecType<T, P> const & x); 77 78 /// Faster than the common log2 function but less accurate. 79 /// @see gtx_fast_exponential 80 template <typename T> 81 GLM_FUNC_DECL T fastLog2(T x); 82 83 /// Faster than the common log2 function but less accurate. 84 /// @see gtx_fast_exponential 85 template <typename T, precision P, template <typename, precision> class vecType> 86 GLM_FUNC_DECL vecType<T, P> fastLog2(vecType<T, P> const & x); 87 88 /// @} 89 }//namespace glm 90 91 #include "fast_exponential.inl" 92