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 640 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 645 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 663 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 666 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 750 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 720 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 707 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 736 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 728 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 680 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 694 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 743 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 757 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 687 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 649 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 713 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 660 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 766 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 643 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 642 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 644 of file univariate.hpp.


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