35#ifndef _BLAZE_MATH_SPARSE_VECTORACCESSPROXY_H_
36#define _BLAZE_MATH_SPARSE_VECTORACCESSPROXY_H_
98template<
typename VT >
100 :
public Proxy< VectorAccessProxy<VT>, ElementType_t<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;
140 template<
typename T >
inline const VectorAccessProxy& operator%=(
const T& value )
const;
171 void* operator&() const;
198template< typename VT >
204 if( element ==
sv_.end() )
221template<
typename VT >
225 if( element !=
sv_.end() && isDefault<strict>( element->value() ) )
226 sv_.erase( element );
245template<
typename VT >
249 const auto& source( element != vap.
sv_.end() ? element->value() :
RepresentedType{} );
263template<
typename VT >
264template<
typename T >
280template<
typename VT >
281template<
typename T >
297template<
typename VT >
298template<
typename T >
313template<
typename VT >
314template<
typename T >
329template<
typename VT >
330template<
typename T >
345template<
typename VT >
346template<
typename T >
361template<
typename VT >
362template<
typename T >
381template<
typename VT >
382template<
typename T >
404template<
typename VT >
408 if( element ==
sv_.end() )
411 return element->value();
421template<
typename VT >
442template<
typename VT >
461template<
typename VT >
464template<
typename VT,
typename T >
467template<
typename T,
typename VT >
481template<
typename VT >
486 swap( a.get(), b.get() );
499template<
typename VT,
typename T >
517template<
typename T,
typename VT >
Header file for auxiliary alias declarations.
typename T::ElementType ElementType_t
Alias declaration for nested ElementType type definitions.
Definition: Aliases.h:190
typename T::Iterator Iterator_t
Alias declaration for nested Iterator type definitions.
Definition: Aliases.h:210
Header file for run time assertion macros.
Header file for the isDefault shim.
Header file for the isOne shim.
Header file for the isReal shim.
Header file for the relaxation flag enumeration.
Proxy base class.
Definition: Proxy.h:169
Access proxy for sparse, N-dimensional vectors.
Definition: VectorAccessProxy.h:101
const VectorAccessProxy & operator=(const VectorAccessProxy &vap) const
Copy assignment operator for VectorAccessProxy.
Definition: VectorAccessProxy.h:246
RawReference get() const noexcept
Returning the value of the accessed sparse vector element.
Definition: VectorAccessProxy.h:405
~VectorAccessProxy()
The destructor for VectorAccessProxy.
Definition: VectorAccessProxy.h:222
RepresentedType & RawReference
Raw reference to the represented element.
Definition: VectorAccessProxy.h:105
size_t i_
Index of the accessed sparse vector element.
Definition: VectorAccessProxy.h:164
VectorAccessProxy(VT &sv, size_t i)
Initialization constructor for a VectorAccessProxy.
Definition: VectorAccessProxy.h:199
VT & sv_
Reference to the accessed sparse vector.
Definition: VectorAccessProxy.h:163
ElementType_t< VT > RepresentedType
Type of the represented sparse vector element.
Definition: VectorAccessProxy.h:104
bool isRestricted() const noexcept
Returns whether the proxy represents a restricted sparse vector element..
Definition: VectorAccessProxy.h:422
Constraint on the data type.
#define BLAZE_CONSTRAINT_MUST_BE_SPARSE_VECTOR_TYPE(T)
Constraint on the data type.
Definition: SparseVector.h:61
#define BLAZE_INTERNAL_ASSERT(expr, msg)
Run time assertion macro for internal checks.
Definition: Assert.h:101
void swap(T &a, const VectorAccessProxy< VT > &v) noexcept
Swapping the contents of an access proxy with another element.
Definition: VectorAccessProxy.h:518
Header file for the extended initializer_list functionality.
Header file for the Proxy class.
Header file for the clear shim.
Header file for the isZero shim.
Header file for basic type definitions.