Stop vibe-debugging. Every exception, every backtrace, grouped so you see patterns, not noise. Learn more →
Herbie Alternatives
Similar projects and alternatives to herbie
-
-
AppSignal
AppSignal knows why the f*#k it crashed. Stop vibe-debugging. Every exception, every backtrace, grouped so you see patterns, not noise.
-
-
Clippy
A bunch of lints to catch common mistakes and improve your Rust code. Book: https://doc.rust-lang.org/clippy/
-
-
Vrmac
Vrmac Graphics, a cross-platform graphics library for .NET. Supports 3D, 2D, and accelerated video playback. Works on Windows 10 and Raspberry Pi4.
-
ComputeSharp
A .NET library to run C# code in parallel on the GPU through DX12, D2D1, and dynamically generated HLSL compute and pixel shaders, with the goal of making GPU computing easy to use for all .NET developers! 🚀
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
-
-
-
-
-
-
-
-
MuladdMacro.jl
This package contains a macro for converting expressions to use muladd calls and fused-multiply-add (FMA) operations for high-performance in the SciML scientific machine learning ecosystem
-
FreeDevTools
A collection of free 3,25,000+ dev resources including tools, icons, emojis, cheat sheets, and TLDRs. No login, unlimited downloads.
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
herbie discussion
herbie reviews and mentions
-
Compiler-Assisted Floating-Point Error Analysis and Profiling with FPChecker
I was expecting them to be aware of https://herbie.uwplse.org/ Herbie but it seems like either they don't know of it or they don't see it as relevant.
My hope for the future is that Herbie's approach can evolve to a point where the person writing the software doesn't directly write FPU operations, any more than you'd manually work out all the best ways to optimise integer arithmetic. You write what you meant and the compiler figures out how to deliver that with FPU instructions. The parameters are more complicated for the second operation, but it's surely tractable.
"I want to calculate function F(x) here, I care about 0 <= x <= 4.0, inside those limits we need +/- 0.1% accuracy, for other values I don't care, and I want you to go as fast as possible within those parameters".
-
Show HN: Luminal – Open-source, search-based GPU compiler
Right I think I see it.
This is insanely cool.
But then there are performance tradeoffs in reusing intermediates vs recomputing that I think you can't represent.
Some of these may affect numerical stability btw. See eg https://herbie.uwplse.org/
There is so much potential in this project.
- Herbie detects inaccurate expressions and finds more accurate replacements
-
What works (and doesn't) selling formal methods
Your last point is what I was trying to get at — eg, reasoning just about your math expressions.
https://herbie.uwplse.org/
I think that FM (beyond basic typing) is best used sparingly to address particularly sensitive cases — eg, floating point stability in modeling.
But our discussion usually doesn’t include incremental or partial usage, unfortunately.
-
My negative views on Rust (2023)
I jumped to CTRE because it's another way that you can get the better results. The programmer need have no idea why this works, just like with caches.
I agree that there are trade-offs, but nevertheless compile time regex compilation is on my want list, even if a long way down it. I would take compile time arithmetic compilation†much sooner, but since that's an unsolved problem I don't get that choice.
†What I mean here is, you type in the real arithmetic you want, the compiler analyses what you wrote and it spits out an approximation in machine code which delivers an accuracy and performance trade off you're OK with, without you needing to be an expert in IEEE floating point and how your target CPU works. Herbie https://herbie.uwplse.org/ but as part of the compiler.
-
How does a computer/calculator compute logarithms?
Hi Pavel. For people who don't know, this is the person whose lab produced Herbie (https://herbie.uwplse.org/).
I have still seen rational approximants in "fast approximate math" libraries, while the ones targeting numerical accuracy are often using polynomials. Setting up a solver for 0.5 ULP when you have a rational function is definitely a lot harder. In my own work, it also empirically seems that the division creates some problems for precision of the last bit.
One interesting approach for bit-accurate rational approximants is to have a rational approximant get most of the way there while fitting the error of your rational approximant to a polynomial, but I don't think there's a good way to figure out where the computationally-efficient split of the problem is (ie how big to make the rational side and the polynomial side).
-
How to shuffle a virtual deck of cards?
You can calculate the probabilities and expected number of collisions analytically, but evaluating the expressions numerically is tricky for large numbers. I can recommend https://herbie.uwplse.org/ to rewrite the expressions into a form that can be evaluated.
- Herbie: Find and fix floating-point accuracy problems
-
Towards a New SymPy
The herbie project using egraphs to explore different ways of rewriting floating point expressions. https://herbie.uwplse.org/ One can also write custom rulesets in egglog (a new egraph rewriting system / language / datalog) https://egraphs-good.github.io/egglog/?example=herbie
The approach is not yet anywhere near being able to touch all the domains sympy can handle. Destructive term rewriting tends to be a bit more forgiving to unsoundness in the rules and still returning roughly meaningful results. EGraph rewriting (and other automated reasoning systems) tend to just return junk as soon as you aren't careful about your semantics. Associativity and commutativity are ubiquitous in CAS applications and encoding these concepts in general purpose terms is rather unsatisfying. The post above emphasizes specialty methods for polynomials, which it would be desirable to find a clean way to integrate into egraph techniques. Variable binding (which is treated in a rather mangled form in CAS systems) is seemingly important for treating summation, differentiation, and integration correctly. The status of doing variable binding efficiently and correctly in egraphs is also unclear imo.
-
Q: Automated floating point error analysis
As a starting point, check Herbie: https://herbie.uwplse.org/
-
A note from our sponsor - AppSignal
www.appsignal.com | 9 Aug 2026
Stats
herbie-fp/herbie is an open source project licensed under GNU General Public License v3.0 or later which is an OSI approved license.
The primary programming language of herbie is HTML.