Average Error: 1.5 → 0.6
Time: 12.2s
Precision: binary64
Cost: 1474
Math TeX FPCore C \[x + y \cdot \frac{z - t}{z - a}\]
↓
\[\begin{array}{l}
\mathbf{if}\;y \leq -5.960308320085401 \cdot 10^{-20}:\\
\;\;\;\;x + y \cdot \frac{z - t}{z - a}\\
\mathbf{elif}\;y \leq 1.672021968335163 \cdot 10^{+43}:\\
\;\;\;\;x + \left(y \cdot \left(z - t\right)\right) \cdot \frac{1}{z - a}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y}{\frac{z - a}{z - t}}\\
\end{array}\]
x + y \cdot \frac{z - t}{z - a} ↓
\begin{array}{l}
\mathbf{if}\;y \leq -5.960308320085401 \cdot 10^{-20}:\\
\;\;\;\;x + y \cdot \frac{z - t}{z - a}\\
\mathbf{elif}\;y \leq 1.672021968335163 \cdot 10^{+43}:\\
\;\;\;\;x + \left(y \cdot \left(z - t\right)\right) \cdot \frac{1}{z - a}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y}{\frac{z - a}{z - t}}\\
\end{array} (FPCore (x y z t a) :precision binary64 (+ x (* y (/ (- z t) (- z a))))) ↓
(FPCore (x y z t a)
:precision binary64
(if (<= y -5.960308320085401e-20)
(+ x (* y (/ (- z t) (- z a))))
(if (<= y 1.672021968335163e+43)
(+ x (* (* y (- z t)) (/ 1.0 (- z a))))
(+ x (/ y (/ (- z a) (- z t))))))) double code(double x, double y, double z, double t, double a) {
return x + (y * ((z - t) / (z - a)));
}
↓
double code(double x, double y, double z, double t, double a) {
double tmp;
if (y <= -5.960308320085401e-20) {
tmp = x + (y * ((z - t) / (z - a)));
} else if (y <= 1.672021968335163e+43) {
tmp = x + ((y * (z - t)) * (1.0 / (z - a)));
} else {
tmp = x + (y / ((z - a) / (z - t)));
}
return tmp;
}
Try it out Enter valid numbers for all inputs
Target Original 1.5 Target 1.4 Herbie 0.6
\[x + \frac{y}{\frac{z - a}{z - t}}\]
Alternatives Alternative 1 Error 0.6 Cost 40128
\[x + \left(y \cdot \frac{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}}{\sqrt[3]{z - a} \cdot \sqrt[3]{z - a}}\right) \cdot \frac{\sqrt[3]{z - t}}{\sqrt[3]{z - a}}\]
Alternative 2 Error 0.6 Cost 1346
\[\begin{array}{l}
\mathbf{if}\;y \leq -2.45465729562505 \cdot 10^{-60}:\\
\;\;\;\;x + y \cdot \frac{z - t}{z - a}\\
\mathbf{elif}\;y \leq 1.672021968335163 \cdot 10^{+43}:\\
\;\;\;\;x + \frac{y \cdot \left(z - t\right)}{z - a}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y}{\frac{z - a}{z - t}}\\
\end{array}\]
Alternative 3 Error 0.9 Cost 1409
\[\begin{array}{l}
\mathbf{if}\;\frac{z - t}{z - a} \leq -8.356417927164571 \cdot 10^{+235}:\\
\;\;\;\;x - t \cdot \frac{y}{z - a}\\
\mathbf{else}:\\
\;\;\;\;x + y \cdot \frac{z - t}{z - a}\\
\end{array}\]
Alternative 4 Error 0.9 Cost 1409
\[\begin{array}{l}
\mathbf{if}\;\frac{z - t}{z - a} \leq -1.1791595430829916 \cdot 10^{+168}:\\
\;\;\;\;x - \frac{t}{\frac{z - a}{y}}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y}{\frac{z - a}{z - t}}\\
\end{array}\]
Alternative 5 Error 2.2 Cost 2691
\[\begin{array}{l}
\mathbf{if}\;\frac{z - t}{z - a} \leq -1.0620475210778985 \cdot 10^{+21}:\\
\;\;\;\;x - \frac{t}{\frac{z - a}{y}}\\
\mathbf{elif}\;\frac{z - t}{z - a} \leq 1.1106907187803091 \cdot 10^{-19}:\\
\;\;\;\;x - \frac{y}{\frac{a}{z - t}}\\
\mathbf{elif}\;\frac{z - t}{z - a} \leq 1:\\
\;\;\;\;x + y \cdot \frac{z}{z - a}\\
\mathbf{else}:\\
\;\;\;\;x - t \cdot \frac{y}{z - a}\\
\end{array}\]
Alternative 6 Error 2.4 Cost 2691
\[\begin{array}{l}
\mathbf{if}\;\frac{z - t}{z - a} \leq -1.0620475210778985 \cdot 10^{+21}:\\
\;\;\;\;x - \frac{t}{\frac{z - a}{y}}\\
\mathbf{elif}\;\frac{z - t}{z - a} \leq 7.578109156794213 \cdot 10^{-11}:\\
\;\;\;\;x - \frac{y}{\frac{a}{z - t}}\\
\mathbf{elif}\;\frac{z - t}{z - a} \leq 1:\\
\;\;\;\;y + x\\
\mathbf{else}:\\
\;\;\;\;x - t \cdot \frac{y}{z - a}\\
\end{array}\]
Alternative 7 Error 12.4 Cost 1169
\[\begin{array}{l}
\mathbf{if}\;z \leq -2.184583787047839 \cdot 10^{+98} \lor \neg \left(z \leq -7.1804636252200155 \cdot 10^{-12} \lor \neg \left(z \leq -8.142568326833419 \cdot 10^{-169}\right) \land z \leq 2.3126298001576838 \cdot 10^{+55}\right):\\
\;\;\;\;y + x\\
\mathbf{else}:\\
\;\;\;\;x - t \cdot \frac{y}{z - a}\\
\end{array}\]
Alternative 8 Error 14.8 Cost 904
\[\begin{array}{l}
\mathbf{if}\;z \leq -6.598857573502581 \cdot 10^{-169} \lor \neg \left(z \leq 2.930854184528944 \cdot 10^{+52}\right):\\
\;\;\;\;y + x\\
\mathbf{else}:\\
\;\;\;\;x - \frac{y}{\frac{a}{z - t}}\\
\end{array}\]
Alternative 9 Error 16.0 Cost 776
\[\begin{array}{l}
\mathbf{if}\;z \leq -8.142568326833419 \cdot 10^{-169} \lor \neg \left(z \leq 1.7508724934294406 \cdot 10^{-91}\right):\\
\;\;\;\;y + x\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y \cdot t}{a}\\
\end{array}\]
Alternative 10 Error 15.5 Cost 776
\[\begin{array}{l}
\mathbf{if}\;z \leq -8.142568326833419 \cdot 10^{-169} \lor \neg \left(z \leq 2.4940199285885987 \cdot 10^{+51}\right):\\
\;\;\;\;y + x\\
\mathbf{else}:\\
\;\;\;\;x + y \cdot \frac{t}{a}\\
\end{array}\]
Alternative 11 Error 21.9 Cost 192
\[y + x\]
Alternative 12 Error 28.6 Cost 64
\[x\]
Alternative 13 Error 61.8 Cost 64
\[1\]
Error Derivation Split input into 3 regimes if y < -5.9603083200854013e-20 Initial program 0.6
\[x + y \cdot \frac{z - t}{z - a}\]
Simplified0.6
\[\leadsto \color{blue}{x + y \cdot \frac{z - t}{z - a}}\]
if -5.9603083200854013e-20 < y < 1.6720219683351629e43 Initial program 2.2
\[x + y \cdot \frac{z - t}{z - a}\]
Using strategy rm Applied div-inv_binary64_11328 2.2
\[\leadsto x + y \cdot \color{blue}{\left(\left(z - t\right) \cdot \frac{1}{z - a}\right)}\]
Applied associate-*r*_binary64_11271 0.4
\[\leadsto x + \color{blue}{\left(y \cdot \left(z - t\right)\right) \cdot \frac{1}{z - a}}\]
Simplified0.4
\[\leadsto \color{blue}{x + \left(y \cdot \left(z - t\right)\right) \cdot \frac{1}{z - a}}\]
if 1.6720219683351629e43 < y Initial program 0.8
\[x + y \cdot \frac{z - t}{z - a}\]
Using strategy rm Applied clear-num_binary64_11330 1.0
\[\leadsto x + y \cdot \color{blue}{\frac{1}{\frac{z - a}{z - t}}}\]
Using strategy rm Applied un-div-inv_binary64_11329 0.9
\[\leadsto x + \color{blue}{\frac{y}{\frac{z - a}{z - t}}}\]
Simplified0.9
\[\leadsto \color{blue}{x + \frac{y}{\frac{z - a}{z - t}}}\]
Recombined 3 regimes into one program. Final simplification0.6
\[\leadsto \begin{array}{l}
\mathbf{if}\;y \leq -5.960308320085401 \cdot 10^{-20}:\\
\;\;\;\;x + y \cdot \frac{z - t}{z - a}\\
\mathbf{elif}\;y \leq 1.672021968335163 \cdot 10^{+43}:\\
\;\;\;\;x + \left(y \cdot \left(z - t\right)\right) \cdot \frac{1}{z - a}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y}{\frac{z - a}{z - t}}\\
\end{array}\]
Reproduce herbie shell --seed 2021044
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (* y (/ (- z t) (- z a)))))