All Projects → uwplse → Herbie

uwplse / Herbie

Licence: other
Optimize floating-point expressions for accuracy

Programming Languages

racket
414 projects

Projects that are alternatives of or similar to Herbie

herbie
Optimize floating-point expressions for accuracy
Stars: ✭ 614 (+33.77%)
Mutual labels:  synthesis, numerical-methods
Bake
A build system that lets you clone, build and run C/C++ projects with a single command
Stars: ✭ 434 (-5.45%)
Mutual labels:  developer-tools
Kafka Sprout
🚀 Web GUI for Kafka Cluster Management
Stars: ✭ 388 (-15.47%)
Mutual labels:  developer-tools
Tp Gan
Official TP-GAN Tensorflow implementation for paper "Beyond Face Rotation: Global and Local Perception GAN for Photorealistic and Identity Preserving Frontal View Synthesis"
Stars: ✭ 412 (-10.24%)
Mutual labels:  synthesis
Electron Osx Sign
Codesign Electron macOS apps
Stars: ✭ 390 (-15.03%)
Mutual labels:  developer-tools
Fritz Models
Train and deploy machine learning models for mobile apps with Fritz AI.
Stars: ✭ 422 (-8.06%)
Mutual labels:  developer-tools
Fake Filler Extension
A browser extension for Chrome, Edge and Firefox that fills dummy text in all input fields in a page.
Stars: ✭ 383 (-16.56%)
Mutual labels:  developer-tools
Ergo
The management of multiple apps running over different ports made easy
Stars: ✭ 452 (-1.53%)
Mutual labels:  developer-tools
Npkill
List any node_modules directories in your system, as well as the space they take up. You can then select which ones you want to erase to free up space.
Stars: ✭ 5,325 (+1060.13%)
Mutual labels:  developer-tools
Decentralized Internet
A SDK/library for decentralized web and distributing computing projects
Stars: ✭ 406 (-11.55%)
Mutual labels:  developer-tools
Xcode Defaults
Awesome and useful Xcode defaults
Stars: ✭ 399 (-13.07%)
Mutual labels:  developer-tools
Dx7 Supercollider
My accurate Yamaha DX-7 clone. Programmed in Supercollider.
Stars: ✭ 395 (-13.94%)
Mutual labels:  synthesis
Shaman
Small, lightweight, api-driven dns server.
Stars: ✭ 426 (-7.19%)
Mutual labels:  developer-tools
Awesome Wp Developer Tools
A collection of plugins, starter themes and tools to make WordPress development easier.
Stars: ✭ 388 (-15.47%)
Mutual labels:  developer-tools
Laravel Kit
A desktop Laravel admin panel app
Stars: ✭ 440 (-4.14%)
Mutual labels:  developer-tools
Vprof
Visual profiler for Python
Stars: ✭ 3,799 (+727.67%)
Mutual labels:  developer-tools
Re Frisk
Take full control of re-frame app
Stars: ✭ 396 (-13.73%)
Mutual labels:  developer-tools
Draft
A tool for developers to create cloud-native applications on Kubernetes.
Stars: ✭ 3,972 (+765.36%)
Mutual labels:  developer-tools
Ctags
A maintained ctags implementation
Stars: ✭ 4,768 (+938.78%)
Mutual labels:  developer-tools
Magento2 Vagrant For Developers
Vagrant Box for Magento 2 Developers
Stars: ✭ 451 (-1.74%)
Mutual labels:  developer-tools

Herbie

Build Status

Herbie automatically improves the error of floating point expressions. Visit our website for tutorials, documentation, and an online demo. Herbie has semi-regular releases once a year, maintains backwards compatibility, and uses standardized formats.

Installing

For full details on installing Herbie, please see the documentation.

Herbie requires Racket 7.0 or later, and supports Windows, macOS, and Linux. Install it with:

raco pkg install --auto herbie

This will install a herbie binary to somewhere under ~/.racket. You can also download the source and run src/herbie.rkt directly.

Alternatively, Herbie and Herbie's Rust components can be built from source and installed using make install in the herbie directory.

Running Herbie

For full details on running Herbie, please see the tutorial.

Herbie's input format is the Scheme-like FPCore; for example (1 + x) - x is written

(FPCore (x) (- (+ 1 x) x))

You can see more examples in bench/. To use Herbie, run herbie shell and enter an FPCore expression:

$ herbie shell
Herbie 1.3 with seed 1866513483
Find help on https://herbie.uwplse.org/, exit with Ctrl-D
herbie> (FPCore (x) (- (+ 1 x) x))
(FPCore (x) ... 1)

In this case Herbie's improved, more-accurate expression is the constant 1.

Besides shell, Herbie also has a web interface, and can be run in batch mode on files with the improve and report commands. Consult the documentation. for more.

Helping Out

Herbie development is organized on our mailing list, where we discuss work in progress and announce major improvements. Email us to get involved!

We use Github and Trello to organize development goals.

Running Tests

Herbie has unit tests for basic functionality, though coverage is far from complete. You can run the test suite by downloading the source code, changing to the source code directory, and running:

make install
raco test src/

Herbie also contains a large benchmark suite drawn from open source projects, examples from users, and numerical analysis textbooks. This suite is found in bench/. The full test can be run with

herbie report bench/ report/

You may see warnings; these are expected. The output is HTML files in report/. This full test can take a few hours to run. We often test Herbie on basic but representative examples with:

herbie report bench/hamming/ graphs/

This takes approximately 10 minutes.

Historic and nightly test results are collected on uwplse.org.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].