package octez-bls12-381-polynomial

  1. Overview
  2. Docs
include Domain_sig
type scalar
type t
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 to_carray : t -> Fr_carray.t

to_carray d converts d from type t to type Fr_carray.t

Note: to_carray d doesn't create a copy of d

val of_carray : Fr_carray.t -> t

of_carray d converts d from type Fr_carray.t to type t

Note: of_carray d doesn't create a copy of d

val to_array : t -> scalar array

to_array d converts a C array d to an OCaml array

val of_array : scalar array -> t

of_array d converts an OCaml array d to a C array

OCaml

Innovation. Community. Security.