Code generation tool to generate mathematical libraries
Switch branches/tags
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
metalibm_core
metalibm_functions
metalibm_hw_blocks
valid
.gitignore
.gitlab-ci.yml
CONTRIBUTING.md Create CONTRIBUTING.md Mar 11, 2018
LICENSE
README.md
RELEASES.txt
TESTING

README.md

Metalibm

Metalibm is available under MIT Licence (see LICENSE file) from https://github.com/kalray/metalibm/

INTEGRATION STATUS

master branch: pipeline status

meta-function generation report (master branch): https://nibrunie.gitlab.io/metalibm/report.master.html

INSTALL

  • Dependencies:

  • Python version compatibility: as of version 1.0, metalibm works with both python2 (>= 2.7) and python3 (tested with 3.4)

  • Installation procedure for standard users

    • install pythonsollya (and optionally gappa)
    • make sure pythonsollya is available in your PYTHONPATH
    • make sure metalibm's top directory is in your PYTHONPATH

USAGE

Example of metafunctions can be found under the metalibm_functions/ directory.

  • Example to generate a faithful (default) approximation of the exponential function for single precision on a x86 AVX2 target: python2 metalibm_functions/ml_exp.py --precision binary32 --target x86_avx2 --output x86_avx2_exp2d.c

  • Explore the other functions of this directory, e.g. : python2 metalibm_functions/ml_log.py --help

A more comprehensive user documentation can be found in doc/USERGUIDE.md

TEST

  • Unit-testing (software code generation): python2 valid/soft_unit_test.py

  • Unit-testing (hardware code generation): python2 valid/rtl_unit_test.py

  • Non-regression tests (software code generation): python2 valid/non_regression.py

  • Non-regression tests (hardware code generation): python2 valid/hw_non_regression.py

  • Functionnal coverage (generate a report on meta-functions' generation/build/valid status): python2 valid/soft_coverage_test.py --report-only --output report.html

DOCUMENTATION

Version History

  • Version 1.0.alpha: Released March 12th, 2018: First alpha for first official version

AUTHOR(S)

Nicolas Brunie (nbrunie (AT) kalray.eu), Hugues de Lassus Saint-Geniès,
Marc Mezzarobba, Guillaume Gonnachon, Florent de Dinechin, Julien Le Maire,
Julien Villette, Guillaume Revy

This work has been supported by Kalray (kalrayinc.com) and other entities
(to be listed)