Imag.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_FUNCTORS_IMAG_H_
36 #define _BLAZE_MATH_FUNCTORS_IMAG_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
58 #include <blaze/system/Inline.h>
59 
60 
61 namespace blaze {
62 
63 //=================================================================================================
64 //
65 // CLASS DEFINITION
66 //
67 //=================================================================================================
68 
69 //*************************************************************************************************
73 struct Imag
74 {
75  //**********************************************************************************************
78  explicit inline Imag()
79  {}
80  //**********************************************************************************************
81 
82  //**********************************************************************************************
88  template< typename T >
89  BLAZE_ALWAYS_INLINE decltype(auto) operator()( const T& a ) const
90  {
91  return imag( a );
92  }
93  //**********************************************************************************************
94 };
95 //*************************************************************************************************
96 
97 
98 
99 
100 //=================================================================================================
101 //
102 // YIELDSUNIFORM SPECIALIZATIONS
103 //
104 //=================================================================================================
105 
106 //*************************************************************************************************
108 template< typename T >
109 struct YieldsUniform<Imag,T>
110  : public IsUniform<T>
111 {};
113 //*************************************************************************************************
114 
115 
116 
117 
118 //=================================================================================================
119 //
120 // YIELDSSYMMETRIC SPECIALIZATIONS
121 //
122 //=================================================================================================
123 
124 //*************************************************************************************************
126 template< typename MT >
127 struct YieldsSymmetric<Imag,MT>
128  : public IsSymmetric<MT>
129 {};
131 //*************************************************************************************************
132 
133 
134 
135 
136 //=================================================================================================
137 //
138 // YIELDSLOWER SPECIALIZATIONS
139 //
140 //=================================================================================================
141 
142 //*************************************************************************************************
144 template< typename MT >
145 struct YieldsLower<Imag,MT>
146  : public IsLower<MT>
147 {};
149 //*************************************************************************************************
150 
151 
152 
153 
154 //=================================================================================================
155 //
156 // YIELDSSTRICTLYLOWER SPECIALIZATIONS
157 //
158 //=================================================================================================
159 
160 //*************************************************************************************************
162 template< typename MT >
163 struct YieldsStrictlyLower<Imag,MT>
164  : public IsStrictlyLower<MT>
165 {};
167 //*************************************************************************************************
168 
169 
170 
171 
172 //=================================================================================================
173 //
174 // YIELDSUPPER SPECIALIZATIONS
175 //
176 //=================================================================================================
177 
178 //*************************************************************************************************
180 template< typename MT >
181 struct YieldsUpper<Imag,MT>
182  : public IsUpper<MT>
183 {};
185 //*************************************************************************************************
186 
187 
188 
189 
190 //=================================================================================================
191 //
192 // YIELDSSTRICTLYUPPER SPECIALIZATIONS
193 //
194 //=================================================================================================
195 
196 //*************************************************************************************************
198 template< typename MT >
199 struct YieldsStrictlyUpper<Imag,MT>
200  : public IsStrictlyUpper<MT>
201 {};
203 //*************************************************************************************************
204 
205 
206 
207 
208 //=================================================================================================
209 //
210 // YIELDSZERO SPECIALIZATIONS
211 //
212 //=================================================================================================
213 
214 //*************************************************************************************************
216 template< typename T >
217 struct YieldsZero<Imag,T>
218  : public IsZero<T>
219 {};
221 //*************************************************************************************************
222 
223 } // namespace blaze
224 
225 #endif
Header file for the imaginary shim.
Header file for the YieldsStrictlyLower type trait.
Header file for the YieldsZero type trait.
Header file for the IsUniform type trait.
Header file for the IsStrictlyUpper 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
Generic wrapper for the imag() function.
Definition: Imag.h:73
Header file for the YieldsStrictlyUpper type trait.
Header file for the IsLower type trait.
Header file for the IsStrictlyLower type trait.
Header file for the YieldsUniform type trait.
Header file for the YieldsSymmetric type trait.
Header file for the YieldsUpper type trait.
Header file for the IsZero type trait.
Header file for the YieldsLower type trait.
Imag()
Default constructor of the Imag functor.
Definition: Imag.h:78
decltype(auto) imag(const DenseMatrix< MT, SO > &dm)
Returns a matrix containing the imaginary part of each single element of dm.
Definition: DMatMapExpr.h:1421
Header file for the IsUpper type trait.
System settings for the inline keywords.