GLM_EXT_vector_common
Stable extensions

## Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | fmax (vec< L, T, Q > const &a, T b)
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b)
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | fmin (vec< L, T, Q > const &x, T y)
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | fmin (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | fmin (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > | fmin (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > | max (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z)
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > | max (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z, vec< L, T, Q > const &w)
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > | min (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > | min (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)

## Detailed Description

Exposes min and max functions for 3 to 4 vector parameters.

Include <glm/ext/vector_common.hpp> to use the features of this extension.

See also
  core_common
  GLM_EXT_scalar_common

## Function Documentation

## fmax() [1/4]

GLM_FUNC_DECL vec<L, T, Q> glm::fmax | ( | vec< L, T, Q > const & | a,
|  | T | b
| ) |  |

Returns y if x < y; otherwise, it returns x.

If one of the two arguments is NaN, the value of the other argument is returned.

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
  std::fmax documentation

## fmax() [2/4]

GLM_FUNC_DECL vec<L, T, Q> glm::fmax | ( | vec< L, T, Q > const & | a,
|  | vec< L, T, Q > const & | b
| ) |  |

Returns y if x < y; otherwise, it returns x.

If one of the two arguments is NaN, the value of the other argument is returned.

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
  std::fmax documentation

## fmax() [3/4]

GLM_FUNC_DECL vec<L, T, Q> glm::fmax | ( | vec< L, T, Q > const & | a,
|  | vec< L, T, Q > const & | b,
|  | vec< L, T, Q > const & | c
| ) |  |

Returns y if x < y; otherwise, it returns x.

If one of the two arguments is NaN, the value of the other argument is returned.

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
  std::fmax documentation

## fmax() [4/4]

GLM_FUNC_DECL vec<L, T, Q> glm::fmax | ( | vec< L, T, Q > const & | a,
|  | vec< L, T, Q > const & | b,
|  | vec< L, T, Q > const & | c,
|  | vec< L, T, Q > const & | d
| ) |  |

Returns y if x < y; otherwise, it returns x.

If one of the two arguments is NaN, the value of the other argument is returned.

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
  std::fmax documentation

## fmin() [1/4]

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

Returns y if y < x; otherwise, it returns x.

If one of the two arguments is NaN, the value of the other argument is returned.

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
  std::fmin documentation

## fmin() [2/4]

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

Returns y if y < x; otherwise, it returns x.

If one of the two arguments is NaN, the value of the other argument is returned.

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
  std::fmin documentation

## fmin() [3/4]

GLM_FUNC_DECL vec<L, T, Q> glm::fmin | ( | vec< L, T, Q > const & | a,
|  | vec< L, T, Q > const & | b,
|  | vec< L, T, Q > const & | c
| ) |  |

Returns y if y < x; otherwise, it returns x.

If one of the two arguments is NaN, the value of the other argument is returned.

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
  std::fmin documentation

## fmin() [4/4]

GLM_FUNC_DECL vec<L, T, Q> glm::fmin | ( | vec< L, T, Q > const & | a,
|  | vec< L, T, Q > const & | b,
|  | vec< L, T, Q > const & | c,
|  | vec< L, T, Q > const & | d
| ) |  |

Returns y if y < x; otherwise, it returns x.

If one of the two arguments is NaN, the value of the other argument is returned.

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
  std::fmin documentation

## max() [1/2]

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

Return the maximum component-wise values of 3 inputs.

Template Parameters

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

## max() [2/2]

GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::max | ( | vec< L, T, Q > const & | x,
|  | vec< L, T, Q > const & | y,
|  | vec< L, T, Q > const & | z,
|  | vec< L, T, Q > const & | w
| ) |  |

Return the maximum component-wise values of 4 inputs.

Template Parameters

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

## min() [1/2]

GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::min | ( | vec< L, T, Q > const & | a,
|  | vec< L, T, Q > const & | b,
|  | vec< L, T, Q > const & | c
| ) |  |

Return the minimum component-wise values of 3 inputs.

Template Parameters

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

## min() [2/2]

GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::min | ( | vec< L, T, Q > const & | a,
|  | vec< L, T, Q > const & | b,
|  | vec< L, T, Q > const & | c,
|  | vec< L, T, Q > const & | d
| ) |  |

Return the minimum component-wise values of 4 inputs.

Template Parameters

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