35 #ifndef _BLAZE_MATH_VIEWS_FORWARD_H_ 36 #define _BLAZE_MATH_VIEWS_FORWARD_H_ 64 template<
AlignmentFlag AF,
size_t I,
size_t N,
typename VT,
bool TF,
typename... RSAs >
65 decltype(
auto)
subvector( Vector<VT,TF>&, RSAs... );
67 template<
AlignmentFlag AF,
size_t I,
size_t N, typename VT,
bool TF, typename... RSAs >
68 decltype(auto)
subvector( const Vector<VT,TF>&, RSAs... );
70 template<
AlignmentFlag AF,
size_t I,
size_t N, typename VT,
bool TF, typename... RSAs >
71 decltype(auto)
subvector( Vector<VT,TF>&&, RSAs... );
73 template<
AlignmentFlag AF, typename VT,
bool TF, typename... RSAs >
74 decltype(auto)
subvector( Vector<VT,TF>&,
size_t,
size_t, RSAs... );
76 template<
AlignmentFlag AF, typename VT,
bool TF, typename... RSAs >
77 decltype(auto)
subvector( const Vector<VT,TF>&,
size_t,
size_t, RSAs... );
79 template<
AlignmentFlag AF, typename VT,
bool TF, typename... RSAs >
80 decltype(auto)
subvector( Vector<VT,TF>&&,
size_t,
size_t, RSAs... );
82 template<
size_t I,
size_t... Is, typename VT,
bool TF, typename... REAs >
83 decltype(auto)
elements( Vector<VT,TF>&, REAs... );
85 template<
size_t I,
size_t... Is, typename VT,
bool TF, typename... REAs >
86 decltype(auto)
elements( const Vector<VT,TF>&, REAs... );
88 template<
size_t I,
size_t... Is, typename VT,
bool TF, typename... REAs >
89 decltype(auto)
elements( Vector<VT,TF>&&, REAs... );
91 template< typename VT,
bool TF, typename T, typename... REAs >
92 decltype(auto)
elements( Vector<VT,TF>&, const T*,
size_t, REAs... );
94 template< typename VT,
bool TF, typename T, typename... REAs >
95 decltype(auto)
elements( const Vector<VT,TF>&, const T*,
size_t, REAs... );
97 template< typename VT,
bool TF, typename T, typename... REAs >
98 decltype(auto)
elements( Vector<VT,TF>&&, const T*,
size_t, REAs... );
100 template<
AlignmentFlag AF,
size_t I,
size_t J,
size_t M,
size_t N, typename MT,
bool SO, typename... RSAs >
101 decltype(auto)
submatrix( Matrix<MT,SO>&, RSAs... );
103 template<
AlignmentFlag AF,
size_t I,
size_t J,
size_t M,
size_t N, typename MT,
bool SO, typename... RSAs >
104 decltype(auto)
submatrix( const Matrix<MT,SO>&, RSAs... );
106 template<
AlignmentFlag AF,
size_t I,
size_t J,
size_t M,
size_t N, typename MT,
bool SO, typename... RSAs >
107 decltype(auto)
submatrix( Matrix<MT,SO>&&, RSAs... );
109 template<
AlignmentFlag AF, typename MT,
bool SO, typename... RSAs >
110 decltype(auto)
submatrix( Matrix<MT,SO>&,
size_t,
size_t,
size_t,
size_t, RSAs... );
112 template<
AlignmentFlag AF, typename MT,
bool SO, typename... RSAs >
113 decltype(auto)
submatrix( const Matrix<MT,SO>&,
size_t,
size_t,
size_t,
size_t, RSAs... );
115 template<
AlignmentFlag AF, typename MT,
bool SO, typename... RSAs >
116 decltype(auto)
submatrix( Matrix<MT,SO>&&,
size_t,
size_t,
size_t,
size_t, RSAs... );
118 template<
size_t I, typename MT,
bool SO, typename... RRAs >
119 decltype(auto)
row( Matrix<MT,SO>&, RRAs... );
121 template<
size_t I, typename MT,
bool SO, typename... RRAs >
122 decltype(auto)
row( const Matrix<MT,SO>&, RRAs... );
124 template<
size_t I, typename MT,
bool SO, typename... RRAs >
125 decltype(auto)
row( Matrix<MT,SO>&&, RRAs... );
127 template< typename MT,
bool SO, typename... RRAs >
128 decltype(auto)
row( Matrix<MT,SO>&,
size_t, RRAs... );
130 template< typename MT,
bool SO, typename... RRAs >
131 decltype(auto)
row( const Matrix<MT,SO>&,
size_t, RRAs... );
133 template< typename MT,
bool SO, typename... RRAs >
134 decltype(auto)
row( Matrix<MT,SO>&&,
size_t, RRAs... );
136 template<
size_t I,
size_t... Is, typename MT,
bool SO, typename... RRAs >
137 decltype(auto)
rows( Matrix<MT,SO>&, RRAs... );
139 template<
size_t I,
size_t... Is, typename MT,
bool SO, typename... RRAs >
140 decltype(auto)
rows( const Matrix<MT,SO>&, RRAs... );
142 template<
size_t I,
size_t... Is, typename MT,
bool SO, typename... RRAs >
143 decltype(auto)
rows( Matrix<MT,SO>&&, RRAs... );
145 template< typename MT,
bool SO, typename T, typename... RRAs >
146 decltype(auto)
rows( Matrix<MT,SO>&, const T*,
size_t, RRAs... );
148 template< typename MT,
bool SO, typename T, typename... RRAs >
149 decltype(auto)
rows( const Matrix<MT,SO>&, const T*,
size_t, RRAs... );
151 template< typename MT,
bool SO, typename T, typename... RRAs >
152 decltype(auto)
rows( Matrix<MT,SO>&&, const T*,
size_t, RRAs... );
154 template<
size_t I, typename MT,
bool SO, typename... RCAs >
155 decltype(auto)
column( Matrix<MT,SO>&, RCAs... );
157 template<
size_t I, typename MT,
bool SO, typename... RCAs >
158 decltype(auto)
column( const Matrix<MT,SO>&, RCAs... );
160 template<
size_t I, typename MT,
bool SO, typename... RCAs >
161 decltype(auto)
column( Matrix<MT,SO>&&, RCAs... );
163 template< typename MT,
bool SO, typename... RCAs >
164 decltype(auto)
column( Matrix<MT,SO>&,
size_t, RCAs... );
166 template< typename MT,
bool SO, typename... RCAs >
167 decltype(auto)
column( const Matrix<MT,SO>&,
size_t, RCAs... );
169 template< typename MT,
bool SO, typename... RCAs >
170 decltype(auto)
column( Matrix<MT,SO>&&,
size_t, RCAs... );
172 template<
size_t I,
size_t... Is, typename MT,
bool SO, typename... RCAs >
173 decltype(auto)
columns( Matrix<MT,SO>&, RCAs... );
175 template<
size_t I,
size_t... Is, typename MT,
bool SO, typename... RCAs >
176 decltype(auto)
columns( const Matrix<MT,SO>&, RCAs... );
178 template<
size_t I,
size_t... Is, typename MT,
bool SO, typename... RCAs >
179 decltype(auto)
columns( Matrix<MT,SO>&&, RCAs... );
181 template< typename MT,
bool SO, typename T, typename... RCAs >
182 decltype(auto)
columns( Matrix<MT,SO>&, const T*,
size_t, RCAs... );
184 template< typename MT,
bool SO, typename T, typename... RCAs >
185 decltype(auto)
columns( const Matrix<MT,SO>&, const T*,
size_t, RCAs... );
187 template< typename MT,
bool SO, typename T, typename... RCAs >
188 decltype(auto)
columns( Matrix<MT,SO>&&, const T*,
size_t, RCAs... );
190 template< ptrdiff_t I, typename MT,
bool SO, typename... RBAs >
191 decltype(auto)
band( Matrix<MT,SO>&, RBAs... );
193 template< ptrdiff_t I, typename MT,
bool SO, typename... RBAs >
194 decltype(auto)
band( const Matrix<MT,SO>&, RBAs... );
196 template< ptrdiff_t I, typename MT,
bool SO, typename... RBAs >
197 decltype(auto)
band( Matrix<MT,SO>&&, RBAs... );
199 template< typename MT,
bool SO, typename... RBAs >
200 decltype(auto)
band( Matrix<MT,SO>&, ptrdiff_t, RBAs... );
202 template< typename MT,
bool SO, typename... RBAs >
203 decltype(auto)
band( const Matrix<MT,SO>&, ptrdiff_t, RBAs... );
205 template< typename MT,
bool SO, typename... RBAs >
206 decltype(auto)
band( Matrix<MT,SO>&&, ptrdiff_t, RBAs... );
208 template< typename MT,
bool SO, typename... RDAs >
209 decltype(auto)
diagonal( Matrix<MT,SO>&, RDAs... );
211 template< typename MT,
bool SO, typename... RDAs >
212 decltype(auto)
diagonal( const Matrix<MT,SO>&, RDAs... );
214 template< typename MT,
bool SO, typename... RDAs >
215 decltype(auto)
diagonal( Matrix<MT,SO>&&, RDAs... );
decltype(auto) subvector(Vector< VT, TF > &, RSAs...)
Creating a view on a specific subvector of the given vector.
Definition: Subvector.h:329
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:131
Header file for the implementation of the Columns base template.
Header file for the alignment flag values.
Header file for basic type definitions.
Header file for the implementation of the Column base template.
Header file for the implementation of the Band base template.
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.
BLAZE_ALWAYS_INLINE size_t columns(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of columns of the matrix.
Definition: Matrix.h:506
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:134
decltype(auto) diagonal(Matrix< MT, SO > &matrix, RDAs... args)
Creating a view on the diagonal of the given matrix.
Definition: Band.h:374
Header file for all forward declarations for expression class templates.
decltype(auto) submatrix(Matrix< MT, SO > &, RSAs...)
Creating a view on a specific submatrix of the given matrix.
Definition: Submatrix.h:360
decltype(auto) band(Matrix< MT, SO > &matrix, RBAs... args)
Creating a view on a specific band of the given matrix.
Definition: Band.h:134
decltype(auto) row(Matrix< MT, SO > &, RRAs...)
Creating a view on a specific row of the given matrix.
Definition: Row.h:131
BLAZE_ALWAYS_INLINE size_t rows(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of rows of the matrix.
Definition: Matrix.h:490
Header file for the implementation of the Rows base template.