Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
pippenger_fallbacks.hpp File Reference

Go to the source code of this file.

Functions

template<typename Curve >
Curve::Element trivial_msm (PolynomialSpan< const typename Curve::ScalarField > scalars_span, std::span< const typename Curve::AffineElement > all_points) noexcept
 
template<typename Curve >
Curve::Element trivial_msm_threaded (PolynomialSpan< const typename Curve::ScalarField > scalars_span, std::span< const typename Curve::AffineElement > all_points) noexcept
 Multi-threaded straus_msm driver for very-small MSMs.
 

Function Documentation

◆ trivial_msm()

template<typename Curve >
Curve::Element trivial_msm ( PolynomialSpan< const typename Curve::ScalarField scalars_span,
std::span< const typename Curve::AffineElement all_points 
)
noexcept

Definition at line 16 of file pippenger_fallbacks.hpp.

◆ trivial_msm_threaded()

template<typename Curve >
Curve::Element trivial_msm_threaded ( PolynomialSpan< const typename Curve::ScalarField scalars_span,
std::span< const typename Curve::AffineElement all_points 
)
noexcept

Multi-threaded straus_msm driver for very-small MSMs.

Splits the input across bb::parallel_for workers and runs Element::straus_msm on each slice. Zero-scalar entries are compacted out before dispatch (callers reach this function precisely when n_active << n, so straus_msm shouldn't burn time on dead pairs). Sharing the rpmsm pool with the main pippenger_fast keeps per-call dispatch cheap.

Definition at line 42 of file pippenger_fallbacks.hpp.