![]() |
Access proxy for strictly lower triangular matrices.The StrictlyLowerProxy provides controlled access to the elements of a non-const strictly lower triangular matrix. It guarantees that the strictly lower matrix invariant is not violated, i.e. that elements on the diagonal and in the upper part of the matrix remain 0. The following example illustrates this by means of a dense strictly lower triangular matrix:
More...
#include <StrictlyLowerProxy.h>
Inherits blaze::Proxy< StrictlyLowerProxy< MT >, ElementType_< MT > >.
Public Types | |
typedef ElementType_< MT > | RepresentedType |
Type of the represented matrix element. | |
typedef AddReference_< ReferenceType > | RawReference |
Reference-to-non-const to the represented element. | |
typedef const RepresentedType & | ConstReference |
Reference-to-const to the represented element. | |
Public Member Functions | |
template<typename T > | |
const StrictlyLowerProxy< MT > & | operator= (initializer_list< T > list) const |
Initializer list assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyLowerProxy< MT > & | operator= (initializer_list< initializer_list< T > > list) const |
Initializer list assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyLowerProxy< MT > & | operator= (const T &value) const |
Assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyLowerProxy< MT > & | operator+= (const T &value) const |
Addition assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyLowerProxy< MT > & | operator-= (const T &value) const |
Subtraction assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyLowerProxy< MT > & | operator*= (const T &value) const |
Multiplication assignment to the accessed matrix element. More... | |
template<typename T > | |
const StrictlyLowerProxy< MT > & | operator/= (const T &value) const |
Division assignment to the accessed matrix element. More... | |
Constructors | |
StrictlyLowerProxy (MT &matrix, size_t row, size_t column) | |
Initialization constructor for an StrictlyLowerProxy. More... | |
StrictlyLowerProxy (const StrictlyLowerProxy &ulp) | |
The copy constructor for LowerProxy. More... | |
Assignment operators | |
const StrictlyLowerProxy & | operator= (const StrictlyLowerProxy &ulp) const |
Copy assignment operator for StrictlyLowerProxy. More... | |
template<typename T > | |
const StrictlyLowerProxy & | operator= (initializer_list< T > list) const |
template<typename T > | |
const StrictlyLowerProxy & | operator= (initializer_list< initializer_list< T > > list) const |
template<typename T > | |
const StrictlyLowerProxy & | operator= (const T &value) const |
template<typename T > | |
const StrictlyLowerProxy & | operator+= (const T &value) const |
template<typename T > | |
const StrictlyLowerProxy & | operator-= (const T &value) const |
template<typename T > | |
const StrictlyLowerProxy & | operator*= (const T &value) const |
template<typename T > | |
const StrictlyLowerProxy & | operator/= (const T &value) const |
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 | |
typedef AddConst_< Reference_< MT > > | ReferenceType |
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 lower triangular matrices.
The StrictlyLowerProxy provides controlled access to the elements of a non-const strictly lower triangular matrix. It guarantees that the strictly lower matrix invariant is not violated, i.e. that elements on the diagonal and in the upper part of the matrix remain 0. The following example illustrates this by means of a dense strictly lower triangular matrix:
|
inlineexplicit |
Initialization constructor for an StrictlyLowerProxy.
matrix | Reference to the adapted matrix. |
row | The row-index of the accessed matrix element. |
column | The column-index of the accessed matrix element. |
|
inline |
The copy constructor for LowerProxy.
slp | Proxy to be copied. |
|
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 |
Multiplication assignment to the accessed matrix element.
value | The right-hand side value for the multiplication. |
std::invalid_argument | Invalid assignment to diagonal or upper matrix element. |
In case the proxy represents an element on the diagonal or in the upper 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 upper matrix element. |
In case the proxy represents an element on the diagonal or in the upper 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 upper matrix element. |
In case the proxy represents an element on the diagonal or in the upper part of the matrix, a std::invalid_argument exception is thrown.
|
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 upper matrix element. |
In case the proxy represents an element on the diagonal or in the upper part of the matrix, a std::invalid_argument exception is thrown.
|
inline |
Copy assignment operator for StrictlyLowerProxy.
slp | Proxy to be copied. |
std::invalid_argument | Invalid assignment to diagonal or upper matrix element. |
In case the proxy represents an element on the diagonal or in the upper 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 upper matrix element. |
In case the proxy represents an element on the diagonal or in the upper 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 upper matrix element. |
In case the proxy represents an element on the diagonal or in the upper 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 upper matrix element. |
In case the proxy represents an element on the diagonal or in the upper 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 upper part of the matrix.