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

A view of a univariate, also used to truncate univariates. More...

#include <univariate.hpp>

Public Types

using CoefficientAccumulator = UnivariateCoefficientBasis< Fr, MONOMIAL_LENGTH, true >
 

Public Member Functions

 UnivariateView ()=default
 
bool operator== (const UnivariateView &other) const
 
const Frvalue_at (size_t i) const
 
template<size_t full_domain_end>
 UnivariateView (const Univariate< Fr, full_domain_end > &univariate_in)
 
 operator UnivariateCoefficientBasis< Fr, 2, true > () const
 
Univariate< Fr, domain_end > operator+ (const UnivariateView &other) const
 
Univariate< Fr, domain_end > operator- (const UnivariateView &other) const
 
Univariate< Fr, domain_end > operator- () const
 
Univariate< Fr, domain_end > operator* (const UnivariateView &other) const
 
Univariate< Fr, domain_end > sqr () const
 
Univariate< Fr, domain_end > operator* (const Univariate< Fr, domain_end > &other) const
 
Univariate< Fr, domain_end > operator+ (const Univariate< Fr, domain_end > &other) const
 
Univariate< Fr, domain_end > operator+ (const Fr &other) const
 
Univariate< Fr, domain_end > operator- (const Fr &other) const
 
Univariate< Fr, domain_end > operator* (const Fr &other) const
 
Univariate< Fr, domain_end > operator- (const Univariate< Fr, domain_end > &other) const
 

Public Attributes

std::span< const Fr, LENGTHevaluations
 

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 UnivariateView &u)
 

Detailed Description

template<class Fr, size_t domain_end>
class bb::UnivariateView< Fr, domain_end >

A view of a univariate, also used to truncate univariates.

For optimization purposes, it makes sense to define univariates with large lengths and then reuse only some of the data in those univariates. We do that by taking a view of those elements and then, as needed, using this to populate new containers.

Definition at line 572 of file univariate.hpp.

Member Typedef Documentation

◆ CoefficientAccumulator

template<class Fr , size_t domain_end>
using bb::UnivariateView< Fr, domain_end >::CoefficientAccumulator = UnivariateCoefficientBasis<Fr, MONOMIAL_LENGTH, true>

Definition at line 577 of file univariate.hpp.

Constructor & Destructor Documentation

◆ UnivariateView() [1/2]

template<class Fr , size_t domain_end>
bb::UnivariateView< Fr, domain_end >::UnivariateView ( )
default

◆ UnivariateView() [2/2]

template<class Fr , size_t domain_end>
template<size_t full_domain_end>
bb::UnivariateView< Fr, domain_end >::UnivariateView ( const Univariate< Fr, full_domain_end > &  univariate_in)
inlineexplicit

Definition at line 594 of file univariate.hpp.

Member Function Documentation

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

template<class Fr , size_t domain_end>
bb::UnivariateView< Fr, domain_end >::operator UnivariateCoefficientBasis< Fr, 2, true > ( ) const
inlineexplicit

Definition at line 597 of file univariate.hpp.

◆ operator*() [1/3]

template<class Fr , size_t domain_end>
Univariate< Fr, domain_end > bb::UnivariateView< Fr, domain_end >::operator* ( const Fr other) const
inline

Definition at line 674 of file univariate.hpp.

◆ operator*() [2/3]

template<class Fr , size_t domain_end>
Univariate< Fr, domain_end > bb::UnivariateView< Fr, domain_end >::operator* ( const Univariate< Fr, domain_end > &  other) const
inline

Definition at line 646 of file univariate.hpp.

◆ operator*() [3/3]

template<class Fr , size_t domain_end>
Univariate< Fr, domain_end > bb::UnivariateView< Fr, domain_end >::operator* ( const UnivariateView< Fr, domain_end > &  other) const
inline

Definition at line 633 of file univariate.hpp.

◆ operator+() [1/3]

template<class Fr , size_t domain_end>
Univariate< Fr, domain_end > bb::UnivariateView< Fr, domain_end >::operator+ ( const Fr other) const
inline

Definition at line 660 of file univariate.hpp.

◆ operator+() [2/3]

template<class Fr , size_t domain_end>
Univariate< Fr, domain_end > bb::UnivariateView< Fr, domain_end >::operator+ ( const Univariate< Fr, domain_end > &  other) const
inline

Definition at line 653 of file univariate.hpp.

◆ operator+() [3/3]

template<class Fr , size_t domain_end>
Univariate< Fr, domain_end > bb::UnivariateView< Fr, domain_end >::operator+ ( const UnivariateView< Fr, domain_end > &  other) const
inline

Definition at line 610 of file univariate.hpp.

◆ operator-() [1/4]

template<class Fr , size_t domain_end>
Univariate< Fr, domain_end > bb::UnivariateView< Fr, domain_end >::operator- ( ) const
inline

Definition at line 624 of file univariate.hpp.

◆ operator-() [2/4]

template<class Fr , size_t domain_end>
Univariate< Fr, domain_end > bb::UnivariateView< Fr, domain_end >::operator- ( const Fr other) const
inline

Definition at line 667 of file univariate.hpp.

◆ operator-() [3/4]

template<class Fr , size_t domain_end>
Univariate< Fr, domain_end > bb::UnivariateView< Fr, domain_end >::operator- ( const Univariate< Fr, domain_end > &  other) const
inline

Definition at line 681 of file univariate.hpp.

◆ operator-() [4/4]

template<class Fr , size_t domain_end>
Univariate< Fr, domain_end > bb::UnivariateView< Fr, domain_end >::operator- ( const UnivariateView< Fr, domain_end > &  other) const
inline

Definition at line 617 of file univariate.hpp.

◆ operator==()

template<class Fr , size_t domain_end>
bool bb::UnivariateView< Fr, domain_end >::operator== ( const UnivariateView< Fr, domain_end > &  other) const
inline

Definition at line 581 of file univariate.hpp.

◆ sqr()

template<class Fr , size_t domain_end>
Univariate< Fr, domain_end > bb::UnivariateView< Fr, domain_end >::sqr ( ) const
inline

Definition at line 639 of file univariate.hpp.

◆ value_at()

template<class Fr , size_t domain_end>
const Fr & bb::UnivariateView< Fr, domain_end >::value_at ( size_t  i) const
inline

Definition at line 591 of file univariate.hpp.

Friends And Related Symbol Documentation

◆ operator<<

template<class Fr , size_t domain_end>
std::ostream & operator<< ( std::ostream &  os,
const UnivariateView< Fr, domain_end > &  u 
)
friend

Definition at line 689 of file univariate.hpp.

Member Data Documentation

◆ evaluations

template<class Fr , size_t domain_end>
std::span<const Fr, LENGTH> bb::UnivariateView< Fr, domain_end >::evaluations

Definition at line 575 of file univariate.hpp.

◆ LENGTH

template<class Fr , size_t domain_end>
constexpr size_t bb::UnivariateView< Fr, domain_end >::LENGTH = domain_end
staticconstexpr

Definition at line 574 of file univariate.hpp.

◆ MONOMIAL_LENGTH

template<class Fr , size_t domain_end>
constexpr size_t bb::UnivariateView< Fr, domain_end >::MONOMIAL_LENGTH = LENGTH > 1 ? 2 : 1
staticconstexpr

Definition at line 576 of file univariate.hpp.


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