89 " points with an SRS of size ",
92 return scalar_multiplication::pippenger_unsafe<Curve>(polynomial, point_table, has_duplicates_hint);
105 std::span<const uint32_t> dedup_infos = {})
const
110 scalar_spans.reserve(polynomials.size());
112 for (
auto& polynomial : polynomials) {
113 const size_t consumed_srs = polynomial.start_index() + polynomial.size();
117 " points with an SRS of size ",
120 scalar_spans.emplace_back(polynomial.start_index(), polynomial.coeffs());
125 return std::vector<Commitment>(results.begin(), results.end());
140 for (
size_t i = 0; i < commitments.size(); ++i) {
141 transcript->send_to_verifier(
labels[i], commitments[i]);
147 const std::string&
label,
148 bool has_duplicates_hint =
false,
149 uint32_t measured_duplicate_count = 0)
151 wires.push_back(poly);
#define BB_BENCH_NAME(name)
CommitmentKey object over a pairing group 𝔾₁.
static constexpr size_t round_up_to_even(size_t n)
size_t get_monomial_size() const
typename Curve::ScalarField Fr
std::span< Commitment > get_monomial_points() const
typename Curve::AffineElement Commitment
CommitmentKey(const size_t num_points)
Construct a new Kate Commitment Key object from existing SRS.
bool initialized() const
Checks the commitment key is properly initialized.
std::shared_ptr< srs::factories::Crs< Curve > > srs
CommitBatch start_batch()
std::vector< Commitment > batch_commit(RefSpan< Polynomial< Fr > > polynomials, std::span< const uint32_t > dedup_infos={}) const
Batch commitment to multiple polynomials.
Commitment commit(PolynomialSpan< const Fr > polynomial, bool has_duplicates_hint=false) const
Uses the ProverSRS to create a commitment to p(X)
A template class for a reference vector. Behaves as if std::vector<T&> was possible.
typename Group::affine_element AffineElement
static std::vector< AffineElement > batch_multi_scalar_mul(std::span< const AffineElement > points, std::span< PolynomialSpan< ScalarField > > scalars, bool handle_edge_cases=true, std::span< const uint32_t > dedup_infos={}) noexcept
std::string format(Args... args)
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
std::vector< std::string > labels
std::vector< uint32_t > dedup_infos
void add_to_batch(Polynomial< Fr > &poly, const std::string &label, bool has_duplicates_hint=false, uint32_t measured_duplicate_count=0)
RefVector< Polynomial< Fr > > wires
std::vector< Commitment > commit_and_send_to_verifier(auto transcript)
void throw_or_abort(std::string const &err)