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

Identifies contiguous ranges of duplicate commitments in the AllEntities ordering so that Shplemini can merge their scalar multiplications before the final MSM. More...

#include <repeated_commitments_data.hpp>

Public Attributes

size_t original_start = 0
 
size_t duplicate_start = 0
 
size_t count = 0
 

Detailed Description

Identifies contiguous ranges of duplicate commitments in the AllEntities ordering so that Shplemini can merge their scalar multiplications before the final MSM.

A "shifted" polynomial shares the same commitment as its unshifted original (it is the same multilinear polynomial, just evaluated at the next row of the execution trace). Without this optimization the verifier would perform two separate scalar muls against the same group element. Each DuplicateRange pairs the originals with their duplicates so Shplemini can add their scalars and erase the duplicate entries.

Up to two contiguous ranges are supported (sufficient for all current flavors).

Definition at line 23 of file repeated_commitments_data.hpp.

Member Data Documentation

◆ count

size_t bb::DuplicateRange::count = 0

Definition at line 26 of file repeated_commitments_data.hpp.

◆ duplicate_start

size_t bb::DuplicateRange::duplicate_start = 0

Definition at line 25 of file repeated_commitments_data.hpp.

◆ original_start

size_t bb::DuplicateRange::original_start = 0

Definition at line 24 of file repeated_commitments_data.hpp.


The documentation for this struct was generated from the following file: