num::kernel::dot¶
Defined in header <kernel/vector.hpp>
template <std::floating_point T>
T dot(const T *x, const T *y, idx n) noexcept; // (1)
template <std::floating_point T>
T dot(contract::ordered_t, const T *x, const T *y, idx n) noexcept; // (2)
template <std::floating_point T>
T dot(contract::throughput_t, const T *x, const T *y, idx n) noexcept; // (3)
(1) Dot product \(\sum_{i=0}^{n-1} x_i y_i\), accumulated in detail::reduction_lanes chains. Use contract::ordered for source-order summation.
(2) Dot product summed strictly in index order, for bit-for-bit reproducibility.
(3) The same kernel as the unqualified overload, kept for callers that name it.