23template <FieldVector Vec>
35 "L2 complex norm expects real inner product");
51template <FieldVector Vec>
73template <FieldVector Vec>
Field classified by scalar_traits as real.
constexpr auto inner_product(const Vec &lhs, const Vec &rhs)
Evaluate the canonical inner product for two field vectors.
std::remove_cvref_t< T > remove_cvref_t
Remove top-level const, volatile, and reference qualification.
typename vector_traits_t< Vec >::element_type vector_element_t
Registered vector coordinate type.
typename scalar_traits_t< T >::real_type real_type_t
Associated real component type registered for T.
constexpr T constexpr_abs(T x)
Compute real absolute value or complex magnitude.
constexpr T constexpr_sqrt_safe(T x, T floor=T(0), T g=1e-10, T tol=1e-10)
Return a scalar square root with a sanitized fallback radicand.
constexpr std::size_t mat_rows_v
Registered compile-time row count after cv/ref normalization.
constexpr bool is_real(const std::complex< T > &z, real_type_t< T > tol=1e-10)
Check whether a complex value's imaginary component is below a bound.
forward declaration for L1 norm
constexpr codomain_type operator()(const domain_type &x) const
remove_cvref_t< Vec > domain_type
vector_element_t< domain_type > scalar_type
real_type_t< scalar_type > codomain_type
forward declaration for L2 norm
vector_element_t< domain_type > scalar_type
remove_cvref_t< Vec > domain_type
real_type_t< scalar_type > codomain_type
constexpr codomain_type operator()(const domain_type &x) const
forward declaration for Linf norm
constexpr codomain_type operator()(const domain_type &x) const
remove_cvref_t< Vec > domain_type
real_type_t< scalar_type > codomain_type
vector_element_t< domain_type > scalar_type