Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Eigen::TriangularBase< Derived > Class Template Reference

Base class for triangular part in a matrix. More...

#include <src/eigen/Eigen/src/Core/TriangularMatrix.h>

+ Inheritance diagram for Eigen::TriangularBase< Derived >:
+ Collaboration diagram for Eigen::TriangularBase< Derived >:

Public Types

enum  {
  Mode = internal::traits<Derived>::Mode , RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime , ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime , MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime ,
  MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime , SizeAtCompileTime , MaxSizeAtCompileTime
}
 
typedef internal::traits< Derived >::Scalar Scalar
 
typedef internal::traits< Derived >::StorageKind StorageKind
 
typedef internal::traits< Derived >::StorageIndex StorageIndex
 
typedef internal::traits< Derived >::FullMatrixType DenseMatrixType
 
typedef DenseMatrixType DenseType
 
typedef Derived constNested
 
typedef Eigen::Index Index
 The interface type of indices.
 

Public Member Functions

EIGEN_DEVICE_FUNC TriangularBase ()
 
EIGEN_DEVICE_FUNC Index rows () const
 
EIGEN_DEVICE_FUNC Index cols () const
 
EIGEN_DEVICE_FUNC Index outerStride () const
 
EIGEN_DEVICE_FUNC Index innerStride () const
 
void resize (Index rows, Index cols)
 
EIGEN_DEVICE_FUNC Scalar coeff (Index row, Index col) const
 
EIGEN_DEVICE_FUNC ScalarcoeffRef (Index row, Index col)
 
template<typename Other >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void copyCoeff (Index row, Index col, Other &other)
 
EIGEN_DEVICE_FUNC Scalar operator() (Index row, Index col) const
 
EIGEN_DEVICE_FUNC Scalaroperator() (Index row, Index col)
 
EIGEN_DEVICE_FUNC const Derived & derived () const
 
EIGEN_DEVICE_FUNC Derived & derived ()
 
template<typename DenseDerived >
EIGEN_DEVICE_FUNC void evalTo (MatrixBase< DenseDerived > &other) const
 
template<typename DenseDerived >
EIGEN_DEVICE_FUNC void evalToLazy (MatrixBase< DenseDerived > &other) const
 
EIGEN_DEVICE_FUNC DenseMatrixType toDenseMatrix () const
 
template<typename DenseDerived >
void evalTo (MatrixBase< DenseDerived > &other) const
 
template<typename DenseDerived >
void evalToLazy (MatrixBase< DenseDerived > &other) const
 
EIGEN_DEVICE_FUNC Derived & const_cast_derived () const
 
EIGEN_DEVICE_FUNC const Derived & const_derived () const
 
EIGEN_DEVICE_FUNC Index size () const
 
template<typename Dest >
EIGEN_DEVICE_FUNC void evalTo (Dest &dst) const
 
template<typename Dest >
EIGEN_DEVICE_FUNC void addTo (Dest &dst) const
 
template<typename Dest >
EIGEN_DEVICE_FUNC void subTo (Dest &dst) const
 
template<typename Dest >
EIGEN_DEVICE_FUNC void applyThisOnTheRight (Dest &dst) const
 
template<typename Dest >
EIGEN_DEVICE_FUNC void applyThisOnTheLeft (Dest &dst) const
 

Protected Member Functions

void check_coordinates (Index row, Index col) const
 
void check_coordinates_internal (Index, Index) const
 

Detailed Description

template<typename Derived>
class Eigen::TriangularBase< Derived >

Base class for triangular part in a matrix.

Member Typedef Documentation

◆ DenseMatrixType

template<typename Derived >
typedef internal::traits<Derived>::FullMatrixType Eigen::TriangularBase< Derived >::DenseMatrixType

◆ DenseType

template<typename Derived >
typedef DenseMatrixType Eigen::TriangularBase< Derived >::DenseType

◆ Index

template<typename Derived >
typedef Eigen::Index Eigen::EigenBase< Derived >::Index
inherited

The interface type of indices.

To change this, #define the preprocessor symbol EIGEN_DEFAULT_DENSE_INDEX_TYPE.

See also
StorageIndex, TopicPreprocessorDirectives.

◆ Nested

template<typename Derived >
typedef Derived const& Eigen::TriangularBase< Derived >::Nested

◆ Scalar

template<typename Derived >
typedef internal::traits<Derived>::Scalar Eigen::TriangularBase< Derived >::Scalar

◆ StorageIndex

template<typename Derived >
typedef internal::traits<Derived>::StorageIndex Eigen::TriangularBase< Derived >::StorageIndex

◆ StorageKind

template<typename Derived >
typedef internal::traits<Derived>::StorageKind Eigen::TriangularBase< Derived >::StorageKind

Member Enumeration Documentation

◆ anonymous enum

template<typename Derived >
anonymous enum
Enumerator
Mode 
RowsAtCompileTime 
ColsAtCompileTime 
MaxRowsAtCompileTime 
MaxColsAtCompileTime 
SizeAtCompileTime 

This is equal to the number of coefficients, i.e. the number of rows times the number of columns, or to Dynamic if this is not known at compile-time.

See also
RowsAtCompileTime, ColsAtCompileTime
MaxSizeAtCompileTime 
31 {
32 Mode = internal::traits<Derived>::Mode,
33 RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
34 ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
35 MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
36 MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
37
38 SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
39 internal::traits<Derived>::ColsAtCompileTime>::ret),
44 MaxSizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::MaxRowsAtCompileTime,
45 internal::traits<Derived>::MaxColsAtCompileTime>::ret)
46
47 };
@ RowsAtCompileTime
Definition TriangularMatrix.h:33
@ SizeAtCompileTime
Definition TriangularMatrix.h:38
@ MaxColsAtCompileTime
Definition TriangularMatrix.h:36
@ MaxRowsAtCompileTime
Definition TriangularMatrix.h:35
@ Mode
Definition TriangularMatrix.h:32
@ MaxSizeAtCompileTime
Definition TriangularMatrix.h:44
@ ColsAtCompileTime
Definition TriangularMatrix.h:34

Constructor & Destructor Documentation

◆ TriangularBase()

template<typename Derived >
EIGEN_DEVICE_FUNC Eigen::TriangularBase< Derived >::TriangularBase ( )
inline
#define eigen_assert(x)
Definition Macros.h:579
@ UnitDiag
Definition Constants.h:208
@ ZeroDiag
Definition Constants.h:210

References eigen_assert, Eigen::TriangularBase< Derived >::Mode, Eigen::UnitDiag, and Eigen::ZeroDiag.

Member Function Documentation

◆ addTo()

template<typename Derived >
template<typename Dest >
EIGEN_DEVICE_FUNC void Eigen::EigenBase< Derived >::addTo ( Dest &  dst) const
inlineinherited
78 {
79 // This is the default implementation,
80 // derived class can reimplement it in a more optimized way.
81 typename Dest::PlainObject res(rows(),cols());
82 evalTo(res);
83 dst += res;
84 }
EIGEN_DEVICE_FUNC Index cols() const
Definition EigenBase.h:62
EIGEN_DEVICE_FUNC Index rows() const
Definition EigenBase.h:59
EIGEN_DEVICE_FUNC void evalTo(Dest &dst) const
Definition EigenBase.h:71

◆ applyThisOnTheLeft()

template<typename Derived >
template<typename Dest >
EIGEN_DEVICE_FUNC void Eigen::EigenBase< Derived >::applyThisOnTheLeft ( Dest &  dst) const
inlineinherited
110 {
111 // This is the default implementation,
112 // derived class can reimplement it in a more optimized way.
113 dst = this->derived() * dst;
114 }
EIGEN_DEVICE_FUNC Derived & derived()
Definition EigenBase.h:45

References Eigen::EigenBase< Derived >::derived().

+ Here is the call graph for this function:

◆ applyThisOnTheRight()

template<typename Derived >
template<typename Dest >
EIGEN_DEVICE_FUNC void Eigen::EigenBase< Derived >::applyThisOnTheRight ( Dest &  dst) const
inlineinherited
101 {
102 // This is the default implementation,
103 // derived class can reimplement it in a more optimized way.
104 dst = dst * this->derived();
105 }

References Eigen::EigenBase< Derived >::derived().

+ Here is the call graph for this function:

◆ check_coordinates()

template<typename Derived >
void Eigen::TriangularBase< Derived >::check_coordinates ( Index  row,
Index  col 
) const
inlineprotected
127 {
130 eigen_assert(col>=0 && col<cols() && row>=0 && row<rows());
131 const int mode = int(Mode) & ~SelfAdjoint;
133 eigen_assert((mode==Upper && col>=row)
134 || (mode==Lower && col<=row)
135 || ((mode==StrictlyUpper || mode==UnitUpper) && col>row)
136 || ((mode==StrictlyLower || mode==UnitLower) && col<row));
137 }
EIGEN_DEVICE_FUNC RowXpr row(Index i)
This is the const version of row(). *‍/.
Definition BlockMethods.h:859
EIGEN_DEVICE_FUNC ColXpr col(Index i)
This is the const version of col().
Definition BlockMethods.h:838
#define EIGEN_ONLY_USED_FOR_DEBUG(x)
Definition Macros.h:591
EIGEN_DEVICE_FUNC Index rows() const
Definition TriangularMatrix.h:59
EIGEN_DEVICE_FUNC Index cols() const
Definition TriangularMatrix.h:61
@ StrictlyLower
Definition Constants.h:216
@ StrictlyUpper
Definition Constants.h:218
@ UnitLower
Definition Constants.h:212
@ UnitUpper
Definition Constants.h:214
@ Lower
Definition Constants.h:204
@ Upper
Definition Constants.h:206
IGL_INLINE void mode(const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &X, const int d, Eigen::Matrix< T, Eigen::Dynamic, 1 > &M)
Definition mode.cpp:14

References col(), Eigen::TriangularBase< Derived >::cols(), eigen_assert, EIGEN_ONLY_USED_FOR_DEBUG, Eigen::Lower, Eigen::TriangularBase< Derived >::Mode, row(), Eigen::TriangularBase< Derived >::rows(), Eigen::StrictlyLower, Eigen::StrictlyUpper, Eigen::UnitLower, Eigen::UnitUpper, and Eigen::Upper.

Referenced by Eigen::TriangularBase< Derived >::operator()(), and Eigen::TriangularBase< Derived >::operator()().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ check_coordinates_internal()

template<typename Derived >
void Eigen::TriangularBase< Derived >::check_coordinates_internal ( Index  ,
Index   
) const
inlineprotected
145{}

Referenced by Eigen::SelfAdjointView< _MatrixType, UpLo >::coeff(), and Eigen::SelfAdjointView< _MatrixType, UpLo >::coeffRef().

+ Here is the caller graph for this function:

◆ coeff()

template<typename Derived >
EIGEN_DEVICE_FUNC Scalar Eigen::TriangularBase< Derived >::coeff ( Index  row,
Index  col 
) const
inline
76{ return derived().coeff(row,col); }
EIGEN_DEVICE_FUNC const Derived & derived() const
Definition TriangularMatrix.h:104

References col(), Eigen::TriangularBase< Derived >::derived(), and row().

Referenced by Eigen::TriangularBase< Derived >::operator()().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coeffRef()

template<typename Derived >
EIGEN_DEVICE_FUNC Scalar & Eigen::TriangularBase< Derived >::coeffRef ( Index  row,
Index  col 
)
inline
78{ return derived().coeffRef(row,col); }

References col(), Eigen::TriangularBase< Derived >::derived(), and row().

Referenced by Eigen::TriangularBase< Derived >::operator()().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cols()

template<typename Derived >
EIGEN_DEVICE_FUNC Index Eigen::TriangularBase< Derived >::cols ( ) const
inline
61{ return derived().cols(); }

References Eigen::TriangularBase< Derived >::derived().

Referenced by Eigen::TriangularBase< Derived >::check_coordinates(), Eigen::TriangularBase< Derived >::resize(), and Eigen::TriangularBase< Derived >::toDenseMatrix().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ const_cast_derived()

template<typename Derived >
EIGEN_DEVICE_FUNC Derived & Eigen::EigenBase< Derived >::const_cast_derived ( ) const
inlineinherited
52 { return *static_cast<Derived*>(const_cast<EigenBase*>(this)); }

Referenced by Eigen::TriangularViewImpl< _MatrixType, _Mode, Dense >::swap().

+ Here is the caller graph for this function:

◆ const_derived()

template<typename Derived >
EIGEN_DEVICE_FUNC const Derived & Eigen::EigenBase< Derived >::const_derived ( ) const
inlineinherited
55 { return *static_cast<const Derived*>(this); }

◆ copyCoeff()

template<typename Derived >
template<typename Other >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void Eigen::TriangularBase< Derived >::copyCoeff ( Index  row,
Index  col,
Other &  other 
)
inline
See also
MatrixBase::copyCoeff(row,col)
85 {
86 derived().coeffRef(row, col) = other.coeff(row, col);
87 }

References col(), Eigen::TriangularBase< Derived >::derived(), and row().

+ Here is the call graph for this function:

◆ derived() [1/2]

template<typename Derived >
EIGEN_DEVICE_FUNC Derived & Eigen::TriangularBase< Derived >::derived ( )
inline
106{ return *static_cast<Derived*>(this); }

◆ derived() [2/2]

template<typename Derived >
EIGEN_DEVICE_FUNC const Derived & Eigen::TriangularBase< Derived >::derived ( ) const
inline
104{ return *static_cast<const Derived*>(this); }

Referenced by Eigen::TriangularBase< Derived >::coeff(), Eigen::TriangularBase< Derived >::coeffRef(), Eigen::TriangularBase< Derived >::cols(), Eigen::TriangularBase< Derived >::copyCoeff(), Eigen::TriangularBase< Derived >::innerStride(), Eigen::TriangularBase< Derived >::outerStride(), and Eigen::TriangularBase< Derived >::rows().

+ Here is the caller graph for this function:

◆ evalTo() [1/3]

template<typename Derived >
template<typename Dest >
EIGEN_DEVICE_FUNC void Eigen::EigenBase< Derived >::evalTo ( Dest &  dst) const
inlineinherited
72 { derived().evalTo(dst); }

Referenced by Eigen::EigenBase< Derived >::subTo().

+ Here is the caller graph for this function:

◆ evalTo() [2/3]

template<typename Derived >
template<typename DenseDerived >
EIGEN_DEVICE_FUNC void Eigen::TriangularBase< Derived >::evalTo ( MatrixBase< DenseDerived > &  other) const

◆ evalTo() [3/3]

template<typename Derived >
template<typename DenseDerived >
void Eigen::TriangularBase< Derived >::evalTo ( MatrixBase< DenseDerived > &  other) const

Assigns a triangular or selfadjoint matrix to a dense matrix. If the matrix is triangular, the opposite part is set to zero.

602{
603 evalToLazy(other.derived());
604}
EIGEN_DEVICE_FUNC void evalToLazy(MatrixBase< DenseDerived > &other) const

◆ evalToLazy() [1/2]

template<typename Derived >
template<typename DenseDerived >
EIGEN_DEVICE_FUNC void Eigen::TriangularBase< Derived >::evalToLazy ( MatrixBase< DenseDerived > &  other) const

Referenced by Eigen::TriangularBase< Derived >::toDenseMatrix().

+ Here is the caller graph for this function:

◆ evalToLazy() [2/2]

template<typename Derived >
template<typename DenseDerived >
void Eigen::TriangularBase< Derived >::evalToLazy ( MatrixBase< DenseDerived > &  other) const

Assigns a triangular or selfadjoint matrix to a dense matrix. If the matrix is triangular, the opposite part is set to zero.

934{
935 other.derived().resize(this->rows(), this->cols());
936 internal::call_triangular_assignment_loop<Derived::Mode,(Derived::Mode&SelfAdjoint)==0 /* SetOpposite */>(other.derived(), derived().nestedExpression());
937}
@ SelfAdjoint
Definition Constants.h:220
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void call_triangular_assignment_loop(DstXprType &dst, const SrcXprType &src, const Functor &func)
Definition TriangularMatrix.h:784

References Eigen::internal::call_triangular_assignment_loop(), Eigen::TriangularView< _MatrixType, _Mode >::cols(), Eigen::DenseBase< Derived >::resize(), Eigen::TriangularView< _MatrixType, _Mode >::rows(), and Eigen::SelfAdjoint.

+ Here is the call graph for this function:

◆ innerStride()

template<typename Derived >
EIGEN_DEVICE_FUNC Index Eigen::TriangularBase< Derived >::innerStride ( ) const
inline
65{ return derived().innerStride(); }

References Eigen::TriangularBase< Derived >::derived().

+ Here is the call graph for this function:

◆ operator()() [1/2]

template<typename Derived >
EIGEN_DEVICE_FUNC Scalar & Eigen::TriangularBase< Derived >::operator() ( Index  row,
Index  col 
)
inline
97 {
99 return coeffRef(row,col);
100 }
EIGEN_DEVICE_FUNC Scalar & coeffRef(Index row, Index col)
Definition TriangularMatrix.h:78
void check_coordinates(Index row, Index col) const
Definition TriangularMatrix.h:126

References Eigen::TriangularBase< Derived >::check_coordinates(), Eigen::TriangularBase< Derived >::coeffRef(), col(), and row().

+ Here is the call graph for this function:

◆ operator()() [2/2]

template<typename Derived >
EIGEN_DEVICE_FUNC Scalar Eigen::TriangularBase< Derived >::operator() ( Index  row,
Index  col 
) const
inline
91 {
93 return coeff(row,col);
94 }
EIGEN_DEVICE_FUNC Scalar coeff(Index row, Index col) const
Definition TriangularMatrix.h:76

References Eigen::TriangularBase< Derived >::check_coordinates(), Eigen::TriangularBase< Derived >::coeff(), col(), and row().

+ Here is the call graph for this function:

◆ outerStride()

template<typename Derived >
EIGEN_DEVICE_FUNC Index Eigen::TriangularBase< Derived >::outerStride ( ) const
inline
63{ return derived().outerStride(); }

References Eigen::TriangularBase< Derived >::derived().

+ Here is the call graph for this function:

◆ resize()

template<typename Derived >
void Eigen::TriangularBase< Derived >::resize ( Index  rows,
Index  cols 
)
inline
69 {
72 eigen_assert(rows==this->rows() && cols==this->cols());
73 }
#define EIGEN_UNUSED_VARIABLE(var)
Definition Macros.h:618

References Eigen::TriangularBase< Derived >::cols(), eigen_assert, EIGEN_UNUSED_VARIABLE, and Eigen::TriangularBase< Derived >::rows().

+ Here is the call graph for this function:

◆ rows()

template<typename Derived >
EIGEN_DEVICE_FUNC Index Eigen::TriangularBase< Derived >::rows ( ) const
inline
59{ return derived().rows(); }

References Eigen::TriangularBase< Derived >::derived().

Referenced by Eigen::TriangularBase< Derived >::check_coordinates(), Eigen::TriangularBase< Derived >::resize(), and Eigen::TriangularBase< Derived >::toDenseMatrix().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ size()

template<typename Derived >
EIGEN_DEVICE_FUNC Index Eigen::EigenBase< Derived >::size ( ) const
inlineinherited
Returns
the number of coefficients, which is rows()*cols().
See also
rows(), cols(), SizeAtCompileTime.
66{ return rows() * cols(); }

References Eigen::EigenBase< Derived >::cols(), and Eigen::EigenBase< Derived >::rows().

Referenced by Eigen::PlainObjectBase< Derived >::_resize_to_match(), Eigen::DiagonalMatrix< _Scalar, SizeAtCompileTime, MaxSizeAtCompileTime >::resize(), Eigen::DiagonalMatrix< _Scalar, SizeAtCompileTime, MaxSizeAtCompileTime >::setIdentity(), and Eigen::DiagonalMatrix< _Scalar, SizeAtCompileTime, MaxSizeAtCompileTime >::setZero().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ subTo()

template<typename Derived >
template<typename Dest >
EIGEN_DEVICE_FUNC void Eigen::EigenBase< Derived >::subTo ( Dest &  dst) const
inlineinherited
90 {
91 // This is the default implementation,
92 // derived class can reimplement it in a more optimized way.
93 typename Dest::PlainObject res(rows(),cols());
94 evalTo(res);
95 dst -= res;
96 }

References Eigen::EigenBase< Derived >::cols(), Eigen::EigenBase< Derived >::evalTo(), and Eigen::EigenBase< Derived >::rows().

+ Here is the call graph for this function:

◆ toDenseMatrix()

template<typename Derived >
EIGEN_DEVICE_FUNC DenseMatrixType Eigen::TriangularBase< Derived >::toDenseMatrix ( ) const
inline
118 {
119 DenseMatrixType res(rows(), cols());
120 evalToLazy(res);
121 return res;
122 }
internal::traits< Derived >::FullMatrixType DenseMatrixType
Definition TriangularMatrix.h:51

References Eigen::TriangularBase< Derived >::cols(), Eigen::TriangularBase< Derived >::evalToLazy(), and Eigen::TriangularBase< Derived >::rows().

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: