35 #ifndef _BLAZE_MATH_ADAPTORS_LOWERMATRIX_STRICTLYLOWERPROXY_H_
36 #define _BLAZE_MATH_ADAPTORS_LOWERMATRIX_STRICTLYLOWERPROXY_H_
93 template<
typename MT >
128 template<
typename T >
inline const StrictlyLowerProxy& operator+=(
const T& value )
const;
129 template<
typename T >
inline const StrictlyLowerProxy& operator-=(
const T& value )
const;
130 template<
typename T >
inline const StrictlyLowerProxy& operator*=(
const T& value )
const;
131 template<
typename T >
inline const StrictlyLowerProxy& operator/=(
const T& value )
const;
138 inline RawReference
get()
const;
194 template<
typename MT >
196 : value_ ( matrix( row, column ) )
197 , restricted_( row <= column )
207 template<
typename MT >
209 : value_ ( slp.value_ )
210 , restricted_( slp.restricted_ )
229 template<
typename MT >
249 template<
typename MT >
250 template<
typename T >
254 throw std::invalid_argument(
"Invalid assignment to diagonal or upper matrix element" );
273 template<
typename MT >
274 template<
typename T >
278 throw std::invalid_argument(
"Invalid assignment to diagonal or upper matrix element" );
297 template<
typename MT >
298 template<
typename T >
302 throw std::invalid_argument(
"Invalid assignment to diagonal or upper matrix element" );
321 template<
typename MT >
322 template<
typename T >
326 throw std::invalid_argument(
"Invalid assignment to diagonal or upper matrix element" );
345 template<
typename MT >
346 template<
typename T >
350 throw std::invalid_argument(
"Invalid assignment to diagonal or upper matrix element" );
372 template<
typename MT >
385 template<
typename MT >
406 template<
typename MT >
425 template<
typename MT1,
typename MT2 >
428 template<
typename MT,
typename T >
431 template<
typename T,
typename MT >
434 template<
typename MT1,
typename MT2 >
437 template<
typename MT,
typename T >
440 template<
typename T,
typename MT >
443 template<
typename MT1,
typename MT2 >
446 template<
typename MT,
typename T >
447 inline bool operator<( const StrictlyLowerProxy<MT>& lhs,
const T& rhs );
449 template<
typename T,
typename MT >
450 inline bool operator<( const T& lhs, const StrictlyLowerProxy<MT>& rhs );
452 template<
typename MT1,
typename MT2 >
455 template<
typename MT,
typename T >
458 template<
typename T,
typename MT >
461 template<
typename MT1,
typename MT2 >
464 template<
typename MT,
typename T >
465 inline bool operator<=( const StrictlyLowerProxy<MT>& lhs,
const T& rhs );
467 template<
typename T,
typename MT >
468 inline bool operator<=( const T& lhs, const StrictlyLowerProxy<MT>& rhs );
470 template<
typename MT1,
typename MT2 >
473 template<
typename MT,
typename T >
476 template<
typename T,
typename MT >
479 template<
typename MT >
480 inline std::ostream& operator<<( std::ostream& os, const StrictlyLowerProxy<MT>& proxy );
493 template<
typename MT1,
typename MT2 >
496 return ( lhs.
get() == rhs.
get() );
509 template<
typename MT,
typename T >
512 return ( lhs.
get() == rhs );
525 template<
typename T,
typename MT >
528 return ( lhs == rhs.
get() );
541 template<
typename MT1,
typename MT2 >
544 return ( lhs.
get() != rhs.
get() );
557 template<
typename MT,
typename T >
560 return ( lhs.
get() != rhs );
573 template<
typename T,
typename MT >
576 return ( lhs != rhs.
get() );
589 template<
typename MT1,
typename MT2 >
592 return ( lhs.get() < rhs.get() );
605 template<
typename MT,
typename T >
606 inline bool operator<( const StrictlyLowerProxy<MT>& lhs,
const T& rhs )
608 return ( lhs.get() < rhs );
621 template<
typename T,
typename MT >
622 inline bool operator<( const T& lhs, const StrictlyLowerProxy<MT>& rhs )
624 return ( lhs < rhs.get() );
637 template<
typename MT1,
typename MT2 >
640 return ( lhs.
get() > rhs.
get() );
653 template<
typename MT,
typename T >
656 return ( lhs.
get() > rhs );
669 template<
typename T,
typename MT >
672 return ( lhs > rhs.
get() );
685 template<
typename MT1,
typename MT2 >
688 return ( lhs.get() <= rhs.get() );
701 template<
typename MT,
typename T >
702 inline bool operator<=( const StrictlyLowerProxy<MT>& lhs,
const T& rhs )
704 return ( lhs.get() <= rhs );
717 template<
typename T,
typename MT >
718 inline bool operator<=( const T& lhs, const StrictlyLowerProxy<MT>& rhs )
720 return ( lhs <= rhs.get() );
733 template<
typename MT1,
typename MT2 >
736 return ( lhs.
get() >= rhs.
get() );
750 template<
typename MT,
typename T >
753 return ( lhs.
get() >= rhs );
767 template<
typename T,
typename MT >
770 return ( lhs >= rhs.
get() );
783 template<
typename MT >
784 inline std::ostream& operator<<( std::ostream& os, const StrictlyLowerProxy<MT>& proxy )
786 return os << proxy.get();
802 template<
typename MT >
803 inline void reset(
const StrictlyLowerProxy<MT>& proxy );
805 template<
typename MT >
806 inline void clear(
const StrictlyLowerProxy<MT>& proxy );
808 template<
typename MT >
809 inline bool isDefault(
const StrictlyLowerProxy<MT>& proxy );
824 template<
typename MT >
844 template<
typename MT >
864 template<
typename MT >
#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:116
Header file for the AddConst type trait.
Header file for basic type definitions.
Addition of a top level 'const' qualifier.The AddConst type trait adds a top level 'const' qualifier ...
Definition: AddConst.h:69
Proxy base class.The Proxy class is a base class for all proxy classes within the Blaze library that ...
Definition: Proxy.h:99
Constraint on the data type.
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:821
DisableIf< Or< IsComputation< MT >, IsTransExpr< MT > >, typename ColumnExprTrait< MT >::Type >::Type column(Matrix< MT, SO > &matrix, size_t index)
Creating a view on a specific column of the given matrix.
Definition: Column.h:103
bool operator>(const NegativeAccuracy< A > &lhs, const T &rhs)
Greater-than comparison between a NegativeAccuracy object and a floating point value.
Definition: Accuracy.h:366
bool operator>=(const NegativeAccuracy< A > &, const T &rhs)
Greater-or-equal-than comparison between a NegativeAccuracy object and a floating point value...
Definition: Accuracy.h:442
#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:116
Constraint on the data type.
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:861
Constraint on the data type.
Addition of a top level reference.In case the given type T is not a reference type, the AddReference type trait adds a top level reference to the given type T. Else the resulting type Type is T.
Definition: AddReference.h:69
Header file for the clear shim.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
#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:116
bool isRestricted() const
Returns whether the proxy represents a restricted matrix element..
Definition: StrictlyLowerProxy.h:386
Constraint on the data type.
Access proxy for strictly lower triangular matrices.The StrictlyLowerProxy provides controlled access...
Definition: StrictlyLowerProxy.h:94
const bool restricted_
Access flag for the accessed matrix element.
Definition: StrictlyLowerProxy.h:155
AddConst< typename MT::Reference >::Type ReferenceType
Reference type of the underlying matrix type.
Definition: StrictlyLowerProxy.h:99
Constraint on the data type.
#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:118
Type ElementType
Type of the sparse matrix elements.
Definition: CompressedMatrix.h:2505
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:841
AddReference< ReferenceType >::Type RawReference
Reference to the represented element.
Definition: StrictlyLowerProxy.h:108
DisableIf< Or< IsComputation< MT >, IsTransExpr< MT > >, typename RowExprTrait< MT >::Type >::Type row(Matrix< MT, SO > &matrix, size_t index)
Creating a view on a specific row of the given matrix.
Definition: Row.h:103
#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:116
Header file for the Proxy class.
Constraint on the data type.
Constraint on the data type.
Header file for the reset shim.
#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:118
const StrictlyLowerProxy & operator=(const StrictlyLowerProxy &ulp) const
Copy assignment operator for StrictlyLowerProxy.
Definition: StrictlyLowerProxy.h:230
#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:116
Header file for the isDefault shim.
Constraint on the data type.
Constraint on the data type.
RawReference get() const
Returning the value of the accessed matrix element.
Definition: StrictlyLowerProxy.h:373
#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:118
bool operator==(const NegativeAccuracy< A > &lhs, const T &rhs)
Equality comparison between a NegativeAccuracy object and a floating point value. ...
Definition: Accuracy.h:249
Header file for the AddReference type trait.
bool operator!=(const NegativeAccuracy< A > &lhs, const T &rhs)
Inequality comparison between a NegativeAccuracy object and a floating point value.
Definition: Accuracy.h:289
MT::ElementType RepresentedType
Type of the represented matrix element.
Definition: StrictlyLowerProxy.h:105
#define BLAZE_CONSTRAINT_MUST_BE_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is not a N-dimensional matrix type...
Definition: Matrix.h:79
StrictlyLowerProxy(MT &matrix, size_t row, size_t column)
Initialization constructor for an StrictlyLowerProxy.
Definition: StrictlyLowerProxy.h:195
ReferenceType value_
Reference to the accessed matrix element.
Definition: StrictlyLowerProxy.h:154