Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
pippenger_constantine.hpp File Reference
#include "barretenberg/ecc/groups/booth_recode.hpp"
#include <cstddef>
#include <cstdint>

Go to the source code of this file.

Classes

struct  bb::scalar_multiplication::round_parallel_detail::ConstantineSliceParamsU32
 

Namespaces

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

Typedefs

using bb::scalar_multiplication::round_parallel_detail::ConstantineSliceParams = BoothSliceParams
 
using bb::scalar_multiplication::round_parallel_detail::SimdU32x4 = uint32_t __attribute__((vector_size(16)))
 

Enumerations

enum class  bb::scalar_multiplication::round_parallel_detail::ConstantineSlicePath : uint8_t { bb::scalar_multiplication::round_parallel_detail::Localised = 0 , bb::scalar_multiplication::round_parallel_detail::Bottom = 1 , bb::scalar_multiplication::round_parallel_detail::Boundary = 2 }
 

Functions

ConstantineSliceParams bb::scalar_multiplication::round_parallel_detail::compute_constantine_slice_params (size_t bit_offset, size_t window_bits, size_t num_uint64_limbs) noexcept
 
uint32_t bb::scalar_multiplication::round_parallel_detail::get_constantine_packed_digit (const uint64_t *scalar_data, uint32_t lo_limb, uint32_t hi_limb, uint32_t lo_off, uint32_t lo_bits, uint32_t lo_mask, uint32_t hi_mask, bool slice_localised_to_one_u64, size_t window_bits) noexcept
 Read (window_bits+1) bits from scalar_data (uint64 limbs) using precomputed slice params and apply Constantine's signedWindowEncoding to produce a (sign | bucket) packed digit.
 
ConstantineSliceParamsU32 bb::scalar_multiplication::round_parallel_detail::compute_constantine_slice_params_u32 (size_t bit_offset, size_t window_bits, size_t num_u32_limbs) noexcept
 
SimdU32x4 bb::scalar_multiplication::round_parallel_detail::gather_x4_u32 (const uint32_t *p0, const uint32_t *p1, const uint32_t *p2, const uint32_t *p3, uint32_t idx) noexcept
 
void bb::scalar_multiplication::round_parallel_detail::simd_u32x4_store (uint32_t *dst, SimdU32x4 v) noexcept
 
void bb::scalar_multiplication::round_parallel_detail::store_constantine_packed_digits_x4_localised (uint32_t *dst, const uint32_t *scalar_data_0, const uint32_t *scalar_data_1, const uint32_t *scalar_data_2, const uint32_t *scalar_data_3, uint32_t lo_limb, uint32_t lo_off, SimdU32x4 lo_mask_v, SimdU32x4 one_v, SimdU32x4 val_mask, uint32_t window_bits) noexcept
 
void bb::scalar_multiplication::round_parallel_detail::store_constantine_packed_digits_x4_bottom (uint32_t *dst, const uint32_t *scalar_data_0, const uint32_t *scalar_data_1, const uint32_t *scalar_data_2, const uint32_t *scalar_data_3, uint32_t hi_limb, uint32_t lo_bits, SimdU32x4 hi_mask_v, SimdU32x4 one_v, SimdU32x4 val_mask, uint32_t window_bits) noexcept
 
void bb::scalar_multiplication::round_parallel_detail::store_constantine_packed_digits_x4_boundary (uint32_t *dst, const uint32_t *scalar_data_0, const uint32_t *scalar_data_1, const uint32_t *scalar_data_2, const uint32_t *scalar_data_3, uint32_t lo_limb, uint32_t hi_limb, uint32_t lo_off, uint32_t lo_bits, SimdU32x4 lo_mask_v, SimdU32x4 hi_mask_v, SimdU32x4 one_v, SimdU32x4 val_mask, uint32_t window_bits) noexcept
 
ConstantineSlicePath bb::scalar_multiplication::round_parallel_detail::classify_slice_path_u32 (const ConstantineSliceParamsU32 &sp) noexcept