19 #ifndef GLM_ENABLE_EXPERIMENTAL 
   20 #       error "GLM: GTX_associated_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 
   23 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 
   24 #       pragma message("GLM: GLM_GTX_associated_min_max extension included") 
   34         template<
typename T, 
typename U, qualifier Q>
 
   39         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
   41                 vec<L, T, Q> 
const& x, vec<L, U, Q> 
const& a,
 
   42                 vec<L, T, Q> 
const& y, vec<L, U, Q> 
const& b);
 
   46         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
   48                 T x, 
const vec<L, U, Q>& a,
 
   49                 T y, 
const vec<L, U, Q>& b);
 
   53         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
   55                 vec<L, T, Q> 
const& x, U a,
 
   56                 vec<L, T, Q> 
const& y, U b);
 
   60         template<
typename T, 
typename U>
 
   68         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
   70                 vec<L, T, Q> 
const& x, vec<L, U, Q> 
const& a,
 
   71                 vec<L, T, Q> 
const& y, vec<L, U, Q> 
const& b,
 
   72                 vec<L, T, Q> 
const& z, vec<L, U, Q> 
const& c);
 
   76         template<
typename T, 
typename U>
 
   85         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
   87                 vec<L, T, Q> 
const& x, vec<L, U, Q> 
const& a,
 
   88                 vec<L, T, Q> 
const& y, vec<L, U, Q> 
const& b,
 
   89                 vec<L, T, Q> 
const& z, vec<L, U, Q> 
const& c,
 
   90                 vec<L, T, Q> 
const& w, vec<L, U, Q> 
const& d);
 
   94         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
   96                 T x, vec<L, U, Q> 
const& a,
 
   97                 T y, vec<L, U, Q> 
const& b,
 
   98                 T z, vec<L, U, Q> 
const& c,
 
   99                 T w, vec<L, U, Q> 
const& d);
 
  103         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
  105                 vec<L, T, Q> 
const& x, U a,
 
  106                 vec<L, T, Q> 
const& y, U b,
 
  107                 vec<L, T, Q> 
const& z, U c,
 
  108                 vec<L, T, Q> 
const& w, U d);
 
  112         template<
typename T, 
typename U>
 
  117         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
  119                 vec<L, T, Q> 
const& x, vec<L, U, Q> 
const& a,
 
  120                 vec<L, T, Q> 
const& y, vec<L, U, Q> 
const& b);
 
  124         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
  126                 T x, vec<L, U, Q> 
const& a,
 
  127                 T y, vec<L, U, Q> 
const& b);
 
  131         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
  133                 vec<L, T, Q> 
const& x, U a,
 
  134                 vec<L, T, Q> 
const& y, U b);
 
  138         template<
typename T, 
typename U>
 
  146         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
  148                 vec<L, T, Q> 
const& x, vec<L, U, Q> 
const& a,
 
  149                 vec<L, T, Q> 
const& y, vec<L, U, Q> 
const& b,
 
  150                 vec<L, T, Q> 
const& z, vec<L, U, Q> 
const& c);
 
  154         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
  156                 T x, vec<L, U, Q> 
const& a,
 
  157                 T y, vec<L, U, Q> 
const& b,
 
  158                 T z, vec<L, U, Q> 
const& c);
 
  162         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
  164                 vec<L, T, Q> 
const& x, U a,
 
  165                 vec<L, T, Q> 
const& y, U b,
 
  166                 vec<L, T, Q> 
const& z, U c);
 
  170         template<
typename T, 
typename U>
 
  179         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
  181                 vec<L, T, Q> 
const& x, vec<L, U, Q> 
const& a,
 
  182                 vec<L, T, Q> 
const& y, vec<L, U, Q> 
const& b,
 
  183                 vec<L, T, Q> 
const& z, vec<L, U, Q> 
const& c,
 
  184                 vec<L, T, Q> 
const& w, vec<L, U, Q> 
const& d);
 
  188         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
  190                 T x, vec<L, U, Q> 
const& a,
 
  191                 T y, vec<L, U, Q> 
const& b,
 
  192                 T z, vec<L, U, Q> 
const& c,
 
  193                 T w, vec<L, U, Q> 
const& d);
 
  197         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
  199                 vec<L, T, Q> 
const& x, U a,
 
  200                 vec<L, T, Q> 
const& y, U b,
 
  201                 vec<L, T, Q> 
const& z, U c,
 
  202                 vec<L, T, Q> 
const& w, U d);
 
  207 #include "associated_min_max.inl" 
GLM_FUNC_DECL vec< L, U, Q > associatedMin(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
Minimum comparison between 4 variables and returns 4 associated variable values. 
GLM_FUNC_DECL vec< L, U, Q > associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
Maximum comparison between 4 variables and returns 4 associated variable values.