35 #ifndef _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_NONNUMERICPROXY_H_ 36 #define _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_NONNUMERICPROXY_H_ 104 template<
typename MT >
106 :
public Proxy< NonNumericProxy<MT>, ValueType_t< ElementType_t<MT> > >
111 static constexpr
bool rmm = IsRowMajorMatrix_v<MT>;
146 template<
typename T >
149 template<
typename T >
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 );
156 template<
typename T >
inline NonNumericProxy& operator/=(
const T& value );
157 template<
typename T >
inline NonNumericProxy& operator%=(
const T& value );
188 void* operator&() const;
228 template< typename MT >
234 const typename MT::Iterator pos(
matrix_.find(
i_,
j_ ) );
235 const size_t index(
rmm ?
i_ :
j_ );
237 if( pos ==
matrix_.end(index) )
255 template<
typename MT >
278 template<
typename MT >
281 const typename MT::Iterator pos( matrix_.find( i_, j_ ) );
282 const size_t index( rmm ? i_ : j_ );
284 if( pos != matrix_.end( index ) &&
isDefault( *pos->value() ) )
286 matrix_.erase( index, pos );
288 matrix_.erase( ( rmm ? j_ : i_ ), matrix_.find( j_, i_ ) );
308 template<
typename MT >
323 template<
typename MT >
324 template<
typename T >
340 template<
typename MT >
341 template<
typename T >
357 template<
typename MT >
358 template<
typename T >
373 template<
typename MT >
374 template<
typename T >
389 template<
typename MT >
390 template<
typename T >
405 template<
typename MT >
406 template<
typename T >
421 template<
typename MT >
422 template<
typename T >
437 template<
typename MT >
438 template<
typename T >
460 template<
typename MT >
463 const typename MT::Iterator pos( matrix_.find( i_, j_ ) );
465 return *pos->value();
483 template<
typename MT >
502 template<
typename MT >
505 template<
typename MT >
508 template<
bool RF,
typename MT >
511 template<
bool RF,
typename MT >
514 template<
bool RF,
typename MT >
517 template<
bool RF,
typename MT >
520 template<
typename MT >
538 template<
typename MT >
559 template<
typename MT >
579 template<
bool RF,
typename MT >
584 return isDefault<RF>( proxy.
get() );
601 template<
bool RF,
typename MT >
606 return isReal<RF>( proxy.
get() );
621 template<
bool RF,
typename MT >
626 return isZero<RF>( proxy.
get() );
641 template<
bool RF,
typename MT >
646 return isOne<RF>( proxy.
get() );
661 template<
typename MT >
bool isReal(const DiagonalProxy< MT > &proxy)
Returns whether the matrix element represents a real number.
Definition: DiagonalProxy.h:657
#define BLAZE_CONSTRAINT_MUST_NOT_BE_TRANSFORMATION_TYPE(T)
Constraint on the data type.In case the given data type T is a transformation expression (i....
Definition: Transformation.h:81
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,...
Definition: Const.h:79
Constraint on the data type.
Header file for auxiliary alias declarations.
Constraint on the data type.
Constraint on the data type.
Header file for basic type definitions.
NonNumericProxy & operator=(const NonNumericProxy &nnp)
Copy assignment operator for NonNumericProxy.
Definition: NonNumericProxy.h:309
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:105
#define BLAZE_CONSTRAINT_MUST_NOT_BE_COMPUTATION_TYPE(T)
Constraint on the data type.In case the given data type T is a computational expression (i....
Definition: Computation.h:81
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:595
#define BLAZE_CONSTRAINT_MUST_NOT_BE_VOLATILE(T)
Constraint on the data type.In case the given data type is a volatile-qualified type,...
Definition: Volatile.h:79
Header file for the reset shim.
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:180
Constraint on the data type.
ValueType_t< ET > RepresentedType
Type of the represented matrix element.
Definition: NonNumericProxy.h:122
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:677
size_t j_
Column-index of the accessed matrix element.
Definition: NonNumericProxy.h:181
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:461
bool isnan(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is not a number.
Definition: DiagonalProxy.h:717
#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:123
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:615
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,...
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,...
Definition: Reference.h:79
bool isOne(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is 1.
Definition: DiagonalProxy.h:697
Header file for the isDefault shim.
Constraint on the data type.
Constraint on the data type.
#define BLAZE_CONSTRAINT_MUST_NOT_BE_VIEW_TYPE(T)
Constraint on the data type.In case the given data type T is a view type (i.e. a subvector,...
Definition: View.h:81
MT & matrix_
Reference to the adapted matrix.
Definition: NonNumericProxy.h:179
static constexpr bool rmm
Compile time flag indicating whether the given matrix type is a row-major matrix.
Definition: NonNumericProxy.h:111
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:229
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:635
#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,...
Definition: Hermitian.h:79
~NonNumericProxy()
The destructor for NonNumericProxy.
Definition: NonNumericProxy.h:279
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,...
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.
constexpr Type & get(StaticVector< Type, N, TF > &v) noexcept
Tuple-like index-based access the contents of a static vector.
Definition: StaticVector.h:2704