12class MemGrumpkinCrs :
public Crs<Grumpkin> {
14 MemGrumpkinCrs(
const MemGrumpkinCrs&) =
delete;
15 MemGrumpkinCrs(MemGrumpkinCrs&&) noexcept = default;
16 MemGrumpkinCrs& operator=(const MemGrumpkinCrs&) = delete;
17 MemGrumpkinCrs& operator=(MemGrumpkinCrs&&) = delete;
19 MemGrumpkinCrs(
std::vector<
Grumpkin::AffineElement> const& points)
20 : monomials_(points.size())
22 std::copy(points.begin(), points.end(), monomials_.begin());
25 ~MemGrumpkinCrs()
override =
default;
27 size_t get_monomial_size()
const override {
return monomials_.size(); }
39 : crs_(
std::make_shared<MemGrumpkinCrs>(points))
41 if (points.empty() || !points[0].on_curve()) {
50 if (
crs_->get_monomial_size() < degree) {
54 crs_->get_monomial_size()));
static constexpr const char * name
typename Group::affine_element AffineElement
MemGrumpkinCrsFactory(const std::vector< curve::Grumpkin::AffineElement > &points)
std::shared_ptr< Crs< curve::Grumpkin > > crs_
std::shared_ptr< Crs< curve::Grumpkin > > get_crs(size_t degree) override
std::string format(Args... args)
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
void throw_or_abort(std::string const &err)