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 namespace blaze {
40 
41 //=================================================================================================
42 //
43 // ::blaze NAMESPACE FORWARD DECLARATIONS
44 //
45 //=================================================================================================
46 
47 template< typename, bool > struct DenseMatrix;
48 template< typename, bool > struct DenseVector;
49 template< typename, typename, bool > class DMatDMatAddExpr;
50 template< typename, typename > class DMatDMatMultExpr;
51 template< typename, typename, bool > class DMatDMatSubExpr;
52 template< typename, typename > class DMatDVecMultExpr;
53 template< typename, bool > class DMatEvalExpr;
54 template< typename, typename, bool > class DMatForEachExpr;
55 template< typename, bool > class DMatInvExpr;
56 template< typename, typename, bool > class DMatScalarDivExpr;
57 template< typename, typename, bool > class DMatScalarMultExpr;
58 template< typename, bool > class DMatSerialExpr;
59 template< typename, typename, bool > class DMatSMatAddExpr;
60 template< typename, typename > class DMatSMatMultExpr;
61 template< typename, typename, bool > class DMatSMatSubExpr;
62 template< typename, typename > class DMatSVecMultExpr;
63 template< typename, typename > class DMatTDMatAddExpr;
64 template< typename, typename > class DMatTDMatMultExpr;
65 template< typename, typename > class DMatTDMatSubExpr;
66 template< typename, bool > class DMatTransExpr;
67 template< typename, bool > class DMatTransposer;
68 template< typename, typename > class DMatTSMatAddExpr;
69 template< typename, typename > class DMatTSMatMultExpr;
70 template< typename, typename > class DMatTSMatSubExpr;
71 template< typename, typename, bool > class DVecDVecAddExpr;
72 template< typename, typename, bool > class DVecDVecCrossExpr;
73 template< typename, typename, bool > class DVecDVecDivExpr;
74 template< typename, typename, bool > class DVecDVecMultExpr;
75 template< typename, typename, bool > class DVecDVecSubExpr;
76 template< typename, bool > class DVecEvalExpr;
77 template< typename, typename, bool > class DVecForEachExpr;
78 template< typename, typename, bool > class DVecScalarDivExpr;
79 template< typename, typename, bool > class DVecScalarMultExpr;
80 template< typename, bool > class DVecSerialExpr;
81 template< typename, typename, bool > class DVecSVecAddExpr;
82 template< typename, typename, bool > class DVecSVecCrossExpr;
83 template< typename, typename, bool > class DVecSVecMultExpr;
84 template< typename, typename, bool > class DVecSVecSubExpr;
85 template< typename, typename > class DVecTDVecMultExpr;
86 template< typename, bool > class DVecTransExpr;
87 template< typename, bool > class DVecTransposer;
88 template< typename, typename > class DVecTSVecMultExpr;
89 template< typename, bool > struct Matrix;
90 template< typename, typename > class SMatDMatMultExpr;
91 template< typename, typename, bool > class SMatDMatSubExpr;
92 template< typename, typename > class SMatDVecMultExpr;
93 template< typename, bool > class SMatEvalExpr;
94 template< typename, typename, bool > class SMatForEachExpr;
95 template< typename, typename, bool > class SMatScalarDivExpr;
96 template< typename, typename, bool > class SMatScalarMultExpr;
97 template< typename, bool > class SMatSerialExpr;
98 template< typename, typename > class SMatSMatAddExpr;
99 template< typename, typename > class SMatSMatMultExpr;
100 template< typename, typename > class SMatSMatSubExpr;
101 template< typename, typename > class SMatSVecMultExpr;
102 template< typename, typename > class SMatTDMatMultExpr;
103 template< typename, typename > class SMatTDMatSubExpr;
104 template< typename, bool > class SMatTransExpr;
105 template< typename, bool > class SMatTransposer;
106 template< typename, typename > class SMatTSMatAddExpr;
107 template< typename, typename > class SMatTSMatMultExpr;
108 template< typename, typename > class SMatTSMatSubExpr;
109 template< typename, bool > struct SparseMatrix;
110 template< typename, bool > struct SparseVector;
111 template< typename, typename, bool > class SVecDVecCrossExpr;
112 template< typename, typename, bool > class SVecDVecDivExpr;
113 template< typename, typename, bool > class SVecDVecMultExpr;
114 template< typename, typename, bool > class SVecDVecSubExpr;
115 template< typename, bool > class SVecEvalExpr;
116 template< typename, typename, bool > class SVecForEachExpr;
117 template< typename, typename, bool > class SVecScalarDivExpr;
118 template< typename, typename, bool > class SVecScalarMultExpr;
119 template< typename, bool > class SVecSerialExpr;
120 template< typename, typename, bool > class SVecSVecAddExpr;
121 template< typename, typename, bool > class SVecSVecCrossExpr;
122 template< typename, typename, bool > class SVecSVecMultExpr;
123 template< typename, typename, bool > class SVecSVecSubExpr;
124 template< typename, typename > class SVecTDVecMultExpr;
125 template< typename, bool > class SVecTransExpr;
126 template< typename, bool > class SVecTransposer;
127 template< typename, typename > class SVecTSVecMultExpr;
128 template< typename, typename > class TDMatDMatMultExpr;
129 template< typename, typename > class TDMatDVecMultExpr;
130 template< typename, typename > class TDMatSMatAddExpr;
131 template< typename, typename > class TDMatSMatMultExpr;
132 template< typename, typename > class TDMatSMatSubExpr;
133 template< typename, typename > class TDMatSVecMultExpr;
134 template< typename, typename > class TDMatTDMatMultExpr;
135 template< typename, typename > class TDMatTSMatMultExpr;
136 template< typename, typename > class TDVecDMatMultExpr;
137 template< typename, typename > class TDVecSMatMultExpr;
138 template< typename, typename > class TDVecTDMatMultExpr;
139 template< typename, typename > class TDVecTSMatMultExpr;
140 template< typename, typename > class TSMatDMatMultExpr;
141 template< typename, typename > class TSMatDMatSubExpr;
142 template< typename, typename > class TSMatDVecMultExpr;
143 template< typename, typename > class TSMatSMatMultExpr;
144 template< typename, typename > class TSMatSMatSubExpr;
145 template< typename, typename > class TSMatSVecMultExpr;
146 template< typename, typename > class TSMatTDMatMultExpr;
147 template< typename, typename > class TSMatTSMatAddExpr;
148 template< typename, typename > class TSMatTSMatMultExpr;
149 template< typename, typename > class TSMatTSMatSubExpr;
150 template< typename, typename > class TSVecDMatMultExpr;
151 template< typename, typename > class TSVecSMatMultExpr;
152 template< typename, typename > class TSVecTDMatMultExpr;
153 template< typename, typename > class TSVecTSMatMultExpr;
154 template< typename, bool > struct Vector;
155 
156 template< typename VT, bool TF >
157 inline const DVecTransExpr<VT,!TF> trans( const DenseVector<VT,TF>& );
158 
159 template< typename VT, bool TF >
160 inline const SVecTransExpr<VT,!TF> trans( const SparseVector<VT,TF>& );
161 
162 template< typename MT, bool SO >
163 inline const DMatTransExpr<MT,!SO> trans( const DenseMatrix<MT,SO>& );
164 
165 template< typename MT, bool SO >
166 inline const SMatTransExpr<MT,!SO> trans( const SparseMatrix<MT,SO>& );
167 
168 template< typename VT, bool TF >
169 inline const DVecSerialExpr<VT,TF> serial( const DenseVector<VT,TF>& );
170 
171 template< typename VT, bool TF >
172 inline const SVecSerialExpr<VT,TF> serial( const SparseVector<VT,TF>& );
173 
174 template< typename MT, bool SO >
175 inline const DMatSerialExpr<MT,SO> serial( const DenseMatrix<MT,SO>& );
176 
177 template< typename MT, bool SO >
178 inline const SMatSerialExpr<MT,SO> serial( const SparseMatrix<MT,SO>& );
179 
180 template< typename VT, bool TF, typename OP >
181 inline const DVecForEachExpr<VT,OP,TF> forEach( const DenseVector<VT,TF>&, OP );
182 
183 template< typename VT, bool TF, typename OP >
184 inline const SVecForEachExpr<VT,OP,TF> forEach( const SparseVector<VT,TF>&, OP );
185 
186 template< typename MT, bool SO, typename OP >
187 inline const DMatForEachExpr<MT,OP,SO> forEach( const DenseMatrix<MT,SO>&, OP );
188 
189 template< typename MT, bool SO, typename OP >
190 inline const SMatForEachExpr<MT,OP,SO> forEach( const SparseMatrix<MT,SO>&, OP );
191 
192 } // namespace blaze
193 
194 #endif
Expression object for the forced serial evaluation of dense vectors.The DVecSerialExpr class represen...
Definition: DVecSerialExpr.h:89
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:138
Expression object for sparse vector-dense vector subtractions.The SVecDVecSubExpr class represents th...
Definition: Forward.h:114
Expression object for transpose sparse matrix-dense vector multiplications.The TSMatDVecMultExpr clas...
Definition: Forward.h:142
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:146
Expression object for transpose dense vector-sparse matrix multiplications.The TDVecSMatMultExpr clas...
Definition: Forward.h:137
Expression object for transpose sparse vector-dense matrix multiplications.The TSVecDMatMultExpr clas...
Definition: Forward.h:150
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:135
Expression object for dense matrix transpositions.The DMatTransExpr class represents the compile time...
Definition: DMatTransExpr.h:108
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:139
Expression object for sparse matrix-dense vector multiplications.The SMatDVecMultExpr class represent...
Definition: Forward.h:92
Expression object for sparse vector-dense vector cross products.The SVecDVecCrossExpr class represent...
Definition: Forward.h:111
Expression object for sparse vector-dense vector outer products.The SVecTDVecMultExpr class represent...
Definition: Forward.h:124
Expression object for the forced evaluation of sparse vectors.The SVecEvalExpr class represents the c...
Definition: Forward.h:115
Expression object for sparse vector transpositions.The SVecTransExpr class represents the compile tim...
Definition: Forward.h:125
const DMatSerialExpr< MT, SO > serial(const DenseMatrix< MT, SO > &dm)
Forces the serial evaluation of the given dense matrix expression dm.
Definition: DMatSerialExpr.h:723
Expression object for sparse matrix-dense matrix multiplications.The SMatDMatMultExpr class represent...
Definition: Forward.h:90
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:134
Expression object for transpose dense matrix-sparse matrix multiplications.The TDMatSMatMultExpr clas...
Definition: Forward.h:131
Base class for dense matrices.The DenseMatrix class is a base class for all dense matrix classes...
Definition: DenseMatrix.h:70
Base class for sparse matrices.The SparseMatrix class is a base class for all sparse matrix classes...
Definition: Forward.h:109
Expression object for transpose dense matrix-dense vector multiplications.The TDMatDVecMultExpr class...
Definition: Forward.h:129
Expression object for sparse vector-sparse vector additions.The SVecSVecAddExpr class represents the ...
Definition: Forward.h:120
Expression object for transpose dense matrix-dense matrix multiplications.The TDMatDMatMultExpr class...
Definition: Forward.h:128
Expression object for sparse matrix-transpose sparse matrix multiplications.The SMatTSMatMultExpr cla...
Definition: Forward.h:107
Expression object for sparse matrix-dense matrix subtractions.The SMatDMatSubExpr class represents th...
Definition: Forward.h:91
Expression object for sparse matrix-transpose dense matrix subtractions.The SMatTDMatSubExpr class re...
Definition: Forward.h:103
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Expression object for sparse matrix-sparse vector multiplications.The TSMatSVecMultExpr class represe...
Definition: Forward.h:145
Expression object for sparse matrix-sparse vector multiplications.The SMatSVecMultExpr class represen...
Definition: Forward.h:101
Expression object for sparse vector-sparse vector subtractions.The SVecSVecSubExpr class represents t...
Definition: Forward.h:123
Expression object for sparse vector-dense vector divisions.The SVecDVecDivExpr class represents the c...
Definition: Forward.h:112
Expression object for the forced serial evaluation of dense matrices.The DMatSerialExpr class represe...
Definition: DMatSerialExpr.h:100
Expression object for transpose sparse matrix-transpose sparse matrix additions.The TSMatTSMatAddExpr...
Definition: Forward.h:147
Expression object for sparse vector-sparse matrix multiplications.The TSVecSMatMultExpr class represe...
Definition: Forward.h:151
Expression object for sparse vector-sparse matrix multiplications.The TSVecTSMatMultExpr class repres...
Definition: Forward.h:153
Expression object for sparse matrix-transpose sparse matrix subtractions.The SMatTSMatSubExpr class r...
Definition: Forward.h:108
const DMatForEachExpr< MT, OP, SO > forEach(const DenseMatrix< MT, SO > &dm, OP op)
Evaluates the given custom operation on each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1046
Expression object for the transposition of a sparse vector.The SVecTransposer class is a wrapper obje...
Definition: Forward.h:126
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:148
Base class for N-dimensional dense vectors.The DenseVector class is a base class for all arbitrarily ...
Definition: DenseVector.h:70
Expression object for sparse vector-sparse vector outer products.The SVecTSVecMultExpr class represen...
Definition: Forward.h:127
Expression object for sparse matrix-transpose dense matrix multiplications.The SMatTDMatMultExpr clas...
Definition: Forward.h:102
Expression object for the sparse matrix forEach() function.The SMatForEachExpr class represents the c...
Definition: Forward.h:94
Expression object for the dense matrix forEach() function.The DMatForEachExpr class represents the co...
Definition: DMatForEachExpr.h:113
Expression object for sparse matrix-scalar multiplications.The SMatScalarMult class represents the co...
Definition: Forward.h:96
Expression object for the forced serial evaluation of sparse vectors.The SVecSerialExpr class represe...
Definition: Forward.h:119
Expression object for transpose dense matrix-sparse vector multiplications.The TDMatSVecMultExpr clas...
Definition: Forward.h:133
Expression object for the transposition of a sparse matrix.The SMatTransposer class is a wrapper obje...
Definition: Forward.h:105
Expression object for sparse matrix-sparse matrix multiplications.The SMatSMatMultExpr class represen...
Definition: Forward.h:99
Expression object for sparse vector-sparse vector multiplications.The SVecSVecMultExpr class represen...
Definition: Forward.h:122
Expression object for sparse matrix-sparse matrix subtractions.The SMatSMatSubExpr class represents t...
Definition: Forward.h:100
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:149
Expression object for sparse matrix-scalar divisions.The SMatScalarMult class represents the compile ...
Definition: Forward.h:95
Expression object for transpose sparse matrix-dense matrix subtractions.The TSMatDMatSubExpr class re...
Definition: Forward.h:141
Base class for matrices.The Matrix class is a base class for all dense and sparse matrix classes with...
Definition: Forward.h:89
Expression object for transpose dense vector-dense matrix multiplications.The TDVecDMatMultExpr class...
Definition: Forward.h:136
Expression object for divisions of a sparse vector by a scalar.The SVecScalarDivExpr class represents...
Definition: Forward.h:117
Expression object for transpose sparse matrix-sparse matrix multiplications.The TSMatSMatMultExpr cla...
Definition: Forward.h:143
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:152
Expression object for sparse matrix-transpose sparse matrix additions.The SMatTSMatAddExpr class repr...
Definition: Forward.h:106
Base class for N-dimensional vectors.The Vector class is a base class for all arbitrarily sized (N-di...
Definition: Forward.h:154
const DMatTransExpr< MT,!SO > trans(const DenseMatrix< MT, SO > &dm)
Calculation of the transpose of the given dense matrix.
Definition: DMatTransExpr.h:950
Expression object for sparse matrix-sparse matrix additions.The SMatSMatAddExpr class represents the ...
Definition: Forward.h:98
Expression object for transpose sparse matrix-dense matrix multiplications.The TSMatDMatMultExpr clas...
Definition: Forward.h:140
Expression object for sparse vector-scalar multiplications.The SVecScalarMultExpr class represents th...
Definition: Forward.h:118
Expression object for dense matrix-sparse matrix additions.The TDMatSMatAddExpr class represents the ...
Definition: Forward.h:130
Base class for sparse vectors.The SparseVector class is a base class for all arbitrarily sized (N-dim...
Definition: Forward.h:110
Expression object for sparse matrix transpositions.The SMatTransExpr class represents the compile tim...
Definition: Forward.h:104
Expression object for the forced evaluation of sparse matrices.The SMatEvalExpr class represents the ...
Definition: Forward.h:93
Expression object for dense vector transpositions.The DVecTransExpr class represents the compile time...
Definition: DVecTransExpr.h:97
Expression object for the sparse vector forEach() function.The SVecForEachExpr class represents the c...
Definition: Forward.h:116
Expression object for the dense vector forEach() function.The DVecForEachExpr class represents the co...
Definition: DVecForEachExpr.h:100
Expression object for transpose sparse matrix-sparse matrix subtractions.The TSMatSMatSubExpr class r...
Definition: Forward.h:144
Expression object for the forced serial evaluation of sparse matrices.The SMatSerialExpr class repres...
Definition: Forward.h:97
Expression object for transpose dense matrix-sparse matrix subtractions.The TDMatSMatSubExpr class re...
Definition: Forward.h:132
Expression object for sparse vector-sparse vector cross products.The SVecSVecCrossExpr class represen...
Definition: Forward.h:121
Expression object for sparse vector-dense vector multiplications.The SVecDVecMultExpr class represent...
Definition: Forward.h:113