barretenberg
Loading...
Searching...
No Matches
polynomial_store.hpp
1#pragma once
2
3#include "barretenberg/common/assert.hpp"
4#include "barretenberg/polynomials/polynomial.hpp"
5#include <cstddef>
6#include <map>
7#include <string>
8#include <unordered_map>
9
10namespace proof_system {
11
12template <typename Fr> class PolynomialStore {
13 private:
15 std::unordered_map<std::string, Polynomial> polynomial_map;
16
17 public:
21 void put(std::string const& key, Polynomial&& value);
22
27 Polynomial get(std::string const& key);
28
29 void remove(std::string const& key);
30
31 size_t get_size_in_bytes() const;
32
33 void print();
34
35 // Basic map methods
36 bool contains(std::string const& key) { return polynomial_map.contains(key); };
37 size_t size() { return polynomial_map.size(); };
38
39 // Allow for const range based for loop
40 typename std::unordered_map<std::string, Polynomial>::const_iterator begin() const
41 {
42 return polynomial_map.begin();
43 }
44 typename std::unordered_map<std::string, Polynomial>::const_iterator end() const { return polynomial_map.end(); }
45};
46
47extern template class PolynomialStore<barretenberg::fr>;
48
49} // namespace proof_system
Definition: polynomial.hpp:12
Definition: polynomial_store.hpp:12
size_t get_size_in_bytes() const
Get the current size (bytes) of all polynomials in the PolynomialStore.
Definition: polynomial_store.cpp:50
void put(std::string const &key, Polynomial &&value)
Definition: polynomial_store.cpp:11
void print()
Print a summary of the PolynomialStore contents.
Definition: polynomial_store.cpp:63
void remove(std::string const &key)
Erase the polynomial with the given key from the map if it exists. (ASSERT that it does)
Definition: polynomial_store.cpp:39
Polynomial get(std::string const &key)
Get a reference to a polynomial in the PolynomialStore; will throw exception if the key does not exis...
Definition: polynomial_store.cpp:25