| Alternative 1 | |
|---|---|
| Error | 8.06% |
| Cost | 20492 |
(FPCore (x y z t a) :precision binary64 (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))))
(FPCore (x y z t a)
:precision binary64
(if (<= z -5e+112)
(/ (* x y) (fma 0.5 (* (/ a (* z z)) t) -1.0))
(if (<= z -2e-209)
(* x (* y (/ z (sqrt (- (* z z) (* a t))))))
(if (<= z 4.5e-210)
(pow
(cbrt (* (exp (* -0.5 (- (log (- t)) (log (/ 1.0 a))))) (* z (* x y))))
3.0)
(* y (* x (pow (- 1.0 (/ (/ t z) (/ z a))) -0.5)))))))double code(double x, double y, double z, double t, double a) {
return ((x * y) * z) / sqrt(((z * z) - (t * a)));
}
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -5e+112) {
tmp = (x * y) / fma(0.5, ((a / (z * z)) * t), -1.0);
} else if (z <= -2e-209) {
tmp = x * (y * (z / sqrt(((z * z) - (a * t)))));
} else if (z <= 4.5e-210) {
tmp = pow(cbrt((exp((-0.5 * (log(-t) - log((1.0 / a))))) * (z * (x * y)))), 3.0);
} else {
tmp = y * (x * pow((1.0 - ((t / z) / (z / a))), -0.5));
}
return tmp;
}
function code(x, y, z, t, a) return Float64(Float64(Float64(x * y) * z) / sqrt(Float64(Float64(z * z) - Float64(t * a)))) end
function code(x, y, z, t, a) tmp = 0.0 if (z <= -5e+112) tmp = Float64(Float64(x * y) / fma(0.5, Float64(Float64(a / Float64(z * z)) * t), -1.0)); elseif (z <= -2e-209) tmp = Float64(x * Float64(y * Float64(z / sqrt(Float64(Float64(z * z) - Float64(a * t)))))); elseif (z <= 4.5e-210) tmp = cbrt(Float64(exp(Float64(-0.5 * Float64(log(Float64(-t)) - log(Float64(1.0 / a))))) * Float64(z * Float64(x * y)))) ^ 3.0; else tmp = Float64(y * Float64(x * (Float64(1.0 - Float64(Float64(t / z) / Float64(z / a))) ^ -0.5))); end return tmp end
code[x_, y_, z_, t_, a_] := N[(N[(N[(x * y), $MachinePrecision] * z), $MachinePrecision] / N[Sqrt[N[(N[(z * z), $MachinePrecision] - N[(t * a), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -5e+112], N[(N[(x * y), $MachinePrecision] / N[(0.5 * N[(N[(a / N[(z * z), $MachinePrecision]), $MachinePrecision] * t), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, -2e-209], N[(x * N[(y * N[(z / N[Sqrt[N[(N[(z * z), $MachinePrecision] - N[(a * t), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 4.5e-210], N[Power[N[Power[N[(N[Exp[N[(-0.5 * N[(N[Log[(-t)], $MachinePrecision] - N[Log[N[(1.0 / a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(z * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision], 3.0], $MachinePrecision], N[(y * N[(x * N[Power[N[(1.0 - N[(N[(t / z), $MachinePrecision] / N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], -0.5], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}
\begin{array}{l}
\mathbf{if}\;z \leq -5 \cdot 10^{+112}:\\
\;\;\;\;\frac{x \cdot y}{\mathsf{fma}\left(0.5, \frac{a}{z \cdot z} \cdot t, -1\right)}\\
\mathbf{elif}\;z \leq -2 \cdot 10^{-209}:\\
\;\;\;\;x \cdot \left(y \cdot \frac{z}{\sqrt{z \cdot z - a \cdot t}}\right)\\
\mathbf{elif}\;z \leq 4.5 \cdot 10^{-210}:\\
\;\;\;\;{\left(\sqrt[3]{e^{-0.5 \cdot \left(\log \left(-t\right) - \log \left(\frac{1}{a}\right)\right)} \cdot \left(z \cdot \left(x \cdot y\right)\right)}\right)}^{3}\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(x \cdot {\left(1 - \frac{\frac{t}{z}}{\frac{z}{a}}\right)}^{-0.5}\right)\\
\end{array}
| Original | 38.6% |
|---|---|
| Target | 11.53% |
| Herbie | 9.14% |
if z < -5e112Initial program 71.92
Simplified68.64
[Start]71.92 | \[ \frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}
\] |
|---|---|
associate-/l* [=>]68.64 | \[ \color{blue}{\frac{x \cdot y}{\frac{\sqrt{z \cdot z - t \cdot a}}{z}}}
\] |
Taylor expanded in z around -inf 11.12
Simplified2.86
[Start]11.12 | \[ \frac{x \cdot y}{0.5 \cdot \frac{a \cdot t}{{z}^{2}} - 1}
\] |
|---|---|
fma-neg [=>]11.12 | \[ \frac{x \cdot y}{\color{blue}{\mathsf{fma}\left(0.5, \frac{a \cdot t}{{z}^{2}}, -1\right)}}
\] |
associate-/l* [=>]2.86 | \[ \frac{x \cdot y}{\mathsf{fma}\left(0.5, \color{blue}{\frac{a}{\frac{{z}^{2}}{t}}}, -1\right)}
\] |
associate-/r/ [=>]2.86 | \[ \frac{x \cdot y}{\mathsf{fma}\left(0.5, \color{blue}{\frac{a}{{z}^{2}} \cdot t}, -1\right)}
\] |
unpow2 [=>]2.86 | \[ \frac{x \cdot y}{\mathsf{fma}\left(0.5, \frac{a}{\color{blue}{z \cdot z}} \cdot t, -1\right)}
\] |
metadata-eval [=>]2.86 | \[ \frac{x \cdot y}{\mathsf{fma}\left(0.5, \frac{a}{z \cdot z} \cdot t, \color{blue}{-1}\right)}
\] |
if -5e112 < z < -2.0000000000000001e-209Initial program 12.74
Simplified8.7
[Start]12.74 | \[ \frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}
\] |
|---|---|
associate-*r/ [<=]8.95 | \[ \color{blue}{\left(x \cdot y\right) \cdot \frac{z}{\sqrt{z \cdot z - t \cdot a}}}
\] |
associate-*l* [=>]8.7 | \[ \color{blue}{x \cdot \left(y \cdot \frac{z}{\sqrt{z \cdot z - t \cdot a}}\right)}
\] |
if -2.0000000000000001e-209 < z < 4.5000000000000002e-210Initial program 29.22
Applied egg-rr27.96
Applied egg-rr29.69
Taylor expanded in a around inf 22.45
if 4.5000000000000002e-210 < z Initial program 40.12
Simplified36.54
[Start]40.12 | \[ \frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}
\] |
|---|---|
associate-/l* [=>]36.54 | \[ \color{blue}{\frac{x \cdot y}{\frac{\sqrt{z \cdot z - t \cdot a}}{z}}}
\] |
Applied egg-rr47.58
Simplified10.98
[Start]47.58 | \[ \frac{x \cdot y}{\sqrt{\frac{z \cdot z - t \cdot a}{z \cdot z}}}
\] |
|---|---|
*-commutative [=>]47.58 | \[ \frac{x \cdot y}{\sqrt{\frac{z \cdot z - \color{blue}{a \cdot t}}{z \cdot z}}}
\] |
div-sub [=>]50.24 | \[ \frac{x \cdot y}{\sqrt{\color{blue}{\frac{z \cdot z}{z \cdot z} - \frac{a \cdot t}{z \cdot z}}}}
\] |
unpow2 [<=]50.24 | \[ \frac{x \cdot y}{\sqrt{\frac{\color{blue}{{z}^{2}}}{z \cdot z} - \frac{a \cdot t}{z \cdot z}}}
\] |
unpow2 [<=]50.24 | \[ \frac{x \cdot y}{\sqrt{\frac{{z}^{2}}{\color{blue}{{z}^{2}}} - \frac{a \cdot t}{z \cdot z}}}
\] |
*-inverses [=>]13.84 | \[ \frac{x \cdot y}{\sqrt{\color{blue}{1} - \frac{a \cdot t}{z \cdot z}}}
\] |
unpow2 [<=]13.84 | \[ \frac{x \cdot y}{\sqrt{1 - \frac{a \cdot t}{\color{blue}{{z}^{2}}}}}
\] |
associate-/l* [=>]11.39 | \[ \frac{x \cdot y}{\sqrt{1 - \color{blue}{\frac{a}{\frac{{z}^{2}}{t}}}}}
\] |
associate-/r/ [=>]10.98 | \[ \frac{x \cdot y}{\sqrt{1 - \color{blue}{\frac{a}{{z}^{2}} \cdot t}}}
\] |
unpow2 [=>]10.98 | \[ \frac{x \cdot y}{\sqrt{1 - \frac{a}{\color{blue}{z \cdot z}} \cdot t}}
\] |
Applied egg-rr11.57
Simplified10.74
[Start]11.57 | \[ x \cdot \left(y \cdot {\left(1 - a \cdot \left({z}^{-2} \cdot t\right)\right)}^{-0.5}\right)
\] |
|---|---|
associate-*r* [=>]11.78 | \[ \color{blue}{\left(x \cdot y\right) \cdot {\left(1 - a \cdot \left({z}^{-2} \cdot t\right)\right)}^{-0.5}}
\] |
*-commutative [=>]11.78 | \[ \color{blue}{\left(y \cdot x\right)} \cdot {\left(1 - a \cdot \left({z}^{-2} \cdot t\right)\right)}^{-0.5}
\] |
associate-*r* [<=]11.64 | \[ \color{blue}{y \cdot \left(x \cdot {\left(1 - a \cdot \left({z}^{-2} \cdot t\right)\right)}^{-0.5}\right)}
\] |
Applied egg-rr8.65
Final simplification9.14
| Alternative 1 | |
|---|---|
| Error | 8.06% |
| Cost | 20492 |
| Alternative 2 | |
|---|---|
| Error | 10.22% |
| Cost | 7560 |
| Alternative 3 | |
|---|---|
| Error | 9.22% |
| Cost | 7496 |
| Alternative 4 | |
|---|---|
| Error | 8.69% |
| Cost | 7496 |
| Alternative 5 | |
|---|---|
| Error | 10.64% |
| Cost | 7496 |
| Alternative 6 | |
|---|---|
| Error | 10.7% |
| Cost | 7496 |
| Alternative 7 | |
|---|---|
| Error | 17.63% |
| Cost | 7368 |
| Alternative 8 | |
|---|---|
| Error | 18.15% |
| Cost | 7304 |
| Alternative 9 | |
|---|---|
| Error | 17.92% |
| Cost | 7304 |
| Alternative 10 | |
|---|---|
| Error | 25.49% |
| Cost | 1096 |
| Alternative 11 | |
|---|---|
| Error | 25.4% |
| Cost | 1096 |
| Alternative 12 | |
|---|---|
| Error | 25.41% |
| Cost | 1096 |
| Alternative 13 | |
|---|---|
| Error | 25.4% |
| Cost | 1096 |
| Alternative 14 | |
|---|---|
| Error | 23.48% |
| Cost | 1092 |
| Alternative 15 | |
|---|---|
| Error | 22.99% |
| Cost | 1092 |
| Alternative 16 | |
|---|---|
| Error | 26.11% |
| Cost | 840 |
| Alternative 17 | |
|---|---|
| Error | 28.57% |
| Cost | 712 |
| Alternative 18 | |
|---|---|
| Error | 28.58% |
| Cost | 712 |
| Alternative 19 | |
|---|---|
| Error | 26.03% |
| Cost | 712 |
| Alternative 20 | |
|---|---|
| Error | 29.3% |
| Cost | 388 |
| Alternative 21 | |
|---|---|
| Error | 57.67% |
| Cost | 192 |
herbie shell --seed 2023121
(FPCore (x y z t a)
:name "Statistics.Math.RootFinding:ridders from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(if (< z -3.1921305903852764e+46) (- (* y x)) (if (< z 5.976268120920894e+90) (/ (* x z) (/ (sqrt (- (* z z) (* a t))) y)) (* y x)))
(/ (* (* x y) z) (sqrt (- (* z z) (* t a)))))