Min.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_FUNCTORS_MIN_H_
36 #define _BLAZE_MATH_FUNCTORS_MIN_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 #include <blaze/math/simd/Min.h>
47 #include <blaze/system/Inline.h>
48 
49 
50 namespace blaze {
51 
52 //=================================================================================================
53 //
54 // CLASS DEFINITION
55 //
56 //=================================================================================================
57 
58 //*************************************************************************************************
62 struct Min
63 {
64  //**********************************************************************************************
67  explicit inline Min()
68  {}
69  //**********************************************************************************************
70 
71  //**********************************************************************************************
78  template< typename T1, typename T2 >
79  BLAZE_ALWAYS_INLINE decltype(auto) operator()( const T1& a, const T2& b ) const
80  {
81  return min( a, b );
82  }
83  //**********************************************************************************************
84 
85  //**********************************************************************************************
90  template< typename T1, typename T2 >
91  static constexpr bool simdEnabled() { return HasSIMDMin<T1,T2>::value; }
92  //**********************************************************************************************
93 
94  //**********************************************************************************************
101  template< typename T1, typename T2 >
102  BLAZE_ALWAYS_INLINE decltype(auto) load( const T1& a, const T2& b ) const
103  {
106  return min( a, b );
107  }
108  //**********************************************************************************************
109 };
110 //*************************************************************************************************
111 
112 } // namespace blaze
113 
114 #endif
Headerfile for the generic min algorithm.
Header file for the SIMD min functionality.
const ElementType_< MT > min(const DenseMatrix< MT, SO > &dm)
Returns the smallest element of the dense matrix.
Definition: DenseMatrix.h:1762
Availability of a SIMD min operation for the given data types.Depending on the available instruction ...
Definition: HasSIMDMin.h:171
#define BLAZE_CONSTRAINT_MUST_BE_SIMD_PACK(T)
Constraint on the data type.In case the given data type T is not a SIMD pack, a compilation error is ...
Definition: SIMDPack.h:60
Min()
Default constructor of the Min functor.
Definition: Min.h:67
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
Constraint on the data type.
Header file for the HasSIMDMin type trait.
Generic wrapper for the min() function.
Definition: Min.h:62
static constexpr bool simdEnabled()
Returns whether SIMD is enabled for the specified data types T1 and T2.
Definition: Min.h:91
decltype(auto) BLAZE_ALWAYS_INLINE load(const T1 &a, const T2 &b) const
Returns the result of the min() function for the given SIMD vector.
Definition: Min.h:102
System settings for the inline keywords.