Angle and Trigonometry Functions
Core features

## Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | acos (vec< L, T, Q > const &x)
| Arc cosine. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | acosh (vec< L, T, Q > const &x)
| Arc hyperbolic cosine; returns the non-negative inverse of cosh. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | asin (vec< L, T, Q > const &x)
| Arc sine. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | asinh (vec< L, T, Q > const &x)
| Arc hyperbolic sine; returns the inverse of sinh. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | atan (vec< L, T, Q > const &y, vec< L, T, Q > const &x)
| Arc tangent. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | atan (vec< L, T, Q > const &y_over_x)
| Arc tangent. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | atanh (vec< L, T, Q > const &x)
| Arc hyperbolic tangent; returns the inverse of tanh. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | cos (vec< L, T, Q > const &angle)
| The standard trigonometric cosine function. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | cosh (vec< L, T, Q > const &angle)
| Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > | degrees (vec< L, T, Q > const &radians)
| Converts radians to degrees and returns the result. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > | radians (vec< L, T, Q > const &degrees)
| Converts degrees to radians and returns the result. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | sin (vec< L, T, Q > const &angle)
| The standard trigonometric sine function. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | sinh (vec< L, T, Q > const &angle)
| Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | tan (vec< L, T, Q > const &angle)
| The standard trigonometric tangent function. More...
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | tanh (vec< L, T, Q > const &angle)
| Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) More...

## Detailed Description

Function parameters specified as angle are assumed to be in units of radians. In no case will any of these functions result in a divide by zero error. If the divisor of a ratio is 0, then results will be undefined.

These all operate component-wise. The description is per component.

Include <glm/trigonometric.hpp> to use these core features.

See also
  ext_vector_trigonometric

## Function Documentation

## acos()

GLM_FUNC_DECL vec<L, T, Q> glm::acos | ( | vec< L, T, Q > const & | x | ) |

Arc cosine.

Returns an angle whose cosine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| > 1.

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL acos man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## acosh()

GLM_FUNC_DECL vec<L, T, Q> glm::acosh | ( | vec< L, T, Q > const & | x | ) |

Arc hyperbolic cosine; returns the non-negative inverse of cosh.

Results are undefined if x < 1.

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL acosh man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## asin()

GLM_FUNC_DECL vec<L, T, Q> glm::asin | ( | vec< L, T, Q > const & | x | ) |

Arc sine.

Returns an angle whose sine is x. The range of values returned by this function is [-PI/2, PI/2]. Results are undefined if |x| > 1.

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL asin man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## asinh()

GLM_FUNC_DECL vec<L, T, Q> glm::asinh | ( | vec< L, T, Q > const & | x | ) |

Arc hyperbolic sine; returns the inverse of sinh.

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL asinh man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## atan() [1/2]

GLM_FUNC_DECL vec<L, T, Q> glm::atan | ( | vec< L, T, Q > const & | y,
|  | vec< L, T, Q > const & | x
| ) |  |

Arc tangent.

Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0.

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL atan man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

Referenced by glm::atan2().

## atan() [2/2]

GLM_FUNC_DECL vec<L, T, Q> glm::atan | ( | vec< L, T, Q > const & | y_over_x | ) |

Arc tangent.

Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2].

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL atan man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## atanh()

GLM_FUNC_DECL vec<L, T, Q> glm::atanh | ( | vec< L, T, Q > const & | x | ) |

Arc hyperbolic tangent; returns the inverse of tanh.

Results are undefined if abs(x) >= 1.

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL atanh man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## cos()

GLM_FUNC_DECL vec<L, T, Q> glm::cos | ( | vec< L, T, Q > const & | angle | ) |

The standard trigonometric cosine function.

The values returned by this function will range from [-1, 1].

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL cos man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## cosh()

GLM_FUNC_DECL vec<L, T, Q> glm::cosh | ( | vec< L, T, Q > const & | angle | ) |

Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL cosh man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## degrees()

GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::degrees | ( | vec< L, T, Q > const & | radians | ) |

Converts radians to degrees and returns the result.

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL degrees man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## radians()

GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::radians | ( | vec< L, T, Q > const & | degrees | ) |

Converts degrees to radians and returns the result.

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL radians man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## sin()

GLM_FUNC_DECL vec<L, T, Q> glm::sin | ( | vec< L, T, Q > const & | angle | ) |

The standard trigonometric sine function.

The values returned by this function will range from [-1, 1].

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL sin man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## sinh()

GLM_FUNC_DECL vec<L, T, Q> glm::sinh | ( | vec< L, T, Q > const & | angle | ) |

Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL sinh man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## tan()

GLM_FUNC_DECL vec<L, T, Q> glm::tan | ( | vec< L, T, Q > const & | angle | ) |

The standard trigonometric tangent function.

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL tan man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions

## tanh()

GLM_FUNC_DECL vec<L, T, Q> glm::tanh | ( | vec< L, T, Q > const & | angle | ) |

Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)

Template Parameters

  L | Integer between 1 and 4 included that qualify the dimension of the vector
  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLSL tanh man page
  GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions