35 #ifndef _BLAZE_MATH_SPARSE_VECTORACCESSPROXY_H_ 36 #define _BLAZE_MATH_SPARSE_VECTORACCESSPROXY_H_ 100 template<
typename VT >
129 template<
typename T >
132 template<
typename T >
136 template<
typename T >
inline const VectorAccessProxy& operator+=(
const T& value )
const;
137 template<
typename T >
inline const VectorAccessProxy& operator-=(
const T& value )
const;
138 template<
typename T >
inline const VectorAccessProxy& operator*=(
const T& value )
const;
139 template<
typename T >
inline const VectorAccessProxy& operator/=(
const T& value )
const;
146 inline RawReference
get()
const noexcept;
154 inline operator RawReference() const noexcept;
170 void* operator&() const;
197 template< typename VT >
203 if( element == sv_.end() )
204 sv_.insert( i_, RepresentedType() );
214 template<
typename VT >
235 template<
typename VT >
239 if( element !=
sv_.end() && isDefault<strict>( element->value() ) )
240 sv_.erase( element );
259 template<
typename VT >
274 template<
typename VT >
275 template<
typename T >
291 template<
typename VT >
292 template<
typename T >
308 template<
typename VT >
309 template<
typename T >
324 template<
typename VT >
325 template<
typename T >
340 template<
typename VT >
341 template<
typename T >
356 template<
typename VT >
357 template<
typename T >
372 template<
typename VT >
373 template<
typename T >
395 template<
typename VT >
400 return element->value();
410 template<
typename VT >
431 template<
typename VT >
450 template<
typename VT >
453 template<
typename VT >
456 template<
bool RF,
typename VT >
459 template<
bool RF,
typename VT >
462 template<
bool RF,
typename VT >
465 template<
bool RF,
typename VT >
468 template<
typename VT >
471 template<
typename VT >
474 template<
typename VT,
typename T >
477 template<
typename T,
typename VT >
490 template<
typename VT >
507 template<
typename VT >
527 template<
bool RF,
typename VT >
532 return isDefault<RF>( proxy.
get() );
549 template<
bool RF,
typename VT >
554 return isReal<RF>( proxy.
get() );
569 template<
bool RF,
typename VT >
574 return isZero<RF>( proxy.
get() );
589 template<
bool RF,
typename VT >
594 return isOne<RF>( proxy.
get() );
609 template<
typename VT >
627 template<
typename VT >
632 swap( a.get(), b.get() );
645 template<
typename VT,
typename T >
663 template<
typename T,
typename VT >
bool isReal(const DiagonalProxy< MT > &proxy)
Returns whether the matrix element represents a real number.
Definition: DiagonalProxy.h:595
Header file for the isnan shim.
Header file for auxiliary alias declarations.
Header file for basic type definitions.
Proxy base class.The Proxy class is a base class for all proxy classes within the Blaze library that ...
Definition: Forward.h:51
Access proxy for sparse, N-dimensional vectors.The VectorAccessProxy provides safe access to the elem...
Definition: VectorAccessProxy.h:101
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:533
VT & sv_
Reference to the accessed sparse vector.
Definition: VectorAccessProxy.h:162
VectorAccessProxy(VT &sv, size_t i)
Initialization constructor for a VectorAccessProxy.
Definition: VectorAccessProxy.h:198
size_t i_
Index of the accessed sparse vector element.
Definition: VectorAccessProxy.h:163
Header file for the Proxy class.
Header file for the std::initializer_list aliases.
bool isZero(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is 0.
Definition: DiagonalProxy.h:615
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:5635
ElementType_< VT > RepresentedType
Type of the represented sparse vector element.
Definition: VectorAccessProxy.h:105
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
RepresentedType & RawReference
Raw reference to the represented element.
Definition: VectorAccessProxy.h:106
#define BLAZE_CONSTRAINT_MUST_BE_SPARSE_VECTOR_TYPE(T)
Constraint on the data type.In case the given data type T is not a sparse, N-dimensional vector type...
Definition: SparseVector.h:61
bool isnan(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is not a number.
Definition: DiagonalProxy.h:655
Constraint on the data type.
const VectorAccessProxy & operator=(const VectorAccessProxy &vap) const
Copy assignment operator for VectorAccessProxy.
Definition: VectorAccessProxy.h:260
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:553
Header file for the isOne shim.
Header file for run time assertion macros.
Header file for the relaxation flag types.
Header file for the reset shim.
bool isOne(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is 1.
Definition: DiagonalProxy.h:635
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:267
typename T::Iterator Iterator_
Alias declaration for nested Iterator type definitions.The Iterator_ alias declaration provides a con...
Definition: Aliases.h:183
Initializer list type of the Blaze library.
RawReference get() const noexcept
Returning the value of the accessed sparse vector element.
Definition: VectorAccessProxy.h:396
~VectorAccessProxy()
The destructor for VectorAccessProxy.
Definition: VectorAccessProxy.h:236
bool isRestricted() const noexcept
Returns whether the proxy represents a restricted sparse vector element..
Definition: VectorAccessProxy.h:411
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:573
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