| Alternative 1 | |
|---|---|
| Accuracy | 74.9% |
| Cost | 34120 |
(FPCore (x y z t a b) :precision binary64 (- (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) (/ a (* b 3.0))))
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* 2.0 (sqrt x)))
(t_2 (/ a (* 3.0 b)))
(t_3 (/ z (/ 3.0 t)))
(t_4 (* (cos y) (cos t_3)))
(t_5 (* (sin y) (sin t_3))))
(if (<= (* z t) -5e+23)
(- (* t_1 (expm1 (fma -0.25 (* y y) (log 2.0)))) t_2)
(if (<= (* z t) 2e+238)
(- (* t_1 (/ (- (* t_4 t_4) (* t_5 t_5)) (- t_4 t_5))) t_2)
(fma 2.0 (pow (cbrt (* (sqrt x) (cos y))) 3.0) (/ (/ a -3.0) b))))))double code(double x, double y, double z, double t, double a, double b) {
return ((2.0 * sqrt(x)) * cos((y - ((z * t) / 3.0)))) - (a / (b * 3.0));
}
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = 2.0 * sqrt(x);
double t_2 = a / (3.0 * b);
double t_3 = z / (3.0 / t);
double t_4 = cos(y) * cos(t_3);
double t_5 = sin(y) * sin(t_3);
double tmp;
if ((z * t) <= -5e+23) {
tmp = (t_1 * expm1(fma(-0.25, (y * y), log(2.0)))) - t_2;
} else if ((z * t) <= 2e+238) {
tmp = (t_1 * (((t_4 * t_4) - (t_5 * t_5)) / (t_4 - t_5))) - t_2;
} else {
tmp = fma(2.0, pow(cbrt((sqrt(x) * cos(y))), 3.0), ((a / -3.0) / b));
}
return tmp;
}
function code(x, y, z, t, a, b) return Float64(Float64(Float64(2.0 * sqrt(x)) * cos(Float64(y - Float64(Float64(z * t) / 3.0)))) - Float64(a / Float64(b * 3.0))) end
function code(x, y, z, t, a, b) t_1 = Float64(2.0 * sqrt(x)) t_2 = Float64(a / Float64(3.0 * b)) t_3 = Float64(z / Float64(3.0 / t)) t_4 = Float64(cos(y) * cos(t_3)) t_5 = Float64(sin(y) * sin(t_3)) tmp = 0.0 if (Float64(z * t) <= -5e+23) tmp = Float64(Float64(t_1 * expm1(fma(-0.25, Float64(y * y), log(2.0)))) - t_2); elseif (Float64(z * t) <= 2e+238) tmp = Float64(Float64(t_1 * Float64(Float64(Float64(t_4 * t_4) - Float64(t_5 * t_5)) / Float64(t_4 - t_5))) - t_2); else tmp = fma(2.0, (cbrt(Float64(sqrt(x) * cos(y))) ^ 3.0), Float64(Float64(a / -3.0) / b)); end return tmp end
code[x_, y_, z_, t_, a_, b_] := N[(N[(N[(2.0 * N[Sqrt[x], $MachinePrecision]), $MachinePrecision] * N[Cos[N[(y - N[(N[(z * t), $MachinePrecision] / 3.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] - N[(a / N[(b * 3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(2.0 * N[Sqrt[x], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(a / N[(3.0 * b), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(z / N[(3.0 / t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[Cos[y], $MachinePrecision] * N[Cos[t$95$3], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[Sin[y], $MachinePrecision] * N[Sin[t$95$3], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(z * t), $MachinePrecision], -5e+23], N[(N[(t$95$1 * N[(Exp[N[(-0.25 * N[(y * y), $MachinePrecision] + N[Log[2.0], $MachinePrecision]), $MachinePrecision]] - 1), $MachinePrecision]), $MachinePrecision] - t$95$2), $MachinePrecision], If[LessEqual[N[(z * t), $MachinePrecision], 2e+238], N[(N[(t$95$1 * N[(N[(N[(t$95$4 * t$95$4), $MachinePrecision] - N[(t$95$5 * t$95$5), $MachinePrecision]), $MachinePrecision] / N[(t$95$4 - t$95$5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$2), $MachinePrecision], N[(2.0 * N[Power[N[Power[N[(N[Sqrt[x], $MachinePrecision] * N[Cos[y], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision], 3.0], $MachinePrecision] + N[(N[(a / -3.0), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision]]]]]]]]
\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}
\begin{array}{l}
t_1 := 2 \cdot \sqrt{x}\\
t_2 := \frac{a}{3 \cdot b}\\
t_3 := \frac{z}{\frac{3}{t}}\\
t_4 := \cos y \cdot \cos t_3\\
t_5 := \sin y \cdot \sin t_3\\
\mathbf{if}\;z \cdot t \leq -5 \cdot 10^{+23}:\\
\;\;\;\;t_1 \cdot \mathsf{expm1}\left(\mathsf{fma}\left(-0.25, y \cdot y, \log 2\right)\right) - t_2\\
\mathbf{elif}\;z \cdot t \leq 2 \cdot 10^{+238}:\\
\;\;\;\;t_1 \cdot \frac{t_4 \cdot t_4 - t_5 \cdot t_5}{t_4 - t_5} - t_2\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(2, {\left(\sqrt[3]{\sqrt{x} \cdot \cos y}\right)}^{3}, \frac{\frac{a}{-3}}{b}\right)\\
\end{array}
| Original | 68.2% |
|---|---|
| Target | 71.2% |
| Herbie | 74.9% |
if (*.f64 z t) < -4.9999999999999999e23Initial program 35.4%
Simplified35.3%
[Start]35.4 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}
\] |
|---|---|
associate-*l* [=>]35.4 | \[ \color{blue}{2 \cdot \left(\sqrt{x} \cdot \cos \left(y - \frac{z \cdot t}{3}\right)\right)} - \frac{a}{b \cdot 3}
\] |
associate-*l* [<=]35.4 | \[ \color{blue}{\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right)} - \frac{a}{b \cdot 3}
\] |
remove-double-neg [<=]35.4 | \[ \color{blue}{\left(-\left(-\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right)\right)\right)} - \frac{a}{b \cdot 3}
\] |
neg-mul-1 [=>]35.4 | \[ \color{blue}{-1 \cdot \left(-\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right)\right)} - \frac{a}{b \cdot 3}
\] |
neg-mul-1 [<=]35.4 | \[ \color{blue}{\left(-\left(-\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right)\right)\right)} - \frac{a}{b \cdot 3}
\] |
remove-double-neg [=>]35.4 | \[ \color{blue}{\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right)} - \frac{a}{b \cdot 3}
\] |
associate-*l/ [<=]35.3 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \color{blue}{\frac{z}{3} \cdot t}\right) - \frac{a}{b \cdot 3}
\] |
*-commutative [=>]35.3 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z}{3} \cdot t\right) - \frac{a}{\color{blue}{3 \cdot b}}
\] |
Taylor expanded in z around 0 47.3%
Applied egg-rr47.3%
[Start]47.3 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos y - \frac{a}{3 \cdot b}
\] |
|---|---|
expm1-log1p-u [=>]47.3 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\cos y\right)\right)} - \frac{a}{3 \cdot b}
\] |
Taylor expanded in y around 0 47.8%
Simplified47.8%
[Start]47.8 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \mathsf{expm1}\left(-0.25 \cdot {y}^{2} + \log 2\right) - \frac{a}{3 \cdot b}
\] |
|---|---|
fma-def [=>]47.8 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{fma}\left(-0.25, {y}^{2}, \log 2\right)}\right) - \frac{a}{3 \cdot b}
\] |
unpow2 [=>]47.8 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \mathsf{expm1}\left(\mathsf{fma}\left(-0.25, \color{blue}{y \cdot y}, \log 2\right)\right) - \frac{a}{3 \cdot b}
\] |
if -4.9999999999999999e23 < (*.f64 z t) < 2.0000000000000001e238Initial program 86.3%
Simplified86.3%
[Start]86.3 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}
\] |
|---|---|
associate-*l* [=>]86.3 | \[ \color{blue}{2 \cdot \left(\sqrt{x} \cdot \cos \left(y - \frac{z \cdot t}{3}\right)\right)} - \frac{a}{b \cdot 3}
\] |
associate-*l* [<=]86.3 | \[ \color{blue}{\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right)} - \frac{a}{b \cdot 3}
\] |
remove-double-neg [<=]86.3 | \[ \color{blue}{\left(-\left(-\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right)\right)\right)} - \frac{a}{b \cdot 3}
\] |
neg-mul-1 [=>]86.3 | \[ \color{blue}{-1 \cdot \left(-\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right)\right)} - \frac{a}{b \cdot 3}
\] |
neg-mul-1 [<=]86.3 | \[ \color{blue}{\left(-\left(-\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right)\right)\right)} - \frac{a}{b \cdot 3}
\] |
remove-double-neg [=>]86.3 | \[ \color{blue}{\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right)} - \frac{a}{b \cdot 3}
\] |
associate-*l/ [<=]86.3 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \color{blue}{\frac{z}{3} \cdot t}\right) - \frac{a}{b \cdot 3}
\] |
*-commutative [=>]86.3 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z}{3} \cdot t\right) - \frac{a}{\color{blue}{3 \cdot b}}
\] |
Applied egg-rr63.0%
[Start]86.3 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z}{3} \cdot t\right) - \frac{a}{3 \cdot b}
\] |
|---|---|
associate-*l/ [=>]86.3 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \color{blue}{\frac{z \cdot t}{3}}\right) - \frac{a}{3 \cdot b}
\] |
add-sqr-sqrt [=>]63.0 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot \color{blue}{\left(\sqrt{t} \cdot \sqrt{t}\right)}}{3}\right) - \frac{a}{3 \cdot b}
\] |
associate-*r* [=>]63.0 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{\color{blue}{\left(z \cdot \sqrt{t}\right) \cdot \sqrt{t}}}{3}\right) - \frac{a}{3 \cdot b}
\] |
associate-/l* [=>]63.0 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \color{blue}{\frac{z \cdot \sqrt{t}}{\frac{3}{\sqrt{t}}}}\right) - \frac{a}{3 \cdot b}
\] |
Applied egg-rr87.5%
[Start]63.0 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot \sqrt{t}}{\frac{3}{\sqrt{t}}}\right) - \frac{a}{3 \cdot b}
\] |
|---|---|
cos-diff [=>]63.8 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\left(\cos y \cdot \cos \left(\frac{z \cdot \sqrt{t}}{\frac{3}{\sqrt{t}}}\right) + \sin y \cdot \sin \left(\frac{z \cdot \sqrt{t}}{\frac{3}{\sqrt{t}}}\right)\right)} - \frac{a}{3 \cdot b}
\] |
flip-+ [=>]63.8 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\frac{\left(\cos y \cdot \cos \left(\frac{z \cdot \sqrt{t}}{\frac{3}{\sqrt{t}}}\right)\right) \cdot \left(\cos y \cdot \cos \left(\frac{z \cdot \sqrt{t}}{\frac{3}{\sqrt{t}}}\right)\right) - \left(\sin y \cdot \sin \left(\frac{z \cdot \sqrt{t}}{\frac{3}{\sqrt{t}}}\right)\right) \cdot \left(\sin y \cdot \sin \left(\frac{z \cdot \sqrt{t}}{\frac{3}{\sqrt{t}}}\right)\right)}{\cos y \cdot \cos \left(\frac{z \cdot \sqrt{t}}{\frac{3}{\sqrt{t}}}\right) - \sin y \cdot \sin \left(\frac{z \cdot \sqrt{t}}{\frac{3}{\sqrt{t}}}\right)}} - \frac{a}{3 \cdot b}
\] |
if 2.0000000000000001e238 < (*.f64 z t) Initial program 17.7%
Simplified17.5%
[Start]17.7 | \[ \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}
\] |
|---|---|
associate-*l* [=>]17.7 | \[ \color{blue}{2 \cdot \left(\sqrt{x} \cdot \cos \left(y - \frac{z \cdot t}{3}\right)\right)} - \frac{a}{b \cdot 3}
\] |
fma-neg [=>]17.7 | \[ \color{blue}{\mathsf{fma}\left(2, \sqrt{x} \cdot \cos \left(y - \frac{z \cdot t}{3}\right), -\frac{a}{b \cdot 3}\right)}
\] |
remove-double-neg [<=]17.7 | \[ \mathsf{fma}\left(2, \color{blue}{-\left(-\sqrt{x} \cdot \cos \left(y - \frac{z \cdot t}{3}\right)\right)}, -\frac{a}{b \cdot 3}\right)
\] |
Taylor expanded in z around 0 51.2%
Applied egg-rr51.2%
[Start]51.2 | \[ \mathsf{fma}\left(2, \sqrt{x} \cdot \cos y, \frac{\frac{a}{-3}}{b}\right)
\] |
|---|---|
add-cube-cbrt [=>]51.2 | \[ \mathsf{fma}\left(2, \color{blue}{\left(\sqrt[3]{\sqrt{x} \cdot \cos y} \cdot \sqrt[3]{\sqrt{x} \cdot \cos y}\right) \cdot \sqrt[3]{\sqrt{x} \cdot \cos y}}, \frac{\frac{a}{-3}}{b}\right)
\] |
pow3 [=>]51.2 | \[ \mathsf{fma}\left(2, \color{blue}{{\left(\sqrt[3]{\sqrt{x} \cdot \cos y}\right)}^{3}}, \frac{\frac{a}{-3}}{b}\right)
\] |
Final simplification74.9%
| Alternative 1 | |
|---|---|
| Accuracy | 74.9% |
| Cost | 34120 |
| Alternative 2 | |
|---|---|
| Accuracy | 73.5% |
| Cost | 19776 |
| Alternative 3 | |
|---|---|
| Accuracy | 62.4% |
| Cost | 13513 |
| Alternative 4 | |
|---|---|
| Accuracy | 73.4% |
| Cost | 13504 |
| Alternative 5 | |
|---|---|
| Accuracy | 73.5% |
| Cost | 13504 |
| Alternative 6 | |
|---|---|
| Accuracy | 62.4% |
| Cost | 13385 |
| Alternative 7 | |
|---|---|
| Accuracy | 61.1% |
| Cost | 6976 |
| Alternative 8 | |
|---|---|
| Accuracy | 61.2% |
| Cost | 6976 |
| Alternative 9 | |
|---|---|
| Accuracy | 44.0% |
| Cost | 320 |
| Alternative 10 | |
|---|---|
| Accuracy | 44.1% |
| Cost | 320 |
herbie shell --seed 2023133
(FPCore (x y z t a b)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, K"
:precision binary64
:herbie-target
(if (< z -1.3793337487235141e+129) (- (* (* 2.0 (sqrt x)) (cos (- (/ 1.0 y) (/ (/ 0.3333333333333333 z) t)))) (/ (/ a 3.0) b)) (if (< z 3.516290613555987e+106) (- (* (* (sqrt x) 2.0) (cos (- y (* (/ t 3.0) z)))) (/ (/ a 3.0) b)) (- (* (cos (- y (/ (/ 0.3333333333333333 z) t))) (* 2.0 (sqrt x))) (/ (/ a b) 3.0))))
(- (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) (/ a (* b 3.0))))