35 #ifndef _BLAZE_MATH_ADAPTORS_UNIUPPERMATRIX_UPPERPROXY_H_
36 #define _BLAZE_MATH_ADAPTORS_UNIUPPERMATRIX_UPPERPROXY_H_
93 template<
typename MT >
128 template<
typename T >
inline const UniUpperProxy& operator+=(
const T& value )
const;
129 template<
typename T >
inline const UniUpperProxy& operator-=(
const T& value )
const;
130 template<
typename T >
inline const UniUpperProxy& operator*=(
const T& value )
const;
131 template<
typename T >
inline const UniUpperProxy& operator/=(
const T& value )
const;
140 inline RawReference
get()
const;
195 template<
typename MT >
197 : value_ ( matrix( row, column ) )
209 template<
typename MT >
211 : value_ ( uup.value_ )
213 , column_( uup.column_ )
232 template<
typename MT >
252 template<
typename MT >
253 template<
typename T >
257 throw std::invalid_argument(
"Invalid assignment to diagonal or lower matrix element" );
276 template<
typename MT >
277 template<
typename T >
281 throw std::invalid_argument(
"Invalid assignment to diagonal or lower matrix element" );
300 template<
typename MT >
301 template<
typename T >
305 throw std::invalid_argument(
"Invalid assignment to diagonal or lower matrix element" );
324 template<
typename MT >
325 template<
typename T >
329 throw std::invalid_argument(
"Invalid assignment to diagonal or lower matrix element" );
348 template<
typename MT >
349 template<
typename T >
353 throw std::invalid_argument(
"Invalid assignment to diagonal or lower matrix element" );
375 template<
typename MT >
388 template<
typename MT >
401 template<
typename MT >
414 template<
typename MT >
417 return column_ <= row_;
435 template<
typename MT >
454 template<
typename MT1,
typename MT2 >
457 template<
typename MT,
typename T >
460 template<
typename T,
typename MT >
463 template<
typename MT1,
typename MT2 >
466 template<
typename MT,
typename T >
469 template<
typename T,
typename MT >
472 template<
typename MT1,
typename MT2 >
473 inline bool operator<( const UniUpperProxy<MT1>& lhs,
const UniUpperProxy<MT2>& rhs );
475 template<
typename MT,
typename T >
476 inline bool operator<( const UniUpperProxy<MT>& lhs,
const T& rhs );
478 template<
typename T,
typename MT >
479 inline bool operator<( const T& lhs, const UniUpperProxy<MT>& rhs );
481 template<
typename MT1,
typename MT2 >
484 template<
typename MT,
typename T >
487 template<
typename T,
typename MT >
490 template<
typename MT1,
typename MT2 >
491 inline bool operator<=( const UniUpperProxy<MT1>& lhs,
const UniUpperProxy<MT2>& rhs );
493 template<
typename MT,
typename T >
494 inline bool operator<=( const UniUpperProxy<MT>& lhs,
const T& rhs );
496 template<
typename T,
typename MT >
497 inline bool operator<=( const T& lhs, const UniUpperProxy<MT>& rhs );
499 template<
typename MT1,
typename MT2 >
502 template<
typename MT,
typename T >
505 template<
typename T,
typename MT >
508 template<
typename MT >
509 inline std::ostream& operator<<( std::ostream& os, const UniUpperProxy<MT>& proxy );
522 template<
typename MT1,
typename MT2 >
525 return ( lhs.
get() == rhs.
get() );
538 template<
typename MT,
typename T >
541 return ( lhs.
get() == rhs );
554 template<
typename T,
typename MT >
557 return ( lhs == rhs.
get() );
570 template<
typename MT1,
typename MT2 >
573 return ( lhs.
get() != rhs.
get() );
586 template<
typename MT,
typename T >
589 return ( lhs.
get() != rhs );
602 template<
typename T,
typename MT >
605 return ( lhs != rhs.
get() );
618 template<
typename MT1,
typename MT2 >
621 return ( lhs.get() < rhs.get() );
634 template<
typename MT,
typename T >
635 inline bool operator<( const UniUpperProxy<MT>& lhs,
const T& rhs )
637 return ( lhs.get() < rhs );
650 template<
typename T,
typename MT >
651 inline bool operator<( const T& lhs, const UniUpperProxy<MT>& rhs )
653 return ( lhs < rhs.get() );
666 template<
typename MT1,
typename MT2 >
669 return ( lhs.
get() > rhs.
get() );
682 template<
typename MT,
typename T >
685 return ( lhs.
get() > rhs );
698 template<
typename T,
typename MT >
701 return ( lhs > rhs.
get() );
714 template<
typename MT1,
typename MT2 >
717 return ( lhs.get() <= rhs.get() );
730 template<
typename MT,
typename T >
731 inline bool operator<=( const UniUpperProxy<MT>& lhs,
const T& rhs )
733 return ( lhs.get() <= rhs );
746 template<
typename T,
typename MT >
747 inline bool operator<=( const T& lhs, const UniUpperProxy<MT>& rhs )
749 return ( lhs <= rhs.get() );
762 template<
typename MT1,
typename MT2 >
765 return ( lhs.
get() >= rhs.
get() );
778 template<
typename MT,
typename T >
781 return ( lhs.
get() >= rhs );
794 template<
typename T,
typename MT >
797 return ( lhs >= rhs.
get() );
810 template<
typename MT >
811 inline std::ostream& operator<<( std::ostream& os, const UniUpperProxy<MT>& proxy )
813 return os << proxy.get();
829 template<
typename MT >
830 inline void reset(
const UniUpperProxy<MT>& proxy );
832 template<
typename MT >
833 inline void clear(
const UniUpperProxy<MT>& proxy );
835 template<
typename MT >
836 inline bool isDefault(
const UniUpperProxy<MT>& proxy );
851 template<
typename MT >
872 template<
typename MT >
893 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
size_t row_
Row index of the accessed matrix element.
Definition: UniUpperProxy.h:157
Access proxy for upper unitriangular matrices.The UniUpperProxy provides controlled access to the ele...
Definition: UniUpperProxy.h:94
Header file for the AddConst type trait.
Constraint on the data type.
MT::ElementType RepresentedType
Type of the represented matrix element.
Definition: UniUpperProxy.h:105
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
size_t columnIndex() const
Returns the column index of the represented matrix element.
Definition: UniUpperProxy.h:389
AddReference< ReferenceType >::Type RawReference
Reference to the represented element.
Definition: UniUpperProxy.h:108
Constraint on the data type.
size_t column_
Column index of the accessed matrix element.
Definition: UniUpperProxy.h:158
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:821
RawReference get() const
Returning the value of the accessed matrix element.
Definition: UniUpperProxy.h:402
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
size_t rowIndex() const
Returns the row index of the represented matrix element.
Definition: UniUpperProxy.h:376
ReferenceType value_
Reference to the accessed matrix element.
Definition: UniUpperProxy.h:156
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
Constraint on the data type.
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
const UniUpperProxy & operator=(const UniUpperProxy &uup) const
Copy assignment operator for UniUpperProxy.
Definition: UniUpperProxy.h:233
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:841
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
UniUpperProxy(MT &matrix, size_t row, size_t column)
Initialization constructor for a UniUpperProxy.
Definition: UniUpperProxy.h:196
Header file for the Proxy class.
Constraint on the data type.
Constraint on the data type.
#define BLAZE_CONSTRAINT_MUST_BE_NUMERIC_TYPE(T)
Constraint on the data type.In case the given data type T is not a numeric (integral or floating poin...
Definition: Numeric.h:79
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
#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.
#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
AddConst< typename MT::Reference >::Type ReferenceType
Reference type of the underlying matrix type.
Definition: UniUpperProxy.h:99
bool isRestricted() const
Returns whether the proxy represents a restricted matrix element..
Definition: UniUpperProxy.h:415
#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