35 #ifndef _BLAZE_MATH_PROXY_DENSEVECTORPROXY_H_ 36 #define _BLAZE_MATH_PROXY_DENSEVECTORPROXY_H_ 95 enum :
bool { simdEnabled = VT::simdEnabled };
98 enum :
bool { smpAssignable = VT::smpAssignable };
104 inline Reference
operator[](
size_t index )
const;
105 inline Reference
at(
size_t index )
const;
107 inline Pointer
data ()
const;
108 inline Iterator
begin ()
const;
109 inline ConstIterator
cbegin()
const;
110 inline Iterator
end ()
const;
111 inline ConstIterator
cend ()
const;
118 inline size_t size()
const;
121 inline void reset()
const;
122 inline void clear()
const;
123 inline void resize(
size_t n,
bool preserve=
true )
const;
124 inline void extend(
size_t n,
bool preserve=
true )
const;
125 inline void reserve(
size_t n )
const;
132 template<
typename Other >
inline void scale(
const Other& scalar )
const;
161 template<
typename PT
166 if( (~*
this).isRestricted() ) {
170 return (~*
this).get()[index];
186 template<
typename PT
191 if( (~*
this).isRestricted() ) {
195 return (~*
this).get().at( index );
208 template<
typename PT
212 if( (~*
this).isRestricted() ) {
216 return (~*
this).get().data();
227 template<
typename PT
231 if( (~*
this).isRestricted() ) {
235 return (~*
this).get().begin();
245 template<
typename PT
249 return (~*
this).get().cbegin();
260 template<
typename PT
264 if( (~*
this).isRestricted() ) {
268 return (~*
this).get().end();
278 template<
typename PT
282 return (~*
this).get().cend();
300 template<
typename PT
304 return (~*
this).get().size();
314 template<
typename PT
318 return (~*
this).get().capacity();
331 template<
typename PT
335 return (~*
this).get().nonZeros();
347 template<
typename PT
353 reset( (~*
this).
get() );
365 template<
typename PT
371 clear( (~*
this).
get() );
392 template<
typename PT
396 if( (~*
this).isRestricted() ) {
400 (~*
this).
get().resize( n, preserve );
419 template<
typename PT
423 if( (~*
this).isRestricted() ) {
427 (~*
this).
get().extend( n, preserve );
442 template<
typename PT
446 if( (~*
this).isRestricted() ) {
450 (~*
this).
get().reserve( n );
462 template<
typename PT
464 template<
typename Other >
467 if( (~*
this).isRestricted() ) {
471 (~*
this).
get().scale( scalar );
487 template<
typename PT,
typename VT >
491 template<
typename PT,
typename VT >
495 template<
typename PT,
typename VT >
499 template<
typename PT,
typename VT >
503 template<
typename PT,
typename VT >
506 template<
typename PT,
typename VT >
509 template<
typename PT,
typename VT >
512 template<
typename PT,
typename VT >
515 template<
typename PT,
typename VT >
518 template<
typename PT,
typename VT >
531 template<
typename PT
536 return proxy.
begin();
548 template<
typename PT
565 template<
typename PT
582 template<
typename PT
599 template<
typename PT
615 template<
typename PT
634 template<
typename PT
658 template<
typename PT
665 if( proxy.
size() != n ) {
685 template<
typename PT
690 proxy.
resize( n, preserve );
716 template<
typename PT
720 resize_backend( proxy, n, preserve );
734 template<
typename PT
752 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.
Header file for the UNUSED_PARAMETER function template.
ReturnType_< VT > ReturnType
Return type for expression template evaluations.
Definition: DenseVectorProxy.h:83
Header file for basic type definitions.
Pointer_< VT > Pointer
Pointer to a non-constant vector value.
Definition: DenseVectorProxy.h:87
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:533
void resize(size_t n, bool preserve=true) const
Changing the size of the represented vector.
Definition: DenseVectorProxy.h:394
Header file for the IsRowVector type trait.
typename DisableIf< Condition, T >::Type DisableIf_
Auxiliary type for the DisableIf class template.The DisableIf_ alias declaration provides a convenien...
Definition: DisableIf.h:223
Header file for the DenseVector base class.
typename T::ResultType ResultType_
Alias declaration for nested ResultType type definitions.The ResultType_ alias declaration provides a...
Definition: Aliases.h:323
size_t capacity() const
Returns the maximum capacity of the represented vector.
Definition: DenseVectorProxy.h:316
typename T::ReturnType ReturnType_
Alias declaration for nested ReturnType type definitions.The ReturnType_ alias declaration provides a...
Definition: Aliases.h:343
Proxy backend for dense vector types.The DenseVectorProxy class serves as a backend for the Proxy cla...
Definition: DenseVectorProxy.h:76
Pointer data() const
Low-level data access to vector elements.
Definition: DenseVectorProxy.h:210
typename T::CompositeType CompositeType_
Alias declaration for nested CompositeType type definitions.The CompositeType_ alias declaration prov...
Definition: Aliases.h:83
void clear() const
Clearing the represented vector.
Definition: DenseVectorProxy.h:367
Header file for the DisableIf class template.
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
ConstIterator_< VT > ConstIterator
Iterator over constant elements.
Definition: DenseVectorProxy.h:90
Iterator_< VT > Iterator
Iterator over non-constant elements.
Definition: DenseVectorProxy.h:89
ElementType_< VT > ElementType
Type of the vector elements.
Definition: DenseVectorProxy.h:82
void reset() const
Reset to the default initial value.
Definition: DenseVectorProxy.h:349
typename T::ElementType ElementType_
Alias declaration for nested ElementType type definitions.The ElementType_ alias declaration provides...
Definition: Aliases.h:163
CompositeType_< VT > CompositeType
Data type for composite expression templates.
Definition: DenseVectorProxy.h:84
Base class for N-dimensional dense vectors.The DenseVector class is a base class for all arbitrarily ...
Definition: DenseVector.h:70
void scale(const Other &scalar) const
Scaling of the vector by the scalar value scalar ( ).
Definition: DenseVectorProxy.h:465
ResultType_< VT > ResultType
Result type for expression template evaluations.
Definition: DenseVectorProxy.h:80
Constraint on the data type.
Header file for the exception macros of the math module.
ConstIterator cbegin() const
Returns an iterator to the first element of the represented vector.
Definition: DenseVectorProxy.h:247
Iterator begin() const
Returns an iterator to the first element of the represented vector.
Definition: DenseVectorProxy.h:229
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
Reference at(size_t index) const
Checked access to the vector elements.
Definition: DenseVectorProxy.h:189
Reference_< VT > Reference
Reference to a non-constant vector value.
Definition: DenseVectorProxy.h:85
Iterator end() const
Returns an iterator just past the last element of the represented vector.
Definition: DenseVectorProxy.h:262
void reserve(size_t n) const
Setting the minimum capacity of the represented vector.
Definition: DenseVectorProxy.h:444
Header file for the reset shim.
size_t nonZeros() const
Returns the number of non-zero elements in the represented vector.
Definition: DenseVectorProxy.h:333
TransposeType_< VT > TransposeType
Transpose type for expression template evaluations.
Definition: DenseVectorProxy.h:81
typename EnableIf< Condition, T >::Type EnableIf_
Auxiliary alias declaration for the EnableIf class template.The EnableIf_ alias declaration provides ...
Definition: EnableIf.h:223
ConstReference_< VT > ConstReference
Reference to a constant vector value.
Definition: DenseVectorProxy.h:86
typename T::Iterator Iterator_
Alias declaration for nested Iterator type definitions.The Iterator_ alias declaration provides a con...
Definition: Aliases.h:183
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
#define BLAZE_CONSTRAINT_MUST_BE_DENSE_VECTOR_TYPE(T)
Constraint on the data type.In case the given data type T is not a dense, N-dimensional vector type...
Definition: DenseVector.h:61
void extend(size_t n, bool preserve=true) const
Extending the size of the represented vector.
Definition: DenseVectorProxy.h:421
size_t size() const
Returns the current size/dimension of the represented vector.
Definition: DenseVectorProxy.h:302
ConstPointer_< VT > ConstPointer
Pointer to a constant vector value.
Definition: DenseVectorProxy.h:88
ConstIterator cend() const
Returns an iterator just past the last element of the represented vector.
Definition: DenseVectorProxy.h:280
Reference operator[](size_t index) const
Subscript operator for the direct access to vector elements.
Definition: DenseVectorProxy.h:164
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
Header file for the IsResizable type trait.
System settings for the inline keywords.