package ff

  1. Overview
  2. Docs
OCaml implementation of Finite Field operations

Install

Dune Dependency

Authors

Maintainers

Sources

ocaml-ff-0.3.0.tar.gz
md5=daea43b41cfc0b937692b15fbfa261ed
sha512=a716ad108f83092bad5dfd9cfc2f9f302f7139fafa1568768f6ed4cca3bf0f5a62e9f52959c405637e80d048a080032048ec07500a1136a156a87f909a8d1b34

Description

OCaml implementation of Finite Field operations

Published: 20 Aug 2020

README

OCaml FF

Play with Finite Field in OCaml

This library provides functors to instantiate finite field of arbitrary orders (in the limit of Zarith, the dependency to handle arbitrary integers).

module F13 = Ff.MakeFp (struct let prime_order = Z.of_string "13" end)
module BLSFr = Ff.MakeFp (
  struct
    let prime_order = Z.of_string "52435875175126190479447740508185965837690552500527637822603658699938581184513"
  end
)

JavaScript compatibility

This library can be transpiled in JavaScript using js_of_ocaml. An example is provided in js/test_js.ml, with the corresponding dune file. It instantiates Fp with p = 53. dune will compile this into a FiniteField.js file, exporting methods like add, toString, random, etc. FiniteField can be used as a Node module. See js/test/test_js.js for an example.

# Generate FiniteField.js
dune build js
cp _build/default/js/FiniteField.js ./
node
var FF = require("./FiniteField.js");
let x = FF.random();
let y = FF.random();
let x_plus_y = FF.add(x, y);

Dependencies (2)

  1. zarith >= "1.9.1" & < "2.0"
  2. dune >= "2.0"

Dev Dependencies (1)

  1. alcotest with-test

Used by (1)

  1. tezos-plompiler < "1.0.0"

Conflicts

None

OCaml

Innovation. Community. Security.