LISP people likes to refer a language modification to a "language", partly because its lexical structure is so simple and its metaprogramming makes such modification easy. But yeah, Racket and Arc are only similar in the surface syntax.
The OP copied only half my tweet, full title should be "...to minimize floating-point precision errors". This tool is specifically for improving the numerical accuracy of equations when translated into floating-point code-- "minimizing errors" makes no sense without the qualifiers.
I do a lot of procedural graphics on the GPU and am constantly plagued by precision issues (you cannot copy equations verbatim into code, you must observe overflow/underflow and other numerical issues). Herbie is pretty magical in that it can _automatically_ translate math expressions into a form that's friendlier for computers.
Also the reason why the GitHub site source was linked is because the website [1] crashed under traffic earlier today (full site contains an interactive solver and examples).
I've personally used it for improving some distance-field approximation code on the GPU (made it easier to translate the math into numerically-stable code).
Adam, I'm one of the authors of Herbie. I'd love to hear about the distance-field approximation code you improved using Herbie. Is there any chance you can email me some details? You can use my personal email (on my profile) or the herbie@cs.washington.edu mailing list.
Ok, we changed the title from "Herbie: A tool to automatically rewrite arithmetic expressions to minimize error" to be closer to what you've said here. If anyone can suggest a better (more accurate and neutral) title, we can change it again.
21 comments
[ 3.7 ms ] story [ 53.3 ms ] threadArc itself is an interpreter written in Racket. The site runs on racket.
[1] http://herbie.uwplse.org/
I do a lot of procedural graphics on the GPU and am constantly plagued by precision issues (you cannot copy equations verbatim into code, you must observe overflow/underflow and other numerical issues). Herbie is pretty magical in that it can _automatically_ translate math expressions into a form that's friendlier for computers.
Also the reason why the GitHub site source was linked is because the website [1] crashed under traffic earlier today (full site contains an interactive solver and examples).
[1] http://herbie.uwplse.org/
I've personally used it for improving some distance-field approximation code on the GPU (made it easier to translate the math into numerically-stable code).