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

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

+ Inheritance diagram for Eigen::internal::BandMatrixBase< Derived >:
+ Collaboration diagram for Eigen::internal::BandMatrixBase< Derived >:

Classes

struct  DiagonalIntReturnType
 

Public Types

enum  {
  Flags = internal::traits<Derived>::Flags , CoeffReadCost = internal::traits<Derived>::CoeffReadCost , RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime , ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime ,
  MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime , MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime , Supers = internal::traits<Derived>::Supers , Subs = internal::traits<Derived>::Subs ,
  Options = internal::traits<Derived>::Options
}
 
typedef internal::traits< Derived >::Scalar Scalar
 
typedef Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTimeDenseMatrixType
 
typedef DenseMatrixType::StorageIndex StorageIndex
 
typedef internal::traits< Derived >::CoefficientsType CoefficientsType
 
typedef EigenBase< Derived > Base
 
typedef Eigen::Index Index
 The interface type of indices.
 
typedef internal::traits< Derived >::StorageKind StorageKind
 

Public Member Functions

Index supers () const
 
Index subs () const
 
const CoefficientsTypecoeffs () const
 
CoefficientsTypecoeffs ()
 
Block< CoefficientsType, Dynamic, 1 > col (Index i)
 
Block< CoefficientsType, 1, SizeAtCompileTimediagonal ()
 
const Block< const CoefficientsType, 1, SizeAtCompileTimediagonal () const
 
template<int N>
DiagonalIntReturnType< N >::Type diagonal ()
 
template<int N>
const DiagonalIntReturnType< N >::Type diagonal () const
 
Block< CoefficientsType, 1, Dynamicdiagonal (Index i)
 
const Block< const CoefficientsType, 1, Dynamicdiagonal (Index i) const
 
template<typename Dest >
void evalTo (Dest &dst) const
 
DenseMatrixType toDenseMatrix () const
 
EIGEN_DEVICE_FUNC Derived & derived ()
 
EIGEN_DEVICE_FUNC const Derived & derived () const
 
EIGEN_DEVICE_FUNC Index rows () const
 
EIGEN_DEVICE_FUNC Index cols () 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 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 Types

enum  { DataRowsAtCompileTime , SizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime,ColsAtCompileTime) }
 

Protected Member Functions

Index diagonalLength (Index i) const
 

Detailed Description

template<typename Derived>
class Eigen::internal::BandMatrixBase< Derived >

Member Typedef Documentation

◆ Base

template<typename Derived >
typedef EigenBase<Derived> Eigen::internal::BandMatrixBase< Derived >::Base

◆ CoefficientsType

template<typename Derived >
typedef internal::traits<Derived>::CoefficientsType Eigen::internal::BandMatrixBase< Derived >::CoefficientsType

◆ DenseMatrixType

template<typename Derived >
typedef Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime> Eigen::internal::BandMatrixBase< Derived >::DenseMatrixType

◆ 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.

◆ Scalar

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

◆ StorageIndex

template<typename Derived >
typedef DenseMatrixType::StorageIndex Eigen::internal::BandMatrixBase< Derived >::StorageIndex

◆ StorageKind

template<typename Derived >
typedef internal::traits<Derived>::StorageKind Eigen::EigenBase< Derived >::StorageKind
inherited

Member Enumeration Documentation

◆ anonymous enum

template<typename Derived >
anonymous enum
Enumerator
Flags 
CoeffReadCost 
RowsAtCompileTime 
ColsAtCompileTime 
MaxRowsAtCompileTime 
MaxColsAtCompileTime 
Supers 
Subs 
Options 
22 {
23 Flags = internal::traits<Derived>::Flags,
24 CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
25 RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
26 ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
27 MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
28 MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
29 Supers = internal::traits<Derived>::Supers,
30 Subs = internal::traits<Derived>::Subs,
31 Options = internal::traits<Derived>::Options
32 };
@ MaxColsAtCompileTime
Definition BandMatrix.h:28
@ RowsAtCompileTime
Definition BandMatrix.h:25
@ Supers
Definition BandMatrix.h:29
@ Flags
Definition BandMatrix.h:23
@ CoeffReadCost
Definition BandMatrix.h:24
@ Subs
Definition BandMatrix.h:30
@ MaxRowsAtCompileTime
Definition BandMatrix.h:27
@ ColsAtCompileTime
Definition BandMatrix.h:26
@ Options
Definition BandMatrix.h:31

◆ anonymous enum

template<typename Derived >
anonymous enum
protected
Enumerator
DataRowsAtCompileTime 
SizeAtCompileTime 
40 {
42 ? 1 + Supers + Subs
43 : Dynamic,
45 };
#define EIGEN_SIZE_MIN_PREFER_DYNAMIC(a, b)
Definition Macros.h:881
@ SizeAtCompileTime
Definition BandMatrix.h:44
@ DataRowsAtCompileTime
Definition BandMatrix.h:41
const int Dynamic
Definition Constants.h:21

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:

◆ coeffs() [1/2]

template<typename Derived >
CoefficientsType & Eigen::internal::BandMatrixBase< Derived >::coeffs ( )
inline
Returns
an expression of the underlying coefficient matrix
63{ return derived().coeffs(); }
EIGEN_DEVICE_FUNC Derived & derived()
Definition EigenBase.h:45

References Eigen::internal::BandMatrixBase< Derived >::derived().

+ Here is the call graph for this function:

◆ coeffs() [2/2]

template<typename Derived >
const CoefficientsType & Eigen::internal::BandMatrixBase< Derived >::coeffs ( ) const
inline
Returns
an expression of the underlying coefficient matrix
60{ return derived().coeffs(); }

References Eigen::internal::BandMatrixBase< Derived >::derived().

Referenced by Eigen::internal::BandMatrixBase< Derived >::col(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), and Eigen::internal::BandMatrixBase< Derived >::diagonal().

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

◆ col()

template<typename Derived >
Block< CoefficientsType, Dynamic, 1 > Eigen::internal::BandMatrixBase< Derived >::col ( Index  i)
inline
Returns
a vector expression of the i -th column, only the meaningful part is returned.
Warning
the internal storage must be column major.
69 {
70 EIGEN_STATIC_ASSERT((Options&RowMajor)==0,THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
71 Index start = 0;
72 Index len = coeffs().rows();
73 if (i<=supers())
74 {
75 start = supers()-i;
76 len = (std::min)(rows(),std::max<Index>(0,coeffs().rows() - (supers()-i)));
77 }
78 else if (i>=rows()-subs())
79 len = std::max<Index>(0,coeffs().rows() - (i + 1 - rows() + subs()));
80 return Block<CoefficientsType,Dynamic,1>(coeffs(), start, i, len, 1);
81 }
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
Definition StaticAssert.h:124
Index subs() const
Definition BandMatrix.h:57
Index supers() const
Definition BandMatrix.h:54
const CoefficientsType & coeffs() const
Definition BandMatrix.h:60
EIGEN_DEVICE_FUNC Index rows() const
Definition EigenBase.h:59
@ RowMajor
Definition Constants.h:322
Eigen::Index Index
The interface type of indices.
Definition EigenBase.h:38

References Eigen::internal::BandMatrixBase< Derived >::coeffs(), EIGEN_STATIC_ASSERT, Eigen::internal::BandMatrixBase< Derived >::Options, Eigen::RowMajor, Eigen::internal::BandMatrixBase< Derived >::rows(), Eigen::internal::BandMatrixBase< Derived >::subs(), and Eigen::internal::BandMatrixBase< Derived >::supers().

+ Here is the call graph for this function:

◆ cols()

template<typename Derived >
EIGEN_DEVICE_FUNC Index Eigen::EigenBase< Derived >::cols ( ) const
inline
Returns
the number of columns.
See also
rows(), ColsAtCompileTime
62{ return derived().cols(); }

Referenced by Eigen::internal::BandMatrixBase< Derived >::diagonal(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), Eigen::internal::BandMatrixBase< Derived >::diagonalLength(), Eigen::internal::BandMatrixBase< Derived >::evalTo(), and Eigen::internal::BandMatrixBase< Derived >::toDenseMatrix().

+ 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); }

◆ derived() [1/2]

template<typename Derived >
EIGEN_DEVICE_FUNC Derived & Eigen::EigenBase< Derived >::derived ( )
inline
Returns
a reference to the derived object
45{ return *static_cast<Derived*>(this); }

Referenced by Eigen::internal::BandMatrixBase< Derived >::coeffs(), Eigen::internal::BandMatrixBase< Derived >::coeffs(), Eigen::internal::BandMatrixBase< Derived >::subs(), and Eigen::internal::BandMatrixBase< Derived >::supers().

+ Here is the caller graph for this function:

◆ derived() [2/2]

template<typename Derived >
EIGEN_DEVICE_FUNC const Derived & Eigen::EigenBase< Derived >::derived ( ) const
inline
Returns
a const reference to the derived object
48{ return *static_cast<const Derived*>(this); }

◆ diagonal() [1/6]

template<typename Derived >
Block< CoefficientsType, 1, SizeAtCompileTime > Eigen::internal::BandMatrixBase< Derived >::diagonal ( )
inline
Returns
a vector expression of the main diagonal
85 { return Block<CoefficientsType,1,SizeAtCompileTime>(coeffs(),supers(),0,1,(std::min)(rows(),cols())); }
EIGEN_DEVICE_FUNC Index cols() const
Definition EigenBase.h:62

References Eigen::internal::BandMatrixBase< Derived >::coeffs(), Eigen::internal::BandMatrixBase< Derived >::cols(), Eigen::internal::BandMatrixBase< Derived >::rows(), and Eigen::internal::BandMatrixBase< Derived >::supers().

Referenced by Eigen::internal::BandMatrixBase< Derived >::evalTo().

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

◆ diagonal() [2/6]

template<typename Derived >
template<int N>
DiagonalIntReturnType< N >::Type Eigen::internal::BandMatrixBase< Derived >::diagonal ( )
inline
Returns
a vector expression of the N -th sub or super diagonal
110 {
111 return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers()-N, (std::max)(0,N), 1, diagonalLength(N));
112 }
Index diagonalLength(Index i) const
Definition BandMatrix.h:154
Block< CoefficientsType, 1, DiagonalSize > BuildType
Definition BandMatrix.h:102

References Eigen::internal::BandMatrixBase< Derived >::coeffs(), Eigen::internal::BandMatrixBase< Derived >::diagonalLength(), and Eigen::internal::BandMatrixBase< Derived >::supers().

+ Here is the call graph for this function:

◆ diagonal() [3/6]

template<typename Derived >
const Block< const CoefficientsType, 1, SizeAtCompileTime > Eigen::internal::BandMatrixBase< Derived >::diagonal ( ) const
inline
Returns
a vector expression of the main diagonal (const version)
89 { return Block<const CoefficientsType,1,SizeAtCompileTime>(coeffs(),supers(),0,1,(std::min)(rows(),cols())); }

References Eigen::internal::BandMatrixBase< Derived >::coeffs(), Eigen::internal::BandMatrixBase< Derived >::cols(), Eigen::internal::BandMatrixBase< Derived >::rows(), and Eigen::internal::BandMatrixBase< Derived >::supers().

+ Here is the call graph for this function:

◆ diagonal() [4/6]

template<typename Derived >
template<int N>
const DiagonalIntReturnType< N >::Type Eigen::internal::BandMatrixBase< Derived >::diagonal ( ) const
inline
Returns
a vector expression of the N -th sub or super diagonal
116 {
117 return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers()-N, (std::max)(0,N), 1, diagonalLength(N));
118 }

References Eigen::internal::BandMatrixBase< Derived >::coeffs(), Eigen::internal::BandMatrixBase< Derived >::diagonalLength(), and Eigen::internal::BandMatrixBase< Derived >::supers().

+ Here is the call graph for this function:

◆ diagonal() [5/6]

template<typename Derived >
Block< CoefficientsType, 1, Dynamic > Eigen::internal::BandMatrixBase< Derived >::diagonal ( Index  i)
inline
Returns
a vector expression of the i -th sub or super diagonal
122 {
123 eigen_assert((i<0 && -i<=subs()) || (i>=0 && i<=supers()));
124 return Block<CoefficientsType,1,Dynamic>(coeffs(), supers()-i, std::max<Index>(0,i), 1, diagonalLength(i));
125 }
#define eigen_assert(x)
Definition Macros.h:579

References Eigen::internal::BandMatrixBase< Derived >::coeffs(), Eigen::internal::BandMatrixBase< Derived >::diagonalLength(), eigen_assert, Eigen::internal::BandMatrixBase< Derived >::subs(), and Eigen::internal::BandMatrixBase< Derived >::supers().

+ Here is the call graph for this function:

◆ diagonal() [6/6]

template<typename Derived >
const Block< const CoefficientsType, 1, Dynamic > Eigen::internal::BandMatrixBase< Derived >::diagonal ( Index  i) const
inline
Returns
a vector expression of the i -th sub or super diagonal
129 {
130 eigen_assert((i<0 && -i<=subs()) || (i>=0 && i<=supers()));
131 return Block<const CoefficientsType,1,Dynamic>(coeffs(), supers()-i, std::max<Index>(0,i), 1, diagonalLength(i));
132 }

References Eigen::internal::BandMatrixBase< Derived >::coeffs(), Eigen::internal::BandMatrixBase< Derived >::diagonalLength(), eigen_assert, Eigen::internal::BandMatrixBase< Derived >::subs(), and Eigen::internal::BandMatrixBase< Derived >::supers().

+ Here is the call graph for this function:

◆ diagonalLength()

template<typename Derived >
Index Eigen::internal::BandMatrixBase< Derived >::diagonalLength ( Index  i) const
inlineprotected
155 { return i<0 ? (std::min)(cols(),rows()+i) : (std::min)(rows(),cols()-i); }
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half() min(const half &a, const half &b)
Definition Half.h:507
STL namespace.

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

Referenced by Eigen::internal::BandMatrixBase< Derived >::diagonal(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), and Eigen::internal::BandMatrixBase< Derived >::diagonal().

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

◆ evalTo()

template<typename Derived >
template<typename Dest >
void Eigen::internal::BandMatrixBase< Derived >::evalTo ( Dest &  dst) const
inline
135 {
136 dst.resize(rows(),cols());
137 dst.setZero();
138 dst.diagonal() = diagonal();
139 for (Index i=1; i<=supers();++i)
140 dst.diagonal(i) = diagonal(i);
141 for (Index i=1; i<=subs();++i)
142 dst.diagonal(-i) = diagonal(-i);
143 }
Block< CoefficientsType, 1, SizeAtCompileTime > diagonal()
Definition BandMatrix.h:84

References Eigen::internal::BandMatrixBase< Derived >::cols(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), Eigen::internal::BandMatrixBase< Derived >::rows(), Eigen::internal::BandMatrixBase< Derived >::subs(), and Eigen::internal::BandMatrixBase< Derived >::supers().

Referenced by Eigen::internal::BandMatrixBase< Derived >::toDenseMatrix().

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

◆ rows()

template<typename Derived >
EIGEN_DEVICE_FUNC Index Eigen::EigenBase< Derived >::rows ( ) const
inline

◆ 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:

◆ subs()

template<typename Derived >
Index Eigen::internal::BandMatrixBase< Derived >::subs ( ) const
inline
Returns
the number of sub diagonals
57{ return derived().subs(); }

References Eigen::internal::BandMatrixBase< Derived >::derived().

Referenced by Eigen::internal::BandMatrixBase< Derived >::col(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), and Eigen::internal::BandMatrixBase< Derived >::evalTo().

+ 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:

◆ supers()

template<typename Derived >
Index Eigen::internal::BandMatrixBase< Derived >::supers ( ) const
inline
Returns
the number of super diagonals
54{ return derived().supers(); }

References Eigen::internal::BandMatrixBase< Derived >::derived().

Referenced by Eigen::internal::BandMatrixBase< Derived >::col(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), Eigen::internal::BandMatrixBase< Derived >::diagonal(), and Eigen::internal::BandMatrixBase< Derived >::evalTo().

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

◆ toDenseMatrix()

template<typename Derived >
DenseMatrixType Eigen::internal::BandMatrixBase< Derived >::toDenseMatrix ( ) const
inline
146 {
147 DenseMatrixType res(rows(),cols());
148 evalTo(res);
149 return res;
150 }
void evalTo(Dest &dst) const
Definition BandMatrix.h:134
Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > DenseMatrixType
Definition BandMatrix.h:34

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

Referenced by Eigen::BDCSVD< _MatrixType >::compute().

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

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