35 #ifndef _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_NONNUMERICPROXY_H_
36 #define _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_NONNUMERICPROXY_H_
102 template<
typename MT >
143 template<
typename T >
146 template<
typename T >
150 template<
typename T >
inline NonNumericProxy& operator+=(
const T& value );
151 template<
typename T >
inline NonNumericProxy& operator-=(
const T& value );
152 template<
typename T >
inline NonNumericProxy& operator*=(
const T& value );
153 template<
typename T >
inline NonNumericProxy& operator/=(
const T& value );
160 inline RawReference
get()
const noexcept;
184 void* operator&() const;
222 template< typename MT >
228 const typename MT::Iterator pos( matrix_.find( i_, j_ ) );
229 const size_t index( rmm ? i_ : j_ );
231 if( pos == matrix_.end(index) )
234 matrix_.insert( i_, j_, element );
236 matrix_.insert( j_, i_, element );
239 BLAZE_INTERNAL_ASSERT( matrix_.find(i_,j_)->value() == matrix_.find(j_,i_)->value(),
"Unbalance detected" );
249 template<
typename MT >
272 template<
typename MT >
275 const typename MT::Iterator pos( matrix_.find( i_, j_ ) );
276 const size_t index( rmm ? i_ : j_ );
278 if( pos != matrix_.end( index ) &&
isDefault( *pos->value() ) )
280 matrix_.erase( index, pos );
282 matrix_.erase( ( rmm ? j_ : i_ ), matrix_.find( j_, i_ ) );
302 template<
typename MT >
317 template<
typename MT >
318 template<
typename T >
334 template<
typename MT >
335 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 >
399 template<
typename MT >
400 template<
typename T >
415 template<
typename MT >
416 template<
typename T >
438 template<
typename MT >
441 const typename MT::Iterator pos( matrix_.find( i_, j_ ) );
443 return *pos->value();
461 template<
typename MT >
480 template<
typename MT >
483 template<
typename MT >
486 template<
typename MT >
489 template<
typename MT >
492 template<
typename MT >
495 template<
typename MT >
498 template<
typename MT >
516 template<
typename MT >
537 template<
typename MT >
557 template<
typename MT >
579 template<
typename MT >
599 template<
typename MT >
619 template<
typename MT >
639 template<
typename MT >
Header file for the isnan shim.
#define BLAZE_CONSTRAINT_MUST_NOT_BE_CONST(T)
Constraint on the data type.In case the given data type is a const-qualified type, a compilation error is created.
Definition: Const.h:79
bool isOne(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is 1.
Definition: DiagonalProxy.h:635
Header file for auxiliary alias declarations.
Constraint on the data type.
Header file for basic type definitions.
NonNumericProxy & operator=(const NonNumericProxy &nnp)
Copy assignment operator for NonNumericProxy.
Definition: NonNumericProxy.h:303
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
Access proxy for symmetric, square matrices with non-numeric element types.The NonNumericProxy provid...
Definition: NonNumericProxy.h:103
ValueType_< ET > RepresentedType
Type of the represented matrix element.
Definition: NonNumericProxy.h:119
Constraint on the data type.
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:533
#define BLAZE_CONSTRAINT_MUST_NOT_BE_VOLATILE(T)
Constraint on the data type.In case the given data type is a volatile-qualified type, a compilation error is created.
Definition: Volatile.h:79
Constraint on the data type.
Header file for the Proxy class.
size_t i_
Row-index of the accessed matrix element.
Definition: NonNumericProxy.h:176
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:573
Constraint on the data type.
Constraint on the data type.
Header file for the std::initializer_list aliases.
Constraint on the data type.
size_t j_
Column-index of the accessed matrix element.
Definition: NonNumericProxy.h:177
Header file for the clear shim.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Compile time check for row-major matrix types.This type trait tests whether or not the given template...
Definition: IsRowMajorMatrix.h:83
#define BLAZE_CONSTRAINT_MUST_NOT_BE_POINTER_TYPE(T)
Constraint on the data type.In case the given data type T is not a pointer type, a compilation error ...
Definition: Pointer.h:79
typename T::ValueType ValueType_
Alias declaration for nested ValueType type definitions.The ValueType_ alias declaration provides a c...
Definition: Aliases.h:423
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
Constraint on the data type.
bool isnan(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is not a number.
Definition: DiagonalProxy.h:655
#define BLAZE_CONSTRAINT_MUST_NOT_BE_UPPER_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is a upper triangular matrix type...
Definition: Upper.h:81
#define BLAZE_CONSTRAINT_MUST_NOT_BE_NUMERIC_TYPE(T)
Constraint on the data type.In case the given data type T is a numeric (integral or floating point) d...
Definition: Numeric.h:81
typename T::Reference Reference_
Alias declaration for nested Reference type definitions.The Reference_ alias declaration provides a c...
Definition: Aliases.h:283
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:553
Header file for the isOne shim.
#define BLAZE_CONSTRAINT_MUST_NOT_BE_SYMMETRIC_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is a symmetric matrix type, a compilation error is created.
Definition: Symmetric.h:79
Reference_< ET > RawReference
Raw reference to the represented element.
Definition: NonNumericProxy.h:120
Header file for run time assertion macros.
Constraint on the data type.
Constraint on the data type.
Header file for the reset shim.
#define BLAZE_CONSTRAINT_MUST_NOT_BE_LOWER_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is a lower triangular matrix type...
Definition: Lower.h:81
#define BLAZE_CONSTRAINT_MUST_NOT_BE_REFERENCE_TYPE(T)
Constraint on the data type.In case the given data type T is not a reference type, a compilation error is created.
Definition: Reference.h:79
Element * Iterator
Iterator over non-constant elements.
Definition: CompressedMatrix.h:2646
Header file for the isDefault shim.
Constraint on the data type.
Constraint on the data type.
MT & matrix_
Reference to the adapted matrix.
Definition: NonNumericProxy.h:175
RawReference get() const noexcept
Returning a reference to the accessed matrix element.
Definition: NonNumericProxy.h:439
Header file for the IsRowMajorMatrix type trait.
Initializer list type of the Blaze library.
NonNumericProxy(MT &sm, size_t i, size_t j)
Initialization constructor for a NonNumericProxy.
Definition: NonNumericProxy.h:223
#define BLAZE_CONSTRAINT_MUST_NOT_BE_EXPRESSION_TYPE(T)
Constraint on the data type.In case the given data type T is an expression (i.e. a type derived from ...
Definition: Expression.h:81
bool isZero(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is 0.
Definition: DiagonalProxy.h:615
#define BLAZE_CONSTRAINT_MUST_NOT_BE_HERMITIAN_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is an Hermitian matrix type, a compilation error is created.
Definition: Hermitian.h:79
~NonNumericProxy()
The destructor for NonNumericProxy.
Definition: NonNumericProxy.h:273
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