package bls12-381
Library
Module
Module type
Parameter
Class
Class type
include Ff_sig.PRIME
val zero : t
val one : t
val is_zero : t -> bool
val is_one : t -> bool
val random : ?state:Stdlib.Random.State.t -> unit -> t
val non_null_random : ?state:Stdlib.Random.State.t -> unit -> t
val of_bytes_exn : Stdlib.Bytes.t -> t
val of_bytes_opt : Stdlib.Bytes.t -> t option
val to_bytes : t -> Stdlib.Bytes.t
val of_string : string -> t
val to_string : t -> string
val of_z : Z.t -> t
val to_z : t -> Z.t
val legendre_symbol : t -> Z.t
val is_quadratic_residue : t -> bool
Check if a point, represented as a byte array, is in the field *
add_inplace res a b
is the same than add
but writes the result in res
. No allocation happens.
sub_inplace res a b
is the same than sub
but writes the result in res
. No allocation happens.
mul_inplace res a b
is the same than sub
but writes the result in res
. No allocation happens.
inverse_exn_inplace res a
is the same than inverse_exn
but writes the result in res
. No allocation happens.
double_inplace res a
is the same than double
but writes the result in res
. No allocation happens.
square_inplace res a
is the same than square
but writes the result in res
. No allocation happens.
negate_inplace res a
is the same than negate
but writes the result in res
. No allocation happens.
add_bulk xs
returns the sum of the elements of xs
by performing only one allocation for the output. This method is recommended to save the allocation overhead of using n
times add
.
mul_bulk xs
returns the product of the elements of xs
by performing only one allocation for the output. This method is recommended to save the allocation overhead of using n
times mul
.
compare a b
compares the elements a
and b
based on their bytes representation
inner_product_exn a b
returns the inner product of a
and b
, i.e. sum(a_i * b_i)
. Raise Invalid_argument
if the arguments are not of the same length. Only two allocations are used.
Same than inner_product_exn
but returns an option instead of raising an exception.
val of_int : int -> t
of_int x
is equivalent to of_z (Z.of_int x)
. If x
is is negative, returns the element order - |x|
.