pub trait EvaluationDomainFactory<DomainField: Field>: Clone + Sync {
// Required method
fn create(
&self,
size: usize,
) -> Result<EvaluationDomain<DomainField>, Error>;
}
Expand description
Wraps type information to enable instantiating EvaluationDomains.
Required Methods§
Sourcefn create(&self, size: usize) -> Result<EvaluationDomain<DomainField>, Error>
fn create(&self, size: usize) -> Result<EvaluationDomain<DomainField>, Error>
Instantiates an EvaluationDomain of size
points from $K \mathbin{/} \mathbb{F}_2 \cup
\infty$ where $K$ is a finite extension of degree $d$.
For size >= 3
, the first size - 1
domain points are a “lexicographic prefix” of the
binary subspace defined by the $\mathbb{F}_2$-basis $\beta_0,\ldots ,\beta_{d-1}$. The
additional assumption $\beta_0 = 1$ means that first two points of the basis are always 0
and 1 of the field $K$. The last point of the domain is Karatsuba “infinity” (denoted
$\infty$), which is the coefficient of the highest power in the interpolated polynomial
(see the “Evaluation” section of the Wikipedia article on Toom-Cook multiplication for
an introduction).
“Infinity” point is not included when size <= 2
.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.