35 #ifndef _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_NONNUMERICPROXY_H_ 36 #define _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_NONNUMERICPROXY_H_ 102 template<
typename MT >
104 :
public Proxy< NonNumericProxy<MT>, ValueType_t< ElementType_t<MT> > >
109 static constexpr
bool rmm = IsRowMajorMatrix_v<MT>;
144 template<
typename T >
147 template<
typename T >
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 );
154 template<
typename T >
inline NonNumericProxy& operator/=(
const T& value );
155 template<
typename T >
inline NonNumericProxy& operator%=(
const T& value );
186 void* operator&() const;
224 template< typename MT >
231 const size_t index(
rmm ?
i_ :
j_ );
233 if( pos ==
matrix_.end(index) )
251 template<
typename MT >
274 template<
typename MT >
277 const typename MT::Iterator pos( matrix_.find( i_, j_ ) );
278 const size_t index( rmm ? i_ : j_ );
280 if( pos != matrix_.end( index ) &&
isDefault( *pos->value() ) )
282 matrix_.erase( index, pos );
284 matrix_.erase( ( rmm ? j_ : i_ ), matrix_.find( j_, i_ ) );
304 template<
typename MT >
319 template<
typename MT >
320 template<
typename T >
336 template<
typename MT >
337 template<
typename T >
353 template<
typename MT >
354 template<
typename T >
369 template<
typename MT >
370 template<
typename T >
385 template<
typename MT >
386 template<
typename T >
401 template<
typename MT >
402 template<
typename T >
417 template<
typename MT >
418 template<
typename T >
433 template<
typename MT >
434 template<
typename T >
456 template<
typename MT >
459 const typename MT::Iterator pos( matrix_.find( i_, j_ ) );
461 return *pos->value();
479 template<
typename MT >
498 template<
typename MT >
501 template<
typename MT >
504 template<
bool RF,
typename MT >
507 template<
bool RF,
typename MT >
510 template<
bool RF,
typename MT >
513 template<
bool RF,
typename MT >
516 template<
typename MT >
534 template<
typename MT >
555 template<
typename MT >
575 template<
bool RF,
typename MT >
580 return isDefault<RF>( proxy.
get() );
597 template<
bool RF,
typename MT >
602 return isReal<RF>( proxy.
get() );
617 template<
bool RF,
typename MT >
622 return isZero<RF>( proxy.
get() );
637 template<
bool RF,
typename MT >
642 return isOne<RF>( proxy.
get() );
657 template<
typename MT >
bool isReal(const DiagonalProxy< MT > &proxy)
Returns whether the matrix element represents a real number.
Definition: DiagonalProxy.h:653
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
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:305
Proxy base class.The Proxy class is a base class for all proxy classes within the Blaze library that ...
Definition: Forward.h:51
typename T::Reference Reference_t
Alias declaration for nested Reference type definitions.The Reference_t alias declaration provides a ...
Definition: Aliases.h:330
typename T::ValueType ValueType_t
Alias declaration for nested ValueType type definitions.The ValueType_t alias declaration provides a ...
Definition: Aliases.h:490
Header file for the isZero shim.
Access proxy for symmetric, square matrices with non-numeric element types.The NonNumericProxy provid...
Definition: NonNumericProxy.h:103
Constraint on the data type.
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:591
#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
Header file for the reset shim.
Element * Iterator
Iterator over non-constant elements.
Definition: CompressedMatrix.h:3085
Header file for the extended initializer_list functionality.
Constraint on the data type.
Header file for the Proxy class.
typename T::ElementType ElementType_t
Alias declaration for nested ElementType type definitions.The ElementType_t alias declaration provide...
Definition: Aliases.h:170
size_t i_
Row-index of the accessed matrix element.
Definition: NonNumericProxy.h:178
Constraint on the data type.
ValueType_t< ET > RepresentedType
Type of the represented matrix element.
Definition: NonNumericProxy.h:120
Constraint on the data type.
Constraint on the data type.
bool isZero(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is 0.
Definition: DiagonalProxy.h:673
size_t j_
Column-index of the accessed matrix element.
Definition: NonNumericProxy.h:179
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
#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
Constraint on the data type.
RawReference get() const noexcept
Returning a reference to the accessed matrix element.
Definition: NonNumericProxy.h:457
bool isnan(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is not a number.
Definition: DiagonalProxy.h:713
#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
Reference_t< ET > RawReference
Raw reference to the represented element.
Definition: NonNumericProxy.h:121
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:611
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
Header file for run time assertion macros.
Constraint on the data type.
Constraint on the data type.
#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
bool isOne(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is 1.
Definition: DiagonalProxy.h:693
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:177
static constexpr bool rmm
Compile time flag indicating whether the given matrix type is a row-major matrix. ...
Definition: NonNumericProxy.h:109
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:225
#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 isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:631
#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:275
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
Header file for the clear shim.