35 #ifndef _BLAZE_MATH_VIEWS_FORWARD_H_ 36 #define _BLAZE_MATH_VIEWS_FORWARD_H_ 64 template<
size_t I,
size_t N,
typename VT,
bool TF,
typename... RSAs >
65 decltype(
auto)
subvector( Vector<VT,TF>&, RSAs... );
67 template<
size_t I,
size_t N, typename VT,
bool TF, typename... RSAs >
68 decltype(auto)
subvector( const Vector<VT,TF>&, RSAs... );
70 template<
size_t I,
size_t N, typename VT,
bool TF, typename... RSAs >
71 decltype(auto)
subvector( Vector<VT,TF>&&, RSAs... );
73 template<
AlignmentFlag AF,
size_t I,
size_t N, typename VT,
bool TF, typename... RSAs >
74 decltype(auto)
subvector( Vector<VT,TF>&, RSAs... );
76 template<
AlignmentFlag AF,
size_t I,
size_t N, typename VT,
bool TF, typename... RSAs >
77 decltype(auto)
subvector( const Vector<VT,TF>&, RSAs... );
79 template<
AlignmentFlag AF,
size_t I,
size_t N, typename VT,
bool TF, typename... RSAs >
80 decltype(auto)
subvector( Vector<VT,TF>&&, RSAs... );
82 template< typename VT,
bool TF, typename... RSAs >
83 decltype(auto)
subvector( Vector<VT,TF>&,
size_t,
size_t, RSAs... );
85 template< typename VT,
bool TF, typename... RSAs >
86 decltype(auto)
subvector( const Vector<VT,TF>&,
size_t,
size_t, RSAs... );
88 template< typename VT,
bool TF, typename... RSAs >
89 decltype(auto)
subvector( Vector<VT,TF>&&,
size_t,
size_t, RSAs... );
91 template<
AlignmentFlag AF, typename VT,
bool TF, typename... RSAs >
92 decltype(auto)
subvector( Vector<VT,TF>&,
size_t,
size_t, RSAs... );
94 template<
AlignmentFlag AF, typename VT,
bool TF, typename... RSAs >
95 decltype(auto)
subvector( const Vector<VT,TF>&,
size_t,
size_t, RSAs... );
97 template<
AlignmentFlag AF, typename VT,
bool TF, typename... RSAs >
98 decltype(auto)
subvector( Vector<VT,TF>&&,
size_t,
size_t, RSAs... );
101 template<
size_t I,
size_t... Is, typename VT,
bool TF, typename... REAs >
102 decltype(auto)
elements( Vector<VT,TF>&, REAs... );
104 template<
size_t I,
size_t... Is, typename VT,
bool TF, typename... REAs >
105 decltype(auto)
elements( const Vector<VT,TF>&, REAs... );
107 template<
size_t I,
size_t... Is, typename VT,
bool TF, typename... REAs >
108 decltype(auto)
elements( Vector<VT,TF>&&, REAs... );
110 template< typename VT,
bool TF, typename T, typename... REAs >
111 decltype(auto)
elements( Vector<VT,TF>&, T*,
size_t, REAs... );
113 template< typename VT,
bool TF, typename T, typename... REAs >
114 decltype(auto)
elements( const Vector<VT,TF>&, T*,
size_t, REAs... );
116 template< typename VT,
bool TF, typename T, typename... REAs >
117 decltype(auto)
elements( Vector<VT,TF>&&, T*,
size_t, REAs... );
119 template< typename VT,
bool TF, typename P, typename... REAs >
120 decltype(auto)
elements( Vector<VT,TF>&, P,
size_t, REAs... );
122 template< typename VT,
bool TF, typename P, typename... REAs >
123 decltype(auto)
elements( const Vector<VT,TF>&, P,
size_t, REAs... );
125 template< typename VT,
bool TF, typename P, typename... REAs >
126 decltype(auto)
elements( Vector<VT,TF>&&, P,
size_t, REAs... );
129 template<
size_t I,
size_t J,
size_t M,
size_t N, typename MT,
bool SO, typename... RSAs >
130 decltype(auto)
submatrix( Matrix<MT,SO>&, RSAs... );
132 template<
size_t I,
size_t J,
size_t M,
size_t N, typename MT,
bool SO, typename... RSAs >
133 decltype(auto)
submatrix( const Matrix<MT,SO>&, RSAs... );
135 template<
size_t I,
size_t J,
size_t M,
size_t N, typename MT,
bool SO, typename... RSAs >
136 decltype(auto)
submatrix( Matrix<MT,SO>&&, RSAs... );
138 template<
AlignmentFlag AF,
size_t I,
size_t J,
size_t M,
size_t N, typename MT,
bool SO, typename... RSAs >
139 decltype(auto)
submatrix( Matrix<MT,SO>&, RSAs... );
141 template<
AlignmentFlag AF,
size_t I,
size_t J,
size_t M,
size_t N, typename MT,
bool SO, typename... RSAs >
142 decltype(auto)
submatrix( const Matrix<MT,SO>&, RSAs... );
144 template<
AlignmentFlag AF,
size_t I,
size_t J,
size_t M,
size_t N, typename MT,
bool SO, typename... RSAs >
145 decltype(auto)
submatrix( Matrix<MT,SO>&&, RSAs... );
147 template< typename MT,
bool SO, typename... RSAs >
148 decltype(auto)
submatrix( Matrix<MT,SO>&,
size_t,
size_t,
size_t,
size_t, RSAs... );
150 template< typename MT,
bool SO, typename... RSAs >
151 decltype(auto)
submatrix( const Matrix<MT,SO>&,
size_t,
size_t,
size_t,
size_t, RSAs... );
153 template< typename MT,
bool SO, typename... RSAs >
154 decltype(auto)
submatrix( Matrix<MT,SO>&&,
size_t,
size_t,
size_t,
size_t, RSAs... );
156 template<
AlignmentFlag AF, typename MT,
bool SO, typename... RSAs >
157 decltype(auto)
submatrix( Matrix<MT,SO>&,
size_t,
size_t,
size_t,
size_t, RSAs... );
159 template<
AlignmentFlag AF, typename MT,
bool SO, typename... RSAs >
160 decltype(auto)
submatrix( const Matrix<MT,SO>&,
size_t,
size_t,
size_t,
size_t, RSAs... );
162 template<
AlignmentFlag AF, typename MT,
bool SO, typename... RSAs >
163 decltype(auto)
submatrix( Matrix<MT,SO>&&,
size_t,
size_t,
size_t,
size_t, RSAs... );
166 template<
size_t I, typename MT,
bool SO, typename... RRAs >
167 decltype(auto)
row( Matrix<MT,SO>&, RRAs... );
169 template<
size_t I, typename MT,
bool SO, typename... RRAs >
170 decltype(auto)
row( const Matrix<MT,SO>&, RRAs... );
172 template<
size_t I, typename MT,
bool SO, typename... RRAs >
173 decltype(auto)
row( Matrix<MT,SO>&&, RRAs... );
175 template< typename MT,
bool SO, typename... RRAs >
176 decltype(auto)
row( Matrix<MT,SO>&,
size_t, RRAs... );
178 template< typename MT,
bool SO, typename... RRAs >
179 decltype(auto)
row( const Matrix<MT,SO>&,
size_t, RRAs... );
181 template< typename MT,
bool SO, typename... RRAs >
182 decltype(auto)
row( Matrix<MT,SO>&&,
size_t, RRAs... );
185 template<
size_t I,
size_t... Is, typename MT,
bool SO, typename... RRAs >
186 decltype(auto)
rows( Matrix<MT,SO>&, RRAs... );
188 template<
size_t I,
size_t... Is, typename MT,
bool SO, typename... RRAs >
189 decltype(auto)
rows( const Matrix<MT,SO>&, RRAs... );
191 template<
size_t I,
size_t... Is, typename MT,
bool SO, typename... RRAs >
192 decltype(auto)
rows( Matrix<MT,SO>&&, RRAs... );
194 template< typename MT,
bool SO, typename T, typename... RRAs >
195 decltype(auto)
rows( Matrix<MT,SO>&, T*,
size_t, RRAs... );
197 template< typename MT,
bool SO, typename T, typename... RRAs >
198 decltype(auto)
rows( const Matrix<MT,SO>&, T*,
size_t, RRAs... );
200 template< typename MT,
bool SO, typename T, typename... RRAs >
201 decltype(auto)
rows( Matrix<MT,SO>&&, T*,
size_t, RRAs... );
203 template< typename MT,
bool SO, typename P, typename... RRAs >
204 decltype(auto)
rows( Matrix<MT,SO>&, P,
size_t, RRAs... );
206 template< typename MT,
bool SO, typename P, typename... RRAs >
207 decltype(auto)
rows( const Matrix<MT,SO>&, P,
size_t, RRAs... );
209 template< typename MT,
bool SO, typename P, typename... RRAs >
210 decltype(auto)
rows( Matrix<MT,SO>&&, P,
size_t, RRAs... );
213 template<
size_t I, typename MT,
bool SO, typename... RCAs >
214 decltype(auto)
column( Matrix<MT,SO>&, RCAs... );
216 template<
size_t I, typename MT,
bool SO, typename... RCAs >
217 decltype(auto)
column( const Matrix<MT,SO>&, RCAs... );
219 template<
size_t I, typename MT,
bool SO, typename... RCAs >
220 decltype(auto)
column( Matrix<MT,SO>&&, RCAs... );
222 template< typename MT,
bool SO, typename... RCAs >
223 decltype(auto)
column( Matrix<MT,SO>&,
size_t, RCAs... );
225 template< typename MT,
bool SO, typename... RCAs >
226 decltype(auto)
column( const Matrix<MT,SO>&,
size_t, RCAs... );
228 template< typename MT,
bool SO, typename... RCAs >
229 decltype(auto)
column( Matrix<MT,SO>&&,
size_t, RCAs... );
232 template<
size_t I,
size_t... Is, typename MT,
bool SO, typename... RCAs >
233 decltype(auto)
columns( Matrix<MT,SO>&, RCAs... );
235 template<
size_t I,
size_t... Is, typename MT,
bool SO, typename... RCAs >
236 decltype(auto)
columns( const Matrix<MT,SO>&, RCAs... );
238 template<
size_t I,
size_t... Is, typename MT,
bool SO, typename... RCAs >
239 decltype(auto)
columns( Matrix<MT,SO>&&, RCAs... );
241 template< typename MT,
bool SO, typename T, typename... RCAs >
242 decltype(auto)
columns( Matrix<MT,SO>&, T*,
size_t, RCAs... );
244 template< typename MT,
bool SO, typename T, typename... RCAs >
245 decltype(auto)
columns( const Matrix<MT,SO>&, T*,
size_t, RCAs... );
247 template< typename MT,
bool SO, typename T, typename... RCAs >
248 decltype(auto)
columns( Matrix<MT,SO>&&, T*,
size_t, RCAs... );
250 template< typename MT,
bool SO, typename P, typename... RCAs >
251 decltype(auto)
columns( Matrix<MT,SO>&, P,
size_t, RCAs... );
253 template< typename MT,
bool SO, typename P, typename... RCAs >
254 decltype(auto)
columns( const Matrix<MT,SO>&, P,
size_t, RCAs... );
256 template< typename MT,
bool SO, typename P, typename... RCAs >
257 decltype(auto)
columns( Matrix<MT,SO>&&, P,
size_t, RCAs... );
260 template< ptrdiff_t I, typename MT,
bool SO, typename... RBAs >
261 decltype(auto)
band( Matrix<MT,SO>&, RBAs... );
263 template< ptrdiff_t I, typename MT,
bool SO, typename... RBAs >
264 decltype(auto)
band( const Matrix<MT,SO>&, RBAs... );
266 template< ptrdiff_t I, typename MT,
bool SO, typename... RBAs >
267 decltype(auto)
band( Matrix<MT,SO>&&, RBAs... );
269 template< typename MT,
bool SO, typename... RBAs >
270 decltype(auto)
band( Matrix<MT,SO>&, ptrdiff_t, RBAs... );
272 template< typename MT,
bool SO, typename... RBAs >
273 decltype(auto)
band( const Matrix<MT,SO>&, ptrdiff_t, RBAs... );
275 template< typename MT,
bool SO, typename... RBAs >
276 decltype(auto)
band( Matrix<MT,SO>&&, ptrdiff_t, RBAs... );
278 template< typename MT,
bool SO, typename... RDAs >
279 decltype(auto)
diagonal( Matrix<MT,SO>&, RDAs... );
281 template< typename MT,
bool SO, typename... RDAs >
282 decltype(auto)
diagonal( const Matrix<MT,SO>&, RDAs... );
284 template< typename MT,
bool SO, typename... RDAs >
285 decltype(auto)
diagonal( Matrix<MT,SO>&&, RDAs... );
AlignmentFlag
Alignment flag for (un-)aligned vectors and matrices.Via these flags it is possible to specify subvec...
Definition: AlignmentFlag.h:62
decltype(auto) column(Matrix< MT, SO > &matrix, RCAs... args)
Creating a view on a specific column of the given matrix.
Definition: Column.h:133
Header file for the implementation of the Columns base template.
Header file for the alignment flag values.
Header file for basic type definitions.
decltype(auto) submatrix(Matrix< MT, SO > &, RSAs...)
Creating a view on a specific submatrix of the given matrix.
Definition: Submatrix.h:178
Header file for the implementation of the Column base template.
decltype(auto) subvector(Vector< VT, TF > &, RSAs...)
Creating a view on a specific subvector of the given vector.
Definition: Subvector.h:154
Header file for the implementation of the Band base template.
constexpr size_t columns(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of columns of the matrix.
Definition: Matrix.h:514
Header file for the implementation of the Row base template.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Header file for the implementation of the Submatrix base template.
Header file for the implementation of the Subvector base template.
Header file for the implementation of the Elements base template.
decltype(auto) elements(Vector< VT, TF > &vector, REAs... args)
Creating a view on a selection of elements of the given vector.
Definition: Elements.h:139
decltype(auto) diagonal(Matrix< MT, SO > &matrix, RDAs... args)
Creating a view on the diagonal of the given matrix.
Definition: Band.h:377
decltype(auto) band(Matrix< MT, SO > &matrix, RBAs... args)
Creating a view on a specific band of the given matrix.
Definition: Band.h:137
decltype(auto) row(Matrix< MT, SO > &, RRAs...)
Creating a view on a specific row of the given matrix.
Definition: Row.h:133
Header file for all forward declarations for expression class templates.
constexpr size_t rows(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of rows of the matrix.
Definition: Matrix.h:498
Header file for the implementation of the Rows base template.