35 #ifndef _BLAZE_MATH_SPARSE_MATRIXACCESSPROXY_H_
36 #define _BLAZE_MATH_SPARSE_MATRIXACCESSPROXY_H_
99 template<
typename MT >
134 template<
typename T >
137 template<
typename T >
141 template<
typename T >
inline const MatrixAccessProxy& operator+=(
const T& value )
const;
142 template<
typename T >
inline const MatrixAccessProxy& operator-=(
const T& value )
const;
143 template<
typename T >
inline const MatrixAccessProxy& operator*=(
const T& value )
const;
144 template<
typename T >
inline const MatrixAccessProxy& operator/=(
const T& value )
const;
151 inline RawReference
get()
const noexcept;
159 inline operator RawReference() const noexcept;
176 void* operator&() const;
204 template< typename MT >
211 const size_t index( rmm ? i_ : j_ );
212 if( element == sm_.end(index) )
213 sm_.insert( i_, j_, RepresentedType() );
223 template<
typename MT >
245 template<
typename MT >
249 const size_t index( rmm ? i_ : j_ );
250 if( element != sm_.end( index ) &&
isDefault( element->value() ) )
251 sm_.erase( index, element );
270 template<
typename MT >
285 template<
typename VT >
286 template<
typename T >
302 template<
typename VT >
303 template<
typename T >
319 template<
typename MT >
320 template<
typename T >
335 template<
typename MT >
336 template<
typename T >
351 template<
typename MT >
352 template<
typename T >
367 template<
typename MT >
368 template<
typename T >
383 template<
typename MT >
384 template<
typename T >
406 template<
typename MT >
411 return element->value();
421 template<
typename MT >
442 template<
typename MT >
461 template<
typename MT >
464 template<
typename MT >
467 template<
typename MT >
470 template<
typename MT >
473 template<
typename MT >
476 template<
typename MT >
479 template<
typename MT >
482 template<
typename MT >
485 template<
typename MT,
typename T >
488 template<
typename T,
typename MT >
506 template<
typename MT >
527 template<
typename MT >
547 template<
typename MT >
569 template<
typename MT >
589 template<
typename MT >
609 template<
typename MT >
629 template<
typename MT >
647 template<
typename MT >
652 swap( a.get(), b.get() );
665 template<
typename MT,
typename T >
683 template<
typename T,
typename MT >
Header file for the isnan shim.
size_t i_
Row-index of the accessed sparse matrix element.
Definition: MatrixAccessProxy.h:168
bool isOne(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is 1.
Definition: DiagonalProxy.h:635
Header file for auxiliary alias declarations.
Header file for basic type definitions.
bool isRestricted() const noexcept
Returns whether the proxy represents a restricted sparse matrix element..
Definition: MatrixAccessProxy.h:422
Proxy base class.The Proxy class is a base class for all proxy classes within the Blaze library that ...
Definition: Forward.h:51
bool isReal(const DiagonalProxy< MT > &proxy)
Returns whether the matrix element represents a real number.
Definition: DiagonalProxy.h:595
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:533
RawReference get() const noexcept
Returning the value of the accessed sparse matrix element.
Definition: MatrixAccessProxy.h:407
Access proxy for sparse, matrices.The MatrixAccessProxy provides safe access to the elements of a no...
Definition: MatrixAccessProxy.h:100
Header file for the Proxy class.
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:573
Header file for the std::initializer_list aliases.
Constraint on the data type.
Header file for the clear shim.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
void swap(CompressedMatrix< Type, SO > &a, CompressedMatrix< Type, SO > &b) noexcept
Swapping the contents of two compressed matrices.
Definition: CompressedMatrix.h:5148
const MatrixAccessProxy & operator=(const MatrixAccessProxy &map) const
Copy assignment operator for MatrixAccessProxy.
Definition: MatrixAccessProxy.h:271
Compile time check for row-major matrix types.This type trait tests whether or not the given template...
Definition: IsRowMajorMatrix.h:83
Header file for the isZero shim.
typename T::ElementType ElementType_
Alias declaration for nested ElementType type definitions.The ElementType_ alias declaration provides...
Definition: Aliases.h:163
MatrixAccessProxy(MT &sm, size_t i, size_t j)
Initialization constructor for a MatrixAccessProxy.
Definition: MatrixAccessProxy.h:205
bool isnan(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is not a number.
Definition: DiagonalProxy.h:655
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:553
Header file for the isOne shim.
ElementType_< MT > RepresentedType
Type of the represented sparse matrix element.
Definition: MatrixAccessProxy.h:110
~MatrixAccessProxy()
The destructor for MatrixAccessProxy.
Definition: MatrixAccessProxy.h:246
Header file for run time assertion macros.
MT & sm_
Reference to the accessed sparse matrix.
Definition: MatrixAccessProxy.h:167
Header file for the reset shim.
Header file for the isDefault shim.
void swap(DiagonalMatrix< MT, SO, DF > &a, DiagonalMatrix< MT, SO, DF > &b) noexcept
Swapping the contents of two matrices.
Definition: DiagonalMatrix.h:258
typename T::Iterator Iterator_
Alias declaration for nested Iterator type definitions.The Iterator_ alias declaration provides a con...
Definition: Aliases.h:183
size_t j_
Column-index of the accessed sparse matrix element.
Definition: MatrixAccessProxy.h:169
Header file for the IsRowMajorMatrix type trait.
Initializer list type of the Blaze library.
RepresentedType & RawReference
Raw reference to the represented element.
Definition: MatrixAccessProxy.h:111
bool isZero(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is 0.
Definition: DiagonalProxy.h:615
Header file for the isReal shim.
#define BLAZE_INTERNAL_ASSERT(expr, msg)
Run time assertion macro for internal checks.In case of an invalid run time expression, the program execution is terminated. The BLAZE_INTERNAL_ASSERT macro can be disabled by setting the BLAZE_USER_ASSERTION flag to zero or by defining NDEBUG during the compilation.
Definition: Assert.h:101
#define BLAZE_CONSTRAINT_MUST_BE_SPARSE_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is not a sparse, N-dimensional matrix type...
Definition: SparseMatrix.h:61