package octez-libs
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=dbc3b675aee59c2c574e5d0a771193a2ecfca31e7a5bc5aed66598080596ce1c
sha512=b97ed762b9d24744305c358af0d20f394376b64bfdd758dd4a81775326caf445caa57c4f6445da3dd6468ff492de18e4c14af6f374dfcbb7e4d64b7b720e5e2a
doc/octez-libs.mec/Mec/Curve/Utils/Functor/MakeAffineEdwardsToAffineMontgomery/argument-1-E/Base/index.html
Module E.Base
include Bls12_381.Ff_sig.BASE
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.
To create a value of type Random.State.t, you can use Random.State.make [|42|].
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.
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
val factor_power_of_two : int * Z.tReturns s, q such that p - 1 = 2^s * q
val of_string : string -> tCreate a value of type t from a predefined string representation. It is not required that to_string (of_string t) = t. By default, decimal representation of the number is used, modulo the order of the field
val to_string : t -> stringString representation of a value of type t. It is not required that to_string (of_string t) = t. By default, decimal representation of the number is used.
of_z x builds an element of type t from the Zarith element x. mod p is applied if x >= p
to_z x builds a Zarith element, using the decimal representation. Arithmetic on the result can be done using the modular functions on integers
Returns the Legendre symbol of the parameter. Note it does not work for p = 2
val is_quadratic_residue : t -> boolis_quadratic_residue x returns true if x is a quadratic residue i.e. if there exists n such that n^2 mod p = x
sqrt_opt x returns a square root of x as an option if it does exist. If it does not exist, returns None. Equivalenty it returns a value y such that y^2 mod p = x.
val of_int : int -> tof_int x is equivalent to of_z (Z.of_int x)