(FPCore (x y) :precision binary64 (- (- 1.0 (/ 1.0 (* x 9.0))) (/ y (* 3.0 (sqrt x)))))
(FPCore (x y) :precision binary64 (- (- 1.0 (/ (/ (cbrt 9.0) x) (cbrt 6561.0))) (/ y (if (and (>= x 0.0) (>= 9.0 0.0)) (sqrt (* x 9.0)) NAN))))
double code(double x, double y) {
return (1.0 - (1.0 / (x * 9.0))) - (y / (3.0 * sqrt(x)));
}
double code(double x, double y) {
double tmp;
if ((x >= 0.0) && (9.0 >= 0.0)) {
tmp = sqrt((x * 9.0));
} else {
tmp = (double) NAN;
}
return (1.0 - ((cbrt(9.0) / x) / cbrt(6561.0))) - (y / tmp);
}
public static double code(double x, double y) {
return (1.0 - (1.0 / (x * 9.0))) - (y / (3.0 * Math.sqrt(x)));
}
public static double code(double x, double y) {
double tmp;
if ((x >= 0.0) && (9.0 >= 0.0)) {
tmp = Math.sqrt((x * 9.0));
} else {
tmp = Double.NaN;
}
return (1.0 - ((Math.cbrt(9.0) / x) / Math.cbrt(6561.0))) - (y / tmp);
}
function code(x, y) return Float64(Float64(1.0 - Float64(1.0 / Float64(x * 9.0))) - Float64(y / Float64(3.0 * sqrt(x)))) end
function code(x, y) tmp = 0.0 if ((x >= 0.0) && (9.0 >= 0.0)) tmp = sqrt(Float64(x * 9.0)); else tmp = NaN; end return Float64(Float64(1.0 - Float64(Float64(cbrt(9.0) / x) / cbrt(6561.0))) - Float64(y / tmp)) end
code[x_, y_] := N[(N[(1.0 - N[(1.0 / N[(x * 9.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y / N[(3.0 * N[Sqrt[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_, y_] := N[(N[(1.0 - N[(N[(N[Power[9.0, 1/3], $MachinePrecision] / x), $MachinePrecision] / N[Power[6561.0, 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y / If[And[GreaterEqual[x, 0.0], GreaterEqual[9.0, 0.0]], N[Sqrt[N[(x * 9.0), $MachinePrecision]], $MachinePrecision], Indeterminate]), $MachinePrecision]), $MachinePrecision]
\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}
\left(1 - \frac{\frac{\sqrt[3]{9}}{x}}{\sqrt[3]{6561}}\right) - \frac{y}{\begin{array}{l}
\mathbf{if}\;x \geq 0 \land 9 \geq 0:\\
\;\;\;\;\sqrt{x \cdot 9}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{NaN}\\
\end{array}}
Results
| Original | 0.34% |
|---|---|
| Target | 0.34% |
| Herbie | 0.42% |
Initial program 0.34
Applied egg-rr0.41
Applied egg-rr0.47
Simplified0.47
Applied egg-rr0.42
Simplified0.42
herbie shell --seed 2023136
(FPCore (x y)
:name "Numeric.SpecFunctions:invIncompleteGamma from math-functions-0.1.5.2, D"
:precision binary64
:herbie-target
(- (- 1.0 (/ (/ 1.0 x) 9.0)) (/ y (* 3.0 (sqrt x))))
(- (- 1.0 (/ 1.0 (* x 9.0))) (/ y (* 3.0 (sqrt x)))))