Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::UnivariateView< Fr, domain_end, domain_start, skip_count > 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, size_t full_domain_start = 0>
 UnivariateView (const Univariate< Fr, full_domain_end, full_domain_start, skip_count > &univariate_in)
 
 operator UnivariateCoefficientBasis< Fr, 2, true > () const
 
Univariate< Fr, domain_end, domain_start, skip_count > operator+ (const UnivariateView &other) const
 
Univariate< Fr, domain_end, domain_start, skip_count > operator- (const UnivariateView &other) const
 
Univariate< Fr, domain_end, domain_start, skip_count > operator- () const
 
Univariate< Fr, domain_end, domain_start, skip_count > operator* (const UnivariateView &other) const
 
Univariate< Fr, domain_end, domain_start, skip_count > sqr () const
 
Univariate< Fr, domain_end, domain_start, skip_count > operator* (const Univariate< Fr, domain_end, domain_start, skip_count > &other) const
 
Univariate< Fr, domain_end, domain_start, skip_count > operator+ (const Univariate< Fr, domain_end, domain_start, skip_count > &other) const
 
Univariate< Fr, domain_end, domain_start, skip_count > operator+ (const Fr &other) const
 
Univariate< Fr, domain_end, domain_start, skip_count > operator- (const Fr &other) const
 
Univariate< Fr, domain_end, domain_start, skip_count > operator* (const Fr &other) const
 
Univariate< Fr, domain_end, domain_start, skip_count > operator- (const Univariate< Fr, domain_end, domain_start, skip_count > &other) const
 

Public Attributes

std::span< const Fr, LENGTHevaluations
 

Static Public Attributes

static constexpr size_t LENGTH = domain_end - domain_start
 
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, size_t domain_start = 0, size_t skip_count = 0>
class bb::UnivariateView< Fr, domain_end, domain_start, skip_count >

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 651 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::UnivariateView< Fr, domain_end, domain_start, skip_count >::CoefficientAccumulator = UnivariateCoefficientBasis<Fr, MONOMIAL_LENGTH, true>

Definition at line 656 of file univariate.hpp.

Constructor & Destructor Documentation

◆ UnivariateView() [1/2]

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

◆ UnivariateView() [2/2]

template<class Fr , size_t domain_end, size_t domain_start = 0, size_t skip_count = 0>
template<size_t full_domain_end, size_t full_domain_start = 0>
bb::UnivariateView< Fr, domain_end, domain_start, skip_count >::UnivariateView ( const Univariate< Fr, full_domain_end, full_domain_start, skip_count > &  univariate_in)
inlineexplicit

Definition at line 674 of file univariate.hpp.

Member Function Documentation

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

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

Definition at line 677 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< Fr, domain_end, domain_start, skip_count > bb::UnivariateView< Fr, domain_end, domain_start, skip_count >::operator* ( const Fr other) const
inline

Definition at line 761 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< Fr, domain_end, domain_start, skip_count > bb::UnivariateView< Fr, domain_end, domain_start, skip_count >::operator* ( const Univariate< Fr, domain_end, domain_start, skip_count > &  other) const
inline

Definition at line 731 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< Fr, domain_end, domain_start, skip_count > bb::UnivariateView< Fr, domain_end, domain_start, skip_count >::operator* ( const UnivariateView< Fr, domain_end, domain_start, skip_count > &  other) const
inline

Definition at line 718 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< Fr, domain_end, domain_start, skip_count > bb::UnivariateView< Fr, domain_end, domain_start, skip_count >::operator+ ( const Fr other) const
inline

Definition at line 747 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< Fr, domain_end, domain_start, skip_count > bb::UnivariateView< Fr, domain_end, domain_start, skip_count >::operator+ ( const Univariate< Fr, domain_end, domain_start, skip_count > &  other) const
inline

Definition at line 739 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< Fr, domain_end, domain_start, skip_count > bb::UnivariateView< Fr, domain_end, domain_start, skip_count >::operator+ ( const UnivariateView< Fr, domain_end, domain_start, skip_count > &  other) const
inline

Definition at line 691 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< Fr, domain_end, domain_start, skip_count > bb::UnivariateView< Fr, domain_end, domain_start, skip_count >::operator- ( ) const
inline

Definition at line 705 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< Fr, domain_end, domain_start, skip_count > bb::UnivariateView< Fr, domain_end, domain_start, skip_count >::operator- ( const Fr other) const
inline

Definition at line 754 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< Fr, domain_end, domain_start, skip_count > bb::UnivariateView< Fr, domain_end, domain_start, skip_count >::operator- ( const Univariate< Fr, domain_end, domain_start, skip_count > &  other) const
inline

Definition at line 768 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< Fr, domain_end, domain_start, skip_count > bb::UnivariateView< Fr, domain_end, domain_start, skip_count >::operator- ( const UnivariateView< Fr, domain_end, domain_start, skip_count > &  other) const
inline

Definition at line 698 of file univariate.hpp.

◆ operator==()

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

Definition at line 660 of file univariate.hpp.

◆ sqr()

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

Definition at line 724 of file univariate.hpp.

◆ value_at()

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

Definition at line 671 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 UnivariateView< Fr, domain_end, domain_start, skip_count > &  u 
)
friend

Definition at line 777 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::span<const Fr, LENGTH> bb::UnivariateView< Fr, domain_end, domain_start, skip_count >::evaluations

Definition at line 654 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::UnivariateView< Fr, domain_end, domain_start, skip_count >::LENGTH = domain_end - domain_start
staticconstexpr

Definition at line 653 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::UnivariateView< Fr, domain_end, domain_start, skip_count >::MONOMIAL_LENGTH = LENGTH > 1 ? 2 : 1
staticconstexpr

Definition at line 655 of file univariate.hpp.


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