package tezos-plonk

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Prime field used by aPlonk

include module type of Bls12_381.Fr with type t = PP.PC.Scalar.t
include Ff_sig.PRIME with type t = PP.PC.Scalar.t
exception Not_in_field of Stdlib.Bytes.t
val order : Z.t
val size_in_bytes : int
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 add : t -> t -> t
val (+) : t -> t -> t
val sub : t -> t -> t
val mul : t -> t -> t
val (*) : t -> t -> t
val eq : t -> t -> bool
val (=) : t -> t -> bool
val negate : t -> t
val (-) : t -> t
val inverse_exn : t -> t
val inverse_opt : t -> t option
val div_exn : t -> t -> t
val div_opt : t -> t -> t option
val (/) : t -> t -> t
val square : t -> t
val double : t -> t
val pow : t -> Z.t -> t
val (**) : t -> Z.t -> 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 factor_power_of_two : int * Z.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
val sqrt_opt : t -> t option
val size_in_memory : int

Actual number of bytes allocated for a value of type t

val check_bytes : Stdlib.Bytes.t -> bool

Check if a point, represented as a byte array, is in the field *

val add_inplace : t -> t -> t -> unit

add_inplace res a b is the same than add but writes the result in res. No allocation happens.

val sub_inplace : t -> t -> t -> unit

sub_inplace res a b is the same than sub but writes the result in res. No allocation happens.

val mul_inplace : t -> t -> t -> unit

mul_inplace res a b is the same than sub but writes the result in res. No allocation happens.

val inverse_exn_inplace : t -> t -> unit

inverse_exn_inplace res a is the same than inverse_exn but writes the result in res. No allocation happens.

val double_inplace : t -> t -> unit

double_inplace res a is the same than double but writes the result in res. No allocation happens.

val square_inplace : t -> t -> unit

square_inplace res a is the same than square but writes the result in res. No allocation happens.

val negate_inplace : t -> t -> unit

negate_inplace res a is the same than negate but writes the result in res. No allocation happens.

val copy : t -> t

copy x return a fresh copy of x

val memcpy : t -> t -> unit

memcpy a b overwrites the content of a with the content of b.

val add_bulk : t list -> t

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.

val mul_bulk : t list -> t

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.

val compare : t -> t -> int

compare a b compares the elements a and b based on their bytes representation

val inner_product_exn : t array -> t array -> t

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.

val inner_product_opt : t array -> t array -> t option

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|.

val t : t Repr.t
OCaml

Innovation. Community. Security.