
(FPCore (x y z t) :precision binary64 (+ (* (+ (* x y) z) y) t))
double code(double x, double y, double z, double t) {
return (((x * y) + z) * y) + t;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = (((x * y) + z) * y) + t
end function
public static double code(double x, double y, double z, double t) {
return (((x * y) + z) * y) + t;
}
def code(x, y, z, t): return (((x * y) + z) * y) + t
function code(x, y, z, t) return Float64(Float64(Float64(Float64(x * y) + z) * y) + t) end
function tmp = code(x, y, z, t) tmp = (((x * y) + z) * y) + t; end
code[x_, y_, z_, t_] := N[(N[(N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision] * y), $MachinePrecision] + t), $MachinePrecision]
\begin{array}{l}
\\
\left(x \cdot y + z\right) \cdot y + t
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 8 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t) :precision binary64 (+ (* (+ (* x y) z) y) t))
double code(double x, double y, double z, double t) {
return (((x * y) + z) * y) + t;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = (((x * y) + z) * y) + t
end function
public static double code(double x, double y, double z, double t) {
return (((x * y) + z) * y) + t;
}
def code(x, y, z, t): return (((x * y) + z) * y) + t
function code(x, y, z, t) return Float64(Float64(Float64(Float64(x * y) + z) * y) + t) end
function tmp = code(x, y, z, t) tmp = (((x * y) + z) * y) + t; end
code[x_, y_, z_, t_] := N[(N[(N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision] * y), $MachinePrecision] + t), $MachinePrecision]
\begin{array}{l}
\\
\left(x \cdot y + z\right) \cdot y + t
\end{array}
(FPCore (x y z t) :precision binary64 (fma (fma x y z) y t))
double code(double x, double y, double z, double t) {
return fma(fma(x, y, z), y, t);
}
function code(x, y, z, t) return fma(fma(x, y, z), y, t) end
code[x_, y_, z_, t_] := N[(N[(x * y + z), $MachinePrecision] * y + t), $MachinePrecision]
\begin{array}{l}
\\
\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, t\right)
\end{array}
Initial program 99.9%
fma-def99.9%
fma-def99.9%
Simplified99.9%
Final simplification99.9%
(FPCore (x y z t)
:precision binary64
(if (or (<= y -2.1e+118)
(not
(or (<= y -2.2e+14)
(and (not (<= y -6.5e-5))
(or (<= y 3.2e+84)
(and (not (<= y 1.02e+133)) (<= y 6.5e+183)))))))
(* y (* x y))
(+ t (* y z))))
double code(double x, double y, double z, double t) {
double tmp;
if ((y <= -2.1e+118) || !((y <= -2.2e+14) || (!(y <= -6.5e-5) && ((y <= 3.2e+84) || (!(y <= 1.02e+133) && (y <= 6.5e+183)))))) {
tmp = y * (x * y);
} else {
tmp = t + (y * z);
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if ((y <= (-2.1d+118)) .or. (.not. (y <= (-2.2d+14)) .or. (.not. (y <= (-6.5d-5))) .and. (y <= 3.2d+84) .or. (.not. (y <= 1.02d+133)) .and. (y <= 6.5d+183))) then
tmp = y * (x * y)
else
tmp = t + (y * z)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if ((y <= -2.1e+118) || !((y <= -2.2e+14) || (!(y <= -6.5e-5) && ((y <= 3.2e+84) || (!(y <= 1.02e+133) && (y <= 6.5e+183)))))) {
tmp = y * (x * y);
} else {
tmp = t + (y * z);
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if (y <= -2.1e+118) or not ((y <= -2.2e+14) or (not (y <= -6.5e-5) and ((y <= 3.2e+84) or (not (y <= 1.02e+133) and (y <= 6.5e+183))))): tmp = y * (x * y) else: tmp = t + (y * z) return tmp
function code(x, y, z, t) tmp = 0.0 if ((y <= -2.1e+118) || !((y <= -2.2e+14) || (!(y <= -6.5e-5) && ((y <= 3.2e+84) || (!(y <= 1.02e+133) && (y <= 6.5e+183)))))) tmp = Float64(y * Float64(x * y)); else tmp = Float64(t + Float64(y * z)); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if ((y <= -2.1e+118) || ~(((y <= -2.2e+14) || (~((y <= -6.5e-5)) && ((y <= 3.2e+84) || (~((y <= 1.02e+133)) && (y <= 6.5e+183))))))) tmp = y * (x * y); else tmp = t + (y * z); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[Or[LessEqual[y, -2.1e+118], N[Not[Or[LessEqual[y, -2.2e+14], And[N[Not[LessEqual[y, -6.5e-5]], $MachinePrecision], Or[LessEqual[y, 3.2e+84], And[N[Not[LessEqual[y, 1.02e+133]], $MachinePrecision], LessEqual[y, 6.5e+183]]]]]], $MachinePrecision]], N[(y * N[(x * y), $MachinePrecision]), $MachinePrecision], N[(t + N[(y * z), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -2.1 \cdot 10^{+118} \lor \neg \left(y \leq -2.2 \cdot 10^{+14} \lor \neg \left(y \leq -6.5 \cdot 10^{-5}\right) \land \left(y \leq 3.2 \cdot 10^{+84} \lor \neg \left(y \leq 1.02 \cdot 10^{+133}\right) \land y \leq 6.5 \cdot 10^{+183}\right)\right):\\
\;\;\;\;y \cdot \left(x \cdot y\right)\\
\mathbf{else}:\\
\;\;\;\;t + y \cdot z\\
\end{array}
\end{array}
if y < -2.1e118 or -2.2e14 < y < -6.49999999999999943e-5 or 3.2000000000000001e84 < y < 1.02e133 or 6.49999999999999983e183 < y Initial program 99.8%
Taylor expanded in t around 0 96.8%
Taylor expanded in y around inf 91.3%
if -2.1e118 < y < -2.2e14 or -6.49999999999999943e-5 < y < 3.2000000000000001e84 or 1.02e133 < y < 6.49999999999999983e183Initial program 99.9%
Taylor expanded in x around 0 84.6%
Final simplification86.5%
(FPCore (x y z t)
:precision binary64
(if (<= z -1.5e+147)
(* y z)
(if (<= z -2.5e+122)
t
(if (<= z -5.5e+77)
(* y z)
(if (<= z 1.25e-53)
t
(if (<= z 6.5e+73) (* y z) (if (<= z 1.5e+168) t (* y z))))))))
double code(double x, double y, double z, double t) {
double tmp;
if (z <= -1.5e+147) {
tmp = y * z;
} else if (z <= -2.5e+122) {
tmp = t;
} else if (z <= -5.5e+77) {
tmp = y * z;
} else if (z <= 1.25e-53) {
tmp = t;
} else if (z <= 6.5e+73) {
tmp = y * z;
} else if (z <= 1.5e+168) {
tmp = t;
} else {
tmp = y * z;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if (z <= (-1.5d+147)) then
tmp = y * z
else if (z <= (-2.5d+122)) then
tmp = t
else if (z <= (-5.5d+77)) then
tmp = y * z
else if (z <= 1.25d-53) then
tmp = t
else if (z <= 6.5d+73) then
tmp = y * z
else if (z <= 1.5d+168) then
tmp = t
else
tmp = y * z
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (z <= -1.5e+147) {
tmp = y * z;
} else if (z <= -2.5e+122) {
tmp = t;
} else if (z <= -5.5e+77) {
tmp = y * z;
} else if (z <= 1.25e-53) {
tmp = t;
} else if (z <= 6.5e+73) {
tmp = y * z;
} else if (z <= 1.5e+168) {
tmp = t;
} else {
tmp = y * z;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -1.5e+147: tmp = y * z elif z <= -2.5e+122: tmp = t elif z <= -5.5e+77: tmp = y * z elif z <= 1.25e-53: tmp = t elif z <= 6.5e+73: tmp = y * z elif z <= 1.5e+168: tmp = t else: tmp = y * z return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -1.5e+147) tmp = Float64(y * z); elseif (z <= -2.5e+122) tmp = t; elseif (z <= -5.5e+77) tmp = Float64(y * z); elseif (z <= 1.25e-53) tmp = t; elseif (z <= 6.5e+73) tmp = Float64(y * z); elseif (z <= 1.5e+168) tmp = t; else tmp = Float64(y * z); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (z <= -1.5e+147) tmp = y * z; elseif (z <= -2.5e+122) tmp = t; elseif (z <= -5.5e+77) tmp = y * z; elseif (z <= 1.25e-53) tmp = t; elseif (z <= 6.5e+73) tmp = y * z; elseif (z <= 1.5e+168) tmp = t; else tmp = y * z; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -1.5e+147], N[(y * z), $MachinePrecision], If[LessEqual[z, -2.5e+122], t, If[LessEqual[z, -5.5e+77], N[(y * z), $MachinePrecision], If[LessEqual[z, 1.25e-53], t, If[LessEqual[z, 6.5e+73], N[(y * z), $MachinePrecision], If[LessEqual[z, 1.5e+168], t, N[(y * z), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1.5 \cdot 10^{+147}:\\
\;\;\;\;y \cdot z\\
\mathbf{elif}\;z \leq -2.5 \cdot 10^{+122}:\\
\;\;\;\;t\\
\mathbf{elif}\;z \leq -5.5 \cdot 10^{+77}:\\
\;\;\;\;y \cdot z\\
\mathbf{elif}\;z \leq 1.25 \cdot 10^{-53}:\\
\;\;\;\;t\\
\mathbf{elif}\;z \leq 6.5 \cdot 10^{+73}:\\
\;\;\;\;y \cdot z\\
\mathbf{elif}\;z \leq 1.5 \cdot 10^{+168}:\\
\;\;\;\;t\\
\mathbf{else}:\\
\;\;\;\;y \cdot z\\
\end{array}
\end{array}
if z < -1.49999999999999997e147 or -2.49999999999999994e122 < z < -5.50000000000000036e77 or 1.25e-53 < z < 6.5000000000000001e73 or 1.4999999999999999e168 < z Initial program 100.0%
Taylor expanded in t around 0 80.5%
Taylor expanded in y around 0 64.6%
if -1.49999999999999997e147 < z < -2.49999999999999994e122 or -5.50000000000000036e77 < z < 1.25e-53 or 6.5000000000000001e73 < z < 1.4999999999999999e168Initial program 99.9%
Taylor expanded in y around 0 53.4%
Final simplification57.5%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* y (* x y))))
(if (<= y -2.55e-5)
t_1
(if (<= y -8e-111)
t
(if (<= y -1.76e-143) (* y z) (if (<= y 0.000215) t t_1))))))
double code(double x, double y, double z, double t) {
double t_1 = y * (x * y);
double tmp;
if (y <= -2.55e-5) {
tmp = t_1;
} else if (y <= -8e-111) {
tmp = t;
} else if (y <= -1.76e-143) {
tmp = y * z;
} else if (y <= 0.000215) {
tmp = t;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = y * (x * y)
if (y <= (-2.55d-5)) then
tmp = t_1
else if (y <= (-8d-111)) then
tmp = t
else if (y <= (-1.76d-143)) then
tmp = y * z
else if (y <= 0.000215d0) then
tmp = t
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = y * (x * y);
double tmp;
if (y <= -2.55e-5) {
tmp = t_1;
} else if (y <= -8e-111) {
tmp = t;
} else if (y <= -1.76e-143) {
tmp = y * z;
} else if (y <= 0.000215) {
tmp = t;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t): t_1 = y * (x * y) tmp = 0 if y <= -2.55e-5: tmp = t_1 elif y <= -8e-111: tmp = t elif y <= -1.76e-143: tmp = y * z elif y <= 0.000215: tmp = t else: tmp = t_1 return tmp
function code(x, y, z, t) t_1 = Float64(y * Float64(x * y)) tmp = 0.0 if (y <= -2.55e-5) tmp = t_1; elseif (y <= -8e-111) tmp = t; elseif (y <= -1.76e-143) tmp = Float64(y * z); elseif (y <= 0.000215) tmp = t; else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = y * (x * y); tmp = 0.0; if (y <= -2.55e-5) tmp = t_1; elseif (y <= -8e-111) tmp = t; elseif (y <= -1.76e-143) tmp = y * z; elseif (y <= 0.000215) tmp = t; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(y * N[(x * y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -2.55e-5], t$95$1, If[LessEqual[y, -8e-111], t, If[LessEqual[y, -1.76e-143], N[(y * z), $MachinePrecision], If[LessEqual[y, 0.000215], t, t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \left(x \cdot y\right)\\
\mathbf{if}\;y \leq -2.55 \cdot 10^{-5}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq -8 \cdot 10^{-111}:\\
\;\;\;\;t\\
\mathbf{elif}\;y \leq -1.76 \cdot 10^{-143}:\\
\;\;\;\;y \cdot z\\
\mathbf{elif}\;y \leq 0.000215:\\
\;\;\;\;t\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if y < -2.54999999999999998e-5 or 2.14999999999999995e-4 < y Initial program 99.9%
Taylor expanded in t around 0 87.3%
Taylor expanded in y around inf 67.0%
if -2.54999999999999998e-5 < y < -8.00000000000000071e-111 or -1.76000000000000005e-143 < y < 2.14999999999999995e-4Initial program 100.0%
Taylor expanded in y around 0 73.0%
if -8.00000000000000071e-111 < y < -1.76000000000000005e-143Initial program 100.0%
Taylor expanded in t around 0 85.9%
Taylor expanded in y around 0 86.2%
Final simplification70.4%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* y (+ z (* x y)))))
(if (<= y -4.8e-5)
t_1
(if (<= y 1.45e-138)
(+ t (* y z))
(if (<= y 4.1e+55) (+ t (* x (* y y))) t_1)))))
double code(double x, double y, double z, double t) {
double t_1 = y * (z + (x * y));
double tmp;
if (y <= -4.8e-5) {
tmp = t_1;
} else if (y <= 1.45e-138) {
tmp = t + (y * z);
} else if (y <= 4.1e+55) {
tmp = t + (x * (y * y));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = y * (z + (x * y))
if (y <= (-4.8d-5)) then
tmp = t_1
else if (y <= 1.45d-138) then
tmp = t + (y * z)
else if (y <= 4.1d+55) then
tmp = t + (x * (y * y))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = y * (z + (x * y));
double tmp;
if (y <= -4.8e-5) {
tmp = t_1;
} else if (y <= 1.45e-138) {
tmp = t + (y * z);
} else if (y <= 4.1e+55) {
tmp = t + (x * (y * y));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t): t_1 = y * (z + (x * y)) tmp = 0 if y <= -4.8e-5: tmp = t_1 elif y <= 1.45e-138: tmp = t + (y * z) elif y <= 4.1e+55: tmp = t + (x * (y * y)) else: tmp = t_1 return tmp
function code(x, y, z, t) t_1 = Float64(y * Float64(z + Float64(x * y))) tmp = 0.0 if (y <= -4.8e-5) tmp = t_1; elseif (y <= 1.45e-138) tmp = Float64(t + Float64(y * z)); elseif (y <= 4.1e+55) tmp = Float64(t + Float64(x * Float64(y * y))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = y * (z + (x * y)); tmp = 0.0; if (y <= -4.8e-5) tmp = t_1; elseif (y <= 1.45e-138) tmp = t + (y * z); elseif (y <= 4.1e+55) tmp = t + (x * (y * y)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(y * N[(z + N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -4.8e-5], t$95$1, If[LessEqual[y, 1.45e-138], N[(t + N[(y * z), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 4.1e+55], N[(t + N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \left(z + x \cdot y\right)\\
\mathbf{if}\;y \leq -4.8 \cdot 10^{-5}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq 1.45 \cdot 10^{-138}:\\
\;\;\;\;t + y \cdot z\\
\mathbf{elif}\;y \leq 4.1 \cdot 10^{+55}:\\
\;\;\;\;t + x \cdot \left(y \cdot y\right)\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if y < -4.8000000000000001e-5 or 4.09999999999999981e55 < y Initial program 99.8%
Taylor expanded in t around 0 91.1%
if -4.8000000000000001e-5 < y < 1.44999999999999987e-138Initial program 100.0%
Taylor expanded in x around 0 98.0%
if 1.44999999999999987e-138 < y < 4.09999999999999981e55Initial program 99.9%
add-cube-cbrt99.1%
pow399.2%
fma-def99.2%
Applied egg-rr99.2%
Taylor expanded in x around inf 81.2%
unpow281.2%
*-commutative81.2%
Simplified81.2%
Final simplification92.3%
(FPCore (x y z t) :precision binary64 (if (or (<= y -0.00016) (not (<= y 2.2e+52))) (* y (+ z (* x y))) (+ t (* y z))))
double code(double x, double y, double z, double t) {
double tmp;
if ((y <= -0.00016) || !(y <= 2.2e+52)) {
tmp = y * (z + (x * y));
} else {
tmp = t + (y * z);
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if ((y <= (-0.00016d0)) .or. (.not. (y <= 2.2d+52))) then
tmp = y * (z + (x * y))
else
tmp = t + (y * z)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if ((y <= -0.00016) || !(y <= 2.2e+52)) {
tmp = y * (z + (x * y));
} else {
tmp = t + (y * z);
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if (y <= -0.00016) or not (y <= 2.2e+52): tmp = y * (z + (x * y)) else: tmp = t + (y * z) return tmp
function code(x, y, z, t) tmp = 0.0 if ((y <= -0.00016) || !(y <= 2.2e+52)) tmp = Float64(y * Float64(z + Float64(x * y))); else tmp = Float64(t + Float64(y * z)); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if ((y <= -0.00016) || ~((y <= 2.2e+52))) tmp = y * (z + (x * y)); else tmp = t + (y * z); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[Or[LessEqual[y, -0.00016], N[Not[LessEqual[y, 2.2e+52]], $MachinePrecision]], N[(y * N[(z + N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t + N[(y * z), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -0.00016 \lor \neg \left(y \leq 2.2 \cdot 10^{+52}\right):\\
\;\;\;\;y \cdot \left(z + x \cdot y\right)\\
\mathbf{else}:\\
\;\;\;\;t + y \cdot z\\
\end{array}
\end{array}
if y < -1.60000000000000013e-4 or 2.2e52 < y Initial program 99.8%
Taylor expanded in t around 0 91.1%
if -1.60000000000000013e-4 < y < 2.2e52Initial program 100.0%
Taylor expanded in x around 0 89.4%
Final simplification90.2%
(FPCore (x y z t) :precision binary64 (+ t (* y (+ z (* x y)))))
double code(double x, double y, double z, double t) {
return t + (y * (z + (x * y)));
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = t + (y * (z + (x * y)))
end function
public static double code(double x, double y, double z, double t) {
return t + (y * (z + (x * y)));
}
def code(x, y, z, t): return t + (y * (z + (x * y)))
function code(x, y, z, t) return Float64(t + Float64(y * Float64(z + Float64(x * y)))) end
function tmp = code(x, y, z, t) tmp = t + (y * (z + (x * y))); end
code[x_, y_, z_, t_] := N[(t + N[(y * N[(z + N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
t + y \cdot \left(z + x \cdot y\right)
\end{array}
Initial program 99.9%
Final simplification99.9%
(FPCore (x y z t) :precision binary64 t)
double code(double x, double y, double z, double t) {
return t;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = t
end function
public static double code(double x, double y, double z, double t) {
return t;
}
def code(x, y, z, t): return t
function code(x, y, z, t) return t end
function tmp = code(x, y, z, t) tmp = t; end
code[x_, y_, z_, t_] := t
\begin{array}{l}
\\
t
\end{array}
Initial program 99.9%
Taylor expanded in y around 0 41.9%
Final simplification41.9%
herbie shell --seed 2023257
(FPCore (x y z t)
:name "Language.Haskell.HsColour.ColourHighlight:unbase from hscolour-1.23"
:precision binary64
(+ (* (+ (* x y) z) y) t))