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

Go to the source code of this file.

Classes

class  bb::scalar_multiplication::MSM< Curve >
 
struct  bb::scalar_multiplication::MSM< Curve >::MSMWorkUnit
 MSMWorkUnit describes an MSM that may be part of a larger MSM. More...
 
struct  bb::scalar_multiplication::MSM< Curve >::MSMData
 Container for MSM input data passed between algorithm stages. More...
 
struct  bb::scalar_multiplication::MSM< Curve >::BucketAccumulators
 Affine bucket accumulators for the fast affine-trick Pippenger variant. More...
 
struct  bb::scalar_multiplication::MSM< Curve >::JacobianBucketAccumulators
 Jacobian bucket accumulators for the safe Pippenger variant. More...
 
struct  bb::scalar_multiplication::MSM< Curve >::AffineAdditionData
 Scratch space for batched affine point additions (one per thread) More...
 
struct  bb::scalar_multiplication::MSM< Curve >::PointScheduleEntry
 Packed point schedule entry: (point_index << 32) | bucket_index. More...
 

Namespaces

namespace  bb
 Entry point for Barretenberg command-line interface.
 
namespace  bb::scalar_multiplication
 

Functions

template<typename Curve >
Curve::Element bb::scalar_multiplication::pippenger (PolynomialSpan< const typename Curve::ScalarField > scalars, std::span< const typename Curve::AffineElement > points, bool handle_edge_cases=true) noexcept
 Safe MSM wrapper (defaults to handle_edge_cases=true)
 
template<typename Curve >
Curve::Element bb::scalar_multiplication::pippenger_unsafe (PolynomialSpan< const typename Curve::ScalarField > scalars, std::span< const typename Curve::AffineElement > points) noexcept
 Fast MSM wrapper for linearly independent points (no edge case handling)