
(FPCore (x y z t a b c i) :precision binary64 (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return (((x * y) + (z * t)) + (a * b)) + (c * i);
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
code = (((x * y) + (z * t)) + (a * b)) + (c * i)
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return (((x * y) + (z * t)) + (a * b)) + (c * i);
}
def code(x, y, z, t, a, b, c, i): return (((x * y) + (z * t)) + (a * b)) + (c * i)
function code(x, y, z, t, a, b, c, i) return Float64(Float64(Float64(Float64(x * y) + Float64(z * t)) + Float64(a * b)) + Float64(c * i)) end
function tmp = code(x, y, z, t, a, b, c, i) tmp = (((x * y) + (z * t)) + (a * b)) + (c * i); end
code[x_, y_, z_, t_, a_, b_, c_, i_] := N[(N[(N[(N[(x * y), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(\left(x \cdot y + z \cdot t\right) + a \cdot b\right) + c \cdot i
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 11 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b c i) :precision binary64 (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return (((x * y) + (z * t)) + (a * b)) + (c * i);
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
code = (((x * y) + (z * t)) + (a * b)) + (c * i)
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return (((x * y) + (z * t)) + (a * b)) + (c * i);
}
def code(x, y, z, t, a, b, c, i): return (((x * y) + (z * t)) + (a * b)) + (c * i)
function code(x, y, z, t, a, b, c, i) return Float64(Float64(Float64(Float64(x * y) + Float64(z * t)) + Float64(a * b)) + Float64(c * i)) end
function tmp = code(x, y, z, t, a, b, c, i) tmp = (((x * y) + (z * t)) + (a * b)) + (c * i); end
code[x_, y_, z_, t_, a_, b_, c_, i_] := N[(N[(N[(N[(x * y), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(\left(x \cdot y + z \cdot t\right) + a \cdot b\right) + c \cdot i
\end{array}
(FPCore (x y z t a b c i) :precision binary64 (if (<= (+ (+ (* a b) (+ (* x y) (* z t))) (* c i)) INFINITY) (+ (* z t) (+ (* c i) (+ (* x y) (* a b)))) (+ (* z t) (* c i))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((((a * b) + ((x * y) + (z * t))) + (c * i)) <= ((double) INFINITY)) {
tmp = (z * t) + ((c * i) + ((x * y) + (a * b)));
} else {
tmp = (z * t) + (c * i);
}
return tmp;
}
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((((a * b) + ((x * y) + (z * t))) + (c * i)) <= Double.POSITIVE_INFINITY) {
tmp = (z * t) + ((c * i) + ((x * y) + (a * b)));
} else {
tmp = (z * t) + (c * i);
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (((a * b) + ((x * y) + (z * t))) + (c * i)) <= math.inf: tmp = (z * t) + ((c * i) + ((x * y) + (a * b))) else: tmp = (z * t) + (c * i) return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if (Float64(Float64(Float64(a * b) + Float64(Float64(x * y) + Float64(z * t))) + Float64(c * i)) <= Inf) tmp = Float64(Float64(z * t) + Float64(Float64(c * i) + Float64(Float64(x * y) + Float64(a * b)))); else tmp = Float64(Float64(z * t) + Float64(c * i)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((((a * b) + ((x * y) + (z * t))) + (c * i)) <= Inf) tmp = (z * t) + ((c * i) + ((x * y) + (a * b))); else tmp = (z * t) + (c * i); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[LessEqual[N[(N[(N[(a * b), $MachinePrecision] + N[(N[(x * y), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision], Infinity], N[(N[(z * t), $MachinePrecision] + N[(N[(c * i), $MachinePrecision] + N[(N[(x * y), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(z * t), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;\left(a \cdot b + \left(x \cdot y + z \cdot t\right)\right) + c \cdot i \leq \infty:\\
\;\;\;\;z \cdot t + \left(c \cdot i + \left(x \cdot y + a \cdot b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;z \cdot t + c \cdot i\\
\end{array}
\end{array}
if (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) < +inf.0Initial program 100.0%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64100.0%
Simplified100.0%
if +inf.0 < (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) Initial program 0.0%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f640.0%
Simplified0.0%
Taylor expanded in c around inf
*-lowering-*.f6450.6%
Simplified50.6%
Final simplification98.0%
(FPCore (x y z t a b c i)
:precision binary64
(if (<= (* z t) -2e+172)
(+ (* z t) (* c i))
(if (<= (* z t) -1e-274)
(+ (* x y) (* a b))
(if (<= (* z t) 4e-166)
(+ (* a b) (* c i))
(if (<= (* z t) 4e+91) (+ (* x y) (* c i)) (+ (* x y) (* z t)))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((z * t) <= -2e+172) {
tmp = (z * t) + (c * i);
} else if ((z * t) <= -1e-274) {
tmp = (x * y) + (a * b);
} else if ((z * t) <= 4e-166) {
tmp = (a * b) + (c * i);
} else if ((z * t) <= 4e+91) {
tmp = (x * y) + (c * i);
} else {
tmp = (x * y) + (z * t);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((z * t) <= (-2d+172)) then
tmp = (z * t) + (c * i)
else if ((z * t) <= (-1d-274)) then
tmp = (x * y) + (a * b)
else if ((z * t) <= 4d-166) then
tmp = (a * b) + (c * i)
else if ((z * t) <= 4d+91) then
tmp = (x * y) + (c * i)
else
tmp = (x * y) + (z * t)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((z * t) <= -2e+172) {
tmp = (z * t) + (c * i);
} else if ((z * t) <= -1e-274) {
tmp = (x * y) + (a * b);
} else if ((z * t) <= 4e-166) {
tmp = (a * b) + (c * i);
} else if ((z * t) <= 4e+91) {
tmp = (x * y) + (c * i);
} else {
tmp = (x * y) + (z * t);
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (z * t) <= -2e+172: tmp = (z * t) + (c * i) elif (z * t) <= -1e-274: tmp = (x * y) + (a * b) elif (z * t) <= 4e-166: tmp = (a * b) + (c * i) elif (z * t) <= 4e+91: tmp = (x * y) + (c * i) else: tmp = (x * y) + (z * t) return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if (Float64(z * t) <= -2e+172) tmp = Float64(Float64(z * t) + Float64(c * i)); elseif (Float64(z * t) <= -1e-274) tmp = Float64(Float64(x * y) + Float64(a * b)); elseif (Float64(z * t) <= 4e-166) tmp = Float64(Float64(a * b) + Float64(c * i)); elseif (Float64(z * t) <= 4e+91) tmp = Float64(Float64(x * y) + Float64(c * i)); else tmp = Float64(Float64(x * y) + Float64(z * t)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((z * t) <= -2e+172) tmp = (z * t) + (c * i); elseif ((z * t) <= -1e-274) tmp = (x * y) + (a * b); elseif ((z * t) <= 4e-166) tmp = (a * b) + (c * i); elseif ((z * t) <= 4e+91) tmp = (x * y) + (c * i); else tmp = (x * y) + (z * t); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[LessEqual[N[(z * t), $MachinePrecision], -2e+172], N[(N[(z * t), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(z * t), $MachinePrecision], -1e-274], N[(N[(x * y), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(z * t), $MachinePrecision], 4e-166], N[(N[(a * b), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(z * t), $MachinePrecision], 4e+91], N[(N[(x * y), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision], N[(N[(x * y), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \cdot t \leq -2 \cdot 10^{+172}:\\
\;\;\;\;z \cdot t + c \cdot i\\
\mathbf{elif}\;z \cdot t \leq -1 \cdot 10^{-274}:\\
\;\;\;\;x \cdot y + a \cdot b\\
\mathbf{elif}\;z \cdot t \leq 4 \cdot 10^{-166}:\\
\;\;\;\;a \cdot b + c \cdot i\\
\mathbf{elif}\;z \cdot t \leq 4 \cdot 10^{+91}:\\
\;\;\;\;x \cdot y + c \cdot i\\
\mathbf{else}:\\
\;\;\;\;x \cdot y + z \cdot t\\
\end{array}
\end{array}
if (*.f64 z t) < -2.0000000000000002e172Initial program 83.9%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6483.9%
Simplified83.9%
Taylor expanded in c around inf
*-lowering-*.f6487.5%
Simplified87.5%
if -2.0000000000000002e172 < (*.f64 z t) < -9.99999999999999966e-275Initial program 97.1%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6497.1%
Simplified97.1%
Taylor expanded in z around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6484.6%
Simplified84.6%
Taylor expanded in c around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6469.6%
Simplified69.6%
if -9.99999999999999966e-275 < (*.f64 z t) < 4.00000000000000016e-166Initial program 98.3%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6498.3%
Simplified98.3%
Taylor expanded in z around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6498.3%
Simplified98.3%
Taylor expanded in x around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6472.7%
Simplified72.7%
if 4.00000000000000016e-166 < (*.f64 z t) < 4.00000000000000032e91Initial program 97.8%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6497.8%
Simplified97.8%
Taylor expanded in z around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6495.8%
Simplified95.8%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6473.5%
Simplified73.5%
if 4.00000000000000032e91 < (*.f64 z t) Initial program 97.9%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6497.9%
Simplified97.9%
Taylor expanded in x around inf
*-lowering-*.f6482.0%
Simplified82.0%
Final simplification75.6%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ (* z t) (* c i))))
(if (<= (* z t) -2e+172)
t_1
(if (<= (* z t) -1e-274)
(+ (* x y) (* a b))
(if (<= (* z t) 4e-166)
(+ (* a b) (* c i))
(if (<= (* z t) 4e+91) (+ (* x y) (* c i)) t_1))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = (z * t) + (c * i);
double tmp;
if ((z * t) <= -2e+172) {
tmp = t_1;
} else if ((z * t) <= -1e-274) {
tmp = (x * y) + (a * b);
} else if ((z * t) <= 4e-166) {
tmp = (a * b) + (c * i);
} else if ((z * t) <= 4e+91) {
tmp = (x * y) + (c * i);
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: t_1
real(8) :: tmp
t_1 = (z * t) + (c * i)
if ((z * t) <= (-2d+172)) then
tmp = t_1
else if ((z * t) <= (-1d-274)) then
tmp = (x * y) + (a * b)
else if ((z * t) <= 4d-166) then
tmp = (a * b) + (c * i)
else if ((z * t) <= 4d+91) then
tmp = (x * y) + (c * i)
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = (z * t) + (c * i);
double tmp;
if ((z * t) <= -2e+172) {
tmp = t_1;
} else if ((z * t) <= -1e-274) {
tmp = (x * y) + (a * b);
} else if ((z * t) <= 4e-166) {
tmp = (a * b) + (c * i);
} else if ((z * t) <= 4e+91) {
tmp = (x * y) + (c * i);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): t_1 = (z * t) + (c * i) tmp = 0 if (z * t) <= -2e+172: tmp = t_1 elif (z * t) <= -1e-274: tmp = (x * y) + (a * b) elif (z * t) <= 4e-166: tmp = (a * b) + (c * i) elif (z * t) <= 4e+91: tmp = (x * y) + (c * i) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i) t_1 = Float64(Float64(z * t) + Float64(c * i)) tmp = 0.0 if (Float64(z * t) <= -2e+172) tmp = t_1; elseif (Float64(z * t) <= -1e-274) tmp = Float64(Float64(x * y) + Float64(a * b)); elseif (Float64(z * t) <= 4e-166) tmp = Float64(Float64(a * b) + Float64(c * i)); elseif (Float64(z * t) <= 4e+91) tmp = Float64(Float64(x * y) + Float64(c * i)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) t_1 = (z * t) + (c * i); tmp = 0.0; if ((z * t) <= -2e+172) tmp = t_1; elseif ((z * t) <= -1e-274) tmp = (x * y) + (a * b); elseif ((z * t) <= 4e-166) tmp = (a * b) + (c * i); elseif ((z * t) <= 4e+91) tmp = (x * y) + (c * i); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(N[(z * t), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(z * t), $MachinePrecision], -2e+172], t$95$1, If[LessEqual[N[(z * t), $MachinePrecision], -1e-274], N[(N[(x * y), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(z * t), $MachinePrecision], 4e-166], N[(N[(a * b), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(z * t), $MachinePrecision], 4e+91], N[(N[(x * y), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := z \cdot t + c \cdot i\\
\mathbf{if}\;z \cdot t \leq -2 \cdot 10^{+172}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \cdot t \leq -1 \cdot 10^{-274}:\\
\;\;\;\;x \cdot y + a \cdot b\\
\mathbf{elif}\;z \cdot t \leq 4 \cdot 10^{-166}:\\
\;\;\;\;a \cdot b + c \cdot i\\
\mathbf{elif}\;z \cdot t \leq 4 \cdot 10^{+91}:\\
\;\;\;\;x \cdot y + c \cdot i\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if (*.f64 z t) < -2.0000000000000002e172 or 4.00000000000000032e91 < (*.f64 z t) Initial program 92.5%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6492.5%
Simplified92.5%
Taylor expanded in c around inf
*-lowering-*.f6482.4%
Simplified82.4%
if -2.0000000000000002e172 < (*.f64 z t) < -9.99999999999999966e-275Initial program 97.1%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6497.1%
Simplified97.1%
Taylor expanded in z around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6484.6%
Simplified84.6%
Taylor expanded in c around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6469.6%
Simplified69.6%
if -9.99999999999999966e-275 < (*.f64 z t) < 4.00000000000000016e-166Initial program 98.3%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6498.3%
Simplified98.3%
Taylor expanded in z around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6498.3%
Simplified98.3%
Taylor expanded in x around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6472.7%
Simplified72.7%
if 4.00000000000000016e-166 < (*.f64 z t) < 4.00000000000000032e91Initial program 97.8%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6497.8%
Simplified97.8%
Taylor expanded in z around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6495.8%
Simplified95.8%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6473.5%
Simplified73.5%
Final simplification75.1%
(FPCore (x y z t a b c i)
:precision binary64
(if (<= (* z t) -2e+184)
(+ (* z t) (* c i))
(if (<= (* z t) 7.9e+105)
(+ (* a b) (+ (* x y) (* c i)))
(+ (* x y) (* z t)))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((z * t) <= -2e+184) {
tmp = (z * t) + (c * i);
} else if ((z * t) <= 7.9e+105) {
tmp = (a * b) + ((x * y) + (c * i));
} else {
tmp = (x * y) + (z * t);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((z * t) <= (-2d+184)) then
tmp = (z * t) + (c * i)
else if ((z * t) <= 7.9d+105) then
tmp = (a * b) + ((x * y) + (c * i))
else
tmp = (x * y) + (z * t)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((z * t) <= -2e+184) {
tmp = (z * t) + (c * i);
} else if ((z * t) <= 7.9e+105) {
tmp = (a * b) + ((x * y) + (c * i));
} else {
tmp = (x * y) + (z * t);
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (z * t) <= -2e+184: tmp = (z * t) + (c * i) elif (z * t) <= 7.9e+105: tmp = (a * b) + ((x * y) + (c * i)) else: tmp = (x * y) + (z * t) return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if (Float64(z * t) <= -2e+184) tmp = Float64(Float64(z * t) + Float64(c * i)); elseif (Float64(z * t) <= 7.9e+105) tmp = Float64(Float64(a * b) + Float64(Float64(x * y) + Float64(c * i))); else tmp = Float64(Float64(x * y) + Float64(z * t)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((z * t) <= -2e+184) tmp = (z * t) + (c * i); elseif ((z * t) <= 7.9e+105) tmp = (a * b) + ((x * y) + (c * i)); else tmp = (x * y) + (z * t); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[LessEqual[N[(z * t), $MachinePrecision], -2e+184], N[(N[(z * t), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(z * t), $MachinePrecision], 7.9e+105], N[(N[(a * b), $MachinePrecision] + N[(N[(x * y), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x * y), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \cdot t \leq -2 \cdot 10^{+184}:\\
\;\;\;\;z \cdot t + c \cdot i\\
\mathbf{elif}\;z \cdot t \leq 7.9 \cdot 10^{+105}:\\
\;\;\;\;a \cdot b + \left(x \cdot y + c \cdot i\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot y + z \cdot t\\
\end{array}
\end{array}
if (*.f64 z t) < -2.00000000000000003e184Initial program 83.3%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6483.3%
Simplified83.3%
Taylor expanded in c around inf
*-lowering-*.f6487.1%
Simplified87.1%
if -2.00000000000000003e184 < (*.f64 z t) < 7.9e105Initial program 97.2%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6497.2%
Simplified97.2%
Taylor expanded in z around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6491.4%
Simplified91.4%
if 7.9e105 < (*.f64 z t) Initial program 100.0%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64100.0%
Simplified100.0%
Taylor expanded in x around inf
*-lowering-*.f6486.7%
Simplified86.7%
Final simplification90.1%
(FPCore (x y z t a b c i)
:precision binary64
(if (<= b -3.4e-9)
(* a b)
(if (<= b 1.25e-225)
(* x y)
(if (<= b 3.6e-152) (* c i) (if (<= b 1.2e+105) (* z t) (* a b))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if (b <= -3.4e-9) {
tmp = a * b;
} else if (b <= 1.25e-225) {
tmp = x * y;
} else if (b <= 3.6e-152) {
tmp = c * i;
} else if (b <= 1.2e+105) {
tmp = z * t;
} else {
tmp = a * b;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if (b <= (-3.4d-9)) then
tmp = a * b
else if (b <= 1.25d-225) then
tmp = x * y
else if (b <= 3.6d-152) then
tmp = c * i
else if (b <= 1.2d+105) then
tmp = z * t
else
tmp = a * b
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if (b <= -3.4e-9) {
tmp = a * b;
} else if (b <= 1.25e-225) {
tmp = x * y;
} else if (b <= 3.6e-152) {
tmp = c * i;
} else if (b <= 1.2e+105) {
tmp = z * t;
} else {
tmp = a * b;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if b <= -3.4e-9: tmp = a * b elif b <= 1.25e-225: tmp = x * y elif b <= 3.6e-152: tmp = c * i elif b <= 1.2e+105: tmp = z * t else: tmp = a * b return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if (b <= -3.4e-9) tmp = Float64(a * b); elseif (b <= 1.25e-225) tmp = Float64(x * y); elseif (b <= 3.6e-152) tmp = Float64(c * i); elseif (b <= 1.2e+105) tmp = Float64(z * t); else tmp = Float64(a * b); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if (b <= -3.4e-9) tmp = a * b; elseif (b <= 1.25e-225) tmp = x * y; elseif (b <= 3.6e-152) tmp = c * i; elseif (b <= 1.2e+105) tmp = z * t; else tmp = a * b; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[LessEqual[b, -3.4e-9], N[(a * b), $MachinePrecision], If[LessEqual[b, 1.25e-225], N[(x * y), $MachinePrecision], If[LessEqual[b, 3.6e-152], N[(c * i), $MachinePrecision], If[LessEqual[b, 1.2e+105], N[(z * t), $MachinePrecision], N[(a * b), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -3.4 \cdot 10^{-9}:\\
\;\;\;\;a \cdot b\\
\mathbf{elif}\;b \leq 1.25 \cdot 10^{-225}:\\
\;\;\;\;x \cdot y\\
\mathbf{elif}\;b \leq 3.6 \cdot 10^{-152}:\\
\;\;\;\;c \cdot i\\
\mathbf{elif}\;b \leq 1.2 \cdot 10^{+105}:\\
\;\;\;\;z \cdot t\\
\mathbf{else}:\\
\;\;\;\;a \cdot b\\
\end{array}
\end{array}
if b < -3.3999999999999998e-9 or 1.19999999999999987e105 < b Initial program 92.7%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6492.7%
Simplified92.7%
Taylor expanded in a around inf
*-lowering-*.f6443.6%
Simplified43.6%
if -3.3999999999999998e-9 < b < 1.25e-225Initial program 98.7%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6498.7%
Simplified98.7%
Taylor expanded in x around inf
*-lowering-*.f6438.6%
Simplified38.6%
if 1.25e-225 < b < 3.6e-152Initial program 92.3%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6492.3%
Simplified92.3%
Taylor expanded in c around inf
*-lowering-*.f6447.6%
Simplified47.6%
if 3.6e-152 < b < 1.19999999999999987e105Initial program 100.0%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64100.0%
Simplified100.0%
Taylor expanded in z around inf
*-lowering-*.f6443.9%
Simplified43.9%
Final simplification42.4%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ (* x y) (* a b))))
(if (<= (* a b) -5.2e+31)
t_1
(if (<= (* a b) 3.55e+72) (+ (* x y) (* c i)) t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = (x * y) + (a * b);
double tmp;
if ((a * b) <= -5.2e+31) {
tmp = t_1;
} else if ((a * b) <= 3.55e+72) {
tmp = (x * y) + (c * i);
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: t_1
real(8) :: tmp
t_1 = (x * y) + (a * b)
if ((a * b) <= (-5.2d+31)) then
tmp = t_1
else if ((a * b) <= 3.55d+72) then
tmp = (x * y) + (c * i)
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = (x * y) + (a * b);
double tmp;
if ((a * b) <= -5.2e+31) {
tmp = t_1;
} else if ((a * b) <= 3.55e+72) {
tmp = (x * y) + (c * i);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): t_1 = (x * y) + (a * b) tmp = 0 if (a * b) <= -5.2e+31: tmp = t_1 elif (a * b) <= 3.55e+72: tmp = (x * y) + (c * i) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i) t_1 = Float64(Float64(x * y) + Float64(a * b)) tmp = 0.0 if (Float64(a * b) <= -5.2e+31) tmp = t_1; elseif (Float64(a * b) <= 3.55e+72) tmp = Float64(Float64(x * y) + Float64(c * i)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) t_1 = (x * y) + (a * b); tmp = 0.0; if ((a * b) <= -5.2e+31) tmp = t_1; elseif ((a * b) <= 3.55e+72) tmp = (x * y) + (c * i); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(N[(x * y), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(a * b), $MachinePrecision], -5.2e+31], t$95$1, If[LessEqual[N[(a * b), $MachinePrecision], 3.55e+72], N[(N[(x * y), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot y + a \cdot b\\
\mathbf{if}\;a \cdot b \leq -5.2 \cdot 10^{+31}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \cdot b \leq 3.55 \cdot 10^{+72}:\\
\;\;\;\;x \cdot y + c \cdot i\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if (*.f64 a b) < -5.2e31 or 3.5499999999999996e72 < (*.f64 a b) Initial program 94.3%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6494.3%
Simplified94.3%
Taylor expanded in z around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6480.4%
Simplified80.4%
Taylor expanded in c around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6473.9%
Simplified73.9%
if -5.2e31 < (*.f64 a b) < 3.5499999999999996e72Initial program 97.3%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6497.3%
Simplified97.3%
Taylor expanded in z around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6467.0%
Simplified67.0%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6463.5%
Simplified63.5%
Final simplification67.8%
(FPCore (x y z t a b c i) :precision binary64 (if (<= (* c i) -1.12e+179) (* c i) (if (<= (* c i) 3.3e+108) (+ (* x y) (* a b)) (+ (* a b) (* c i)))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((c * i) <= -1.12e+179) {
tmp = c * i;
} else if ((c * i) <= 3.3e+108) {
tmp = (x * y) + (a * b);
} else {
tmp = (a * b) + (c * i);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((c * i) <= (-1.12d+179)) then
tmp = c * i
else if ((c * i) <= 3.3d+108) then
tmp = (x * y) + (a * b)
else
tmp = (a * b) + (c * i)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((c * i) <= -1.12e+179) {
tmp = c * i;
} else if ((c * i) <= 3.3e+108) {
tmp = (x * y) + (a * b);
} else {
tmp = (a * b) + (c * i);
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (c * i) <= -1.12e+179: tmp = c * i elif (c * i) <= 3.3e+108: tmp = (x * y) + (a * b) else: tmp = (a * b) + (c * i) return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if (Float64(c * i) <= -1.12e+179) tmp = Float64(c * i); elseif (Float64(c * i) <= 3.3e+108) tmp = Float64(Float64(x * y) + Float64(a * b)); else tmp = Float64(Float64(a * b) + Float64(c * i)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((c * i) <= -1.12e+179) tmp = c * i; elseif ((c * i) <= 3.3e+108) tmp = (x * y) + (a * b); else tmp = (a * b) + (c * i); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[LessEqual[N[(c * i), $MachinePrecision], -1.12e+179], N[(c * i), $MachinePrecision], If[LessEqual[N[(c * i), $MachinePrecision], 3.3e+108], N[(N[(x * y), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision], N[(N[(a * b), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;c \cdot i \leq -1.12 \cdot 10^{+179}:\\
\;\;\;\;c \cdot i\\
\mathbf{elif}\;c \cdot i \leq 3.3 \cdot 10^{+108}:\\
\;\;\;\;x \cdot y + a \cdot b\\
\mathbf{else}:\\
\;\;\;\;a \cdot b + c \cdot i\\
\end{array}
\end{array}
if (*.f64 c i) < -1.11999999999999997e179Initial program 90.3%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6490.3%
Simplified90.3%
Taylor expanded in c around inf
*-lowering-*.f6481.7%
Simplified81.7%
if -1.11999999999999997e179 < (*.f64 c i) < 3.30000000000000019e108Initial program 96.8%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6496.8%
Simplified96.8%
Taylor expanded in z around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6473.0%
Simplified73.0%
Taylor expanded in c around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6465.0%
Simplified65.0%
if 3.30000000000000019e108 < (*.f64 c i) Initial program 97.3%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6497.3%
Simplified97.3%
Taylor expanded in z around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6466.2%
Simplified66.2%
Taylor expanded in x around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6458.5%
Simplified58.5%
Final simplification66.1%
(FPCore (x y z t a b c i) :precision binary64 (if (<= (* x y) -5e+160) (* x y) (if (<= (* x y) 5e+135) (+ (* a b) (* c i)) (* x y))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((x * y) <= -5e+160) {
tmp = x * y;
} else if ((x * y) <= 5e+135) {
tmp = (a * b) + (c * i);
} else {
tmp = x * y;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((x * y) <= (-5d+160)) then
tmp = x * y
else if ((x * y) <= 5d+135) then
tmp = (a * b) + (c * i)
else
tmp = x * y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((x * y) <= -5e+160) {
tmp = x * y;
} else if ((x * y) <= 5e+135) {
tmp = (a * b) + (c * i);
} else {
tmp = x * y;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (x * y) <= -5e+160: tmp = x * y elif (x * y) <= 5e+135: tmp = (a * b) + (c * i) else: tmp = x * y return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if (Float64(x * y) <= -5e+160) tmp = Float64(x * y); elseif (Float64(x * y) <= 5e+135) tmp = Float64(Float64(a * b) + Float64(c * i)); else tmp = Float64(x * y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((x * y) <= -5e+160) tmp = x * y; elseif ((x * y) <= 5e+135) tmp = (a * b) + (c * i); else tmp = x * y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[LessEqual[N[(x * y), $MachinePrecision], -5e+160], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 5e+135], N[(N[(a * b), $MachinePrecision] + N[(c * i), $MachinePrecision]), $MachinePrecision], N[(x * y), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \cdot y \leq -5 \cdot 10^{+160}:\\
\;\;\;\;x \cdot y\\
\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+135}:\\
\;\;\;\;a \cdot b + c \cdot i\\
\mathbf{else}:\\
\;\;\;\;x \cdot y\\
\end{array}
\end{array}
if (*.f64 x y) < -5.0000000000000002e160 or 5.00000000000000029e135 < (*.f64 x y) Initial program 87.8%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6487.8%
Simplified87.8%
Taylor expanded in x around inf
*-lowering-*.f6473.3%
Simplified73.3%
if -5.0000000000000002e160 < (*.f64 x y) < 5.00000000000000029e135Initial program 99.4%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6499.4%
Simplified99.4%
Taylor expanded in z around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6469.6%
Simplified69.6%
Taylor expanded in x around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6459.9%
Simplified59.9%
(FPCore (x y z t a b c i) :precision binary64 (if (<= (* a b) -1e+101) (* a b) (if (<= (* a b) 6.4e+142) (* z t) (* a b))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((a * b) <= -1e+101) {
tmp = a * b;
} else if ((a * b) <= 6.4e+142) {
tmp = z * t;
} else {
tmp = a * b;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((a * b) <= (-1d+101)) then
tmp = a * b
else if ((a * b) <= 6.4d+142) then
tmp = z * t
else
tmp = a * b
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((a * b) <= -1e+101) {
tmp = a * b;
} else if ((a * b) <= 6.4e+142) {
tmp = z * t;
} else {
tmp = a * b;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (a * b) <= -1e+101: tmp = a * b elif (a * b) <= 6.4e+142: tmp = z * t else: tmp = a * b return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if (Float64(a * b) <= -1e+101) tmp = Float64(a * b); elseif (Float64(a * b) <= 6.4e+142) tmp = Float64(z * t); else tmp = Float64(a * b); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((a * b) <= -1e+101) tmp = a * b; elseif ((a * b) <= 6.4e+142) tmp = z * t; else tmp = a * b; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[LessEqual[N[(a * b), $MachinePrecision], -1e+101], N[(a * b), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 6.4e+142], N[(z * t), $MachinePrecision], N[(a * b), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \cdot b \leq -1 \cdot 10^{+101}:\\
\;\;\;\;a \cdot b\\
\mathbf{elif}\;a \cdot b \leq 6.4 \cdot 10^{+142}:\\
\;\;\;\;z \cdot t\\
\mathbf{else}:\\
\;\;\;\;a \cdot b\\
\end{array}
\end{array}
if (*.f64 a b) < -9.9999999999999998e100 or 6.40000000000000011e142 < (*.f64 a b) Initial program 92.6%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6492.6%
Simplified92.6%
Taylor expanded in a around inf
*-lowering-*.f6468.7%
Simplified68.7%
if -9.9999999999999998e100 < (*.f64 a b) < 6.40000000000000011e142Initial program 97.7%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6497.7%
Simplified97.7%
Taylor expanded in z around inf
*-lowering-*.f6436.3%
Simplified36.3%
Final simplification46.5%
(FPCore (x y z t a b c i) :precision binary64 (if (<= (* a b) -3.5e+31) (* a b) (if (<= (* a b) 1.3e+109) (* c i) (* a b))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((a * b) <= -3.5e+31) {
tmp = a * b;
} else if ((a * b) <= 1.3e+109) {
tmp = c * i;
} else {
tmp = a * b;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((a * b) <= (-3.5d+31)) then
tmp = a * b
else if ((a * b) <= 1.3d+109) then
tmp = c * i
else
tmp = a * b
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((a * b) <= -3.5e+31) {
tmp = a * b;
} else if ((a * b) <= 1.3e+109) {
tmp = c * i;
} else {
tmp = a * b;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (a * b) <= -3.5e+31: tmp = a * b elif (a * b) <= 1.3e+109: tmp = c * i else: tmp = a * b return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if (Float64(a * b) <= -3.5e+31) tmp = Float64(a * b); elseif (Float64(a * b) <= 1.3e+109) tmp = Float64(c * i); else tmp = Float64(a * b); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((a * b) <= -3.5e+31) tmp = a * b; elseif ((a * b) <= 1.3e+109) tmp = c * i; else tmp = a * b; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[LessEqual[N[(a * b), $MachinePrecision], -3.5e+31], N[(a * b), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 1.3e+109], N[(c * i), $MachinePrecision], N[(a * b), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \cdot b \leq -3.5 \cdot 10^{+31}:\\
\;\;\;\;a \cdot b\\
\mathbf{elif}\;a \cdot b \leq 1.3 \cdot 10^{+109}:\\
\;\;\;\;c \cdot i\\
\mathbf{else}:\\
\;\;\;\;a \cdot b\\
\end{array}
\end{array}
if (*.f64 a b) < -3.5e31 or 1.2999999999999999e109 < (*.f64 a b) Initial program 94.0%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6494.0%
Simplified94.0%
Taylor expanded in a around inf
*-lowering-*.f6459.3%
Simplified59.3%
if -3.5e31 < (*.f64 a b) < 1.2999999999999999e109Initial program 97.4%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6497.4%
Simplified97.4%
Taylor expanded in c around inf
*-lowering-*.f6433.0%
Simplified33.0%
(FPCore (x y z t a b c i) :precision binary64 (* a b))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return a * b;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
code = a * b
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return a * b;
}
def code(x, y, z, t, a, b, c, i): return a * b
function code(x, y, z, t, a, b, c, i) return Float64(a * b) end
function tmp = code(x, y, z, t, a, b, c, i) tmp = a * b; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := N[(a * b), $MachinePrecision]
\begin{array}{l}
\\
a \cdot b
\end{array}
Initial program 96.1%
associate-+l+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6496.1%
Simplified96.1%
Taylor expanded in a around inf
*-lowering-*.f6426.5%
Simplified26.5%
herbie shell --seed 2024152
(FPCore (x y z t a b c i)
:name "Linear.V4:$cdot from linear-1.19.1.3, C"
:precision binary64
(+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)))