FriOptions

Struct FriOptions 

Source
pub struct FriOptions { /* private fields */ }
Expand description

FRI protocol config options for proof generation and verification.

Implementations§

Source§

impl FriOptions

Source

pub fn new( blowup_factor: usize, folding_factor: usize, remainder_max_degree: usize, ) -> Self

Returns a new FriOptions struct instantiated with the specified parameters.

§Panics

Panics if:

  • blowup_factor is not a power of two.
  • folding_factor is not 2, 4, 8, or 16.
Source

pub fn domain_offset<B: StarkField>(&self) -> B

Returns the offset by which the evaluation domain is shifted.

The domain is shifted by multiplying every element in the domain by this offset.

Currently, the offset is hard-coded to be the primitive element in the field specified by type parameter B.

Source

pub fn folding_factor(&self) -> usize

Returns the factor by which the degree of a polynomial is reduced with each FRI layer.

In combination with remainder_max_degree_plus_1 this property defines how many FRI layers are needed for an evaluation domain of a given size.

Source

pub fn remainder_max_degree(&self) -> usize

Returns maximum allowed remainder polynomial degree.

In combination with folding_factor this property defines how many FRI layers are needed for an evaluation domain of a given size.

Source

pub fn blowup_factor(&self) -> usize

Returns a blowup factor of the evaluation domain.

Specifically, if the polynomial for which the FRI protocol is executed is of degree d where d is one less than a power of two, then the evaluation domain size will be equal to (d + 1) * blowup_factor.

Source

pub fn num_fri_layers(&self, domain_size: usize) -> usize

Computes and return the number of FRI layers required for a domain of the specified size.

The number of layers for a given domain size is defined by the folding_factor and remainder_max_degree and blowup_factor settings.

Trait Implementations§

Source§

impl Clone for FriOptions

Source§

fn clone(&self) -> FriOptions

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl PartialEq for FriOptions

Source§

fn eq(&self, other: &FriOptions) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for FriOptions

Source§

impl StructuralPartialEq for FriOptions

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.