Module Bls.Domain

include module type of struct include Mavkit_bls12_381_polynomial.Domain end
val t : t Repr.t
val length : t -> int

length p returns the length of a given array p

val get : t -> int -> scalar

get p i returns the i-th element of a given array p

val primitive_root_of_unity : int -> scalar

primitive_root_of_unity n returns a primitive n-th root of unity, provided it exists

val build : ?primitive_root:scalar -> int -> t

build n computes [one; g; ..; g^{n-1}] where g is a primitive n-th root of unity

val build_power_of_two : ?primitive_root:scalar -> int -> t

build_power_of_two log computes [one; g; ..; g^{n-1}] where g is a primitive n-th root of unity and n = 2^log

val subgroup : log:int -> t -> t

subgroup log d returns a subgroup of d of order 2^log

val inverse : t -> scalar array

inverse d returns for a domain wⁱᵢ its inverse domain w⁻ⁱᵢ

val equal : t -> t -> bool
val encoding : Mavkit_bls12_381_polynomial.Domain.t Data_encoding.encoding