2#include "barretenberg/common/mem.hpp"
3#include "barretenberg/ecc/curves/bn254/bn254.hpp"
4#include "barretenberg/ecc/curves/bn254/g1.hpp"
5#include "barretenberg/ecc/curves/bn254/g2.hpp"
6#include "barretenberg/ecc/curves/grumpkin/grumpkin.hpp"
9namespace barretenberg::pairing {
13namespace barretenberg::srs::factories {
27 virtual size_t get_monomial_size()
const = 0;
38 virtual Curve::G2AffineElement get_g2x()
const = 0;
60 virtual size_t get_monomial_size()
const = 0;
77 virtual std::shared_ptr<barretenberg::srs::factories::ProverCrs<Curve>> get_prover_crs(
size_t) {
return nullptr; }
78 virtual std::shared_ptr<barretenberg::srs::factories::VerifierCrs<Curve>> get_verifier_crs(
79 [[maybe_unused]]
size_t degree = 0)
Definition: crs_factory.hpp:72
Definition: crs_factory.hpp:18
virtual Curve::AffineElement * get_monomial_points()=0
Returns the monomial points in a form to be consumed by scalar_multiplication pippenger algorithm.
virtual Curve::AffineElement get_first_g1() const =0
Returns the first G_1 element from the CRS, used by the Shplonk verifier to compute the final commtim...
virtual barretenberg::pairing::miller_lines const * get_precomputed_g2_lines() const =0
As the G_2 element of the CRS is fixed, we can precompute the operations performed on it during the p...
virtual Curve::AffineElement * get_monomial_points() const =0
Returns the G_1 elements in the CRS after the pippenger point table has been applied on them.
virtual Curve::AffineElement get_first_g1() const =0
Returns the first G_1 element from the CRS, used by the Shplonk verifier to compute the final commtim...
Definition: crs_factory.hpp:30
Definition: grumpkin.hpp:36
Definition: pairing.hpp:27