template <class T>
class vtb::linalg::Positive_definite_matrix
Base classes
Methods
  • cholesky() const -> Lower_triangular_matrix< T >

    Cholesky decomposition.

    Date
    2018-11-19
    Author
    Ivan Gankevich
    Return
    Lower triangular matrix.
template <class T>
class vtb::linalg::Matrix
Base classes
  • public blitz::Array< T, 2 >
Derived classes
Methods
  • transpose_self() -> void
  • transpose() const -> Matrix< T >
  • inverse_self() -> Square_matrix< T > &
  • inverse() const -> Square_matrix< T >
  • is_toeplitz(T eps) const -> bool
  • is_toeplitz() const -> bool
  • is_positive_definite() const -> bool

    Check if the matrix is positive definite using Cholesky decomposition. There is no check for symmetry.

  • is_symmetric(T eps) const -> bool
  • is_symmetric() const -> bool
  • is_square() const -> bool
  • Matrix(base_type rhs)
template <class T>
class vtb::linalg::Vector
Base classes
  • public blitz::Array< T, 1 >
Methods
  • Vector(base_type rhs)
template <class T>
class vtb::linalg::Lower_upper_triangular_matrix
Base classes
Methods
template <class T>
class vtb::linalg::Square_matrix
template <class T>
class vtb::linalg::Lower_triangular_matrix
Base classes
Derived classes
Methods
  • solve(const Vector< T > & b) const -> Vector< T >
  • backward_substitution(const Vector< T > & y) const -> Vector< T >

    Backward substitution. Solves .

    Date
    2018-11-19
    Author
    Ivan Gankevich
  • forward_substitution(const Vector< T > & b) const -> Vector< T >

    Forward substitution. Solves .

    Date
    2018-11-19
    Author
    Ivan Gankevich
template <class T>
class vtb::linalg::Symmetric_matrix
Base classes
Derived classes
Methods
  • eigen_values(T eps, int nsweeps) const -> Vector< T >

    Compute eigen values.

    • Uses Jacobi algorithm for symmetric real matrices [6], [14].
    Find with the greatest absolute value that do not lie on the diagonal. Find sine and cosine by solving , where . Rotate matrix.

    Date
    2019-02-08
    Author
    Ivan Gankevich
  • cholesky_indefinite() const -> Lower_triangular_matrix_ldlt< T >
class vtb::linalg::Invalid_matrix
Base classes
  • public runtime_error
Methods
  • Invalid_matrix(const char * msg)explicit
  • Invalid_matrix()
template <class T>
class vtb::linalg::Lower_triangular_matrix_ldlt
Base classes
Methods
template <class T>
solve(const Symmetric_matrix< T > & lhs, const Vector< T > & rhs) -> Vector< T >
template <class T>
solve(const Positive_definite_matrix< T > & lhs, const Vector< T > & rhs) -> Vector< T >
template <class T>
det(const Square_matrix< T > & rhs) -> T
template <class T>
conj(const std::complex< T > & z) -> std::complex< T >
template <class T>
product(const Matrix< T > & lhs, const Matrix< T > & rhs) -> Matrix< T >
template <class NewMatrix, class OldMatrix>
matrix_cast(OldMatrix & rhs) -> NewMatrix &
template <class T>
inverse(const Lower_upper_triangular_matrix< T > & rhs) -> T
template <class T>
lower_upper_triangular(const Matrix< T > & rhs) -> Lower_upper_triangular_matrix< T >
template <class T>
solve(const Square_matrix< T > & lhs, const Vector< T > & rhs) -> Vector< T >
template <class T>
solve(const Lower_upper_triangular_matrix< T > & lhs, const Vector< T > & rhs) -> Vector< T >
conj(float x) -> float
template <class T>
trace(const Square_matrix< T > & rhs) -> T
template <class T>
det(const Lower_upper_triangular_matrix< T > & rhs) -> T
template <class T>
operator*(const Matrix< T > & lhs, const Matrix< T > & rhs) -> Matrix< T >
template <class T>
inverse(const Square_matrix< T > & rhs) -> T
template <class T>
operator*(const Matrix< T > & lhs, const Vector< T > & rhs) -> Vector< T >
template <class NewMatrix, class OldMatrix>
matrix_cast(const OldMatrix & rhs) -> const NewMatrix &
template <class T>
product(const Matrix< T > & lhs, const Vector< T > & rhs) -> Vector< T >
conj(double x) -> float
template <class T>
eigen_values(const Symmetric_matrix< T > & rhs, T eps, int nsweeps) -> Vector< T >