Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
uni20::krylov::KrylovNorm Concept Reference

Optional customization point for direct vector norms. More...

#include <matrix_free.hpp>

Concept definition

template<typename Ops, typename Vector, typename Scalar>
concept uni20::krylov::KrylovNorm = requires(Ops ops, Vector x) {
{ ops.norm(x) } -> std::convertible_to<uni20::make_real_t<Scalar>>;
}
Optional customization point for direct vector norms.
Definition matrix_free.hpp:437

Detailed Description

Optional customization point for direct vector norms.

A backend may compute norms more accurately or efficiently than a generic sqrt(real(inner_product(x, x))), for example by using a fused device reduction or an MPI norm collective. Solvers should call norm_or_inner_product so backends without this customization still get a correct default from the inner product.