00001
00002
00004
00005
00006
00007
00009
00010
00011
00012
00014
00015 #ifndef glm_gtx_fast_exponential
00016 #define glm_gtx_fast_exponential
00017
00018
00019 #include "../glm.hpp"
00020 #include "../gtc/half_float.hpp"
00021 #include "../gtc/double_float.hpp"
00022
00023 namespace glm
00024 {
00025 namespace test{
00026 void main_gtx_fast_exponential();
00027 }
00028
00029 namespace gtx{
00031 namespace fast_exponential
00032 {
00033 using namespace gtc::half_float;
00034 using namespace gtc::double_float;
00035
00038 template <typename valType>
00039 valType fastPow(
00040 valType const & x,
00041 valType const & y);
00042
00045 template <typename T, typename U>
00046 T fastPow(
00047 const T& x,
00048 const U& y);
00049
00052 template <typename T>
00053 T fastExp(const T& x);
00054
00057 template <typename T>
00058 T fastLog(const T& x);
00059
00062 template <typename T>
00063 T fastExp2(const T& x);
00064
00067 template <typename T>
00068 T fastLog2(const T& x);
00069
00072 template <typename T>
00073 T fastLn(const T& x);
00074
00075 }
00076 }
00077 }
00078
00079 #define GLM_GTX_fast_exponential namespace gtx::fast_exponential
00080 #ifndef GLM_GTX_GLOBAL
00081 namespace glm {using GLM_GTX_fast_exponential;}
00082 #endif//GLM_GTX_GLOBAL
00083
00084 #include "fast_exponential.inl"
00085
00086 #endif//glm_gtx_fast_exponential