Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::scalar_multiplication Namespace Reference

Classes

class  MSM
 

Functions

void radix_sort_count_zero_entries (uint64_t *keys, const size_t num_entries, const uint32_t shift, size_t &num_zero_entries, const uint32_t total_bits, const uint64_t *start_pointer) noexcept
 
size_t process_buckets_count_zero_entries (uint64_t *wnaf_entries, const size_t num_entries, const uint32_t num_bits) noexcept
 
template<typename Curve >
Curve::Element small_mul (std::span< const typename Curve::ScalarField > &scalars, std::span< const typename Curve::AffineElement > &points, std::span< const uint32_t > scalar_indices, size_t range) noexcept
 Fallback method for very small numbers of input points.
 
template<typename Curve >
Curve::Element pippenger (PolynomialSpan< const typename Curve::ScalarField > scalars, std::span< const typename Curve::AffineElement > points, bool handle_edge_cases) noexcept
 
template<typename Curve >
Curve::Element pippenger_unsafe (PolynomialSpan< const typename Curve::ScalarField > scalars, std::span< const typename Curve::AffineElement > points) noexcept
 
template curve::Grumpkin::Element pippenger< curve::Grumpkin > (PolynomialSpan< const curve::Grumpkin::ScalarField > scalars, std::span< const curve::Grumpkin::AffineElement > points, bool handle_edge_cases=true) noexcept
 
template curve::Grumpkin::Element pippenger_unsafe< curve::Grumpkin > (PolynomialSpan< const curve::Grumpkin::ScalarField > scalars, std::span< const curve::Grumpkin::AffineElement > points)
 
template curve::BN254::Element pippenger< curve::BN254 > (PolynomialSpan< const curve::BN254::ScalarField > scalars, std::span< const curve::BN254::AffineElement > points, bool handle_edge_cases=true)
 
template curve::BN254::Element pippenger_unsafe< curve::BN254 > (PolynomialSpan< const curve::BN254::ScalarField > scalars, std::span< const curve::BN254::AffineElement > points)
 

Function Documentation

◆ pippenger()

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 
)
noexcept

Definition at line 868 of file scalar_multiplication.cpp.

◆ pippenger< curve::BN254 >()

template curve::BN254::Element bb::scalar_multiplication::pippenger< curve::BN254 > ( PolynomialSpan< const curve::BN254::ScalarField scalars,
std::span< const curve::BN254::AffineElement points,
bool  handle_edge_cases = true 
)

◆ pippenger< curve::Grumpkin >()

template curve::Grumpkin::Element bb::scalar_multiplication::pippenger< curve::Grumpkin > ( PolynomialSpan< const curve::Grumpkin::ScalarField scalars,
std::span< const curve::Grumpkin::AffineElement points,
bool  handle_edge_cases = true 
)
noexcept

◆ pippenger_unsafe()

template<typename Curve >
Curve::Element bb::scalar_multiplication::pippenger_unsafe ( PolynomialSpan< const typename Curve::ScalarField scalars,
std::span< const typename Curve::AffineElement points 
)
noexcept

Definition at line 876 of file scalar_multiplication.cpp.

◆ pippenger_unsafe< curve::BN254 >()

◆ pippenger_unsafe< curve::Grumpkin >()

◆ process_buckets_count_zero_entries()

size_t bb::scalar_multiplication::process_buckets_count_zero_entries ( uint64_t *  wnaf_entries,
const size_t  num_entries,
const uint32_t  num_bits 
)
noexcept

Definition at line 74 of file process_buckets.cpp.

◆ radix_sort_count_zero_entries()

void bb::scalar_multiplication::radix_sort_count_zero_entries ( uint64_t *  keys,
const size_t  num_entries,
const uint32_t  shift,
size_t &  num_zero_entries,
const uint32_t  total_bits,
const uint64_t *  start_pointer 
)
noexcept

Definition at line 14 of file process_buckets.cpp.

◆ small_mul()

template<typename Curve >
Curve::Element bb::scalar_multiplication::small_mul ( std::span< const typename Curve::ScalarField > &  scalars,
std::span< const typename Curve::AffineElement > &  points,
std::span< const uint32_t >  scalar_indices,
size_t  range 
)
noexcept

Fallback method for very small numbers of input points.

Template Parameters
Curve
Parameters
scalars
points
range
Returns
Curve::Element

Definition at line 34 of file scalar_multiplication.cpp.