00001
00002
00004
00005
00006
00007
00009
00010
00011
00013
00014 #ifndef glm_gtx_fast_exponential
00015 #define glm_gtx_fast_exponential
00016
00017
00018 #include "../glm.hpp"
00019 #include "../gtc/half_float.hpp"
00020
00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
00022 # pragma message("GLM: GLM_GTX_fast_exponential extension included")
00023 #endif
00024
00025 namespace glm{
00026 namespace gtx{
00027 namespace fast_exponential
00028 {
00029 using namespace gtc::half_float;
00032
00035 template <typename valType>
00036 valType fastPow(
00037 valType const & x,
00038 valType const & y);
00039
00042 template <typename T, typename U>
00043 T fastPow(
00044 const T& x,
00045 const U& y);
00046
00049 template <typename T>
00050 T fastExp(const T& x);
00051
00054 template <typename T>
00055 T fastLog(const T& x);
00056
00059 template <typename T>
00060 T fastExp2(const T& x);
00061
00064 template <typename T>
00065 T fastLog2(const T& x);
00066
00069 template <typename T>
00070 T fastLn(const T& x);
00071
00073 }
00074 }
00075 }
00076
00077 #include "fast_exponential.inl"
00078
00079 namespace glm{using namespace gtx::fast_exponential;}
00080
00081 #endif//glm_gtx_fast_exponential