Skip to content

Code to compare CPFloat to existing simulators for low-precision arithmetic

Notifications You must be signed in to change notification settings

north-numerical-computing/cpfloat_experiments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPFloat: performance study and comparisons

This repository collects the C, C++, and MATLAB codes and scripts to reproduce the experiments in [1]. The whole suite can be run with

make experiments

provided that all the relevant Dependencies mentioned below are available. Experiments that were present in previous drafts of the manuscript but are not included in the latest version can be run with the command

make experiments_extra

Dependencies

All experiments require that CPFloat be available. The GitHub repository is cloned automatically, and the relevant portions of CPFloat are compiled when needed.

The C experiments require the GNU MPFR library [3] and the FloatX library [2].

The MATLAB experiments depend on the chop function [4], on the FLOATP_Toolbox, and on the Matlab/Octave toolbox for Reliable Computing (INTLAB) [5].

References

[1] Massimiliano Fasi and Mantas Mikaitis. CPFloat: A C library for emulating low-precision arithmetic. MIMS EPrint 2020.22, Manchester Institute for Mathematical Sciences, The University of Manchester, UK, October 2020. Revised April 2022.

[2] Goran Flegar, Florian Scheidegger, Vedran Novaković, Giovani Mariani, Andrés E. Tomás, A. Cristiano I. Malossi, and Enrique S. Quintana-Ortí. FloatX: A C++ library for customized floating-point arithmetic, ACM Trans. Math. Software, 45(4), 1-23, 2019.

[3] Laurent Fousse, Guillaume Hanrot, Vincent Lefèvre, Patrick Pélissier, and Paul Zimmermann. 2007. MPFR: A multiple-precision binary floating-point library with correct rounding, ACM Trans. Math. Software, 33(2), 13:1–13:15, 2007.

[4] Nicholas J. Higham and Srikara Pranesh, Simulating low precision floating-point arithmetic, SIAM J. Sci. Comput., 41, C585-C602, 2019.

[5] Siegfried M. Rump. INTLAB — INTerval LABoratory. In Developments in Reliable Computing, Tibor Csendes editor, Springer-Verlag, Dordrecht, Netherlands, 77–104, 1999.

Licensing information

The GNU MPFR Library is distributed under the terms of the GNU Lesser General Public License (GNU Lesser GPL), Version 3 or later (Version 2.1 or later for MPFR versions until 2.4.x).

The FloatX Library is distributed under the terms of the Apache License, Version 2.0.

The MATLAB function chop is distributed under the terms of the BSD 2-Clause "Simplified" License.

The FLOATP Toolbox is distributed under an informal license and without any warranty.

The Matlab/Octave toolbox for Reliable Computing (INTLAB) is proprietary software.

About

Code to compare CPFloat to existing simulators for low-precision arithmetic

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published