Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::Univariate< Fr, domain_end, domain_start, skip_count > Class Template Reference

A univariate polynomial represented by its values on {domain_start, domain_start + 1,..., domain_end - 1}. For memory efficiency purposes, we store the evaluations in an array starting from 0 and make the mapping to the right domain under the hood. More...

#include <univariate.hpp>

Public Types

using View = UnivariateView< Fr, domain_end, domain_start, skip_count >
 
using CoefficientAccumulator = UnivariateCoefficientBasis< Fr, MONOMIAL_LENGTH, true >
 
using value_type = Fr
 

Public Member Functions

 Univariate ()=default
 
 Univariate (std::array< Fr, LENGTH > evaluations)
 
 ~Univariate ()=default
 
 Univariate (const Univariate &other)=default
 
 Univariate (Univariate &&other) noexcept=default
 
Univariateoperator= (const Univariate &other)=default
 
Univariateoperator= (Univariate &&other) noexcept=default
 
 operator UnivariateCoefficientBasis< Fr, 2, true > () const
 
template<bool has_a0_plus_a1>
 Univariate (UnivariateCoefficientBasis< Fr, 2, has_a0_plus_a1 > monomial)
 
template<bool has_a0_plus_a1>
 Univariate (UnivariateCoefficientBasis< Fr, 3, has_a0_plus_a1 > monomial)
 
Univariate< Fr, domain_end, domain_start > convert () const noexcept
 Convert from a version with skipped evaluations to one without skipping (with zeroes in previously skipped locations)
 
 Univariate (Fr value)
 
 Univariate (UnivariateView< Fr, domain_end, domain_start, skip_count > in)
 
Frvalue_at (size_t i)
 
const Frvalue_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
 
Univariateoperator+= (const Univariate &other)
 
Univariateoperator-= (const Univariate &other)
 
Univariateoperator*= (const Univariate &other)
 
Univariateself_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
 
Univariateoperator+= (const Fr &scalar)
 
Univariateoperator-= (const Fr &scalar)
 
Univariateoperator*= (const Fr &scalar)
 
Univariate operator+ (const Fr &scalar) const
 
Univariate operator- (const Fr &scalar) const
 
Univariate operator* (const Fr &scalar) const
 
Univariateoperator+= (const UnivariateView< Fr, domain_end, domain_start, skip_count > &view)
 
Univariateoperator-= (const UnivariateView< Fr, domain_end, domain_start, skip_count > &view)
 
Univariateoperator*= (const UnivariateView< Fr, domain_end, domain_start, skip_count > &view)
 
Univariate operator+ (const UnivariateView< Fr, domain_end, domain_start, skip_count > &view) const
 
Univariate operator- (const UnivariateView< Fr, domain_end, domain_start, skip_count > &view) const
 
Univariate operator* (const UnivariateView< Fr, domain_end, domain_start, skip_count > &view) const
 
template<size_t EXTENDED_DOMAIN_END, size_t NUM_SKIPPED_INDICES = 0>
requires (domain_start == 0 && domain_end == 2)
 operator Univariate< Fr, EXTENDED_DOMAIN_END, 0, NUM_SKIPPED_INDICES > ()
 
template<size_t EXTENDED_DOMAIN_END, size_t NUM_SKIPPED_INDICES = 0>
Univariate< Fr, EXTENDED_DOMAIN_END, 0, NUM_SKIPPED_INDICES > extend_to () const
 Given a univariate f represented by {f(domain_start), ..., f(domain_end - 1)}, compute the evaluations {f(domain_end),..., f(extended_domain_end -1)} and return the Univariate represented by {f(domain_start),..., 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 ()
 
static Univariate random_element ()
 

Public Attributes

std::array< Fr, LENGTHevaluations
 

Static Public Attributes

static constexpr size_t LENGTH = domain_end - domain_start
 
static constexpr size_t SKIP_COUNT = skip_count
 
static constexpr size_t MONOMIAL_LENGTH = LENGTH > 1 ? 2 : 1
 

Friends

std::ostream & operator<< (std::ostream &os, const Univariate &u)
 

Detailed Description

template<class Fr, size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
class bb::Univariate< Fr, domain_end, domain_start, skip_count >

A univariate polynomial represented by its values on {domain_start, domain_start + 1,..., domain_end - 1}. For memory efficiency purposes, we store the evaluations in an array starting from 0 and make the mapping to the right domain under the hood.

Template Parameters
skip_countSkip computing the values of the univariate at the points [domain_start+1, .., domain_start+skip_count]. Used for optimising the computation of the combiner (the polynomial \(G\)) in Protogalaxy. The value at [domain_start] is the value from the accumulator, while the values at [domain_start+1, ... domain_start + skip_count] should be zero if the skip_count-many keys to be folded are all valid.

Definition at line 36 of file univariate.hpp.

Member Typedef Documentation

◆ CoefficientAccumulator

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
using bb::Univariate< Fr, domain_end, domain_start, skip_count >::CoefficientAccumulator = UnivariateCoefficientBasis<Fr, MONOMIAL_LENGTH, true>

Definition at line 42 of file univariate.hpp.

◆ value_type

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
using bb::Univariate< Fr, domain_end, domain_start, skip_count >::value_type = Fr

Definition at line 44 of file univariate.hpp.

◆ View

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
using bb::Univariate< Fr, domain_end, domain_start, skip_count >::View = UnivariateView<Fr, domain_end, domain_start, skip_count>

Definition at line 40 of file univariate.hpp.

Constructor & Destructor Documentation

◆ Univariate() [1/8]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
bb::Univariate< Fr, domain_end, domain_start, skip_count >::Univariate ( )
default

◆ Univariate() [2/8]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
bb::Univariate< Fr, domain_end, domain_start, skip_count >::Univariate ( std::array< Fr, LENGTH evaluations)
inlineexplicit

Definition at line 51 of file univariate.hpp.

◆ ~Univariate()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
bb::Univariate< Fr, domain_end, domain_start, skip_count >::~Univariate ( )
default

◆ Univariate() [3/8]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
bb::Univariate< Fr, domain_end, domain_start, skip_count >::Univariate ( const Univariate< Fr, domain_end, domain_start, skip_count > &  other)
default

◆ Univariate() [4/8]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
bb::Univariate< Fr, domain_end, domain_start, skip_count >::Univariate ( Univariate< Fr, domain_end, domain_start, skip_count > &&  other)
defaultnoexcept

◆ Univariate() [5/8]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
template<bool has_a0_plus_a1>
bb::Univariate< Fr, domain_end, domain_start, skip_count >::Univariate ( UnivariateCoefficientBasis< Fr, 2, has_a0_plus_a1 >  monomial)
inline

Definition at line 74 of file univariate.hpp.

◆ Univariate() [6/8]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
template<bool has_a0_plus_a1>
bb::Univariate< Fr, domain_end, domain_start, skip_count >::Univariate ( UnivariateCoefficientBasis< Fr, 3, has_a0_plus_a1 >  monomial)
inline

Definition at line 92 of file univariate.hpp.

◆ Univariate() [7/8]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
bb::Univariate< Fr, domain_end, domain_start, skip_count >::Univariate ( Fr  value)
inlineexplicit

Definition at line 134 of file univariate.hpp.

◆ Univariate() [8/8]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
bb::Univariate< Fr, domain_end, domain_start, skip_count >::Univariate ( UnivariateView< Fr, domain_end, domain_start, skip_count >  in)
inlineexplicit

Definition at line 142 of file univariate.hpp.

Member Function Documentation

◆ begin() [1/2]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
auto bb::Univariate< Fr, domain_end, domain_start, skip_count >::begin ( )
inline

Definition at line 609 of file univariate.hpp.

◆ begin() [2/2]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
auto bb::Univariate< Fr, domain_end, domain_start, skip_count >::begin ( ) const
inline

Definition at line 610 of file univariate.hpp.

◆ convert()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate< Fr, domain_end, domain_start > bb::Univariate< Fr, domain_end, domain_start, skip_count >::convert ( ) const
inlinenoexcept

Convert from a version with skipped evaluations to one without skipping (with zeroes in previously skipped locations)

Returns
Univariate<Fr, domain_end, domain_start>

Definition at line 120 of file univariate.hpp.

◆ end() [1/2]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
auto bb::Univariate< Fr, domain_end, domain_start, skip_count >::end ( )
inline

Definition at line 612 of file univariate.hpp.

◆ end() [2/2]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
auto bb::Univariate< Fr, domain_end, domain_start, skip_count >::end ( ) const
inline

Definition at line 613 of file univariate.hpp.

◆ evaluate()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Fr bb::Univariate< Fr, domain_end, domain_start, skip_count >::evaluate ( const Fr u) const
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).

Parameters
f
Returns
Fr

Definition at line 578 of file univariate.hpp.

◆ extend_to()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
template<size_t EXTENDED_DOMAIN_END, size_t NUM_SKIPPED_INDICES = 0>
Univariate< Fr, EXTENDED_DOMAIN_END, 0, NUM_SKIPPED_INDICES > bb::Univariate< Fr, domain_end, domain_start, skip_count >::extend_to ( ) const
inline

Given a univariate f represented by {f(domain_start), ..., f(domain_end - 1)}, compute the evaluations {f(domain_end),..., f(extended_domain_end -1)} and return the Univariate represented by {f(domain_start),..., f(extended_domain_end -1)}.

Write v_i = f(x_i) on a the domain {x_{domain_start}, ..., x_{domain_end-1}}. To efficiently compute the needed values of f, we use the barycentric formula

  • f(x) = B(x) Σ_{i=domain_start}^{domain_end-1} v_i / (d_i*(x-x_i)) where
  • B(x) = Π_{i=domain_start}^{domain_end-1} (x-x_i)
  • d_i = Π_{j ∈ {domain_start, ..., domain_end-1}, j≠i} (x_i-x_j) for i ∈ {domain_start, ..., domain_end-1}

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 440 of file univariate.hpp.

◆ get_random()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
static Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::get_random ( )
inlinestatic

Definition at line 192 of file univariate.hpp.

◆ is_zero()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
bool bb::Univariate< Fr, domain_end, domain_start, skip_count >::is_zero ( ) const
inline

Definition at line 169 of file univariate.hpp.

◆ operator Univariate< Fr, EXTENDED_DOMAIN_END, 0, NUM_SKIPPED_INDICES >()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
template<size_t EXTENDED_DOMAIN_END, size_t NUM_SKIPPED_INDICES = 0>
requires (domain_start == 0 && domain_end == 2)
bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator Univariate< Fr, EXTENDED_DOMAIN_END, 0, NUM_SKIPPED_INDICES > ( )
inlineexplicit

Definition at line 415 of file univariate.hpp.

◆ operator UnivariateCoefficientBasis< Fr, 2, true >()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator UnivariateCoefficientBasis< Fr, 2, true > ( ) const
inlineexplicit

Definition at line 60 of file univariate.hpp.

◆ operator*() [1/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator* ( const Fr scalar) const
inline

Definition at line 342 of file univariate.hpp.

◆ operator*() [2/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator* ( const Univariate< Fr, domain_end, domain_start, skip_count > &  other) const
inline

Definition at line 274 of file univariate.hpp.

◆ operator*() [3/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator* ( const UnivariateView< Fr, domain_end, domain_start, skip_count > &  view) const
inline

Definition at line 391 of file univariate.hpp.

◆ operator*=() [1/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate & bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator*= ( const Fr scalar)
inline

Definition at line 314 of file univariate.hpp.

◆ operator*=() [2/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate & bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator*= ( const Univariate< Fr, domain_end, domain_start, skip_count > &  other)
inline

Definition at line 232 of file univariate.hpp.

◆ operator*=() [3/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate & bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator*= ( const UnivariateView< Fr, domain_end, domain_start, skip_count > &  view)
inline

Definition at line 368 of file univariate.hpp.

◆ operator+() [1/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator+ ( const Fr scalar) const
inline

Definition at line 328 of file univariate.hpp.

◆ operator+() [2/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator+ ( const Univariate< Fr, domain_end, domain_start, skip_count > &  other) const
inline

Definition at line 248 of file univariate.hpp.

◆ operator+() [3/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator+ ( const UnivariateView< Fr, domain_end, domain_start, skip_count > &  view) const
inline

Definition at line 377 of file univariate.hpp.

◆ operator+=() [1/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate & bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator+= ( const Fr scalar)
inline

Definition at line 289 of file univariate.hpp.

◆ operator+=() [2/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate & bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator+= ( const Univariate< Fr, domain_end, domain_start, skip_count > &  other)
inline

Definition at line 215 of file univariate.hpp.

◆ operator+=() [3/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate & bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator+= ( const UnivariateView< Fr, domain_end, domain_start, skip_count > &  view)
inline

Definition at line 350 of file univariate.hpp.

◆ operator-() [1/4]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator- ( ) const
inline

Definition at line 261 of file univariate.hpp.

◆ operator-() [2/4]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator- ( const Fr scalar) const
inline

Definition at line 335 of file univariate.hpp.

◆ operator-() [3/4]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator- ( const Univariate< Fr, domain_end, domain_start, skip_count > &  other) const
inline

Definition at line 255 of file univariate.hpp.

◆ operator-() [4/4]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator- ( const UnivariateView< Fr, domain_end, domain_start, skip_count > &  view) const
inline

Definition at line 384 of file univariate.hpp.

◆ operator-=() [1/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate & bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator-= ( const Fr scalar)
inline

Definition at line 301 of file univariate.hpp.

◆ operator-=() [2/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate & bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator-= ( const Univariate< Fr, domain_end, domain_start, skip_count > &  other)
inline

Definition at line 223 of file univariate.hpp.

◆ operator-=() [3/3]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate & bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator-= ( const UnivariateView< Fr, domain_end, domain_start, skip_count > &  view)
inline

Definition at line 359 of file univariate.hpp.

◆ operator=() [1/2]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate & bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator= ( const Univariate< Fr, domain_end, domain_start, skip_count > &  other)
default

◆ operator=() [2/2]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate & bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator= ( Univariate< Fr, domain_end, domain_start, skip_count > &&  other)
defaultnoexcept

◆ operator==()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
bool bb::Univariate< Fr, domain_end, domain_start, skip_count >::operator== ( const Univariate< Fr, domain_end, domain_start, skip_count > &  other) const
default

◆ random_element()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
static Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::random_element ( )
inlinestatic

Definition at line 210 of file univariate.hpp.

◆ self_extend_from()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
template<size_t INITIAL_LENGTH>
void bb::Univariate< Fr, domain_end, domain_start, skip_count >::self_extend_from ( )
inline

Compute the evaluations of the polynomial from the INITIAL_LENGTH up to the total LENGTH. Currently only supports INITIAL_LENGTH = 2.

Template Parameters
INITIAL_LENGTH

Definition at line 558 of file univariate.hpp.

◆ self_sqr()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate & bb::Univariate< Fr, domain_end, domain_start, skip_count >::self_sqr ( )
inline

Definition at line 240 of file univariate.hpp.

◆ serialize_from_buffer()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
static Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::serialize_from_buffer ( uint8_t const *  buffer)
inlinestatic

Definition at line 185 of file univariate.hpp.

◆ size()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
size_t bb::Univariate< Fr, domain_end, domain_start, skip_count >::size ( )
inline

Definition at line 166 of file univariate.hpp.

◆ sqr()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::sqr ( ) const
inline

Definition at line 281 of file univariate.hpp.

◆ to_buffer()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
std::vector< uint8_t > bb::Univariate< Fr, domain_end, domain_start, skip_count >::to_buffer ( ) const
inline

Definition at line 180 of file univariate.hpp.

◆ value_at() [1/2]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
Fr & bb::Univariate< Fr, domain_end, domain_start, skip_count >::value_at ( size_t  i)
inline

Definition at line 150 of file univariate.hpp.

◆ value_at() [2/2]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
const Fr & bb::Univariate< Fr, domain_end, domain_start, skip_count >::value_at ( size_t  i) const
inline

Definition at line 158 of file univariate.hpp.

◆ zero()

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
static Univariate bb::Univariate< Fr, domain_end, domain_start, skip_count >::zero ( )
inlinestatic

Definition at line 201 of file univariate.hpp.

Friends And Related Symbol Documentation

◆ operator<<

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
std::ostream & operator<< ( std::ostream &  os,
const Univariate< Fr, domain_end, domain_start, skip_count > &  u 
)
friend

Definition at line 399 of file univariate.hpp.

Member Data Documentation

◆ evaluations

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
std::array<Fr, LENGTH> bb::Univariate< Fr, domain_end, domain_start, skip_count >::evaluations

Definition at line 47 of file univariate.hpp.

◆ LENGTH

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
constexpr size_t bb::Univariate< Fr, domain_end, domain_start, skip_count >::LENGTH = domain_end - domain_start
staticconstexpr

Definition at line 38 of file univariate.hpp.

◆ MONOMIAL_LENGTH

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
constexpr size_t bb::Univariate< Fr, domain_end, domain_start, skip_count >::MONOMIAL_LENGTH = LENGTH > 1 ? 2 : 1
staticconstexpr

Definition at line 41 of file univariate.hpp.

◆ SKIP_COUNT

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
constexpr size_t bb::Univariate< Fr, domain_end, domain_start, skip_count >::SKIP_COUNT = skip_count
staticconstexpr

Definition at line 39 of file univariate.hpp.


The documentation for this class was generated from the following file: