Page
Library
Module
Module type
Parameter
Class
Class type
Source
Ff.MakeFp2
Sourcemodule Fp : Ff_sig.BASE
module Intf : sig ... end
include Ff_sig.BASE
minimal number of bytes required to encode a value of the field.
check_bytes bs
returns true
if bs
is a correct byte representation of a field element
is_one x
returns true
if x
is the neutral element for the multiplication
Use 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
Use 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
inverse_opt x
returns x^-1
if x
is not 0
as an option, else None
div_opt a b
returns a * b^-1
as an option. Return None
if b = zero
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.