Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Concepts | Functions
uni20::linalg::refinement_detail Namespace Reference

Concepts

concept  HostMatrix
 

Functions

template<RealOrComplex S>
auto component_magnitude (S const &value)
 
RefinementInfo conversion_failure (SolveInfo const &info)
 
template<RealOrComplex To, RealOrComplex From>
requires (Complex<To> == Complex<From>)
To convert (From const &value, Precision p)
 
template<RealOrComplex To, RealOrComplex From>
requires (Complex<To> == Complex<From>)
To convert_scaled (From const &value, std::int64_t exponent, Precision p)
 
template<class Backend , class F , class W , class R >
std::optional< DenseMatrix< W > > correction (Backend &backend, LuFactorization< F > const &factor, DenseMatrix< R > const &rhs, LuRefinementPrecision< F, W, R > p, std::vector< bool > const &active, std::int64_t target_exponent, SolveInfo &info)
 
template<class W , class R , class A , class B >
LuRefinementResult< W, R > empty_result (A const &a, B const &b, Precision working, Precision residual)
 
template<RealOrComplex S>
SolveDiagnosticsResult< S > evaluate (DenseMatrix< S > const &a, DenseMatrix< S > const &b, DenseMatrix< S > const &x, Precision p)
 
template<RealOrComplex To, HostMatrix A>
requires (Complex<To> == Complex<tensor_element_t<A>>)
std::optional< DenseMatrix< To > > pack (A const &input, Precision p, SolveInfo &info)
 
template<class A , class B >
void require_shape (A const &a, B const &b)
 
template<class Backend , class F , class W , class R >
LuRefinementResult< W, R > run (Backend &backend, LuFactorization< F > const &factor, DenseMatrix< R > const &a, DenseMatrix< R > const &b, LuRefinementPrecision< F, W, R > p, RefinementOptions< make_real_t< R > > const &options, make_real_t< R > const &tolerance)
 
template<class F , class W , class R >
auto validate (LuRefinementPrecision< F, W, R > p, RefinementOptions< make_real_t< R > > const &options)
 

Function Documentation

◆ component_magnitude()

template<RealOrComplex S>
auto uni20::linalg::refinement_detail::component_magnitude ( S const &  value)

◆ conversion_failure()

RefinementInfo uni20::linalg::refinement_detail::conversion_failure ( SolveInfo const &  info)
inline

◆ convert()

template<RealOrComplex To, RealOrComplex From>
requires (Complex<To> == Complex<From>)
To uni20::linalg::refinement_detail::convert ( From const &  value,
Precision  p 
)

◆ convert_scaled()

template<RealOrComplex To, RealOrComplex From>
requires (Complex<To> == Complex<From>)
To uni20::linalg::refinement_detail::convert_scaled ( From const &  value,
std::int64_t  exponent,
Precision  p 
)

◆ correction()

template<class Backend , class F , class W , class R >
std::optional< DenseMatrix< W > > uni20::linalg::refinement_detail::correction ( Backend &  backend,
LuFactorization< F > const &  factor,
DenseMatrix< R > const &  rhs,
LuRefinementPrecision< F, W, R >  p,
std::vector< bool > const &  active,
std::int64_t  target_exponent,
SolveInfo &  info 
)

◆ empty_result()

template<class W , class R , class A , class B >
LuRefinementResult< W, R > uni20::linalg::refinement_detail::empty_result ( A const &  a,
B const &  b,
Precision  working,
Precision  residual 
)

◆ evaluate()

template<RealOrComplex S>
SolveDiagnosticsResult< S > uni20::linalg::refinement_detail::evaluate ( DenseMatrix< S > const &  a,
DenseMatrix< S > const &  b,
DenseMatrix< S > const &  x,
Precision  p 
)

◆ pack()

template<RealOrComplex To, HostMatrix A>
requires (Complex<To> == Complex<tensor_element_t<A>>)
std::optional< DenseMatrix< To > > uni20::linalg::refinement_detail::pack ( A const &  input,
Precision  p,
SolveInfo &  info 
)

◆ require_shape()

template<class A , class B >
void uni20::linalg::refinement_detail::require_shape ( A const &  a,
B const &  b 
)

◆ run()

template<class Backend , class F , class W , class R >
LuRefinementResult< W, R > uni20::linalg::refinement_detail::run ( Backend &  backend,
LuFactorization< F > const &  factor,
DenseMatrix< R > const &  a,
DenseMatrix< R > const &  b,
LuRefinementPrecision< F, W, R >  p,
RefinementOptions< make_real_t< R > > const &  options,
make_real_t< R > const &  tolerance 
)

◆ validate()

template<class F , class W , class R >
auto uni20::linalg::refinement_detail::validate ( LuRefinementPrecision< F, W, R >  p,
RefinementOptions< make_real_t< R > > const &  options 
)