10#ifndef EIGEN_BANDMATRIX_H
11#define EIGEN_BANDMATRIX_H
17template<
typename Derived>
79 len = std::max<Index>(0,
coeffs().rows() - (i + 1 -
rows() +
subs()));
134 template<
typename Dest>
inline void evalTo(Dest& dst)
const
177template<
typename _Scalar,
int _Rows,
int _Cols,
int _Supers,
int _Subs,
int _Options>
198template<
typename _Scalar,
int Rows,
int Cols,
int Supers,
int Subs,
int Options>
236template<
typename _CoefficientsType,
int _Rows,
int _Cols,
int _Supers,
int _Subs,
int _Options>
239template<
typename _CoefficientsType,
int _Rows,
int _Cols,
int _Supers,
int _Subs,
int _Options>
242 typedef typename _CoefficientsType::Scalar
Scalar;
260template<
typename _CoefficientsType,
int _Rows,
int _Cols,
int _Supers,
int _Subs,
int _Options>
311template<
typename Scalar,
int Size,
int Options>
320 {
return Base::template diagonal<1>(); }
322 {
return Base::template diagonal<1>(); }
323 inline typename Base::template DiagonalIntReturnType<-1>
::Type sub()
324 {
return Base::template
diagonal<-1>(); }
325 inline const typename Base::template DiagonalIntReturnType<-1>
::Type sub()
const
326 {
return Base::template
diagonal<-1>(); }
333template<
typename _Scalar,
int _Rows,
int _Cols,
int _Supers,
int _Subs,
int _Options>
340template<
typename _CoefficientsType,
int _Rows,
int _Cols,
int _Supers,
int _Subs,
int _Options>
342 :
public evaluator_traits_base<BandMatrixWrapper<_CoefficientsType,_Rows,_Cols,_Supers,_Subs,_Options> >
#define EIGEN_SIZE_MIN_PREFER_DYNAMIC(a, b)
Definition: Macros.h:1304
#define EIGEN_CONSTEXPR
Definition: Macros.h:797
#define EIGEN_UNUSED_VARIABLE(var)
Definition: Macros.h:1086
#define eigen_assert(x)
Definition: Macros.h:1047
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
Definition: StaticAssert.h:127
Expression of a fixed-size or dynamic-size block.
Definition: Block.h:105
Definition: ForwardDeclarations.h:87
Generic expression where a coefficient-wise unary operator is applied to an expression.
Definition: CwiseUnaryOp.h:56
The matrix class, also used for vectors and row-vectors.
Definition: Matrix.h:180
Definition: BandMatrix.h:19
Index subs() const
Definition: BandMatrix.h:57
internal::traits< Derived >::CoefficientsType CoefficientsType
Definition: BandMatrix.h:36
DenseMatrixType::StorageIndex StorageIndex
Definition: BandMatrix.h:35
Block< CoefficientsType, Dynamic, 1 > col(Index i)
Definition: BandMatrix.h:68
void evalTo(Dest &dst) const
Definition: BandMatrix.h:134
Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > DenseMatrixType
Definition: BandMatrix.h:34
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: EigenBase.h:63
Index supers() const
Definition: BandMatrix.h:54
Index diagonalLength(Index i) const
Definition: BandMatrix.h:154
const Block< const CoefficientsType, 1, Dynamic > diagonal(Index i) const
Definition: BandMatrix.h:128
const DiagonalIntReturnType< N >::Type diagonal() const
Definition: BandMatrix.h:115
const CoefficientsType & coeffs() const
Definition: BandMatrix.h:60
CoefficientsType & coeffs()
Definition: BandMatrix.h:63
@ SizeAtCompileTime
Definition: BandMatrix.h:44
@ DataRowsAtCompileTime
Definition: BandMatrix.h:41
DiagonalIntReturnType< N >::Type diagonal()
Definition: BandMatrix.h:109
DenseMatrixType toDenseMatrix() const
Definition: BandMatrix.h:145
EIGEN_DEVICE_FUNC Derived & derived()
Definition: EigenBase.h:46
Block< CoefficientsType, 1, SizeAtCompileTime > diagonal()
Definition: BandMatrix.h:84
Block< CoefficientsType, 1, Dynamic > diagonal(Index i)
Definition: BandMatrix.h:121
@ 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
EigenBase< Derived > Base
Definition: BandMatrix.h:37
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition: EigenBase.h:60
internal::traits< Derived >::Scalar Scalar
Definition: BandMatrix.h:33
const Block< const CoefficientsType, 1, SizeAtCompileTime > diagonal() const
Definition: BandMatrix.h:88
Represents a rectangular matrix with a banded storage.
Definition: BandMatrix.h:200
internal::variable_if_dynamic< Index, Rows > m_rows
Definition: BandMatrix.h:231
internal::traits< BandMatrix >::Scalar Scalar
Definition: BandMatrix.h:203
internal::traits< BandMatrix >::StorageIndex StorageIndex
Definition: BandMatrix.h:204
const CoefficientsType & coeffs() const
Definition: BandMatrix.h:225
internal::variable_if_dynamic< Index, Supers > m_supers
Definition: BandMatrix.h:232
internal::traits< BandMatrix >::CoefficientsType CoefficientsType
Definition: BandMatrix.h:205
EIGEN_CONSTEXPR Index supers() const
Definition: BandMatrix.h:220
internal::variable_if_dynamic< Index, Subs > m_subs
Definition: BandMatrix.h:233
CoefficientsType & coeffs()
Definition: BandMatrix.h:226
CoefficientsType m_coeffs
Definition: BandMatrix.h:230
EIGEN_CONSTEXPR Index rows() const
Definition: BandMatrix.h:214
EIGEN_CONSTEXPR Index subs() const
Definition: BandMatrix.h:223
BandMatrix(Index rows=Rows, Index cols=Cols, Index supers=Supers, Index subs=Subs)
Definition: BandMatrix.h:207
EIGEN_CONSTEXPR Index cols() const
Definition: BandMatrix.h:217
Definition: BandMatrix.h:262
BandMatrixWrapper(const CoefficientsType &coeffs, Index rows=_Rows, Index cols=_Cols, Index supers=_Supers, Index subs=_Subs)
Definition: BandMatrix.h:269
const CoefficientsType & coeffs() const
Definition: BandMatrix.h:289
EIGEN_CONSTEXPR Index supers() const
Definition: BandMatrix.h:284
internal::traits< BandMatrixWrapper >::StorageIndex StorageIndex
Definition: BandMatrix.h:267
internal::traits< BandMatrixWrapper >::Scalar Scalar
Definition: BandMatrix.h:265
internal::variable_if_dynamic< Index, _Supers > m_supers
Definition: BandMatrix.h:295
internal::variable_if_dynamic< Index, _Rows > m_rows
Definition: BandMatrix.h:294
EIGEN_CONSTEXPR Index rows() const
Definition: BandMatrix.h:278
internal::variable_if_dynamic< Index, _Subs > m_subs
Definition: BandMatrix.h:296
const CoefficientsType & m_coeffs
Definition: BandMatrix.h:293
internal::traits< BandMatrixWrapper >::CoefficientsType CoefficientsType
Definition: BandMatrix.h:266
EIGEN_CONSTEXPR Index cols() const
Definition: BandMatrix.h:281
EIGEN_CONSTEXPR Index subs() const
Definition: BandMatrix.h:287
Represents a tridiagonal matrix with a compact banded storage.
Definition: BandMatrix.h:313
Base::template DiagonalIntReturnType< 1 >::Type super()
Definition: BandMatrix.h:319
const Base::template DiagonalIntReturnType< 1 >::Type super() const
Definition: BandMatrix.h:321
Base::template DiagonalIntReturnType<-1 >::Type sub()
Definition: BandMatrix.h:323
const Base::template DiagonalIntReturnType<-1 >::Type sub() const
Definition: BandMatrix.h:325
TridiagonalMatrix(Index size=Size)
Definition: BandMatrix.h:317
type
Definition: core.h:575
@ SelfAdjoint
Used in BandMatrix and SelfAdjointView to indicate that the matrix is self-adjoint.
Definition: Constants.h:225
@ ColMajor
Storage order is column major (see TopicStorageOrders).
Definition: Constants.h:319
@ RowMajor
Storage order is row major (see TopicStorageOrders).
Definition: Constants.h:321
const unsigned int LvalueBit
Means the expression has a coeffRef() method, i.e.
Definition: Constants.h:144
constexpr common_t< T1, T2 > max(const T1 x, const T2 y) noexcept
Compile-time pairwise maximum function.
Definition: max.hpp:35
constexpr common_t< T1, T2 > min(const T1 x, const T2 y) noexcept
Compile-time pairwise minimum function.
Definition: min.hpp:35
Type
Definition: Constants.h:471
Namespace containing all symbols from the Eigen library.
Definition: MatrixExponential.h:16
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:74
const int Dynamic
This value means that a positive quantity (e.g., a size) is not known at compile-time,...
Definition: Constants.h:22
Definition: Eigen_Colamd.h:50
The type used to identify a dense storage.
Definition: Constants.h:507
Definition: Constants.h:528
Common base class for all classes T such that MatrixBase has an operator=(T) and a constructor Matrix...
Definition: EigenBase.h:30
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: EigenBase.h:63
Eigen::Index Index
The interface type of indices.
Definition: EigenBase.h:39
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index size() const EIGEN_NOEXCEPT
Definition: EigenBase.h:67
EIGEN_DEVICE_FUNC Derived & derived()
Definition: EigenBase.h:46
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition: EigenBase.h:60
Holds information about the various numeric (i.e.
Definition: NumTraits.h:233
EigenBase2EigenBase Kind
Definition: BandMatrix.h:347
Definition: AssignEvaluator.h:817
Definition: BandMatrix.h:91
internal::conditional< Conjugate, CwiseUnaryOp< internal::scalar_conjugate_op< Scalar >, BuildType >, BuildType >::type Type
Definition: BandMatrix.h:105
@ DiagonalSize
Definition: BandMatrix.h:96
@ ActualIndex
Definition: BandMatrix.h:95
@ Conjugate
Definition: BandMatrix.h:94
@ ReturnOpposite
Definition: BandMatrix.h:93
Block< CoefficientsType, 1, DiagonalSize > BuildType
Definition: BandMatrix.h:102
Definition: BandMatrix.h:331
Definition: AssignEvaluator.h:815
BandShape Shape
Definition: BandMatrix.h:337
BandShape Shape
Definition: BandMatrix.h:344
Definition: CoreEvaluators.h:71
Definition: CoreEvaluators.h:80
Matrix< Scalar, DataRowsAtCompileTime, ColsAtCompileTime, int(Options) &int(RowMajor) ? RowMajor :ColMajor > CoefficientsType
Definition: BandMatrix.h:195
_Scalar Scalar
Definition: BandMatrix.h:180
Eigen::Index StorageIndex
Definition: BandMatrix.h:182
Dense StorageKind
Definition: BandMatrix.h:181
_CoefficientsType::StorageKind StorageKind
Definition: BandMatrix.h:243
_CoefficientsType::Scalar Scalar
Definition: BandMatrix.h:242
_CoefficientsType CoefficientsType
Definition: BandMatrix.h:257
_CoefficientsType::StorageIndex StorageIndex
Definition: BandMatrix.h:244
Definition: ForwardDeclarations.h:17