17 #ifndef KOKKOS_CLAMP_HPP 
   18 #define KOKKOS_CLAMP_HPP 
   20 #include <Kokkos_Macros.hpp> 
   25 constexpr KOKKOS_INLINE_FUNCTION 
const T& clamp(
const T& value, 
const T& lo,
 
   27   KOKKOS_EXPECTS(!(hi < lo));
 
   32   return (value < lo) ? lo : (hi < value) ? hi : value;
 
   35 template <
class T, 
class ComparatorType>
 
   36 constexpr KOKKOS_INLINE_FUNCTION 
const T& clamp(
const T& value, 
const T& lo,
 
   38                                                 ComparatorType comp) {
 
   39   KOKKOS_EXPECTS(!comp(hi, lo));
 
   44   return comp(value, lo) ? lo : comp(hi, value) ? hi : value;