Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
include Elliptic_curve_sig.T with type Scalar.t = Fr.t
val empty : unit -> t
Create an empty value to store an element of the curve. DO NOT USE THIS TO DO COMPUTATIONS WITH, UNDEFINED BEHAVIORS MAY HAPPEN
Check if a point, represented as a byte array, is on the curve *
val of_bytes_opt : Stdlib.Bytes.t -> t option
Attempt to construct a point from a byte array
val of_bytes_exn : Stdlib.Bytes.t -> t
Attempt to construct a point from a byte array. Raise Not_on_curve
if the point is not on the curve
val to_bytes : t -> Stdlib.Bytes.t
Return a representation in bytes
val zero : t
Zero of the elliptic curve
val one : t
A fixed generator of the elliptic curve
val is_zero : t -> bool
Return true
if the given element is zero
val random : ?state:Stdlib.Random.State.t -> unit -> t
Generate a random element
val of_z_opt : x:(Z.t * Z.t) -> y:(Z.t * Z.t) -> t option
Create a point from the coordinates. If the point is not on the curve, None is return. The points must be given modulo the order of Fq. The points are in the form (c0, c1) where x = c1 * X + c0 and y = c1 * X + c0. To create the point at infinity, use zero ()