35 #ifndef _BLAZE_MATH_EXPRESSIONS_DENSEMATRIX_H_ 36 #define _BLAZE_MATH_EXPRESSIONS_DENSEMATRIX_H_ 98 template<
typename MT,
bool SO >
101 template<
typename MT,
bool SO >
104 template<
typename MT,
bool SO >
121 template<
typename MT
144 template<
typename MT
147 -> EnableIf_t< HasMutableDataAccess_v<MT>,
typename MT::ElementType* >
168 template<
typename MT
172 return data_backend( ~dm );
188 template<
typename MT
191 -> DisableIf_t< HasConstDataAccess_v<MT>,
const typename MT::ElementType* >
211 template<
typename MT
214 -> EnableIf_t< HasConstDataAccess_v<MT>,
const typename MT::ElementType* >
235 template<
typename MT
239 return data_backend( ~dm );
251 template<
typename MT
255 return (~dm).spacing();
271 template<
typename MT >
272 inline auto resetLower_backend( DenseMatrix<MT,false>& dm )
273 -> DisableIf_t< IsUniform_v<MT> || IsUpper_v<MT> >
277 const size_t m( (~dm).
rows() );
278 const size_t n( (~dm).
columns() );
280 for(
size_t i=1UL; i<m; ++i ) {
281 const size_t jend(
min( i, n ) );
282 for(
size_t j=0UL; j<jend; ++j ) {
302 template<
typename MT >
303 inline auto resetLower_backend( DenseMatrix<MT,true>& dm )
304 -> DisableIf_t< IsUniform_v<MT> || IsUpper_v<MT> >
308 const size_t m ( (~dm).
rows() );
309 const size_t n ( (~dm).
columns() );
310 const size_t jend(
min( m, n ) );
312 for(
size_t j=0UL; j<jend; ++j ) {
313 for(
size_t i=j+1UL; i<m; ++i ) {
332 template<
typename MT
334 inline auto resetLower_backend( DenseMatrix<MT,SO>& dm )
335 -> EnableIf_t< IsUniform_v<MT> && !IsUpper_v<MT> >
355 template<
typename MT
357 inline auto resetLower_backend( DenseMatrix<MT,SO>& dm )
358 -> EnableIf_t< IsUpper_v<MT> >
376 template<
typename MT
378 inline void resetLower( DenseMatrix<MT,SO>& dm )
380 resetLower_backend( ~dm );
397 template<
typename MT >
398 inline auto resetUpper_backend( DenseMatrix<MT,false>& dm )
399 -> DisableIf_t< IsUniform_v<MT> || IsLower_v<MT> >
403 const size_t m ( (~dm).
rows() );
404 const size_t n ( (~dm).
columns() );
405 const size_t iend(
min( m, n ) );
407 for(
size_t i=0UL; i<iend; ++i ) {
408 for(
size_t j=i+1UL; j<n; ++j ) {
428 template<
typename MT >
429 inline auto resetUpper_backend( DenseMatrix<MT,true>& dm )
430 -> DisableIf_t< IsUniform_v<MT> || IsLower_v<MT> >
434 const size_t m( (~dm).
rows() );
435 const size_t n( (~dm).
columns() );
437 for(
size_t j=1UL; j<n; ++j ) {
438 const size_t iend(
min( j, m ) );
439 for(
size_t i=0UL; i<iend; ++i ) {
458 template<
typename MT
460 inline auto resetUpper_backend( DenseMatrix<MT,SO>& dm )
461 -> EnableIf_t< IsUniform_v<MT> || !IsLower_v<MT> >
481 template<
typename MT
483 inline auto resetUpper_backend( DenseMatrix<MT,SO>& dm )
484 -> EnableIf_t< IsLower_v<MT> >
502 template<
typename MT
504 inline void resetUpper( DenseMatrix<MT,SO>& dm )
506 resetUpper_backend( ~dm );
Headerfile for the generic min algorithm.
MT::ElementType * data(DenseMatrix< MT, SO > &dm) noexcept
Low-level data access to the dense matrix elements.
Definition: DenseMatrix.h:170
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:595
Header file for the MAYBE_UNUSED function template.
Header file for the reset shim.
constexpr size_t columns(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of columns of the matrix.
Definition: Matrix.h:514
Base class for dense matrices.The DenseMatrix class is a base class for all dense matrix classes....
Definition: DenseMatrix.h:81
size_t spacing(const DenseMatrix< MT, SO > &dm) noexcept
Returns the spacing between the beginning of two rows/columns.
Definition: DenseMatrix.h:253
Header file for the DisableIf class template.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
decltype(auto) min(const DenseMatrix< MT1, SO1 > &lhs, const DenseMatrix< MT2, SO2 > &rhs)
Computes the componentwise minimum of the dense matrices lhs and rhs.
Definition: DMatDMatMapExpr.h:1162
Header file for the IsLower type trait.
constexpr void MAYBE_UNUSED(const Args &...)
Suppression of unused parameter warnings.
Definition: MaybeUnused.h:81
Header file for the EnableIf class template.
Header file for the HasConstDataAccess type trait.
Header file for the Matrix base class.
Base class for matrices.The Matrix class is a base class for all dense and sparse matrix classes with...
Definition: Forward.h:114
Header file for the HasMutableDataAccess type trait.
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 IsUpper type trait.
typename DisableIf< Condition, T >::Type DisableIf_t
Auxiliary type for the DisableIf class template.The DisableIf_t alias declaration provides a convenie...
Definition: DisableIf.h:138
System settings for the inline keywords.