Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
include Elliptic_curve_sig.T
module Scalar : Ff_sig.PRIME
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 of length size_in_bytes
.
val of_bytes_exn : Stdlib.Bytes.t -> t
Attempt to construct a point from a byte array of length size_in_bytes
. Raise Not_on_curve
if the point is not on the curve
val of_compressed_bytes_opt : Stdlib.Bytes.t -> t option
Allocates a new point from a byte of length size_in_bytes / 2
array representing a point in compressed form.
val of_compressed_bytes_exn : Stdlib.Bytes.t -> t
Allocates a new point from a byte array of length size_in_bytes / 2
representing a point in compressed form. 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 to_compressed_bytes : t -> Stdlib.Bytes.t
Return a compressed bytes representation
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. The element is on the curve and in the prime subgroup.
fft ~domain ~points
performs a Fourier transform on points
using domain
The domain should be of the form w^{i}
where w
is a principal root of unity. If the domain is of size n
, w
must be a n
-th principal root of unity. The number of points can be smaller than the domain size, but not larger. The complexity is in O(n log(m))
where n
is the domain size and m
the number of points.
ifft ~domain ~points
performs an inverse Fourier transform on points
using domain
. The domain should be of the form w^{-i}
(i.e the "inverse domain") where w
is a principal root of unity. If the domain is of size n
, w
must be a n
-th principal root of unity. The domain size must be exactly the same than the number of points. The complexity is O(n log(n)) where n
is the domain size.