package ff
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Parameter MakeFp2.Fp
exception Not_in_field of Bytes.tval order : Z.tThe order of the finite field
val check_bytes : Bytes.t -> boolcheck_bytes bs returns true if bs is a correct byte representation of a field element
val zero : tThe neutral element for the addition
val one : tThe neutral element for the multiplication
val is_zero : t -> boolis_zero x returns true if x is the neutral element for the addition
val is_one : t -> boolis_one x returns true if x is the neutral element for the multiplication
val random : ?state:Random.State.t -> unit -> tUse carefully! random () returns a random element of the field. A state for the PRNG can be given to initialize the PRNG in the requested state. If no state is given, no initialisation is performed
val non_null_random : ?state:Random.State.t -> unit -> tUse carefully! non_null_random () returns a non null random element of the field. A state for the PRNG can be given to initialize the PRNG in the requested state. If no state is given, no initialisation is performed
negate x returns -x mod order. Equivalently, negate x returns the unique y such that x + y mod order = 0
Construct a value of type t from the bytes representation in little endian of the field element. For non prime fields, the encoding starts with the coefficient of the constant monomial. Raise Not_in_field if the bytes do not represent an element in the field.
From a predefined little endian bytes representation, construct a value of type t. The same representation than of_bytes_exn is used. Return None if the bytes do not represent an element in the field.
Convert the value t to a bytes representation. The number of bytes is size_in_bytes and the encoding must be in little endian. For instance, the encoding of 1 in prime fields is always a bytes sequence of size size_in_bytes starting with the byte 0b00000001. For non prime fields, the encoding starts with the coefficient of the constant monomial.