# How we optimized pruning in Herbie

**URL:** https://racket.discourse.group/t/how-we-optimized-pruning-in-herbie/1182
**Category:** Show & Tell
**Created:** [July 25, 2022, 3:40pm UTC](https://racket.discourse.group/t/how-we-optimized-pruning-in-herbie/1182 "2022-07-25T15:40:33Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![pavpanchekha](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/pavpanchekha/32/642_2.png) [@pavpanchekha](https://racket.discourse.group/u/pavpanchekha)
#### Post date: [July 25, 2022, 3:40pm UTC](https://racket.discourse.group/t/how-we-optimized-pruning-in-herbie/1182/1 "2022-07-25T15:40:34Z")

</div>

Stephen asked me to repost here a blog post I wrote about about some optimization work I did in the Herbie project, including some nice profile exploration tools I've built in Racket:

[https://pavpanchekha.com/blog/optimizing-alt-minimize.html](https://pavpanchekha.com/blog/optimizing-alt-minimize.html)

One of the big helps in doing that optimization work is the GUI profile explorer I built. If you want to play around with it, you can do so at the bottom of this page:

[http://herbie.uwplse.org/reports/1658738250:warfa:main:fc87818c81//timeline.html](http://herbie.uwplse.org/reports/1658738250:warfa:main:fc87818c81//timeline.html)

Naturally you probably don't know much about the Herbie codebase, but you can start by searching for functions like `atab-add-altns`, `infer-splitpoints`, and `batch-errors`.

---

<div class="post-metadata">

### Author: ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)
#### Post date: [July 25, 2022, 4:05pm UTC](https://racket.discourse.group/t/how-we-optimized-pruning-in-herbie/1182/2 "2022-07-25T16:05:31Z")

</div>

Thanks Pavel!  
I only recently started learning about how floating point can go wrong - It is great that there is tooling to help do it right.  
bw  
Stephen
