Blaze 3.9
Forward.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_VIEWS_FORWARD_H_
36#define _BLAZE_MATH_VIEWS_FORWARD_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
53#include <blaze/util/Types.h>
54
55
56namespace blaze {
57
58//=================================================================================================
59//
60// ::blaze NAMESPACE FORWARD DECLARATIONS
61//
62//=================================================================================================
63
64template< size_t I, size_t N, typename VT, bool TF, typename... RSAs >
65decltype(auto) subvector( Vector<VT,TF>&, RSAs... );
66
67template< size_t I, size_t N, typename VT, bool TF, typename... RSAs >
68decltype(auto) subvector( const Vector<VT,TF>&, RSAs... );
69
70template< size_t I, size_t N, typename VT, bool TF, typename... RSAs >
71decltype(auto) subvector( Vector<VT,TF>&&, RSAs... );
72
73template< AlignmentFlag AF, size_t I, size_t N, typename VT, bool TF, typename... RSAs >
74decltype(auto) subvector( Vector<VT,TF>&, RSAs... );
75
76template< AlignmentFlag AF, size_t I, size_t N, typename VT, bool TF, typename... RSAs >
77decltype(auto) subvector( const Vector<VT,TF>&, RSAs... );
78
79template< AlignmentFlag AF, size_t I, size_t N, typename VT, bool TF, typename... RSAs >
80decltype(auto) subvector( Vector<VT,TF>&&, RSAs... );
81
82template< typename VT, bool TF, typename... RSAs >
83decltype(auto) subvector( Vector<VT,TF>&, size_t, size_t, RSAs... );
84
85template< typename VT, bool TF, typename... RSAs >
86decltype(auto) subvector( const Vector<VT,TF>&, size_t, size_t, RSAs... );
87
88template< typename VT, bool TF, typename... RSAs >
89decltype(auto) subvector( Vector<VT,TF>&&, size_t, size_t, RSAs... );
90
91template< AlignmentFlag AF, typename VT, bool TF, typename... RSAs >
92decltype(auto) subvector( Vector<VT,TF>&, size_t, size_t, RSAs... );
93
94template< AlignmentFlag AF, typename VT, bool TF, typename... RSAs >
95decltype(auto) subvector( const Vector<VT,TF>&, size_t, size_t, RSAs... );
96
97template< AlignmentFlag AF, typename VT, bool TF, typename... RSAs >
98decltype(auto) subvector( Vector<VT,TF>&&, size_t, size_t, RSAs... );
99
100
101template< size_t I, size_t... Is, typename VT, bool TF, typename... REAs >
102decltype(auto) elements( Vector<VT,TF>&, REAs... );
103
104template< size_t I, size_t... Is, typename VT, bool TF, typename... REAs >
105decltype(auto) elements( const Vector<VT,TF>&, REAs... );
106
107template< size_t I, size_t... Is, typename VT, bool TF, typename... REAs >
108decltype(auto) elements( Vector<VT,TF>&&, REAs... );
109
110template< typename VT, bool TF, typename T, typename... REAs >
111decltype(auto) elements( Vector<VT,TF>&, T*, size_t, REAs... );
112
113template< typename VT, bool TF, typename T, typename... REAs >
114decltype(auto) elements( const Vector<VT,TF>&, T*, size_t, REAs... );
115
116template< typename VT, bool TF, typename T, typename... REAs >
117decltype(auto) elements( Vector<VT,TF>&&, T*, size_t, REAs... );
118
119template< typename VT, bool TF, typename P, typename... REAs >
120decltype(auto) elements( Vector<VT,TF>&, P, size_t, REAs... );
121
122template< typename VT, bool TF, typename P, typename... REAs >
123decltype(auto) elements( const Vector<VT,TF>&, P, size_t, REAs... );
124
125template< typename VT, bool TF, typename P, typename... REAs >
126decltype(auto) elements( Vector<VT,TF>&&, P, size_t, REAs... );
127
128
129template< size_t I, size_t J, size_t M, size_t N, typename MT, bool SO, typename... RSAs >
130decltype(auto) submatrix( Matrix<MT,SO>&, RSAs... );
131
132template< size_t I, size_t J, size_t M, size_t N, typename MT, bool SO, typename... RSAs >
133decltype(auto) submatrix( const Matrix<MT,SO>&, RSAs... );
134
135template< size_t I, size_t J, size_t M, size_t N, typename MT, bool SO, typename... RSAs >
136decltype(auto) submatrix( Matrix<MT,SO>&&, RSAs... );
137
138template< AlignmentFlag AF, size_t I, size_t J, size_t M, size_t N, typename MT, bool SO, typename... RSAs >
139decltype(auto) submatrix( Matrix<MT,SO>&, RSAs... );
140
141template< AlignmentFlag AF, size_t I, size_t J, size_t M, size_t N, typename MT, bool SO, typename... RSAs >
142decltype(auto) submatrix( const Matrix<MT,SO>&, RSAs... );
143
144template< AlignmentFlag AF, size_t I, size_t J, size_t M, size_t N, typename MT, bool SO, typename... RSAs >
145decltype(auto) submatrix( Matrix<MT,SO>&&, RSAs... );
146
147template< typename MT, bool SO, typename... RSAs >
148decltype(auto) submatrix( Matrix<MT,SO>&, size_t, size_t, size_t, size_t, RSAs... );
149
150template< typename MT, bool SO, typename... RSAs >
151decltype(auto) submatrix( const Matrix<MT,SO>&, size_t, size_t, size_t, size_t, RSAs... );
152
153template< typename MT, bool SO, typename... RSAs >
154decltype(auto) submatrix( Matrix<MT,SO>&&, size_t, size_t, size_t, size_t, RSAs... );
155
156template< AlignmentFlag AF, typename MT, bool SO, typename... RSAs >
157decltype(auto) submatrix( Matrix<MT,SO>&, size_t, size_t, size_t, size_t, RSAs... );
158
159template< AlignmentFlag AF, typename MT, bool SO, typename... RSAs >
160decltype(auto) submatrix( const Matrix<MT,SO>&, size_t, size_t, size_t, size_t, RSAs... );
161
162template< AlignmentFlag AF, typename MT, bool SO, typename... RSAs >
163decltype(auto) submatrix( Matrix<MT,SO>&&, size_t, size_t, size_t, size_t, RSAs... );
164
165
166template< size_t I, typename MT, bool SO, typename... RRAs >
167decltype(auto) row( Matrix<MT,SO>&, RRAs... );
168
169template< size_t I, typename MT, bool SO, typename... RRAs >
170decltype(auto) row( const Matrix<MT,SO>&, RRAs... );
171
172template< size_t I, typename MT, bool SO, typename... RRAs >
173decltype(auto) row( Matrix<MT,SO>&&, RRAs... );
174
175template< typename MT, bool SO, typename... RRAs >
176decltype(auto) row( Matrix<MT,SO>&, size_t, RRAs... );
177
178template< typename MT, bool SO, typename... RRAs >
179decltype(auto) row( const Matrix<MT,SO>&, size_t, RRAs... );
180
181template< typename MT, bool SO, typename... RRAs >
182decltype(auto) row( Matrix<MT,SO>&&, size_t, RRAs... );
183
184
185template< size_t I, size_t... Is, typename MT, bool SO, typename... RRAs >
186decltype(auto) rows( Matrix<MT,SO>&, RRAs... );
187
188template< size_t I, size_t... Is, typename MT, bool SO, typename... RRAs >
189decltype(auto) rows( const Matrix<MT,SO>&, RRAs... );
190
191template< size_t I, size_t... Is, typename MT, bool SO, typename... RRAs >
192decltype(auto) rows( Matrix<MT,SO>&&, RRAs... );
193
194template< typename MT, bool SO, typename T, typename... RRAs >
195decltype(auto) rows( Matrix<MT,SO>&, T*, size_t, RRAs... );
196
197template< typename MT, bool SO, typename T, typename... RRAs >
198decltype(auto) rows( const Matrix<MT,SO>&, T*, size_t, RRAs... );
199
200template< typename MT, bool SO, typename T, typename... RRAs >
201decltype(auto) rows( Matrix<MT,SO>&&, T*, size_t, RRAs... );
202
203template< typename MT, bool SO, typename P, typename... RRAs >
204decltype(auto) rows( Matrix<MT,SO>&, P, size_t, RRAs... );
205
206template< typename MT, bool SO, typename P, typename... RRAs >
207decltype(auto) rows( const Matrix<MT,SO>&, P, size_t, RRAs... );
208
209template< typename MT, bool SO, typename P, typename... RRAs >
210decltype(auto) rows( Matrix<MT,SO>&&, P, size_t, RRAs... );
211
212
213template< size_t I, typename MT, bool SO, typename... RCAs >
214decltype(auto) column( Matrix<MT,SO>&, RCAs... );
215
216template< size_t I, typename MT, bool SO, typename... RCAs >
217decltype(auto) column( const Matrix<MT,SO>&, RCAs... );
218
219template< size_t I, typename MT, bool SO, typename... RCAs >
220decltype(auto) column( Matrix<MT,SO>&&, RCAs... );
221
222template< typename MT, bool SO, typename... RCAs >
223decltype(auto) column( Matrix<MT,SO>&, size_t, RCAs... );
224
225template< typename MT, bool SO, typename... RCAs >
226decltype(auto) column( const Matrix<MT,SO>&, size_t, RCAs... );
227
228template< typename MT, bool SO, typename... RCAs >
229decltype(auto) column( Matrix<MT,SO>&&, size_t, RCAs... );
230
231
232template< size_t I, size_t... Is, typename MT, bool SO, typename... RCAs >
233decltype(auto) columns( Matrix<MT,SO>&, RCAs... );
234
235template< size_t I, size_t... Is, typename MT, bool SO, typename... RCAs >
236decltype(auto) columns( const Matrix<MT,SO>&, RCAs... );
237
238template< size_t I, size_t... Is, typename MT, bool SO, typename... RCAs >
239decltype(auto) columns( Matrix<MT,SO>&&, RCAs... );
240
241template< typename MT, bool SO, typename T, typename... RCAs >
242decltype(auto) columns( Matrix<MT,SO>&, T*, size_t, RCAs... );
243
244template< typename MT, bool SO, typename T, typename... RCAs >
245decltype(auto) columns( const Matrix<MT,SO>&, T*, size_t, RCAs... );
246
247template< typename MT, bool SO, typename T, typename... RCAs >
248decltype(auto) columns( Matrix<MT,SO>&&, T*, size_t, RCAs... );
249
250template< typename MT, bool SO, typename P, typename... RCAs >
251decltype(auto) columns( Matrix<MT,SO>&, P, size_t, RCAs... );
252
253template< typename MT, bool SO, typename P, typename... RCAs >
254decltype(auto) columns( const Matrix<MT,SO>&, P, size_t, RCAs... );
255
256template< typename MT, bool SO, typename P, typename... RCAs >
257decltype(auto) columns( Matrix<MT,SO>&&, P, size_t, RCAs... );
258
259
260template< ptrdiff_t I, typename MT, bool SO, typename... RBAs >
261decltype(auto) band( Matrix<MT,SO>&, RBAs... );
262
263template< ptrdiff_t I, typename MT, bool SO, typename... RBAs >
264decltype(auto) band( const Matrix<MT,SO>&, RBAs... );
265
266template< ptrdiff_t I, typename MT, bool SO, typename... RBAs >
267decltype(auto) band( Matrix<MT,SO>&&, RBAs... );
268
269template< typename MT, bool SO, typename... RBAs >
270decltype(auto) band( Matrix<MT,SO>&, ptrdiff_t, RBAs... );
271
272template< typename MT, bool SO, typename... RBAs >
273decltype(auto) band( const Matrix<MT,SO>&, ptrdiff_t, RBAs... );
274
275template< typename MT, bool SO, typename... RBAs >
276decltype(auto) band( Matrix<MT,SO>&&, ptrdiff_t, RBAs... );
277
278template< typename MT, bool SO, typename... RDAs >
279decltype(auto) diagonal( Matrix<MT,SO>&, RDAs... );
280
281template< typename MT, bool SO, typename... RDAs >
282decltype(auto) diagonal( const Matrix<MT,SO>&, RDAs... );
283
284template< typename MT, bool SO, typename... RDAs >
285decltype(auto) diagonal( Matrix<MT,SO>&&, RDAs... );
286
287} // namespace blaze
288
289#endif
Header file for the alignment flag enumeration.
Pointer difference type of the Blaze library.
decltype(auto) diagonal(Matrix< MT, SO > &matrix, RDAs... args)
Creating a view on the diagonal of the given matrix.
Definition: Band.h:380
decltype(auto) band(Matrix< MT, SO > &matrix, RBAs... args)
Creating a view on a specific band of the given matrix.
Definition: Band.h:140
decltype(auto) column(Matrix< MT, SO > &matrix, RCAs... args)
Creating a view on a specific column of the given matrix.
Definition: Column.h:137
decltype(auto) elements(Vector< VT, TF > &vector, REAs... args)
Creating a view on a selection of elements of the given vector.
Definition: Elements.h:143
AlignmentFlag
Alignment flag for (un-)aligned vectors and matrices.
Definition: AlignmentFlag.h:63
constexpr size_t columns(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of columns of the matrix.
Definition: Matrix.h:660
decltype(auto) row(Matrix< MT, SO > &&, size_t, RRAs...)
Creating a view on a specific row of the given temporary matrix.
Definition: Row.h:340
decltype(auto) rows(Matrix< MT, SO > &&, P, size_t, RRAs...)
Creating a view on a selection of rows of the given temporary matrix.
Definition: Rows.h:501
decltype(auto) submatrix(Matrix< MT, SO > &&, size_t, size_t, size_t, size_t, RSAs...)
Creating a view on a specific submatrix of the given temporary matrix.
Definition: Submatrix.h:856
decltype(auto) subvector(Vector< VT, TF > &&, size_t, size_t, RSAs...)
Creating a view on a specific subvector of the given temporary vector.
Definition: Subvector.h:805
Header file for all forward declarations for expression class templates.
Header file for basic type definitions.
Header file for the implementation of the Band base template.
Header file for the implementation of the Column base template.
Header file for the implementation of the Columns base template.
Header file for the implementation of the Elements base template.
Header file for the implementation of the Row base template.
Header file for the implementation of the Rows base template.
Header file for the implementation of the Submatrix base template.
Header file for the implementation of the Subvector base template.