Blaze 3.9
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
46#include <blaze/util/Types.h>
47
48
49namespace blaze {
50
51//=================================================================================================
52//
53// ::blaze NAMESPACE FORWARD DECLARATIONS
54//
55//=================================================================================================
56
57template< typename > struct AddExpr;
58template< typename > struct BinaryMapExpr;
59template< typename > struct CrossExpr;
60template< typename > struct DeclDiagExpr;
61template< typename > struct DeclExpr;
62template< typename > struct DeclHermExpr;
63template< typename > struct DeclLowExpr;
64template< typename > struct DeclStrLowExpr;
65template< typename > struct DeclStrUppExpr;
66template< typename > struct DeclSymExpr;
67template< typename > struct DeclUniLowExpr;
68template< typename > struct DeclUniUppExpr;
69template< typename > struct DeclUppExpr;
70template< typename > struct DivExpr;
71template< typename, bool > class DenseMatrix;
72template< typename, bool > class DenseVector;
73template< typename, bool > class DMatDeclDiagExpr;
74template< typename, bool > class DMatDeclHermExpr;
75template< typename, bool > class DMatDeclLowExpr;
76template< typename, bool > class DMatDeclStrLowExpr;
77template< typename, bool > class DMatDeclStrUppExpr;
78template< typename, bool > class DMatDeclSymExpr;
79template< typename, bool > class DMatDeclUniLowExpr;
80template< typename, bool > class DMatDeclUniUppExpr;
81template< typename, bool > class DMatDeclUppExpr;
82template< typename, typename, bool > class DMatDMatAddExpr;
83template< typename, typename, bool > class DMatDMatKronExpr;
84template< typename, typename, typename, bool > class DMatDMatMapExpr;
85template< typename, typename, bool, bool, bool, bool > class DMatDMatMultExpr;
86template< typename, typename, bool > class DMatDMatSchurExpr;
87template< typename, typename, bool > class DMatDMatSolveExpr;
88template< typename, typename, bool > class DMatDMatSubExpr;
89template< typename, typename > class DMatDVecMultExpr;
90template< typename, typename, bool > class DMatDVecSolveExpr;
91template< typename, bool > class DMatEigenExpr;
92template< typename, bool > class DMatEvalExpr;
93template< typename, bool > class DMatExpExpr;
94template< typename, bool > class DMatFixExpr;
95template< typename, typename, bool > class DMatGenExpr;
96template< typename, bool > class DMatInvExpr;
97template< typename, typename, bool > class DMatMapExpr;
98template< typename, bool > class DMatNoAliasExpr;
99template< typename, bool > class DMatNoSIMDExpr;
100template< typename, typename, ReductionFlag > class DMatReduceExpr;
101template< typename, bool, size_t... > class DMatRepeatExpr;
102template< typename, typename, bool > class DMatScalarDivExpr;
103template< typename, typename, bool > class DMatScalarMultExpr;
104template< typename, bool > class DMatSerialExpr;
105template< typename, typename, bool > class DMatSMatAddExpr;
106template< typename, typename, bool > class DMatSMatKronExpr;
107template< typename, typename, bool, bool, bool, bool > class DMatSMatMultExpr;
108template< typename, typename > class DMatSMatSchurExpr;
109template< typename, typename, bool > class DMatSMatSubExpr;
110template< typename, bool > class DMatSVDExpr;
111template< typename, typename > class DMatSVecMultExpr;
112template< typename, typename > class DMatTDMatAddExpr;
113template< typename, typename, typename > class DMatTDMatMapExpr;
114template< typename, typename, bool, bool, bool, bool > class DMatTDMatMultExpr;
115template< typename, typename > class DMatTDMatSchurExpr;
116template< typename, typename > class DMatTDMatSubExpr;
117template< typename, bool > class DMatTransExpr;
118template< typename, bool > class DMatTransposer;
119template< typename, typename > class DMatTSMatAddExpr;
120template< typename, typename, bool, bool, bool, bool > class DMatTSMatMultExpr;
121template< typename, typename > class DMatTSMatSchurExpr;
122template< typename, typename > class DMatTSMatSubExpr;
123template< typename, typename, bool > class DVecDVecAddExpr;
124template< typename, typename, bool > class DVecDVecCrossExpr;
125template< typename, typename, bool > class DVecDVecDivExpr;
126template< typename, typename, bool > class DVecDVecKronExpr;
127template< typename, typename, typename, bool > class DVecDVecMapExpr;
128template< typename, typename, bool > class DVecDVecMultExpr;
129template< typename, typename,typename > class DVecDVecOuterExpr;
130template< typename, typename, bool > class DVecDVecSubExpr;
131template< typename, bool > class DVecEvalExpr;
132template< typename, bool, size_t... > class DVecExpandExpr;
133template< typename, bool > class DVecFixExpr;
134template< typename, typename, bool > class DVecGenExpr;
135template< typename, typename, bool > class DVecMapExpr;
136template< typename, bool > class DVecNoAliasExpr;
137template< typename, bool > class DVecNoSIMDExpr;
138template< typename, bool, size_t... > class DVecRepeatExpr;
139template< typename, typename, bool > class DVecScalarDivExpr;
140template< typename, typename, bool > class DVecScalarMultExpr;
141template< typename, bool > class DVecSerialExpr;
142template< typename, typename, bool > class DVecSVecAddExpr;
143template< typename, typename, bool > class DVecSVecCrossExpr;
144template< typename, typename, bool > class DVecSVecKronExpr;
145template< typename, typename, bool > class DVecSVecMultExpr;
146template< typename, typename > class DVecSVecOuterExpr;
147template< typename, typename, bool > class DVecSVecSubExpr;
148template< typename, bool > class DVecTransExpr;
149template< typename, bool > class DVecTransposer;
150template< typename > struct EigenExpr;
151template< typename > struct EvalExpr;
152template< typename > struct ExpandExpr;
153template< typename > struct Expression;
154template< typename > struct GenExpr;
155template< typename > struct KronExpr;
156template< typename > struct MatEvalExpr;
157template< typename > struct MatExpExpr;
158template< typename > struct MatGenExpr;
159template< typename > struct MatInvExpr;
160template< typename > struct MatMapExpr;
161template< typename > struct MatMatAddExpr;
162template< typename > struct MatMatKronExpr;
163template< typename > struct MatMatMapExpr;
164template< typename > struct MatMatMultExpr;
165template< typename > struct MatMatSolveExpr;
166template< typename > struct MatMatSubExpr;
167template< typename > struct MatNoAliasExpr;
168template< typename > struct MatNoSIMDExpr;
169template< typename, ReductionFlag > struct MatReduceExpr;
170template< typename, size_t... > struct MatRepeatExpr;
171template< typename, bool > class Matrix;
172template< typename > struct MatScalarDivExpr;
173template< typename > struct MatScalarMultExpr;
174template< typename > struct MatSerialExpr;
175template< typename > struct MatTransExpr;
176template< typename > struct MatVecMultExpr;
177template< typename > struct MatVecSolveExpr;
178template< typename > struct MultExpr;
179template< typename > struct NoAliasExpr;
180template< typename > struct NoSIMDExpr;
181template< typename > struct ReduceExpr;
182template< typename > struct RepeatExpr;
183template< typename > struct SchurExpr;
184template< typename > struct SerialExpr;
185template< typename, bool > class SMatDeclDiagExpr;
186template< typename, bool > class SMatDeclHermExpr;
187template< typename, bool > class SMatDeclLowExpr;
188template< typename, bool > class SMatDeclStrLowExpr;
189template< typename, bool > class SMatDeclStrUppExpr;
190template< typename, bool > class SMatDeclSymExpr;
191template< typename, bool > class SMatDeclUniLowExpr;
192template< typename, bool > class SMatDeclUniUppExpr;
193template< typename, bool > class SMatDeclUppExpr;
194template< typename, typename, bool > class SMatDMatKronExpr;
195template< typename, typename, bool, bool, bool, bool > class SMatDMatMultExpr;
196template< typename, typename > class SMatDMatSchurExpr;
197template< typename, typename, bool > class SMatDMatSubExpr;
198template< typename, typename > class SMatDVecMultExpr;
199template< typename, bool > class SMatEvalExpr;
200template< typename, bool > class SMatFixExpr;
201template< typename, typename, bool > class SMatMapExpr;
202template< typename, bool > class SMatNoAliasExpr;
203template< typename, typename, ReductionFlag > class SMatReduceExpr;
204template< typename, bool, size_t... > class SMatRepeatExpr;
205template< typename, typename, bool > class SMatScalarDivExpr;
206template< typename, typename, bool > class SMatScalarMultExpr;
207template< typename, bool > class SMatSerialExpr;
208template< typename, typename > class SMatSMatAddExpr;
209template< typename, typename > class SMatSMatKronExpr;
210template< typename, typename > class SMatSMatMultExpr;
211template< typename, typename > class SMatSMatSchurExpr;
212template< typename, typename > class SMatSMatSubExpr;
213template< typename, typename > class SMatSVecMultExpr;
214template< typename, typename, bool, bool, bool, bool > class SMatTDMatMultExpr;
215template< typename, typename > class SMatTDMatSubExpr;
216template< typename, bool > class SMatTransExpr;
217template< typename, bool > class SMatTransposer;
218template< typename, typename > class SMatTSMatAddExpr;
219template< typename, typename > class SMatTSMatKronExpr;
220template< typename, typename > class SMatTSMatMultExpr;
221template< typename, typename > class SMatTSMatSchurExpr;
222template< typename, typename > class SMatTSMatSubExpr;
223template< typename, ReductionFlag > class SMatVarExpr;
224template< typename > struct SolveExpr;
225template< typename, bool > class SparseMatrix;
226template< typename, bool > class SparseVector;
227template< typename > struct SubExpr;
228template< typename > struct SVDExpr;
229template< typename, typename, bool > class SVecDVecCrossExpr;
230template< typename, typename, bool > class SVecDVecDivExpr;
231template< typename, typename, bool > class SVecDVecKronExpr;
232template< typename, typename, bool > class SVecDVecMultExpr;
233template< typename, typename > class SVecDVecOuterExpr;
234template< typename, typename, bool > class SVecDVecSubExpr;
235template< typename, bool > class SVecEvalExpr;
236template< typename, bool, size_t... > class SVecExpandExpr;
237template< typename, bool > class SVecFixExpr;
238template< typename, typename, bool > class SVecMapExpr;
239template< typename, bool > class SVecNoAliasExpr;
240template< typename, bool, size_t... > class SVecRepeatExpr;
241template< typename, typename, bool > class SVecScalarDivExpr;
242template< typename, typename, bool > class SVecScalarMultExpr;
243template< typename, bool > class SVecSerialExpr;
244template< typename, typename, bool > class SVecSVecAddExpr;
245template< typename, typename, bool > class SVecSVecCrossExpr;
246template< typename, typename, bool > class SVecSVecKronExpr;
247template< typename, typename, bool > class SVecSVecMultExpr;
248template< typename, typename > class SVecSVecOuterExpr;
249template< typename, typename, bool > class SVecSVecSubExpr;
250template< typename, bool > class SVecTransExpr;
251template< typename, bool > class SVecTransposer;
252template< typename, typename, bool, bool, bool, bool > class TDMatDMatMultExpr;
253template< typename, typename > class TDMatDVecMultExpr;
254template< typename, typename > class TDMatSMatAddExpr;
255template< typename, typename, bool, bool, bool, bool > class TDMatSMatMultExpr;
256template< typename, typename > class TDMatSMatSubExpr;
257template< typename, typename > class TDMatSVecMultExpr;
258template< typename, typename, bool, bool, bool, bool > class TDMatTDMatMultExpr;
259template< typename, typename, bool, bool, bool, bool > class TDMatTSMatMultExpr;
260template< typename, typename > class TDVecDMatMultExpr;
261template< typename, typename > class TDVecSMatMultExpr;
262template< typename, typename > class TDVecTDMatMultExpr;
263template< typename, typename > class TDVecTSMatMultExpr;
264template< typename > struct TransExpr;
265template< typename, typename, bool, bool, bool, bool > class TSMatDMatMultExpr;
266template< typename, typename > class TSMatDMatSchurExpr;
267template< typename, typename > class TSMatDMatSubExpr;
268template< typename, typename > class TSMatDVecMultExpr;
269template< typename, typename > class TSMatSMatKronExpr;
270template< typename, typename > class TSMatSMatMultExpr;
271template< typename, typename > class TSMatSMatSchurExpr;
272template< typename, typename > class TSMatSMatSubExpr;
273template< typename, typename > class TSMatSVecMultExpr;
274template< typename, typename, bool, bool, bool, bool > class TSMatTDMatMultExpr;
275template< typename, typename > class TSMatTSMatAddExpr;
276template< typename, typename > class TSMatTSMatKronExpr;
277template< typename, typename > class TSMatTSMatMultExpr;
278template< typename, typename > class TSMatTSMatSchurExpr;
279template< typename, typename > class TSMatTSMatSubExpr;
280template< typename, typename > class TSVecDMatMultExpr;
281template< typename, typename > class TSVecSMatMultExpr;
282template< typename, typename > class TSVecTDMatMultExpr;
283template< typename, typename > class TSVecTSMatMultExpr;
284template< typename > struct TVecMatMultExpr;
285template< typename > struct UnaryMapExpr;
286template< typename > struct VecEvalExpr;
287template< typename, size_t... > struct VecExpandExpr;
288template< typename > struct VecGenExpr;
289template< typename > struct VecMapExpr;
290template< typename > struct VecNoAliasExpr;
291template< typename > struct VecNoSIMDExpr;
292template< typename, size_t... > struct VecRepeatExpr;
293template< typename > struct VecScalarDivExpr;
294template< typename > struct VecScalarMultExpr;
295template< typename > struct VecSerialExpr;
296template< typename, bool > class Vector;
297template< typename > struct VecTransExpr;
298template< typename > struct VecTVecMapExpr;
299template< typename > struct VecTVecMultExpr;
300template< typename > struct VecVecAddExpr;
301template< typename > struct VecVecDivExpr;
302template< typename > struct VecVecKronExpr;
303template< typename > struct VecVecMapExpr;
304template< typename > struct VecVecMultExpr;
305template< typename > struct VecVecSubExpr;
306template< typename > struct View;
307
308
309template< typename VT1, typename VT2, bool TF >
310decltype(auto) operator+( const DenseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
311
312template< typename VT1, typename VT2 >
313decltype(auto) operator+( const DenseVector<VT1,false>&, const DenseVector<VT2,true>& );
314
315template< typename VT1, typename VT2, bool TF >
316decltype(auto) operator+( const DenseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
317
318template< typename VT1, typename VT2, bool TF >
319decltype(auto) operator+( const SparseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
320
321template< typename VT1, typename VT2, bool TF >
322decltype(auto) operator+( const SparseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
323
324template< typename MT1, typename MT2, bool SO >
325decltype(auto) operator+( const DenseMatrix<MT1,SO>&, const DenseMatrix<MT2,SO>& );
326
327template< typename MT1, typename MT2 >
328decltype(auto) operator+( const DenseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
329
330template< typename MT1, typename MT2 >
331decltype(auto) operator+( const DenseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
332
333template< typename MT1, typename MT2, bool SO >
334decltype(auto) operator+( const DenseMatrix<MT1,SO>&, const SparseMatrix<MT2,SO>& );
335
336template< typename MT1, typename MT2 >
337decltype(auto) operator+( const DenseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
338
339template< typename MT1, typename MT2 >
340decltype(auto) operator+( const DenseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
341
342template< typename MT1, typename MT2, bool SO >
343decltype(auto) operator+( const SparseMatrix<MT1,SO>&, const DenseMatrix<MT2,SO>& );
344
345template< typename MT1, typename MT2 >
346decltype(auto) operator+( const SparseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
347
348template< typename MT1, typename MT2 >
349decltype(auto) operator+( const SparseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
350
351template< typename MT1, typename MT2 >
352decltype(auto) operator+( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
353
354template< typename MT1, typename MT2 >
355decltype(auto) operator+( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
356
357template< typename MT1, typename MT2 >
358decltype(auto) operator+( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
359
360template< typename MT1, typename MT2 >
361decltype(auto) operator+( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
362
363
364template< typename VT1, typename VT2, bool TF >
365decltype(auto) operator-( const DenseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
366
367template< typename VT1, typename VT2 >
368decltype(auto) operator-( const DenseVector<VT1,false>&, const DenseVector<VT2,true>& );
369
370template< typename VT1, typename VT2, bool TF >
371decltype(auto) operator-( const DenseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
372
373template< typename VT1, typename VT2, bool TF >
374decltype(auto) operator-( const SparseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
375
376template< typename VT1, typename VT2, bool TF >
377decltype(auto) operator-( const SparseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
378
379template< typename MT1, typename MT2, bool SO >
380decltype(auto) operator-( const DenseMatrix<MT1,SO>&, const DenseMatrix<MT2,SO>& );
381
382template< typename MT1, typename MT2 >
383decltype(auto) operator-( const DenseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
384
385template< typename MT1, typename MT2 >
386decltype(auto) operator-( const DenseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
387
388template< typename MT1, typename MT2, bool SO >
389decltype(auto) operator-( const DenseMatrix<MT1,SO>&, const SparseMatrix<MT2,SO>& );
390
391template< typename MT1, typename MT2 >
392decltype(auto) operator-( const DenseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
393
394template< typename MT1, typename MT2 >
395decltype(auto) operator-( const DenseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
396
397template< typename MT1, typename MT2, bool SO >
398decltype(auto) operator-( const SparseMatrix<MT1,SO>&, const DenseMatrix<MT2,SO>& );
399
400template< typename MT1, typename MT2 >
401decltype(auto) operator-( const SparseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
402
403template< typename MT1, typename MT2 >
404decltype(auto) operator-( const SparseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
405
406template< typename MT1, typename MT2 >
407decltype(auto) operator-( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
408
409template< typename MT1, typename MT2 >
410decltype(auto) operator-( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
411
412template< typename MT1, typename MT2 >
413decltype(auto) operator-( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
414
415template< typename MT1, typename MT2 >
416decltype(auto) operator-( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
417
418
419template< typename VT1, typename VT2, bool TF >
420decltype(auto) operator*( const DenseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
421
422template< typename VT1, typename VT2 >
423decltype(auto) operator*( const DenseVector<VT1,true>&, const DenseVector<VT2,false>& );
424
425template< typename VT1, typename VT2 >
426decltype(auto) operator*( const DenseVector<VT1,false>&, const DenseVector<VT2,true>& );
427
428template< typename VT1, typename VT2, bool TF >
429decltype(auto) operator*( const DenseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
430
431template< typename VT1, typename VT2 >
432decltype(auto) operator*( const DenseVector<VT1,true>&, const SparseVector<VT2,false>& );
433
434template< typename VT1, typename VT2 >
435decltype(auto) operator*( const DenseVector<VT1,false>&, const SparseVector<VT2,true>& );
436
437template< typename VT1, typename VT2, bool TF >
438decltype(auto) operator*( const SparseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
439
440template< typename VT1, typename VT2 >
441decltype(auto) operator*( const SparseVector<VT1,true>&, const DenseVector<VT2,false>& );
442
443template< typename VT1, typename VT2 >
444decltype(auto) operator*( const SparseVector<VT1,false>&, const DenseVector<VT2,true>& );
445
446template< typename VT1, typename VT2, bool TF >
447decltype(auto) operator*( const SparseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
448
449template< typename VT1, typename VT2 >
450decltype(auto) operator*( const SparseVector<VT1,true>&, const SparseVector<VT2,false>& );
451
452template< typename VT1, typename VT2 >
453decltype(auto) operator*( const SparseVector<VT1,false>&, const SparseVector<VT2,true>& );
454
455template< typename MT, typename VT >
456decltype(auto) operator*( const DenseMatrix<MT,false>&, const DenseVector<VT,false>& );
457
458template< typename MT, typename VT >
459decltype(auto) operator*( const DenseMatrix<MT,true>&, const DenseVector<VT,false>& );
460
461template< typename MT, typename VT >
462decltype(auto) operator*( const DenseMatrix<MT,false>&, const SparseVector<VT,false>& );
463
464template< typename MT, typename VT >
465decltype(auto) operator*( const DenseMatrix<MT,true>&, const SparseVector<VT,false>& );
466
467template< typename MT, typename VT >
468decltype(auto) operator*( const SparseMatrix<MT,false>&, const DenseVector<VT,false>& );
469
470template< typename MT, typename VT >
471decltype(auto) operator*( const SparseMatrix<MT,true>&, const DenseVector<VT,false>& );
472
473template< typename MT, typename VT >
474decltype(auto) operator*( const SparseMatrix<MT,false>&, const SparseVector<VT,false>& );
475
476template< typename MT, typename VT >
477decltype(auto) operator*( const SparseMatrix<MT,true>&, const SparseVector<VT,false>& );
478
479template< typename VT, typename MT >
480decltype(auto) operator*( const DenseVector<VT,true>&, const DenseMatrix<MT,false>& );
481
482template< typename VT, typename MT >
483decltype(auto) operator*( const DenseVector<VT,true>&, const DenseMatrix<MT,true>& );
484
485template< typename VT, typename MT >
486decltype(auto) operator*( const DenseVector<VT,true>&, const SparseMatrix<MT,false>& );
487
488template< typename VT, typename MT >
489decltype(auto) operator*( const DenseVector<VT,true>&, const SparseMatrix<MT,true>& );
490
491template< typename VT, typename MT >
492decltype(auto) operator*( const SparseVector<VT,true>&, const DenseMatrix<MT,false>& );
493
494template< typename VT, typename MT >
495decltype(auto) operator*( const SparseVector<VT,true>&, const DenseMatrix<MT,true>& );
496
497template< typename VT, typename MT >
498decltype(auto) operator*( const SparseVector<VT,true>&, const SparseMatrix<MT,false>& );
499
500template< typename VT, typename MT >
501decltype(auto) operator*( const SparseVector<VT,true>&, const SparseMatrix<MT,true>& );
502
503template< typename MT1, typename MT2 >
504decltype(auto) operator*( const DenseMatrix<MT1,false>&, const DenseMatrix<MT2,false>& );
505
506template< typename MT1, typename MT2 >
507decltype(auto) operator*( const DenseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
508
509template< typename MT1, typename MT2 >
510decltype(auto) operator*( const DenseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
511
512template< typename MT1, typename MT2 >
513decltype(auto) operator*( const DenseMatrix<MT1,true>&, const DenseMatrix<MT2,true>& );
514
515template< typename MT1, typename MT2 >
516decltype(auto) operator*( const DenseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
517
518template< typename MT1, typename MT2 >
519decltype(auto) operator*( const DenseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
520
521template< typename MT1, typename MT2 >
522decltype(auto) operator*( const DenseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
523
524template< typename MT1, typename MT2 >
525decltype(auto) operator*( const DenseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
526
527template< typename MT1, typename MT2 >
528decltype(auto) operator*( const SparseMatrix<MT1,false>&, const DenseMatrix<MT2,false>& );
529
530template< typename MT1, typename MT2 >
531decltype(auto) operator*( const SparseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
532
533template< typename MT1, typename MT2 >
534decltype(auto) operator*( const SparseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
535
536template< typename MT1, typename MT2 >
537decltype(auto) operator*( const SparseMatrix<MT1,true>&, const DenseMatrix<MT2,true>& );
538
539template< typename MT1, typename MT2 >
540decltype(auto) operator*( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
541
542template< typename MT1, typename MT2 >
543decltype(auto) operator*( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
544
545template< typename MT1, typename MT2 >
546decltype(auto) operator*( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
547
548template< typename MT1, typename MT2 >
549decltype(auto) operator*( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
550
551
552template< typename VT1, typename VT2, bool TF >
553decltype(auto) operator/( const DenseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
554
555template< typename VT1, typename VT2 >
556decltype(auto) operator/( const DenseVector<VT1,false>&, const DenseVector<VT2,true>& );
557
558template< typename VT1, typename VT2, bool TF >
559decltype(auto) operator/( const SparseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
560
561
562template< typename VT1, typename VT2, bool TF >
563decltype(auto) operator%( const DenseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
564
565template< typename VT1, typename VT2, bool TF >
566decltype(auto) operator%( const DenseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
567
568template< typename VT1, typename VT2, bool TF >
569decltype(auto) operator%( const SparseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
570
571template< typename VT1, typename VT2, bool TF >
572decltype(auto) operator%( const SparseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
573
574
575template< typename MT1, typename MT2, bool SO >
576decltype(auto) operator%( const DenseMatrix<MT1,SO>&, const DenseMatrix<MT2,SO>& );
577
578template< typename MT1, typename MT2 >
579decltype(auto) operator%( const DenseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
580
581template< typename MT1, typename MT2 >
582decltype(auto) operator%( const DenseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
583
584template< typename MT1, typename MT2 >
585decltype(auto) operator%( const DenseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
586
587template< typename MT1, typename MT2 >
588decltype(auto) operator%( const DenseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
589
590template< typename MT1, typename MT2 >
591decltype(auto) operator%( const DenseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
592
593template< typename MT1, typename MT2 >
594decltype(auto) operator%( const DenseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
595
596template< typename MT1, typename MT2 >
597decltype(auto) operator%( const SparseMatrix<MT1,false>&, const DenseMatrix<MT2,false>& );
598
599template< typename MT1, typename MT2 >
600decltype(auto) operator%( const SparseMatrix<MT1,false>&, const DenseMatrix<MT2,true>& );
601
602template< typename MT1, typename MT2 >
603decltype(auto) operator%( const SparseMatrix<MT1,true>&, const DenseMatrix<MT2,false>& );
604
605template< typename MT1, typename MT2 >
606decltype(auto) operator%( const SparseMatrix<MT1,true>&, const DenseMatrix<MT2,true>& );
607
608template< typename MT1, typename MT2 >
609decltype(auto) operator%( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
610
611template< typename MT1, typename MT2 >
612decltype(auto) operator%( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
613
614template< typename MT1, typename MT2 >
615decltype(auto) operator%( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
616
617template< typename MT1, typename MT2 >
618decltype(auto) operator%( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
619
620
621template< typename VT1, typename VT2, bool TF >
622decltype(auto) kron( const DenseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
623
624template< typename VT1, typename VT2, bool TF >
625decltype(auto) kron( const DenseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
626
627template< typename VT1, typename VT2, bool TF >
628decltype(auto) kron( const SparseVector<VT1,TF>&, const DenseVector<VT2,TF>& );
629
630template< typename VT1, typename VT2, bool TF >
631decltype(auto) kron( const SparseVector<VT1,TF>&, const SparseVector<VT2,TF>& );
632
633
634template< typename MT1, bool SO1, typename MT2, bool SO2 >
635decltype(auto) kron( const DenseMatrix<MT1,SO1>&, const DenseMatrix<MT2,SO2>& );
636
637template< typename MT1, bool SO1, typename MT2, bool SO2 >
638decltype(auto) kron( const DenseMatrix<MT1,SO1>&, const SparseMatrix<MT2,SO2>& );
639
640template< typename MT1, bool SO1, typename MT2, bool SO2 >
641decltype(auto) kron( const SparseMatrix<MT1,SO1>&, const DenseMatrix<MT2,SO2>& );
642
643template< typename MT1, typename MT2 >
644decltype(auto) kron( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,false>& );
645
646template< typename MT1, typename MT2 >
647decltype(auto) kron( const SparseMatrix<MT1,false>&, const SparseMatrix<MT2,true>& );
648
649template< typename MT1, typename MT2 >
650decltype(auto) kron( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,false>& );
651
652template< typename MT1, typename MT2 >
653decltype(auto) kron( const SparseMatrix<MT1,true>&, const SparseMatrix<MT2,true>& );
654
655
656template< typename VT, bool TF >
657decltype(auto) trans( const DenseVector<VT,TF>& );
658
659template< typename VT, bool TF >
660decltype(auto) trans( const SparseVector<VT,TF>& );
661
662template< typename MT, bool SO >
663decltype(auto) trans( const DenseMatrix<MT,SO>& );
664
665template< typename MT, bool SO >
666decltype(auto) trans( const SparseMatrix<MT,SO>& );
667
668
669template< bool TTF, typename VT, bool TF >
670decltype(auto) transTo( const DenseVector<VT,TF>& );
671
672template< bool TTF, typename VT, bool TF >
673decltype(auto) transTo( const SparseVector<VT,TF>& );
674
675
676template< bool B, typename MT, bool SO >
677decltype(auto) transIf( const DenseMatrix<MT,SO>& );
678
679template< bool B, typename MT, bool SO >
680decltype(auto) transIf( const SparseMatrix<MT,SO>& );
681
682
683template< typename VT, bool TF >
684decltype(auto) eval( const DenseVector<VT,TF>& );
685
686template< typename VT, bool TF >
687decltype(auto) eval( const SparseVector<VT,TF>& );
688
689template< typename MT, bool SO >
690decltype(auto) eval( const DenseMatrix<MT,SO>& );
691
692template< typename MT, bool SO >
693decltype(auto) eval( const SparseMatrix<MT,SO>& );
694
695
696template< typename VT, bool TF >
697decltype(auto) serial( const DenseVector<VT,TF>& );
698
699template< typename VT, bool TF >
700decltype(auto) serial( const SparseVector<VT,TF>& );
701
702template< typename MT, bool SO >
703decltype(auto) serial( const DenseMatrix<MT,SO>& );
704
705template< typename MT, bool SO >
706decltype(auto) serial( const SparseMatrix<MT,SO>& );
707
708
709template< typename VT, bool TF >
710decltype(auto) noalias( const DenseVector<VT,TF>& );
711
712template< typename VT, bool TF >
713decltype(auto) noalias( const SparseVector<VT,TF>& );
714
715template< typename MT, bool SO >
716decltype(auto) noalias( const DenseMatrix<MT,SO>& );
717
718template< typename MT, bool SO >
719decltype(auto) noalias( const SparseMatrix<MT,SO>& );
720
721
722template< typename VT, bool TF >
723decltype(auto) nosimd( const DenseVector<VT,TF>& );
724
725template< typename VT, bool TF >
726decltype(auto) nosimd( const SparseVector<VT,TF>& );
727
728template< typename MT, bool SO >
729decltype(auto) nosimd( const DenseMatrix<MT,SO>& );
730
731template< typename MT, bool SO >
732decltype(auto) nosimd( const SparseMatrix<MT,SO>& );
733
734
735template< typename VT, bool TF >
736decltype(auto) fix( const DenseVector<VT,TF>& );
737
738template< typename VT, bool TF >
739decltype(auto) fix( const SparseVector<VT,TF>& );
740
741template< typename MT, bool SO >
742decltype(auto) fix( const DenseMatrix<MT,SO>& );
743
744template< typename MT, bool SO >
745decltype(auto) fix( const SparseMatrix<MT,SO>& );
746
747
748template< typename MT, bool SO >
749decltype(auto) inv( const DenseMatrix<MT,SO>& );
750
751
752template< typename MT, bool SO >
753decltype(auto) matexp( const DenseMatrix<MT,SO>& );
754
755
756template< typename MT, bool SO, typename VT, bool TF >
757decltype(auto) solve( const DenseMatrix<MT,SO>&, const DenseVector<VT,TF>& );
758
759template< typename MT1, bool SO1, typename MT2, bool SO2 >
760decltype(auto) solve( const DenseMatrix<MT1,SO1>&, const DenseMatrix<MT2,SO2>& );
761
762
763template< typename MT, bool SO >
764decltype(auto) eigen( const DenseMatrix<MT,SO>& );
765
766
767template< typename MT, bool SO >
768decltype(auto) svd( const DenseMatrix<MT,SO>& );
769
770
771template< typename VT, bool TF, typename OP >
772decltype(auto) map( const DenseVector<VT,TF>&, OP );
773
774template< typename VT, bool TF, typename OP >
775decltype(auto) map( const SparseVector<VT,TF>&, OP );
776
777template< typename MT, bool SO, typename OP >
778decltype(auto) map( const DenseMatrix<MT,SO>&, OP );
779
780template< typename MT, bool SO, typename OP >
781decltype(auto) map( const SparseMatrix<MT,SO>&, OP );
782
783template< typename VT1, typename VT2, bool TF, typename OP >
784decltype(auto) map( const DenseVector<VT1,TF>&, const DenseVector<VT2,TF>&, OP );
785
786template< typename VT1, typename VT2, bool TF, typename OP >
787decltype(auto) map( const DenseVector<VT1,false>&, const DenseVector<VT2,true>&, OP );
788
789template< typename MT1, typename MT2, bool SO, typename OP >
790decltype(auto) map( const DenseMatrix<MT1,SO>&, const DenseMatrix<MT2,SO>&, OP );
791
792template< typename MT1, typename MT2, typename OP >
793decltype(auto) map( const DenseMatrix<MT1,false>&, const DenseMatrix<MT2,true>&, OP );
794
795template< typename MT1, typename MT2, typename OP >
796decltype(auto) map( const DenseMatrix<MT1,true>&, const DenseMatrix<MT2,false>&, OP );
797
798
799template< typename VT, bool TF, typename OP >
800decltype(auto) reduce( const DenseVector<VT,TF>&, OP );
801
802template< typename VT, bool TF, typename OP >
803decltype(auto) reduce( const SparseVector<VT,TF>&, OP );
804
805template< typename MT, bool SO, typename OP >
806decltype(auto) reduce( const DenseMatrix<MT,SO>&, OP );
807
808template< ReductionFlag RF, typename MT, bool SO, typename OP >
809decltype(auto) reduce( const DenseMatrix<MT,SO>&, OP );
810
811template< typename MT, bool SO, typename OP >
812decltype(auto) reduce( const SparseMatrix<MT,SO>&, OP );
813
814template< ReductionFlag, typename MT, bool SO, typename OP >
815decltype(auto) reduce( const SparseMatrix<MT,SO>&, OP );
816
817
818template< typename VT, bool TF >
819decltype(auto) expand( const DenseVector<VT,TF>&, size_t );
820
821template< size_t E, typename VT, bool TF >
822decltype(auto) expand( const DenseVector<VT,TF>& );
823
824template< typename VT, bool TF >
825decltype(auto) expand( const SparseVector<VT,TF>&, size_t );
826
827template< size_t E, typename VT, bool TF >
828decltype(auto) expand( const SparseVector<VT,TF>& );
829
830
831template< typename VT, bool TF >
832decltype(auto) repeat( const DenseVector<VT,TF>&, size_t );
833
834template< size_t R0, typename VT, bool TF >
835decltype(auto) repeat( const DenseVector<VT,TF>& );
836
837template< typename VT, bool TF >
838decltype(auto) repeat( const SparseVector<VT,TF>&, size_t );
839
840template< size_t R0, typename VT, bool TF >
841decltype(auto) repeat( const SparseVector<VT,TF>& );
842
843template< typename MT, bool SO >
844decltype(auto) repeat( const DenseMatrix<MT,SO>&, size_t, size_t );
845
846template< size_t R0, size_t R1, typename MT, bool SO >
847decltype(auto) repeat( const DenseMatrix<MT,SO>& );
848
849template< typename MT, bool SO >
850decltype(auto) repeat( const SparseMatrix<MT,SO>&, size_t, size_t );
851
852template< size_t R0, size_t R1, typename MT, bool SO >
853decltype(auto) repeat( const SparseMatrix<MT,SO>& );
854
855
856template< typename VT, bool TF >
857decltype(auto) mean( const DenseVector<VT,TF>& );
858
859template< typename VT, bool TF >
860decltype(auto) mean( const SparseVector<VT,TF>& );
861
862template< typename MT, bool SO >
863decltype(auto) mean( const DenseMatrix<MT,SO>& );
864
865template< ReductionFlag, typename MT, bool SO >
866decltype(auto) mean( const DenseMatrix<MT,SO>& );
867
868template< typename MT, bool SO >
869decltype(auto) mean( const SparseMatrix<MT,SO>& );
870
871template< ReductionFlag, typename MT, bool SO >
872decltype(auto) mean( const SparseMatrix<MT,SO>& );
873
874
875template< typename VT, bool TF >
876decltype(auto) var( const DenseVector<VT,TF>& );
877
878template< typename VT, bool TF >
879decltype(auto) var( const SparseVector<VT,TF>& );
880
881template< typename MT, bool SO >
882decltype(auto) var( const DenseMatrix<MT,SO>& );
883
884template< ReductionFlag, typename MT, bool SO >
885decltype(auto) var( const DenseMatrix<MT,SO>& );
886
887template< typename MT, bool SO >
888decltype(auto) var( const SparseMatrix<MT,SO>& );
889
890template< ReductionFlag, typename MT, bool SO >
891decltype(auto) var( const SparseMatrix<MT,SO>& );
892
893
894template< typename VT, bool TF >
895decltype(auto) stddev( const DenseVector<VT,TF>& );
896
897template< typename VT, bool TF >
898decltype(auto) stddev( const SparseVector<VT,TF>& );
899
900template< typename MT, bool SO >
901decltype(auto) stddev( const DenseMatrix<MT,SO>& );
902
903template< ReductionFlag, typename MT, bool SO >
904decltype(auto) stddev( const DenseMatrix<MT,SO>& );
905
906template< typename MT, bool SO >
907decltype(auto) stddev( const SparseMatrix<MT,SO>& );
908
909template< ReductionFlag, typename MT, bool SO >
910decltype(auto) stddev( const SparseMatrix<MT,SO>& );
911
912
913template< typename MT, bool SO >
914decltype(auto) declsym( const DenseMatrix<MT,SO>& );
915
916template< typename MT, bool SO >
917decltype(auto) declsym( const SparseMatrix<MT,SO>& );
918
919
920template< typename MT, bool SO >
921decltype(auto) declherm( const DenseMatrix<MT,SO>& );
922
923template< typename MT, bool SO >
924decltype(auto) declherm( const SparseMatrix<MT,SO>& );
925
926
927template< typename MT, bool SO >
928decltype(auto) decllow( const DenseMatrix<MT,SO>& );
929
930template< typename MT, bool SO >
931decltype(auto) decllow( const SparseMatrix<MT,SO>& );
932
933
934template< typename MT, bool SO >
935decltype(auto) declunilow( const DenseMatrix<MT,SO>& );
936
937template< typename MT, bool SO >
938decltype(auto) declunilow( const SparseMatrix<MT,SO>& );
939
940
941template< typename MT, bool SO >
942decltype(auto) declstrlow( const DenseMatrix<MT,SO>& );
943
944template< typename MT, bool SO >
945decltype(auto) declstrlow( const SparseMatrix<MT,SO>& );
946
947
948template< typename MT, bool SO >
949decltype(auto) declupp( const DenseMatrix<MT,SO>& );
950
951template< typename MT, bool SO >
952decltype(auto) declupp( const SparseMatrix<MT,SO>& );
953
954
955template< typename MT, bool SO >
956decltype(auto) decluniupp( const DenseMatrix<MT,SO>& );
957
958template< typename MT, bool SO >
959decltype(auto) decluniupp( const SparseMatrix<MT,SO>& );
960
961
962template< typename MT, bool SO >
963decltype(auto) declstrupp( const DenseMatrix<MT,SO>& );
964
965template< typename MT, bool SO >
966decltype(auto) declstrupp( const SparseMatrix<MT,SO>& );
967
968
969template< typename MT, bool SO >
970decltype(auto) decldiag( const DenseMatrix<MT,SO>& );
971
972template< typename MT, bool SO >
973decltype(auto) decldiag( const SparseMatrix<MT,SO>& );
974
975} // namespace blaze
976
977#endif
Header file for the IntegralConstant class template.
Deactivation of problematic macros.
Header file for the reduction flags.
Definition: Forward.h:108
Expression object for dense matrix-sparse matrix subtractions.
Definition: DMatSMatSubExpr.h:92
Expression object for dense matrix singular value solvers.
Definition: DMatSVDExpr.h:85
Expression object for dense matrix-sparse vector multiplications.
Definition: DMatSVecMultExpr.h:106
Expression object for dense matrix-transpose dense matrix additions.
Definition: DMatTDMatAddExpr.h:95
Expression object for the dense matrix/tranpose dense matrix map() function.
Definition: DMatTDMatMapExpr.h:95
Expression object for dense matrix-transpose dense matrix multiplications.
Definition: DMatTDMatMultExpr.h:146
Expression object for dense matrix-transpose dense matrix Schur product.
Definition: DMatTDMatSchurExpr.h:105
Expression object for dense matrix-transpose dense matrix subtractions.
Definition: DMatTDMatSubExpr.h:94
Expression object for dense matrix-sparse matrix additions.
Definition: DMatTSMatAddExpr.h:93
Expression object for dense matrix-transpose sparse matrix multiplications.
Definition: DMatTSMatMultExpr.h:129
Definition: Forward.h:121
Expression object for dense matrix-transpose sparse matrix subtractions.
Definition: DMatTSMatSubExpr.h:93
Expression object for dense matrix transpositions.
Definition: DMatTransExpr.h:93
Expression object for the transposition of a dense matrix.
Definition: DMatTransposer.h:79
Expression object for dense vector-dense vector additions.
Definition: DVecDVecAddExpr.h:100
Expression object for dense vector-dense vector cross products.
Definition: DVecDVecCrossExpr.h:90
Expression object for dense vector-dense vector divisions.
Definition: DVecDVecDivExpr.h:98
Expression object for dense vector-dense vector Kronecker product.
Definition: DVecDVecKronExpr.h:90
Expression object for the dense vector-dense vector map() function.
Definition: DVecDVecMapExpr.h:112
Expression object for dense vector-dense vector multiplications.
Definition: DVecDVecMultExpr.h:99
Expression object for the dense vector-dense vector outer map() function.
Definition: DVecDVecOuterExpr.h:114
Expression object for dense vector-dense vector subtractions.
Definition: DVecDVecSubExpr.h:98
Expression object for the forced evaluation of dense vectors.
Definition: DVecEvalExpr.h:80
Expression object for dense vector expansion.
Definition: DVecExpandExpr.h:95
Expression object for fixing the size of a dense vector.
Definition: DVecFixExpr.h:72
Expression object for the dense vector generate() function.
Definition: DVecGenExpr.h:95
Expression object for the dense vector map() function.
Definition: DVecMapExpr.h:106
Expression object for the non-aliased evaluation of dense vectors.
Definition: DVecNoAliasExpr.h:88
Expression object for the non-SIMD evaluation of dense vectors.
Definition: DVecNoSIMDExpr.h:87
Expression object for the dense vector repeat() function.
Definition: DVecRepeatExpr.h:86
Expression object for dense vector-sparse vector additions.
Definition: DVecSVecAddExpr.h:92
Expression object for dense vector-sparse vector cross products.
Definition: DVecSVecCrossExpr.h:93
Expression object for dense vector-sparse vector Kronecker product.
Definition: DVecSVecKronExpr.h:93
Expression object for dense vector-sparse vector multiplications.
Definition: DVecSVecMultExpr.h:98
Expression object for dense vector-sparse vector outer products.
Definition: DVecSVecOuterExpr.h:108
Expression object for dense vector-sparse vector subtractions.
Definition: DVecSVecSubExpr.h:92
Expression object for divisions of a dense vector by a scalar.
Definition: DVecScalarDivExpr.h:108
Expression object for dense vector-scalar multiplications.
Definition: DVecScalarMultExpr.h:107
Expression object for the forced serial evaluation of dense vectors.
Definition: DVecSerialExpr.h:80
Expression object for dense vector transpositions.
Definition: DVecTransExpr.h:93
Expression object for the transposition of a dense vector.
Definition: DVecTransposer.h:81
Base class for dense matrices.
Definition: DenseMatrix.h:82
Base class for N-dimensional dense vectors.
Definition: DenseVector.h:77
Base class for matrices.
Definition: Matrix.h:85
Expression object for sparse matrix-dense matrix Kronecker product.
Definition: SMatDMatKronExpr.h:93
Expression object for sparse matrix-dense matrix multiplications.
Definition: SMatDMatMultExpr.h:132
Expression object for sparse matrix-dense matrix Schur product.
Definition: SMatDMatSchurExpr.h:103
Expression object for sparse matrix-dense matrix subtractions.
Definition: SMatDMatSubExpr.h:91
Expression object for sparse matrix-dense vector multiplications.
Definition: SMatDVecMultExpr.h:97
Expression object for the explicit diagonal declaration of sparse matrices.
Definition: SMatDeclDiagExpr.h:92
Expression object for the explicit Hermitian declaration of sparse matrices.
Definition: SMatDeclHermExpr.h:91
Expression object for the explicit lower declaration of sparse matrices.
Definition: SMatDeclLowExpr.h:91
Expression object for the explicit strictly lower declaration of sparse matrices.
Definition: SMatDeclStrLowExpr.h:92
Expression object for the explicit strictly upper declaration of sparse matrices.
Definition: SMatDeclStrUppExpr.h:92
Expression object for the explicit symmetry declaration of sparse matrices.
Definition: SMatDeclSymExpr.h:91
Expression object for the explicit unilower declaration of sparse matrices.
Definition: SMatDeclUniLowExpr.h:93
Expression object for the explicit uniupper declaration of sparse matrices.
Definition: SMatDeclUniUppExpr.h:91
Expression object for the explicit upper declaration of sparse matrices.
Definition: SMatDeclUppExpr.h:91
Expression object for the forced evaluation of sparse matrices.
Definition: SMatEvalExpr.h:78
Expression object for fixing the size of a sparse matrix.
Definition: SMatFixExpr.h:70
Expression object for the sparse matrix map() function.
Definition: SMatMapExpr.h:95
Expression object for the non-aliased evaluation of sparse matrices.
Definition: SMatNoAliasExpr.h:83
Base template for row-major sparse matrix partial reduction operations.
Definition: SMatReduceExpr.h:98
Expression object for the sparse matrix repeat() function.
Definition: SMatRepeatExpr.h:87
Expression object for sparse matrix-sparse matrix additions.
Definition: SMatSMatAddExpr.h:95
Expression object for sparse matrix-sparse matrix Kronecker product.
Definition: SMatSMatKronExpr.h:89
Expression object for sparse matrix-sparse matrix multiplications.
Definition: SMatSMatMultExpr.h:109
Expression object for sparse matrix-sparse matrix Schur product.
Definition: SMatSMatSchurExpr.h:101
Expression object for sparse matrix-sparse matrix subtractions.
Definition: SMatSMatSubExpr.h:95
Expression object for sparse matrix-sparse vector multiplications.
Definition: SMatSVecMultExpr.h:99
Expression object for sparse matrix-scalar divisions.
Definition: SMatScalarDivExpr.h:103
Expression object for sparse matrix-scalar multiplications.
Definition: SMatScalarMultExpr.h:97
Expression object for the forced serial evaluation of sparse matrices.
Definition: SMatSerialExpr.h:78
Expression object for sparse matrix-transpose dense matrix multiplications.
Definition: SMatTDMatMultExpr.h:127
Expression object for sparse matrix-transpose dense matrix subtractions.
Definition: SMatTDMatSubExpr.h:92
Expression object for sparse matrix-transpose sparse matrix additions.
Definition: SMatTSMatAddExpr.h:96
Expression object for sparse matrix-transpose sparse matrix Kronecker product.
Definition: SMatTSMatKronExpr.h:91
Expression object for sparse matrix-transpose sparse matrix multiplications.
Definition: SMatTSMatMultExpr.h:98
Expression object for sparse matrix-transpose sparse matrix Schur product.
Definition: SMatTSMatSchurExpr.h:101
Expression object for sparse matrix-transpose sparse matrix subtractions.
Definition: SMatTSMatSubExpr.h:96
Expression object for sparse matrix transpositions.
Definition: SMatTransExpr.h:87
Expression object for the transposition of a sparse matrix.
Definition: SMatTransposer.h:72
Base template for the row-/column-wise variance computations on row-major sparse matrices.
Definition: SMatVarExpr.h:93
Expression object for sparse vector-dense vector cross products.
Definition: SVecDVecCrossExpr.h:93
Expression object for sparse vector-dense vector divisions.
Definition: SVecDVecDivExpr.h:98
Expression object for sparse vector-dense vector Kronecker products.
Definition: SVecDVecKronExpr.h:92
Expression object for sparse vector-dense vector multiplications.
Definition: SVecDVecMultExpr.h:98
Expression object for sparse vector-dense vector outer products.
Definition: SVecDVecOuterExpr.h:108
Expression object for sparse vector-dense vector subtractions.
Definition: SVecDVecSubExpr.h:91
Expression object for the forced evaluation of sparse vectors.
Definition: SVecEvalExpr.h:79
Expression object for sparse vector expansion.
Definition: SVecExpandExpr.h:93
Expression object for fixing the size of a sparse vector.
Definition: SVecFixExpr.h:70
Expression object for the sparse vector map() function.
Definition: SVecMapExpr.h:95
Expression object for the non-aliased evaluation of sparse vectors.
Definition: SVecNoAliasExpr.h:85
Expression object for the sparse vector repeat() function.
Definition: SVecRepeatExpr.h:85
Expression object for sparse vector-sparse vector additions.
Definition: SVecSVecAddExpr.h:94
Expression object for sparse vector-sparse vector cross products.
Definition: SVecSVecCrossExpr.h:92
Expression object for sparse vector-sparse vector Kronecker products.
Definition: SVecSVecKronExpr.h:91
Expression object for sparse vector-sparse vector multiplications.
Definition: SVecSVecMultExpr.h:91
Expression object for sparse vector-sparse vector outer products.
Definition: SVecSVecOuterExpr.h:92
Expression object for sparse vector-sparse vector subtractions.
Definition: SVecSVecSubExpr.h:94
Expression object for divisions of a sparse vector by a scalar.
Definition: SVecScalarDivExpr.h:103
Expression object for sparse vector-scalar multiplications.
Definition: SVecScalarMultExpr.h:99
Expression object for the forced serial evaluation of sparse vectors.
Definition: SVecSerialExpr.h:79
Expression object for sparse vector transpositions.
Definition: SVecTransExpr.h:87
Expression object for the transposition of a sparse vector.
Definition: SVecTransposer.h:77
Base class for sparse matrices.
Definition: SparseMatrix.h:77
Base class for sparse vectors.
Definition: SparseVector.h:72
Expression object for transpose dense matrix-dense matrix multiplications.
Definition: TDMatDMatMultExpr.h:148
Expression object for transpose dense matrix-dense vector multiplications.
Definition: TDMatDVecMultExpr.h:128
Expression object for dense matrix-sparse matrix additions.
Definition: TDMatSMatAddExpr.h:93
Expression object for transpose dense matrix-sparse matrix multiplications.
Definition: TDMatSMatMultExpr.h:130
Expression object for transpose dense matrix-sparse matrix subtractions.
Definition: TDMatSMatSubExpr.h:93
Expression object for transpose dense matrix-sparse vector multiplications.
Definition: TDMatSVecMultExpr.h:111
Expression object for transpose dense matrix-transpose dense matrix multiplications.
Definition: TDMatTDMatMultExpr.h:152
Expression object for transpose dense matrix-transpose sparse matrix multiplications.
Definition: TDMatTSMatMultExpr.h:133
Expression object for transpose dense vector-dense matrix multiplications.
Definition: TDVecDMatMultExpr.h:129
Expression object for transpose dense vector-sparse matrix multiplications.
Definition: TDVecSMatMultExpr.h:106
Expression object for transpose dense vector-transpose dense matrix multiplications.
Definition: TDVecTDMatMultExpr.h:126
Expression object for transpose dense vector-transpose sparse matrix multiplications.
Definition: TDVecTSMatMultExpr.h:97
Expression object for transpose sparse matrix-dense matrix multiplications.
Definition: TSMatDMatMultExpr.h:131
Expression object for transpose sparse matrix-dense matrix Schur product.
Definition: TSMatDMatSchurExpr.h:103
Expression object for transpose sparse matrix-dense matrix subtractions.
Definition: TSMatDMatSubExpr.h:92
Expression object for transpose sparse matrix-dense vector multiplications.
Definition: TSMatDVecMultExpr.h:107
Expression object for sparse matrix-sparse matrix Kronecker product.
Definition: TSMatSMatKronExpr.h:91
Expression object for transpose sparse matrix-sparse matrix multiplications.
Definition: TSMatSMatMultExpr.h:107
Expression object for transpose sparse matrix-sparse matrix Schur products.
Definition: TSMatSMatSchurExpr.h:101
Expression object for transpose sparse matrix-sparse matrix subtractions.
Definition: TSMatSMatSubExpr.h:96
Expression object for sparse matrix-sparse vector multiplications.
Definition: TSMatSVecMultExpr.h:104
Expression object for transpose sparse matrix-transpose dense matrix multiplications.
Definition: TSMatTDMatMultExpr.h:131
Expression object for transpose sparse matrix-transpose sparse matrix additions.
Definition: TSMatTSMatAddExpr.h:95
Expression object for transpose sparse matrix-transpose sparse matrix Kronecker product.
Definition: TSMatTSMatKronExpr.h:89
Expression object for transpose sparse matrix-transpose sparse matrix multiplications.
Definition: TSMatTSMatMultExpr.h:110
Expression object for transpose sparse matrix-transpose sparse matrix Schur product.
Definition: TSMatTSMatSchurExpr.h:100
Expression object for transpose sparse matrix-transpose sparse matrix subtractions.
Definition: TSMatTSMatSubExpr.h:95
Expression object for transpose sparse vector-dense matrix multiplications.
Definition: TSVecDMatMultExpr.h:111
Expression object for sparse vector-sparse matrix multiplications.
Definition: TSVecSMatMultExpr.h:104
Expression object for transpose sparse vector-transpose dense matrix multiplications.
Definition: TSVecTDMatMultExpr.h:104
Expression object for sparse vector-sparse matrix multiplications.
Definition: TSVecTSMatMultExpr.h:99
Base class for N-dimensional vectors.
Definition: Vector.h:82
void eigen(const DenseMatrix< MT, SO > &A, DenseVector< VT, TF > &w)
Eigenvalue computation of the given dense matrix.
Definition: Eigen.h:351
void svd(const DenseMatrix< MT, SO > &A, DenseVector< VT, TF > &s)
Singular value decomposition (SVD) of the given dense general matrix.
Definition: SVD.h:135
decltype(auto) map(const DenseMatrix< MT1, SO > &lhs, const DenseMatrix< MT2, SO > &rhs, OP op)
Elementwise evaluation of the given binary operation on each single element of the dense matrices lhs...
Definition: DMatDMatMapExpr.h:1144
decltype(auto) fix(DenseMatrix< MT, SO > &dm) noexcept
Fixing the size of the given dense matrix.
Definition: DMatFixExpr.h:227
void solve(const DenseMatrix< MT, SO > &A, DenseVector< VT1, TF1 > &x, const DenseVector< VT2, TF2 > &b)
Solving the given linear system of equations ( ).
Definition: LSE.h:6343
decltype(auto) inv(const DenseMatrix< MT, SO > &dm)
Calculation of the inverse of the given dense matrix.
Definition: DMatInvExpr.h:405
decltype(auto) matexp(const DenseMatrix< MT, SO > &dm)
Calculation of the exponential of the given dense matrix.
Definition: DMatExpExpr.h:564
decltype(auto) nosimd(const SparseMatrix< MT, SO > &)
Disables the SIMD evaluation of the given sparse matrix expression sm.
Definition: SMatNoSIMDExpr.h:74
decltype(auto) declunilow(const SparseMatrix< MT, SO > &)
Declares the given sparse matrix expression sm as unilower.
Definition: SMatDeclUniLowExpr.h:978
decltype(auto) decllow(const SparseMatrix< MT, SO > &)
Declares the given sparse matrix expression sm as lower.
Definition: SMatDeclLowExpr.h:976
decltype(auto) decldiag(const SparseMatrix< MT, SO > &)
Declares the given sparse matrix expression sm as diagonal.
Definition: SMatDeclDiagExpr.h:950
decltype(auto) kron(const SparseMatrix< MT1, true > &, const SparseMatrix< MT2, true > &)
Computes the Kronecker product of two column-major sparse matrices ( ).
Definition: TSMatTSMatKronExpr.h:757
decltype(auto) decluniupp(const SparseMatrix< MT, SO > &)
Declares the given sparse matrix expression sm as uniupper.
Definition: SMatDeclUniUppExpr.h:976
decltype(auto) stddev(const SparseMatrix< MT, SO > &)
Computes the row-/columnwise standard deviation function for the given sparse matrix.
Definition: SMatStdDevExpr.h:133
decltype(auto) reduce(const SparseMatrix< MT, SO > &, OP)
Performs a custom reduction operation on the given sparse matrix.
Definition: SMatReduceExpr.h:1667
decltype(auto) trans(const SparseMatrix< MT, SO > &)
Calculation of the transpose of the given sparse matrix.
Definition: SMatTransExpr.h:728
decltype(auto) serial(const SparseMatrix< MT, SO > &)
Forces the serial evaluation of the given sparse matrix expression sm.
Definition: SMatSerialExpr.h:819
decltype(auto) var(const SparseMatrix< MT, SO > &)
Computes the row-/column-wise variance function for the given sparse matrix.
Definition: SMatVarExpr.h:1306
decltype(auto) transIf(const SparseMatrix< MT, SO > &)
Conditional calculation of the transpose of the given sparse matrix.
Definition: SMatTransExpr.h:794
decltype(auto) declstrlow(const SparseMatrix< MT, SO > &)
Declares the given sparse matrix expression sm as strictly lower.
Definition: SMatDeclStrLowExpr.h:977
decltype(auto) noalias(const SparseMatrix< MT, SO > &)
Forces the non-aliased evaluation of the given sparse matrix expression sm.
Definition: SMatNoAliasExpr.h:665
decltype(auto) mean(const SparseMatrix< MT, SO > &)
Computes the row-/columnwise mean function for the given sparse matrix.
Definition: SMatMeanExpr.h:242
decltype(auto) declupp(const SparseMatrix< MT, SO > &)
Declares the given sparse matrix expression sm as upper.
Definition: SMatDeclUppExpr.h:976
decltype(auto) declsym(const SparseMatrix< MT, SO > &)
Declares the given sparse matrix expression sm as symmetric.
Definition: SMatDeclSymExpr.h:977
decltype(auto) declstrupp(const SparseMatrix< MT, SO > &)
Declares the given sparse matrix expression sm as strictly upper.
Definition: SMatDeclStrUppExpr.h:977
decltype(auto) repeat(const SparseMatrix< MT, SO > &)
Repeats the given sparse matrix.
Definition: SMatRepeatExpr.h:619
decltype(auto) declherm(const SparseMatrix< MT, SO > &)
Declares the given sparse matrix expression sm as Hermitian.
Definition: SMatDeclHermExpr.h:977
decltype(auto) eval(const SparseMatrix< MT, SO > &)
Forces the evaluation of the given sparse matrix expression sm.
Definition: SMatEvalExpr.h:799
decltype(auto) expand(const SparseVector< VT, TF > &)
Expansion of the given sparse vector.
Definition: SVecExpandExpr.h:818
decltype(auto) transTo(const SparseVector< VT, TF > &)
Conditional calculation of the transpose of the given sparse vector.
Definition: SVecTransExpr.h:718
Base class for all eigenvalue expression templates.
Definition: EigenExpr.h:68
Base class for all evaluation expression templates.
Definition: EvalExpr.h:68
Base class for all expansion expression templates.
Definition: ExpandExpr.h:68
Base class for all expression templates.
Definition: Expression.h:60
Base class for all for-each expression templates.
Definition: GenExpr.h:68
Base class for all Kron product expression templates.
Definition: KronExpr.h:69
Base class for all matrix evaluation expression templates.
Definition: MatEvalExpr.h:69
Base class for all matrix exponential expression templates.
Definition: MatExpExpr.h:68
Base class for all matrix generator expression templates.
Definition: MatGenExpr.h:68
Base class for all matrix inversion expression templates.
Definition: MatInvExpr.h:72
Base class for all unary matrix map expression templates.
Definition: MatMapExpr.h:68
Base class for all matrix/matrix addition expression templates.
Definition: MatMatAddExpr.h:68
Base class for all matrix/matrix Kronecker expression templates.
Definition: MatMatKronExpr.h:69
Base class for all binary matrix map expression templates.
Definition: MatMatMapExpr.h:68
Base class for all matrix/matrix multiplication expression templates.
Definition: MatMatMultExpr.h:71
Base class for all multi LSE solver expression templates.
Definition: MatMatSolveExpr.h:69
Base class for all matrix/matrix subtraction expression templates.
Definition: MatMatSubExpr.h:69
Base class for all matrix no-alias expression templates.
Definition: MatNoAliasExpr.h:68
Base class for all matrix no-SIMD expression templates.
Definition: MatNoSIMDExpr.h:95
Base class for all matrix reduction expression templates.
Definition: MatReduceExpr.h:70
Base class for all matrix repeat expression templates.
Definition: MatRepeatExpr.h:69
Base class for all matrix/scalar division expression templates.
Definition: MatScalarDivExpr.h:75
Base class for all matrix/scalar multiplication expression templates.
Definition: MatScalarMultExpr.h:77
Base class for all matrix serial evaluation expression templates.
Definition: MatSerialExpr.h:69
Base class for all matrix transposition expression templates.
Definition: MatTransExpr.h:69
Base class for all matrix/vector multiplication expression templates.
Definition: MatVecMultExpr.h:69
Base class for all single LSE solver expression templates.
Definition: MatVecSolveExpr.h:69
Base class for all multiplication expression templates.
Definition: MultExpr.h:70
Base class for all no-alias expression templates.
Definition: NoAliasExpr.h:68
Base class for all no-SIMD expression templates.
Definition: NoSIMDExpr.h:68
Base class for all reduction expression templates.
Definition: ReduceExpr.h:68
Base class for all for-each expression templates.
Definition: RepeatExpr.h:68
Base class for all singular value expression templates.
Definition: SVDExpr.h:68
Base class for all Schur product expression templates.
Definition: SchurExpr.h:68
Base class for all serial evaluation expression templates.
Definition: SerialExpr.h:68
Base class for all LSE solver expression templates.
Definition: SolveExpr.h:68
Base class for all subtraction expression templates.
Definition: SubExpr.h:68
Base class for all vector/matrix multiplication expression templates.
Definition: TVecMatMultExpr.h:69
Base class for all transposition expression templates.
Definition: TransExpr.h:68
Base class for all for-each expression templates.
Definition: UnaryMapExpr.h:68
Base class for all vector evaluation expression templates.
Definition: VecEvalExpr.h:69
Base class for all vector expansion expression templates.
Definition: VecExpandExpr.h:69
Base class for all vector generator expression templates.
Definition: VecGenExpr.h:68
Base class for all unary vector map expression templates.
Definition: VecMapExpr.h:68
Base class for all vector no-alias expression templates.
Definition: VecNoAliasExpr.h:68
Base class for all vector no-SIMD expression templates.
Definition: VecNoSIMDExpr.h:88
Base class for all vector repeater expression templates.
Definition: VecRepeatExpr.h:69
Base class for all vector/scalar division expression templates.
Definition: VecScalarDivExpr.h:75
Base class for all vector/scalar multiplication expression templates.
Definition: VecScalarMultExpr.h:76
Base class for all vector serial evaluation expression templates.
Definition: VecSerialExpr.h:69
Base class for all outer map expression templates.
Definition: VecTVecMapExpr.h:68
Base class for all outer product expression templates.
Definition: VecTVecMultExpr.h:69
Base class for all vector transposition expression templates.
Definition: VecTransExpr.h:69
Base class for all vector/vector addition expression templates.
Definition: VecVecAddExpr.h:68
Base class for all vector/vector division expression templates.
Definition: VecVecDivExpr.h:68
Base class for all vector/vector Kronecker expression templates.
Definition: VecVecKronExpr.h:69
Base class for all binary vector map expression templates.
Definition: VecVecMapExpr.h:68
Base class for all vector/vector multiplication expression templates.
Definition: VecVecMultExpr.h:68
Base class for all vector/vector subtraction expression templates.
Definition: VecVecSubExpr.h:68
Base class for all views.
Definition: View.h:67
Header file for basic type definitions.