35 #ifndef _BLAZE_MATH_PROXY_DENSEMATRIXPROXY_H_ 36 #define _BLAZE_MATH_PROXY_DENSEMATRIXPROXY_H_ 97 enum :
bool { simdEnabled = MT::simdEnabled };
100 enum :
bool { smpAssignable = MT::smpAssignable };
106 inline Reference
operator()(
size_t i,
size_t j )
const;
107 inline Reference
at(
size_t i,
size_t j )
const;
109 inline Pointer
data ()
const;
110 inline Pointer
data (
size_t i )
const;
111 inline Iterator
begin (
size_t i )
const;
112 inline ConstIterator
cbegin(
size_t i )
const;
113 inline Iterator
end (
size_t i )
const;
114 inline ConstIterator
cend (
size_t i )
const;
121 inline size_t rows()
const;
125 inline size_t capacity(
size_t i )
const;
127 inline size_t nonZeros(
size_t i )
const;
128 inline void reset()
const;
129 inline void reset(
size_t i )
const;
130 inline void clear()
const;
131 inline void resize(
size_t m,
size_t n,
bool preserve=
true )
const;
132 inline void extend(
size_t m,
size_t n,
bool preserve=
true )
const;
133 inline void reserve(
size_t n )
const;
143 template<
typename Other >
inline void scale(
const Other& scalar )
const;
173 template<
typename PT
178 if( (~*
this).isRestricted() ) {
182 return (~*
this).get()(i,j);
199 template<
typename PT
204 if( (~*
this).isRestricted() ) {
208 return (~*
this).get().at(i,j);
225 template<
typename PT
229 if( (~*
this).isRestricted() ) {
233 return (~*
this).get().data();
246 template<
typename PT
250 if( (~*
this).isRestricted() ) {
254 return (~*
this).get().data(i);
271 template<
typename PT
276 if( (~*
this).isRestricted() ) {
280 return (~*
this).get().begin(i);
296 template<
typename PT
301 return (~*
this).get().cbegin(i);
318 template<
typename PT
323 if( (~*
this).isRestricted() ) {
327 return (~*
this).get().end(i);
343 template<
typename PT
348 return (~*
this).get().cend(i);
366 template<
typename PT
370 return (~*
this).get().rows();
380 template<
typename PT
384 return (~*
this).get().columns();
399 template<
typename PT
403 return (~*
this).get().spacing();
413 template<
typename PT
417 return (~*
this).get().capacity();
433 template<
typename PT
437 return (~*
this).get().capacity(i);
447 template<
typename PT
451 return (~*
this).get().nonZeros();
467 template<
typename PT
471 return (~*
this).get().nonZeros(i);
483 template<
typename PT
489 reset( (~*
this).
get() );
505 template<
typename PT
511 reset( (~*
this).
get(), i );
523 template<
typename PT
529 clear( (~*
this).
get() );
551 template<
typename PT
555 if( (~*
this).isRestricted() ) {
559 (~*
this).
get().resize( m, n, preserve );
580 template<
typename PT
584 if( (~*
this).isRestricted() ) {
588 (~*
this).
get().extend( m, n, preserve );
603 template<
typename PT
607 if( (~*
this).isRestricted() ) {
611 (~*
this).
get().reserve( n );
622 template<
typename PT
626 if( (~*
this).isRestricted() ) {
630 (~*
this).
get().transpose();
641 template<
typename PT
645 if( (~*
this).isRestricted() ) {
649 (~*
this).
get().ctranspose();
661 template<
typename PT
663 template<
typename Other >
666 if( (~*
this).isRestricted() ) {
670 (~*
this).
get().scale( scalar );
686 template<
typename PT,
typename MT >
690 template<
typename PT,
typename MT >
694 template<
typename PT,
typename MT >
698 template<
typename PT,
typename MT >
702 template<
typename PT,
typename MT >
705 template<
typename PT,
typename MT >
708 template<
typename PT,
typename MT >
711 template<
typename PT,
typename MT >
714 template<
typename PT,
typename MT >
717 template<
typename PT,
typename MT >
720 template<
typename PT,
typename MT >
723 template<
typename PT,
typename MT >
726 template<
typename PT,
typename MT >
729 template<
typename PT,
typename MT >
748 template<
typename PT
753 return proxy.
begin(i);
771 template<
typename PT
795 template<
typename PT
819 template<
typename PT
824 return proxy.
cend(i);
836 template<
typename PT
852 template<
typename PT
868 template<
typename PT
890 template<
typename PT
906 template<
typename PT
928 template<
typename PT
954 template<
typename PT
982 template<
typename PT
987 proxy.
resize( m, n, preserve );
1007 template<
typename PT
1016 proxy.
resize( m, preserve );
1047 template<
typename PT
1051 resize_backend( proxy, m, n, preserve );
1065 template<
typename PT
1087 template<
typename PT
1105 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:321
Header file for the UNUSED_PARAMETER function template.
Header file for basic type definitions.
CompositeType_< MT > CompositeType
Data type for composite expression templates.
Definition: DenseMatrixProxy.h:86
#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:533
typename DisableIf< Condition, T >::Type DisableIf_
Auxiliary type for the DisableIf class template.The DisableIf_ alias declaration provides a convenien...
Definition: DisableIf.h:223
void scale(const Other &scalar) const
Scaling of the matrix by the scalar value scalar ( ).
Definition: DenseMatrixProxy.h:664
Reference operator()(size_t i, size_t j) const
Function call operator for the direct access to matrix elements.
Definition: DenseMatrixProxy.h:176
ReturnType_< MT > ReturnType
Return type for expression template evaluations.
Definition: DenseMatrixProxy.h:85
ResultType_< MT > ResultType
Result type for expression template evaluations.
Definition: DenseMatrixProxy.h:81
Pointer_< MT > Pointer
Pointer to a non-constant matrix value.
Definition: DenseMatrixProxy.h:89
void reset() const
Reset to the default initial value.
Definition: DenseMatrixProxy.h:485
typename T::ResultType ResultType_
Alias declaration for nested ResultType type definitions.The ResultType_ alias declaration provides a...
Definition: Aliases.h:323
Proxy backend for dense matrix types.The DenseMatrixProxy class serves as a backend for the Proxy cla...
Definition: DenseMatrixProxy.h:77
Base class for dense matrices.The DenseMatrix class is a base class for all dense matrix classes...
Definition: DenseMatrix.h:71
typename T::ReturnType ReturnType_
Alias declaration for nested ReturnType type definitions.The ReturnType_ alias declaration provides a...
Definition: Aliases.h:343
OppositeType_< MT > OppositeType
Result type with opposite storage order for expression template evaluations.
Definition: DenseMatrixProxy.h:82
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
Iterator_< MT > Iterator
Iterator over non-constant elements.
Definition: DenseMatrixProxy.h:91
Header file for the DisableIf class template.
Pointer data() const
Low-level data access to matrix elements.
Definition: DenseMatrixProxy.h:227
typename T::Pointer Pointer_
Alias declaration for nested Pointer type definitions.The Pointer_ alias declaration provides a conve...
Definition: Aliases.h:263
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:624
size_t columns() const
Returns the current number of columns of the represented matrix.
Definition: DenseMatrixProxy.h:382
ElementType_< MT > ElementType
Type of the matrix elements.
Definition: DenseMatrixProxy.h:84
size_t rows() const
Returns the current number of rows of the represented matrix.
Definition: DenseMatrixProxy.h:368
Header file for the DenseMatrix base class.
TransposeType_< MT > TransposeType
Transpose type for expression template evaluations.
Definition: DenseMatrixProxy.h:83
typename T::ElementType ElementType_
Alias declaration for nested ElementType type definitions.The ElementType_ alias declaration provides...
Definition: Aliases.h:163
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:88
ConstIterator cbegin(size_t i) const
Returns an iterator to the first element of row/column i of the represented matrix.
Definition: DenseMatrixProxy.h:299
Iterator begin(size_t i) const
Returns an iterator to the first element of row/column i of the represented matrix.
Definition: DenseMatrixProxy.h:274
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:283
Header file for the EnableIf class template.
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:553
void extend(size_t m, size_t n, bool preserve=true) const
Extending the size of the represented matrix.
Definition: DenseMatrixProxy.h:582
ConstIterator_< MT > ConstIterator
Iterator over constant elements.
Definition: DenseMatrixProxy.h:92
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:346
Reference_< MT > Reference
Reference to a non-constant matrix value.
Definition: DenseMatrixProxy.h:87
void clear() const
Clearing the represented matrix.
Definition: DenseMatrixProxy.h:525
Header file for the reset shim.
Compile time type negation.The Not class template negates the given compile time condition. In case the given condition would evaluate to true, the nested member enumeration is set to false and vice versa:
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:401
typename EnableIf< Condition, T >::Type EnableIf_
Auxiliary alias declaration for the EnableIf class template.The EnableIf_ alias declaration provides ...
Definition: EnableIf.h:223
typename T::OppositeType OppositeType_
Alias declaration for nested OppositeType type definitions.The OppositeType_ alias declaration provid...
Definition: Aliases.h:243
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:415
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:90
void resize(size_t m, size_t n, bool preserve=true) const
Changing the size of the represented matrix.
Definition: DenseMatrixProxy.h:553
void ctranspose() const
In-place conjugate transpose of the represented matrix.
Definition: DenseMatrixProxy.h:643
typename T::TransposeType TransposeType_
Alias declaration for nested TransposeType type definitions.The TransposeType_ alias declaration prov...
Definition: Aliases.h:403
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:605
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:202
System settings for the inline keywords.
size_t nonZeros() const
Returns the number of non-zero elements in the represented matrix.
Definition: DenseMatrixProxy.h:449