1 /// @ref gtc_reciprocal
2 /// @file glm/gtc/reciprocal.hpp
3 ///
4 /// @see core (dependence)
5 ///
6 /// @defgroup gtc_reciprocal GLM_GTC_reciprocal
7 /// @ingroup gtc
8 ///
9 /// @brief Define secant, cosecant and cotangent functions.
10 ///
11 /// <glm/gtc/reciprocal.hpp> need to be included to use these features.
12 
13 #pragma once
14 
15 // Dependencies
16 #include "../detail/setup.hpp"
17 
18 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
19 #	pragma message("GLM: GLM_GTC_reciprocal extension included")
20 #endif
21 
22 namespace glm
23 {
24 	/// @addtogroup gtc_reciprocal
25 	/// @{
26 
27 	/// Secant function.
28 	/// hypotenuse / adjacent or 1 / cos(x)
29 	///
30 	/// @tparam genType Floating-point scalar or vector types.
31 	///
32 	/// @see gtc_reciprocal
33 	template <typename genType>
34 	GLM_FUNC_DECL genType sec(genType angle);
35 
36 	/// Cosecant function.
37 	/// hypotenuse / opposite or 1 / sin(x)
38 	///
39 	/// @tparam genType Floating-point scalar or vector types.
40 	///
41 	/// @see gtc_reciprocal
42 	template <typename genType>
43 	GLM_FUNC_DECL genType csc(genType angle);
44 
45 	/// Cotangent function.
46 	/// adjacent / opposite or 1 / tan(x)
47 	///
48 	/// @tparam genType Floating-point scalar or vector types.
49 	///
50 	/// @see gtc_reciprocal
51 	template <typename genType>
52 	GLM_FUNC_DECL genType cot(genType angle);
53 
54 	/// Inverse secant function.
55 	///
56 	/// @return Return an angle expressed in radians.
57 	/// @tparam genType Floating-point scalar or vector types.
58 	///
59 	/// @see gtc_reciprocal
60 	template <typename genType>
61 	GLM_FUNC_DECL genType asec(genType x);
62 
63 	/// Inverse cosecant function.
64 	///
65 	/// @return Return an angle expressed in radians.
66 	/// @tparam genType Floating-point scalar or vector types.
67 	///
68 	/// @see gtc_reciprocal
69 	template <typename genType>
70 	GLM_FUNC_DECL genType acsc(genType x);
71 
72 	/// Inverse cotangent function.
73 	///
74 	/// @return Return an angle expressed in radians.
75 	/// @tparam genType Floating-point scalar or vector types.
76 	///
77 	/// @see gtc_reciprocal
78 	template <typename genType>
79 	GLM_FUNC_DECL genType acot(genType x);
80 
81 	/// Secant hyperbolic function.
82 	///
83 	/// @tparam genType Floating-point scalar or vector types.
84 	///
85 	/// @see gtc_reciprocal
86 	template <typename genType>
87 	GLM_FUNC_DECL genType sech(genType angle);
88 
89 	/// Cosecant hyperbolic function.
90 	///
91 	/// @tparam genType Floating-point scalar or vector types.
92 	///
93 	/// @see gtc_reciprocal
94 	template <typename genType>
95 	GLM_FUNC_DECL genType csch(genType angle);
96 
97 	/// Cotangent hyperbolic function.
98 	///
99 	/// @tparam genType Floating-point scalar or vector types.
100 	///
101 	/// @see gtc_reciprocal
102 	template <typename genType>
103 	GLM_FUNC_DECL genType coth(genType angle);
104 
105 	/// Inverse secant hyperbolic function.
106 	///
107 	/// @return Return an angle expressed in radians.
108 	/// @tparam genType Floating-point scalar or vector types.
109 	///
110 	/// @see gtc_reciprocal
111 	template <typename genType>
112 	GLM_FUNC_DECL genType asech(genType x);
113 
114 	/// Inverse cosecant hyperbolic function.
115 	///
116 	/// @return Return an angle expressed in radians.
117 	/// @tparam genType Floating-point scalar or vector types.
118 	///
119 	/// @see gtc_reciprocal
120 	template <typename genType>
121 	GLM_FUNC_DECL genType acsch(genType x);
122 
123 	/// Inverse cotangent hyperbolic function.
124 	///
125 	/// @return Return an angle expressed in radians.
126 	/// @tparam genType Floating-point scalar or vector types.
127 	///
128 	/// @see gtc_reciprocal
129 	template <typename genType>
130 	GLM_FUNC_DECL genType acoth(genType x);
131 
132 	/// @}
133 }//namespace glm
134 
135 #include "reciprocal.inl"
136