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.