18 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 
   19 #       pragma message("GLM: GLM_GTX_associated_min_max extension included") 
   29         template<
typename T, 
typename U, precision P>
 
   34         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
   36                 vecType<T, P> 
const & x, vecType<U, P> 
const & a,
 
   37                 vecType<T, P> 
const & y, vecType<U, P> 
const & b);
 
   41         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
   43                 T x, 
const vecType<U, P>& a,
 
   44                 T y, 
const vecType<U, P>& b);
 
   48         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
   50                 vecType<T, P> 
const & x, U a,
 
   51                 vecType<T, P> 
const & y, U b);
 
   55         template<
typename T, 
typename U>
 
   63         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
   65                 vecType<T, P> 
const & x, vecType<U, P> 
const & a,
 
   66                 vecType<T, P> 
const & y, vecType<U, P> 
const & b,
 
   67                 vecType<T, P> 
const & z, vecType<U, P> 
const & c);
 
   71         template<
typename T, 
typename U>
 
   80         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
   82                 vecType<T, P> 
const & x, vecType<U, P> 
const & a,
 
   83                 vecType<T, P> 
const & y, vecType<U, P> 
const & b,
 
   84                 vecType<T, P> 
const & z, vecType<U, P> 
const & c,
 
   85                 vecType<T, P> 
const & w, vecType<U, P> 
const & d);
 
   89         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
   91                 T x, vecType<U, P> 
const & a,
 
   92                 T y, vecType<U, P> 
const & b,
 
   93                 T z, vecType<U, P> 
const & c,
 
   94                 T w, vecType<U, P> 
const & d);
 
   98         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  100                 vecType<T, P> 
const & x, U a,
 
  101                 vecType<T, P> 
const & y, U b,
 
  102                 vecType<T, P> 
const & z, U c,
 
  103                 vecType<T, P> 
const & w, U d);
 
  107         template<
typename T, 
typename U>
 
  112         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  114                 vecType<T, P> 
const & x, vecType<U, P> 
const & a,
 
  115                 vecType<T, P> 
const & y, vecType<U, P> 
const & b);
 
  119         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  121                 T x, vecType<U, P> 
const & a,
 
  122                 T y, vecType<U, P> 
const & b);
 
  126         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  128                 vecType<T, P> 
const & x, U a,
 
  129                 vecType<T, P> 
const & y, U b);
 
  133         template<
typename T, 
typename U>
 
  141         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  143                 vecType<T, P> 
const & x, vecType<U, P> 
const & a,
 
  144                 vecType<T, P> 
const & y, vecType<U, P> 
const & b,
 
  145                 vecType<T, P> 
const & z, vecType<U, P> 
const & c);
 
  149         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  151                 T x, vecType<U, P> 
const & a,
 
  152                 T y, vecType<U, P> 
const & b,
 
  153                 T z, vecType<U, P> 
const & c);
 
  157         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  159                 vecType<T, P> 
const & x, U a,
 
  160                 vecType<T, P> 
const & y, U b,
 
  161                 vecType<T, P> 
const & z, U c);
 
  165         template<
typename T, 
typename U>
 
  174         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  176                 vecType<T, P> 
const & x, vecType<U, P> 
const & a,
 
  177                 vecType<T, P> 
const & y, vecType<U, P> 
const & b,
 
  178                 vecType<T, P> 
const & z, vecType<U, P> 
const & c,
 
  179                 vecType<T, P> 
const & w, vecType<U, P> 
const & d);
 
  183         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  185                 T x, vecType<U, P> 
const & a,
 
  186                 T y, vecType<U, P> 
const & b,
 
  187                 T z, vecType<U, P> 
const & c,
 
  188                 T w, vecType<U, P> 
const & d);
 
  192         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  194                 vecType<T, P> 
const & x, U a,
 
  195                 vecType<T, P> 
const & y, U b,
 
  196                 vecType<T, P> 
const & z, U c,
 
  197                 vecType<T, P> 
const & w, U d);
 
  202 #include "associated_min_max.inl" 
GLM_FUNC_DECL vecType< U, P > associatedMax(vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)
Maximum comparison between 4 variables and returns 4 associated variable values. 
GLM_FUNC_DECL vecType< U, P > associatedMin(vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)
Minimum comparison between 4 variables and returns 4 associated variable values.