fast_exponential.hpp

00001 
00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
00004 // Created : 2006-01-09
00005 // Updated : 2006-11-13
00006 // Licence : This source is under MIT License
00007 // File    : glm/gtx/fast_exponential.hpp
00009 // Dependency:
00010 // - GLM core
00011 // - GLM_GTC_half_float
00013 
00014 #ifndef glm_gtx_fast_exponential
00015 #define glm_gtx_fast_exponential
00016 
00017 // Dependency:
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         }//namespace test
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         }//namespace fast_exponential
00081         }//namespace gtx
00082 }//namespace glm
00083 
00084 #include "fast_exponential.inl"
00085 
00086 namespace glm{using namespace gtx::fast_exponential;}
00087 
00088 #endif//glm_gtx_fast_exponential