Average Error: 0.0 → 0.0
Time: 8.8s
Precision: binary64
Cost: 960
\[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1\]
↓
\[\left(d1 \cdot d4 + \left(d1 \cdot d2 - d1 \cdot d3\right)\right) - d1 \cdot d1\]
\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
↓
\left(d1 \cdot d4 + \left(d1 \cdot d2 - d1 \cdot d3\right)\right) - d1 \cdot d1
(FPCore (d1 d2 d3 d4)
:precision binary64
(- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))
↓
(FPCore (d1 d2 d3 d4)
:precision binary64
(- (+ (* d1 d4) (- (* d1 d2) (* d1 d3))) (* d1 d1)))
double code(double d1, double d2, double d3, double d4) {
return (((d1 * d2) - (d1 * d3)) + (d4 * d1)) - (d1 * d1);
}
↓
double code(double d1, double d2, double d3, double d4) {
return ((d1 * d4) + ((d1 * d2) - (d1 * d3))) - (d1 * d1);
}
Try it out
Enter valid numbers for all inputs
Target
| Original | 0.0 |
|---|
| Target | 0.0 |
|---|
| Herbie | 0.0 |
|---|
\[d1 \cdot \left(\left(\left(d2 - d3\right) + d4\right) - d1\right)\]
Alternatives
| Alternative 1 |
|---|
| Error | 1.3 |
|---|
| Cost | 21056 |
|---|
\[\sqrt[3]{d1 \cdot \left(\left(d4 - d1\right) + \left(d2 - d3\right)\right)} \cdot \left(\sqrt[3]{d1 \cdot \left(\left(d4 - d1\right) + \left(d2 - d3\right)\right)} \cdot \sqrt[3]{d1 \cdot \left(\left(d4 - d1\right) + \left(d2 - d3\right)\right)}\right)\]
| Alternative 2 |
|---|
| Error | 25.4 |
|---|
| Cost | 13696 |
|---|
\[\left(d1 \cdot d4 + \sqrt[3]{{\left(d1 \cdot \left(d2 - d3\right)\right)}^{3}}\right) - d1 \cdot d1\]
| Alternative 3 |
|---|
| Error | 33.8 |
|---|
| Cost | 13568 |
|---|
\[\sqrt[3]{{\left(d1 \cdot \left(d4 + \left(d2 - d3\right)\right)\right)}^{3}} - d1 \cdot d1\]
| Alternative 4 |
|---|
| Error | 36.3 |
|---|
| Cost | 13440 |
|---|
\[\sqrt[3]{{\left(d1 \cdot \left(\left(d4 - d1\right) + \left(d2 - d3\right)\right)\right)}^{3}}\]
| Alternative 5 |
|---|
| Error | 26.9 |
|---|
| Cost | 8192 |
|---|
\[\frac{\left(d1 \cdot \left(d4 + \left(d2 - d3\right)\right)\right) \cdot \left(d1 \cdot \left(d4 + \left(d2 - d3\right)\right)\right) - {d1}^{4}}{d1 \cdot \left(d1 + \left(d4 + \left(d2 - d3\right)\right)\right)}\]
| Alternative 6 |
|---|
| Error | 25.4 |
|---|
| Cost | 8000 |
|---|
\[\left(d1 \cdot d4 + \sqrt[3]{\left(d1 \cdot \left(d2 - d3\right)\right) \cdot \left(\left(d1 \cdot \left(d2 - d3\right)\right) \cdot \left(d1 \cdot \left(d2 - d3\right)\right)\right)}\right) - d1 \cdot d1\]
| Alternative 7 |
|---|
| Error | 55.0 |
|---|
| Cost | 7680 |
|---|
\[\frac{d1 \cdot \left(d1 \cdot \left(d4 \cdot d4\right)\right) - {d1}^{4}}{d1 \cdot \left(d1 + \left(d4 + \left(d2 - d3\right)\right)\right)}\]
| Alternative 8 |
|---|
| Error | 0.0 |
|---|
| Cost | 832 |
|---|
\[\left(d1 \cdot d4 + d1 \cdot \left(d2 - d3\right)\right) - d1 \cdot d1\]
| Alternative 9 |
|---|
| Error | 0.0 |
|---|
| Cost | 832 |
|---|
\[\left(d1 \cdot d2 + d1 \cdot \left(d4 - d3\right)\right) - d1 \cdot d1\]
| Alternative 10 |
|---|
| Error | 0.0 |
|---|
| Cost | 704 |
|---|
\[d1 \cdot \left(d4 + \left(d2 - d3\right)\right) - d1 \cdot d1\]
| Alternative 11 |
|---|
| Error | 18.6 |
|---|
| Cost | 704 |
|---|
\[\left(d1 \cdot d4 + d1 \cdot d2\right) - d1 \cdot d1\]
| Alternative 12 |
|---|
| Error | 17.9 |
|---|
| Cost | 704 |
|---|
\[\left(d1 \cdot d4 - d1 \cdot d3\right) - d1 \cdot d1\]
| Alternative 13 |
|---|
| Error | 0.0 |
|---|
| Cost | 704 |
|---|
\[d1 \cdot d2 + d1 \cdot \left(\left(d4 - d1\right) - d3\right)\]
| Alternative 14 |
|---|
| Error | 0.0 |
|---|
| Cost | 704 |
|---|
\[d1 \cdot \left(d4 + d2\right) - d1 \cdot \left(d1 + d3\right)\]
| Alternative 15 |
|---|
| Error | 17.9 |
|---|
| Cost | 576 |
|---|
\[d1 \cdot \left(d4 - d3\right) - d1 \cdot d1\]
| Alternative 16 |
|---|
| Error | 0.0 |
|---|
| Cost | 576 |
|---|
\[d1 \cdot \left(d4 + \left(\left(d2 - d3\right) - d1\right)\right)\]
| Alternative 17 |
|---|
| Error | 36.2 |
|---|
| Cost | 512 |
|---|
\[\left(-d1 \cdot d3\right) - d1 \cdot d1\]
| Alternative 18 |
|---|
| Error | 17.9 |
|---|
| Cost | 448 |
|---|
\[d1 \cdot \left(\left(d4 - d1\right) - d3\right)\]
| Alternative 19 |
|---|
| Error | 7.4 |
|---|
| Cost | 448 |
|---|
\[d1 \cdot \left(d4 + \left(d2 - d3\right)\right)\]
| Alternative 20 |
|---|
| Error | 36.1 |
|---|
| Cost | 448 |
|---|
\[d1 \cdot d4 - d1 \cdot d1\]
| Alternative 21 |
|---|
| Error | 36.9 |
|---|
| Cost | 448 |
|---|
\[d1 \cdot d2 - d1 \cdot d1\]
| Alternative 22 |
|---|
| Error | 43.1 |
|---|
| Cost | 256 |
|---|
\[-d1 \cdot d3\]
| Alternative 23 |
|---|
| Error | 53.9 |
|---|
| Cost | 256 |
|---|
\[d1 \cdot \left(-d1\right)\]
| Alternative 24 |
|---|
| Error | 42.9 |
|---|
| Cost | 192 |
|---|
\[d1 \cdot d4\]
| Alternative 25 |
|---|
| Error | 43.8 |
|---|
| Cost | 192 |
|---|
\[d1 \cdot d2\]
| Alternative 26 |
|---|
| Error | 61.9 |
|---|
| Cost | 64 |
|---|
\[1\]
| Alternative 27 |
|---|
| Error | 60.8 |
|---|
| Cost | 64 |
|---|
\[0\]
| Alternative 28 |
|---|
| Error | 61.6 |
|---|
| Cost | 64 |
|---|
\[-1\]
Error

Derivation
Initial program 0.0
\[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1\]
Simplified0.0
\[\leadsto \color{blue}{\left(d1 \cdot d4 + \left(d1 \cdot d2 - d1 \cdot d3\right)\right) - d1 \cdot d1}\]
Final simplification0.0
\[\leadsto \left(d1 \cdot d4 + \left(d1 \cdot d2 - d1 \cdot d3\right)\right) - d1 \cdot d1\]
Reproduce
herbie shell --seed 2021042
(FPCore (d1 d2 d3 d4)
:name "FastMath dist4"
:precision binary64
:herbie-target
(* d1 (- (+ (- d2 d3) d4) d1))
(- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))