package octez-libs
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65
doc/octez-libs.mec/Mec/Ff/MakeFp2/index.html
Module Ff.MakeFp2
Source
Parameters
module Fp : Bls12_381.Ff_sig.BASE
module Intf : sig ... end
Signature
include Bls12_381.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.
To create a value of type Random.State.t
, you can use Random.State.make [|42|]
.
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.
To create a value of type Random.State.t
, you can use Random.State.make [|42|]
.
negate x
returns -x mod order
. Equivalently, negate x
returns the unique y
such that x + y mod order = 0
inverse_exn x
returns x^-1 mod order
if x
is not 0
, else raise Division_by_zero
. Equivalently, inverse_exn x
returns the unique y
such that x * y mod order = 1
inverse_opt x
returns x^-1 mod order
as an option if x
is not 0
, else returns None
. Equivalently, inverse_opt x
returns the unique y
such that x * y mod order = 1
div_exn a b
returns a * b^-1
. Raise Division_by_zero
if b = zero
. Equivalently, div_exn
returns the unique y
such that b * y mod order = a
div_opt a b
returns a * b^-1
as an option. Return None
if b = zero
. Equivalently, div_opt
returns the unique y
such that b * y mod order = a
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. For instance, an element a + b * X
in GF(p^2)
will be encoded as to_bytes a || to_bytes b
where ||
is the concatenation of bytes