18 #ifndef GLM_ENABLE_EXPERIMENTAL 
   19 #       error "GLM: GTX_associated_min_max is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 
   22 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 
   23 #       pragma message("GLM: GLM_GTX_associated_min_max extension included") 
   33         template<
typename T, 
typename U, precision P>
 
   38         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
   40                 vecType<T, P> 
const & x, vecType<U, P> 
const & a,
 
   41                 vecType<T, P> 
const & y, vecType<U, P> 
const & b);
 
   45         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
   47                 T x, 
const vecType<U, P>& a,
 
   48                 T y, 
const vecType<U, P>& b);
 
   52         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
   54                 vecType<T, P> 
const & x, U a,
 
   55                 vecType<T, P> 
const & y, U b);
 
   59         template<
typename T, 
typename U>
 
   67         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
   69                 vecType<T, P> 
const & x, vecType<U, P> 
const & a,
 
   70                 vecType<T, P> 
const & y, vecType<U, P> 
const & b,
 
   71                 vecType<T, P> 
const & z, vecType<U, P> 
const & c);
 
   75         template<
typename T, 
typename U>
 
   84         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
   86                 vecType<T, P> 
const & x, vecType<U, P> 
const & a,
 
   87                 vecType<T, P> 
const & y, vecType<U, P> 
const & b,
 
   88                 vecType<T, P> 
const & z, vecType<U, P> 
const & c,
 
   89                 vecType<T, P> 
const & w, vecType<U, P> 
const & d);
 
   93         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
   95                 T x, vecType<U, P> 
const & a,
 
   96                 T y, vecType<U, P> 
const & b,
 
   97                 T z, vecType<U, P> 
const & c,
 
   98                 T w, vecType<U, P> 
const & d);
 
  102         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  104                 vecType<T, P> 
const & x, U a,
 
  105                 vecType<T, P> 
const & y, U b,
 
  106                 vecType<T, P> 
const & z, U c,
 
  107                 vecType<T, P> 
const & w, U d);
 
  111         template<
typename T, 
typename U>
 
  116         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  118                 vecType<T, P> 
const & x, vecType<U, P> 
const & a,
 
  119                 vecType<T, P> 
const & y, vecType<U, P> 
const & b);
 
  123         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  125                 T x, vecType<U, P> 
const & a,
 
  126                 T y, vecType<U, P> 
const & b);
 
  130         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  132                 vecType<T, P> 
const & x, U a,
 
  133                 vecType<T, P> 
const & y, U b);
 
  137         template<
typename T, 
typename U>
 
  145         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  147                 vecType<T, P> 
const & x, vecType<U, P> 
const & a,
 
  148                 vecType<T, P> 
const & y, vecType<U, P> 
const & b,
 
  149                 vecType<T, P> 
const & z, vecType<U, P> 
const & c);
 
  153         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  155                 T x, vecType<U, P> 
const & a,
 
  156                 T y, vecType<U, P> 
const & b,
 
  157                 T z, vecType<U, P> 
const & c);
 
  161         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  163                 vecType<T, P> 
const & x, U a,
 
  164                 vecType<T, P> 
const & y, U b,
 
  165                 vecType<T, P> 
const & z, U c);
 
  169         template<
typename T, 
typename U>
 
  178         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  180                 vecType<T, P> 
const & x, vecType<U, P> 
const & a,
 
  181                 vecType<T, P> 
const & y, vecType<U, P> 
const & b,
 
  182                 vecType<T, P> 
const & z, vecType<U, P> 
const & c,
 
  183                 vecType<T, P> 
const & w, vecType<U, P> 
const & d);
 
  187         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  189                 T x, vecType<U, P> 
const & a,
 
  190                 T y, vecType<U, P> 
const & b,
 
  191                 T z, vecType<U, P> 
const & c,
 
  192                 T w, vecType<U, P> 
const & d);
 
  196         template<
typename T, 
typename U, precision P, 
template <
typename, precision> 
class vecType>
 
  198                 vecType<T, P> 
const & x, U a,
 
  199                 vecType<T, P> 
const & y, U b,
 
  200                 vecType<T, P> 
const & z, U c,
 
  201                 vecType<T, P> 
const & w, U d);
 
  206 #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.