numerics 0.1.0
Loading...
Searching...
No Matches
num::detail Namespace Reference

Classes

struct  CubicSigma
 
struct  CubicSigma< 2 >
 
struct  CubicSigma< 3 >
 
struct  SpikyDW
 
struct  SpikyDW< 2 >
 
struct  SpikyDW< 3 >
 

Functions

template<class Op >
requires LinearOperator<Op, Vector, Vector>
LanczosResult lanczos_operator_impl (const Op &A, idx k, real tol, idx max_steps, Backend backend)
 
real normalise (Vector &v)
 Normalise v in-place; returns the old norm.
 
Matrix dense_expm_pade6 (const Matrix &A)
 
template<class Op >
requires LinearOperator<Op, Vector, Vector>
SolverResult cg_operator_impl (const Op &A, const Vector &b, Vector &x, real tol, idx max_iter, Backend backend)
 
Vector minres_projected_solve (const std::vector< real > &alpha, const std::vector< real > &beta, real beta0, idx m, Backend backend)
 
SolverResult run (const linalg::SPDMatrix< Matrix > &A, const Vector &b, Vector &u, const CG &a)
 
template<class Op >
requires SPDLinearOperator<Op, Vector, Vector>
SolverResult run (const Op &A, const Vector &b, Vector &u, const CG &a)
 
SolverResult run (const Matrix &A, const Vector &b, Vector &u, const GMRES &a)
 
SolverResult run (const SparseMatrix &A, const Vector &b, Vector &u, const GMRES &a)
 
template<class Op >
requires LinearOperator<Op, Vector, Vector>
SolverResult run (const Op &A, const Vector &b, Vector &u, const GMRES &a)
 
template<class Op >
requires SymmetricLinearOperator<Op, Vector, Vector>
SolverResult run (const Op &A, const Vector &b, Vector &u, const MINRES &a)
 
template<class Op , class M >
requires SPDLinearOperator<Op, Vector, Vector> && Preconditioner<M>
SolverResult run (const Op &A, const Vector &b, Vector &u, const PCG< M > &a)
 

Function Documentation

◆ cg_operator_impl()

template<class Op >
requires LinearOperator<Op, Vector, Vector>
SolverResult num::detail::cg_operator_impl ( const Op &  A,
const Vector b,
Vector x,
real  tol,
idx  max_iter,
Backend  backend 
)

◆ dense_expm_pade6()

Matrix num::detail::dense_expm_pade6 ( const Matrix A)

Definition at line 14 of file expv.cpp.

References num::lu(), num::lu_solve(), num::matmul(), num::BasicMatrix< T >::rows(), and num::scale().

Referenced by num::expv().

◆ lanczos_operator_impl()

template<class Op >
requires LinearOperator<Op, Vector, Vector>
LanczosResult num::detail::lanczos_operator_impl ( const Op &  A,
idx  k,
real  tol,
idx  max_steps,
Backend  backend 
)

◆ minres_projected_solve()

Vector num::detail::minres_projected_solve ( const std::vector< real > &  alpha,
const std::vector< real > &  beta,
real  beta0,
idx  m,
Backend  backend 
)
inline

Definition at line 22 of file minres.hpp.

References num::beta(), num::qr(), and num::qr_solve().

Referenced by num::minres().

◆ normalise()

real num::detail::normalise ( Vector v)
inline

Normalise v in-place; returns the old norm.

Definition at line 34 of file power.hpp.

References num::e, and num::BasicVector< T >::size().

Referenced by num::inverse_iteration(), num::power_iteration(), and num::rayleigh_iteration().

◆ run() [1/7]

SolverResult num::detail::run ( const linalg::SPDMatrix< Matrix > &  A,
const Vector b,
Vector u,
const CG a 
)
inline

Definition at line 60 of file solve.hpp.

References num::CG::backend, num::cg(), num::CG::max_iter, and num::CG::tol.

Referenced by num::solve(), and num::solve().

◆ run() [2/7]

SolverResult num::detail::run ( const Matrix A,
const Vector b,
Vector u,
const GMRES a 
)
inline

◆ run() [3/7]

template<class Op >
requires SPDLinearOperator<Op, Vector, Vector>
SolverResult num::detail::run ( const Op &  A,
const Vector b,
Vector u,
const CG a 
)

Definition at line 66 of file solve.hpp.

References num::CG::backend, num::cg(), num::CG::max_iter, and num::CG::tol.

◆ run() [4/7]

template<class Op >
requires LinearOperator<Op, Vector, Vector>
SolverResult num::detail::run ( const Op &  A,
const Vector b,
Vector u,
const GMRES a 
)

Definition at line 80 of file solve.hpp.

References num::gmres(), num::GMRES::max_iter, num::GMRES::restart, and num::GMRES::tol.

◆ run() [5/7]

template<class Op >
requires SymmetricLinearOperator<Op, Vector, Vector>
SolverResult num::detail::run ( const Op &  A,
const Vector b,
Vector u,
const MINRES a 
)

Definition at line 86 of file solve.hpp.

References num::MINRES::backend, num::MINRES::max_iter, num::minres(), and num::MINRES::tol.

◆ run() [6/7]

template<class Op , class M >
requires SPDLinearOperator<Op, Vector, Vector> && Preconditioner<M>
SolverResult num::detail::run ( const Op &  A,
const Vector b,
Vector u,
const PCG< M > &  a 
)

◆ run() [7/7]

SolverResult num::detail::run ( const SparseMatrix A,
const Vector b,
Vector u,
const GMRES a 
)
inline

Definition at line 74 of file solve.hpp.

References num::gmres(), num::GMRES::max_iter, num::GMRES::restart, and num::GMRES::tol.