| Alternative 1 | |
|---|---|
| Error | 0.2 |
| Cost | 448 |
\[\left(d1 \cdot d1\right) \cdot \left(d1 \cdot d1\right)
\]
(FPCore (d1) :precision binary64 (* (* (* d1 d1) d1) d1))
(FPCore (d1) :precision binary64 (pow d1 4.0))
double code(double d1) {
return ((d1 * d1) * d1) * d1;
}
double code(double d1) {
return pow(d1, 4.0);
}
real(8) function code(d1)
real(8), intent (in) :: d1
code = ((d1 * d1) * d1) * d1
end function
real(8) function code(d1)
real(8), intent (in) :: d1
code = d1 ** 4.0d0
end function
public static double code(double d1) {
return ((d1 * d1) * d1) * d1;
}
public static double code(double d1) {
return Math.pow(d1, 4.0);
}
def code(d1): return ((d1 * d1) * d1) * d1
def code(d1): return math.pow(d1, 4.0)
function code(d1) return Float64(Float64(Float64(d1 * d1) * d1) * d1) end
function code(d1) return d1 ^ 4.0 end
function tmp = code(d1) tmp = ((d1 * d1) * d1) * d1; end
function tmp = code(d1) tmp = d1 ^ 4.0; end
code[d1_] := N[(N[(N[(d1 * d1), $MachinePrecision] * d1), $MachinePrecision] * d1), $MachinePrecision]
code[d1_] := N[Power[d1, 4.0], $MachinePrecision]
\left(\left(d1 \cdot d1\right) \cdot d1\right) \cdot d1
{d1}^{4}
Results
| Original | 0.1 |
|---|---|
| Target | 0 |
| Herbie | 0 |
Initial program 0.1
Simplified0.2
[Start]0.1 | \[ \left(\left(d1 \cdot d1\right) \cdot d1\right) \cdot d1
\] |
|---|---|
rational_best-simplify-2 [=>]0.1 | \[ \color{blue}{d1 \cdot \left(\left(d1 \cdot d1\right) \cdot d1\right)}
\] |
rational_best-simplify-44 [=>]0.2 | \[ \color{blue}{\left(d1 \cdot d1\right) \cdot \left(d1 \cdot d1\right)}
\] |
Taylor expanded in d1 around 0 0
Final simplification0
| Alternative 1 | |
|---|---|
| Error | 0.2 |
| Cost | 448 |
| Alternative 2 | |
|---|---|
| Error | 0.1 |
| Cost | 448 |
herbie shell --seed 2023092
(FPCore (d1)
:name "FastMath repmul"
:precision binary64
:herbie-target
(pow d1 4.0)
(* (* (* d1 d1) d1) d1))