Honeycomb  0.1
Component-Model Framework
Public Types | Public Member Functions | Static Public Member Functions | List of all members
honey::BackSub< Real > Class Template Reference

Back substitute to solve a linear system. More...

#include <BackSub.h>

Public Types

typedef Matrix< matrix::dynamic, matrix::dynamic, RealMatrix
 
typedef Vec< matrix::dynamic, Double > Vec_d
 
typedef Vec< matrix::dynamic, RealVec
 

Public Member Functions

template<class B , class X >
void solve (const Vec &w, const Matrix &u, const Matrix &vt, const MatrixBase< B > &b, MatrixBase< X > &x)
 Solve $ Ax = B $ given the SVD of A. A and B row sizes must match. $ x = A^{-1} B = (V^T)^T W^{-1} U^T B $. More...
 
template<class X >
void solve (const Vec &w, const Matrix &u, const Matrix &vt, MatrixBase< X > &x)
 Solve $ Ax = I $ given the SVD of A. $ x = A^{-1} = (V^T)^T W^{-1} U^T $. More...
 

Static Public Member Functions

template<class T >
static bool isFullRank (const MatrixBase< T > &a)
 Check if a triangular/trapezoidal matrix has full rank (ie. all vectors are linearly independent; no vector is a linear combination of others) More...
 
template<class B , class X >
static void solve (const Matrix &r, const MatrixBase< B > &b, MatrixBase< X > &x)
 Solve $ Rx = B$ where R is an upper triangular/trapezoidal matrix. R and B row sizes must match. R must have full rank. More...
 
template<class B , class X >
static void solveFwd (const Matrix &l, const MatrixBase< B > &b, MatrixBase< X > &x)
 Solve $ Lx = B $ where L is a lower triangular/trapezoidal matrix. L and B row sizes must match. L must have full rank. More...
 

Detailed Description

template<class Real>
class honey::BackSub< Real >

Back substitute to solve a linear system.

Member Typedef Documentation

template<class Real>
typedef Matrix<matrix::dynamic, matrix::dynamic, Real> honey::BackSub< Real >::Matrix
template<class Real>
typedef Vec<matrix::dynamic, Real> honey::BackSub< Real >::Vec
template<class Real>
typedef Vec<matrix::dynamic, Double> honey::BackSub< Real >::Vec_d

Member Function Documentation

template<class Real>
template<class T >
static bool honey::BackSub< Real >::isFullRank ( const MatrixBase< T > &  a)
inlinestatic

Check if a triangular/trapezoidal matrix has full rank (ie. all vectors are linearly independent; no vector is a linear combination of others)

template<class Real>
template<class B , class X >
static void honey::BackSub< Real >::solve ( const Matrix r,
const MatrixBase< B > &  b,
MatrixBase< X > &  x 
)
inlinestatic

Solve $ Rx = B$ where R is an upper triangular/trapezoidal matrix. R and B row sizes must match. R must have full rank.

template<class Real>
template<class B , class X >
void honey::BackSub< Real >::solve ( const Vec w,
const Matrix u,
const Matrix vt,
const MatrixBase< B > &  b,
MatrixBase< X > &  x 
)
inline

Solve $ Ax = B $ given the SVD of A. A and B row sizes must match. $ x = A^{-1} B = (V^T)^T W^{-1} U^T B $.

template<class Real>
template<class X >
void honey::BackSub< Real >::solve ( const Vec w,
const Matrix u,
const Matrix vt,
MatrixBase< X > &  x 
)
inline

Solve $ Ax = I $ given the SVD of A. $ x = A^{-1} = (V^T)^T W^{-1} U^T $.

template<class Real>
template<class B , class X >
static void honey::BackSub< Real >::solveFwd ( const Matrix l,
const MatrixBase< B > &  b,
MatrixBase< X > &  x 
)
inlinestatic

Solve $ Lx = B $ where L is a lower triangular/trapezoidal matrix. L and B row sizes must match. L must have full rank.


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