| Alternative 1 | |
|---|---|
| Error | 57.8 |
| Cost | 6656 |
\[9 \cdot {x}^{4}
\]
(FPCore (x y) :precision binary64 (- (* 9.0 (pow x 4.0)) (* (* y y) (- (* y y) 2.0))))
(FPCore (x y) :precision binary64 (- (* 2.0 (pow y 2.0)) (+ (* (pow x 4.0) -9.0) (pow y 4.0))))
double code(double x, double y) {
return (9.0 * pow(x, 4.0)) - ((y * y) * ((y * y) - 2.0));
}
double code(double x, double y) {
return (2.0 * pow(y, 2.0)) - ((pow(x, 4.0) * -9.0) + pow(y, 4.0));
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = (9.0d0 * (x ** 4.0d0)) - ((y * y) * ((y * y) - 2.0d0))
end function
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = (2.0d0 * (y ** 2.0d0)) - (((x ** 4.0d0) * (-9.0d0)) + (y ** 4.0d0))
end function
public static double code(double x, double y) {
return (9.0 * Math.pow(x, 4.0)) - ((y * y) * ((y * y) - 2.0));
}
public static double code(double x, double y) {
return (2.0 * Math.pow(y, 2.0)) - ((Math.pow(x, 4.0) * -9.0) + Math.pow(y, 4.0));
}
def code(x, y): return (9.0 * math.pow(x, 4.0)) - ((y * y) * ((y * y) - 2.0))
def code(x, y): return (2.0 * math.pow(y, 2.0)) - ((math.pow(x, 4.0) * -9.0) + math.pow(y, 4.0))
function code(x, y) return Float64(Float64(9.0 * (x ^ 4.0)) - Float64(Float64(y * y) * Float64(Float64(y * y) - 2.0))) end
function code(x, y) return Float64(Float64(2.0 * (y ^ 2.0)) - Float64(Float64((x ^ 4.0) * -9.0) + (y ^ 4.0))) end
function tmp = code(x, y) tmp = (9.0 * (x ^ 4.0)) - ((y * y) * ((y * y) - 2.0)); end
function tmp = code(x, y) tmp = (2.0 * (y ^ 2.0)) - (((x ^ 4.0) * -9.0) + (y ^ 4.0)); end
code[x_, y_] := N[(N[(9.0 * N[Power[x, 4.0], $MachinePrecision]), $MachinePrecision] - N[(N[(y * y), $MachinePrecision] * N[(N[(y * y), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_, y_] := N[(N[(2.0 * N[Power[y, 2.0], $MachinePrecision]), $MachinePrecision] - N[(N[(N[Power[x, 4.0], $MachinePrecision] * -9.0), $MachinePrecision] + N[Power[y, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
9 \cdot {x}^{4} - \left(y \cdot y\right) \cdot \left(y \cdot y - 2\right)
2 \cdot {y}^{2} - \left({x}^{4} \cdot -9 + {y}^{4}\right)
Results
Initial program 62.0
Taylor expanded in y around 0 62.0
Simplified52.0
[Start]62.0 | \[ 9 \cdot {x}^{4} + \left(2 \cdot {y}^{2} + -1 \cdot {y}^{4}\right)
\] |
|---|---|
rational_best-simplify-47 [=>]62.0 | \[ \color{blue}{-1 \cdot {y}^{4} + \left(2 \cdot {y}^{2} + 9 \cdot {x}^{4}\right)}
\] |
rational_best-simplify-3 [<=]62.0 | \[ -1 \cdot {y}^{4} + \color{blue}{\left(9 \cdot {x}^{4} + 2 \cdot {y}^{2}\right)}
\] |
rational_best-simplify-3 [=>]62.0 | \[ \color{blue}{\left(9 \cdot {x}^{4} + 2 \cdot {y}^{2}\right) + -1 \cdot {y}^{4}}
\] |
rational_best-simplify-59 [=>]62.0 | \[ \color{blue}{\left(2 \cdot {y}^{2} - \left(-9 \cdot {x}^{4}\right)\right)} + -1 \cdot {y}^{4}
\] |
rational_best-simplify-1 [=>]62.0 | \[ \left(2 \cdot {y}^{2} - \left(-9 \cdot {x}^{4}\right)\right) + \color{blue}{{y}^{4} \cdot -1}
\] |
rational_best-simplify-10 [=>]62.0 | \[ \left(2 \cdot {y}^{2} - \left(-9 \cdot {x}^{4}\right)\right) + \color{blue}{\left(-{y}^{4}\right)}
\] |
rational_best-simplify-56 [=>]52.0 | \[ \color{blue}{2 \cdot {y}^{2} - \left(\left(-9 \cdot {x}^{4}\right) + {y}^{4}\right)}
\] |
rational_best-simplify-11 [=>]52.0 | \[ 2 \cdot {y}^{2} - \left(\color{blue}{\left(9 \cdot {x}^{4}\right) \cdot -1} + {y}^{4}\right)
\] |
rational_best-simplify-1 [=>]52.0 | \[ 2 \cdot {y}^{2} - \left(\color{blue}{-1 \cdot \left(9 \cdot {x}^{4}\right)} + {y}^{4}\right)
\] |
rational_best-simplify-50 [=>]52.0 | \[ 2 \cdot {y}^{2} - \left(\color{blue}{{x}^{4} \cdot \left(9 \cdot -1\right)} + {y}^{4}\right)
\] |
metadata-eval [=>]52.0 | \[ 2 \cdot {y}^{2} - \left({x}^{4} \cdot \color{blue}{-9} + {y}^{4}\right)
\] |
Final simplification52.0
| Alternative 1 | |
|---|---|
| Error | 57.8 |
| Cost | 6656 |
| Alternative 2 | |
|---|---|
| Error | 63.0 |
| Cost | 6592 |
herbie shell --seed 2023099
(FPCore (x y)
:name "From Rump in a 1983 paper, rewritten"
:precision binary64
:pre (and (== x 10864.0) (== y 18817.0))
(- (* 9.0 (pow x 4.0)) (* (* y y) (- (* y y) 2.0))))