Module Primitive.G1

type t

The type of the element in the elliptic curve

val size_in_memory : int

Actual number of bytes allocated for a value of type t

val size_in_bytes : int

The size of a point representation, in bytes

module Scalar : S.FIELD with type t = Fr.t
val check_bytes : Bytes.t -> bool

Check if a point, represented as a byte array, is on the curve *

val of_bytes_opt : Bytes.t -> t option

Attempt to construct a point from a byte array

val to_bytes : t -> 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 add : t -> t -> t

Return the addition of two element

val double : t -> t

Double the element

val negate : t -> t

Return the opposite of the element

val eq : t -> t -> bool

Return true if the two elements are algebraically the same

val mul : t -> Scalar.t -> t

Multiply an element by a scalar