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