
(FPCore (x y z t a b) :precision binary64 (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)))
double code(double x, double y, double z, double t, double a, double b) {
return ((x + (y * z)) + (t * a)) + ((a * z) * b);
}
real(8) function code(x, y, z, t, a, b)
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
code = ((x + (y * z)) + (t * a)) + ((a * z) * b)
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return ((x + (y * z)) + (t * a)) + ((a * z) * b);
}
def code(x, y, z, t, a, b): return ((x + (y * z)) + (t * a)) + ((a * z) * b)
function code(x, y, z, t, a, b) return Float64(Float64(Float64(x + Float64(y * z)) + Float64(t * a)) + Float64(Float64(a * z) * b)) end
function tmp = code(x, y, z, t, a, b) tmp = ((x + (y * z)) + (t * a)) + ((a * z) * b); end
code[x_, y_, z_, t_, a_, b_] := N[(N[(N[(x + N[(y * z), $MachinePrecision]), $MachinePrecision] + N[(t * a), $MachinePrecision]), $MachinePrecision] + N[(N[(a * z), $MachinePrecision] * b), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(\left(x + y \cdot z\right) + t \cdot a\right) + \left(a \cdot z\right) \cdot b
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 16 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b) :precision binary64 (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)))
double code(double x, double y, double z, double t, double a, double b) {
return ((x + (y * z)) + (t * a)) + ((a * z) * b);
}
real(8) function code(x, y, z, t, a, b)
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
code = ((x + (y * z)) + (t * a)) + ((a * z) * b)
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return ((x + (y * z)) + (t * a)) + ((a * z) * b);
}
def code(x, y, z, t, a, b): return ((x + (y * z)) + (t * a)) + ((a * z) * b)
function code(x, y, z, t, a, b) return Float64(Float64(Float64(x + Float64(y * z)) + Float64(t * a)) + Float64(Float64(a * z) * b)) end
function tmp = code(x, y, z, t, a, b) tmp = ((x + (y * z)) + (t * a)) + ((a * z) * b); end
code[x_, y_, z_, t_, a_, b_] := N[(N[(N[(x + N[(y * z), $MachinePrecision]), $MachinePrecision] + N[(t * a), $MachinePrecision]), $MachinePrecision] + N[(N[(a * z), $MachinePrecision] * b), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(\left(x + y \cdot z\right) + t \cdot a\right) + \left(a \cdot z\right) \cdot b
\end{array}
(FPCore (x y z t a b) :precision binary64 (if (or (<= z -2e+30) (not (<= z 8e+55))) (* z (+ y (+ (/ x z) (* a (+ b (/ t z)))))) (+ (fma y z x) (* a (+ t (* z b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -2e+30) || !(z <= 8e+55)) {
tmp = z * (y + ((x / z) + (a * (b + (t / z)))));
} else {
tmp = fma(y, z, x) + (a * (t + (z * b)));
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -2e+30) || !(z <= 8e+55)) tmp = Float64(z * Float64(y + Float64(Float64(x / z) + Float64(a * Float64(b + Float64(t / z)))))); else tmp = Float64(fma(y, z, x) + Float64(a * Float64(t + Float64(z * b)))); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -2e+30], N[Not[LessEqual[z, 8e+55]], $MachinePrecision]], N[(z * N[(y + N[(N[(x / z), $MachinePrecision] + N[(a * N[(b + N[(t / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(y * z + x), $MachinePrecision] + N[(a * N[(t + N[(z * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -2 \cdot 10^{+30} \lor \neg \left(z \leq 8 \cdot 10^{+55}\right):\\
\;\;\;\;z \cdot \left(y + \left(\frac{x}{z} + a \cdot \left(b + \frac{t}{z}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(y, z, x\right) + a \cdot \left(t + z \cdot b\right)\\
\end{array}
\end{array}
if z < -2e30 or 8.00000000000000008e55 < z Initial program 84.8%
associate-+l+84.8%
associate-*l*77.1%
Simplified77.1%
Taylor expanded in z around inf 94.5%
+-commutative94.5%
associate-+l+94.5%
+-commutative94.5%
associate-/l*98.9%
distribute-lft-out99.8%
Simplified99.8%
if -2e30 < z < 8.00000000000000008e55Initial program 98.6%
associate-+l+98.6%
+-commutative98.6%
fma-define98.6%
associate-*l*99.3%
*-commutative99.3%
*-commutative99.3%
distribute-rgt-out100.0%
*-commutative100.0%
Simplified100.0%
Final simplification99.9%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (* z b))))
(if (<= a -5.5e+166)
t_1
(if (<= a -0.000135)
(* a t)
(if (<= a -2.5e-117)
x
(if (<= a 2.6e-308)
(* z y)
(if (<= a 4.6e-62)
x
(if (<= a 4100000000000.0)
(* z y)
(if (<= a 1.5e+171) t_1 (* a t))))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (z * b);
double tmp;
if (a <= -5.5e+166) {
tmp = t_1;
} else if (a <= -0.000135) {
tmp = a * t;
} else if (a <= -2.5e-117) {
tmp = x;
} else if (a <= 2.6e-308) {
tmp = z * y;
} else if (a <= 4.6e-62) {
tmp = x;
} else if (a <= 4100000000000.0) {
tmp = z * y;
} else if (a <= 1.5e+171) {
tmp = t_1;
} else {
tmp = a * t;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: t_1
real(8) :: tmp
t_1 = a * (z * b)
if (a <= (-5.5d+166)) then
tmp = t_1
else if (a <= (-0.000135d0)) then
tmp = a * t
else if (a <= (-2.5d-117)) then
tmp = x
else if (a <= 2.6d-308) then
tmp = z * y
else if (a <= 4.6d-62) then
tmp = x
else if (a <= 4100000000000.0d0) then
tmp = z * y
else if (a <= 1.5d+171) then
tmp = t_1
else
tmp = a * t
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (z * b);
double tmp;
if (a <= -5.5e+166) {
tmp = t_1;
} else if (a <= -0.000135) {
tmp = a * t;
} else if (a <= -2.5e-117) {
tmp = x;
} else if (a <= 2.6e-308) {
tmp = z * y;
} else if (a <= 4.6e-62) {
tmp = x;
} else if (a <= 4100000000000.0) {
tmp = z * y;
} else if (a <= 1.5e+171) {
tmp = t_1;
} else {
tmp = a * t;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (z * b) tmp = 0 if a <= -5.5e+166: tmp = t_1 elif a <= -0.000135: tmp = a * t elif a <= -2.5e-117: tmp = x elif a <= 2.6e-308: tmp = z * y elif a <= 4.6e-62: tmp = x elif a <= 4100000000000.0: tmp = z * y elif a <= 1.5e+171: tmp = t_1 else: tmp = a * t return tmp
function code(x, y, z, t, a, b) t_1 = Float64(a * Float64(z * b)) tmp = 0.0 if (a <= -5.5e+166) tmp = t_1; elseif (a <= -0.000135) tmp = Float64(a * t); elseif (a <= -2.5e-117) tmp = x; elseif (a <= 2.6e-308) tmp = Float64(z * y); elseif (a <= 4.6e-62) tmp = x; elseif (a <= 4100000000000.0) tmp = Float64(z * y); elseif (a <= 1.5e+171) tmp = t_1; else tmp = Float64(a * t); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = a * (z * b); tmp = 0.0; if (a <= -5.5e+166) tmp = t_1; elseif (a <= -0.000135) tmp = a * t; elseif (a <= -2.5e-117) tmp = x; elseif (a <= 2.6e-308) tmp = z * y; elseif (a <= 4.6e-62) tmp = x; elseif (a <= 4100000000000.0) tmp = z * y; elseif (a <= 1.5e+171) tmp = t_1; else tmp = a * t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(a * N[(z * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -5.5e+166], t$95$1, If[LessEqual[a, -0.000135], N[(a * t), $MachinePrecision], If[LessEqual[a, -2.5e-117], x, If[LessEqual[a, 2.6e-308], N[(z * y), $MachinePrecision], If[LessEqual[a, 4.6e-62], x, If[LessEqual[a, 4100000000000.0], N[(z * y), $MachinePrecision], If[LessEqual[a, 1.5e+171], t$95$1, N[(a * t), $MachinePrecision]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(z \cdot b\right)\\
\mathbf{if}\;a \leq -5.5 \cdot 10^{+166}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq -0.000135:\\
\;\;\;\;a \cdot t\\
\mathbf{elif}\;a \leq -2.5 \cdot 10^{-117}:\\
\;\;\;\;x\\
\mathbf{elif}\;a \leq 2.6 \cdot 10^{-308}:\\
\;\;\;\;z \cdot y\\
\mathbf{elif}\;a \leq 4.6 \cdot 10^{-62}:\\
\;\;\;\;x\\
\mathbf{elif}\;a \leq 4100000000000:\\
\;\;\;\;z \cdot y\\
\mathbf{elif}\;a \leq 1.5 \cdot 10^{+171}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;a \cdot t\\
\end{array}
\end{array}
if a < -5.50000000000000008e166 or 4.1e12 < a < 1.5e171Initial program 84.9%
associate-+l+85.0%
associate-*l*86.7%
Simplified86.7%
Taylor expanded in a around inf 96.1%
Taylor expanded in b around inf 60.6%
*-commutative60.6%
Simplified60.6%
if -5.50000000000000008e166 < a < -1.35000000000000002e-4 or 1.5e171 < a Initial program 86.3%
associate-+l+86.3%
associate-*l*90.7%
Simplified90.7%
Taylor expanded in t around inf 49.7%
if -1.35000000000000002e-4 < a < -2.5e-117 or 2.6e-308 < a < 4.60000000000000001e-62Initial program 98.8%
associate-+l+98.8%
associate-*l*93.4%
Simplified93.4%
Taylor expanded in x around inf 44.3%
if -2.5e-117 < a < 2.6e-308 or 4.60000000000000001e-62 < a < 4.1e12Initial program 98.0%
associate-+l+98.0%
associate-*l*85.1%
Simplified85.1%
Taylor expanded in y around inf 53.1%
*-commutative53.1%
Simplified53.1%
Final simplification50.8%
(FPCore (x y z t a b)
:precision binary64
(if (<= z -1e+55)
(* z y)
(if (<= z -1.08e-68)
(* a t)
(if (<= z -2.55e-300)
x
(if (<= z 3.1e-268)
(* a t)
(if (<= z 2.5e-151)
x
(if (<= z 3.5e-8)
(* a t)
(if (<= z 2.95e+28) (* z y) (* z (* a b))))))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -1e+55) {
tmp = z * y;
} else if (z <= -1.08e-68) {
tmp = a * t;
} else if (z <= -2.55e-300) {
tmp = x;
} else if (z <= 3.1e-268) {
tmp = a * t;
} else if (z <= 2.5e-151) {
tmp = x;
} else if (z <= 3.5e-8) {
tmp = a * t;
} else if (z <= 2.95e+28) {
tmp = z * y;
} else {
tmp = z * (a * b);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: tmp
if (z <= (-1d+55)) then
tmp = z * y
else if (z <= (-1.08d-68)) then
tmp = a * t
else if (z <= (-2.55d-300)) then
tmp = x
else if (z <= 3.1d-268) then
tmp = a * t
else if (z <= 2.5d-151) then
tmp = x
else if (z <= 3.5d-8) then
tmp = a * t
else if (z <= 2.95d+28) then
tmp = z * y
else
tmp = z * (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 tmp;
if (z <= -1e+55) {
tmp = z * y;
} else if (z <= -1.08e-68) {
tmp = a * t;
} else if (z <= -2.55e-300) {
tmp = x;
} else if (z <= 3.1e-268) {
tmp = a * t;
} else if (z <= 2.5e-151) {
tmp = x;
} else if (z <= 3.5e-8) {
tmp = a * t;
} else if (z <= 2.95e+28) {
tmp = z * y;
} else {
tmp = z * (a * b);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if z <= -1e+55: tmp = z * y elif z <= -1.08e-68: tmp = a * t elif z <= -2.55e-300: tmp = x elif z <= 3.1e-268: tmp = a * t elif z <= 2.5e-151: tmp = x elif z <= 3.5e-8: tmp = a * t elif z <= 2.95e+28: tmp = z * y else: tmp = z * (a * b) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (z <= -1e+55) tmp = Float64(z * y); elseif (z <= -1.08e-68) tmp = Float64(a * t); elseif (z <= -2.55e-300) tmp = x; elseif (z <= 3.1e-268) tmp = Float64(a * t); elseif (z <= 2.5e-151) tmp = x; elseif (z <= 3.5e-8) tmp = Float64(a * t); elseif (z <= 2.95e+28) tmp = Float64(z * y); else tmp = Float64(z * Float64(a * b)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (z <= -1e+55) tmp = z * y; elseif (z <= -1.08e-68) tmp = a * t; elseif (z <= -2.55e-300) tmp = x; elseif (z <= 3.1e-268) tmp = a * t; elseif (z <= 2.5e-151) tmp = x; elseif (z <= 3.5e-8) tmp = a * t; elseif (z <= 2.95e+28) tmp = z * y; else tmp = z * (a * b); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -1e+55], N[(z * y), $MachinePrecision], If[LessEqual[z, -1.08e-68], N[(a * t), $MachinePrecision], If[LessEqual[z, -2.55e-300], x, If[LessEqual[z, 3.1e-268], N[(a * t), $MachinePrecision], If[LessEqual[z, 2.5e-151], x, If[LessEqual[z, 3.5e-8], N[(a * t), $MachinePrecision], If[LessEqual[z, 2.95e+28], N[(z * y), $MachinePrecision], N[(z * N[(a * b), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1 \cdot 10^{+55}:\\
\;\;\;\;z \cdot y\\
\mathbf{elif}\;z \leq -1.08 \cdot 10^{-68}:\\
\;\;\;\;a \cdot t\\
\mathbf{elif}\;z \leq -2.55 \cdot 10^{-300}:\\
\;\;\;\;x\\
\mathbf{elif}\;z \leq 3.1 \cdot 10^{-268}:\\
\;\;\;\;a \cdot t\\
\mathbf{elif}\;z \leq 2.5 \cdot 10^{-151}:\\
\;\;\;\;x\\
\mathbf{elif}\;z \leq 3.5 \cdot 10^{-8}:\\
\;\;\;\;a \cdot t\\
\mathbf{elif}\;z \leq 2.95 \cdot 10^{+28}:\\
\;\;\;\;z \cdot y\\
\mathbf{else}:\\
\;\;\;\;z \cdot \left(a \cdot b\right)\\
\end{array}
\end{array}
if z < -1.00000000000000001e55 or 3.50000000000000024e-8 < z < 2.9500000000000001e28Initial program 84.6%
associate-+l+84.6%
associate-*l*76.8%
Simplified76.8%
Taylor expanded in y around inf 47.6%
*-commutative47.6%
Simplified47.6%
if -1.00000000000000001e55 < z < -1.0799999999999999e-68 or -2.55e-300 < z < 3.0999999999999998e-268 or 2.50000000000000002e-151 < z < 3.50000000000000024e-8Initial program 95.7%
associate-+l+95.7%
associate-*l*95.6%
Simplified95.6%
Taylor expanded in t around inf 48.3%
if -1.0799999999999999e-68 < z < -2.55e-300 or 3.0999999999999998e-268 < z < 2.50000000000000002e-151Initial program 99.9%
associate-+l+99.9%
associate-*l*99.9%
Simplified99.9%
Taylor expanded in x around inf 56.7%
if 2.9500000000000001e28 < z Initial program 88.0%
associate-+l+88.0%
associate-*l*82.9%
Simplified82.9%
Taylor expanded in a around inf 83.0%
Taylor expanded in b around inf 49.3%
associate-*r*50.9%
rem-exp-log22.3%
rem-exp-log22.2%
exp-sum22.2%
+-commutative22.2%
exp-sum22.2%
rem-exp-log22.3%
rem-exp-log50.9%
Simplified50.9%
Final simplification51.0%
(FPCore (x y z t a b)
:precision binary64
(if (<= z -1.45e+56)
(* z y)
(if (<= z -7e-68)
(* a t)
(if (<= z -7.2e-300)
x
(if (<= z 6.5e-268) (* a t) (if (<= z 9e-47) x (* z y)))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -1.45e+56) {
tmp = z * y;
} else if (z <= -7e-68) {
tmp = a * t;
} else if (z <= -7.2e-300) {
tmp = x;
} else if (z <= 6.5e-268) {
tmp = a * t;
} else if (z <= 9e-47) {
tmp = x;
} else {
tmp = z * y;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: tmp
if (z <= (-1.45d+56)) then
tmp = z * y
else if (z <= (-7d-68)) then
tmp = a * t
else if (z <= (-7.2d-300)) then
tmp = x
else if (z <= 6.5d-268) then
tmp = a * t
else if (z <= 9d-47) then
tmp = x
else
tmp = z * y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -1.45e+56) {
tmp = z * y;
} else if (z <= -7e-68) {
tmp = a * t;
} else if (z <= -7.2e-300) {
tmp = x;
} else if (z <= 6.5e-268) {
tmp = a * t;
} else if (z <= 9e-47) {
tmp = x;
} else {
tmp = z * y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if z <= -1.45e+56: tmp = z * y elif z <= -7e-68: tmp = a * t elif z <= -7.2e-300: tmp = x elif z <= 6.5e-268: tmp = a * t elif z <= 9e-47: tmp = x else: tmp = z * y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (z <= -1.45e+56) tmp = Float64(z * y); elseif (z <= -7e-68) tmp = Float64(a * t); elseif (z <= -7.2e-300) tmp = x; elseif (z <= 6.5e-268) tmp = Float64(a * t); elseif (z <= 9e-47) tmp = x; else tmp = Float64(z * y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (z <= -1.45e+56) tmp = z * y; elseif (z <= -7e-68) tmp = a * t; elseif (z <= -7.2e-300) tmp = x; elseif (z <= 6.5e-268) tmp = a * t; elseif (z <= 9e-47) tmp = x; else tmp = z * y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -1.45e+56], N[(z * y), $MachinePrecision], If[LessEqual[z, -7e-68], N[(a * t), $MachinePrecision], If[LessEqual[z, -7.2e-300], x, If[LessEqual[z, 6.5e-268], N[(a * t), $MachinePrecision], If[LessEqual[z, 9e-47], x, N[(z * y), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1.45 \cdot 10^{+56}:\\
\;\;\;\;z \cdot y\\
\mathbf{elif}\;z \leq -7 \cdot 10^{-68}:\\
\;\;\;\;a \cdot t\\
\mathbf{elif}\;z \leq -7.2 \cdot 10^{-300}:\\
\;\;\;\;x\\
\mathbf{elif}\;z \leq 6.5 \cdot 10^{-268}:\\
\;\;\;\;a \cdot t\\
\mathbf{elif}\;z \leq 9 \cdot 10^{-47}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;z \cdot y\\
\end{array}
\end{array}
if z < -1.45000000000000004e56 or 9e-47 < z Initial program 87.0%
associate-+l+87.0%
associate-*l*80.8%
Simplified80.8%
Taylor expanded in y around inf 44.3%
*-commutative44.3%
Simplified44.3%
if -1.45000000000000004e56 < z < -7.00000000000000026e-68 or -7.20000000000000031e-300 < z < 6.5000000000000003e-268Initial program 94.6%
associate-+l+94.6%
associate-*l*91.9%
Simplified91.9%
Taylor expanded in t around inf 53.2%
if -7.00000000000000026e-68 < z < -7.20000000000000031e-300 or 6.5000000000000003e-268 < z < 9e-47Initial program 98.9%
associate-+l+99.0%
associate-*l*99.9%
Simplified99.9%
Taylor expanded in x around inf 50.3%
Final simplification47.8%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ (* a t) (* z y))) (t_2 (* z (+ y (* a b)))))
(if (<= z -9.6e+116)
t_2
(if (<= z 7e+27)
(+ x t_1)
(if (<= z 6.4e+164) (+ t_1 (* b (* z a))) t_2)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (a * t) + (z * y);
double t_2 = z * (y + (a * b));
double tmp;
if (z <= -9.6e+116) {
tmp = t_2;
} else if (z <= 7e+27) {
tmp = x + t_1;
} else if (z <= 6.4e+164) {
tmp = t_1 + (b * (z * a));
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = (a * t) + (z * y)
t_2 = z * (y + (a * b))
if (z <= (-9.6d+116)) then
tmp = t_2
else if (z <= 7d+27) then
tmp = x + t_1
else if (z <= 6.4d+164) then
tmp = t_1 + (b * (z * a))
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (a * t) + (z * y);
double t_2 = z * (y + (a * b));
double tmp;
if (z <= -9.6e+116) {
tmp = t_2;
} else if (z <= 7e+27) {
tmp = x + t_1;
} else if (z <= 6.4e+164) {
tmp = t_1 + (b * (z * a));
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (a * t) + (z * y) t_2 = z * (y + (a * b)) tmp = 0 if z <= -9.6e+116: tmp = t_2 elif z <= 7e+27: tmp = x + t_1 elif z <= 6.4e+164: tmp = t_1 + (b * (z * a)) else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(a * t) + Float64(z * y)) t_2 = Float64(z * Float64(y + Float64(a * b))) tmp = 0.0 if (z <= -9.6e+116) tmp = t_2; elseif (z <= 7e+27) tmp = Float64(x + t_1); elseif (z <= 6.4e+164) tmp = Float64(t_1 + Float64(b * Float64(z * a))); else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (a * t) + (z * y); t_2 = z * (y + (a * b)); tmp = 0.0; if (z <= -9.6e+116) tmp = t_2; elseif (z <= 7e+27) tmp = x + t_1; elseif (z <= 6.4e+164) tmp = t_1 + (b * (z * a)); else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(a * t), $MachinePrecision] + N[(z * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(z * N[(y + N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -9.6e+116], t$95$2, If[LessEqual[z, 7e+27], N[(x + t$95$1), $MachinePrecision], If[LessEqual[z, 6.4e+164], N[(t$95$1 + N[(b * N[(z * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot t + z \cdot y\\
t_2 := z \cdot \left(y + a \cdot b\right)\\
\mathbf{if}\;z \leq -9.6 \cdot 10^{+116}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;z \leq 7 \cdot 10^{+27}:\\
\;\;\;\;x + t\_1\\
\mathbf{elif}\;z \leq 6.4 \cdot 10^{+164}:\\
\;\;\;\;t\_1 + b \cdot \left(z \cdot a\right)\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if z < -9.6000000000000001e116 or 6.3999999999999996e164 < z Initial program 80.7%
associate-+l+80.7%
associate-*l*74.4%
Simplified74.4%
Taylor expanded in z around inf 93.2%
if -9.6000000000000001e116 < z < 7.0000000000000004e27Initial program 97.5%
associate-+l+97.5%
associate-*l*97.4%
Simplified97.4%
Taylor expanded in b around 0 90.0%
if 7.0000000000000004e27 < z < 6.3999999999999996e164Initial program 95.9%
Taylor expanded in x around 0 88.3%
Final simplification90.7%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (+ t (* z b)))))
(if (<= a -1.42e+169)
t_1
(if (<= a -1.15e+130)
(+ x (* a t))
(if (or (<= a -0.00034) (not (<= a 22500000000000.0)))
t_1
(+ x (* z y)))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (t + (z * b));
double tmp;
if (a <= -1.42e+169) {
tmp = t_1;
} else if (a <= -1.15e+130) {
tmp = x + (a * t);
} else if ((a <= -0.00034) || !(a <= 22500000000000.0)) {
tmp = t_1;
} else {
tmp = x + (z * y);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: t_1
real(8) :: tmp
t_1 = a * (t + (z * b))
if (a <= (-1.42d+169)) then
tmp = t_1
else if (a <= (-1.15d+130)) then
tmp = x + (a * t)
else if ((a <= (-0.00034d0)) .or. (.not. (a <= 22500000000000.0d0))) then
tmp = t_1
else
tmp = x + (z * y)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (t + (z * b));
double tmp;
if (a <= -1.42e+169) {
tmp = t_1;
} else if (a <= -1.15e+130) {
tmp = x + (a * t);
} else if ((a <= -0.00034) || !(a <= 22500000000000.0)) {
tmp = t_1;
} else {
tmp = x + (z * y);
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (t + (z * b)) tmp = 0 if a <= -1.42e+169: tmp = t_1 elif a <= -1.15e+130: tmp = x + (a * t) elif (a <= -0.00034) or not (a <= 22500000000000.0): tmp = t_1 else: tmp = x + (z * y) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(a * Float64(t + Float64(z * b))) tmp = 0.0 if (a <= -1.42e+169) tmp = t_1; elseif (a <= -1.15e+130) tmp = Float64(x + Float64(a * t)); elseif ((a <= -0.00034) || !(a <= 22500000000000.0)) tmp = t_1; else tmp = Float64(x + Float64(z * y)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = a * (t + (z * b)); tmp = 0.0; if (a <= -1.42e+169) tmp = t_1; elseif (a <= -1.15e+130) tmp = x + (a * t); elseif ((a <= -0.00034) || ~((a <= 22500000000000.0))) tmp = t_1; else tmp = x + (z * y); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(a * N[(t + N[(z * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -1.42e+169], t$95$1, If[LessEqual[a, -1.15e+130], N[(x + N[(a * t), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[a, -0.00034], N[Not[LessEqual[a, 22500000000000.0]], $MachinePrecision]], t$95$1, N[(x + N[(z * y), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(t + z \cdot b\right)\\
\mathbf{if}\;a \leq -1.42 \cdot 10^{+169}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq -1.15 \cdot 10^{+130}:\\
\;\;\;\;x + a \cdot t\\
\mathbf{elif}\;a \leq -0.00034 \lor \neg \left(a \leq 22500000000000\right):\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;x + z \cdot y\\
\end{array}
\end{array}
if a < -1.42000000000000002e169 or -1.15000000000000011e130 < a < -3.4e-4 or 2.25e13 < a Initial program 85.0%
associate-+l+85.1%
associate-*l*87.7%
Simplified87.7%
Taylor expanded in a around inf 76.9%
if -1.42000000000000002e169 < a < -1.15000000000000011e130Initial program 91.5%
associate-+l+91.5%
associate-*l*99.9%
Simplified99.9%
Taylor expanded in z around 0 83.7%
+-commutative83.7%
Simplified83.7%
if -3.4e-4 < a < 2.25e13Initial program 98.5%
associate-+l+98.5%
associate-*l*90.3%
Simplified90.3%
Taylor expanded in a around 0 74.9%
Final simplification76.2%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (+ t (* z b)))))
(if (<= a -1.16e+169)
t_1
(if (<= a -1.6e+129)
(* a (+ t (/ x a)))
(if (or (<= a -0.00036) (not (<= a 920000000.0))) t_1 (+ x (* z y)))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (t + (z * b));
double tmp;
if (a <= -1.16e+169) {
tmp = t_1;
} else if (a <= -1.6e+129) {
tmp = a * (t + (x / a));
} else if ((a <= -0.00036) || !(a <= 920000000.0)) {
tmp = t_1;
} else {
tmp = x + (z * y);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: t_1
real(8) :: tmp
t_1 = a * (t + (z * b))
if (a <= (-1.16d+169)) then
tmp = t_1
else if (a <= (-1.6d+129)) then
tmp = a * (t + (x / a))
else if ((a <= (-0.00036d0)) .or. (.not. (a <= 920000000.0d0))) then
tmp = t_1
else
tmp = x + (z * y)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (t + (z * b));
double tmp;
if (a <= -1.16e+169) {
tmp = t_1;
} else if (a <= -1.6e+129) {
tmp = a * (t + (x / a));
} else if ((a <= -0.00036) || !(a <= 920000000.0)) {
tmp = t_1;
} else {
tmp = x + (z * y);
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (t + (z * b)) tmp = 0 if a <= -1.16e+169: tmp = t_1 elif a <= -1.6e+129: tmp = a * (t + (x / a)) elif (a <= -0.00036) or not (a <= 920000000.0): tmp = t_1 else: tmp = x + (z * y) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(a * Float64(t + Float64(z * b))) tmp = 0.0 if (a <= -1.16e+169) tmp = t_1; elseif (a <= -1.6e+129) tmp = Float64(a * Float64(t + Float64(x / a))); elseif ((a <= -0.00036) || !(a <= 920000000.0)) tmp = t_1; else tmp = Float64(x + Float64(z * y)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = a * (t + (z * b)); tmp = 0.0; if (a <= -1.16e+169) tmp = t_1; elseif (a <= -1.6e+129) tmp = a * (t + (x / a)); elseif ((a <= -0.00036) || ~((a <= 920000000.0))) tmp = t_1; else tmp = x + (z * y); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(a * N[(t + N[(z * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -1.16e+169], t$95$1, If[LessEqual[a, -1.6e+129], N[(a * N[(t + N[(x / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[a, -0.00036], N[Not[LessEqual[a, 920000000.0]], $MachinePrecision]], t$95$1, N[(x + N[(z * y), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(t + z \cdot b\right)\\
\mathbf{if}\;a \leq -1.16 \cdot 10^{+169}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq -1.6 \cdot 10^{+129}:\\
\;\;\;\;a \cdot \left(t + \frac{x}{a}\right)\\
\mathbf{elif}\;a \leq -0.00036 \lor \neg \left(a \leq 920000000\right):\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;x + z \cdot y\\
\end{array}
\end{array}
if a < -1.16e169 or -1.6000000000000001e129 < a < -3.60000000000000023e-4 or 9.2e8 < a Initial program 85.0%
associate-+l+85.1%
associate-*l*87.7%
Simplified87.7%
Taylor expanded in a around inf 76.9%
if -1.16e169 < a < -1.6000000000000001e129Initial program 91.5%
associate-+l+91.5%
associate-*l*99.9%
Simplified99.9%
Taylor expanded in a around inf 100.0%
Taylor expanded in z around 0 83.8%
if -3.60000000000000023e-4 < a < 9.2e8Initial program 98.5%
associate-+l+98.5%
associate-*l*90.3%
Simplified90.3%
Taylor expanded in a around 0 74.9%
Final simplification76.2%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (* z b))))
(if (<= a -2.35e+166)
t_1
(if (<= a -7.2e+66)
(* a t)
(if (<= a 4000000000000.0)
(+ x (* z y))
(if (<= a 2.6e+168) t_1 (* a t)))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (z * b);
double tmp;
if (a <= -2.35e+166) {
tmp = t_1;
} else if (a <= -7.2e+66) {
tmp = a * t;
} else if (a <= 4000000000000.0) {
tmp = x + (z * y);
} else if (a <= 2.6e+168) {
tmp = t_1;
} else {
tmp = a * t;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: t_1
real(8) :: tmp
t_1 = a * (z * b)
if (a <= (-2.35d+166)) then
tmp = t_1
else if (a <= (-7.2d+66)) then
tmp = a * t
else if (a <= 4000000000000.0d0) then
tmp = x + (z * y)
else if (a <= 2.6d+168) then
tmp = t_1
else
tmp = a * t
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (z * b);
double tmp;
if (a <= -2.35e+166) {
tmp = t_1;
} else if (a <= -7.2e+66) {
tmp = a * t;
} else if (a <= 4000000000000.0) {
tmp = x + (z * y);
} else if (a <= 2.6e+168) {
tmp = t_1;
} else {
tmp = a * t;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (z * b) tmp = 0 if a <= -2.35e+166: tmp = t_1 elif a <= -7.2e+66: tmp = a * t elif a <= 4000000000000.0: tmp = x + (z * y) elif a <= 2.6e+168: tmp = t_1 else: tmp = a * t return tmp
function code(x, y, z, t, a, b) t_1 = Float64(a * Float64(z * b)) tmp = 0.0 if (a <= -2.35e+166) tmp = t_1; elseif (a <= -7.2e+66) tmp = Float64(a * t); elseif (a <= 4000000000000.0) tmp = Float64(x + Float64(z * y)); elseif (a <= 2.6e+168) tmp = t_1; else tmp = Float64(a * t); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = a * (z * b); tmp = 0.0; if (a <= -2.35e+166) tmp = t_1; elseif (a <= -7.2e+66) tmp = a * t; elseif (a <= 4000000000000.0) tmp = x + (z * y); elseif (a <= 2.6e+168) tmp = t_1; else tmp = a * t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(a * N[(z * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -2.35e+166], t$95$1, If[LessEqual[a, -7.2e+66], N[(a * t), $MachinePrecision], If[LessEqual[a, 4000000000000.0], N[(x + N[(z * y), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 2.6e+168], t$95$1, N[(a * t), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(z \cdot b\right)\\
\mathbf{if}\;a \leq -2.35 \cdot 10^{+166}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq -7.2 \cdot 10^{+66}:\\
\;\;\;\;a \cdot t\\
\mathbf{elif}\;a \leq 4000000000000:\\
\;\;\;\;x + z \cdot y\\
\mathbf{elif}\;a \leq 2.6 \cdot 10^{+168}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;a \cdot t\\
\end{array}
\end{array}
if a < -2.35e166 or 4e12 < a < 2.6e168Initial program 84.9%
associate-+l+85.0%
associate-*l*86.7%
Simplified86.7%
Taylor expanded in a around inf 96.1%
Taylor expanded in b around inf 60.6%
*-commutative60.6%
Simplified60.6%
if -2.35e166 < a < -7.2e66 or 2.6e168 < a Initial program 82.0%
associate-+l+82.0%
associate-*l*86.3%
Simplified86.3%
Taylor expanded in t around inf 56.7%
if -7.2e66 < a < 4e12Initial program 98.1%
associate-+l+98.1%
associate-*l*91.6%
Simplified91.6%
Taylor expanded in a around 0 71.5%
Final simplification66.7%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ x (* a t))) (t_2 (* a (* z b))))
(if (<= a -1.52e+172)
t_2
(if (<= a -6.8e+52)
t_1
(if (<= a 90000000000.0) (+ x (* z y)) (if (<= a 2.4e+155) t_2 t_1))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x + (a * t);
double t_2 = a * (z * b);
double tmp;
if (a <= -1.52e+172) {
tmp = t_2;
} else if (a <= -6.8e+52) {
tmp = t_1;
} else if (a <= 90000000000.0) {
tmp = x + (z * y);
} else if (a <= 2.4e+155) {
tmp = t_2;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = x + (a * t)
t_2 = a * (z * b)
if (a <= (-1.52d+172)) then
tmp = t_2
else if (a <= (-6.8d+52)) then
tmp = t_1
else if (a <= 90000000000.0d0) then
tmp = x + (z * y)
else if (a <= 2.4d+155) then
tmp = t_2
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 t_1 = x + (a * t);
double t_2 = a * (z * b);
double tmp;
if (a <= -1.52e+172) {
tmp = t_2;
} else if (a <= -6.8e+52) {
tmp = t_1;
} else if (a <= 90000000000.0) {
tmp = x + (z * y);
} else if (a <= 2.4e+155) {
tmp = t_2;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x + (a * t) t_2 = a * (z * b) tmp = 0 if a <= -1.52e+172: tmp = t_2 elif a <= -6.8e+52: tmp = t_1 elif a <= 90000000000.0: tmp = x + (z * y) elif a <= 2.4e+155: tmp = t_2 else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x + Float64(a * t)) t_2 = Float64(a * Float64(z * b)) tmp = 0.0 if (a <= -1.52e+172) tmp = t_2; elseif (a <= -6.8e+52) tmp = t_1; elseif (a <= 90000000000.0) tmp = Float64(x + Float64(z * y)); elseif (a <= 2.4e+155) tmp = t_2; else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x + (a * t); t_2 = a * (z * b); tmp = 0.0; if (a <= -1.52e+172) tmp = t_2; elseif (a <= -6.8e+52) tmp = t_1; elseif (a <= 90000000000.0) tmp = x + (z * y); elseif (a <= 2.4e+155) tmp = t_2; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x + N[(a * t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(a * N[(z * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -1.52e+172], t$95$2, If[LessEqual[a, -6.8e+52], t$95$1, If[LessEqual[a, 90000000000.0], N[(x + N[(z * y), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 2.4e+155], t$95$2, t$95$1]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + a \cdot t\\
t_2 := a \cdot \left(z \cdot b\right)\\
\mathbf{if}\;a \leq -1.52 \cdot 10^{+172}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;a \leq -6.8 \cdot 10^{+52}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq 90000000000:\\
\;\;\;\;x + z \cdot y\\
\mathbf{elif}\;a \leq 2.4 \cdot 10^{+155}:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if a < -1.5200000000000001e172 or 9e10 < a < 2.40000000000000021e155Initial program 84.6%
associate-+l+84.7%
associate-*l*86.5%
Simplified86.5%
Taylor expanded in a around inf 96.1%
Taylor expanded in b around inf 61.6%
*-commutative61.6%
Simplified61.6%
if -1.5200000000000001e172 < a < -6.8e52 or 2.40000000000000021e155 < a Initial program 84.1%
associate-+l+84.1%
associate-*l*87.9%
Simplified87.9%
Taylor expanded in z around 0 72.4%
+-commutative72.4%
Simplified72.4%
if -6.8e52 < a < 9e10Initial program 98.1%
associate-+l+98.1%
associate-*l*91.3%
Simplified91.3%
Taylor expanded in a around 0 72.5%
Final simplification70.3%
(FPCore (x y z t a b) :precision binary64 (if (or (<= z -6e-53) (not (<= z 4e+26))) (* z (+ y (+ (/ x z) (* a (+ b (/ t z)))))) (+ x (+ (* a t) (* z y)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -6e-53) || !(z <= 4e+26)) {
tmp = z * (y + ((x / z) + (a * (b + (t / z)))));
} else {
tmp = x + ((a * t) + (z * y));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: tmp
if ((z <= (-6d-53)) .or. (.not. (z <= 4d+26))) then
tmp = z * (y + ((x / z) + (a * (b + (t / z)))))
else
tmp = x + ((a * t) + (z * y))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -6e-53) || !(z <= 4e+26)) {
tmp = z * (y + ((x / z) + (a * (b + (t / z)))));
} else {
tmp = x + ((a * t) + (z * y));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -6e-53) or not (z <= 4e+26): tmp = z * (y + ((x / z) + (a * (b + (t / z))))) else: tmp = x + ((a * t) + (z * y)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -6e-53) || !(z <= 4e+26)) tmp = Float64(z * Float64(y + Float64(Float64(x / z) + Float64(a * Float64(b + Float64(t / z)))))); else tmp = Float64(x + Float64(Float64(a * t) + Float64(z * y))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -6e-53) || ~((z <= 4e+26))) tmp = z * (y + ((x / z) + (a * (b + (t / z))))); else tmp = x + ((a * t) + (z * y)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -6e-53], N[Not[LessEqual[z, 4e+26]], $MachinePrecision]], N[(z * N[(y + N[(N[(x / z), $MachinePrecision] + N[(a * N[(b + N[(t / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(a * t), $MachinePrecision] + N[(z * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -6 \cdot 10^{-53} \lor \neg \left(z \leq 4 \cdot 10^{+26}\right):\\
\;\;\;\;z \cdot \left(y + \left(\frac{x}{z} + a \cdot \left(b + \frac{t}{z}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x + \left(a \cdot t + z \cdot y\right)\\
\end{array}
\end{array}
if z < -6.0000000000000004e-53 or 4.00000000000000019e26 < z Initial program 86.5%
associate-+l+86.5%
associate-*l*80.2%
Simplified80.2%
Taylor expanded in z around inf 94.6%
+-commutative94.6%
associate-+l+94.6%
+-commutative94.6%
associate-/l*98.3%
distribute-lft-out99.8%
Simplified99.8%
if -6.0000000000000004e-53 < z < 4.00000000000000019e26Initial program 99.2%
associate-+l+99.2%
associate-*l*99.9%
Simplified99.9%
Taylor expanded in b around 0 93.4%
Final simplification96.7%
(FPCore (x y z t a b) :precision binary64 (if (or (<= z -4.5e-31) (not (<= z 2.6e+49))) (* z (+ y (+ (/ x z) (* a (+ b (/ t z)))))) (+ (+ x (* z y)) (+ (* a (* z b)) (* a t)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -4.5e-31) || !(z <= 2.6e+49)) {
tmp = z * (y + ((x / z) + (a * (b + (t / z)))));
} else {
tmp = (x + (z * y)) + ((a * (z * b)) + (a * t));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: tmp
if ((z <= (-4.5d-31)) .or. (.not. (z <= 2.6d+49))) then
tmp = z * (y + ((x / z) + (a * (b + (t / z)))))
else
tmp = (x + (z * y)) + ((a * (z * b)) + (a * t))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -4.5e-31) || !(z <= 2.6e+49)) {
tmp = z * (y + ((x / z) + (a * (b + (t / z)))));
} else {
tmp = (x + (z * y)) + ((a * (z * b)) + (a * t));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -4.5e-31) or not (z <= 2.6e+49): tmp = z * (y + ((x / z) + (a * (b + (t / z))))) else: tmp = (x + (z * y)) + ((a * (z * b)) + (a * t)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -4.5e-31) || !(z <= 2.6e+49)) tmp = Float64(z * Float64(y + Float64(Float64(x / z) + Float64(a * Float64(b + Float64(t / z)))))); else tmp = Float64(Float64(x + Float64(z * y)) + Float64(Float64(a * Float64(z * b)) + Float64(a * t))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -4.5e-31) || ~((z <= 2.6e+49))) tmp = z * (y + ((x / z) + (a * (b + (t / z))))); else tmp = (x + (z * y)) + ((a * (z * b)) + (a * t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -4.5e-31], N[Not[LessEqual[z, 2.6e+49]], $MachinePrecision]], N[(z * N[(y + N[(N[(x / z), $MachinePrecision] + N[(a * N[(b + N[(t / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x + N[(z * y), $MachinePrecision]), $MachinePrecision] + N[(N[(a * N[(z * b), $MachinePrecision]), $MachinePrecision] + N[(a * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -4.5 \cdot 10^{-31} \lor \neg \left(z \leq 2.6 \cdot 10^{+49}\right):\\
\;\;\;\;z \cdot \left(y + \left(\frac{x}{z} + a \cdot \left(b + \frac{t}{z}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(x + z \cdot y\right) + \left(a \cdot \left(z \cdot b\right) + a \cdot t\right)\\
\end{array}
\end{array}
if z < -4.5000000000000004e-31 or 2.59999999999999989e49 < z Initial program 85.7%
associate-+l+85.7%
associate-*l*78.9%
Simplified78.9%
Taylor expanded in z around inf 94.3%
+-commutative94.3%
associate-+l+94.3%
+-commutative94.3%
associate-/l*98.3%
distribute-lft-out99.8%
Simplified99.8%
if -4.5000000000000004e-31 < z < 2.59999999999999989e49Initial program 99.2%
associate-+l+99.2%
associate-*l*100.0%
Simplified100.0%
Final simplification99.9%
(FPCore (x y z t a b)
:precision binary64
(if (or (<= t -225000000000.0)
(and (not (<= t 26000000.0))
(or (<= t 1.85e+173) (not (<= t 1.6e+213)))))
(* a t)
x))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((t <= -225000000000.0) || (!(t <= 26000000.0) && ((t <= 1.85e+173) || !(t <= 1.6e+213)))) {
tmp = a * t;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: tmp
if ((t <= (-225000000000.0d0)) .or. (.not. (t <= 26000000.0d0)) .and. (t <= 1.85d+173) .or. (.not. (t <= 1.6d+213))) then
tmp = a * t
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((t <= -225000000000.0) || (!(t <= 26000000.0) && ((t <= 1.85e+173) || !(t <= 1.6e+213)))) {
tmp = a * t;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (t <= -225000000000.0) or (not (t <= 26000000.0) and ((t <= 1.85e+173) or not (t <= 1.6e+213))): tmp = a * t else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((t <= -225000000000.0) || (!(t <= 26000000.0) && ((t <= 1.85e+173) || !(t <= 1.6e+213)))) tmp = Float64(a * t); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((t <= -225000000000.0) || (~((t <= 26000000.0)) && ((t <= 1.85e+173) || ~((t <= 1.6e+213))))) tmp = a * t; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[t, -225000000000.0], And[N[Not[LessEqual[t, 26000000.0]], $MachinePrecision], Or[LessEqual[t, 1.85e+173], N[Not[LessEqual[t, 1.6e+213]], $MachinePrecision]]]], N[(a * t), $MachinePrecision], x]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -225000000000 \lor \neg \left(t \leq 26000000\right) \land \left(t \leq 1.85 \cdot 10^{+173} \lor \neg \left(t \leq 1.6 \cdot 10^{+213}\right)\right):\\
\;\;\;\;a \cdot t\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if t < -2.25e11 or 2.6e7 < t < 1.84999999999999993e173 or 1.5999999999999999e213 < t Initial program 92.0%
associate-+l+92.0%
associate-*l*85.4%
Simplified85.4%
Taylor expanded in t around inf 48.1%
if -2.25e11 < t < 2.6e7 or 1.84999999999999993e173 < t < 1.5999999999999999e213Initial program 93.1%
associate-+l+93.1%
associate-*l*93.1%
Simplified93.1%
Taylor expanded in x around inf 39.5%
Final simplification43.3%
(FPCore (x y z t a b) :precision binary64 (if (or (<= z -9.6e+120) (not (<= z 60.0))) (* z (+ y (* a b))) (+ x (* a (+ t (* z b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -9.6e+120) || !(z <= 60.0)) {
tmp = z * (y + (a * b));
} else {
tmp = x + (a * (t + (z * b)));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: tmp
if ((z <= (-9.6d+120)) .or. (.not. (z <= 60.0d0))) then
tmp = z * (y + (a * b))
else
tmp = x + (a * (t + (z * b)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -9.6e+120) || !(z <= 60.0)) {
tmp = z * (y + (a * b));
} else {
tmp = x + (a * (t + (z * b)));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -9.6e+120) or not (z <= 60.0): tmp = z * (y + (a * b)) else: tmp = x + (a * (t + (z * b))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -9.6e+120) || !(z <= 60.0)) tmp = Float64(z * Float64(y + Float64(a * b))); else tmp = Float64(x + Float64(a * Float64(t + Float64(z * b)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -9.6e+120) || ~((z <= 60.0))) tmp = z * (y + (a * b)); else tmp = x + (a * (t + (z * b))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -9.6e+120], N[Not[LessEqual[z, 60.0]], $MachinePrecision]], N[(z * N[(y + N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(a * N[(t + N[(z * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -9.6 \cdot 10^{+120} \lor \neg \left(z \leq 60\right):\\
\;\;\;\;z \cdot \left(y + a \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;x + a \cdot \left(t + z \cdot b\right)\\
\end{array}
\end{array}
if z < -9.60000000000000004e120 or 60 < z Initial program 85.7%
associate-+l+85.7%
associate-*l*78.0%
Simplified78.0%
Taylor expanded in z around inf 87.8%
if -9.60000000000000004e120 < z < 60Initial program 96.8%
associate-+l+96.8%
+-commutative96.8%
fma-define96.9%
associate-*l*96.8%
*-commutative96.8%
*-commutative96.8%
distribute-rgt-out98.1%
*-commutative98.1%
Simplified98.1%
Taylor expanded in y around 0 82.4%
Final simplification84.5%
(FPCore (x y z t a b) :precision binary64 (if (or (<= z -1.5e+117) (not (<= z 1.48e+29))) (* z (+ y (* a b))) (+ x (+ (* a t) (* z y)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -1.5e+117) || !(z <= 1.48e+29)) {
tmp = z * (y + (a * b));
} else {
tmp = x + ((a * t) + (z * y));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: tmp
if ((z <= (-1.5d+117)) .or. (.not. (z <= 1.48d+29))) then
tmp = z * (y + (a * b))
else
tmp = x + ((a * t) + (z * y))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -1.5e+117) || !(z <= 1.48e+29)) {
tmp = z * (y + (a * b));
} else {
tmp = x + ((a * t) + (z * y));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -1.5e+117) or not (z <= 1.48e+29): tmp = z * (y + (a * b)) else: tmp = x + ((a * t) + (z * y)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -1.5e+117) || !(z <= 1.48e+29)) tmp = Float64(z * Float64(y + Float64(a * b))); else tmp = Float64(x + Float64(Float64(a * t) + Float64(z * y))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -1.5e+117) || ~((z <= 1.48e+29))) tmp = z * (y + (a * b)); else tmp = x + ((a * t) + (z * y)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -1.5e+117], N[Not[LessEqual[z, 1.48e+29]], $MachinePrecision]], N[(z * N[(y + N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(a * t), $MachinePrecision] + N[(z * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1.5 \cdot 10^{+117} \lor \neg \left(z \leq 1.48 \cdot 10^{+29}\right):\\
\;\;\;\;z \cdot \left(y + a \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;x + \left(a \cdot t + z \cdot y\right)\\
\end{array}
\end{array}
if z < -1.5e117 or 1.48e29 < z Initial program 84.7%
associate-+l+84.7%
associate-*l*76.9%
Simplified76.9%
Taylor expanded in z around inf 87.8%
if -1.5e117 < z < 1.48e29Initial program 97.5%
associate-+l+97.5%
associate-*l*97.4%
Simplified97.4%
Taylor expanded in b around 0 90.0%
Final simplification89.2%
(FPCore (x y z t a b) :precision binary64 (if (or (<= z -2.1e+18) (not (<= z 245.0))) (* z (+ y (* a b))) (+ x (* a t))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -2.1e+18) || !(z <= 245.0)) {
tmp = z * (y + (a * b));
} else {
tmp = x + (a * t);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: tmp
if ((z <= (-2.1d+18)) .or. (.not. (z <= 245.0d0))) then
tmp = z * (y + (a * b))
else
tmp = x + (a * t)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -2.1e+18) || !(z <= 245.0)) {
tmp = z * (y + (a * b));
} else {
tmp = x + (a * t);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -2.1e+18) or not (z <= 245.0): tmp = z * (y + (a * b)) else: tmp = x + (a * t) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -2.1e+18) || !(z <= 245.0)) tmp = Float64(z * Float64(y + Float64(a * b))); else tmp = Float64(x + Float64(a * t)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -2.1e+18) || ~((z <= 245.0))) tmp = z * (y + (a * b)); else tmp = x + (a * t); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -2.1e+18], N[Not[LessEqual[z, 245.0]], $MachinePrecision]], N[(z * N[(y + N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(a * t), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -2.1 \cdot 10^{+18} \lor \neg \left(z \leq 245\right):\\
\;\;\;\;z \cdot \left(y + a \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;x + a \cdot t\\
\end{array}
\end{array}
if z < -2.1e18 or 245 < z Initial program 86.1%
associate-+l+86.1%
associate-*l*79.2%
Simplified79.2%
Taylor expanded in z around inf 82.9%
if -2.1e18 < z < 245Initial program 98.5%
associate-+l+98.5%
associate-*l*99.2%
Simplified99.2%
Taylor expanded in z around 0 77.5%
+-commutative77.5%
Simplified77.5%
Final simplification80.1%
(FPCore (x y z t a b) :precision binary64 x)
double code(double x, double y, double z, double t, double a, double b) {
return x;
}
real(8) function code(x, y, z, t, a, b)
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
code = x
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return x;
}
def code(x, y, z, t, a, b): return x
function code(x, y, z, t, a, b) return x end
function tmp = code(x, y, z, t, a, b) tmp = x; end
code[x_, y_, z_, t_, a_, b_] := x
\begin{array}{l}
\\
x
\end{array}
Initial program 92.6%
associate-+l+92.6%
associate-*l*89.7%
Simplified89.7%
Taylor expanded in x around inf 27.0%
Final simplification27.0%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ (* z (+ (* b a) y)) (+ x (* t a)))))
(if (< z -11820553527347888000.0)
t_1
(if (< z 4.7589743188364287e-122)
(+ (* (+ (* b z) t) a) (+ (* z y) x))
t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (z * ((b * a) + y)) + (x + (t * a));
double tmp;
if (z < -11820553527347888000.0) {
tmp = t_1;
} else if (z < 4.7589743188364287e-122) {
tmp = (((b * z) + t) * a) + ((z * y) + x);
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
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) :: t_1
real(8) :: tmp
t_1 = (z * ((b * a) + y)) + (x + (t * a))
if (z < (-11820553527347888000.0d0)) then
tmp = t_1
else if (z < 4.7589743188364287d-122) then
tmp = (((b * z) + t) * a) + ((z * y) + x)
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 t_1 = (z * ((b * a) + y)) + (x + (t * a));
double tmp;
if (z < -11820553527347888000.0) {
tmp = t_1;
} else if (z < 4.7589743188364287e-122) {
tmp = (((b * z) + t) * a) + ((z * y) + x);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (z * ((b * a) + y)) + (x + (t * a)) tmp = 0 if z < -11820553527347888000.0: tmp = t_1 elif z < 4.7589743188364287e-122: tmp = (((b * z) + t) * a) + ((z * y) + x) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(z * Float64(Float64(b * a) + y)) + Float64(x + Float64(t * a))) tmp = 0.0 if (z < -11820553527347888000.0) tmp = t_1; elseif (z < 4.7589743188364287e-122) tmp = Float64(Float64(Float64(Float64(b * z) + t) * a) + Float64(Float64(z * y) + x)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (z * ((b * a) + y)) + (x + (t * a)); tmp = 0.0; if (z < -11820553527347888000.0) tmp = t_1; elseif (z < 4.7589743188364287e-122) tmp = (((b * z) + t) * a) + ((z * y) + x); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(z * N[(N[(b * a), $MachinePrecision] + y), $MachinePrecision]), $MachinePrecision] + N[(x + N[(t * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Less[z, -11820553527347888000.0], t$95$1, If[Less[z, 4.7589743188364287e-122], N[(N[(N[(N[(b * z), $MachinePrecision] + t), $MachinePrecision] * a), $MachinePrecision] + N[(N[(z * y), $MachinePrecision] + x), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := z \cdot \left(b \cdot a + y\right) + \left(x + t \cdot a\right)\\
\mathbf{if}\;z < -11820553527347888000:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z < 4.7589743188364287 \cdot 10^{-122}:\\
\;\;\;\;\left(b \cdot z + t\right) \cdot a + \left(z \cdot y + x\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
herbie shell --seed 2024067
(FPCore (x y z t a b)
:name "Graphics.Rasterific.CubicBezier:cachedBezierAt from Rasterific-0.6.1"
:precision binary64
:alt
(if (< z -11820553527347888000.0) (+ (* z (+ (* b a) y)) (+ x (* t a))) (if (< z 4.7589743188364287e-122) (+ (* (+ (* b z) t) a) (+ (* z y) x)) (+ (* z (+ (* b a) y)) (+ x (* t a)))))
(+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)))