../../.cargo/katex-header.html

Trait winter_math::ExtensibleField[][src]

pub trait ExtensibleField<const N: usize>: StarkField {
    fn mul(a: [Self; N], b: [Self; N]) -> [Self; N];
fn frobenius(x: [Self; N]) -> [Self; N]; fn is_supported() -> bool { ... } }
Expand description

Defines basic arithmetic in an extension of a StarkField of a given degree.

This trait defines how to perform multiplication and compute a Frobenius automorphisms of an element in an extension of degree N for a given StarkField. It as assumed that an element in degree N extension field can be represented by N field elements in the base field.

Implementation of this trait implicitly defines the irreducible polynomial over which the extension field is defined.

Required methods

Returns a product of a and b in the field defined by this extension.

Returns Frobenius automorphisms for x in the field defined by this extension.

Provided methods

Returns true if this extension is supported for the underlying base field.

Implementors

Defines a quadratic extension of the base field over an irreducible polynomial x2 - x - 1. Thus, an extension element is defined as α + β * φ, where φ is a root of this polynomial, and α and β are base field elements.

Defines a quadratic extension of the base field over an irreducible polynomial x2 - x + 2. Thus, an extension element is defined as α + β * φ, where φ is a root of this polynomial, and α and β are base field elements.

Defines a quadratic extension of the base field over an irreducible polynomial x2 - x - 1. Thus, an extension element is defined as α + β * φ, where φ is a root of this polynomial, and α and β are base field elements.

Defines a cubic extension of the base field over an irreducible polynomial x3 + 2x + 2. Thus, an extension element is defined as α + β * φ + γ * φ^2, where φ is a root of this polynomial, and α, β and γ are base field elements.

Defines a cubic extension of the base field over an irreducible polynomial x3 - x - 1. Thus, an extension element is defined as α + β * φ + γ * φ^2, where φ is a root of this polynomial, and α, β and γ are base field elements.

Cubic extension for this field is not implemented as quadratic extension already provides sufficient security level.