Bls.GT
include module type of struct include Mavryk_bls12_381.GT end
Prime subgroup of Fq12
, of order Fr
.order, represented additively
type t = Mavryk_bls12_381.GT.t
Represents an element in the prime subgroup
Checks the bytes represent a point in the prime subgroup. The expected encoding is the same than Fq12
.of_bytes_exn.
val of_bytes_exn : Stdlib.Bytes.t -> t
Same than Fq12
.of_bytes_exn but also verifies the element is in the prime subgroup. Raise Not_in_group
if the element is not in the prime subgroup.
val of_bytes_opt : Stdlib.Bytes.t -> t option
Same than of_bytes_exn
but returns an option instead of an exception.
val to_bytes : t -> Stdlib.Bytes.t
Same than Fq12
.to_bytes.
val zero : t
The neutral element of the subgroup. It is equal to Fq12
.one.
val is_zero : t -> bool
is_zero x
is equivalent to eq x zero
val one : t
A generator of the group. It is set to the result of Pairing.pairing
G1.one G2.one
.
val is_one : t -> bool
is_one x
is equivalent to eq x one
val random : ?state:Stdlib.Random.State.t -> unit -> t
Generate a random element. The function ensures the element is in the prime subgroup.
The routines in the module Random.State
are used to generate the elements. A state can be given to the function to be used. If no state is given, Random.get_state
is used.
To create a value of type Random.State.t
, you can use Random.State.make
[|42|]
.
val mul : t -> Mavryk_bls12_381.Fr.t -> t
mul x n
returns [n] x
, i.e. the result of adding x
n-times with itself. It is equivalent to Fq12.pow x (Fr.to_z n)
val t : t Repr.t