Polynomial extension field base class for BLS12-381. This is the base for building higher-degree extension fields like Fq12.
Summary
Functions
Adds two polynomial field elements.
Checks if two elements are equal.
Computes the modular inverse using the extended Euclidean algorithm.
Returns {:ok, inverse} or {:error, :not_invertible} if the element is zero.
Multiplies two polynomial field elements with modular reduction. This implementation uses an optimized multiplication algorithm.
Negates a polynomial field element.
Creates a polynomial extension field element from coefficients.
Returns the one element.
Subtracts two polynomial field elements.
Returns the zero element.
Checks if the element is zero.
Types
@type t() :: %{coeffs: [Tezex.Crypto.BLS.Fq.t()], modulus_coeffs: [integer()]}
Functions
Adds two polynomial field elements.
Checks if two elements are equal.
Computes the modular inverse using the extended Euclidean algorithm.
Returns {:ok, inverse} or {:error, :not_invertible} if the element is zero.
Multiplies two polynomial field elements with modular reduction. This implementation uses an optimized multiplication algorithm.
Negates a polynomial field element.
@spec new([Tezex.Crypto.BLS.Fq.t()], [integer()]) :: t()
Creates a polynomial extension field element from coefficients.
Returns the one element.
Subtracts two polynomial field elements.
Returns the zero element.
Checks if the element is zero.