0.4.1
Loading...
Searching...
No Matches
NAV::CubicSpline< Scalar >::BandMatrix Class Reference

Sparse matrix whose non-zero entries are confined to a diagonal band, comprising the main diagonal and zero or more diagonals on either side. More...

Public Member Functions

 BandMatrix (size_t dim, size_t nUpper, size_t nLower)
 Constructor.
 
std::vector< Scalar > lu_solve (const std::vector< Scalar > &b, bool is_lu_decomposed=false)
 
Scalar & operator() (size_t i, size_t j)
 Access operator i ∈ [i=0,...,dim()-1].
 
const Scalar & operator() (size_t i, size_t j) const
 Access operator i ∈ [i=0,...,dim()-1].
 

Private Member Functions

size_t dim () const
 Returns the matrix dimension.
 
size_t dimLowerBand () const
 Returns the dimension of the lower band.
 
size_t dimUpperBand () const
 Returns the dimension of the upper band.
 
std::vector< Scalar > l_solve (const std::vector< Scalar > &b) const
 Solves the equation Lx = b for x.
 
void lu_decompose ()
 Calculate the LU decomposition.
 
std::vector< Scalar > u_solve (const std::vector< Scalar > &b) const
 Solves the equation Ux = b for x.
 

Private Attributes

std::vector< std::vector< Scalar > > lowerBand
 lower diagonal band
 
std::vector< std::vector< Scalar > > upperBand
 upper diagonal band
 

Detailed Description

template<typename Scalar>
class NAV::CubicSpline< Scalar >::BandMatrix

Sparse matrix whose non-zero entries are confined to a diagonal band, comprising the main diagonal and zero or more diagonals on either side.

Definition at line 272 of file CubicSpline.hpp.

Constructor & Destructor Documentation

◆ BandMatrix()

template<typename Scalar>
NAV::CubicSpline< Scalar >::BandMatrix::BandMatrix ( size_t dim,
size_t nUpper,
size_t nLower )
inline

Constructor.

Parameters
[in]dimDimension of the matrix
[in]nUpperAmount of upper diagonals
[in]nLowerAmount of lower diagonals

Definition at line 279 of file CubicSpline.hpp.

Member Function Documentation

◆ dim()

template<typename Scalar>
size_t NAV::CubicSpline< Scalar >::BandMatrix::dim ( ) const
inlinenodiscardprivate

Returns the matrix dimension.

Definition at line 313 of file CubicSpline.hpp.

◆ dimLowerBand()

template<typename Scalar>
size_t NAV::CubicSpline< Scalar >::BandMatrix::dimLowerBand ( ) const
inlinenodiscardprivate

Returns the dimension of the lower band.

Definition at line 323 of file CubicSpline.hpp.

◆ dimUpperBand()

template<typename Scalar>
size_t NAV::CubicSpline< Scalar >::BandMatrix::dimUpperBand ( ) const
inlinenodiscardprivate

Returns the dimension of the upper band.

Definition at line 318 of file CubicSpline.hpp.

◆ l_solve()

template<typename Scalar>
std::vector< Scalar > NAV::CubicSpline< Scalar >::BandMatrix::l_solve ( const std::vector< Scalar > & b) const
inlinenodiscardprivate

Solves the equation Lx = b for x.

Definition at line 367 of file CubicSpline.hpp.

◆ lu_decompose()

template<typename Scalar>
void NAV::CubicSpline< Scalar >::BandMatrix::lu_decompose ( )
inlineprivate

Calculate the LU decomposition.

Definition at line 329 of file CubicSpline.hpp.

◆ lu_solve()

template<typename Scalar>
std::vector< Scalar > NAV::CubicSpline< Scalar >::BandMatrix::lu_solve ( const std::vector< Scalar > & b,
bool is_lu_decomposed = false )
inlinenodiscard

Solves the linear equations Ax = b for x by obtaining the LU decomposition A = LU and solving

  • Ly = b for y
  • Ux = y for x

Definition at line 298 of file CubicSpline.hpp.

◆ operator()() [1/2]

template<typename Scalar>
Scalar & NAV::CubicSpline< Scalar >::BandMatrix::operator() ( size_t i,
size_t j )
inline

Access operator i ∈ [i=0,...,dim()-1].

Definition at line 284 of file CubicSpline.hpp.

◆ operator()() [2/2]

template<typename Scalar>
const Scalar & NAV::CubicSpline< Scalar >::BandMatrix::operator() ( size_t i,
size_t j ) const
inlinenodiscard

Access operator i ∈ [i=0,...,dim()-1].

Definition at line 289 of file CubicSpline.hpp.

◆ u_solve()

template<typename Scalar>
std::vector< Scalar > NAV::CubicSpline< Scalar >::BandMatrix::u_solve ( const std::vector< Scalar > & b) const
inlinenodiscardprivate

Solves the equation Ux = b for x.

Definition at line 385 of file CubicSpline.hpp.

Field Documentation

◆ lowerBand

template<typename Scalar>
std::vector<std::vector<Scalar> > NAV::CubicSpline< Scalar >::BandMatrix::lowerBand
private

lower diagonal band

Definition at line 404 of file CubicSpline.hpp.

◆ upperBand

template<typename Scalar>
std::vector<std::vector<Scalar> > NAV::CubicSpline< Scalar >::BandMatrix::upperBand
private

upper diagonal band

Definition at line 403 of file CubicSpline.hpp.


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