{"id":13484667,"url":"https://github.com/metalibm/metalibm","last_synced_at":"2025-03-27T16:31:12.713Z","repository":{"id":40471706,"uuid":"124258130","full_name":"metalibm/metalibm","owner":"metalibm","description":"Code generation tool to generate mathematical libraries","archived":false,"fork":false,"pushed_at":"2025-03-08T18:48:50.000Z","size":8766,"stargazers_count":55,"open_issues_count":56,"forks_count":11,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-08T19:30:35.203Z","etag":null,"topics":["code-generator","elementary-functions","floating-point"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/metalibm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-07T15:46:10.000Z","updated_at":"2024-09-28T13:52:46.000Z","dependencies_parsed_at":"2024-10-30T18:41:53.100Z","dependency_job_id":null,"html_url":"https://github.com/metalibm/metalibm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metalibm%2Fmetalibm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metalibm%2Fmetalibm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metalibm%2Fmetalibm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metalibm%2Fmetalibm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/metalibm","download_url":"https://codeload.github.com/metalibm/metalibm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245882339,"owners_count":20687869,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-generator","elementary-functions","floating-point"],"created_at":"2024-07-31T17:01:29.040Z","updated_at":"2025-03-27T16:31:10.941Z","avatar_url":"https://github.com/metalibm.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Metalibm\n\nMetalibm is available under MIT Licence (see LICENSE file) from https://github.com/metalibm/metalibm/\n\n## INTEGRATION STATUS\nmaster branch: [![pipeline status](https://gitlab.com/nibrunie/metalibm_github/badges/master/pipeline.svg)](https://gitlab.com/nibrunie/metalibm_github/commits/master)\n\nmeta-function generation report (master branch): https://nibrunie.gitlab.io/metalibm/perfs/report.main.html\n\n## DOCUMENTATION\n\nDocumentation (for master branch) is available on gitlab's pages: https://nibrunie.gitlab.io/metalibm/doc/index.html\n\n\n## INSTALL\n\nMetalibm is a framework written in Python.\n\n\nPython version compatibility: as of version 1.0, metalibm works with python3 (tested with 3.8).\n\n- Whatever the install you select, sollya (binary and headers) must be installed on your machine first.\n   On a recent version of ubuntu/debian you can install sollya binary and headers by executing:\n```sudo apt install sollya libsollya-dev```\n- Some features of Metalibm require Gappa (http://gappa.gforge.inria.fr/) (gappa install is recommended)\n\n\n\n### Quick Install (without intent to modify metalibm sources)\nQuick install from git sources (assuming sollya binary and header are installed):\n```\npip install git+https://github.com/metalibm/metalibm\n```\n\n### Install for Development\nFor development purpose, this repo should be cloned, and metalibm dependencies installed manually.\nOnce sollya and gappa have been installed, you can install metalibm's python depdendies by running \n\n```pip install -r requirements.txt```\n    \n\n## USAGE\nBefore running metalibm, you will need to add its top directory to your PYTHONPATH env var:\n\n```export PYTHONPATH=\u003cpath to metalibm/metalibm_core\u003e:$PYTHONPATH```\n\nYou will also need to set the `ML_SRC_DIR` env var to point to metalibm support library:\n\n```export ML_SRC_DIR=\u003cpath to metalibm/\u003e```\n\nExample of metafunctions can be found under the **metalibm_functions/** directory.\n\n* Example to generate a faithful (default) approximation of the exponential function for single precision on a x86 AVX2 target:\n```python3 metalibm_functions/ml_exp.py --precision binary32 --target x86_avx2 --output x86_avx2_exp_fp32.c ```\n\n* Explore the other functions of this directory, e.g. :\n``` python3 metalibm_functions/ml_log.py --help  ```\n\nA more comprehensive user documentation can be found in [doc/USERGUIDE.md](https://github.com/metalibm/metalibm/blob/master/doc/USERGUIDE.md)\n\n\n## TEST\n* Unit-testing (software code generation):\n  ``` python3 valid/soft_unit_test.py ```\n* Unit-testing (hardware code generation):\n  ``` python3 valid/rtl_unit_test.py ```\n\n* Non-regression tests (software code generation):\n  ``` python3 valid/non_regression.py ```\n* Non-regression tests (hardware code generation):\n  ``` python3 valid/hw_non_regression.py ```\n\n* Functionnal coverage (generate a report on meta-functions' generation/build/valid status):\n  ``` python3 valid/soft_coverage_test.py --report-only --output report.html ```\n\n## DOCUMENTATION\n\n* Metalibm Description Language documentation:  [doc/MDL.md](https://github.com/metalibm/metalibm/blob/master/doc/MDL.md)\n* User interface documentation: [doc/USERGUIDE.md](https://github.com/metalibm/metalibm/blob/master/doc/USERGUIDE.md)\n* Custom Meta-function documentation: [doc/METAFUNCTION.md](https://github.com/metalibm/metalibm/blob/master/doc/METAFUNCTION.md)\n* Metalibm engine optimization pass documentation: [doc/PASSES.md](https://github.com/metalibm/metalibm/blob/master/doc/PASSES.md)\n* Metalibm unit testing framework: [doc/UNITTESTS.md](https://github.com/metalibm/metalibm/blob/master/doc/UNITTESTS.md)\n\n## Version History\n\n- Version **1.0.alpha**: Released March 12th, 2018: First alpha for first official version\n- Version **1.0.beta**:  Released March 31th, 2018: First beta for first official version\n\n\n\n## AUTHOR(S)\n\n    Nicolas Brunie, Hugues de Lassus Saint-Geniès,\n    Marc Mezzarobba, Guillaume Gonnachon, Florent de Dinechin, Julien Le Maire,\n    Julien Villette, Guillaume Revy, Guillaume Melquiond\n\n    This work has been supported by Kalray (kalrayinc.com) and other entities\n    (to be listed)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetalibm%2Fmetalibm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmetalibm%2Fmetalibm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetalibm%2Fmetalibm/lists"}