summaryrefslogtreecommitdiff
path: root/src/glm/core/func_exponential.hpp
blob: c24ef04d1853c4cfdbbc521a42179380e5f01af8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
///////////////////////////////////////////////////////////////////////////////////////////////////
// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
///////////////////////////////////////////////////////////////////////////////////////////////////
// Created : 2008-08-08
// Updated : 2010-02-04
// Licence : This source is under MIT License
// File    : glm/core/func_exponential.hpp
///////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef glm_core_func_exponential
#define glm_core_func_exponential

namespace glm
{
	namespace core{
	namespace function{
	//! Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace.
	namespace exponential{

	/// \addtogroup core_funcs
	///@{

	//! Returns x raised to the y power. 
    //! 
    //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/pow.xml">GLSL pow man page</a>
    //! \li GLSL 1.30.08 specification, section 8.2
	template <typename genType> 
	genType pow(genType const & x, genType const & y);

	//! Returns the natural exponentiation of x, i.e., e^x.
    //! 
    //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp.xml">GLSL exp man page</a>
    //! \li GLSL 1.30.08 specification, section 8.2
	template <typename genType> 
	genType exp(genType const & x);

	//! Returns the natural logarithm of x, i.e., 
	//! returns the value y which satisfies the equation x = e^y. 
	//! Results are undefined if x <= 0.
    //! 
    //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log.xml">GLSL log man page</a>
    //! \li GLSL 1.30.08 specification, section 8.2
	template <typename genType> 
	genType log(genType const & x);

	//! Returns 2 raised to the x power.
    //! 
    //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp2.xml">GLSL exp2 man page</a>
    //! \li GLSL 1.30.08 specification, section 8.2
	template <typename genType> 
	genType exp2(genType const & x);

	//! Returns the base 2 log of x, i.e., returns the value y, 
	//! which satisfies the equation x = 2 ^ y.
    //! 
    //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log2.xml">GLSL log2 man page</a>
    //! \li GLSL 1.30.08 specification, section 8.2
	template <typename genType> 
	genType log2(genType const & x);

	//! Returns the positive square root of x.
    //! 
    //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sqrt.xml">GLSL sqrt man page</a>
    //! \li GLSL 1.30.08 specification, section 8.2
	template <typename genType> 
	genType sqrt(genType const & x);
    
	//! Returns the reciprocal of the positive square root of x.
    //! 
    //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inversesqrt.xml">GLSL inversesqrt man page</a>
    //! \li GLSL 1.30.08 specification, section 8.2
	template <typename genType> 
	genType inversesqrt(genType const & x);

	///@}

	}//namespace exponential
	}//namespace function
	}//namespace core

	using namespace core::function::exponential;
}//namespace glm

#include "func_exponential.inl"

#endif//glm_core_func_exponential