Forward.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_EXPRESSIONS_FORWARD_H_
36 #define _BLAZE_MATH_EXPRESSIONS_FORWARD_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
43 #include <blaze/util/Types.h>
44 
45 
46 namespace blaze {
47 
48 //=================================================================================================
49 //
50 // ::blaze NAMESPACE FORWARD DECLARATIONS
51 //
52 //=================================================================================================
53 
54 template< typename, bool > struct DenseMatrix;
55 template< typename, bool > struct DenseVector;
56 template< typename, bool > class DMatDeclDiagExpr;
57 template< typename, bool > class DMatDeclHermExpr;
58 template< typename, bool > class DMatDeclLowExpr;
59 template< typename, bool > class DMatDeclSymExpr;
60 template< typename, bool > class DMatDeclUppExpr;
61 template< typename, typename, bool > class DMatDMatAddExpr;
62 template< typename, typename, typename, bool > class DMatDMatMapExpr;
63 template< typename, typename, bool, bool, bool, bool > class DMatDMatMultExpr;
64 template< typename, typename, bool > class DMatDMatSchurExpr;
65 template< typename, typename, bool > class DMatDMatSubExpr;
66 template< typename, typename > class DMatDVecMultExpr;
67 template< typename, bool > class DMatEvalExpr;
68 template< typename, typename, bool > class DMatMapExpr;
69 template< typename, bool > class DMatInvExpr;
70 template< typename, typename, bool > class DMatScalarDivExpr;
71 template< typename, typename, bool > class DMatScalarMultExpr;
72 template< typename, bool > class DMatSerialExpr;
73 template< typename, typename, bool > class DMatSMatAddExpr;
74 template< typename, typename, bool, bool, bool, bool > class DMatSMatMultExpr;
75 template< typename, typename > class DMatSMatSchurExpr;
76 template< typename, typename, bool > class DMatSMatSubExpr;
77 template< typename, typename > class DMatSVecMultExpr;
78 template< typename, typename > class DMatTDMatAddExpr;
79 template< typename, typename, typename > class DMatTDMatMapExpr;
80 template< typename, typename, bool, bool, bool, bool > class DMatTDMatMultExpr;
81 template< typename, typename > class DMatTDMatSchurExpr;
82 template< typename, typename > class DMatTDMatSubExpr;
83 template< typename, bool > class DMatTransExpr;
84 template< typename, bool > class DMatTransposer;
85 template< typename, typename > class DMatTSMatAddExpr;
86 template< typename, typename, bool, bool, bool, bool > class DMatTSMatMultExpr;
87 template< typename, typename > class DMatTSMatSchurExpr;
88 template< typename, typename > class DMatTSMatSubExpr;
89 template< typename, typename, bool > class DVecDVecAddExpr;
90 template< typename, typename, bool > class DVecDVecCrossExpr;
91 template< typename, typename, bool > class DVecDVecDivExpr;
92 template< typename, typename, typename, bool > class DVecDVecMapExpr;
93 template< typename, typename, bool > class DVecDVecMultExpr;
94 template< typename, typename > class DVecDVecOuterExpr;
95 template< typename, typename, bool > class DVecDVecSubExpr;
96 template< typename, bool > class DVecEvalExpr;
97 template< typename, bool, size_t... > class DVecExpandExpr;
98 template< typename, typename, bool > class DVecMapExpr;
99 template< typename, typename, bool > class DVecScalarDivExpr;
100 template< typename, typename, bool > class DVecScalarMultExpr;
101 template< typename, bool > class DVecSerialExpr;
102 template< typename, typename, bool > class DVecSVecAddExpr;
103 template< typename, typename, bool > class DVecSVecCrossExpr;
104 template< typename, typename, bool > class DVecSVecMultExpr;
105 template< typename, typename > class DVecSVecOuterExpr;
106 template< typename, typename, bool > class DVecSVecSubExpr;
107 template< typename, bool > class DVecTransExpr;
108 template< typename, bool > class DVecTransposer;
109 template< typename, bool > struct Matrix;
110 template< typename, bool > class SMatDeclDiagExpr;
111 template< typename, bool > class SMatDeclHermExpr;
112 template< typename, bool > class SMatDeclLowExpr;
113 template< typename, bool > class SMatDeclSymExpr;
114 template< typename, bool > class SMatDeclUppExpr;
115 template< typename, typename, bool, bool, bool, bool > class SMatDMatMultExpr;
116 template< typename, typename > class SMatDMatSchurExpr;
117 template< typename, typename, bool > class SMatDMatSubExpr;
118 template< typename, typename > class SMatDVecMultExpr;
119 template< typename, bool > class SMatEvalExpr;
120 template< typename, typename, bool > class SMatMapExpr;
121 template< typename, typename, bool > class SMatScalarDivExpr;
122 template< typename, typename, bool > class SMatScalarMultExpr;
123 template< typename, bool > class SMatSerialExpr;
124 template< typename, typename > class SMatSMatAddExpr;
125 template< typename, typename > class SMatSMatMultExpr;
126 template< typename, typename > class SMatSMatSchurExpr;
127 template< typename, typename > class SMatSMatSubExpr;
128 template< typename, typename > class SMatSVecMultExpr;
129 template< typename, typename, bool, bool, bool, bool > class SMatTDMatMultExpr;
130 template< typename, typename > class SMatTDMatSubExpr;
131 template< typename, bool > class SMatTransExpr;
132 template< typename, bool > class SMatTransposer;
133 template< typename, typename > class SMatTSMatAddExpr;
134 template< typename, typename > class SMatTSMatMultExpr;
135 template< typename, typename > class SMatTSMatSchurExpr;
136 template< typename, typename > class SMatTSMatSubExpr;
137 template< typename, bool > struct SparseMatrix;
138 template< typename, bool > struct SparseVector;
139 template< typename, typename, bool > class SVecDVecCrossExpr;
140 template< typename, typename, bool > class SVecDVecDivExpr;
141 template< typename, typename, bool > class SVecDVecMultExpr;
142 template< typename, typename > class SVecDVecOuterExpr;
143 template< typename, typename, bool > class SVecDVecSubExpr;
144 template< typename, bool > class SVecEvalExpr;
145 template< typename, bool, size_t... > class SVecExpandExpr;
146 template< typename, typename, bool > class SVecMapExpr;
147 template< typename, typename, bool > class SVecScalarDivExpr;
148 template< typename, typename, bool > class SVecScalarMultExpr;
149 template< typename, bool > class SVecSerialExpr;
150 template< typename, typename, bool > class SVecSVecAddExpr;
151 template< typename, typename, bool > class SVecSVecCrossExpr;
152 template< typename, typename, bool > class SVecSVecMultExpr;
153 template< typename, typename > class SVecSVecOuterExpr;
154 template< typename, typename, bool > class SVecSVecSubExpr;
155 template< typename, bool > class SVecTransExpr;
156 template< typename, bool > class SVecTransposer;
157 template< typename, typename, bool, bool, bool, bool > class TDMatDMatMultExpr;
158 template< typename, typename > class TDMatDVecMultExpr;
159 template< typename, typename > class TDMatSMatAddExpr;
160 template< typename, typename, bool, bool, bool, bool > class TDMatSMatMultExpr;
161 template< typename, typename > class TDMatSMatSubExpr;
162 template< typename, typename > class TDMatSVecMultExpr;
163 template< typename, typename, bool, bool, bool, bool > class TDMatTDMatMultExpr;
164 template< typename, typename, bool, bool, bool, bool > class TDMatTSMatMultExpr;
165 template< typename, typename > class TDVecDMatMultExpr;
166 template< typename, typename > class TDVecSMatMultExpr;
167 template< typename, typename > class TDVecTDMatMultExpr;
168 template< typename, typename > class TDVecTSMatMultExpr;
169 template< typename, typename, bool, bool, bool, bool > class TSMatDMatMultExpr;
170 template< typename, typename > class TSMatDMatSchurExpr;
171 template< typename, typename > class TSMatDMatSubExpr;
172 template< typename, typename > class TSMatDVecMultExpr;
173 template< typename, typename > class TSMatSMatMultExpr;
174 template< typename, typename > class TSMatSMatSchurExpr;
175 template< typename, typename > class TSMatSMatSubExpr;
176 template< typename, typename > class TSMatSVecMultExpr;
177 template< typename, typename, bool, bool, bool, bool > class TSMatTDMatMultExpr;
178 template< typename, typename > class TSMatTSMatAddExpr;
179 template< typename, typename > class TSMatTSMatMultExpr;
180 template< typename, typename > class TSMatTSMatSchurExpr;
181 template< typename, typename > class TSMatTSMatSubExpr;
182 template< typename, typename > class TSVecDMatMultExpr;
183 template< typename, typename > class TSVecSMatMultExpr;
184 template< typename, typename > class TSVecTDMatMultExpr;
185 template< typename, typename > class TSVecTSMatMultExpr;
186 template< typename, bool > struct Vector;
187 
188 
189 template< typename VT1, typename VT2, bool TF >
190 decltype(auto) operator+( const DenseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
191 
192 template< typename VT1, typename VT2, bool TF >
193 decltype(auto) operator+( const DenseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
194 
195 template< typename VT1, typename VT2, bool TF >
196 decltype(auto) operator+( const SparseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
197 
198 template< typename VT1, typename VT2, bool TF >
199 decltype(auto) operator+( const SparseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
200 
201 template< typename MT1, typename MT2, bool SO >
202 decltype(auto) operator+( const DenseMatrix<MT1,SO>&, const DenseMatrix<MT2,SO>& );
203 
204 template< typename MT1, typename MT2 >
205 decltype(auto) operator+( const DenseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
206 
207 template< typename MT1, typename MT2 >
208 decltype(auto) operator+( const DenseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
209 
210 template< typename MT1, typename MT2, bool SO >
211 decltype(auto) operator+( const DenseMatrix<MT1,SO>&, const SparseMatrix<MT2,SO>& );
212 
213 template< typename MT1, typename MT2 >
214 decltype(auto) operator+( const DenseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
215 
216 template< typename MT1, typename MT2 >
217 decltype(auto) operator+( const DenseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
218 
219 template< typename MT1, typename MT2, bool SO >
220 decltype(auto) operator+( const SparseMatrix<MT1,SO>&, const DenseMatrix<MT2,SO>& );
221 
222 template< typename MT1, typename MT2 >
223 decltype(auto) operator+( const SparseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
224 
225 template< typename MT1, typename MT2 >
226 decltype(auto) operator+( const SparseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
227 
228 template< typename MT1, typename MT2 >
229 decltype(auto) operator+( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
230 
231 template< typename MT1, typename MT2 >
232 decltype(auto) operator+( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
233 
234 template< typename MT1, typename MT2 >
235 decltype(auto) operator+( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
236 
237 template< typename MT1, typename MT2 >
238 decltype(auto) operator+( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
239 
240 
241 template< typename MT1, typename MT2, bool SO >
242 decltype(auto) operator-( const DenseMatrix<MT1,SO>&, const DenseMatrix<MT2,SO>& );
243 
244 template< typename MT1, typename MT2 >
245 decltype(auto) operator-( const DenseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
246 
247 template< typename MT1, typename MT2 >
248 decltype(auto) operator-( const DenseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
249 
250 template< typename MT1, typename MT2, bool SO >
251 decltype(auto) operator-( const DenseMatrix<MT1,SO>&, const SparseMatrix<MT2,SO>& );
252 
253 template< typename MT1, typename MT2 >
254 decltype(auto) operator-( const DenseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
255 
256 template< typename MT1, typename MT2 >
257 decltype(auto) operator-( const DenseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
258 
259 template< typename MT1, typename MT2, bool SO >
260 decltype(auto) operator-( const SparseMatrix<MT1,SO>&, const DenseMatrix<MT2,SO>& );
261 
262 template< typename MT1, typename MT2 >
263 decltype(auto) operator-( const SparseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
264 
265 template< typename MT1, typename MT2 >
266 decltype(auto) operator-( const SparseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
267 
268 template< typename MT1, typename MT2 >
269 decltype(auto) operator-( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
270 
271 template< typename MT1, typename MT2 >
272 decltype(auto) operator-( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
273 
274 template< typename MT1, typename MT2 >
275 decltype(auto) operator-( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
276 
277 template< typename MT1, typename MT2 >
278 decltype(auto) operator-( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
279 
280 
281 template< typename VT1, typename VT2, bool TF >
282 decltype(auto) operator*( const DenseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
283 
284 template< typename VT1, typename VT2 >
285 decltype(auto) operator*( const DenseVector<VT1,true>&, const DenseVector<VT2,false>& );
286 
287 template< typename VT1, typename VT2 >
288 decltype(auto) operator*( const DenseVector<VT1,false>&, const DenseVector<VT2,true>& );
289 
290 template< typename VT1, typename VT2, bool TF >
291 decltype(auto) operator*( const DenseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
292 
293 template< typename VT1, typename VT2 >
294 decltype(auto) operator*( const DenseVector<VT1,true>&, const SparseVector<VT2,false>& );
295 
296 template< typename VT1, typename VT2 >
297 decltype(auto) operator*( const DenseVector<VT1,false>&, const SparseVector<VT2,true>& );
298 
299 template< typename VT1, typename VT2, bool TF >
300 decltype(auto) operator*( const SparseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
301 
302 template< typename VT1, typename VT2 >
303 decltype(auto) operator*( const SparseVector<VT1,true>&, const DenseVector<VT2,false>& );
304 
305 template< typename VT1, typename VT2 >
306 decltype(auto) operator*( const SparseVector<VT1,false>&, const DenseVector<VT2,true>& );
307 
308 template< typename VT1, typename VT2, bool TF >
309 decltype(auto) operator*( const SparseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
310 
311 template< typename VT1, typename VT2 >
312 decltype(auto) operator*( const SparseVector<VT1,true>&, const SparseVector<VT2,false>& );
313 
314 template< typename VT1, typename VT2 >
315 decltype(auto) operator*( const SparseVector<VT1,false>&, const SparseVector<VT2,true>& );
316 
317 template< typename MT, typename VT >
318 decltype(auto) operator*( const DenseMatrix<MT,false>&, const DenseVector<VT,false>& );
319 
320 template< typename MT, typename VT >
321 decltype(auto) operator*( const DenseMatrix<MT,true>&, const DenseVector<VT,false>& );
322 
323 template< typename MT, typename VT >
324 decltype(auto) operator*( const DenseMatrix<MT,false>&, const SparseVector<VT,false>& );
325 
326 template< typename MT, typename VT >
327 decltype(auto) operator*( const DenseMatrix<MT,true>&, const SparseVector<VT,false>& );
328 
329 template< typename MT, typename VT >
330 decltype(auto) operator*( const SparseMatrix<MT,false>&, const DenseVector<VT,false>& );
331 
332 template< typename MT, typename VT >
333 decltype(auto) operator*( const SparseMatrix<MT,true>&, const DenseVector<VT,false>& );
334 
335 template< typename MT, typename VT >
336 decltype(auto) operator*( const SparseMatrix<MT,false>&, const SparseVector<VT,false>& );
337 
338 template< typename MT, typename VT >
339 decltype(auto) operator*( const SparseMatrix<MT,true>&, const SparseVector<VT,false>& );
340 
341 template< typename VT, typename MT >
342 decltype(auto) operator*( const DenseVector<VT,true>&, const DenseMatrix<MT,false>& );
343 
344 template< typename VT, typename MT >
345 decltype(auto) operator*( const DenseVector<VT,true>&, const DenseMatrix<MT,true>& );
346 
347 template< typename VT, typename MT >
348 decltype(auto) operator*( const DenseVector<VT,true>&, const SparseMatrix<MT,false>& );
349 
350 template< typename VT, typename MT >
351 decltype(auto) operator*( const DenseVector<VT,true>&, const SparseMatrix<MT,true>& );
352 
353 template< typename VT, typename MT >
354 decltype(auto) operator*( const SparseVector<VT,true>&, const DenseMatrix<MT,false>& );
355 
356 template< typename VT, typename MT >
357 decltype(auto) operator*( const SparseVector<VT,true>&, const DenseMatrix<MT,true>& );
358 
359 template< typename VT, typename MT >
360 decltype(auto) operator*( const SparseVector<VT,true>&, const SparseMatrix<MT,false>& );
361 
362 template< typename VT, typename MT >
363 decltype(auto) operator*( const SparseVector<VT,true>&, const SparseMatrix<MT,true>& );
364 
365 template< typename MT1, typename MT2 >
366 decltype(auto) operator*( const DenseMatrix<MT1,false>&, const DenseMatrix<MT2,false>& );
367 
368 template< typename MT1, typename MT2 >
369 decltype(auto) operator*( const DenseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
370 
371 template< typename MT1, typename MT2 >
372 decltype(auto) operator*( const DenseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
373 
374 template< typename MT1, typename MT2 >
375 decltype(auto) operator*( const DenseMatrix<MT1,true>&, const DenseMatrix<MT2,true>& );
376 
377 template< typename MT1, typename MT2 >
378 decltype(auto) operator*( const DenseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
379 
380 template< typename MT1, typename MT2 >
381 decltype(auto) operator*( const DenseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
382 
383 template< typename MT1, typename MT2 >
384 decltype(auto) operator*( const DenseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
385 
386 template< typename MT1, typename MT2 >
387 decltype(auto) operator*( const DenseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
388 
389 template< typename MT1, typename MT2 >
390 decltype(auto) operator*( const SparseMatrix<MT1,false>&, const DenseMatrix<MT2,false>& );
391 
392 template< typename MT1, typename MT2 >
393 decltype(auto) operator*( const SparseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
394 
395 template< typename MT1, typename MT2 >
396 decltype(auto) operator*( const SparseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
397 
398 template< typename MT1, typename MT2 >
399 decltype(auto) operator*( const SparseMatrix<MT1,true>&, const DenseMatrix<MT2,true>& );
400 
401 template< typename MT1, typename MT2 >
402 decltype(auto) operator*( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
403 
404 template< typename MT1, typename MT2 >
405 decltype(auto) operator*( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
406 
407 template< typename MT1, typename MT2 >
408 decltype(auto) operator*( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
409 
410 template< typename MT1, typename MT2 >
411 decltype(auto) operator*( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
412 
413 
414 template< typename VT1, typename VT2, bool TF >
415 decltype(auto) operator/( const DenseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
416 
417 template< typename VT1, typename VT2, bool TF >
418 decltype(auto) operator/( const SparseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
419 
420 
421 template< typename VT1, typename VT2, bool TF >
422 decltype(auto) operator%( const DenseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
423 
424 template< typename VT1, typename VT2, bool TF >
425 decltype(auto) operator%( const DenseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
426 
427 template< typename VT1, typename VT2, bool TF >
428 decltype(auto) operator%( const SparseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
429 
430 template< typename VT1, typename VT2, bool TF >
431 decltype(auto) operator%( const SparseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
432 
433 
434 template< typename MT1, typename MT2, bool SO >
435 decltype(auto) operator%( const DenseMatrix<MT1,SO>&, const DenseMatrix<MT2,SO>& );
436 
437 template< typename MT1, typename MT2 >
438 decltype(auto) operator%( const DenseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
439 
440 template< typename MT1, typename MT2 >
441 decltype(auto) operator%( const DenseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
442 
443 template< typename MT1, typename MT2 >
444 decltype(auto) operator%( const DenseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
445 
446 template< typename MT1, typename MT2 >
447 decltype(auto) operator%( const DenseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
448 
449 template< typename MT1, typename MT2 >
450 decltype(auto) operator%( const DenseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
451 
452 template< typename MT1, typename MT2 >
453 decltype(auto) operator%( const DenseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
454 
455 template< typename MT1, typename MT2 >
456 decltype(auto) operator%( const SparseMatrix<MT1,false>&, const DenseMatrix<MT2,false>& );
457 
458 template< typename MT1, typename MT2 >
459 decltype(auto) operator%( const SparseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
460 
461 template< typename MT1, typename MT2 >
462 decltype(auto) operator%( const SparseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
463 
464 template< typename MT1, typename MT2 >
465 decltype(auto) operator%( const SparseMatrix<MT1,true>&, const DenseMatrix<MT2,true>& );
466 
467 template< typename MT1, typename MT2 >
468 decltype(auto) operator%( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
469 
470 template< typename MT1, typename MT2 >
471 decltype(auto) operator%( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
472 
473 template< typename MT1, typename MT2 >
474 decltype(auto) operator%( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
475 
476 template< typename MT1, typename MT2 >
477 decltype(auto) operator%( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
478 
479 
480 template< typename VT, bool TF >
481 decltype(auto) trans( const DenseVector<VT,TF>& );
482 
483 template< typename VT, bool TF >
484 decltype(auto) trans( const SparseVector<VT,TF>& );
485 
486 template< typename MT, bool SO >
487 decltype(auto) trans( const DenseMatrix<MT,SO>& );
488 
489 template< typename MT, bool SO >
490 decltype(auto) trans( const SparseMatrix<MT,SO>& );
491 
492 
493 template< bool TTF, typename VT, bool TF >
494 decltype(auto) transTo( const DenseVector<VT,TF>& );
495 
496 template< bool TTF, typename VT, bool TF >
497 decltype(auto) transTo( const SparseVector<VT,TF>& );
498 
499 
500 template< typename VT, bool TF >
501 decltype(auto) eval( const DenseVector<VT,TF>& );
502 
503 template< typename VT, bool TF >
504 decltype(auto) eval( const SparseVector<VT,TF>& );
505 
506 template< typename MT, bool SO >
507 decltype(auto) eval( const DenseMatrix<MT,SO>& );
508 
509 template< typename MT, bool SO >
510 decltype(auto) eval( const SparseMatrix<MT,SO>& );
511 
512 
513 template< typename VT, bool TF >
514 decltype(auto) serial( const DenseVector<VT,TF>& );
515 
516 template< typename VT, bool TF >
517 decltype(auto) serial( const SparseVector<VT,TF>& );
518 
519 template< typename MT, bool SO >
520 decltype(auto) serial( const DenseMatrix<MT,SO>& );
521 
522 template< typename MT, bool SO >
523 decltype(auto) serial( const SparseMatrix<MT,SO>& );
524 
525 
526 template< typename MT, bool SO >
527 decltype(auto) inv( const DenseMatrix<MT,SO>& );
528 
529 
530 template< typename VT, bool TF, typename OP >
531 decltype(auto) map( const DenseVector<VT,TF>&, OP );
532 
533 template< typename VT, bool TF, typename OP >
534 decltype(auto) map( const SparseVector<VT,TF>&, OP );
535 
536 template< typename MT, bool SO, typename OP >
537 decltype(auto) map( const DenseMatrix<MT,SO>&, OP );
538 
539 template< typename MT, bool SO, typename OP >
540 decltype(auto) map( const SparseMatrix<MT,SO>&, OP );
541 
542 template< typename VT1, typename VT2, bool TF, typename OP >
543 decltype(auto) map( const DenseVector<VT1,TF>&, const DenseVector<VT2,TF>&, OP );
544 
545 template< typename MT1, typename MT2, bool SO, typename OP >
546 decltype(auto) map( const DenseMatrix<MT1,SO>&, const DenseMatrix<MT2,SO>&, OP );
547 
548 template< typename MT1, typename MT2, typename OP >
549 decltype(auto) map( const DenseMatrix<MT1,false>&, const DenseMatrix<MT2,true>&, OP );
550 
551 template< typename MT1, typename MT2, typename OP >
552 decltype(auto) map( const DenseMatrix<MT1,true>&, const DenseMatrix<MT2,false>&, OP );
553 
554 
555 template< typename VT, bool TF, typename OP >
556 decltype(auto) reduce( const DenseVector<VT,TF>&, OP );
557 
558 template< typename VT, bool TF, typename OP >
559 decltype(auto) reduce( const SparseVector<VT,TF>&, OP );
560 
561 template< typename MT, bool SO, typename OP >
562 decltype(auto) reduce( const DenseMatrix<MT,SO>&, OP );
563 
564 template< size_t RF, typename MT, bool SO, typename OP >
565 decltype(auto) reduce( const DenseMatrix<MT,SO>&, OP );
566 
567 template< typename MT, bool SO, typename OP >
568 decltype(auto) reduce( const SparseMatrix<MT,SO>&, OP );
569 
570 template< size_t RF, typename MT, bool SO, typename OP >
571 decltype(auto) reduce( const SparseMatrix<MT,SO>&, OP );
572 
573 
574 template< typename VT, bool TF >
575 decltype(auto) expand( const DenseVector<VT,TF>&, size_t );
576 
577 template< size_t E, typename VT, bool TF >
578 decltype(auto) expand( const DenseVector<VT,TF>& );
579 
580 template< typename VT, bool TF >
581 decltype(auto) expand( const SparseVector<VT,TF>&, size_t );
582 
583 template< size_t E, typename VT, bool TF >
584 decltype(auto) expand( const SparseVector<VT,TF>& );
585 
586 
587 template< typename MT, bool SO >
588 decltype(auto) declsym( const DenseMatrix<MT,SO>& );
589 
590 template< typename MT, bool SO >
591 decltype(auto) declsym( const SparseMatrix<MT,SO>& );
592 
593 
594 template< typename MT, bool SO >
595 decltype(auto) declherm( const DenseMatrix<MT,SO>& );
596 
597 template< typename MT, bool SO >
598 decltype(auto) declherm( const SparseMatrix<MT,SO>& );
599 
600 
601 template< typename MT, bool SO >
602 decltype(auto) decllow( const DenseMatrix<MT,SO>& dm );
603 
604 template< typename MT, bool SO >
605 decltype(auto) decllow( const SparseMatrix<MT,SO>& sm );
606 
607 
608 template< typename MT, bool SO >
609 decltype(auto) declupp( const DenseMatrix<MT,SO>& dm );
610 
611 template< typename MT, bool SO >
612 decltype(auto) declupp( const SparseMatrix<MT,SO>& sm );
613 
614 
615 template< typename MT, bool SO >
616 decltype(auto) decldiag( const DenseMatrix<MT,SO>& dm );
617 
618 template< typename MT, bool SO >
619 decltype(auto) decldiag( const SparseMatrix<MT,SO>& sm );
620 
621 } // namespace blaze
622 
623 #endif
Expression object for transpose dense vector-transpose dense matrix multiplications.The TDVecTDMatMultExpr class represents the compile time expression for multiplications between transpose dense vectors and column-major dense matrices.
Definition: Forward.h:167
decltype(auto) decldiag(const DenseMatrix< MT, SO > &dm)
Declares the given dense matrix expression dm as diagonal.
Definition: DMatDeclDiagExpr.h:975
Expression object for sparse vector-dense vector subtractions.The SVecDVecSubExpr class represents th...
Definition: Forward.h:143
Expression object for transpose sparse matrix-dense vector multiplications.The TSMatDVecMultExpr clas...
Definition: Forward.h:172
Expression object for transpose sparse matrix-dense matrix Schur product.The TSMatDMatSchurExpr class...
Definition: Forward.h:170
Header file for basic type definitions.
Expression object for transpose sparse matrix-transpose dense matrix multiplications.The TSMatTDMatMultExpr class represents the compile time expression for multiplications between a column-major sparse matrix and a column-major dense matrix.
Definition: Forward.h:177
Expression object for sparse vector-sparse vector outer products.The SVecSVecOuterExpr class represen...
Definition: Forward.h:153
Expression object for transpose dense vector-sparse matrix multiplications.The TDVecSMatMultExpr clas...
Definition: Forward.h:166
Expression object for transpose sparse vector-dense matrix multiplications.The TSVecDMatMultExpr clas...
Definition: Forward.h:182
Expression object for transpose dense matrix-transpose sparse matrix multiplications.The TDMatTSMatMultExpr class represents the compile time expression for multiplications between a column-major dense matrix and a column-major sparse matrix.
Definition: Forward.h:164
Expression object for transpose dense vector-transpose sparse matrix multiplications.The TDVecTSMatMultExpr class represents the compile time expression for multiplications between transpose dense vectors and column-major sparse matrices.
Definition: Forward.h:168
Expression object for sparse matrix-dense vector multiplications.The SMatDVecMultExpr class represent...
Definition: Forward.h:118
Expression object for sparse vector-dense vector cross products.The SVecDVecCrossExpr class represent...
Definition: Forward.h:139
Expression object for the explicit diagonal declaration of sparse matrices.The SMatDeclDiagExpr class...
Definition: Forward.h:110
Expression object for the forced evaluation of sparse vectors.The SVecEvalExpr class represents the c...
Definition: Forward.h:144
Expression object for the explicit lower declaration of sparse matrices.The SMatDeclLowExpr class rep...
Definition: Forward.h:112
decltype(auto) declupp(const DenseMatrix< MT, SO > &dm)
Declares the given dense matrix expression dm as upper.
Definition: DMatDeclUppExpr.h:1002
Expression object for sparse vector transpositions.The SVecTransExpr class represents the compile tim...
Definition: Forward.h:155
Expression object for sparse matrix-dense matrix multiplications.The SMatDMatMultExpr class represent...
Definition: Forward.h:115
Expression object for transpose dense matrix-transpose dense matrix multiplications.The TDMatTDMatMultExpr class represents the compile time expression for multiplications between two column-major dense matrices.
Definition: Forward.h:163
Expression object for transpose sparse matrix-transpose sparse matrix Schur product.The TSMatTSMatSchurExpr class represents the compile time expression for Schur products between two column-major sparse matrices.
Definition: Forward.h:180
Expression object for transpose dense matrix-sparse matrix multiplications.The TDMatSMatMultExpr clas...
Definition: Forward.h:160
Expression object for the sparse matrix map() function.The SMatMapExpr class represents the compile t...
Definition: Forward.h:120
Base class for dense matrices.The DenseMatrix class is a base class for all dense matrix classes...
Definition: DenseMatrix.h:80
Base class for sparse matrices.The SparseMatrix class is a base class for all sparse matrix classes...
Definition: Forward.h:137
Expression object for transpose dense matrix-dense vector multiplications.The TDMatDVecMultExpr class...
Definition: Forward.h:158
Expression object for sparse vector-sparse vector additions.The SVecSVecAddExpr class represents the ...
Definition: Forward.h:150
Expression object for transpose dense matrix-dense matrix multiplications.The TDMatDMatMultExpr class...
Definition: Forward.h:157
Expression object for sparse matrix-transpose sparse matrix multiplications.The SMatTSMatMultExpr cla...
Definition: Forward.h:134
Expression object for sparse matrix-dense matrix subtractions.The SMatDMatSubExpr class represents th...
Definition: Forward.h:117
decltype(auto) reduce(const DenseMatrix< MT, SO > &dm, OP op)
Performs a custom reduction operation on the given dense matrix.
Definition: DMatReduceExpr.h:2016
Expression object for sparse matrix-transpose dense matrix subtractions.The SMatTDMatSubExpr class re...
Definition: Forward.h:130
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Expression object for sparse matrix-sparse vector multiplications.The TSMatSVecMultExpr class represe...
Definition: Forward.h:176
Expression object for sparse matrix-sparse vector multiplications.The SMatSVecMultExpr class represen...
Definition: Forward.h:128
Expression object for sparse vector-sparse vector subtractions.The SVecSVecSubExpr class represents t...
Definition: Forward.h:154
Expression object for sparse vector-dense vector divisions.The SVecDVecDivExpr class represents the c...
Definition: Forward.h:140
Expression object for transpose sparse matrix-transpose sparse matrix additions.The TSMatTSMatAddExpr...
Definition: Forward.h:178
Expression object for sparse vector-sparse matrix multiplications.The TSVecSMatMultExpr class represe...
Definition: Forward.h:183
Expression object for sparse vector-sparse matrix multiplications.The TSVecTSMatMultExpr class repres...
Definition: Forward.h:185
Expression object for sparse matrix-transpose sparse matrix subtractions.The SMatTSMatSubExpr class r...
Definition: Forward.h:136
Expression object for sparse vector expansion.The SVecExpandExpr class represents the compile time ex...
Definition: Forward.h:145
decltype(auto) inv(const DenseMatrix< MT, SO > &dm)
Calculation of the inverse of the given dense matrix.
Definition: DMatInvExpr.h:423
Expression object for the transposition of a sparse vector.The SVecTransposer class is a wrapper obje...
Definition: Forward.h:156
Expression object for transpose sparse matrix-transpose sparse matrix multiplications.The TSMatTSMatMultExpr class represents the compile time expression for multiplications between two column-major sparse matrices.
Definition: Forward.h:179
Base class for N-dimensional dense vectors.The DenseVector class is a base class for all arbitrarily ...
Definition: DenseVector.h:76
decltype(auto) decllow(const DenseMatrix< MT, SO > &dm)
Declares the given dense matrix expression dm as lower.
Definition: DMatDeclLowExpr.h:1002
decltype(auto) transTo(const DenseVector< VT, TF > &dv)
Conditional calculation of the transpose of the given dense vector.
Definition: DVecTransExpr.h:783
Expression object for sparse matrix-transpose dense matrix multiplications.The SMatTDMatMultExpr clas...
Definition: Forward.h:129
decltype(auto) eval(const DenseMatrix< MT, SO > &dm)
Forces the evaluation of the given dense matrix expression dm.
Definition: DMatEvalExpr.h:786
Expression object for the sparse vector map() function.The SVecMapExpr class represents the compile t...
Definition: Forward.h:146
Expression object for sparse matrix-transpose sparse matrix Schur product.The SMatTSMatSchurExpr clas...
Definition: Forward.h:135
Expression object for sparse matrix-scalar multiplications.The SMatScalarMult class represents the co...
Definition: Forward.h:122
Expression object for the forced serial evaluation of sparse vectors.The SVecSerialExpr class represe...
Definition: Forward.h:149
Expression object for sparse matrix-sparse matrix Schur product.The SMatSMatSchurExpr class represent...
Definition: Forward.h:126
Expression object for transpose dense matrix-sparse vector multiplications.The TDMatSVecMultExpr clas...
Definition: Forward.h:162
Expression object for the transposition of a sparse matrix.The SMatTransposer class is a wrapper obje...
Definition: Forward.h:132
Expression object for sparse vector-dense vector outer products.The SVecDVecOuterExpr class represent...
Definition: Forward.h:142
Expression object for sparse matrix-sparse matrix multiplications.The SMatSMatMultExpr class represen...
Definition: Forward.h:125
Expression object for sparse vector-sparse vector multiplications.The SVecSVecMultExpr class represen...
Definition: Forward.h:152
Expression object for sparse matrix-sparse matrix subtractions.The SMatSMatSubExpr class represents t...
Definition: Forward.h:127
Expression object for transpose sparse matrix-transpose sparse matrix subtractions.The TSMatTSMatSubExpr class represents the compile time expression for subtractions between two column-major sparse matrices.
Definition: Forward.h:181
Expression object for sparse matrix-scalar divisions.The SMatScalarMult class represents the compile ...
Definition: Forward.h:121
decltype(auto) expand(const DenseVector< VT, TF > &dv, size_t expansion)
Expansion of the given dense vector.
Definition: DVecExpandExpr.h:739
Expression object for transpose sparse matrix-dense matrix subtractions.The TSMatDMatSubExpr class re...
Definition: Forward.h:171
decltype(auto) declsym(const DenseMatrix< MT, SO > &dm)
Declares the given dense matrix expression dm as symmetric.
Definition: DMatDeclSymExpr.h:1002
Base class for matrices.The Matrix class is a base class for all dense and sparse matrix classes with...
Definition: Forward.h:109
Expression object for transpose dense vector-dense matrix multiplications.The TDVecDMatMultExpr class...
Definition: Forward.h:165
decltype(auto) serial(const DenseMatrix< MT, SO > &dm)
Forces the serial evaluation of the given dense matrix expression dm.
Definition: DMatSerialExpr.h:808
Expression object for divisions of a sparse vector by a scalar.The SVecScalarDivExpr class represents...
Definition: Forward.h:147
Expression object for the explicit Hermitian declaration of sparse matrices.The SMatDeclHermExpr clas...
Definition: Forward.h:111
Expression object for transpose sparse matrix-sparse matrix multiplications.The TSMatSMatMultExpr cla...
Definition: Forward.h:173
Expression object for transpose sparse vector-transpose dense matrix multiplications.The TSVecTDMatMultExpr class represents the compile time expression for multiplications between transpose sparse vectors and column-major dense matrices.
Definition: Forward.h:184
Expression object for sparse matrix-transpose sparse matrix additions.The SMatTSMatAddExpr class repr...
Definition: Forward.h:133
decltype(auto) trans(const DenseMatrix< MT, SO > &dm)
Calculation of the transpose of the given dense matrix.
Definition: DMatTransExpr.h:765
decltype(auto) declherm(const DenseMatrix< MT, SO > &dm)
Declares the given dense matrix expression dm as Hermitian.
Definition: DMatDeclHermExpr.h:1002
Expression object for the explicit symmetry declaration of sparse matrices.The SMatDeclSymExpr class ...
Definition: Forward.h:113
Base class for N-dimensional vectors.The Vector class is a base class for all arbitrarily sized (N-di...
Definition: Forward.h:186
Expression object for sparse matrix-sparse matrix additions.The SMatSMatAddExpr class represents the ...
Definition: Forward.h:124
Expression object for transpose sparse matrix-dense matrix multiplications.The TSMatDMatMultExpr clas...
Definition: Forward.h:169
Expression object for sparse vector-scalar multiplications.The SVecScalarMultExpr class represents th...
Definition: Forward.h:148
Expression object for dense matrix-sparse matrix additions.The TDMatSMatAddExpr class represents the ...
Definition: Forward.h:159
Expression object for the explicit upper declaration of sparse matrices.The SMatDeclUppExpr class rep...
Definition: Forward.h:114
Base class for sparse vectors.The SparseVector class is a base class for all arbitrarily sized (N-dim...
Definition: Forward.h:138
Expression object for sparse matrix transpositions.The SMatTransExpr class represents the compile tim...
Definition: Forward.h:131
Expression object for the forced evaluation of sparse matrices.The SMatEvalExpr class represents the ...
Definition: Forward.h:119
Expression object for transpose sparse matrix-sparse matrix subtractions.The TSMatSMatSubExpr class r...
Definition: Forward.h:175
Expression object for the forced serial evaluation of sparse matrices.The SMatSerialExpr class repres...
Definition: Forward.h:123
Expression object for sparse matrix-dense matrix Schur product.The SMatDMatSchurExpr class represents...
Definition: Forward.h:116
Expression object for transpose dense matrix-sparse matrix subtractions.The TDMatSMatSubExpr class re...
Definition: Forward.h:161
Expression object for sparse vector-sparse vector cross products.The SVecSVecCrossExpr class represen...
Definition: Forward.h:151
Expression object for transpose sparse matrix-sparse matrix Schur products.The TSMatSMatSchurExpr cla...
Definition: Forward.h:174
decltype(auto) map(const DenseMatrix< MT1, SO > &lhs, const DenseMatrix< MT2, SO > &rhs, OP op)
Evaluates the given binary operation on each single element of the dense matrices lhs and rhs...
Definition: DMatDMatMapExpr.h:1110
Expression object for sparse vector-dense vector multiplications.The SVecDVecMultExpr class represent...
Definition: Forward.h:141