| Alternative 1 | |
|---|---|
| Accuracy | 98.9% |
| Cost | 125192 |

(FPCore (x y z t) :precision binary64 (+ (+ (+ (- (sqrt (+ x 1.0)) (sqrt x)) (- (sqrt (+ y 1.0)) (sqrt y))) (- (sqrt (+ z 1.0)) (sqrt z))) (- (sqrt (+ t 1.0)) (sqrt t))))
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (sqrt (+ 1.0 x)))
(t_2 (- (sqrt (+ 1.0 z)) (sqrt z)))
(t_3 (+ 1.0 (+ t t)))
(t_4 (sqrt (+ 1.0 y)))
(t_5 (+ t_2 (+ (- t_4 (sqrt y)) (- t_1 (sqrt x))))))
(if (<= t_5 0.1)
(/ 1.0 (+ (sqrt x) t_1))
(if (<= t_5 2.2)
(+
t_1
(-
(- (/ 1.0 (+ (sqrt z) (hypot 1.0 (sqrt z)))) (sqrt x))
(/ -1.0 (+ t_4 (sqrt y)))))
(+
(- (+ 1.0 t_4) (sqrt y))
(+ t_2 (/ (/ t_3 t_3) (+ (sqrt t) (sqrt (+ 1.0 t))))))))))double code(double x, double y, double z, double t) {
return (((sqrt((x + 1.0)) - sqrt(x)) + (sqrt((y + 1.0)) - sqrt(y))) + (sqrt((z + 1.0)) - sqrt(z))) + (sqrt((t + 1.0)) - sqrt(t));
}
double code(double x, double y, double z, double t) {
double t_1 = sqrt((1.0 + x));
double t_2 = sqrt((1.0 + z)) - sqrt(z);
double t_3 = 1.0 + (t + t);
double t_4 = sqrt((1.0 + y));
double t_5 = t_2 + ((t_4 - sqrt(y)) + (t_1 - sqrt(x)));
double tmp;
if (t_5 <= 0.1) {
tmp = 1.0 / (sqrt(x) + t_1);
} else if (t_5 <= 2.2) {
tmp = t_1 + (((1.0 / (sqrt(z) + hypot(1.0, sqrt(z)))) - sqrt(x)) - (-1.0 / (t_4 + sqrt(y))));
} else {
tmp = ((1.0 + t_4) - sqrt(y)) + (t_2 + ((t_3 / t_3) / (sqrt(t) + sqrt((1.0 + t)))));
}
return tmp;
}
public static double code(double x, double y, double z, double t) {
return (((Math.sqrt((x + 1.0)) - Math.sqrt(x)) + (Math.sqrt((y + 1.0)) - Math.sqrt(y))) + (Math.sqrt((z + 1.0)) - Math.sqrt(z))) + (Math.sqrt((t + 1.0)) - Math.sqrt(t));
}
public static double code(double x, double y, double z, double t) {
double t_1 = Math.sqrt((1.0 + x));
double t_2 = Math.sqrt((1.0 + z)) - Math.sqrt(z);
double t_3 = 1.0 + (t + t);
double t_4 = Math.sqrt((1.0 + y));
double t_5 = t_2 + ((t_4 - Math.sqrt(y)) + (t_1 - Math.sqrt(x)));
double tmp;
if (t_5 <= 0.1) {
tmp = 1.0 / (Math.sqrt(x) + t_1);
} else if (t_5 <= 2.2) {
tmp = t_1 + (((1.0 / (Math.sqrt(z) + Math.hypot(1.0, Math.sqrt(z)))) - Math.sqrt(x)) - (-1.0 / (t_4 + Math.sqrt(y))));
} else {
tmp = ((1.0 + t_4) - Math.sqrt(y)) + (t_2 + ((t_3 / t_3) / (Math.sqrt(t) + Math.sqrt((1.0 + t)))));
}
return tmp;
}
def code(x, y, z, t): return (((math.sqrt((x + 1.0)) - math.sqrt(x)) + (math.sqrt((y + 1.0)) - math.sqrt(y))) + (math.sqrt((z + 1.0)) - math.sqrt(z))) + (math.sqrt((t + 1.0)) - math.sqrt(t))
def code(x, y, z, t): t_1 = math.sqrt((1.0 + x)) t_2 = math.sqrt((1.0 + z)) - math.sqrt(z) t_3 = 1.0 + (t + t) t_4 = math.sqrt((1.0 + y)) t_5 = t_2 + ((t_4 - math.sqrt(y)) + (t_1 - math.sqrt(x))) tmp = 0 if t_5 <= 0.1: tmp = 1.0 / (math.sqrt(x) + t_1) elif t_5 <= 2.2: tmp = t_1 + (((1.0 / (math.sqrt(z) + math.hypot(1.0, math.sqrt(z)))) - math.sqrt(x)) - (-1.0 / (t_4 + math.sqrt(y)))) else: tmp = ((1.0 + t_4) - math.sqrt(y)) + (t_2 + ((t_3 / t_3) / (math.sqrt(t) + math.sqrt((1.0 + t))))) return tmp
function code(x, y, z, t) return Float64(Float64(Float64(Float64(sqrt(Float64(x + 1.0)) - sqrt(x)) + Float64(sqrt(Float64(y + 1.0)) - sqrt(y))) + Float64(sqrt(Float64(z + 1.0)) - sqrt(z))) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t))) end
function code(x, y, z, t) t_1 = sqrt(Float64(1.0 + x)) t_2 = Float64(sqrt(Float64(1.0 + z)) - sqrt(z)) t_3 = Float64(1.0 + Float64(t + t)) t_4 = sqrt(Float64(1.0 + y)) t_5 = Float64(t_2 + Float64(Float64(t_4 - sqrt(y)) + Float64(t_1 - sqrt(x)))) tmp = 0.0 if (t_5 <= 0.1) tmp = Float64(1.0 / Float64(sqrt(x) + t_1)); elseif (t_5 <= 2.2) tmp = Float64(t_1 + Float64(Float64(Float64(1.0 / Float64(sqrt(z) + hypot(1.0, sqrt(z)))) - sqrt(x)) - Float64(-1.0 / Float64(t_4 + sqrt(y))))); else tmp = Float64(Float64(Float64(1.0 + t_4) - sqrt(y)) + Float64(t_2 + Float64(Float64(t_3 / t_3) / Float64(sqrt(t) + sqrt(Float64(1.0 + t)))))); end return tmp end
function tmp = code(x, y, z, t) tmp = (((sqrt((x + 1.0)) - sqrt(x)) + (sqrt((y + 1.0)) - sqrt(y))) + (sqrt((z + 1.0)) - sqrt(z))) + (sqrt((t + 1.0)) - sqrt(t)); end
function tmp_2 = code(x, y, z, t) t_1 = sqrt((1.0 + x)); t_2 = sqrt((1.0 + z)) - sqrt(z); t_3 = 1.0 + (t + t); t_4 = sqrt((1.0 + y)); t_5 = t_2 + ((t_4 - sqrt(y)) + (t_1 - sqrt(x))); tmp = 0.0; if (t_5 <= 0.1) tmp = 1.0 / (sqrt(x) + t_1); elseif (t_5 <= 2.2) tmp = t_1 + (((1.0 / (sqrt(z) + hypot(1.0, sqrt(z)))) - sqrt(x)) - (-1.0 / (t_4 + sqrt(y)))); else tmp = ((1.0 + t_4) - sqrt(y)) + (t_2 + ((t_3 / t_3) / (sqrt(t) + sqrt((1.0 + t))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := N[(N[(N[(N[(N[Sqrt[N[(x + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(y + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(z + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_, y_, z_, t_] := Block[{t$95$1 = N[Sqrt[N[(1.0 + x), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[(N[Sqrt[N[(1.0 + z), $MachinePrecision]], $MachinePrecision] - N[Sqrt[z], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(1.0 + N[(t + t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$5 = N[(t$95$2 + N[(N[(t$95$4 - N[Sqrt[y], $MachinePrecision]), $MachinePrecision] + N[(t$95$1 - N[Sqrt[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$5, 0.1], N[(1.0 / N[(N[Sqrt[x], $MachinePrecision] + t$95$1), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$5, 2.2], N[(t$95$1 + N[(N[(N[(1.0 / N[(N[Sqrt[z], $MachinePrecision] + N[Sqrt[1.0 ^ 2 + N[Sqrt[z], $MachinePrecision] ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision] - N[(-1.0 / N[(t$95$4 + N[Sqrt[y], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(1.0 + t$95$4), $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision] + N[(t$95$2 + N[(N[(t$95$3 / t$95$3), $MachinePrecision] / N[(N[Sqrt[t], $MachinePrecision] + N[Sqrt[N[(1.0 + t), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]
\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)
\begin{array}{l}
t_1 := \sqrt{1 + x}\\
t_2 := \sqrt{1 + z} - \sqrt{z}\\
t_3 := 1 + \left(t + t\right)\\
t_4 := \sqrt{1 + y}\\
t_5 := t_2 + \left(\left(t_4 - \sqrt{y}\right) + \left(t_1 - \sqrt{x}\right)\right)\\
\mathbf{if}\;t_5 \leq 0.1:\\
\;\;\;\;\frac{1}{\sqrt{x} + t_1}\\
\mathbf{elif}\;t_5 \leq 2.2:\\
\;\;\;\;t_1 + \left(\left(\frac{1}{\sqrt{z} + \mathsf{hypot}\left(1, \sqrt{z}\right)} - \sqrt{x}\right) - \frac{-1}{t_4 + \sqrt{y}}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(1 + t_4\right) - \sqrt{y}\right) + \left(t_2 + \frac{\frac{t_3}{t_3}}{\sqrt{t} + \sqrt{1 + t}}\right)\\
\end{array}
Herbie found 18 alternatives:
| Alternative | Accuracy | Speedup |
|---|
Results
| Original | 91.8% |
|---|---|
| Target | 99.3% |
| Herbie | 98.9% |
if (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) < 0.10000000000000001Initial program 50.0%
Simplified5.1%
[Start]50.0% | \[ \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)
\] |
|---|---|
associate-+l+ [=>]50.0% | \[ \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)}
\] |
+-commutative [=>]50.0% | \[ \color{blue}{\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{x + 1} - \sqrt{x}\right)\right)} + \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)
\] |
associate-+r- [=>]48.0% | \[ \color{blue}{\left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \sqrt{x + 1}\right) - \sqrt{x}\right)} + \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)
\] |
associate-+l- [=>]4.4% | \[ \color{blue}{\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \sqrt{x + 1}\right) - \left(\sqrt{x} - \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)\right)}
\] |
+-commutative [=>]4.4% | \[ \color{blue}{\left(\sqrt{x + 1} + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)} - \left(\sqrt{x} - \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)\right)
\] |
associate--l+ [=>]4.4% | \[ \color{blue}{\sqrt{x + 1} + \left(\left(\sqrt{y + 1} - \sqrt{y}\right) - \left(\sqrt{x} - \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)\right)\right)}
\] |
+-commutative [=>]4.4% | \[ \sqrt{x + 1} + \left(\left(\sqrt{\color{blue}{1 + y}} - \sqrt{y}\right) - \left(\sqrt{x} - \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)\right)\right)
\] |
Taylor expanded in t around inf 4.7%
Simplified4.4%
[Start]4.7% | \[ \sqrt{x + 1} + \left(\left(\sqrt{1 + y} - \sqrt{y}\right) - \left(\left(\sqrt{z} + \sqrt{x}\right) - \sqrt{1 + z}\right)\right)
\] |
|---|---|
+-commutative [=>]4.7% | \[ \sqrt{x + 1} + \left(\left(\sqrt{1 + y} - \sqrt{y}\right) - \left(\color{blue}{\left(\sqrt{x} + \sqrt{z}\right)} - \sqrt{1 + z}\right)\right)
\] |
+-commutative [=>]4.7% | \[ \sqrt{x + 1} + \left(\left(\sqrt{1 + y} - \sqrt{y}\right) - \left(\left(\sqrt{x} + \sqrt{z}\right) - \sqrt{\color{blue}{z + 1}}\right)\right)
\] |
associate--l+ [=>]4.4% | \[ \sqrt{x + 1} + \left(\left(\sqrt{1 + y} - \sqrt{y}\right) - \color{blue}{\left(\sqrt{x} + \left(\sqrt{z} - \sqrt{z + 1}\right)\right)}\right)
\] |
Taylor expanded in z around inf 5.0%
Simplified5.0%
[Start]5.0% | \[ \sqrt{x + 1} + \left(\sqrt{1 + y} - \left(\sqrt{x} + \sqrt{y}\right)\right)
\] |
|---|---|
+-commutative [=>]5.0% | \[ \sqrt{x + 1} + \left(\sqrt{1 + y} - \color{blue}{\left(\sqrt{y} + \sqrt{x}\right)}\right)
\] |
Taylor expanded in y around inf 4.4%
Applied egg-rr6.5%
[Start]4.4% | \[ \sqrt{1 + x} - \sqrt{x}
\] |
|---|---|
flip-- [=>]4.4% | \[ \color{blue}{\frac{\sqrt{1 + x} \cdot \sqrt{1 + x} - \sqrt{x} \cdot \sqrt{x}}{\sqrt{1 + x} + \sqrt{x}}}
\] |
add-sqr-sqrt [<=]4.3% | \[ \frac{\color{blue}{\left(1 + x\right)} - \sqrt{x} \cdot \sqrt{x}}{\sqrt{1 + x} + \sqrt{x}}
\] |
+-commutative [<=]4.3% | \[ \frac{\color{blue}{\left(x + 1\right)} - \sqrt{x} \cdot \sqrt{x}}{\sqrt{1 + x} + \sqrt{x}}
\] |
add-sqr-sqrt [<=]6.5% | \[ \frac{\left(x + 1\right) - \color{blue}{x}}{\sqrt{1 + x} + \sqrt{x}}
\] |
+-commutative [<=]6.5% | \[ \frac{\left(x + 1\right) - x}{\sqrt{\color{blue}{x + 1}} + \sqrt{x}}
\] |
Simplified21.8%
[Start]6.5% | \[ \frac{\left(x + 1\right) - x}{\sqrt{x + 1} + \sqrt{x}}
\] |
|---|---|
+-commutative [=>]6.5% | \[ \frac{\color{blue}{\left(1 + x\right)} - x}{\sqrt{x + 1} + \sqrt{x}}
\] |
associate--l+ [=>]21.8% | \[ \frac{\color{blue}{1 + \left(x - x\right)}}{\sqrt{x + 1} + \sqrt{x}}
\] |
+-inverses [=>]21.8% | \[ \frac{1 + \color{blue}{0}}{\sqrt{x + 1} + \sqrt{x}}
\] |
metadata-eval [=>]21.8% | \[ \frac{\color{blue}{1}}{\sqrt{x + 1} + \sqrt{x}}
\] |
+-commutative [=>]21.8% | \[ \frac{1}{\color{blue}{\sqrt{x} + \sqrt{x + 1}}}
\] |
+-commutative [=>]21.8% | \[ \frac{1}{\sqrt{x} + \sqrt{\color{blue}{1 + x}}}
\] |
if 0.10000000000000001 < (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) < 2.2000000000000002Initial program 96.6%
Simplified35.1%
[Start]96.6% | \[ \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)
\] |
|---|---|
associate-+l+ [=>]96.6% | \[ \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)}
\] |
+-commutative [=>]96.6% | \[ \color{blue}{\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{x + 1} - \sqrt{x}\right)\right)} + \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)
\] |
associate-+r- [=>]71.8% | \[ \color{blue}{\left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \sqrt{x + 1}\right) - \sqrt{x}\right)} + \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)
\] |
associate-+l- [=>]52.6% | \[ \color{blue}{\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \sqrt{x + 1}\right) - \left(\sqrt{x} - \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)\right)}
\] |
+-commutative [=>]52.6% | \[ \color{blue}{\left(\sqrt{x + 1} + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)} - \left(\sqrt{x} - \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)\right)
\] |
associate--l+ [=>]52.6% | \[ \color{blue}{\sqrt{x + 1} + \left(\left(\sqrt{y + 1} - \sqrt{y}\right) - \left(\sqrt{x} - \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)\right)\right)}
\] |
+-commutative [=>]52.6% | \[ \sqrt{x + 1} + \left(\left(\sqrt{\color{blue}{1 + y}} - \sqrt{y}\right) - \left(\sqrt{x} - \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)\right)\right)
\] |
Taylor expanded in t around inf 26.7%
Simplified27.0%
[Start]26.7% | \[ \sqrt{x + 1} + \left(\left(\sqrt{1 + y} - \sqrt{y}\right) - \left(\left(\sqrt{z} + \sqrt{x}\right) - \sqrt{1 + z}\right)\right)
\] |
|---|---|
+-commutative [=>]26.7% | \[ \sqrt{x + 1} + \left(\left(\sqrt{1 + y} - \sqrt{y}\right) - \left(\color{blue}{\left(\sqrt{x} + \sqrt{z}\right)} - \sqrt{1 + z}\right)\right)
\] |
+-commutative [=>]26.7% | \[ \sqrt{x + 1} + \left(\left(\sqrt{1 + y} - \sqrt{y}\right) - \left(\left(\sqrt{x} + \sqrt{z}\right) - \sqrt{\color{blue}{z + 1}}\right)\right)
\] |
associate--l+ [=>]27.0% | \[ \sqrt{x + 1} + \left(\left(\sqrt{1 + y} - \sqrt{y}\right) - \color{blue}{\left(\sqrt{x} + \left(\sqrt{z} - \sqrt{z + 1}\right)\right)}\right)
\] |
Applied egg-rr27.1%
[Start]27.0% | \[ \sqrt{x + 1} + \left(\left(\sqrt{1 + y} - \sqrt{y}\right) - \left(\sqrt{x} + \left(\sqrt{z} - \sqrt{z + 1}\right)\right)\right)
\] |
|---|---|
flip-- [=>]27.1% | \[ \sqrt{x + 1} + \left(\color{blue}{\frac{\sqrt{1 + y} \cdot \sqrt{1 + y} - \sqrt{y} \cdot \sqrt{y}}{\sqrt{1 + y} + \sqrt{y}}} - \left(\sqrt{x} + \left(\sqrt{z} - \sqrt{z + 1}\right)\right)\right)
\] |
add-sqr-sqrt [<=]21.9% | \[ \sqrt{x + 1} + \left(\frac{\color{blue}{\left(1 + y\right)} - \sqrt{y} \cdot \sqrt{y}}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \left(\sqrt{z} - \sqrt{z + 1}\right)\right)\right)
\] |
add-sqr-sqrt [<=]27.1% | \[ \sqrt{x + 1} + \left(\frac{\left(1 + y\right) - \color{blue}{y}}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \left(\sqrt{z} - \sqrt{z + 1}\right)\right)\right)
\] |
Simplified27.6%
[Start]27.1% | \[ \sqrt{x + 1} + \left(\frac{\left(1 + y\right) - y}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \left(\sqrt{z} - \sqrt{z + 1}\right)\right)\right)
\] |
|---|---|
associate--l+ [=>]27.6% | \[ \sqrt{x + 1} + \left(\frac{\color{blue}{1 + \left(y - y\right)}}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \left(\sqrt{z} - \sqrt{z + 1}\right)\right)\right)
\] |
+-inverses [=>]27.6% | \[ \sqrt{x + 1} + \left(\frac{1 + \color{blue}{0}}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \left(\sqrt{z} - \sqrt{z + 1}\right)\right)\right)
\] |
metadata-eval [=>]27.6% | \[ \sqrt{x + 1} + \left(\frac{\color{blue}{1}}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \left(\sqrt{z} - \sqrt{z + 1}\right)\right)\right)
\] |
Applied egg-rr27.6%
[Start]27.6% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \left(\sqrt{z} - \sqrt{z + 1}\right)\right)\right)
\] |
|---|---|
flip-- [=>]27.6% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \color{blue}{\frac{\sqrt{z} \cdot \sqrt{z} - \sqrt{z + 1} \cdot \sqrt{z + 1}}{\sqrt{z} + \sqrt{z + 1}}}\right)\right)
\] |
add-sqr-sqrt [<=]21.1% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \frac{\color{blue}{z} - \sqrt{z + 1} \cdot \sqrt{z + 1}}{\sqrt{z} + \sqrt{z + 1}}\right)\right)
\] |
add-sqr-sqrt [<=]27.6% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \frac{z - \color{blue}{\left(z + 1\right)}}{\sqrt{z} + \sqrt{z + 1}}\right)\right)
\] |
+-commutative [=>]27.6% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \frac{z - \color{blue}{\left(1 + z\right)}}{\sqrt{z} + \sqrt{z + 1}}\right)\right)
\] |
+-commutative [=>]27.6% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \frac{z - \left(1 + z\right)}{\sqrt{z} + \sqrt{\color{blue}{1 + z}}}\right)\right)
\] |
Simplified27.8%
[Start]27.6% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \frac{z - \left(1 + z\right)}{\sqrt{z} + \sqrt{1 + z}}\right)\right)
\] |
|---|---|
+-commutative [=>]27.6% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \frac{z - \color{blue}{\left(z + 1\right)}}{\sqrt{z} + \sqrt{1 + z}}\right)\right)
\] |
associate--r+ [=>]27.8% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \frac{\color{blue}{\left(z - z\right) - 1}}{\sqrt{z} + \sqrt{1 + z}}\right)\right)
\] |
+-inverses [=>]27.8% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \frac{\color{blue}{0} - 1}{\sqrt{z} + \sqrt{1 + z}}\right)\right)
\] |
metadata-eval [=>]27.8% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \frac{\color{blue}{-1}}{\sqrt{z} + \sqrt{1 + z}}\right)\right)
\] |
+-commutative [=>]27.8% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \frac{-1}{\color{blue}{\sqrt{1 + z} + \sqrt{z}}}\right)\right)
\] |
rem-square-sqrt [<=]27.8% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \frac{-1}{\sqrt{1 + \color{blue}{\sqrt{z} \cdot \sqrt{z}}} + \sqrt{z}}\right)\right)
\] |
hypot-1-def [=>]27.8% | \[ \sqrt{x + 1} + \left(\frac{1}{\sqrt{1 + y} + \sqrt{y}} - \left(\sqrt{x} + \frac{-1}{\color{blue}{\mathsf{hypot}\left(1, \sqrt{z}\right)} + \sqrt{z}}\right)\right)
\] |
if 2.2000000000000002 < (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) Initial program 100.0%
Simplified100.0%
[Start]100.0% | \[ \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)
\] |
|---|---|
associate-+l+ [=>]100.0% | \[ \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)}
\] |
associate-+l- [=>]100.0% | \[ \color{blue}{\left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)
\] |
+-commutative [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{\color{blue}{1 + y}} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)
\] |
sub-neg [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\color{blue}{\left(\sqrt{z + 1} + \left(-\sqrt{z}\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)
\] |
sub-neg [<=]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\color{blue}{\left(\sqrt{z + 1} - \sqrt{z}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)
\] |
+-commutative [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{\color{blue}{1 + z}} - \sqrt{z}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)
\] |
+-commutative [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \left(\sqrt{\color{blue}{1 + t}} - \sqrt{t}\right)\right)
\] |
Applied egg-rr100.0%
[Start]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \left(\sqrt{1 + t} - \sqrt{t}\right)\right)
\] |
|---|---|
flip-- [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \color{blue}{\frac{\sqrt{1 + t} \cdot \sqrt{1 + t} - \sqrt{t} \cdot \sqrt{t}}{\sqrt{1 + t} + \sqrt{t}}}\right)
\] |
add-sqr-sqrt [<=]75.9% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\color{blue}{\left(1 + t\right)} - \sqrt{t} \cdot \sqrt{t}}{\sqrt{1 + t} + \sqrt{t}}\right)
\] |
+-commutative [=>]75.9% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\color{blue}{\left(t + 1\right)} - \sqrt{t} \cdot \sqrt{t}}{\sqrt{1 + t} + \sqrt{t}}\right)
\] |
add-sqr-sqrt [<=]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\left(t + 1\right) - \color{blue}{t}}{\sqrt{1 + t} + \sqrt{t}}\right)
\] |
+-commutative [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\left(t + 1\right) - t}{\sqrt{\color{blue}{t + 1}} + \sqrt{t}}\right)
\] |
Applied egg-rr75.0%
[Start]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\left(t + 1\right) - t}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
|---|---|
flip-- [=>]75.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\color{blue}{\frac{\left(t + 1\right) \cdot \left(t + 1\right) - t \cdot t}{\left(t + 1\right) + t}}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
+-commutative [=>]75.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\color{blue}{\left(1 + t\right)} \cdot \left(t + 1\right) - t \cdot t}{\left(t + 1\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
+-commutative [=>]75.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\left(1 + t\right) \cdot \color{blue}{\left(1 + t\right)} - t \cdot t}{\left(t + 1\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
+-commutative [=>]75.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\left(1 + t\right) \cdot \left(1 + t\right) - t \cdot t}{\color{blue}{\left(1 + t\right)} + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
Simplified100.0%
[Start]75.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\left(1 + t\right) \cdot \left(1 + t\right) - t \cdot t}{\left(1 + t\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
|---|---|
difference-of-squares [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\color{blue}{\left(\left(1 + t\right) + t\right) \cdot \left(\left(1 + t\right) - t\right)}}{\left(1 + t\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
+-commutative [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\left(\left(1 + t\right) + t\right) \cdot \left(\color{blue}{\left(t + 1\right)} - t\right)}{\left(1 + t\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
associate-+r- [<=]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\left(\left(1 + t\right) + t\right) \cdot \color{blue}{\left(t + \left(1 - t\right)\right)}}{\left(1 + t\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
associate-+r- [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\left(\left(1 + t\right) + t\right) \cdot \color{blue}{\left(\left(t + 1\right) - t\right)}}{\left(1 + t\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
+-commutative [<=]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\left(\left(1 + t\right) + t\right) \cdot \left(\color{blue}{\left(1 + t\right)} - t\right)}{\left(1 + t\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
associate--l+ [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\left(\left(1 + t\right) + t\right) \cdot \color{blue}{\left(1 + \left(t - t\right)\right)}}{\left(1 + t\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
+-inverses [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\left(\left(1 + t\right) + t\right) \cdot \left(1 + \color{blue}{0}\right)}{\left(1 + t\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
metadata-eval [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\left(\left(1 + t\right) + t\right) \cdot \color{blue}{1}}{\left(1 + t\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
*-rgt-identity [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\color{blue}{\left(1 + t\right) + t}}{\left(1 + t\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
associate-+l+ [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{\color{blue}{1 + \left(t + t\right)}}{\left(1 + t\right) + t}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
associate-+l+ [=>]100.0% | \[ \left(\sqrt{x + 1} - \left(\sqrt{x} - \left(\sqrt{1 + y} - \sqrt{y}\right)\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \frac{\frac{1 + \left(t + t\right)}{\color{blue}{1 + \left(t + t\right)}}}{\sqrt{t + 1} + \sqrt{t}}\right)
\] |
Taylor expanded in x around 0 97.1%
Final simplification35.8%
| Alternative 1 | |
|---|---|
| Accuracy | 98.9% |
| Cost | 125192 |
| Alternative 2 | |
|---|---|
| Accuracy | 97.8% |
| Cost | 79556 |
| Alternative 3 | |
|---|---|
| Accuracy | 97.7% |
| Cost | 65728 |
| Alternative 4 | |
|---|---|
| Accuracy | 95.8% |
| Cost | 65600 |
| Alternative 5 | |
|---|---|
| Accuracy | 91.9% |
| Cost | 52804 |
| Alternative 6 | |
|---|---|
| Accuracy | 95.9% |
| Cost | 40132 |
| Alternative 7 | |
|---|---|
| Accuracy | 97.0% |
| Cost | 39880 |
| Alternative 8 | |
|---|---|
| Accuracy | 95.7% |
| Cost | 39748 |
| Alternative 9 | |
|---|---|
| Accuracy | 90.7% |
| Cost | 26696 |
| Alternative 10 | |
|---|---|
| Accuracy | 91.3% |
| Cost | 26692 |
| Alternative 11 | |
|---|---|
| Accuracy | 89.5% |
| Cost | 26564 |
| Alternative 12 | |
|---|---|
| Accuracy | 89.4% |
| Cost | 20040 |
| Alternative 13 | |
|---|---|
| Accuracy | 61.5% |
| Cost | 13380 |
| Alternative 14 | |
|---|---|
| Accuracy | 81.8% |
| Cost | 13380 |
| Alternative 15 | |
|---|---|
| Accuracy | 86.0% |
| Cost | 13380 |
| Alternative 16 | |
|---|---|
| Accuracy | 35.2% |
| Cost | 13120 |
| Alternative 17 | |
|---|---|
| Accuracy | 34.7% |
| Cost | 6848 |
| Alternative 18 | |
|---|---|
| Accuracy | 34.1% |
| Cost | 6592 |
herbie shell --seed 2023165
(FPCore (x y z t)
:name "Main:z from "
:precision binary64
:herbie-target
(+ (+ (+ (/ 1.0 (+ (sqrt (+ x 1.0)) (sqrt x))) (/ 1.0 (+ (sqrt (+ y 1.0)) (sqrt y)))) (/ 1.0 (+ (sqrt (+ z 1.0)) (sqrt z)))) (- (sqrt (+ t 1.0)) (sqrt t)))
(+ (+ (+ (- (sqrt (+ x 1.0)) (sqrt x)) (- (sqrt (+ y 1.0)) (sqrt y))) (- (sqrt (+ z 1.0)) (sqrt z))) (- (sqrt (+ t 1.0)) (sqrt t))))