
(FPCore (x y z t) :precision binary64 (+ (* x (+ (+ (+ (+ y z) z) y) t)) (* y 5.0)))
double code(double x, double y, double z, double t) {
return (x * ((((y + z) + z) + y) + t)) + (y * 5.0);
}
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) + z) + y) + t)) + (y * 5.0d0)
end function
public static double code(double x, double y, double z, double t) {
return (x * ((((y + z) + z) + y) + t)) + (y * 5.0);
}
def code(x, y, z, t): return (x * ((((y + z) + z) + y) + t)) + (y * 5.0)
function code(x, y, z, t) return Float64(Float64(x * Float64(Float64(Float64(Float64(y + z) + z) + y) + t)) + Float64(y * 5.0)) end
function tmp = code(x, y, z, t) tmp = (x * ((((y + z) + z) + y) + t)) + (y * 5.0); end
code[x_, y_, z_, t_] := N[(N[(x * N[(N[(N[(N[(y + z), $MachinePrecision] + z), $MachinePrecision] + y), $MachinePrecision] + t), $MachinePrecision]), $MachinePrecision] + N[(y * 5.0), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x \cdot \left(\left(\left(\left(y + z\right) + z\right) + y\right) + t\right) + y \cdot 5
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 15 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t) :precision binary64 (+ (* x (+ (+ (+ (+ y z) z) y) t)) (* y 5.0)))
double code(double x, double y, double z, double t) {
return (x * ((((y + z) + z) + y) + t)) + (y * 5.0);
}
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) + z) + y) + t)) + (y * 5.0d0)
end function
public static double code(double x, double y, double z, double t) {
return (x * ((((y + z) + z) + y) + t)) + (y * 5.0);
}
def code(x, y, z, t): return (x * ((((y + z) + z) + y) + t)) + (y * 5.0)
function code(x, y, z, t) return Float64(Float64(x * Float64(Float64(Float64(Float64(y + z) + z) + y) + t)) + Float64(y * 5.0)) end
function tmp = code(x, y, z, t) tmp = (x * ((((y + z) + z) + y) + t)) + (y * 5.0); end
code[x_, y_, z_, t_] := N[(N[(x * N[(N[(N[(N[(y + z), $MachinePrecision] + z), $MachinePrecision] + y), $MachinePrecision] + t), $MachinePrecision]), $MachinePrecision] + N[(y * 5.0), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x \cdot \left(\left(\left(\left(y + z\right) + z\right) + y\right) + t\right) + y \cdot 5
\end{array}
(FPCore (x y z t) :precision binary64 (fma y 5.0 (* x (fma (+ y z) 2.0 t))))
double code(double x, double y, double z, double t) {
return fma(y, 5.0, (x * fma((y + z), 2.0, t)));
}
function code(x, y, z, t) return fma(y, 5.0, Float64(x * fma(Float64(y + z), 2.0, t))) end
code[x_, y_, z_, t_] := N[(y * 5.0 + N[(x * N[(N[(y + z), $MachinePrecision] * 2.0 + t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\mathsf{fma}\left(y, 5, x \cdot \mathsf{fma}\left(y + z, 2, t\right)\right)
\end{array}
Initial program 99.9%
+-commutative99.9%
fma-define100.0%
flip-+60.9%
associate-*r/57.0%
fma-neg58.0%
associate-+l+58.0%
+-commutative58.0%
count-258.0%
associate-+l+58.0%
+-commutative58.0%
count-258.0%
fma-neg57.0%
associate-+l+57.0%
+-commutative57.0%
count-257.0%
Applied egg-rr100.0%
Final simplification100.0%
(FPCore (x y z t) :precision binary64 (fma x (+ t (* (+ y z) 2.0)) (* y 5.0)))
double code(double x, double y, double z, double t) {
return fma(x, (t + ((y + z) * 2.0)), (y * 5.0));
}
function code(x, y, z, t) return fma(x, Float64(t + Float64(Float64(y + z) * 2.0)), Float64(y * 5.0)) end
code[x_, y_, z_, t_] := N[(x * N[(t + N[(N[(y + z), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] + N[(y * 5.0), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\mathsf{fma}\left(x, t + \left(y + z\right) \cdot 2, y \cdot 5\right)
\end{array}
Initial program 99.9%
fma-define99.9%
associate-+l+100.0%
+-commutative100.0%
count-2100.0%
Simplified100.0%
Final simplification100.0%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* 2.0 (* x z))))
(if (<= x -6.5e-12)
t_1
(if (<= x 5.6e-57)
(* y 5.0)
(if (<= x 2.7e+64)
t_1
(if (or (<= x 1.55e+127) (not (<= x 1.75e+246)))
(* y (* x 2.0))
(* x t)))))))
double code(double x, double y, double z, double t) {
double t_1 = 2.0 * (x * z);
double tmp;
if (x <= -6.5e-12) {
tmp = t_1;
} else if (x <= 5.6e-57) {
tmp = y * 5.0;
} else if (x <= 2.7e+64) {
tmp = t_1;
} else if ((x <= 1.55e+127) || !(x <= 1.75e+246)) {
tmp = y * (x * 2.0);
} else {
tmp = x * t;
}
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 = 2.0d0 * (x * z)
if (x <= (-6.5d-12)) then
tmp = t_1
else if (x <= 5.6d-57) then
tmp = y * 5.0d0
else if (x <= 2.7d+64) then
tmp = t_1
else if ((x <= 1.55d+127) .or. (.not. (x <= 1.75d+246))) then
tmp = y * (x * 2.0d0)
else
tmp = x * t
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = 2.0 * (x * z);
double tmp;
if (x <= -6.5e-12) {
tmp = t_1;
} else if (x <= 5.6e-57) {
tmp = y * 5.0;
} else if (x <= 2.7e+64) {
tmp = t_1;
} else if ((x <= 1.55e+127) || !(x <= 1.75e+246)) {
tmp = y * (x * 2.0);
} else {
tmp = x * t;
}
return tmp;
}
def code(x, y, z, t): t_1 = 2.0 * (x * z) tmp = 0 if x <= -6.5e-12: tmp = t_1 elif x <= 5.6e-57: tmp = y * 5.0 elif x <= 2.7e+64: tmp = t_1 elif (x <= 1.55e+127) or not (x <= 1.75e+246): tmp = y * (x * 2.0) else: tmp = x * t return tmp
function code(x, y, z, t) t_1 = Float64(2.0 * Float64(x * z)) tmp = 0.0 if (x <= -6.5e-12) tmp = t_1; elseif (x <= 5.6e-57) tmp = Float64(y * 5.0); elseif (x <= 2.7e+64) tmp = t_1; elseif ((x <= 1.55e+127) || !(x <= 1.75e+246)) tmp = Float64(y * Float64(x * 2.0)); else tmp = Float64(x * t); end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = 2.0 * (x * z); tmp = 0.0; if (x <= -6.5e-12) tmp = t_1; elseif (x <= 5.6e-57) tmp = y * 5.0; elseif (x <= 2.7e+64) tmp = t_1; elseif ((x <= 1.55e+127) || ~((x <= 1.75e+246))) tmp = y * (x * 2.0); else tmp = x * t; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(2.0 * N[(x * z), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -6.5e-12], t$95$1, If[LessEqual[x, 5.6e-57], N[(y * 5.0), $MachinePrecision], If[LessEqual[x, 2.7e+64], t$95$1, If[Or[LessEqual[x, 1.55e+127], N[Not[LessEqual[x, 1.75e+246]], $MachinePrecision]], N[(y * N[(x * 2.0), $MachinePrecision]), $MachinePrecision], N[(x * t), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := 2 \cdot \left(x \cdot z\right)\\
\mathbf{if}\;x \leq -6.5 \cdot 10^{-12}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;x \leq 5.6 \cdot 10^{-57}:\\
\;\;\;\;y \cdot 5\\
\mathbf{elif}\;x \leq 2.7 \cdot 10^{+64}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;x \leq 1.55 \cdot 10^{+127} \lor \neg \left(x \leq 1.75 \cdot 10^{+246}\right):\\
\;\;\;\;y \cdot \left(x \cdot 2\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot t\\
\end{array}
\end{array}
if x < -6.5000000000000002e-12 or 5.5999999999999999e-57 < x < 2.7e64Initial program 100.0%
Taylor expanded in z around inf 45.3%
Simplified45.3%
if -6.5000000000000002e-12 < x < 5.5999999999999999e-57Initial program 99.9%
Taylor expanded in x around 0 65.4%
Simplified65.4%
if 2.7e64 < x < 1.5500000000000001e127 or 1.74999999999999988e246 < x Initial program 99.9%
fma-define99.9%
associate-+l+100.0%
+-commutative100.0%
count-2100.0%
Simplified100.0%
Taylor expanded in x around inf 100.0%
Taylor expanded in y around inf 70.8%
associate-*r*70.8%
*-commutative70.8%
Simplified70.8%
if 1.5500000000000001e127 < x < 1.74999999999999988e246Initial program 100.0%
Taylor expanded in t around inf 52.1%
Final simplification57.3%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* 2.0 (* x z))))
(if (<= x -5e+173)
t_1
(if (<= x -6.5e+70)
(* x t)
(if (<= x -7.4e-14)
t_1
(if (<= x 4.1e-57) (* y 5.0) (if (<= x 1.4e+126) t_1 (* x t))))))))
double code(double x, double y, double z, double t) {
double t_1 = 2.0 * (x * z);
double tmp;
if (x <= -5e+173) {
tmp = t_1;
} else if (x <= -6.5e+70) {
tmp = x * t;
} else if (x <= -7.4e-14) {
tmp = t_1;
} else if (x <= 4.1e-57) {
tmp = y * 5.0;
} else if (x <= 1.4e+126) {
tmp = t_1;
} else {
tmp = x * t;
}
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 = 2.0d0 * (x * z)
if (x <= (-5d+173)) then
tmp = t_1
else if (x <= (-6.5d+70)) then
tmp = x * t
else if (x <= (-7.4d-14)) then
tmp = t_1
else if (x <= 4.1d-57) then
tmp = y * 5.0d0
else if (x <= 1.4d+126) then
tmp = t_1
else
tmp = x * t
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = 2.0 * (x * z);
double tmp;
if (x <= -5e+173) {
tmp = t_1;
} else if (x <= -6.5e+70) {
tmp = x * t;
} else if (x <= -7.4e-14) {
tmp = t_1;
} else if (x <= 4.1e-57) {
tmp = y * 5.0;
} else if (x <= 1.4e+126) {
tmp = t_1;
} else {
tmp = x * t;
}
return tmp;
}
def code(x, y, z, t): t_1 = 2.0 * (x * z) tmp = 0 if x <= -5e+173: tmp = t_1 elif x <= -6.5e+70: tmp = x * t elif x <= -7.4e-14: tmp = t_1 elif x <= 4.1e-57: tmp = y * 5.0 elif x <= 1.4e+126: tmp = t_1 else: tmp = x * t return tmp
function code(x, y, z, t) t_1 = Float64(2.0 * Float64(x * z)) tmp = 0.0 if (x <= -5e+173) tmp = t_1; elseif (x <= -6.5e+70) tmp = Float64(x * t); elseif (x <= -7.4e-14) tmp = t_1; elseif (x <= 4.1e-57) tmp = Float64(y * 5.0); elseif (x <= 1.4e+126) tmp = t_1; else tmp = Float64(x * t); end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = 2.0 * (x * z); tmp = 0.0; if (x <= -5e+173) tmp = t_1; elseif (x <= -6.5e+70) tmp = x * t; elseif (x <= -7.4e-14) tmp = t_1; elseif (x <= 4.1e-57) tmp = y * 5.0; elseif (x <= 1.4e+126) tmp = t_1; else tmp = x * t; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(2.0 * N[(x * z), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -5e+173], t$95$1, If[LessEqual[x, -6.5e+70], N[(x * t), $MachinePrecision], If[LessEqual[x, -7.4e-14], t$95$1, If[LessEqual[x, 4.1e-57], N[(y * 5.0), $MachinePrecision], If[LessEqual[x, 1.4e+126], t$95$1, N[(x * t), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := 2 \cdot \left(x \cdot z\right)\\
\mathbf{if}\;x \leq -5 \cdot 10^{+173}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;x \leq -6.5 \cdot 10^{+70}:\\
\;\;\;\;x \cdot t\\
\mathbf{elif}\;x \leq -7.4 \cdot 10^{-14}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;x \leq 4.1 \cdot 10^{-57}:\\
\;\;\;\;y \cdot 5\\
\mathbf{elif}\;x \leq 1.4 \cdot 10^{+126}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;x \cdot t\\
\end{array}
\end{array}
if x < -5.00000000000000034e173 or -6.49999999999999978e70 < x < -7.40000000000000002e-14 or 4.1000000000000001e-57 < x < 1.40000000000000005e126Initial program 99.9%
Taylor expanded in z around inf 49.1%
Simplified49.1%
if -5.00000000000000034e173 < x < -6.49999999999999978e70 or 1.40000000000000005e126 < x Initial program 100.0%
Taylor expanded in t around inf 42.8%
if -7.40000000000000002e-14 < x < 4.1000000000000001e-57Initial program 99.9%
Taylor expanded in x around 0 65.4%
Simplified65.4%
Final simplification54.3%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* x (+ t (* z 2.0)))) (t_2 (* x (* (+ y z) 2.0))))
(if (<= x -1.5e+164)
t_2
(if (<= x -6.6e-146)
t_1
(if (<= x 6.4e-132) (* y 5.0) (if (<= x 1.7e+45) t_1 t_2))))))
double code(double x, double y, double z, double t) {
double t_1 = x * (t + (z * 2.0));
double t_2 = x * ((y + z) * 2.0);
double tmp;
if (x <= -1.5e+164) {
tmp = t_2;
} else if (x <= -6.6e-146) {
tmp = t_1;
} else if (x <= 6.4e-132) {
tmp = y * 5.0;
} else if (x <= 1.7e+45) {
tmp = t_1;
} else {
tmp = t_2;
}
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) :: t_2
real(8) :: tmp
t_1 = x * (t + (z * 2.0d0))
t_2 = x * ((y + z) * 2.0d0)
if (x <= (-1.5d+164)) then
tmp = t_2
else if (x <= (-6.6d-146)) then
tmp = t_1
else if (x <= 6.4d-132) then
tmp = y * 5.0d0
else if (x <= 1.7d+45) then
tmp = t_1
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = x * (t + (z * 2.0));
double t_2 = x * ((y + z) * 2.0);
double tmp;
if (x <= -1.5e+164) {
tmp = t_2;
} else if (x <= -6.6e-146) {
tmp = t_1;
} else if (x <= 6.4e-132) {
tmp = y * 5.0;
} else if (x <= 1.7e+45) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t): t_1 = x * (t + (z * 2.0)) t_2 = x * ((y + z) * 2.0) tmp = 0 if x <= -1.5e+164: tmp = t_2 elif x <= -6.6e-146: tmp = t_1 elif x <= 6.4e-132: tmp = y * 5.0 elif x <= 1.7e+45: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t) t_1 = Float64(x * Float64(t + Float64(z * 2.0))) t_2 = Float64(x * Float64(Float64(y + z) * 2.0)) tmp = 0.0 if (x <= -1.5e+164) tmp = t_2; elseif (x <= -6.6e-146) tmp = t_1; elseif (x <= 6.4e-132) tmp = Float64(y * 5.0); elseif (x <= 1.7e+45) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = x * (t + (z * 2.0)); t_2 = x * ((y + z) * 2.0); tmp = 0.0; if (x <= -1.5e+164) tmp = t_2; elseif (x <= -6.6e-146) tmp = t_1; elseif (x <= 6.4e-132) tmp = y * 5.0; elseif (x <= 1.7e+45) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(x * N[(t + N[(z * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x * N[(N[(y + z), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -1.5e+164], t$95$2, If[LessEqual[x, -6.6e-146], t$95$1, If[LessEqual[x, 6.4e-132], N[(y * 5.0), $MachinePrecision], If[LessEqual[x, 1.7e+45], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(t + z \cdot 2\right)\\
t_2 := x \cdot \left(\left(y + z\right) \cdot 2\right)\\
\mathbf{if}\;x \leq -1.5 \cdot 10^{+164}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;x \leq -6.6 \cdot 10^{-146}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;x \leq 6.4 \cdot 10^{-132}:\\
\;\;\;\;y \cdot 5\\
\mathbf{elif}\;x \leq 1.7 \cdot 10^{+45}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if x < -1.5e164 or 1.7e45 < x Initial program 100.0%
fma-define100.0%
associate-+l+100.0%
+-commutative100.0%
count-2100.0%
Simplified100.0%
Taylor expanded in t around 0 79.5%
Taylor expanded in x around inf 79.5%
Taylor expanded in x around inf 79.5%
if -1.5e164 < x < -6.6e-146 or 6.4000000000000004e-132 < x < 1.7e45Initial program 100.0%
Taylor expanded in y around 0 71.7%
if -6.6e-146 < x < 6.4000000000000004e-132Initial program 99.9%
Taylor expanded in x around 0 75.8%
Simplified75.8%
Final simplification75.2%
(FPCore (x y z t)
:precision binary64
(if (<= y -2.7e+155)
(+ (* y 5.0) (* x (+ t (+ y y))))
(if (<= y 3.4e+112)
(* x (+ t (+ (* (+ y z) 2.0) (* 5.0 (/ y x)))))
(+ (* y 5.0) (* 2.0 (* x (+ y z)))))))
double code(double x, double y, double z, double t) {
double tmp;
if (y <= -2.7e+155) {
tmp = (y * 5.0) + (x * (t + (y + y)));
} else if (y <= 3.4e+112) {
tmp = x * (t + (((y + z) * 2.0) + (5.0 * (y / x))));
} else {
tmp = (y * 5.0) + (2.0 * (x * (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.7d+155)) then
tmp = (y * 5.0d0) + (x * (t + (y + y)))
else if (y <= 3.4d+112) then
tmp = x * (t + (((y + z) * 2.0d0) + (5.0d0 * (y / x))))
else
tmp = (y * 5.0d0) + (2.0d0 * (x * (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.7e+155) {
tmp = (y * 5.0) + (x * (t + (y + y)));
} else if (y <= 3.4e+112) {
tmp = x * (t + (((y + z) * 2.0) + (5.0 * (y / x))));
} else {
tmp = (y * 5.0) + (2.0 * (x * (y + z)));
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if y <= -2.7e+155: tmp = (y * 5.0) + (x * (t + (y + y))) elif y <= 3.4e+112: tmp = x * (t + (((y + z) * 2.0) + (5.0 * (y / x)))) else: tmp = (y * 5.0) + (2.0 * (x * (y + z))) return tmp
function code(x, y, z, t) tmp = 0.0 if (y <= -2.7e+155) tmp = Float64(Float64(y * 5.0) + Float64(x * Float64(t + Float64(y + y)))); elseif (y <= 3.4e+112) tmp = Float64(x * Float64(t + Float64(Float64(Float64(y + z) * 2.0) + Float64(5.0 * Float64(y / x))))); else tmp = Float64(Float64(y * 5.0) + Float64(2.0 * Float64(x * Float64(y + z)))); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (y <= -2.7e+155) tmp = (y * 5.0) + (x * (t + (y + y))); elseif (y <= 3.4e+112) tmp = x * (t + (((y + z) * 2.0) + (5.0 * (y / x)))); else tmp = (y * 5.0) + (2.0 * (x * (y + z))); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[y, -2.7e+155], N[(N[(y * 5.0), $MachinePrecision] + N[(x * N[(t + N[(y + y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 3.4e+112], N[(x * N[(t + N[(N[(N[(y + z), $MachinePrecision] * 2.0), $MachinePrecision] + N[(5.0 * N[(y / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(y * 5.0), $MachinePrecision] + N[(2.0 * N[(x * N[(y + z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -2.7 \cdot 10^{+155}:\\
\;\;\;\;y \cdot 5 + x \cdot \left(t + \left(y + y\right)\right)\\
\mathbf{elif}\;y \leq 3.4 \cdot 10^{+112}:\\
\;\;\;\;x \cdot \left(t + \left(\left(y + z\right) \cdot 2 + 5 \cdot \frac{y}{x}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot 5 + 2 \cdot \left(x \cdot \left(y + z\right)\right)\\
\end{array}
\end{array}
if y < -2.69999999999999994e155Initial program 99.9%
Taylor expanded in y around inf 99.9%
if -2.69999999999999994e155 < y < 3.39999999999999993e112Initial program 99.9%
fma-define99.9%
associate-+l+100.0%
+-commutative100.0%
count-2100.0%
Simplified100.0%
Taylor expanded in x around inf 98.8%
if 3.39999999999999993e112 < y Initial program 100.0%
fma-define100.0%
associate-+l+100.0%
+-commutative100.0%
count-2100.0%
Simplified100.0%
Taylor expanded in t around 0 100.0%
Final simplification99.1%
(FPCore (x y z t) :precision binary64 (if (or (<= x -1.25e-9) (not (<= x 5.5e-57))) (* x (+ t (* (+ y z) 2.0))) (+ (* y 5.0) (* 2.0 (* x (+ y z))))))
double code(double x, double y, double z, double t) {
double tmp;
if ((x <= -1.25e-9) || !(x <= 5.5e-57)) {
tmp = x * (t + ((y + z) * 2.0));
} else {
tmp = (y * 5.0) + (2.0 * (x * (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 ((x <= (-1.25d-9)) .or. (.not. (x <= 5.5d-57))) then
tmp = x * (t + ((y + z) * 2.0d0))
else
tmp = (y * 5.0d0) + (2.0d0 * (x * (y + z)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if ((x <= -1.25e-9) || !(x <= 5.5e-57)) {
tmp = x * (t + ((y + z) * 2.0));
} else {
tmp = (y * 5.0) + (2.0 * (x * (y + z)));
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if (x <= -1.25e-9) or not (x <= 5.5e-57): tmp = x * (t + ((y + z) * 2.0)) else: tmp = (y * 5.0) + (2.0 * (x * (y + z))) return tmp
function code(x, y, z, t) tmp = 0.0 if ((x <= -1.25e-9) || !(x <= 5.5e-57)) tmp = Float64(x * Float64(t + Float64(Float64(y + z) * 2.0))); else tmp = Float64(Float64(y * 5.0) + Float64(2.0 * Float64(x * Float64(y + z)))); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if ((x <= -1.25e-9) || ~((x <= 5.5e-57))) tmp = x * (t + ((y + z) * 2.0)); else tmp = (y * 5.0) + (2.0 * (x * (y + z))); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[Or[LessEqual[x, -1.25e-9], N[Not[LessEqual[x, 5.5e-57]], $MachinePrecision]], N[(x * N[(t + N[(N[(y + z), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(y * 5.0), $MachinePrecision] + N[(2.0 * N[(x * N[(y + z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -1.25 \cdot 10^{-9} \lor \neg \left(x \leq 5.5 \cdot 10^{-57}\right):\\
\;\;\;\;x \cdot \left(t + \left(y + z\right) \cdot 2\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot 5 + 2 \cdot \left(x \cdot \left(y + z\right)\right)\\
\end{array}
\end{array}
if x < -1.25e-9 or 5.50000000000000011e-57 < x Initial program 100.0%
fma-define100.0%
associate-+l+100.0%
+-commutative100.0%
count-2100.0%
Simplified100.0%
Taylor expanded in x around inf 97.8%
if -1.25e-9 < x < 5.50000000000000011e-57Initial program 99.9%
fma-define99.9%
associate-+l+99.9%
+-commutative99.9%
count-299.9%
Simplified99.9%
Taylor expanded in t around 0 84.3%
Final simplification92.0%
(FPCore (x y z t) :precision binary64 (if (or (<= t -4.4e+39) (not (<= t 9.5e+46))) (+ (* y 5.0) (* x (+ t (+ y y)))) (+ (* y 5.0) (* 2.0 (* x (+ y z))))))
double code(double x, double y, double z, double t) {
double tmp;
if ((t <= -4.4e+39) || !(t <= 9.5e+46)) {
tmp = (y * 5.0) + (x * (t + (y + y)));
} else {
tmp = (y * 5.0) + (2.0 * (x * (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 ((t <= (-4.4d+39)) .or. (.not. (t <= 9.5d+46))) then
tmp = (y * 5.0d0) + (x * (t + (y + y)))
else
tmp = (y * 5.0d0) + (2.0d0 * (x * (y + z)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if ((t <= -4.4e+39) || !(t <= 9.5e+46)) {
tmp = (y * 5.0) + (x * (t + (y + y)));
} else {
tmp = (y * 5.0) + (2.0 * (x * (y + z)));
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if (t <= -4.4e+39) or not (t <= 9.5e+46): tmp = (y * 5.0) + (x * (t + (y + y))) else: tmp = (y * 5.0) + (2.0 * (x * (y + z))) return tmp
function code(x, y, z, t) tmp = 0.0 if ((t <= -4.4e+39) || !(t <= 9.5e+46)) tmp = Float64(Float64(y * 5.0) + Float64(x * Float64(t + Float64(y + y)))); else tmp = Float64(Float64(y * 5.0) + Float64(2.0 * Float64(x * Float64(y + z)))); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if ((t <= -4.4e+39) || ~((t <= 9.5e+46))) tmp = (y * 5.0) + (x * (t + (y + y))); else tmp = (y * 5.0) + (2.0 * (x * (y + z))); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[Or[LessEqual[t, -4.4e+39], N[Not[LessEqual[t, 9.5e+46]], $MachinePrecision]], N[(N[(y * 5.0), $MachinePrecision] + N[(x * N[(t + N[(y + y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(y * 5.0), $MachinePrecision] + N[(2.0 * N[(x * N[(y + z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -4.4 \cdot 10^{+39} \lor \neg \left(t \leq 9.5 \cdot 10^{+46}\right):\\
\;\;\;\;y \cdot 5 + x \cdot \left(t + \left(y + y\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot 5 + 2 \cdot \left(x \cdot \left(y + z\right)\right)\\
\end{array}
\end{array}
if t < -4.4000000000000003e39 or 9.5000000000000008e46 < t Initial program 100.0%
Taylor expanded in y around inf 91.6%
if -4.4000000000000003e39 < t < 9.5000000000000008e46Initial program 99.9%
fma-define99.9%
associate-+l+99.9%
+-commutative99.9%
count-299.9%
Simplified99.9%
Taylor expanded in t around 0 95.7%
Final simplification94.1%
(FPCore (x y z t) :precision binary64 (if (or (<= x -4e-146) (not (<= x 6.8e-136))) (* x (+ t (* (+ y z) 2.0))) (* y 5.0)))
double code(double x, double y, double z, double t) {
double tmp;
if ((x <= -4e-146) || !(x <= 6.8e-136)) {
tmp = x * (t + ((y + z) * 2.0));
} else {
tmp = y * 5.0;
}
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 ((x <= (-4d-146)) .or. (.not. (x <= 6.8d-136))) then
tmp = x * (t + ((y + z) * 2.0d0))
else
tmp = y * 5.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if ((x <= -4e-146) || !(x <= 6.8e-136)) {
tmp = x * (t + ((y + z) * 2.0));
} else {
tmp = y * 5.0;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if (x <= -4e-146) or not (x <= 6.8e-136): tmp = x * (t + ((y + z) * 2.0)) else: tmp = y * 5.0 return tmp
function code(x, y, z, t) tmp = 0.0 if ((x <= -4e-146) || !(x <= 6.8e-136)) tmp = Float64(x * Float64(t + Float64(Float64(y + z) * 2.0))); else tmp = Float64(y * 5.0); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if ((x <= -4e-146) || ~((x <= 6.8e-136))) tmp = x * (t + ((y + z) * 2.0)); else tmp = y * 5.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[Or[LessEqual[x, -4e-146], N[Not[LessEqual[x, 6.8e-136]], $MachinePrecision]], N[(x * N[(t + N[(N[(y + z), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * 5.0), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -4 \cdot 10^{-146} \lor \neg \left(x \leq 6.8 \cdot 10^{-136}\right):\\
\;\;\;\;x \cdot \left(t + \left(y + z\right) \cdot 2\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot 5\\
\end{array}
\end{array}
if x < -4.0000000000000001e-146 or 6.8000000000000001e-136 < x Initial program 100.0%
fma-define100.0%
associate-+l+100.0%
+-commutative100.0%
count-2100.0%
Simplified100.0%
Taylor expanded in x around inf 89.9%
if -4.0000000000000001e-146 < x < 6.8000000000000001e-136Initial program 99.9%
Taylor expanded in x around 0 75.8%
Simplified75.8%
Final simplification85.9%
(FPCore (x y z t) :precision binary64 (if (or (<= x -2e-9) (not (<= x 4.6e-57))) (* x (+ t (* (+ y z) 2.0))) (+ (* y 5.0) (* 2.0 (* x z)))))
double code(double x, double y, double z, double t) {
double tmp;
if ((x <= -2e-9) || !(x <= 4.6e-57)) {
tmp = x * (t + ((y + z) * 2.0));
} else {
tmp = (y * 5.0) + (2.0 * (x * 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 ((x <= (-2d-9)) .or. (.not. (x <= 4.6d-57))) then
tmp = x * (t + ((y + z) * 2.0d0))
else
tmp = (y * 5.0d0) + (2.0d0 * (x * z))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if ((x <= -2e-9) || !(x <= 4.6e-57)) {
tmp = x * (t + ((y + z) * 2.0));
} else {
tmp = (y * 5.0) + (2.0 * (x * z));
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if (x <= -2e-9) or not (x <= 4.6e-57): tmp = x * (t + ((y + z) * 2.0)) else: tmp = (y * 5.0) + (2.0 * (x * z)) return tmp
function code(x, y, z, t) tmp = 0.0 if ((x <= -2e-9) || !(x <= 4.6e-57)) tmp = Float64(x * Float64(t + Float64(Float64(y + z) * 2.0))); else tmp = Float64(Float64(y * 5.0) + Float64(2.0 * Float64(x * z))); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if ((x <= -2e-9) || ~((x <= 4.6e-57))) tmp = x * (t + ((y + z) * 2.0)); else tmp = (y * 5.0) + (2.0 * (x * z)); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[Or[LessEqual[x, -2e-9], N[Not[LessEqual[x, 4.6e-57]], $MachinePrecision]], N[(x * N[(t + N[(N[(y + z), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(y * 5.0), $MachinePrecision] + N[(2.0 * N[(x * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -2 \cdot 10^{-9} \lor \neg \left(x \leq 4.6 \cdot 10^{-57}\right):\\
\;\;\;\;x \cdot \left(t + \left(y + z\right) \cdot 2\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot 5 + 2 \cdot \left(x \cdot z\right)\\
\end{array}
\end{array}
if x < -2.00000000000000012e-9 or 4.6e-57 < x Initial program 100.0%
fma-define100.0%
associate-+l+100.0%
+-commutative100.0%
count-2100.0%
Simplified100.0%
Taylor expanded in x around inf 97.8%
if -2.00000000000000012e-9 < x < 4.6e-57Initial program 99.9%
fma-define99.9%
associate-+l+99.9%
+-commutative99.9%
count-299.9%
Simplified99.9%
Taylor expanded in t around 0 84.3%
Taylor expanded in y around 0 84.2%
Final simplification92.0%
(FPCore (x y z t) :precision binary64 (if (or (<= x -8.5e-13) (not (<= x 5e-57))) (* x (* (+ y z) 2.0)) (* y 5.0)))
double code(double x, double y, double z, double t) {
double tmp;
if ((x <= -8.5e-13) || !(x <= 5e-57)) {
tmp = x * ((y + z) * 2.0);
} else {
tmp = y * 5.0;
}
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 ((x <= (-8.5d-13)) .or. (.not. (x <= 5d-57))) then
tmp = x * ((y + z) * 2.0d0)
else
tmp = y * 5.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if ((x <= -8.5e-13) || !(x <= 5e-57)) {
tmp = x * ((y + z) * 2.0);
} else {
tmp = y * 5.0;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if (x <= -8.5e-13) or not (x <= 5e-57): tmp = x * ((y + z) * 2.0) else: tmp = y * 5.0 return tmp
function code(x, y, z, t) tmp = 0.0 if ((x <= -8.5e-13) || !(x <= 5e-57)) tmp = Float64(x * Float64(Float64(y + z) * 2.0)); else tmp = Float64(y * 5.0); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if ((x <= -8.5e-13) || ~((x <= 5e-57))) tmp = x * ((y + z) * 2.0); else tmp = y * 5.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[Or[LessEqual[x, -8.5e-13], N[Not[LessEqual[x, 5e-57]], $MachinePrecision]], N[(x * N[(N[(y + z), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision], N[(y * 5.0), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -8.5 \cdot 10^{-13} \lor \neg \left(x \leq 5 \cdot 10^{-57}\right):\\
\;\;\;\;x \cdot \left(\left(y + z\right) \cdot 2\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot 5\\
\end{array}
\end{array}
if x < -8.5000000000000001e-13 or 5.0000000000000002e-57 < x Initial program 100.0%
fma-define100.0%
associate-+l+100.0%
+-commutative100.0%
count-2100.0%
Simplified100.0%
Taylor expanded in t around 0 72.3%
Taylor expanded in x around inf 72.3%
Taylor expanded in x around inf 70.3%
if -8.5000000000000001e-13 < x < 5.0000000000000002e-57Initial program 99.9%
Taylor expanded in x around 0 65.4%
Simplified65.4%
Final simplification68.3%
(FPCore (x y z t) :precision binary64 (if (or (<= y -6.8e+54) (not (<= y 52000.0))) (* y (+ 5.0 (* x 2.0))) (* x (+ t (* z 2.0)))))
double code(double x, double y, double z, double t) {
double tmp;
if ((y <= -6.8e+54) || !(y <= 52000.0)) {
tmp = y * (5.0 + (x * 2.0));
} else {
tmp = x * (t + (z * 2.0));
}
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 <= (-6.8d+54)) .or. (.not. (y <= 52000.0d0))) then
tmp = y * (5.0d0 + (x * 2.0d0))
else
tmp = x * (t + (z * 2.0d0))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if ((y <= -6.8e+54) || !(y <= 52000.0)) {
tmp = y * (5.0 + (x * 2.0));
} else {
tmp = x * (t + (z * 2.0));
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if (y <= -6.8e+54) or not (y <= 52000.0): tmp = y * (5.0 + (x * 2.0)) else: tmp = x * (t + (z * 2.0)) return tmp
function code(x, y, z, t) tmp = 0.0 if ((y <= -6.8e+54) || !(y <= 52000.0)) tmp = Float64(y * Float64(5.0 + Float64(x * 2.0))); else tmp = Float64(x * Float64(t + Float64(z * 2.0))); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if ((y <= -6.8e+54) || ~((y <= 52000.0))) tmp = y * (5.0 + (x * 2.0)); else tmp = x * (t + (z * 2.0)); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[Or[LessEqual[y, -6.8e+54], N[Not[LessEqual[y, 52000.0]], $MachinePrecision]], N[(y * N[(5.0 + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(t + N[(z * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -6.8 \cdot 10^{+54} \lor \neg \left(y \leq 52000\right):\\
\;\;\;\;y \cdot \left(5 + x \cdot 2\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(t + z \cdot 2\right)\\
\end{array}
\end{array}
if y < -6.8000000000000001e54 or 52000 < y Initial program 99.9%
Taylor expanded in y around inf 82.2%
if -6.8000000000000001e54 < y < 52000Initial program 99.9%
Taylor expanded in y around 0 78.4%
Final simplification80.0%
(FPCore (x y z t) :precision binary64 (+ (* y 5.0) (* x (+ t (+ y (+ z (+ y z)))))))
double code(double x, double y, double z, double t) {
return (y * 5.0) + (x * (t + (y + (z + (y + z)))));
}
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 = (y * 5.0d0) + (x * (t + (y + (z + (y + z)))))
end function
public static double code(double x, double y, double z, double t) {
return (y * 5.0) + (x * (t + (y + (z + (y + z)))));
}
def code(x, y, z, t): return (y * 5.0) + (x * (t + (y + (z + (y + z)))))
function code(x, y, z, t) return Float64(Float64(y * 5.0) + Float64(x * Float64(t + Float64(y + Float64(z + Float64(y + z)))))) end
function tmp = code(x, y, z, t) tmp = (y * 5.0) + (x * (t + (y + (z + (y + z))))); end
code[x_, y_, z_, t_] := N[(N[(y * 5.0), $MachinePrecision] + N[(x * N[(t + N[(y + N[(z + N[(y + z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
y \cdot 5 + x \cdot \left(t + \left(y + \left(z + \left(y + z\right)\right)\right)\right)
\end{array}
Initial program 99.9%
Final simplification99.9%
(FPCore (x y z t) :precision binary64 (if (or (<= x -1.1e-9) (not (<= x 1.95e-57))) (* x t) (* y 5.0)))
double code(double x, double y, double z, double t) {
double tmp;
if ((x <= -1.1e-9) || !(x <= 1.95e-57)) {
tmp = x * t;
} else {
tmp = y * 5.0;
}
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 ((x <= (-1.1d-9)) .or. (.not. (x <= 1.95d-57))) then
tmp = x * t
else
tmp = y * 5.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if ((x <= -1.1e-9) || !(x <= 1.95e-57)) {
tmp = x * t;
} else {
tmp = y * 5.0;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if (x <= -1.1e-9) or not (x <= 1.95e-57): tmp = x * t else: tmp = y * 5.0 return tmp
function code(x, y, z, t) tmp = 0.0 if ((x <= -1.1e-9) || !(x <= 1.95e-57)) tmp = Float64(x * t); else tmp = Float64(y * 5.0); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if ((x <= -1.1e-9) || ~((x <= 1.95e-57))) tmp = x * t; else tmp = y * 5.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[Or[LessEqual[x, -1.1e-9], N[Not[LessEqual[x, 1.95e-57]], $MachinePrecision]], N[(x * t), $MachinePrecision], N[(y * 5.0), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -1.1 \cdot 10^{-9} \lor \neg \left(x \leq 1.95 \cdot 10^{-57}\right):\\
\;\;\;\;x \cdot t\\
\mathbf{else}:\\
\;\;\;\;y \cdot 5\\
\end{array}
\end{array}
if x < -1.0999999999999999e-9 or 1.95000000000000003e-57 < x Initial program 100.0%
Taylor expanded in t around inf 32.7%
if -1.0999999999999999e-9 < x < 1.95000000000000003e-57Initial program 99.9%
Taylor expanded in x around 0 64.9%
Simplified64.9%
Final simplification46.4%
(FPCore (x y z t) :precision binary64 (* x t))
double code(double x, double y, double z, double t) {
return x * 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 * t
end function
public static double code(double x, double y, double z, double t) {
return x * t;
}
def code(x, y, z, t): return x * t
function code(x, y, z, t) return Float64(x * t) end
function tmp = code(x, y, z, t) tmp = x * t; end
code[x_, y_, z_, t_] := N[(x * t), $MachinePrecision]
\begin{array}{l}
\\
x \cdot t
\end{array}
Initial program 99.9%
Taylor expanded in t around inf 26.4%
Final simplification26.4%
herbie shell --seed 2024077
(FPCore (x y z t)
:name "Graphics.Rendering.Plot.Render.Plot.Legend:renderLegendOutside from plot-0.2.3.4, B"
:precision binary64
(+ (* x (+ (+ (+ (+ y z) z) y) t)) (* y 5.0)))