Tool for Rigorous Estimation of Round-Off Floating-Point Errors
OCaml HTML C Makefile Python GAP Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
INTERVAL
b_and_b
benchmarks
experiments
formal
simple_interval
tools
unused
z3opt
.gitignore
.merlin
CHANGES.md
LICENSE
Makefile
README.md
REFERENCE.md
VM_Instructions.md
binary_float.ml
config.ml
config.mli
const.ml
const.mli
default.cfg
eval.ml
eval.mli
expr.ml
expr.mli
exprOut.ml
exprOut.mli
fptaylor.ml
func.ml
input_lexer.mll
input_parser.mly
input_parser_env.ml
lib.ml
lib.mli
log.ml
log.mli
maxima.ml
maxima.mli
more_num.ml
more_num.mli
opt.ml
opt.mli
opt_basic_bb.ml
opt_basic_bb.mli
opt_common.ml
opt_common.mli
opt_gelpia.ml
opt_gelpia.mli
opt_nlopt.ml
opt_nlopt.mli
opt_z3.ml
opt_z3.mli
out_error_bounds.ml
out_error_bounds.mli
out_fpcore.ml
out_fpcore.mli
out_test.ml
parser.ml
parser.mli
proof.ml
proof_base.ml
proof_base.mli
proof_to_text.ml
rounding.ml
rounding.mli
rounding_simpl.ml
rounding_simpl.mli
task.ml
task.mli
taylor_form.ml
taylor_form.mli
version.ml
version.mli

README.md

FPTaylor: A Tool for Rigorous Estimation of Round-off Floating-point Errors

Publications

Requirements

  • OCaml version 4.00.0 or higher with a native compiler (do not forget make opt if you are building from source code). A recommended way to install OCaml is with OPAM

  • (Included) Interval computation library for OCaml. It is distributed with FPTaylor (see INTERVAL). There is also an alternative interval arithmetic library in simple_interval which has limited functionality but it is portable to different systems.

  • (Optional) Gelpia

  • (Optional) Z3

  • (Optional) Maxima, a Computer Algebra System The easiest way to install Maxima on Ubuntu is sudo apt-get install maxima

Linux Setup

Steps below have been tested on Ubuntu 12.04, Ubuntu 14.04, and Ubuntu 16.04.

The following command will build FPTaylor and the interval computation library:

make all

If you encounter a problem during the build process then you may try steps described in the next section (macOS and Linux Setup). The executable FPTaylor file is called fptaylor. It is recommended to create the environment variable FPTAYLOR_BASE which contains the path to the base FPTaylor directory. If this environment variable is created, then it will be possible to copy fptaylor to different places or to create a symbolic link to it. The environment variable can be created with the following commands (in bash):

export FPTAYLOR_BASE=$(pwd)
echo "export FPTAYLOR_BASE=$(pwd)" >> ~/.bashrc

macOS and Linux Setup

The main issue with macOS (and some newer versions of Linux) is that the interval computation library INTERVAL cannot be compiled on this system. There is an alternative interval arithmetic library distributed with FPTaylor (see simple_interval). This library is under development so it does not support all functions of the INTERVAL library. In particular, trigonometric functions are not supported yet.

The following command will build FPTaylor with the simple interval library:

make fptaylor-simple-interval

Benchmarks and Examples

Benchmarks and examples are in the benchmarks directory.

FPBench Support

FPBench is a benchmark suite and a collection of tools for the floating-point research community. FPBench supports FPTaylor and it has a tool for converting FPCore benchmarks into FPTaylor input files. This works in the other direction as well: FPTaylor can translate its input files into FPCore benchmarks (see FPTaylor's reference manual).

Reference

A detailed description of FPTaylor can be found in REFERENCE.md

Formal Verification of FPTaylor Results in HOL Light

See the formal directory for corresponding HOL Light theories and procedures.

VirtualBox Image

An old version of FPTaylor is available as a VirtualBox image at https://sites.google.com/site/fptaylordemo/installation