Enum ark_poly::domain::general::GeneralEvaluationDomain[][src]

pub enum GeneralEvaluationDomain<F: FftField> {
    Radix2(Radix2EvaluationDomain<F>),
    MixedRadix(MixedRadixEvaluationDomain<F>),
}
Expand description

Defines a domain over which finite field (I)FFTs can be performed. Generally tries to build a radix-2 domain and falls back to a mixed-radix domain if the radix-2 multiplicative subgroup is too small.

Variants

Radix-2 domain

Mixed-radix domain

Trait Implementations

Reads Self from reader.

Reads Self from reader without compression.

Reads self from reader without compression, and without performing validity checks. Should be used only when the input is trusted. Read more

Serializes self into writer. It is left up to a particular type for how it strikes the serialization efficiency vs compression tradeoff. For standard types (e.g. bool, lengths, etc.) typically an uncompressed form is used, whereas for algebraic types compressed forms are used. Read more

Serializes self into writer without compression.

Serializes self into writer without compression, and without performing validity checks. Should be used only when there is no danger of adversarial manipulation of the output. Read more

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Construct a domain that is large enough for evaluations of a polynomial having num_coeffs coefficients.

If the field specifies a small subgroup for a mixed-radix FFT and the radix-2 FFT cannot be constructed, this method tries constructing a mixed-radix FFT instead.

Returns the i-th element of the domain.

Return an iterator over the elements of the domain.

The type of the elements iterator.

Return the size of a domain that is large enough for evaluations of a polynomial having num_coeffs coefficients. Read more

Return the size of self.

Compute a FFT, modifying the vector in place.

Compute a IFFT, modifying the vector in place.

Compute a FFT over a coset of the domain, modifying the input vector in place. Read more

Compute a IFFT over a coset of the domain, modifying the input vector in place. Read more

Evaluate all the lagrange polynomials defined by this domain at the point tau. This is computed in time O(|domain|). Then given the evaluations of a degree d polynomial P over this domain, where d < |domain|, P(tau) can be computed as P(tau) = sum_{i in [|Domain|]} L_{i, Domain}(tau) * P(g^i). L_{i, Domain} is the value of the i-th lagrange coefficient in the returned vector. Read more

Return the sparse vanishing polynomial.

This evaluates the vanishing polynomial for this domain at tau.

Sample an element that is not in the domain.

Return the size of self as a field element.

Compute a FFT.

Compute a IFFT.

Multiply the i-th element of coeffs with g^i.

Multiply the i-th element of coeffs with c*g^i.

Compute a FFT over a coset of the domain.

Compute a IFFT over a coset of the domain.

The target polynomial is the zero polynomial in our evaluation domain, so we must perform division over a coset. Read more

Given an index which assumes the first elements of this domain are the elements of another (sub)domain, this returns the actual index into this domain. Read more

Perform O(n) multiplication of two polynomials that are presented by their evaluations in the domain. Returns the evaluations of the product over the domain. Read more

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

Should always be Self

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.