Eigen::internal::BandMatrixBase< Derived > Class Template Reference

#include <BandMatrix.h>

+ Inheritance 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
 
- Public Types inherited from Eigen::EigenBase< Derived >
typedef Eigen::Index Index
 The interface type of indices. More...
 
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 EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
 
constexpr EIGEN_DEVICE_FUNC Derived & derived ()
 
constexpr EIGEN_DEVICE_FUNC const Derived & derived () const
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
 
- Public Member Functions inherited from Eigen::EigenBase< Derived >
constexpr EIGEN_DEVICE_FUNC Derived & derived ()
 
constexpr EIGEN_DEVICE_FUNC const Derived & derived () const
 
EIGEN_DEVICE_FUNC Derived & const_cast_derived () const
 
EIGEN_DEVICE_FUNC const Derived & const_derived () const
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index size () const EIGEN_NOEXCEPT
 
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
 
template<typename Device >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DeviceWrapper< Derived, Device > device (Device &device)
 
template<typename Device >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DeviceWrapper< const Derived, Device > device (Device &device) const
 

Protected Types

enum  { DataRowsAtCompileTime = ((Supers != Dynamic) && (Subs != Dynamic)) ? 1 + Supers + Subs : Dynamic , SizeAtCompileTime = min_size_prefer_dynamic(RowsAtCompileTime, ColsAtCompileTime) }
 

Protected Member Functions

Index diagonalLength (Index i) const
 

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

◆ 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

Member Enumeration Documentation

◆ anonymous enum

template<typename Derived >
anonymous enum
Enumerator
Flags 
CoeffReadCost 
RowsAtCompileTime 
ColsAtCompileTime 
MaxRowsAtCompileTime 
MaxColsAtCompileTime 
Supers 
Subs 
Options 
23  {
24  Flags = internal::traits<Derived>::Flags,
25  CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
26  RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
27  ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
28  MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
29  MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
30  Supers = internal::traits<Derived>::Supers,
31  Subs = internal::traits<Derived>::Subs,
32  Options = internal::traits<Derived>::Options
33  };
@ 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
Extend namespace for flags.
Definition: fsi_chan_precond_driver.cc:56

◆ anonymous enum

template<typename Derived >
anonymous enum
protected
Enumerator
DataRowsAtCompileTime 
SizeAtCompileTime 
41  {
44  };
@ SizeAtCompileTime
Definition: BandMatrix.h:43
@ DataRowsAtCompileTime
Definition: BandMatrix.h:42
constexpr int min_size_prefer_dynamic(A a, B b)
Definition: Meta.h:668
const int Dynamic
Definition: Constants.h:25

Member Function Documentation

◆ coeffs() [1/2]

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

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

◆ coeffs() [2/2]

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

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

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

◆ 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.
66  {
67  EIGEN_STATIC_ASSERT((int(Options) & int(RowMajor)) == 0, THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
68  Index start = 0;
69  Index len = coeffs().rows();
70  if (i <= supers()) {
71  start = supers() - i;
72  len = (std::min)(rows(), std::max<Index>(0, coeffs().rows() - (supers() - i)));
73  } else if (i >= rows() - subs())
74  len = std::max<Index>(0, coeffs().rows() - (i + 1 - rows() + subs()));
75  return Block<CoefficientsType, Dynamic, 1>(coeffs(), start, i, len, 1);
76  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
#define EIGEN_STATIC_ASSERT(X, MSG)
Definition: StaticAssert.h:26
Index subs() const
Definition: BandMatrix.h:55
Index supers() const
Definition: BandMatrix.h:52
const CoefficientsType & coeffs() const
Definition: BandMatrix.h:58
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition: EigenBase.h:59
#define min(a, b)
Definition: datatypes.h:22
@ RowMajor
Definition: Constants.h:320
void start(const unsigned &i)
(Re-)start i-th timer
Definition: oomph_utilities.cc:243
Eigen::Index Index
The interface type of indices.
Definition: EigenBase.h:43

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

◆ cols()

◆ derived() [1/2]

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

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

◆ derived() [2/2]

template<typename Derived >
constexpr EIGEN_DEVICE_FUNC const Derived& Eigen::EigenBase< Derived >::derived
inlineconstexpr
Returns
a const reference to the derived object
51 { 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
79  {
80  return Block<CoefficientsType, 1, SizeAtCompileTime>(coeffs(), supers(), 0, 1, (std::min)(rows(), cols()));
81  }
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: EigenBase.h:61

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

Referenced by Eigen::internal::BandMatrixBase< Derived >::evalTo(), and Eigen::internal::TridiagonalMatrix< Scalar, Size, Options >::sub().

◆ 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
108  {
109  return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers() - N, (std::max)(0, N), 1, diagonalLength(N));
110  }
Index diagonalLength(Index i) const
Definition: BandMatrix.h:147
@ N
Definition: constructor.cpp:22
#define max(a, b)
Definition: datatypes.h:23
Block< CoefficientsType, 1, DiagonalSize > BuildType
Definition: BandMatrix.h:101

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

◆ 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)
84  {
85  return Block<const CoefficientsType, 1, SizeAtCompileTime>(coeffs(), supers(), 0, 1, (std::min)(rows(), cols()));
86  }

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

◆ diagonal() [4/6]

template<typename Derived >
template<int N>
const DiagonalIntReturnType<N>::Type Eigen::internal::BandMatrixBase< Derived >::diagonal ( ) const
inline

◆ 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
119  {
120  eigen_assert((i < 0 && -i <= subs()) || (i >= 0 && i <= supers()));
121  return Block<CoefficientsType, 1, Dynamic>(coeffs(), supers() - i, std::max<Index>(0, i), 1, diagonalLength(i));
122  }
#define eigen_assert(x)
Definition: Macros.h:910

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

◆ 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
125  {
126  eigen_assert((i < 0 && -i <= subs()) || (i >= 0 && i <= supers()));
127  return Block<const CoefficientsType, 1, Dynamic>(coeffs(), supers() - i, std::max<Index>(0, i), 1,
128  diagonalLength(i));
129  }

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

◆ diagonalLength()

template<typename Derived >
Index Eigen::internal::BandMatrixBase< Derived >::diagonalLength ( Index  i) const
inlineprotected

◆ evalTo()

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

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

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

◆ rows()

◆ subs()

◆ supers()

template<typename Derived >
Index Eigen::internal::BandMatrixBase< Derived >::supers ( ) const
inline

◆ toDenseMatrix()

template<typename Derived >
DenseMatrixType Eigen::internal::BandMatrixBase< Derived >::toDenseMatrix ( ) const
inline
140  {
142  evalTo(res);
143  return res;
144  }
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition: PartialRedux_count.cpp:3
void evalTo(Dest &dst) const
Definition: BandMatrix.h:132
Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > DenseMatrixType
Definition: BandMatrix.h:35

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


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