(FPCore (x) :precision binary64 (sqrt (* (* 2.0 x) x)))
(FPCore (x) :precision binary64 (hypot x x))
double code(double x) {
return sqrt(((2.0 * x) * x));
}
double code(double x) {
return hypot(x, x);
}
public static double code(double x) {
return Math.sqrt(((2.0 * x) * x));
}
public static double code(double x) {
return Math.hypot(x, x);
}
def code(x): return math.sqrt(((2.0 * x) * x))
def code(x): return math.hypot(x, x)
function code(x) return sqrt(Float64(Float64(2.0 * x) * x)) end
function code(x) return hypot(x, x) end
function tmp = code(x) tmp = sqrt(((2.0 * x) * x)); end
function tmp = code(x) tmp = hypot(x, x); end
code[x_] := N[Sqrt[N[(N[(2.0 * x), $MachinePrecision] * x), $MachinePrecision]], $MachinePrecision]
code[x_] := N[Sqrt[x ^ 2 + x ^ 2], $MachinePrecision]
\sqrt{\left(2 \cdot x\right) \cdot x}
\mathsf{hypot}\left(x, x\right)
Results
Initial program 46.96
Applied egg-rr47
Applied egg-rr47
Simplified0.02
[Start]47 | \[ \sqrt{2 \cdot \left(x \cdot x\right)}
\] |
|---|---|
associate-*r* [=>]46.96 | \[ \sqrt{\color{blue}{\left(2 \cdot x\right) \cdot x}}
\] |
*-commutative [=>]46.96 | \[ \sqrt{\color{blue}{x \cdot \left(2 \cdot x\right)}}
\] |
count-2 [<=]46.96 | \[ \sqrt{x \cdot \color{blue}{\left(x + x\right)}}
\] |
distribute-lft-out [<=]47 | \[ \sqrt{\color{blue}{x \cdot x + x \cdot x}}
\] |
hypot-def [=>]0.02 | \[ \color{blue}{\mathsf{hypot}\left(x, x\right)}
\] |
Final simplification0.02
herbie shell --seed 2023115
(FPCore (x)
:name "sqrt B (should all be same)"
:precision binary64
(sqrt (* (* 2.0 x) x)))