Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Functions
uni20::krylov::gmres_detail Namespace Reference

Classes

struct  DiagnosticMagnitude
 
struct  Rotation
 
struct  Tolerances
 

Functions

template<Real R>
DiagnosticMagnitude< R > add (DiagnosticMagnitude< R > const &a, DiagnosticMagnitude< R > const &b)
 
template<RealOrComplex To, RealOrComplex From>
requires (Complex<To> == Complex<From>)
To convert_scalar (From const &value, Precision p)
 
template<Real R>
R diagnostic_scale (R const &fraction, __int128_t exponent)
 
template<Real R>
std::optional< GmresErrorEstimates< R > > error_estimates (GmresResidual< R > const &residual, GmresOperatorEstimates< R > const &properties)
 
template<Real R>
DiagnosticMagnitude< R > magnitude (R const &value)
 
template<Real R>
DiagnosticMagnitude< R > multiply (DiagnosticMagnitude< R > const &a, DiagnosticMagnitude< R > const &b)
 
template<RealOrComplex S, class Ops , class V >
std::optional< make_real_t< S > > norm (Ops &ops, V const &v, Precision p)
 
template<RealOrComplex S, class Ops , class V >
void normalize (Ops &ops, V &v, make_real_t< S > const &length, Precision p)
 
template<Real R>
GmresOperatorEstimates< R > operator_estimates_at_precision (GmresOperatorEstimates< R > const &input, Precision p)
 
template<Real R>
R ratio (DiagnosticMagnitude< R > const &a, DiagnosticMagnitude< R > const &b)
 
template<Real R>
bool reached (R const &residual, R const &rhs, R const &relative, R const &absolute)
 
template<class S >
void rotate (Rotation< S > const &rotation, S &x, S &y)
 
template<RealOrComplex S>
Rotation< S > rotation (S const &f, S const &g, Precision p)
 
template<Real R>
Tolerances< R > tolerances (GmresOptions< R > const &options, Precision precision)
 

Function Documentation

◆ add()

template<Real R>
DiagnosticMagnitude< R > uni20::krylov::gmres_detail::add ( DiagnosticMagnitude< R > const &  a,
DiagnosticMagnitude< R > const &  b 
)

◆ convert_scalar()

template<RealOrComplex To, RealOrComplex From>
requires (Complex<To> == Complex<From>)
To uni20::krylov::gmres_detail::convert_scalar ( From const &  value,
Precision  p 
)

◆ diagnostic_scale()

template<Real R>
R uni20::krylov::gmres_detail::diagnostic_scale ( R const &  fraction,
__int128_t  exponent 
)

◆ error_estimates()

template<Real R>
std::optional< GmresErrorEstimates< R > > uni20::krylov::gmres_detail::error_estimates ( GmresResidual< R > const &  residual,
GmresOperatorEstimates< R > const &  properties 
)

◆ magnitude()

template<Real R>
DiagnosticMagnitude< R > uni20::krylov::gmres_detail::magnitude ( R const &  value)

◆ multiply()

template<Real R>
DiagnosticMagnitude< R > uni20::krylov::gmres_detail::multiply ( DiagnosticMagnitude< R > const &  a,
DiagnosticMagnitude< R > const &  b 
)

◆ norm()

template<RealOrComplex S, class Ops , class V >
std::optional< make_real_t< S > > uni20::krylov::gmres_detail::norm ( Ops &  ops,
V const &  v,
Precision  p 
)

◆ normalize()

template<RealOrComplex S, class Ops , class V >
void uni20::krylov::gmres_detail::normalize ( Ops &  ops,
V &  v,
make_real_t< S > const &  length,
Precision  p 
)

◆ operator_estimates_at_precision()

template<Real R>
GmresOperatorEstimates< R > uni20::krylov::gmres_detail::operator_estimates_at_precision ( GmresOperatorEstimates< R > const &  input,
Precision  p 
)

◆ ratio()

template<Real R>
R uni20::krylov::gmres_detail::ratio ( DiagnosticMagnitude< R > const &  a,
DiagnosticMagnitude< R > const &  b 
)

◆ reached()

template<Real R>
bool uni20::krylov::gmres_detail::reached ( R const &  residual,
R const &  rhs,
R const &  relative,
R const &  absolute 
)

◆ rotate()

template<class S >
void uni20::krylov::gmres_detail::rotate ( Rotation< S > const &  rotation,
S &  x,
S &  y 
)

◆ rotation()

template<RealOrComplex S>
Rotation< S > uni20::krylov::gmres_detail::rotation ( S const &  f,
S const &  g,
Precision  p 
)

◆ tolerances()

template<Real R>
Tolerances< R > uni20::krylov::gmres_detail::tolerances ( GmresOptions< R > const &  options,
Precision  precision 
)