(FPCore (x y z t) :precision binary64 (* (/ (- x y) (- z y)) t))
(FPCore (x y z t) :precision binary64 (let* ((t_1 (cbrt (- x y))) (t_2 (cbrt (- z y)))) (* (/ (* t_1 t_1) (* t_2 t_2)) (* t (/ t_1 t_2)))))
double code(double x, double y, double z, double t) {
return ((x - y) / (z - y)) * t;
}
double code(double x, double y, double z, double t) {
double t_1 = cbrt((x - y));
double t_2 = cbrt((z - y));
return ((t_1 * t_1) / (t_2 * t_2)) * (t * (t_1 / t_2));
}
public static double code(double x, double y, double z, double t) {
return ((x - y) / (z - y)) * t;
}
public static double code(double x, double y, double z, double t) {
double t_1 = Math.cbrt((x - y));
double t_2 = Math.cbrt((z - y));
return ((t_1 * t_1) / (t_2 * t_2)) * (t * (t_1 / t_2));
}
function code(x, y, z, t) return Float64(Float64(Float64(x - y) / Float64(z - y)) * t) end
function code(x, y, z, t) t_1 = cbrt(Float64(x - y)) t_2 = cbrt(Float64(z - y)) return Float64(Float64(Float64(t_1 * t_1) / Float64(t_2 * t_2)) * Float64(t * Float64(t_1 / t_2))) end
code[x_, y_, z_, t_] := N[(N[(N[(x - y), $MachinePrecision] / N[(z - y), $MachinePrecision]), $MachinePrecision] * t), $MachinePrecision]
code[x_, y_, z_, t_] := Block[{t$95$1 = N[Power[N[(x - y), $MachinePrecision], 1/3], $MachinePrecision]}, Block[{t$95$2 = N[Power[N[(z - y), $MachinePrecision], 1/3], $MachinePrecision]}, N[(N[(N[(t$95$1 * t$95$1), $MachinePrecision] / N[(t$95$2 * t$95$2), $MachinePrecision]), $MachinePrecision] * N[(t * N[(t$95$1 / t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\frac{x - y}{z - y} \cdot t
\begin{array}{l}
t_1 := \sqrt[3]{x - y}\\
t_2 := \sqrt[3]{z - y}\\
\frac{t_1 \cdot t_1}{t_2 \cdot t_2} \cdot \left(t \cdot \frac{t_1}{t_2}\right)
\end{array}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.2 |
|---|---|
| Target | 2.2 |
| Herbie | 1.0 |
Initial program 2.2
Applied add-cube-cbrt_binary643.3
Applied add-cube-cbrt_binary643.0
Applied times-frac_binary643.0
Applied associate-*l*_binary641.0
Simplified1.0
Final simplification1.0
herbie shell --seed 2022131
(FPCore (x y z t)
:name "Numeric.Signal.Multichannel:$cput from hsignal-0.2.7.1"
:precision binary64
:herbie-target
(/ t (/ (- z y) (- x y)))
(* (/ (- x y) (- z y)) t))