Clamp.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_FUNCTORS_CLAMP_H_
36 #define _BLAZE_MATH_FUNCTORS_CLAMP_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
43 #include <blaze/math/shims/Clamp.h>
44 #include <blaze/system/Inline.h>
45 
46 
47 namespace blaze {
48 
49 //=================================================================================================
50 //
51 // CLASS DEFINITION
52 //
53 //=================================================================================================
54 
55 //*************************************************************************************************
59 template< typename DT > // Type of the delimiters
60 struct Clamp
61 {
62  public:
63  //**********************************************************************************************
69  explicit inline Clamp( const DT& min, const DT& max )
70  : min_( min ) // The lower delimiter
71  , max_( max ) // The upper delimiter
72  {}
73  //**********************************************************************************************
74 
75  //**********************************************************************************************
81  template< typename T >
82  BLAZE_ALWAYS_INLINE decltype(auto) operator()( const T& a ) const
83  {
84  return clamp( a, min_, max_ );
85  }
86  //**********************************************************************************************
87 
88  private:
89  //**Member variables****************************************************************************
90  DT min_;
91  DT max_;
92  //**********************************************************************************************
93 };
94 //*************************************************************************************************
95 
96 } // namespace blaze
97 
98 #endif
Generic wrapper for the clamp() function.
Definition: Clamp.h:60
decltype(auto) clamp(const DenseMatrix< MT, SO > &dm, const DT &min, const DT &max)
Restricts each single element of the dense matrix dm to the range .
Definition: DMatMapExpr.h:1576
Header file for the clamp shim.
const ElementType_< MT > min(const DenseMatrix< MT, SO > &dm)
Returns the smallest element of the dense matrix.
Definition: DenseMatrix.h:1762
const ElementType_< MT > max(const DenseMatrix< MT, SO > &dm)
Returns the largest element of the dense matrix.
Definition: DenseMatrix.h:1809
DT min_
The lower delimiter.
Definition: Clamp.h:90
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
Clamp(const DT &min, const DT &max)
Constructor of the Clamp functor.
Definition: Clamp.h:69
DT max_
The upper delimiter.
Definition: Clamp.h:91
System settings for the inline keywords.