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 {
00027 namespace test{
00028 void main_gtx_fast_exponential();
00029 }
00030
00031 namespace gtx{
00033 namespace fast_exponential
00034 {
00035 using namespace gtc::half_float;
00038
00041 template <typename valType>
00042 valType fastPow(
00043 valType const & x,
00044 valType const & y);
00045
00048 template <typename T, typename U>
00049 T fastPow(
00050 const T& x,
00051 const U& y);
00052
00055 template <typename T>
00056 T fastExp(const T& x);
00057
00060 template <typename T>
00061 T fastLog(const T& x);
00062
00065 template <typename T>
00066 T fastExp2(const T& x);
00067
00070 template <typename T>
00071 T fastLog2(const T& x);
00072
00075 template <typename T>
00076 T fastLn(const T& x);
00077
00079
00080 }
00081 }
00082 }
00083
00084 #include "fast_exponential.inl"
00085
00086 namespace glm{using namespace gtx::fast_exponential;}
00087
00088 #endif//glm_gtx_fast_exponential