| Alternative 1 | |
|---|---|
| Error | 0.1 |
| Cost | 1216 |
\[\begin{array}{l}
t_0 := d1 \cdot \left(d1 \cdot d1\right)\\
d1 \cdot \left(d1 \cdot \left(\left(d1 \cdot d1\right) \cdot \left(t_0 \cdot t_0\right)\right)\right)
\end{array}
\]
(FPCore (d1) :precision binary64 (* (* d1 (* (* (* (* (* d1 (* d1 d1)) d1) d1) (* d1 d1)) d1)) d1))
(FPCore (d1) :precision binary64 (* (* d1 (* (* d1 (* d1 (* d1 (* d1 (* d1 (* d1 d1)))))) d1)) d1))
double code(double d1) {
return (d1 * (((((d1 * (d1 * d1)) * d1) * d1) * (d1 * d1)) * d1)) * d1;
}
double code(double d1) {
return (d1 * ((d1 * (d1 * (d1 * (d1 * (d1 * (d1 * d1)))))) * d1)) * d1;
}
real(8) function code(d1)
real(8), intent (in) :: d1
code = (d1 * (((((d1 * (d1 * d1)) * d1) * d1) * (d1 * d1)) * d1)) * d1
end function
real(8) function code(d1)
real(8), intent (in) :: d1
code = (d1 * ((d1 * (d1 * (d1 * (d1 * (d1 * (d1 * d1)))))) * d1)) * d1
end function
public static double code(double d1) {
return (d1 * (((((d1 * (d1 * d1)) * d1) * d1) * (d1 * d1)) * d1)) * d1;
}
public static double code(double d1) {
return (d1 * ((d1 * (d1 * (d1 * (d1 * (d1 * (d1 * d1)))))) * d1)) * d1;
}
def code(d1): return (d1 * (((((d1 * (d1 * d1)) * d1) * d1) * (d1 * d1)) * d1)) * d1
def code(d1): return (d1 * ((d1 * (d1 * (d1 * (d1 * (d1 * (d1 * d1)))))) * d1)) * d1
function code(d1) return Float64(Float64(d1 * Float64(Float64(Float64(Float64(Float64(d1 * Float64(d1 * d1)) * d1) * d1) * Float64(d1 * d1)) * d1)) * d1) end
function code(d1) return Float64(Float64(d1 * Float64(Float64(d1 * Float64(d1 * Float64(d1 * Float64(d1 * Float64(d1 * Float64(d1 * d1)))))) * d1)) * d1) end
function tmp = code(d1) tmp = (d1 * (((((d1 * (d1 * d1)) * d1) * d1) * (d1 * d1)) * d1)) * d1; end
function tmp = code(d1) tmp = (d1 * ((d1 * (d1 * (d1 * (d1 * (d1 * (d1 * d1)))))) * d1)) * d1; end
code[d1_] := N[(N[(d1 * N[(N[(N[(N[(N[(d1 * N[(d1 * d1), $MachinePrecision]), $MachinePrecision] * d1), $MachinePrecision] * d1), $MachinePrecision] * N[(d1 * d1), $MachinePrecision]), $MachinePrecision] * d1), $MachinePrecision]), $MachinePrecision] * d1), $MachinePrecision]
code[d1_] := N[(N[(d1 * N[(N[(d1 * N[(d1 * N[(d1 * N[(d1 * N[(d1 * N[(d1 * d1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * d1), $MachinePrecision]), $MachinePrecision] * d1), $MachinePrecision]
\left(d1 \cdot \left(\left(\left(\left(\left(d1 \cdot \left(d1 \cdot d1\right)\right) \cdot d1\right) \cdot d1\right) \cdot \left(d1 \cdot d1\right)\right) \cdot d1\right)\right) \cdot d1
\left(d1 \cdot \left(\left(d1 \cdot \left(d1 \cdot \left(d1 \cdot \left(d1 \cdot \left(d1 \cdot \left(d1 \cdot d1\right)\right)\right)\right)\right)\right) \cdot d1\right)\right) \cdot d1
Results
| Original | 0.1 |
|---|---|
| Target | 0.0 |
| Herbie | 0.1 |
Initial program 0.1
Applied egg-rr0.1
Simplified0.1
[Start]0.1 | \[ \left(d1 \cdot \left(\left(d1 \cdot \left(d1 \cdot \left(d1 \cdot \left(d1 \cdot \left(d1 \cdot \left(d1 \cdot d1\right)\right)\right)\right)\right) + 0\right) \cdot d1\right)\right) \cdot d1
\] |
|---|---|
rational.json-simplify-4 [=>]0.1 | \[ \left(d1 \cdot \left(\color{blue}{\left(d1 \cdot \left(d1 \cdot \left(d1 \cdot \left(d1 \cdot \left(d1 \cdot \left(d1 \cdot d1\right)\right)\right)\right)\right)\right)} \cdot d1\right)\right) \cdot d1
\] |
Final simplification0.1
| Alternative 1 | |
|---|---|
| Error | 0.1 |
| Cost | 1216 |
| Alternative 2 | |
|---|---|
| Error | 0.1 |
| Cost | 1216 |
herbie shell --seed 2023074
(FPCore (d1)
:name "FastMath test5"
:precision binary64
:herbie-target
(pow d1 10.0)
(* (* d1 (* (* (* (* (* d1 (* d1 d1)) d1) d1) (* d1 d1)) d1)) d1))