Exp2.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_FUNCTORS_EXP2_H_
36 #define _BLAZE_MATH_FUNCTORS_EXP2_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 #include <blaze/math/shims/Exp2.h>
45 #include <blaze/math/simd/Exp2.h>
51 #include <blaze/system/Inline.h>
52 
53 
54 namespace blaze {
55 
56 //=================================================================================================
57 //
58 // CLASS DEFINITION
59 //
60 //=================================================================================================
61 
62 //*************************************************************************************************
66 struct Exp2
67 {
68  //**********************************************************************************************
71  explicit inline Exp2()
72  {}
73  //**********************************************************************************************
74 
75  //**********************************************************************************************
81  template< typename T >
82  BLAZE_ALWAYS_INLINE decltype(auto) operator()( const T& a ) const
83  {
84  return exp2( a );
85  }
86  //**********************************************************************************************
87 
88  //**********************************************************************************************
93  template< typename T >
94  static constexpr bool simdEnabled() { return HasSIMDExp2_v<T>; }
95  //**********************************************************************************************
96 
97  //**********************************************************************************************
102  static constexpr bool paddingEnabled() { return false; }
103  //**********************************************************************************************
104 
105  //**********************************************************************************************
111  template< typename T >
112  BLAZE_ALWAYS_INLINE decltype(auto) load( const T& a ) const
113  {
115  return exp2( a );
116  }
117  //**********************************************************************************************
118 };
119 //*************************************************************************************************
120 
121 
122 
123 
124 //=================================================================================================
125 //
126 // YIELDSUNIFORM SPECIALIZATIONS
127 //
128 //=================================================================================================
129 
130 //*************************************************************************************************
132 template< typename T >
133 struct YieldsUniform<Exp2,T>
134  : public IsUniform<T>
135 {};
137 //*************************************************************************************************
138 
139 
140 
141 
142 //=================================================================================================
143 //
144 // YIELDSSYMMETRIC SPECIALIZATIONS
145 //
146 //=================================================================================================
147 
148 //*************************************************************************************************
150 template< typename MT >
151 struct YieldsSymmetric<Exp2,MT>
152  : public IsSymmetric<MT>
153 {};
155 //*************************************************************************************************
156 
157 } // namespace blaze
158 
159 #endif
Header file for the exp2 shim.
static constexpr bool paddingEnabled()
Returns whether the operation supports padding, i.e. whether it can deal with zeros.
Definition: Exp2.h:102
Exp2()
Default constructor of the Exp2 functor.
Definition: Exp2.h:71
#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
Header file for the IsUniform type trait.
Header file for the IsSymmetric type trait.
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
decltype(auto) exp2(const DenseMatrix< MT, SO > &dm)
Computes for each single element of the dense matrix dm.
Definition: DMatMapExpr.h:1672
Header file for the SIMD exp2 functionality.
Generic wrapper for the exp2() function.
Definition: Exp2.h:66
Constraint on the data type.
Header file for the YieldsUniform type trait.
Header file for the YieldsSymmetric type trait.
decltype(auto) BLAZE_ALWAYS_INLINE load(const T &a) const
Returns the result of the exp2() function for the given SIMD vector.
Definition: Exp2.h:112
Header file for the HasSIMDExp2 type trait.
System settings for the inline keywords.
static constexpr bool simdEnabled()
Returns whether SIMD is enabled for the specified data type T.
Definition: Exp2.h:94