![]() |
Blaze 3.9
|
Access proxy for strictly upper triangular matrices. More...
#include <StrictlyUpperProxy.h>
Inherits blaze::Proxy< StrictlyUpperProxy< MT >, ElementType_t< MT > >.
Public Types | |
using | RepresentedType = ElementType_t< MT > |
Type of the represented matrix element. | |
using | RawReference = AddLValueReference_t< ReferenceType > |
Reference-to-non-const to the represented element. | |
using | ConstReference = const RepresentedType & |
Reference-to-const to the represented element. | |
Public Member Functions | |
template<typename T > | |
const StrictlyUpperProxy< MT > & | operator= (initializer_list< T > list) const |
Initializer list assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyUpperProxy< MT > & | operator= (initializer_list< initializer_list< T > > list) const |
Initializer list assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyUpperProxy< MT > & | operator= (const T &value) const |
Assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyUpperProxy< MT > & | operator+= (const T &value) const |
Addition assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyUpperProxy< MT > & | operator-= (const T &value) const |
Subtraction assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyUpperProxy< MT > & | operator*= (const T &value) const |
Multiplication assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyUpperProxy< MT > & | operator/= (const T &value) const |
Division assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyUpperProxy< MT > & | operator%= (const T &value) const |
Modulo assignment to the accessed matrix element. More... | |
Constructors | |
StrictlyUpperProxy (MT &matrix, size_t row, size_t column) | |
Initialization constructor for a StrictlyUpperProxy. More... | |
StrictlyUpperProxy (const StrictlyUpperProxy &)=default | |
Destructor | |
~StrictlyUpperProxy ()=default | |
Assignment operators | |
const StrictlyUpperProxy & | operator= (const StrictlyUpperProxy &uup) const |
Copy assignment operator for StrictlyUpperProxy. More... | |
template<typename T > | |
const StrictlyUpperProxy & | operator= (initializer_list< T > list) const |
template<typename T > | |
const StrictlyUpperProxy & | operator= (initializer_list< initializer_list< T > > list) const |
template<typename T > | |
const StrictlyUpperProxy & | operator= (const T &value) const |
template<typename T > | |
const StrictlyUpperProxy & | operator+= (const T &value) const |
template<typename T > | |
const StrictlyUpperProxy & | operator-= (const T &value) const |
template<typename T > | |
const StrictlyUpperProxy & | operator*= (const T &value) const |
template<typename T > | |
const StrictlyUpperProxy & | operator/= (const T &value) const |
template<typename T > | |
const StrictlyUpperProxy & | operator%= (const T &value) const |
Access operators | |
const StrictlyUpperProxy * | operator-> () const noexcept |
Direct access to the accessed matrix element. More... | |
Utility functions | |
RawReference | get () const noexcept |
Returning the value of the accessed matrix element. More... | |
bool | isRestricted () const noexcept |
Returns whether the proxy represents a restricted matrix element.. More... | |
Conversion operator | |
operator ConstReference () const noexcept | |
Conversion to the accessed matrix element. More... | |
Private Types | |
using | ReferenceType = AddConst_t< Reference_t< MT > > |
Reference type of the underlying matrix type. | |
Private Attributes | |
Member variables | |
ReferenceType | value_ |
Reference to the accessed matrix element. | |
const bool | restricted_ |
Access flag for the accessed matrix element. More... | |
Access proxy for strictly upper triangular matrices.
The StrictlyUpperProxy provides controlled access to the elements of a non-const strictly upper triangular matrix. It guarantees that the strictly upper matrix invariant is not violated, i.e. that elements on the diagonal and in the lower part of the matrix remain 0. The following example illustrates this by means of a dense strictly upper triangular matrix:
|
inline |
Initialization constructor for a StrictlyUpperProxy.
matrix | Reference to the adapted matrix. |
row | The row-index of the accessed matrix element. |
column | The column-index of the accessed matrix element. |
|
inlinenoexcept |
Returning the value of the accessed matrix element.
|
inlinenoexcept |
Returns whether the proxy represents a restricted matrix element..
|
inlinenoexcept |
Conversion to the accessed matrix element.
|
inline |
Modulo assignment to the accessed matrix element.
value | The right-hand side value for the modulo operation. |
std::invalid_argument | Invalid assignment to diagonal or lower matrix element. |
In case the proxy represents an element on the diagonal or in the lower part of the matrix, a std::invalid_argument exception is thrown.
|
inline |
Multiplication assignment to the accessed matrix element.
value | The right-hand side value for the multiplication. |
std::invalid_argument | Invalid assignment to diagonal or lower matrix element. |
In case the proxy represents an element on the diagonal or in the lower part of the matrix, a std::invalid_argument exception is thrown.
|
inline |
Addition assignment to the accessed matrix element.
value | The right-hand side value to be added to the matrix element. |
std::invalid_argument | Invalid assignment to diagonal or lower matrix element. |
In case the proxy represents an element on the diagonal or in the lower part of the matrix, a std::invalid_argument exception is thrown.
|
inline |
Subtraction assignment to the accessed matrix element.
value | The right-hand side value to be subtracted from the matrix element. |
std::invalid_argument | Invalid assignment to diagonal or lower matrix element. |
In case the proxy represents an element on the diagonal or in the lower part of the matrix, a std::invalid_argument exception is thrown.
|
inlinenoexcept |
Direct access to the accessed matrix element.
|
inline |
Division assignment to the accessed matrix element.
value | The right-hand side value for the division. |
std::invalid_argument | Invalid assignment to diagonal or lower matrix element. |
In case the proxy represents an element on the diagonal or in the lower part of the matrix, a std::invalid_argument exception is thrown.
|
inline |
Copy assignment operator for StrictlyUpperProxy.
uup | Proxy to be copied. |
std::invalid_argument | Invalid assignment to diagonal or lower matrix element. |
In case the proxy represents an element on the diagonal or in the lower part of the matrix, a std::invalid_argument exception is thrown.
|
inline |
Assignment to the accessed matrix element.
value | The new value of the matrix element. |
std::invalid_argument | Invalid assignment to diagonal or lower matrix element. |
In case the proxy represents an element on the diagonal or in the lower part of the matrix, a std::invalid_argument exception is thrown.
|
inline |
Initializer list assignment to the accessed matrix element.
list | The list to be assigned to the matrix element. |
std::invalid_argument | Invalid assignment to diagonal or lower matrix element. |
In case the proxy represents an element on the diagonal or in the lower part of the matrix, a std::invalid_argument exception is thrown.
|
inline |
Initializer list assignment to the accessed matrix element.
list | The list to be assigned to the matrix element. |
std::invalid_argument | Invalid assignment to diagonal or lower matrix element. |
In case the proxy represents an element on the diagonal or in the lower part of the matrix, a std::invalid_argument exception is thrown.
|
private |
Access flag for the accessed matrix element.
The flag indicates if access to the matrix element is restricted. It is true in case the proxy represents an element on the diagonal or in the lower part of the matrix.