35 #ifndef _BLAZE_MATH_SPARSE_VECTORACCESSPROXY_H_
36 #define _BLAZE_MATH_SPARSE_VECTORACCESSPROXY_H_
94 template<
typename VT >
123 template<
typename T >
inline const VectorAccessProxy& operator+=(
const T& value )
const;
124 template<
typename T >
inline const VectorAccessProxy& operator-=(
const T& value )
const;
125 template<
typename T >
inline const VectorAccessProxy& operator*=(
const T& value )
const;
126 template<
typename T >
inline const VectorAccessProxy& operator/=(
const T& value )
const;
133 inline RawReference
get()
const;
184 template<
typename VT >
190 if( element ==
sv_.end() )
201 template<
typename VT >
222 template<
typename VT >
226 if( element != sv_.end() &&
isDefault( element->value() ) )
227 sv_.erase( element );
246 template<
typename VT >
261 template<
typename VT >
262 template<
typename T >
277 template<
typename VT >
278 template<
typename T >
293 template<
typename VT >
294 template<
typename T >
309 template<
typename VT >
310 template<
typename T >
325 template<
typename VT >
326 template<
typename T >
348 template<
typename VT >
353 return element->value();
363 template<
typename VT >
384 template<
typename VT >
403 template<
typename VT1,
typename VT2 >
406 template<
typename VT,
typename T >
409 template<
typename T,
typename VT >
412 template<
typename VT1,
typename VT2 >
415 template<
typename VT,
typename T >
418 template<
typename T,
typename VT >
421 template<
typename VT1,
typename VT2 >
424 template<
typename VT,
typename T >
425 inline bool operator<( const VectorAccessProxy<VT>& lhs,
const T& rhs );
427 template<
typename T,
typename VT >
428 inline bool operator<( const T& lhs, const VectorAccessProxy<VT>& rhs );
430 template<
typename VT1,
typename VT2 >
433 template<
typename VT,
typename T >
436 template<
typename T,
typename VT >
439 template<
typename VT1,
typename VT2 >
442 template<
typename VT,
typename T >
443 inline bool operator<=( const VectorAccessProxy<VT>& lhs,
const T& rhs );
445 template<
typename T,
typename VT >
446 inline bool operator<=( const T& lhs, const VectorAccessProxy<VT>& rhs );
448 template<
typename VT1,
typename VT2 >
451 template<
typename VT,
typename T >
454 template<
typename T,
typename VT >
457 template<
typename VT >
458 inline std::ostream& operator<<( std::ostream& os, const VectorAccessProxy<VT>& proxy );
471 template<
typename VT1,
typename VT2 >
474 return ( lhs.
get() == rhs.
get() );
487 template<
typename VT,
typename T >
490 return ( lhs.
get() == rhs );
503 template<
typename T,
typename VT >
506 return ( lhs == rhs.
get() );
519 template<
typename VT1,
typename VT2 >
522 return ( lhs.
get() != rhs.
get() );
535 template<
typename VT,
typename T >
538 return ( lhs.
get() != rhs );
551 template<
typename T,
typename VT >
554 return ( lhs != rhs.
get() );
567 template<
typename VT1,
typename VT2 >
570 return ( lhs.get() < rhs.get() );
583 template<
typename VT,
typename T >
584 inline bool operator<( const VectorAccessProxy<VT>& lhs,
const T& rhs )
586 return ( lhs.get() < rhs );
599 template<
typename T,
typename VT >
600 inline bool operator<( const T& lhs, const VectorAccessProxy<VT>& rhs )
602 return ( lhs < rhs.get() );
615 template<
typename VT1,
typename VT2 >
618 return ( lhs.
get() > rhs.
get() );
631 template<
typename VT,
typename T >
634 return ( lhs.
get() > rhs );
647 template<
typename T,
typename VT >
650 return ( lhs > rhs.
get() );
663 template<
typename VT1,
typename VT2 >
666 return ( lhs.get() <= rhs.get() );
679 template<
typename VT,
typename T >
680 inline bool operator<=( const VectorAccessProxy<VT>& lhs,
const T& rhs )
682 return ( lhs.get() <= rhs );
695 template<
typename T,
typename VT >
696 inline bool operator<=( const T& lhs, const VectorAccessProxy<VT>& rhs )
698 return ( lhs <= rhs.get() );
711 template<
typename VT1,
typename VT2 >
714 return ( lhs.
get() >= rhs.
get() );
727 template<
typename VT,
typename T >
730 return ( lhs.
get() >= rhs );
743 template<
typename T,
typename VT >
746 return ( lhs >= rhs.
get() );
759 template<
typename VT >
760 inline std::ostream& operator<<( std::ostream& os, const VectorAccessProxy<VT>& proxy )
762 return os << proxy.get();
778 template<
typename VT >
779 inline void reset(
const VectorAccessProxy<VT>& proxy );
781 template<
typename VT >
782 inline void clear(
const VectorAccessProxy<VT>& proxy );
784 template<
typename VT >
785 inline bool isDefault(
const VectorAccessProxy<VT>& proxy );
787 template<
typename VT >
788 inline void swap(
const VectorAccessProxy<VT>& a,
const VectorAccessProxy<VT>& b ) ;
790 template<
typename VT,
typename T >
791 inline void swap(
const VectorAccessProxy<VT>& a, T& b ) ;
793 template<
typename T,
typename VT >
794 inline void swap( T& a,
const VectorAccessProxy<VT>& v ) ;
806 template<
typename VT >
823 template<
typename VT >
843 template<
typename VT >
862 template<
typename VT >
881 template<
typename VT,
typename T >
900 template<
typename T,
typename VT >
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: Proxy.h:99
Access proxy for sparse, N-dimensional vectors.The VectorAccessProxy provides safe access to the elem...
Definition: VectorAccessProxy.h:95
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:821
VT & sv_
Reference to the accessed sparse vector.
Definition: VectorAccessProxy.h:149
bool operator>(const NegativeAccuracy< A > &lhs, const T &rhs)
Greater-than comparison between a NegativeAccuracy object and a floating point value.
Definition: Accuracy.h:366
bool operator>=(const NegativeAccuracy< A > &, const T &rhs)
Greater-or-equal-than comparison between a NegativeAccuracy object and a floating point value...
Definition: Accuracy.h:442
VectorAccessProxy(VT &sv, size_t i)
Initialization constructor for a VectorAccessProxy.
Definition: VectorAccessProxy.h:185
size_t i_
Index of the accessed sparse vector element.
Definition: VectorAccessProxy.h:150
bool isRestricted() const
Returns whether the proxy represents a restricted sparse vector element..
Definition: VectorAccessProxy.h:364
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:861
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)
Swapping the contents of two compressed matrices.
Definition: CompressedMatrix.h:4807
RepresentedType & RawReference
Raw reference to the represented element.
Definition: VectorAccessProxy.h:100
const VectorAccessProxy & operator=(const VectorAccessProxy &vap) const
Copy assignment operator for VectorAccessProxy.
Definition: VectorAccessProxy.h:247
#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:79
Type ElementType
Type of the sparse matrix elements.
Definition: CompressedMatrix.h:2505
Constraint on the data type.
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:841
Header file for run time assertion macros.
Header file for the Proxy class.
Header file for the reset shim.
Element * Iterator
Iterator over non-constant elements.
Definition: CompressedMatrix.h:2510
Header file for the isDefault shim.
void swap(DiagonalMatrix< MT, SO, DF > &a, DiagonalMatrix< MT, SO, DF > &b)
Swapping the contents of two matrices.
Definition: DiagonalMatrix.h:200
RawReference get() const
Returning the value of the accessed sparse vector element.
Definition: VectorAccessProxy.h:349
VT::ElementType RepresentedType
Type of the represented sparse vector element.
Definition: VectorAccessProxy.h:99
~VectorAccessProxy()
The destructor for VectorAccessProxy.
Definition: VectorAccessProxy.h:223
bool operator==(const NegativeAccuracy< A > &lhs, const T &rhs)
Equality comparison between a NegativeAccuracy object and a floating point value. ...
Definition: Accuracy.h:249
bool operator!=(const NegativeAccuracy< A > &lhs, const T &rhs)
Inequality comparison between a NegativeAccuracy object and a floating point value.
Definition: Accuracy.h:289
#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
void * operator&() const
Address operator (private & undefined)