pub trait BinomiallyExtendableAlgebra<F: Field, const D: usize>: Algebra<F> {
// Provided methods
fn binomial_mul(a: &[Self; D], b: &[Self; D], res: &mut [Self; D], w: F) { ... }
fn binomial_add(a: &[Self; D], b: &[Self; D]) -> [Self; D] { ... }
fn binomial_sub(a: &[Self; D], b: &[Self; D]) -> [Self; D] { ... }
fn binomial_base_mul(lhs: [Self; D], rhs: Self) -> [Self; D] { ... }
}Expand description
Trait for algebras which support binomial extensions of the form A[X]/(X^D - W)
with W in the base field F.
Provided Methods§
Sourcefn binomial_mul(a: &[Self; D], b: &[Self; D], res: &mut [Self; D], w: F)
fn binomial_mul(a: &[Self; D], b: &[Self; D], res: &mut [Self; D], w: F)
Multiplication in the algebra extension ring A<X> / (X^D - W).
Some algebras may want to reimplement this with faster methods.
Sourcefn binomial_add(a: &[Self; D], b: &[Self; D]) -> [Self; D]
fn binomial_add(a: &[Self; D], b: &[Self; D]) -> [Self; D]
Addition of elements in the algebra extension ring A<X> / (X^D - W).
As addition has no dependence on W so this is equivalent
to an algorithm for adding arrays of elements of A.
Some algebras may want to reimplement this with faster methods.
Sourcefn binomial_sub(a: &[Self; D], b: &[Self; D]) -> [Self; D]
fn binomial_sub(a: &[Self; D], b: &[Self; D]) -> [Self; D]
Subtraction of elements in the algebra extension ring A<X> / (X^D - W).
As subtraction has no dependence on W so this is equivalent
to an algorithm for subtracting arrays of elements of A.
Some algebras may want to reimplement this with faster methods.
fn binomial_base_mul(lhs: [Self; D], rhs: Self) -> [Self; D]
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.