35 #ifndef _BLAZE_MATH_PROXY_DENSEMATRIXPROXY_H_ 36 #define _BLAZE_MATH_PROXY_DENSEMATRIXPROXY_H_ 80 :
public DenseMatrix< PT, IsColumnMajorMatrix<MT>::value >
100 enum :
bool { simdEnabled = MT::simdEnabled };
103 enum :
bool { smpAssignable = MT::smpAssignable };
124 inline size_t rows()
const;
128 inline size_t capacity(
size_t i )
const;
130 inline size_t nonZeros(
size_t i )
const;
131 inline void reset()
const;
132 inline void reset(
size_t i )
const;
133 inline void clear()
const;
134 inline void resize(
size_t m,
size_t n,
bool preserve=
true )
const;
135 inline void extend(
size_t m,
size_t n,
bool preserve=
true )
const;
136 inline void reserve(
size_t n )
const;
146 template<
typename Other >
inline void scale(
const Other& scalar )
const;
176 template<
typename PT
181 if( (~*
this).isRestricted() ) {
185 return (~*
this).get()(i,j);
202 template<
typename PT
207 if( (~*
this).isRestricted() ) {
211 return (~*
this).get().at(i,j);
228 template<
typename PT
232 if( (~*
this).isRestricted() ) {
236 return (~*
this).get().data();
249 template<
typename PT
253 if( (~*
this).isRestricted() ) {
257 return (~*
this).get().data(i);
274 template<
typename PT
279 if( (~*
this).isRestricted() ) {
283 return (~*
this).get().begin(i);
299 template<
typename PT
304 return (~*
this).get().cbegin(i);
321 template<
typename PT
326 if( (~*
this).isRestricted() ) {
330 return (~*
this).get().end(i);
346 template<
typename PT
351 return (~*
this).get().cend(i);
369 template<
typename PT
373 return (~*
this).get().rows();
383 template<
typename PT
387 return (~*
this).get().columns();
402 template<
typename PT
406 return (~*
this).get().spacing();
416 template<
typename PT
420 return (~*
this).get().capacity();
436 template<
typename PT
440 return (~*
this).get().capacity(i);
450 template<
typename PT
454 return (~*
this).get().nonZeros();
470 template<
typename PT
474 return (~*
this).get().nonZeros(i);
486 template<
typename PT
492 reset( (~*
this).
get() );
508 template<
typename PT
514 reset( (~*
this).
get(), i );
526 template<
typename PT
532 clear( (~*
this).
get() );
554 template<
typename PT
558 if( (~*
this).isRestricted() ) {
562 (~*
this).
get().resize( m, n, preserve );
583 template<
typename PT
587 if( (~*
this).isRestricted() ) {
591 (~*
this).
get().extend( m, n, preserve );
606 template<
typename PT
610 if( (~*
this).isRestricted() ) {
614 (~*
this).
get().reserve( n );
625 template<
typename PT
629 if( (~*
this).isRestricted() ) {
633 (~*
this).
get().transpose();
644 template<
typename PT
648 if( (~*
this).isRestricted() ) {
652 (~*
this).
get().ctranspose();
668 template<
typename PT
670 template<
typename Other >
673 if( (~*
this).isRestricted() ) {
677 (~*
this).
get().scale( scalar );
693 template<
typename PT,
typename MT >
697 template<
typename PT,
typename MT >
701 template<
typename PT,
typename MT >
705 template<
typename PT,
typename MT >
709 template<
typename PT,
typename MT >
712 template<
typename PT,
typename MT >
715 template<
typename PT,
typename MT >
718 template<
typename PT,
typename MT >
721 template<
typename PT,
typename MT >
724 template<
typename PT,
typename MT >
727 template<
typename PT,
typename MT >
730 template<
typename PT,
typename MT >
733 template<
typename PT,
typename MT >
736 template<
typename PT,
typename MT >
755 template<
typename PT
760 return proxy.
begin(i);
778 template<
typename PT
802 template<
typename PT
826 template<
typename PT
831 return proxy.
cend(i);
843 template<
typename PT
859 template<
typename PT
875 template<
typename PT
897 template<
typename PT
913 template<
typename PT
935 template<
typename PT
961 template<
typename PT
989 template<
typename PT
994 proxy.
resize( m, n, preserve );
1014 template<
typename PT
1023 proxy.
resize( m, preserve );
1054 template<
typename PT
1058 resize_backend( proxy, m, n, preserve );
1072 template<
typename PT
1094 template<
typename PT
1112 template<
typename PT
#define BLAZE_THROW_INVALID_ARGUMENT(MESSAGE)
Macro for the emission of a std::invalid_argument exception.This macro encapsulates the default way o...
Definition: Exception.h:235
Header file for auxiliary alias declarations.
Iterator end(size_t i) const
Returns an iterator just past the last element of row/column i of the represented matrix...
Definition: DenseMatrixProxy.h:324
Header file for the UNUSED_PARAMETER function template.
Header file for basic type definitions.
Iterator_< MT > Iterator
Iterator over non-constant elements.
Definition: DenseMatrixProxy.h:94
#define BLAZE_CONSTRAINT_MUST_BE_DENSE_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is not a dense, N-dimensional matrix type...
Definition: DenseMatrix.h:61
Header file for the IsColumnMajorMatrix type trait.
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:560
typename DisableIf< Condition, T >::Type DisableIf_
Auxiliary type for the DisableIf class template.The DisableIf_ alias declaration provides a convenien...
Definition: DisableIf.h:224
Header file for the And class template.
Reference_< MT > Reference
Reference to a non-constant matrix value.
Definition: DenseMatrixProxy.h:90
void scale(const Other &scalar) const
Scaling of the matrix by the scalar value scalar ( ).
Definition: DenseMatrixProxy.h:671
Reference operator()(size_t i, size_t j) const
Function call operator for the direct access to matrix elements.
Definition: DenseMatrixProxy.h:179
CompositeType_< MT > CompositeType
Data type for composite expression templates.
Definition: DenseMatrixProxy.h:89
void reset() const
Reset to the default initial value.
Definition: DenseMatrixProxy.h:488
typename T::ResultType ResultType_
Alias declaration for nested ResultType type definitions.The ResultType_ alias declaration provides a...
Definition: Aliases.h:343
ResultType_< MT > ResultType
Result type for expression template evaluations.
Definition: DenseMatrixProxy.h:84
Proxy backend for dense matrix types.The DenseMatrixProxy class serves as a backend for the Proxy cla...
Definition: DenseMatrixProxy.h:79
Base class for dense matrices.The DenseMatrix class is a base class for all dense matrix classes...
Definition: DenseMatrix.h:78
typename T::ReturnType ReturnType_
Alias declaration for nested ReturnType type definitions.The ReturnType_ alias declaration provides a...
Definition: Aliases.h:363
Header file for the IsSquare type trait.
Constraint on the data type.
typename T::CompositeType CompositeType_
Alias declaration for nested CompositeType type definitions.The CompositeType_ alias declaration prov...
Definition: Aliases.h:83
Pointer_< MT > Pointer
Pointer to a non-constant matrix value.
Definition: DenseMatrixProxy.h:92
Header file for the DisableIf class template.
Pointer data() const
Low-level data access to matrix elements.
Definition: DenseMatrixProxy.h:230
typename T::Pointer Pointer_
Alias declaration for nested Pointer type definitions.The Pointer_ alias declaration provides a conve...
Definition: Aliases.h:283
Header file for the clear shim.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
void transpose() const
In-place transpose of the represented matrix.
Definition: DenseMatrixProxy.h:627
size_t columns() const
Returns the current number of columns of the represented matrix.
Definition: DenseMatrixProxy.h:385
size_t rows() const
Returns the current number of rows of the represented matrix.
Definition: DenseMatrixProxy.h:371
Header file for the DenseMatrix base class.
Header file for the Not class template.
typename T::ElementType ElementType_
Alias declaration for nested ElementType type definitions.The ElementType_ alias declaration provides...
Definition: Aliases.h:163
ReturnType_< MT > ReturnType
Return type for expression template evaluations.
Definition: DenseMatrixProxy.h:88
OppositeType_< MT > OppositeType
Result type with opposite storage order for expression template evaluations.
Definition: DenseMatrixProxy.h:85
Compile time check for square matrices.This type trait tests whether or not the given template parame...
Definition: IsSquare.h:88
ConstReference_< MT > ConstReference
Reference to a constant matrix value.
Definition: DenseMatrixProxy.h:91
ConstIterator cbegin(size_t i) const
Returns an iterator to the first element of row/column i of the represented matrix.
Definition: DenseMatrixProxy.h:302
Iterator begin(size_t i) const
Returns an iterator to the first element of row/column i of the represented matrix.
Definition: DenseMatrixProxy.h:277
Header file for the exception macros of the math module.
typename T::Reference Reference_
Alias declaration for nested Reference type definitions.The Reference_ alias declaration provides a c...
Definition: Aliases.h:303
Header file for the EnableIf class template.
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:580
ConstIterator_< MT > ConstIterator
Iterator over constant elements.
Definition: DenseMatrixProxy.h:95
TransposeType_< MT > TransposeType
Transpose type for expression template evaluations.
Definition: DenseMatrixProxy.h:86
void extend(size_t m, size_t n, bool preserve=true) const
Extending the size of the represented matrix.
Definition: DenseMatrixProxy.h:585
ConstIterator cend(size_t i) const
Returns an iterator just past the last element of row/column i of the represented matrix...
Definition: DenseMatrixProxy.h:349
void clear() const
Clearing the represented matrix.
Definition: DenseMatrixProxy.h:528
Header file for the reset shim.
Compile time type negation.The Not alias declaration negates the given compile time condition...
Definition: Not.h:70
size_t spacing() const
Returns the spacing between the beginning of two rows/columns of the represented matrix.
Definition: DenseMatrixProxy.h:404
typename EnableIf< Condition, T >::Type EnableIf_
Auxiliary alias declaration for the EnableIf class template.The EnableIf_ alias declaration provides ...
Definition: EnableIf.h:224
typename T::OppositeType OppositeType_
Alias declaration for nested OppositeType type definitions.The OppositeType_ alias declaration provid...
Definition: Aliases.h:263
typename T::Iterator Iterator_
Alias declaration for nested Iterator type definitions.The Iterator_ alias declaration provides a con...
Definition: Aliases.h:183
size_t capacity() const
Returns the maximum capacity of the represented matrix.
Definition: DenseMatrixProxy.h:418
ElementType_< MT > ElementType
Type of the matrix elements.
Definition: DenseMatrixProxy.h:87
typename T::ConstPointer ConstPointer_
Alias declaration for nested ConstPointer type definitions.The ConstPointer_ alias declaration provid...
Definition: Aliases.h:123
typename T::ConstReference ConstReference_
Alias declaration for nested ConstReference type definitions.The ConstReference_ alias declaration pr...
Definition: Aliases.h:143
typename T::ConstIterator ConstIterator_
Alias declaration for nested ConstIterator type definitions.The ConstIterator_ alias declaration prov...
Definition: Aliases.h:103
ConstPointer_< MT > ConstPointer
Pointer to a constant matrix value.
Definition: DenseMatrixProxy.h:93
void resize(size_t m, size_t n, bool preserve=true) const
Changing the size of the represented matrix.
Definition: DenseMatrixProxy.h:556
void ctranspose() const
In-place conjugate transpose of the represented matrix.
Definition: DenseMatrixProxy.h:646
typename T::TransposeType TransposeType_
Alias declaration for nested TransposeType type definitions.The TransposeType_ alias declaration prov...
Definition: Aliases.h:423
void UNUSED_PARAMETER(const Args &...)
Suppression of unused parameter warnings.
Definition: Unused.h:81
void reserve(size_t n) const
Setting the minimum capacity of the represented matrix.
Definition: DenseMatrixProxy.h:608
Header file for the IsResizable type trait.
Reference at(size_t i, size_t j) const
Checked access to the matrix elements.
Definition: DenseMatrixProxy.h:205
System settings for the inline keywords.
size_t nonZeros() const
Returns the number of non-zero elements in the represented matrix.
Definition: DenseMatrixProxy.h:452