35#ifndef _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_NONSCALARPROXY_H_
36#define _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_NONSCALARPROXY_H_
102template<
typename MT >
104 :
public Proxy< NonScalarProxy<MT>, ValueType_t< ElementType_t<MT> > >
109 static constexpr bool rmm = IsRowMajorMatrix_v<MT>;
145 template<
typename T >
148 template<
typename T >
152 template<
typename T >
inline NonScalarProxy& operator+=(
const T& value );
153 template<
typename T >
inline NonScalarProxy& operator-=(
const T& value );
154 template<
typename T >
inline NonScalarProxy& operator*=(
const T& value );
155 template<
typename T >
inline NonScalarProxy& operator/=(
const T& value );
156 template<
typename T >
inline NonScalarProxy& operator%=(
const T& value );
187 void* operator&() const;
227template< typename MT >
233 const typename MT::Iterator pos(
matrix_.find(
i_,
j_ ) );
234 const size_t index(
rmm ?
i_ :
j_ );
236 if( pos ==
matrix_.end(index) )
260template<
typename MT >
263 const typename MT::Iterator pos(
matrix_.find(
i_,
j_ ) );
264 const size_t index(
rmm ?
i_ :
j_ );
290template<
typename MT >
305template<
typename MT >
306template<
typename T >
322template<
typename MT >
323template<
typename T >
339template<
typename MT >
340template<
typename T >
355template<
typename MT >
356template<
typename T >
371template<
typename MT >
372template<
typename T >
387template<
typename MT >
388template<
typename T >
403template<
typename MT >
404template<
typename T >
419template<
typename MT >
420template<
typename T >
442template<
typename MT >
445 const typename MT::Iterator pos(
matrix_.find(
i_,
j_ ) );
447 return *pos->value();
465template<
typename MT >
Header file for auxiliary alias declarations.
typename T::ValueType ValueType_t
Alias declaration for nested ValueType type definitions.
Definition: Aliases.h:570
typename T::ElementType ElementType_t
Alias declaration for nested ElementType type definitions.
Definition: Aliases.h:190
typename T::Reference Reference_t
Alias declaration for nested Reference type definitions.
Definition: Aliases.h:390
Header file for run time assertion macros.
Constraint on the data type.
Constraint on the data type.
Header file for the isDefault shim.
Header file for the isOne shim.
Header file for the isReal shim.
Header file for the IsRowMajorMatrix type trait.
Constraint on the data type.
Constraint on the data type.
Constraint on the data type.
Header file for the relaxation flag enumeration.
Constraint on the data type.
Constraint on the data type.
Constraint on the data type.
Constraint on the data type.
Access proxy for symmetric, square matrices with non-scalar element types.
Definition: NonScalarProxy.h:105
static constexpr bool rmm
Compile time flag indicating whether the given matrix type is a row-major matrix.
Definition: NonScalarProxy.h:109
NonScalarProxy & operator=(const NonScalarProxy &nsp)
Copy assignment operator for NonScalarProxy.
Definition: NonScalarProxy.h:291
~NonScalarProxy()
The destructor for NonScalarProxy.
Definition: NonScalarProxy.h:261
Reference_t< ET > RawReference
Raw reference to the represented element.
Definition: NonScalarProxy.h:121
size_t i_
Row-index of the accessed matrix element.
Definition: NonScalarProxy.h:179
RawReference get() const noexcept
Returning a reference to the accessed matrix element.
Definition: NonScalarProxy.h:443
ValueType_t< ET > RepresentedType
Type of the represented matrix element.
Definition: NonScalarProxy.h:120
size_t j_
Column-index of the accessed matrix element.
Definition: NonScalarProxy.h:180
NonScalarProxy(MT &sm, size_t i, size_t j)
Initialization constructor for a NonScalarProxy.
Definition: NonScalarProxy.h:228
MT & matrix_
Reference to the adapted matrix.
Definition: NonScalarProxy.h:178
Proxy base class.
Definition: Proxy.h:169
Constraint on the data type.
Constraint on the data type.
Constraint on the data type.
#define BLAZE_CONSTRAINT_MUST_NOT_BE_VOLATILE(T)
Constraint on the data type.
Definition: Volatile.h:79
#define BLAZE_CONSTRAINT_MUST_NOT_BE_POINTER_TYPE(T)
Constraint on the data type.
Definition: Pointer.h:79
#define BLAZE_CONSTRAINT_MUST_NOT_BE_CONST(T)
Constraint on the data type.
Definition: Const.h:79
#define BLAZE_CONSTRAINT_MUST_NOT_BE_REFERENCE_TYPE(T)
Constraint on the data type.
Definition: Reference.h:79
bool isDefault(const DiagonalMatrix< MT, SO, DF > &m)
Returns whether the given diagonal matrix is in default state.
Definition: DiagonalMatrix.h:169
#define BLAZE_CONSTRAINT_MUST_NOT_BE_SYMMETRIC_MATRIX_TYPE(T)
Constraint on the data type.
Definition: Symmetric.h:79
#define BLAZE_CONSTRAINT_MUST_NOT_BE_VIEW_TYPE(T)
Constraint on the data type.
Definition: View.h:81
#define BLAZE_CONSTRAINT_MUST_NOT_BE_HERMITIAN_MATRIX_TYPE(T)
Constraint on the data type.
Definition: Hermitian.h:79
#define BLAZE_CONSTRAINT_MUST_NOT_BE_UPPER_MATRIX_TYPE(T)
Constraint on the data type.
Definition: Upper.h:81
#define BLAZE_CONSTRAINT_MUST_NOT_BE_COMPUTATION_TYPE(T)
Constraint on the data type.
Definition: Computation.h:81
#define BLAZE_CONSTRAINT_MUST_BE_SPARSE_MATRIX_TYPE(T)
Constraint on the data type.
Definition: SparseMatrix.h:61
#define BLAZE_CONSTRAINT_MUST_NOT_BE_LOWER_MATRIX_TYPE(T)
Constraint on the data type.
Definition: Lower.h:81
#define BLAZE_CONSTRAINT_MUST_NOT_BE_SCALAR_TYPE(T)
Constraint on the data type.
Definition: Scalar.h:81
#define BLAZE_CONSTRAINT_MUST_NOT_BE_TRANSFORMATION_TYPE(T)
Constraint on the data type.
Definition: Transformation.h:81
#define BLAZE_INTERNAL_ASSERT(expr, msg)
Run time assertion macro for internal checks.
Definition: Assert.h:101
Header file for the extended initializer_list functionality.
Header file for the Proxy class.
Header file for the isZero shim.
Header file for basic type definitions.