Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
pippenger_dedup.hpp File Reference
#include "./pippenger_arena_layout.hpp"
#include "barretenberg/common/assert.hpp"
#include "barretenberg/common/bb_bench.hpp"
#include "barretenberg/common/compiler_hints.hpp"
#include "barretenberg/common/thread.hpp"
#include <cstddef>
#include <cstdint>
#include <span>
#include <utility>

Go to the source code of this file.

Classes

struct  bb::scalar_multiplication::round_parallel_detail::DedupResult< Curve >
 
struct  bb::scalar_multiplication::round_parallel_detail::PhaseAScratch< Curve >
 

Namespaces

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

Functions

uint64_t bb::scalar_multiplication::round_parallel_detail::dedup_scalar_fingerprint (const uint64_t *scalar_data) noexcept
 
size_t bb::scalar_multiplication::round_parallel_detail::dedup_fingerprint_slot (uint64_t fingerprint, size_t mask) noexcept
 
template<typename Curve >
size_t bb::scalar_multiplication::round_parallel_detail::dedup_tree_reduce_in_place (typename Curve::AffineElement *pts, uint32_t *ids, size_t initial_len, typename Curve::AffineElement *scratch_pts, uint32_t *pair_dest, typename Curve::BaseField *inversion_scratch) noexcept
 
template<typename Curve >
size_t bb::scalar_multiplication::round_parallel_detail::dedup_phase_a_worker_hash (const uint32_t *schedule_w0, const size_t *w0_bucket_start, size_t b_lo, size_t b_hi, std::span< const typename Curve::ScalarField > scalars, std::span< const typename Curve::AffineElement > points, std::span< typename Curve::AffineElement > extra_points, std::span< uint32_t > redirect_lookup, const uint8_t *msb_per_scalar, size_t c_threshold, uint32_t cid_lo, uint32_t cid_max, PhaseAScratch< Curve > &scratch) noexcept
 
template<typename Curve >
void bb::scalar_multiplication::round_parallel_detail::dedup_patch_schedule_window (uint32_t *__restrict sched_w, size_t *__restrict bucket_start, size_t num_buckets, const uint32_t *__restrict redirect_lookup) noexcept
 

Variables

constexpr uint32_t bb::scalar_multiplication::round_parallel_detail::SCHEDULE_SIGN_BIT = uint32_t{ 1 } << 31
 
constexpr uint32_t bb::scalar_multiplication::round_parallel_detail::DEDUP_REDIRECT_BIT = uint32_t{ 1 } << 30
 
constexpr uint32_t bb::scalar_multiplication::round_parallel_detail::DEDUP_SKIP_BIT = uint32_t{ 1 } << 29
 
constexpr uint32_t bb::scalar_multiplication::round_parallel_detail::SCHEDULE_INDEX_MASK = DEDUP_SKIP_BIT - 1
 
constexpr uint32_t bb::scalar_multiplication::round_parallel_detail::DEDUP_INVALID_EXTRA = ~uint32_t{ 0 }