|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
A univariate polynomial represented by its values on {0, 1,..., domain_end - 1}. More...
#include <univariate.hpp>
Public Types | |
| using | View = UnivariateView< Fr, domain_end > |
| using | CoefficientAccumulator = UnivariateCoefficientBasis< Fr, MONOMIAL_LENGTH, true > |
| using | value_type = Fr |
Public Member Functions | |
| Univariate ()=default | |
| Univariate (const std::array< Fr, LENGTH > &evaluations) | |
| ~Univariate ()=default | |
| Univariate (const Univariate &other)=default | |
| Univariate (Univariate &&other) noexcept=default | |
| Univariate & | operator= (const Univariate &other)=default |
| Univariate & | operator= (Univariate &&other) noexcept=default |
| operator UnivariateCoefficientBasis< Fr, 2, true > () const | |
| template<bool has_a0_plus_a1> | |
| Univariate (const UnivariateCoefficientBasis< Fr, 2, has_a0_plus_a1 > &monomial) | |
| template<bool has_a0_plus_a1> | |
| Univariate (const UnivariateCoefficientBasis< Fr, 3, has_a0_plus_a1 > &monomial) | |
| Univariate (const Fr &value) | |
| Univariate (const UnivariateView< Fr, domain_end > &in) | |
| Fr & | value_at (size_t i) |
| const Fr & | value_at (size_t i) const |
| size_t | size () |
| bool | is_zero () const |
| std::vector< uint8_t > | to_buffer () const |
| bool | operator== (const Univariate &other) const =default |
| Univariate & | operator+= (const Univariate &other) |
| Univariate & | operator-= (const Univariate &other) |
| Univariate & | operator*= (const Univariate &other) |
| Univariate & | self_sqr () |
| Univariate | operator+ (const Univariate &other) const |
| Univariate | operator- (const Univariate &other) const |
| Univariate | operator- () const |
| Univariate | operator* (const Univariate &other) const |
| Univariate | sqr () const |
| Univariate & | operator+= (const Fr &scalar) |
| Univariate & | operator-= (const Fr &scalar) |
| Univariate & | operator*= (const Fr &scalar) |
| Univariate | operator+ (const Fr &scalar) const |
| Univariate | operator- (const Fr &scalar) const |
| Univariate | operator* (const Fr &scalar) const |
| Univariate & | operator+= (const UnivariateView< Fr, domain_end > &view) |
| Univariate & | operator-= (const UnivariateView< Fr, domain_end > &view) |
| Univariate & | operator*= (const UnivariateView< Fr, domain_end > &view) |
| Univariate | operator+ (const UnivariateView< Fr, domain_end > &view) const |
| Univariate | operator- (const UnivariateView< Fr, domain_end > &view) const |
| Univariate | operator* (const UnivariateView< Fr, domain_end > &view) const |
| template<size_t EXTENDED_DOMAIN_END> requires (domain_end == 2) | |
| operator Univariate< Fr, EXTENDED_DOMAIN_END > () | |
| template<size_t EXTENDED_DOMAIN_END> | |
| Univariate< Fr, EXTENDED_DOMAIN_END > | extend_to () const |
| Given a univariate f represented by {f(0), ..., f(domain_end - 1)}, compute the evaluations {f(domain_end),..., f(extended_domain_end -1)} and return the Univariate represented by {f(0),..., f(extended_domain_end -1)}. | |
| template<size_t INITIAL_LENGTH> | |
| void | self_extend_from () |
| Compute the evaluations of the polynomial from the INITIAL_LENGTH up to the total LENGTH. Currently only supports INITIAL_LENGTH = 2. | |
| Fr | evaluate (const Fr &u) const |
| Evaluate a univariate at a point u not known at compile time and assumed not to be in the domain (else we divide by zero). | |
| auto | begin () |
| auto | begin () const |
| auto | end () |
| auto | end () const |
Static Public Member Functions | |
| static Univariate | serialize_from_buffer (uint8_t const *buffer) |
| static Univariate | get_random () |
| static Univariate | zero () |
Public Attributes | |
| std::array< Fr, LENGTH > | evaluations |
Static Public Attributes | |
| static constexpr size_t | LENGTH = domain_end |
| static constexpr size_t | MONOMIAL_LENGTH = LENGTH > 1 ? 2 : 1 |
Friends | |
| std::ostream & | operator<< (std::ostream &os, const Univariate &u) |
A univariate polynomial represented by its values on {0, 1,..., domain_end - 1}.
Definition at line 32 of file univariate.hpp.
| using bb::Univariate< Fr, domain_end >::CoefficientAccumulator = UnivariateCoefficientBasis<Fr, MONOMIAL_LENGTH, true> |
Definition at line 37 of file univariate.hpp.
| using bb::Univariate< Fr, domain_end >::value_type = Fr |
Definition at line 39 of file univariate.hpp.
| using bb::Univariate< Fr, domain_end >::View = UnivariateView<Fr, domain_end> |
Definition at line 35 of file univariate.hpp.
|
default |
|
inlineexplicit |
Definition at line 45 of file univariate.hpp.
|
default |
|
default |
|
defaultnoexcept |
|
inline |
Definition at line 67 of file univariate.hpp.
|
inline |
Definition at line 80 of file univariate.hpp.
|
inlineexplicit |
Definition at line 98 of file univariate.hpp.
|
inlineexplicit |
Definition at line 106 of file univariate.hpp.
|
inline |
Definition at line 533 of file univariate.hpp.
|
inline |
Definition at line 534 of file univariate.hpp.
|
inline |
Definition at line 536 of file univariate.hpp.
|
inline |
Definition at line 537 of file univariate.hpp.
|
inline |
Evaluate a univariate at a point u not known at compile time and assumed not to be in the domain (else we divide by zero).
| f |
Definition at line 502 of file univariate.hpp.
|
inline |
Given a univariate f represented by {f(0), ..., f(domain_end - 1)}, compute the evaluations {f(domain_end),..., f(extended_domain_end -1)} and return the Univariate represented by {f(0),..., f(extended_domain_end -1)}.
Write v_i = f(x_i) on the domain {x_0, ..., x_{domain_end-1}}. To efficiently compute the needed values of f, we use the barycentric formula
When the domain size is two, extending f = v0(1-X) + v1X to a new value involves just one addition and a subtraction: setting Δ = v1-v0, the values of f(X) are f(0)=v0, f(1)= v0 + Δ, v2 = f(1) + Δ, v3 = f(2) + Δ...
Definition at line 351 of file univariate.hpp.
|
inlinestatic |
Definition at line 142 of file univariate.hpp.
|
inline |
Definition at line 119 of file univariate.hpp.
|
inlineexplicit |
Definition at line 328 of file univariate.hpp.
|
inlineexplicit |
Definition at line 54 of file univariate.hpp.
|
inline |
Definition at line 258 of file univariate.hpp.
|
inline |
Definition at line 206 of file univariate.hpp.
|
inline |
Definition at line 304 of file univariate.hpp.
|
inline |
Definition at line 236 of file univariate.hpp.
|
inline |
Definition at line 170 of file univariate.hpp.
|
inline |
Definition at line 282 of file univariate.hpp.
|
inline |
Definition at line 244 of file univariate.hpp.
|
inline |
Definition at line 184 of file univariate.hpp.
|
inline |
Definition at line 290 of file univariate.hpp.
|
inline |
Definition at line 221 of file univariate.hpp.
|
inline |
Definition at line 156 of file univariate.hpp.
|
inline |
Definition at line 266 of file univariate.hpp.
|
inline |
Definition at line 197 of file univariate.hpp.
|
inline |
Definition at line 251 of file univariate.hpp.
|
inline |
Definition at line 191 of file univariate.hpp.
|
inline |
Definition at line 297 of file univariate.hpp.
|
inline |
Definition at line 229 of file univariate.hpp.
|
inline |
Definition at line 163 of file univariate.hpp.
|
inline |
Definition at line 274 of file univariate.hpp.
|
default |
|
defaultnoexcept |
|
default |
|
inline |
Compute the evaluations of the polynomial from the INITIAL_LENGTH up to the total LENGTH. Currently only supports INITIAL_LENGTH = 2.
| INITIAL_LENGTH |
Definition at line 482 of file univariate.hpp.
|
inline |
Definition at line 177 of file univariate.hpp.
|
inlinestatic |
Definition at line 135 of file univariate.hpp.
|
inline |
Definition at line 116 of file univariate.hpp.
|
inline |
Definition at line 213 of file univariate.hpp.
|
inline |
Definition at line 130 of file univariate.hpp.
|
inline |
Definition at line 114 of file univariate.hpp.
|
inline |
Definition at line 115 of file univariate.hpp.
|
inlinestatic |
Definition at line 151 of file univariate.hpp.
|
friend |
Definition at line 312 of file univariate.hpp.
| std::array<Fr, LENGTH> bb::Univariate< Fr, domain_end >::evaluations |
Definition at line 41 of file univariate.hpp.
|
staticconstexpr |
Definition at line 34 of file univariate.hpp.
|
staticconstexpr |
Definition at line 36 of file univariate.hpp.