Max.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_FUNCTORS_MAX_H_
36 #define _BLAZE_MATH_FUNCTORS_MAX_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 #include <blaze/math/simd/Max.h>
47 #include <blaze/system/Inline.h>
48 
49 
50 namespace blaze {
51 
52 //=================================================================================================
53 //
54 // CLASS DEFINITION
55 //
56 //=================================================================================================
57 
58 //*************************************************************************************************
62 struct Max
63 {
64  //**********************************************************************************************
67  explicit inline Max()
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 max( a, b );
82  }
83  //**********************************************************************************************
84 
85  //**********************************************************************************************
90  template< typename T1, typename T2 >
91  static constexpr bool simdEnabled() { return HasSIMDMax<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 max( a, b );
107  }
108  //**********************************************************************************************
109 };
110 //*************************************************************************************************
111 
112 } // namespace blaze
113 
114 #endif
Max()
Default constructor of the Max functor.
Definition: Max.h:67
const ElementType_< MT > max(const DenseMatrix< MT, SO > &dm)
Returns the largest element of the dense matrix.
Definition: DenseMatrix.h:1950
#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
static constexpr bool simdEnabled()
Returns whether SIMD is enabled for the specified data types T1 and T2.
Definition: Max.h:91
Availability of a SIMD max operation for the given data types.Depending on the available instruction ...
Definition: HasSIMDMax.h:171
Headerfile for the generic max algorithm.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
Header file for the HasSIMDMax type trait.
Constraint on the data type.
decltype(auto) BLAZE_ALWAYS_INLINE load(const T1 &a, const T2 &b) const
Returns the result of the max() function for the given SIMD vector.
Definition: Max.h:102
Generic wrapper for the max() function.
Definition: Max.h:62
Header file for the SIMD max functionality.
System settings for the inline keywords.