Average Error: 21.9 → 0.1
Time: 8.7s
Precision: binary64
Cost: 15426
\[1 - \frac{\left(1 - x\right) \cdot y}{y + 1}\]
↓
\[\begin{array}{l}
\mathbf{if}\;y \leq -1175788890.492152:\\
\;\;\;\;\left(\frac{x}{y \cdot y} + \left(x + \left(\frac{1}{y} + {\left(\frac{1}{y}\right)}^{3}\right)\right)\right) - \left(\frac{x}{y} + \left(1 + \frac{x}{y}\right) \cdot \frac{1}{y \cdot y}\right)\\
\mathbf{elif}\;y \leq 11013.798141579568:\\
\;\;\;\;\left(1 + \left(y \cdot y\right) \cdot \frac{y \cdot x - y}{1 + {y}^{3}}\right) + \frac{y \cdot x - y}{1 + {y}^{3}} \cdot \left(1 - y\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{x}{y \cdot y} + \left(x + \left(\frac{1}{y} + {\left(\frac{1}{y}\right)}^{3}\right)\right)\right) - \left(\frac{x}{y} + \left(1 + \frac{x}{y}\right) \cdot \frac{1}{y \cdot y}\right)\\
\end{array}\]
1 - \frac{\left(1 - x\right) \cdot y}{y + 1}↓
\begin{array}{l}
\mathbf{if}\;y \leq -1175788890.492152:\\
\;\;\;\;\left(\frac{x}{y \cdot y} + \left(x + \left(\frac{1}{y} + {\left(\frac{1}{y}\right)}^{3}\right)\right)\right) - \left(\frac{x}{y} + \left(1 + \frac{x}{y}\right) \cdot \frac{1}{y \cdot y}\right)\\
\mathbf{elif}\;y \leq 11013.798141579568:\\
\;\;\;\;\left(1 + \left(y \cdot y\right) \cdot \frac{y \cdot x - y}{1 + {y}^{3}}\right) + \frac{y \cdot x - y}{1 + {y}^{3}} \cdot \left(1 - y\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{x}{y \cdot y} + \left(x + \left(\frac{1}{y} + {\left(\frac{1}{y}\right)}^{3}\right)\right)\right) - \left(\frac{x}{y} + \left(1 + \frac{x}{y}\right) \cdot \frac{1}{y \cdot y}\right)\\
\end{array}(FPCore (x y) :precision binary64 (- 1.0 (/ (* (- 1.0 x) y) (+ y 1.0))))
↓
(FPCore (x y)
:precision binary64
(if (<= y -1175788890.492152)
(-
(+ (/ x (* y y)) (+ x (+ (/ 1.0 y) (pow (/ 1.0 y) 3.0))))
(+ (/ x y) (* (+ 1.0 (/ x y)) (/ 1.0 (* y y)))))
(if (<= y 11013.798141579568)
(+
(+ 1.0 (* (* y y) (/ (- (* y x) y) (+ 1.0 (pow y 3.0)))))
(* (/ (- (* y x) y) (+ 1.0 (pow y 3.0))) (- 1.0 y)))
(-
(+ (/ x (* y y)) (+ x (+ (/ 1.0 y) (pow (/ 1.0 y) 3.0))))
(+ (/ x y) (* (+ 1.0 (/ x y)) (/ 1.0 (* y y))))))))double code(double x, double y) {
return 1.0 - (((1.0 - x) * y) / (y + 1.0));
}
↓
double code(double x, double y) {
double tmp;
if (y <= -1175788890.492152) {
tmp = ((x / (y * y)) + (x + ((1.0 / y) + pow((1.0 / y), 3.0)))) - ((x / y) + ((1.0 + (x / y)) * (1.0 / (y * y))));
} else if (y <= 11013.798141579568) {
tmp = (1.0 + ((y * y) * (((y * x) - y) / (1.0 + pow(y, 3.0))))) + ((((y * x) - y) / (1.0 + pow(y, 3.0))) * (1.0 - y));
} else {
tmp = ((x / (y * y)) + (x + ((1.0 / y) + pow((1.0 / y), 3.0)))) - ((x / y) + ((1.0 + (x / y)) * (1.0 / (y * y))));
}
return tmp;
}
Try it out
Enter valid numbers for all inputs
Target
| Original | 21.9 |
|---|
| Target | 0.2 |
|---|
| Herbie | 0.1 |
|---|
\[\begin{array}{l}
\mathbf{if}\;y < -3693.8482788297247:\\
\;\;\;\;\frac{1}{y} - \left(\frac{x}{y} - x\right)\\
\mathbf{elif}\;y < 6799310503.41891:\\
\;\;\;\;1 - \frac{\left(1 - x\right) \cdot y}{y + 1}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{y} - \left(\frac{x}{y} - x\right)\\
\end{array}\]
Alternatives
| Alternative 1 |
|---|
| Error | 30.0 |
|---|
| Cost | 27648 |
|---|
\[\left(1 + \left(y \cdot y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}\right) + \sqrt[3]{{\left(\left(1 - y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}\right)}^{3}}\]
| Alternative 2 |
|---|
| Error | 22.3 |
|---|
| Cost | 21440 |
|---|
\[\sqrt[3]{1 - \frac{\left(1 - x\right) \cdot y}{1 + y}} \cdot \left(\sqrt[3]{1 - \frac{\left(1 - x\right) \cdot y}{1 + y}} \cdot \sqrt[3]{1 - \frac{\left(1 - x\right) \cdot y}{1 + y}}\right)\]
| Alternative 3 |
|---|
| Error | 22.3 |
|---|
| Cost | 21184 |
|---|
\[1 - \sqrt[3]{\frac{\left(1 - x\right) \cdot y}{1 + y}} \cdot \left(\sqrt[3]{\frac{\left(1 - x\right) \cdot y}{1 + y}} \cdot \sqrt[3]{\frac{\left(1 - x\right) \cdot y}{1 + y}}\right)\]
| Alternative 4 |
|---|
| Error | 22.3 |
|---|
| Cost | 20672 |
|---|
\[1 - \frac{\sqrt[3]{\left(1 - x\right) \cdot y} \cdot \left(\sqrt[3]{\left(1 - x\right) \cdot y} \cdot \sqrt[3]{\left(1 - x\right) \cdot y}\right)}{1 + y}\]
| Alternative 5 |
|---|
| Error | 16.9 |
|---|
| Cost | 20416 |
|---|
\[1 - \frac{y \cdot \frac{1 - x}{\sqrt[3]{1 + y} \cdot \sqrt[3]{1 + y}}}{\sqrt[3]{1 + y}}\]
| Alternative 6 |
|---|
| Error | 14.4 |
|---|
| Cost | 20416 |
|---|
\[1 - \frac{1 - x}{\sqrt[3]{1 + y} \cdot \sqrt[3]{1 + y}} \cdot \frac{y}{\sqrt[3]{1 + y}}\]
| Alternative 7 |
|---|
| Error | 22.3 |
|---|
| Cost | 20160 |
|---|
\[1 - \frac{\sqrt[3]{y} \cdot \left(\left(1 - x\right) \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right)\right)}{1 + y}\]
| Alternative 8 |
|---|
| Error | 29.8 |
|---|
| Cost | 15424 |
|---|
\[\left(1 + \left(y \cdot y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}\right) + \left(1 - y\right) \cdot \frac{\left(x \cdot y\right) \cdot \left(x \cdot y\right) - y \cdot y}{\left(1 + x\right) \cdot \left(y + {y}^{4}\right)}\]
| Alternative 9 |
|---|
| Error | 24.4 |
|---|
| Cost | 14784 |
|---|
\[\left(1 + \left(y \cdot y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}\right) + \left(1 - y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}\]
| Alternative 10 |
|---|
| Error | 33.1 |
|---|
| Cost | 14528 |
|---|
\[\left(1 + \left(y \cdot y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}\right) + \left(y - 1\right) \cdot \frac{y}{1 + {y}^{3}}\]
| Alternative 11 |
|---|
| Error | 42.2 |
|---|
| Cost | 14144 |
|---|
\[1 - \sqrt{\frac{\left(1 - x\right) \cdot y}{1 + y}} \cdot \sqrt{\frac{\left(1 - x\right) \cdot y}{1 + y}}\]
| Alternative 12 |
|---|
| Error | 42.9 |
|---|
| Cost | 13888 |
|---|
\[1 - \frac{\sqrt{\left(1 - x\right) \cdot y} \cdot \sqrt{\left(1 - x\right) \cdot y}}{1 + y}\]
| Alternative 13 |
|---|
| Error | 23.3 |
|---|
| Cost | 13760 |
|---|
\[1 - \frac{1 - x}{\sqrt{1 + y}} \cdot \frac{y}{\sqrt{1 + y}}\]
| Alternative 14 |
|---|
| Error | 25.1 |
|---|
| Cost | 13760 |
|---|
\[1 - \frac{y \cdot \frac{1 - x}{\sqrt{1 + y}}}{\sqrt{1 + y}}\]
| Alternative 15 |
|---|
| Error | 42.8 |
|---|
| Cost | 13632 |
|---|
\[1 - \frac{\sqrt{y} \cdot \left(\left(1 - x\right) \cdot \sqrt{y}\right)}{1 + y}\]
| Alternative 16 |
|---|
| Error | 33.9 |
|---|
| Cost | 13568 |
|---|
\[1 - \frac{\sqrt[3]{{\left(\left(1 - x\right) \cdot y\right)}^{3}}}{1 + y}\]
| Alternative 17 |
|---|
| Error | 43.6 |
|---|
| Cost | 13504 |
|---|
\[1 - \frac{e^{\log \left(\left(1 - x\right) \cdot y\right)}}{1 + y}\]
| Alternative 18 |
|---|
| Error | 31.3 |
|---|
| Cost | 13504 |
|---|
\[e^{\log \left(1 - \frac{\left(1 - x\right) \cdot y}{1 + y}\right)}\]
| Alternative 19 |
|---|
| Error | 38.2 |
|---|
| Cost | 13504 |
|---|
\[\log \left(e^{1 - \frac{\left(1 - x\right) \cdot y}{1 + y}}\right)\]
| Alternative 20 |
|---|
| Error | 29.3 |
|---|
| Cost | 8704 |
|---|
\[\frac{1 - {\left(\frac{\left(1 - x\right) \cdot y}{1 + y}\right)}^{3}}{1 + \frac{\left(1 - x\right) \cdot y}{1 + y} \cdot \left(1 + \frac{\left(1 - x\right) \cdot y}{1 + y}\right)}\]
| Alternative 21 |
|---|
| Error | 32.2 |
|---|
| Cost | 8448 |
|---|
\[\left(\frac{x}{y \cdot y} + \left(x + \left(\frac{1}{y} + {\left(\frac{1}{y}\right)}^{3}\right)\right)\right) - \left(\frac{x}{y} + \left(1 + \frac{x}{y}\right) \cdot \frac{1}{y \cdot y}\right)\]
| Alternative 22 |
|---|
| Error | 26.5 |
|---|
| Cost | 7680 |
|---|
\[1 - \frac{\left(1 - x\right) \cdot y}{1 + {y}^{3}} \cdot \left(y \cdot y + \left(1 - y\right)\right)\]
| Alternative 23 |
|---|
| Error | 26.5 |
|---|
| Cost | 7680 |
|---|
\[1 + \left(y \cdot y + \left(1 - y\right)\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}\]
| Alternative 24 |
|---|
| Error | 26.1 |
|---|
| Cost | 2112 |
|---|
\[\frac{1 - \frac{\left(1 - x\right) \cdot y}{1 + y} \cdot \frac{\left(1 - x\right) \cdot y}{1 + y}}{1 + \frac{\left(1 - x\right) \cdot y}{1 + y}}\]
| Alternative 25 |
|---|
| Error | 32.3 |
|---|
| Cost | 1344 |
|---|
\[\left(x + \left(\frac{x}{y \cdot y} + \frac{1}{y}\right)\right) - \left(\frac{x}{y} + \frac{1}{y \cdot y}\right)\]
| Alternative 26 |
|---|
| Error | 32.3 |
|---|
| Cost | 1216 |
|---|
\[\left(\frac{1 - x}{y} + \left(x + \frac{x}{y \cdot y}\right)\right) - \frac{1}{y \cdot y}\]
| Alternative 27 |
|---|
| Error | 24.4 |
|---|
| Cost | 1088 |
|---|
\[1 - \frac{\left(1 - x\right) \cdot y}{y \cdot y - 1} \cdot \left(y - 1\right)\]
| Alternative 28 |
|---|
| Error | 34.4 |
|---|
| Cost | 1088 |
|---|
\[1 - \frac{y \cdot \left(1 - x \cdot x\right)}{\left(1 + y\right) \cdot \left(1 + x\right)}\]
| Alternative 29 |
|---|
| Error | 22.0 |
|---|
| Cost | 832 |
|---|
\[1 - \left(\left(1 - x\right) \cdot y\right) \cdot \frac{1}{1 + y}\]
| Alternative 30 |
|---|
| Error | 31.8 |
|---|
| Cost | 832 |
|---|
\[1 - \left(y + y \cdot \left(x \cdot y - \left(x + y\right)\right)\right)\]
| Alternative 31 |
|---|
| Error | 14.0 |
|---|
| Cost | 704 |
|---|
\[1 - \left(1 - x\right) \cdot \frac{y}{1 + y}\]
| Alternative 32 |
|---|
| Error | 21.9 |
|---|
| Cost | 704 |
|---|
\[1 - \frac{\left(1 - x\right) \cdot y}{1 + y}\]
| Alternative 33 |
|---|
| Error | 15.7 |
|---|
| Cost | 576 |
|---|
\[1 + \frac{x}{\frac{1 + y}{y}}\]
| Alternative 34 |
|---|
| Error | 23.6 |
|---|
| Cost | 576 |
|---|
\[1 + \frac{x \cdot y}{1 + y}\]
| Alternative 35 |
|---|
| Error | 31.9 |
|---|
| Cost | 576 |
|---|
\[1 - x \cdot \left(y \cdot y - y\right)\]
| Alternative 36 |
|---|
| Error | 32.1 |
|---|
| Cost | 576 |
|---|
\[\left(x + \frac{1}{y}\right) - \frac{x}{y}\]
| Alternative 37 |
|---|
| Error | 23.6 |
|---|
| Cost | 576 |
|---|
\[1 - \frac{x \cdot y}{-1 - y}\]
| Alternative 38 |
|---|
| Error | 32.1 |
|---|
| Cost | 448 |
|---|
\[x + \frac{1 - x}{y}\]
| Alternative 39 |
|---|
| Error | 30.8 |
|---|
| Cost | 448 |
|---|
\[\frac{x}{\frac{1 + y}{y}}\]
| Alternative 40 |
|---|
| Error | 31.6 |
|---|
| Cost | 448 |
|---|
\[1 - \left(1 - x\right) \cdot y\]
| Alternative 41 |
|---|
| Error | 38.8 |
|---|
| Cost | 448 |
|---|
\[1 - \frac{y}{1 + y}\]
| Alternative 42 |
|---|
| Error | 45.8 |
|---|
| Cost | 320 |
|---|
\[1 - \left(1 - x\right)\]
| Alternative 43 |
|---|
| Error | 31.5 |
|---|
| Cost | 320 |
|---|
\[1 + x \cdot y\]
| Alternative 44 |
|---|
| Error | 38.8 |
|---|
| Cost | 64 |
|---|
\[x\]
| Alternative 45 |
|---|
| Error | 39.4 |
|---|
| Cost | 64 |
|---|
\[1\]
| Alternative 46 |
|---|
| Error | 62.0 |
|---|
| Cost | 64 |
|---|
\[0\]
| Alternative 47 |
|---|
| Error | 62.1 |
|---|
| Cost | 64 |
|---|
\[-1\]
Error

Derivation
- Split input into 2 regimes
if y < -1175788890.49215198 or 11013.7981415795675 < y
Initial program 45.0
\[1 - \frac{\left(1 - x\right) \cdot y}{y + 1}\]
Taylor expanded around inf 0.0
\[\leadsto \color{blue}{\left(\frac{x}{{y}^{2}} + \left(\frac{1}{{y}^{3}} + \left(\frac{1}{y} + x\right)\right)\right) - \left(\frac{x}{{y}^{3}} + \left(\frac{1}{{y}^{2}} + \frac{x}{y}\right)\right)}\]
Simplified0.0
\[\leadsto \color{blue}{\left(\frac{x}{y \cdot y} + \left(x + \left(\frac{1}{y} + {\left(\frac{1}{y}\right)}^{3}\right)\right)\right) - \left(\frac{x}{y} + \left(1 + \frac{x}{y}\right) \cdot \frac{1}{y \cdot y}\right)}\]
Simplified0.0
\[\leadsto \color{blue}{\left(\frac{x}{y \cdot y} + \left(x + \left(\frac{1}{y} + {\left(\frac{1}{y}\right)}^{3}\right)\right)\right) - \left(\frac{x}{y} + \left(1 + \frac{x}{y}\right) \cdot \frac{1}{y \cdot y}\right)}\]
if -1175788890.49215198 < y < 11013.7981415795675
Initial program 0.1
\[1 - \frac{\left(1 - x\right) \cdot y}{y + 1}\]
- Using strategy
rm Applied flip3-+_binary64_213860.1
\[\leadsto 1 - \frac{\left(1 - x\right) \cdot y}{\color{blue}{\frac{{y}^{3} + {1}^{3}}{y \cdot y + \left(1 \cdot 1 - y \cdot 1\right)}}}\]
Applied associate-/r/_binary64_213290.1
\[\leadsto 1 - \color{blue}{\frac{\left(1 - x\right) \cdot y}{{y}^{3} + {1}^{3}} \cdot \left(y \cdot y + \left(1 \cdot 1 - y \cdot 1\right)\right)}\]
Applied cancel-sign-sub-inv_binary64_213490.1
\[\leadsto \color{blue}{1 + \left(-\frac{\left(1 - x\right) \cdot y}{{y}^{3} + {1}^{3}}\right) \cdot \left(y \cdot y + \left(1 \cdot 1 - y \cdot 1\right)\right)}\]
Simplified0.1
\[\leadsto 1 + \color{blue}{\frac{x \cdot y - y}{1 + {y}^{3}} \cdot \left(y \cdot y + \left(1 - y\right)\right)}\]
- Using strategy
rm Applied distribute-rgt-in_binary64_213330.1
\[\leadsto 1 + \color{blue}{\left(\left(y \cdot y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}} + \left(1 - y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}\right)}\]
Applied associate-+r+_binary64_213150.1
\[\leadsto \color{blue}{\left(1 + \left(y \cdot y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}\right) + \left(1 - y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}}\]
Simplified0.1
\[\leadsto \color{blue}{\left(1 + \frac{x \cdot y - y}{1 + {y}^{3}} \cdot \left(y \cdot y\right)\right)} + \left(1 - y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}\]
Simplified0.1
\[\leadsto \color{blue}{\left(1 + \left(y \cdot y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}\right) + \left(1 - y\right) \cdot \frac{x \cdot y - y}{1 + {y}^{3}}}\]
- Recombined 2 regimes into one program.
Final simplification0.1
\[\leadsto \begin{array}{l}
\mathbf{if}\;y \leq -1175788890.492152:\\
\;\;\;\;\left(\frac{x}{y \cdot y} + \left(x + \left(\frac{1}{y} + {\left(\frac{1}{y}\right)}^{3}\right)\right)\right) - \left(\frac{x}{y} + \left(1 + \frac{x}{y}\right) \cdot \frac{1}{y \cdot y}\right)\\
\mathbf{elif}\;y \leq 11013.798141579568:\\
\;\;\;\;\left(1 + \left(y \cdot y\right) \cdot \frac{y \cdot x - y}{1 + {y}^{3}}\right) + \frac{y \cdot x - y}{1 + {y}^{3}} \cdot \left(1 - y\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{x}{y \cdot y} + \left(x + \left(\frac{1}{y} + {\left(\frac{1}{y}\right)}^{3}\right)\right)\right) - \left(\frac{x}{y} + \left(1 + \frac{x}{y}\right) \cdot \frac{1}{y \cdot y}\right)\\
\end{array}\]
Reproduce
herbie shell --seed 2021042
(FPCore (x y)
:name "Diagrams.Trail:splitAtParam from diagrams-lib-1.3.0.3, D"
:precision binary64
:herbie-target
(if (< y -3693.8482788297247) (- (/ 1.0 y) (- (/ x y) x)) (if (< y 6799310503.41891) (- 1.0 (/ (* (- 1.0 x) y) (+ y 1.0))) (- (/ 1.0 y) (- (/ x y) x))))
(- 1.0 (/ (* (- 1.0 x) y) (+ y 1.0))))