10 #ifndef EIGEN_BANDMATRIX_H
11 #define EIGEN_BANDMATRIX_H
20 template <
typename Derived>
102 typedef std::conditional_t<Conjugate, CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>,
BuildType>,
BuildType>
131 template <
typename Dest>
171 template <
typename Scalar_,
int Rows_,
int Cols_,
int Supers_,
int Subs_,
int Options_>
192 template <
typename Scalar_,
int Rows,
int Cols,
int Supers,
int Subs,
int Options>
224 template <
typename CoefficientsType_,
int Rows_,
int Cols_,
int Supers_,
int Subs_,
int Options_>
227 template <
typename CoefficientsType_,
int Rows_,
int Cols_,
int Supers_,
int Subs_,
int Options_>
247 template <
typename CoefficientsType_,
int Rows_,
int Cols_,
int Supers_,
int Subs_,
int Options_>
249 :
public BandMatrixBase<BandMatrixWrapper<CoefficientsType_, Rows_, Cols_, Supers_, Subs_, Options_> > {
295 template <
typename Scalar,
int Size,
int Options>
305 return Base::template diagonal<1>();
309 return Base::template
diagonal<-1>();
317 template <
typename Scalar_,
int Rows_,
int Cols_,
int Supers_,
int Subs_,
int Options_>
323 template <
typename CoefficientsType_,
int Rows_,
int Cols_,
int Supers_,
int Subs_,
int Options_>
325 :
public evaluator_traits_base<BandMatrixWrapper<CoefficientsType_, Rows_, Cols_, Supers_, Subs_, Options_> > {
int i
Definition: BiCGSTAB_step_by_step.cpp:9
#define EIGEN_CONSTEXPR
Definition: Macros.h:758
#define EIGEN_UNUSED_VARIABLE(var)
Definition: Macros.h:966
#define eigen_assert(x)
Definition: Macros.h:910
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition: PartialRedux_count.cpp:3
#define EIGEN_STATIC_ASSERT(X, MSG)
Definition: StaticAssert.h:26
SCALAR Scalar
Definition: bench_gemm.cpp:45
Expression of a fixed-size or dynamic-size block.
Definition: Block.h:110
Definition: ForwardDeclarations.h:102
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
Definition: BandMatrix.h:21
Index subs() const
Definition: BandMatrix.h:55
internal::traits< Derived >::CoefficientsType CoefficientsType
Definition: BandMatrix.h:37
constexpr EIGEN_DEVICE_FUNC Derived & derived()
Definition: EigenBase.h:49
DiagonalIntReturnType< N >::Type diagonal()
Definition: BandMatrix.h:108
DenseMatrixType::StorageIndex StorageIndex
Definition: BandMatrix.h:36
@ MaxColsAtCompileTime
Definition: BandMatrix.h:29
@ RowsAtCompileTime
Definition: BandMatrix.h:26
@ Supers
Definition: BandMatrix.h:30
@ CoeffReadCost
Definition: BandMatrix.h:25
@ Subs
Definition: BandMatrix.h:31
@ MaxRowsAtCompileTime
Definition: BandMatrix.h:28
@ ColsAtCompileTime
Definition: BandMatrix.h:27
@ Options
Definition: BandMatrix.h:32
Block< CoefficientsType, 1, Dynamic > diagonal(Index i)
Definition: BandMatrix.h:119
void evalTo(Dest &dst) const
Definition: BandMatrix.h:132
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: EigenBase.h:61
const Block< const CoefficientsType, 1, Dynamic > diagonal(Index i) const
Definition: BandMatrix.h:125
Index supers() const
Definition: BandMatrix.h:52
Index diagonalLength(Index i) const
Definition: BandMatrix.h:147
@ SizeAtCompileTime
Definition: BandMatrix.h:43
@ DataRowsAtCompileTime
Definition: BandMatrix.h:42
Block< CoefficientsType, Dynamic, 1 > col(Index i)
Definition: BandMatrix.h:66
const Block< const CoefficientsType, 1, SizeAtCompileTime > diagonal() const
Definition: BandMatrix.h:84
Block< CoefficientsType, 1, SizeAtCompileTime > diagonal()
Definition: BandMatrix.h:79
const DiagonalIntReturnType< N >::Type diagonal() const
Definition: BandMatrix.h:114
DenseMatrixType toDenseMatrix() const
Definition: BandMatrix.h:140
CoefficientsType & coeffs()
Definition: BandMatrix.h:61
const CoefficientsType & coeffs() const
Definition: BandMatrix.h:58
Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > DenseMatrixType
Definition: BandMatrix.h:35
EigenBase< Derived > Base
Definition: BandMatrix.h:38
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition: EigenBase.h:59
internal::traits< Derived >::Scalar Scalar
Definition: BandMatrix.h:34
Definition: BandMatrix.h:249
internal::traits< BandMatrixWrapper >::StorageIndex StorageIndex
Definition: BandMatrix.h:253
BandMatrixWrapper(const CoefficientsType &coeffs, Index rows=Rows_, Index cols=Cols_, Index supers=Supers_, Index subs=Subs_)
Definition: BandMatrix.h:255
internal::variable_if_dynamic< Index, Supers_ > m_supers
Definition: BandMatrix.h:279
EIGEN_CONSTEXPR Index subs() const
Definition: BandMatrix.h:272
EIGEN_CONSTEXPR Index supers() const
Definition: BandMatrix.h:269
internal::variable_if_dynamic< Index, Rows_ > m_rows
Definition: BandMatrix.h:278
internal::traits< BandMatrixWrapper >::Scalar Scalar
Definition: BandMatrix.h:251
const CoefficientsType & m_coeffs
Definition: BandMatrix.h:277
const CoefficientsType & coeffs() const
Definition: BandMatrix.h:274
EIGEN_CONSTEXPR Index rows() const
Definition: BandMatrix.h:263
internal::variable_if_dynamic< Index, Subs_ > m_subs
Definition: BandMatrix.h:280
internal::traits< BandMatrixWrapper >::CoefficientsType CoefficientsType
Definition: BandMatrix.h:252
EIGEN_CONSTEXPR Index cols() const
Definition: BandMatrix.h:266
Represents a rectangular matrix with a banded storage.
Definition: BandMatrix.h:193
EIGEN_CONSTEXPR Index subs() const
Definition: BandMatrix.h:212
CoefficientsType & coeffs()
Definition: BandMatrix.h:215
BandMatrix(Index rows=Rows, Index cols=Cols, Index supers=Supers, Index subs=Subs)
Definition: BandMatrix.h:199
internal::traits< BandMatrix >::StorageIndex StorageIndex
Definition: BandMatrix.h:196
internal::variable_if_dynamic< Index, Supers > m_supers
Definition: BandMatrix.h:220
internal::variable_if_dynamic< Index, Rows > m_rows
Definition: BandMatrix.h:219
CoefficientsType m_coeffs
Definition: BandMatrix.h:218
internal::traits< BandMatrix >::CoefficientsType CoefficientsType
Definition: BandMatrix.h:197
internal::traits< BandMatrix >::Scalar Scalar
Definition: BandMatrix.h:195
EIGEN_CONSTEXPR Index supers() const
Definition: BandMatrix.h:209
const CoefficientsType & coeffs() const
Definition: BandMatrix.h:214
EIGEN_CONSTEXPR Index cols() const
Definition: BandMatrix.h:206
internal::variable_if_dynamic< Index, Subs > m_subs
Definition: BandMatrix.h:221
EIGEN_CONSTEXPR Index rows() const
Definition: BandMatrix.h:203
Represents a tridiagonal matrix with a compact banded storage.
Definition: BandMatrix.h:296
const Base::template DiagonalIntReturnType< 1 >::Type super() const
Definition: BandMatrix.h:304
Base::template DiagonalIntReturnType< 1 >::Type super()
Definition: BandMatrix.h:303
const Base::template DiagonalIntReturnType<-1 >::Type sub() const
Definition: BandMatrix.h:308
TridiagonalMatrix(Index size=Size)
Definition: BandMatrix.h:301
Base::StorageIndex StorageIndex
Definition: BandMatrix.h:298
BandMatrix< Scalar, Size, Size, Options &SelfAdjoint ? 0 :1, 1, Options|RowMajor > Base
Definition: BandMatrix.h:297
Base::template DiagonalIntReturnType<-1 >::Type sub()
Definition: BandMatrix.h:307
@ N
Definition: constructor.cpp:22
#define min(a, b)
Definition: datatypes.h:22
#define max(a, b)
Definition: datatypes.h:23
@ SelfAdjoint
Definition: Constants.h:227
@ ColMajor
Definition: Constants.h:318
@ RowMajor
Definition: Constants.h:320
const unsigned int LvalueBit
Definition: Constants.h:148
constexpr int min_size_prefer_dynamic(A a, B b)
Definition: Meta.h:668
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
const int Dynamic
Definition: Constants.h:25
Extend namespace for flags.
Definition: fsi_chan_precond_driver.cc:56
Definition: Eigen_Colamd.h:49
void start(const unsigned &i)
(Re-)start i-th timer
Definition: oomph_utilities.cc:243
Type
Type of JSON value.
Definition: rapidjson.h:513
Definition: Constants.h:540
Definition: Constants.h:519
Definition: EigenBase.h:33
constexpr EIGEN_DEVICE_FUNC Derived & derived()
Definition: EigenBase.h:49
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: EigenBase.h:61
Eigen::Index Index
The interface type of indices.
Definition: EigenBase.h:43
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index size() const EIGEN_NOEXCEPT
Definition: EigenBase.h:64
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition: EigenBase.h:59
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:217
EigenBase2EigenBase Kind
Definition: BandMatrix.h:331
Definition: AssignEvaluator.h:760
Definition: BandMatrix.h:89
@ DiagonalSize
Definition: BandMatrix.h:95
@ ActualIndex
Definition: BandMatrix.h:94
@ ReturnOpposite
Definition: BandMatrix.h:91
Block< CoefficientsType, 1, DiagonalSize > BuildType
Definition: BandMatrix.h:101
std::conditional_t< Conjugate, CwiseUnaryOp< internal::scalar_conjugate_op< Scalar >, BuildType >, BuildType > Type
Definition: BandMatrix.h:103
Definition: BandMatrix.h:315
Definition: AssignEvaluator.h:757
BandShape Shape
Definition: BandMatrix.h:326
BandShape Shape
Definition: BandMatrix.h:320
Definition: CoreEvaluators.h:87
Definition: CoreEvaluators.h:95
CoefficientsType_ CoefficientsType
Definition: BandMatrix.h:244
CoefficientsType_::StorageKind StorageKind
Definition: BandMatrix.h:230
CoefficientsType_::Scalar Scalar
Definition: BandMatrix.h:229
CoefficientsType_::StorageIndex StorageIndex
Definition: BandMatrix.h:231
Matrix< Scalar, DataRowsAtCompileTime, ColsAtCompileTime, int(Options) &int(RowMajor) ? RowMajor :ColMajor > CoefficientsType
Definition: BandMatrix.h:189
Scalar_ Scalar
Definition: BandMatrix.h:173
Eigen::Index StorageIndex
Definition: BandMatrix.h:175
Dense StorageKind
Definition: BandMatrix.h:174
Definition: ForwardDeclarations.h:21