package zarith-ppx

  1. Overview
  2. Docs
Literals for Zarith's arbitrary-precision integers and rationals

Install

Dune Dependency

Authors

Maintainers

Sources

zarith-ppx-0.1.tbz
md5=4c6c8224397b9c94a0d37120f4977576

Description

The Zarith library implements arithmetic and logical operations over arbitrary-precision integers. Zarith-ppx add support for literals of the form '13z' and '1.5q'.

Tags

ppx zarith

Published: 19 Mar 2019

README

Zarith-ppx

The zarith-ppx package provides literals for arbitrary-precision integers and rationals with the Zarith library. Here are some examples:

# 1z ;;
- : Z.t = 1
# 1.234e40z ;;
- : Z.t = 12340000000000000000000000000000000000000
# 0x18z ;; (* Hexadecimal *)
- : Z.t = 24
# 1.2q ;;
- : Q.t = 6/5
# 2.45e10q ;;
- : Q.t = 24500000000
# 2.45e-5q ;;
- : Q.t = 49/2000000
# -0O123q ;; (* Octal *)
- : Q.t = -83

It also raises errors for incorrect literals:

# 1.234e2z ;;
Characters 0-8:
Error: This literal does not fit in an integer. You should use a rational number.

This package depends on vanilla Zarith, but the generated code is compatible with any cross-compiled version of Zarith such as zarith-freestanding and zarith-xen.

Dependencies (4)

  1. zarith
  2. ocaml-migrate-parsetree < "2.0.0"
  3. dune >= "1.8"
  4. ocaml >= "4.03.0"

Dev Dependencies (1)

  1. mdx with-test

Used by

None

Conflicts

None