Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::HasScaledApplyMember Concept Reference

Concept for an operator that provides its own fused scaled-apply: y := alpha * op(x) + beta * y. Backend::apply(alpha, op, x, beta, y) dispatches here when available, and falls back to a plain apply-then-axpby otherwise – so an operator need not implement this to be used with a scaled apply, but gets a faster fused path when it does (e.g. to skip recomputing an expensive per-element coefficient when alpha == 0).

#include <solver_backends.hpp>

Concept definition

template<class Op, class Scalar, class XVector, class YVector>
concept HasScaledApplyMember = requires(const Op& op, Scalar a, const XVector& x, Scalar b, YVector& y) {
{ op.apply(a, x, b, y) } -> std::same_as<void>;
}
Concept for an operator that provides its own fused scaled-apply: y := alpha * op(x) + beta * y....
Definition solver_backends.hpp:92
AScalar< T, Array< T, 1 > > Scalar
Owning scalar with the default Array<T,1> accessor.
Definition Scalar.hpp:498