Real.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_FUNCTORS_REAL_H_
36 #define _BLAZE_MATH_FUNCTORS_REAL_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
43 #include <blaze/math/shims/Real.h>
63 #include <blaze/system/Inline.h>
65 
66 
67 namespace blaze {
68 
69 //=================================================================================================
70 //
71 // CLASS DEFINITION
72 //
73 //=================================================================================================
74 
75 //*************************************************************************************************
79 struct Real
80 {
81  //**********************************************************************************************
84  explicit inline Real()
85  {}
86  //**********************************************************************************************
87 
88  //**********************************************************************************************
94  template< typename T >
95  BLAZE_ALWAYS_INLINE decltype(auto) operator()( const T& a ) const
96  {
97  return real( a );
98  }
99  //**********************************************************************************************
100 };
101 //*************************************************************************************************
102 
103 
104 
105 
106 //=================================================================================================
107 //
108 // YIELDSUNIFORM SPECIALIZATIONS
109 //
110 //=================================================================================================
111 
112 //*************************************************************************************************
114 template< typename T >
115 struct YieldsUniform<Real,T>
116  : public IsUniform<T>
117 {};
119 //*************************************************************************************************
120 
121 
122 
123 
124 //=================================================================================================
125 //
126 // YIELDSSYMMETRIC SPECIALIZATIONS
127 //
128 //=================================================================================================
129 
130 //*************************************************************************************************
132 template< typename MT >
133 struct YieldsSymmetric<Real,MT>
134  : public BoolConstant< IsSymmetric_v<MT> || IsHermitian_v<MT> >
135 {};
137 //*************************************************************************************************
138 
139 
140 
141 
142 //=================================================================================================
143 //
144 // YIELDSLOWER SPECIALIZATIONS
145 //
146 //=================================================================================================
147 
148 //*************************************************************************************************
150 template< typename MT >
151 struct YieldsLower<Real,MT>
152  : public IsLower<MT>
153 {};
155 //*************************************************************************************************
156 
157 
158 
159 
160 //=================================================================================================
161 //
162 // YIELDSUNILOWER SPECIALIZATIONS
163 //
164 //=================================================================================================
165 
166 //*************************************************************************************************
168 template< typename MT >
169 struct YieldsUniLower<Real,MT>
170  : public IsUniLower<MT>
171 {};
173 //*************************************************************************************************
174 
175 
176 
177 
178 //=================================================================================================
179 //
180 // YIELDSSTRICTLYLOWER SPECIALIZATIONS
181 //
182 //=================================================================================================
183 
184 //*************************************************************************************************
186 template< typename MT >
187 struct YieldsStrictlyLower<Real,MT>
188  : public IsStrictlyLower<MT>
189 {};
191 //*************************************************************************************************
192 
193 
194 
195 
196 //=================================================================================================
197 //
198 // YIELDSUPPER SPECIALIZATIONS
199 //
200 //=================================================================================================
201 
202 //*************************************************************************************************
204 template< typename MT >
205 struct YieldsUpper<Real,MT>
206  : public IsUpper<MT>
207 {};
209 //*************************************************************************************************
210 
211 
212 
213 
214 //=================================================================================================
215 //
216 // YIELDSUNIUPPER SPECIALIZATIONS
217 //
218 //=================================================================================================
219 
220 //*************************************************************************************************
222 template< typename MT >
223 struct YieldsUniUpper<Real,MT>
224  : public IsUniUpper<MT>
225 {};
227 //*************************************************************************************************
228 
229 
230 
231 
232 //=================================================================================================
233 //
234 // YIELDSSTRICTLYUPPER SPECIALIZATIONS
235 //
236 //=================================================================================================
237 
238 //*************************************************************************************************
240 template< typename MT >
241 struct YieldsStrictlyUpper<Real,MT>
242  : public IsStrictlyUpper<MT>
243 {};
245 //*************************************************************************************************
246 
247 
248 
249 
250 //=================================================================================================
251 //
252 // YIELDSZERO SPECIALIZATIONS
253 //
254 //=================================================================================================
255 
256 //*************************************************************************************************
258 template< typename T >
259 struct YieldsZero<Real,T>
260  : public IsZero<T>
261 {};
263 //*************************************************************************************************
264 
265 } // namespace blaze
266 
267 #endif
Header file for the IsUniUpper type trait.
decltype(auto) real(const DenseMatrix< MT, SO > &dm)
Returns a matrix containing the real part of each single element of dm.
Definition: DMatMapExpr.h:1392
Header file for the YieldsStrictlyLower type trait.
Header file for the YieldsZero type trait.
Real()
Default constructor of the Real functor.
Definition: Real.h:84
Header file for the IsUniLower 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
Header file for the YieldsStrictlyUpper type trait.
Header file for the YieldsUniLower 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.
Generic wrapper for the real() function.
Definition: Real.h:79
Header file for the YieldsUpper type trait.
Header file for the IsZero type trait.
Header file for the YieldsLower type trait.
IntegralConstant< bool, B > BoolConstant
Generic wrapper for a compile time constant boolean value.The BoolConstant class template represents ...
Definition: IntegralConstant.h:101
Header file for the IntegralConstant class template.
Header file for the IsUpper type trait.
Header file for the YieldsUniUpper type trait.
Header file for the real shim.
Header file for the IsHermitian type trait.
System settings for the inline keywords.