
(FPCore (x y z t) :precision binary64 (+ (* (/ x y) (- z t)) t))
double code(double x, double y, double z, double t) {
return ((x / y) * (z - t)) + t;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = ((x / y) * (z - t)) + t
end function
public static double code(double x, double y, double z, double t) {
return ((x / y) * (z - t)) + t;
}
def code(x, y, z, t): return ((x / y) * (z - t)) + t
function code(x, y, z, t) return Float64(Float64(Float64(x / y) * Float64(z - t)) + t) end
function tmp = code(x, y, z, t) tmp = ((x / y) * (z - t)) + t; end
code[x_, y_, z_, t_] := N[(N[(N[(x / y), $MachinePrecision] * N[(z - t), $MachinePrecision]), $MachinePrecision] + t), $MachinePrecision]
\begin{array}{l}
\\
\frac{x}{y} \cdot \left(z - t\right) + t
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 15 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t) :precision binary64 (+ (* (/ x y) (- z t)) t))
double code(double x, double y, double z, double t) {
return ((x / y) * (z - t)) + t;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = ((x / y) * (z - t)) + t
end function
public static double code(double x, double y, double z, double t) {
return ((x / y) * (z - t)) + t;
}
def code(x, y, z, t): return ((x / y) * (z - t)) + t
function code(x, y, z, t) return Float64(Float64(Float64(x / y) * Float64(z - t)) + t) end
function tmp = code(x, y, z, t) tmp = ((x / y) * (z - t)) + t; end
code[x_, y_, z_, t_] := N[(N[(N[(x / y), $MachinePrecision] * N[(z - t), $MachinePrecision]), $MachinePrecision] + t), $MachinePrecision]
\begin{array}{l}
\\
\frac{x}{y} \cdot \left(z - t\right) + t
\end{array}
(FPCore (x y z t) :precision binary64 (+ t (/ (- z t) (/ y x))))
double code(double x, double y, double z, double t) {
return t + ((z - t) / (y / x));
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = t + ((z - t) / (y / x))
end function
public static double code(double x, double y, double z, double t) {
return t + ((z - t) / (y / x));
}
def code(x, y, z, t): return t + ((z - t) / (y / x))
function code(x, y, z, t) return Float64(t + Float64(Float64(z - t) / Float64(y / x))) end
function tmp = code(x, y, z, t) tmp = t + ((z - t) / (y / x)); end
code[x_, y_, z_, t_] := N[(t + N[(N[(z - t), $MachinePrecision] / N[(y / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
t + \frac{z - t}{\frac{y}{x}}
\end{array}
Initial program 96.9%
*-commutative96.9%
clear-num96.9%
un-div-inv97.2%
Applied egg-rr97.2%
Final simplification97.2%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* z (/ x y))))
(if (<= (/ x y) -0.05)
t_1
(if (<= (/ x y) -4e-78)
(* z (/ t z))
(if (<= (/ x y) -1e-100)
(* x (/ z y))
(if (<= (/ x y) 5e-76)
t
(if (<= (/ x y) 4e-35)
(/ z (/ y x))
(if (<= (/ x y) 1e-11)
t
(if (<= (/ x y) 1e+97) (* (/ x y) (- t)) t_1)))))))))
double code(double x, double y, double z, double t) {
double t_1 = z * (x / y);
double tmp;
if ((x / y) <= -0.05) {
tmp = t_1;
} else if ((x / y) <= -4e-78) {
tmp = z * (t / z);
} else if ((x / y) <= -1e-100) {
tmp = x * (z / y);
} else if ((x / y) <= 5e-76) {
tmp = t;
} else if ((x / y) <= 4e-35) {
tmp = z / (y / x);
} else if ((x / y) <= 1e-11) {
tmp = t;
} else if ((x / y) <= 1e+97) {
tmp = (x / y) * -t;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = z * (x / y)
if ((x / y) <= (-0.05d0)) then
tmp = t_1
else if ((x / y) <= (-4d-78)) then
tmp = z * (t / z)
else if ((x / y) <= (-1d-100)) then
tmp = x * (z / y)
else if ((x / y) <= 5d-76) then
tmp = t
else if ((x / y) <= 4d-35) then
tmp = z / (y / x)
else if ((x / y) <= 1d-11) then
tmp = t
else if ((x / y) <= 1d+97) then
tmp = (x / y) * -t
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = z * (x / y);
double tmp;
if ((x / y) <= -0.05) {
tmp = t_1;
} else if ((x / y) <= -4e-78) {
tmp = z * (t / z);
} else if ((x / y) <= -1e-100) {
tmp = x * (z / y);
} else if ((x / y) <= 5e-76) {
tmp = t;
} else if ((x / y) <= 4e-35) {
tmp = z / (y / x);
} else if ((x / y) <= 1e-11) {
tmp = t;
} else if ((x / y) <= 1e+97) {
tmp = (x / y) * -t;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t): t_1 = z * (x / y) tmp = 0 if (x / y) <= -0.05: tmp = t_1 elif (x / y) <= -4e-78: tmp = z * (t / z) elif (x / y) <= -1e-100: tmp = x * (z / y) elif (x / y) <= 5e-76: tmp = t elif (x / y) <= 4e-35: tmp = z / (y / x) elif (x / y) <= 1e-11: tmp = t elif (x / y) <= 1e+97: tmp = (x / y) * -t else: tmp = t_1 return tmp
function code(x, y, z, t) t_1 = Float64(z * Float64(x / y)) tmp = 0.0 if (Float64(x / y) <= -0.05) tmp = t_1; elseif (Float64(x / y) <= -4e-78) tmp = Float64(z * Float64(t / z)); elseif (Float64(x / y) <= -1e-100) tmp = Float64(x * Float64(z / y)); elseif (Float64(x / y) <= 5e-76) tmp = t; elseif (Float64(x / y) <= 4e-35) tmp = Float64(z / Float64(y / x)); elseif (Float64(x / y) <= 1e-11) tmp = t; elseif (Float64(x / y) <= 1e+97) tmp = Float64(Float64(x / y) * Float64(-t)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = z * (x / y); tmp = 0.0; if ((x / y) <= -0.05) tmp = t_1; elseif ((x / y) <= -4e-78) tmp = z * (t / z); elseif ((x / y) <= -1e-100) tmp = x * (z / y); elseif ((x / y) <= 5e-76) tmp = t; elseif ((x / y) <= 4e-35) tmp = z / (y / x); elseif ((x / y) <= 1e-11) tmp = t; elseif ((x / y) <= 1e+97) tmp = (x / y) * -t; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(z * N[(x / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(x / y), $MachinePrecision], -0.05], t$95$1, If[LessEqual[N[(x / y), $MachinePrecision], -4e-78], N[(z * N[(t / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(x / y), $MachinePrecision], -1e-100], N[(x * N[(z / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(x / y), $MachinePrecision], 5e-76], t, If[LessEqual[N[(x / y), $MachinePrecision], 4e-35], N[(z / N[(y / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(x / y), $MachinePrecision], 1e-11], t, If[LessEqual[N[(x / y), $MachinePrecision], 1e+97], N[(N[(x / y), $MachinePrecision] * (-t)), $MachinePrecision], t$95$1]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := z \cdot \frac{x}{y}\\
\mathbf{if}\;\frac{x}{y} \leq -0.05:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;\frac{x}{y} \leq -4 \cdot 10^{-78}:\\
\;\;\;\;z \cdot \frac{t}{z}\\
\mathbf{elif}\;\frac{x}{y} \leq -1 \cdot 10^{-100}:\\
\;\;\;\;x \cdot \frac{z}{y}\\
\mathbf{elif}\;\frac{x}{y} \leq 5 \cdot 10^{-76}:\\
\;\;\;\;t\\
\mathbf{elif}\;\frac{x}{y} \leq 4 \cdot 10^{-35}:\\
\;\;\;\;\frac{z}{\frac{y}{x}}\\
\mathbf{elif}\;\frac{x}{y} \leq 10^{-11}:\\
\;\;\;\;t\\
\mathbf{elif}\;\frac{x}{y} \leq 10^{+97}:\\
\;\;\;\;\frac{x}{y} \cdot \left(-t\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if (/.f64 x y) < -0.050000000000000003 or 1.0000000000000001e97 < (/.f64 x y) Initial program 94.1%
Taylor expanded in z around inf 54.5%
associate-/l*57.4%
Simplified57.4%
Taylor expanded in z around inf 60.9%
+-commutative60.9%
Simplified60.9%
Taylor expanded in x around inf 59.6%
if -0.050000000000000003 < (/.f64 x y) < -4e-78Initial program 99.8%
Taylor expanded in z around inf 70.3%
associate-/l*85.0%
Simplified85.0%
Taylor expanded in z around inf 84.8%
+-commutative84.8%
Simplified84.8%
Taylor expanded in x around 0 56.8%
if -4e-78 < (/.f64 x y) < -1e-100Initial program 100.0%
Taylor expanded in z around inf 52.4%
associate-/l*100.0%
Simplified100.0%
Taylor expanded in z around inf 100.0%
+-commutative100.0%
Simplified100.0%
Taylor expanded in z around inf 27.6%
associate-/l*75.1%
Simplified75.1%
if -1e-100 < (/.f64 x y) < 4.9999999999999998e-76 or 4.00000000000000003e-35 < (/.f64 x y) < 9.99999999999999939e-12Initial program 98.2%
Taylor expanded in x around 0 83.8%
if 4.9999999999999998e-76 < (/.f64 x y) < 4.00000000000000003e-35Initial program 99.6%
Taylor expanded in z around inf 72.8%
associate-/l*99.6%
Simplified99.6%
Taylor expanded in z around inf 99.6%
+-commutative99.6%
Simplified99.6%
Taylor expanded in x around inf 85.7%
clear-num86.0%
un-div-inv86.2%
Applied egg-rr86.2%
if 9.99999999999999939e-12 < (/.f64 x y) < 1.0000000000000001e97Initial program 99.6%
Taylor expanded in z around 0 55.8%
mul-1-neg55.8%
unsub-neg55.8%
*-rgt-identity55.8%
associate-/l*59.5%
distribute-lft-out--59.4%
Simplified59.4%
Taylor expanded in x around inf 56.9%
mul-1-neg56.9%
distribute-frac-neg256.9%
Simplified56.9%
Final simplification70.3%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (/ z (/ y x))))
(if (<= (/ x y) -0.5)
t_1
(if (<= (/ x y) 5e-76)
t
(if (<= (/ x y) 4e-35) t_1 (if (<= (/ x y) 2e-27) t (* z (/ x y))))))))
double code(double x, double y, double z, double t) {
double t_1 = z / (y / x);
double tmp;
if ((x / y) <= -0.5) {
tmp = t_1;
} else if ((x / y) <= 5e-76) {
tmp = t;
} else if ((x / y) <= 4e-35) {
tmp = t_1;
} else if ((x / y) <= 2e-27) {
tmp = t;
} else {
tmp = z * (x / y);
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = z / (y / x)
if ((x / y) <= (-0.5d0)) then
tmp = t_1
else if ((x / y) <= 5d-76) then
tmp = t
else if ((x / y) <= 4d-35) then
tmp = t_1
else if ((x / y) <= 2d-27) then
tmp = t
else
tmp = z * (x / y)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = z / (y / x);
double tmp;
if ((x / y) <= -0.5) {
tmp = t_1;
} else if ((x / y) <= 5e-76) {
tmp = t;
} else if ((x / y) <= 4e-35) {
tmp = t_1;
} else if ((x / y) <= 2e-27) {
tmp = t;
} else {
tmp = z * (x / y);
}
return tmp;
}
def code(x, y, z, t): t_1 = z / (y / x) tmp = 0 if (x / y) <= -0.5: tmp = t_1 elif (x / y) <= 5e-76: tmp = t elif (x / y) <= 4e-35: tmp = t_1 elif (x / y) <= 2e-27: tmp = t else: tmp = z * (x / y) return tmp
function code(x, y, z, t) t_1 = Float64(z / Float64(y / x)) tmp = 0.0 if (Float64(x / y) <= -0.5) tmp = t_1; elseif (Float64(x / y) <= 5e-76) tmp = t; elseif (Float64(x / y) <= 4e-35) tmp = t_1; elseif (Float64(x / y) <= 2e-27) tmp = t; else tmp = Float64(z * Float64(x / y)); end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = z / (y / x); tmp = 0.0; if ((x / y) <= -0.5) tmp = t_1; elseif ((x / y) <= 5e-76) tmp = t; elseif ((x / y) <= 4e-35) tmp = t_1; elseif ((x / y) <= 2e-27) tmp = t; else tmp = z * (x / y); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(z / N[(y / x), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(x / y), $MachinePrecision], -0.5], t$95$1, If[LessEqual[N[(x / y), $MachinePrecision], 5e-76], t, If[LessEqual[N[(x / y), $MachinePrecision], 4e-35], t$95$1, If[LessEqual[N[(x / y), $MachinePrecision], 2e-27], t, N[(z * N[(x / y), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{z}{\frac{y}{x}}\\
\mathbf{if}\;\frac{x}{y} \leq -0.5:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;\frac{x}{y} \leq 5 \cdot 10^{-76}:\\
\;\;\;\;t\\
\mathbf{elif}\;\frac{x}{y} \leq 4 \cdot 10^{-35}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;\frac{x}{y} \leq 2 \cdot 10^{-27}:\\
\;\;\;\;t\\
\mathbf{else}:\\
\;\;\;\;z \cdot \frac{x}{y}\\
\end{array}
\end{array}
if (/.f64 x y) < -0.5 or 4.9999999999999998e-76 < (/.f64 x y) < 4.00000000000000003e-35Initial program 95.3%
Taylor expanded in z around inf 57.7%
associate-/l*60.8%
Simplified60.8%
Taylor expanded in z around inf 71.3%
+-commutative71.3%
Simplified71.3%
Taylor expanded in x around inf 61.3%
clear-num61.3%
un-div-inv61.3%
Applied egg-rr61.3%
if -0.5 < (/.f64 x y) < 4.9999999999999998e-76 or 4.00000000000000003e-35 < (/.f64 x y) < 2.0000000000000001e-27Initial program 98.5%
Taylor expanded in x around 0 77.7%
if 2.0000000000000001e-27 < (/.f64 x y) Initial program 95.5%
Taylor expanded in z around inf 51.0%
associate-/l*52.2%
Simplified52.2%
Taylor expanded in z around inf 49.1%
+-commutative49.1%
Simplified49.1%
Taylor expanded in x around inf 53.2%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* z (/ x y))))
(if (<= (/ x y) -0.5)
t_1
(if (<= (/ x y) 5e-76)
t
(if (<= (/ x y) 4e-35) (/ x (/ y z)) (if (<= (/ x y) 2e-27) t t_1))))))
double code(double x, double y, double z, double t) {
double t_1 = z * (x / y);
double tmp;
if ((x / y) <= -0.5) {
tmp = t_1;
} else if ((x / y) <= 5e-76) {
tmp = t;
} else if ((x / y) <= 4e-35) {
tmp = x / (y / z);
} else if ((x / y) <= 2e-27) {
tmp = t;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = z * (x / y)
if ((x / y) <= (-0.5d0)) then
tmp = t_1
else if ((x / y) <= 5d-76) then
tmp = t
else if ((x / y) <= 4d-35) then
tmp = x / (y / z)
else if ((x / y) <= 2d-27) then
tmp = t
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = z * (x / y);
double tmp;
if ((x / y) <= -0.5) {
tmp = t_1;
} else if ((x / y) <= 5e-76) {
tmp = t;
} else if ((x / y) <= 4e-35) {
tmp = x / (y / z);
} else if ((x / y) <= 2e-27) {
tmp = t;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t): t_1 = z * (x / y) tmp = 0 if (x / y) <= -0.5: tmp = t_1 elif (x / y) <= 5e-76: tmp = t elif (x / y) <= 4e-35: tmp = x / (y / z) elif (x / y) <= 2e-27: tmp = t else: tmp = t_1 return tmp
function code(x, y, z, t) t_1 = Float64(z * Float64(x / y)) tmp = 0.0 if (Float64(x / y) <= -0.5) tmp = t_1; elseif (Float64(x / y) <= 5e-76) tmp = t; elseif (Float64(x / y) <= 4e-35) tmp = Float64(x / Float64(y / z)); elseif (Float64(x / y) <= 2e-27) tmp = t; else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = z * (x / y); tmp = 0.0; if ((x / y) <= -0.5) tmp = t_1; elseif ((x / y) <= 5e-76) tmp = t; elseif ((x / y) <= 4e-35) tmp = x / (y / z); elseif ((x / y) <= 2e-27) tmp = t; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(z * N[(x / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(x / y), $MachinePrecision], -0.5], t$95$1, If[LessEqual[N[(x / y), $MachinePrecision], 5e-76], t, If[LessEqual[N[(x / y), $MachinePrecision], 4e-35], N[(x / N[(y / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(x / y), $MachinePrecision], 2e-27], t, t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := z \cdot \frac{x}{y}\\
\mathbf{if}\;\frac{x}{y} \leq -0.5:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;\frac{x}{y} \leq 5 \cdot 10^{-76}:\\
\;\;\;\;t\\
\mathbf{elif}\;\frac{x}{y} \leq 4 \cdot 10^{-35}:\\
\;\;\;\;\frac{x}{\frac{y}{z}}\\
\mathbf{elif}\;\frac{x}{y} \leq 2 \cdot 10^{-27}:\\
\;\;\;\;t\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if (/.f64 x y) < -0.5 or 2.0000000000000001e-27 < (/.f64 x y) Initial program 95.1%
Taylor expanded in z around inf 53.2%
associate-/l*53.9%
Simplified53.9%
Taylor expanded in z around inf 57.6%
+-commutative57.6%
Simplified57.6%
Taylor expanded in x around inf 55.5%
if -0.5 < (/.f64 x y) < 4.9999999999999998e-76 or 4.00000000000000003e-35 < (/.f64 x y) < 2.0000000000000001e-27Initial program 98.5%
Taylor expanded in x around 0 77.7%
if 4.9999999999999998e-76 < (/.f64 x y) < 4.00000000000000003e-35Initial program 99.6%
Taylor expanded in z around inf 72.8%
associate-/l*99.6%
Simplified99.6%
Taylor expanded in z around inf 99.6%
+-commutative99.6%
Simplified99.6%
Taylor expanded in z around inf 59.0%
associate-/l*85.7%
Simplified85.7%
clear-num85.5%
un-div-inv86.0%
Applied egg-rr86.0%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* z (/ x y))))
(if (<= (/ x y) -0.5)
t_1
(if (<= (/ x y) 5e-76)
t
(if (<= (/ x y) 4e-35) (* x (/ z y)) (if (<= (/ x y) 2e-27) t t_1))))))
double code(double x, double y, double z, double t) {
double t_1 = z * (x / y);
double tmp;
if ((x / y) <= -0.5) {
tmp = t_1;
} else if ((x / y) <= 5e-76) {
tmp = t;
} else if ((x / y) <= 4e-35) {
tmp = x * (z / y);
} else if ((x / y) <= 2e-27) {
tmp = t;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = z * (x / y)
if ((x / y) <= (-0.5d0)) then
tmp = t_1
else if ((x / y) <= 5d-76) then
tmp = t
else if ((x / y) <= 4d-35) then
tmp = x * (z / y)
else if ((x / y) <= 2d-27) then
tmp = t
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = z * (x / y);
double tmp;
if ((x / y) <= -0.5) {
tmp = t_1;
} else if ((x / y) <= 5e-76) {
tmp = t;
} else if ((x / y) <= 4e-35) {
tmp = x * (z / y);
} else if ((x / y) <= 2e-27) {
tmp = t;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t): t_1 = z * (x / y) tmp = 0 if (x / y) <= -0.5: tmp = t_1 elif (x / y) <= 5e-76: tmp = t elif (x / y) <= 4e-35: tmp = x * (z / y) elif (x / y) <= 2e-27: tmp = t else: tmp = t_1 return tmp
function code(x, y, z, t) t_1 = Float64(z * Float64(x / y)) tmp = 0.0 if (Float64(x / y) <= -0.5) tmp = t_1; elseif (Float64(x / y) <= 5e-76) tmp = t; elseif (Float64(x / y) <= 4e-35) tmp = Float64(x * Float64(z / y)); elseif (Float64(x / y) <= 2e-27) tmp = t; else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = z * (x / y); tmp = 0.0; if ((x / y) <= -0.5) tmp = t_1; elseif ((x / y) <= 5e-76) tmp = t; elseif ((x / y) <= 4e-35) tmp = x * (z / y); elseif ((x / y) <= 2e-27) tmp = t; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(z * N[(x / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(x / y), $MachinePrecision], -0.5], t$95$1, If[LessEqual[N[(x / y), $MachinePrecision], 5e-76], t, If[LessEqual[N[(x / y), $MachinePrecision], 4e-35], N[(x * N[(z / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(x / y), $MachinePrecision], 2e-27], t, t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := z \cdot \frac{x}{y}\\
\mathbf{if}\;\frac{x}{y} \leq -0.5:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;\frac{x}{y} \leq 5 \cdot 10^{-76}:\\
\;\;\;\;t\\
\mathbf{elif}\;\frac{x}{y} \leq 4 \cdot 10^{-35}:\\
\;\;\;\;x \cdot \frac{z}{y}\\
\mathbf{elif}\;\frac{x}{y} \leq 2 \cdot 10^{-27}:\\
\;\;\;\;t\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if (/.f64 x y) < -0.5 or 2.0000000000000001e-27 < (/.f64 x y) Initial program 95.1%
Taylor expanded in z around inf 53.2%
associate-/l*53.9%
Simplified53.9%
Taylor expanded in z around inf 57.6%
+-commutative57.6%
Simplified57.6%
Taylor expanded in x around inf 55.5%
if -0.5 < (/.f64 x y) < 4.9999999999999998e-76 or 4.00000000000000003e-35 < (/.f64 x y) < 2.0000000000000001e-27Initial program 98.5%
Taylor expanded in x around 0 77.7%
if 4.9999999999999998e-76 < (/.f64 x y) < 4.00000000000000003e-35Initial program 99.6%
Taylor expanded in z around inf 72.8%
associate-/l*99.6%
Simplified99.6%
Taylor expanded in z around inf 99.6%
+-commutative99.6%
Simplified99.6%
Taylor expanded in z around inf 59.0%
associate-/l*85.7%
Simplified85.7%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (+ t (* z (/ x y)))) (t_2 (* t (/ (- y x) y))))
(if (<= t -4.2e-40)
t_2
(if (<= t -2.1e-121)
t_1
(if (<= t 1.95e-13)
(+ t (/ x (/ y z)))
(if (<= t 2e+61)
(* t (- 1.0 (/ x y)))
(if (<= t 1.45e+111) t_1 t_2)))))))
double code(double x, double y, double z, double t) {
double t_1 = t + (z * (x / y));
double t_2 = t * ((y - x) / y);
double tmp;
if (t <= -4.2e-40) {
tmp = t_2;
} else if (t <= -2.1e-121) {
tmp = t_1;
} else if (t <= 1.95e-13) {
tmp = t + (x / (y / z));
} else if (t <= 2e+61) {
tmp = t * (1.0 - (x / y));
} else if (t <= 1.45e+111) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = t + (z * (x / y))
t_2 = t * ((y - x) / y)
if (t <= (-4.2d-40)) then
tmp = t_2
else if (t <= (-2.1d-121)) then
tmp = t_1
else if (t <= 1.95d-13) then
tmp = t + (x / (y / z))
else if (t <= 2d+61) then
tmp = t * (1.0d0 - (x / y))
else if (t <= 1.45d+111) then
tmp = t_1
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = t + (z * (x / y));
double t_2 = t * ((y - x) / y);
double tmp;
if (t <= -4.2e-40) {
tmp = t_2;
} else if (t <= -2.1e-121) {
tmp = t_1;
} else if (t <= 1.95e-13) {
tmp = t + (x / (y / z));
} else if (t <= 2e+61) {
tmp = t * (1.0 - (x / y));
} else if (t <= 1.45e+111) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t): t_1 = t + (z * (x / y)) t_2 = t * ((y - x) / y) tmp = 0 if t <= -4.2e-40: tmp = t_2 elif t <= -2.1e-121: tmp = t_1 elif t <= 1.95e-13: tmp = t + (x / (y / z)) elif t <= 2e+61: tmp = t * (1.0 - (x / y)) elif t <= 1.45e+111: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t) t_1 = Float64(t + Float64(z * Float64(x / y))) t_2 = Float64(t * Float64(Float64(y - x) / y)) tmp = 0.0 if (t <= -4.2e-40) tmp = t_2; elseif (t <= -2.1e-121) tmp = t_1; elseif (t <= 1.95e-13) tmp = Float64(t + Float64(x / Float64(y / z))); elseif (t <= 2e+61) tmp = Float64(t * Float64(1.0 - Float64(x / y))); elseif (t <= 1.45e+111) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = t + (z * (x / y)); t_2 = t * ((y - x) / y); tmp = 0.0; if (t <= -4.2e-40) tmp = t_2; elseif (t <= -2.1e-121) tmp = t_1; elseif (t <= 1.95e-13) tmp = t + (x / (y / z)); elseif (t <= 2e+61) tmp = t * (1.0 - (x / y)); elseif (t <= 1.45e+111) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(t + N[(z * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t * N[(N[(y - x), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -4.2e-40], t$95$2, If[LessEqual[t, -2.1e-121], t$95$1, If[LessEqual[t, 1.95e-13], N[(t + N[(x / N[(y / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 2e+61], N[(t * N[(1.0 - N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.45e+111], t$95$1, t$95$2]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + z \cdot \frac{x}{y}\\
t_2 := t \cdot \frac{y - x}{y}\\
\mathbf{if}\;t \leq -4.2 \cdot 10^{-40}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq -2.1 \cdot 10^{-121}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 1.95 \cdot 10^{-13}:\\
\;\;\;\;t + \frac{x}{\frac{y}{z}}\\
\mathbf{elif}\;t \leq 2 \cdot 10^{+61}:\\
\;\;\;\;t \cdot \left(1 - \frac{x}{y}\right)\\
\mathbf{elif}\;t \leq 1.45 \cdot 10^{+111}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if t < -4.20000000000000036e-40 or 1.45e111 < t Initial program 99.0%
Taylor expanded in z around 0 81.2%
mul-1-neg81.2%
unsub-neg81.2%
*-rgt-identity81.2%
associate-/l*90.2%
distribute-lft-out--90.2%
Simplified90.2%
Taylor expanded in y around 0 90.2%
if -4.20000000000000036e-40 < t < -2.0999999999999999e-121 or 1.9999999999999999e61 < t < 1.45e111Initial program 99.9%
Taylor expanded in z around inf 81.4%
associate-/l*84.5%
Simplified84.5%
*-commutative84.5%
associate-/r/90.5%
Applied egg-rr90.5%
clear-num90.4%
associate-/r/90.4%
clear-num90.5%
Applied egg-rr90.5%
if -2.0999999999999999e-121 < t < 1.95000000000000002e-13Initial program 93.5%
associate-*l/91.7%
associate-*r/96.1%
clear-num96.1%
un-div-inv96.2%
Applied egg-rr96.2%
Taylor expanded in z around inf 89.6%
if 1.95000000000000002e-13 < t < 1.9999999999999999e61Initial program 100.0%
Taylor expanded in z around 0 93.3%
mul-1-neg93.3%
unsub-neg93.3%
*-rgt-identity93.3%
associate-/l*100.0%
distribute-lft-out--100.0%
Simplified100.0%
Final simplification90.6%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (+ t (* z (/ x y)))) (t_2 (* t (/ (- y x) y))))
(if (<= t -1.6e-39)
t_2
(if (<= t -2e-121)
t_1
(if (<= t 0.00023)
(+ t (* x (/ z y)))
(if (<= t 2.45e+67)
(* t (- 1.0 (/ x y)))
(if (<= t 1.55e+111) t_1 t_2)))))))
double code(double x, double y, double z, double t) {
double t_1 = t + (z * (x / y));
double t_2 = t * ((y - x) / y);
double tmp;
if (t <= -1.6e-39) {
tmp = t_2;
} else if (t <= -2e-121) {
tmp = t_1;
} else if (t <= 0.00023) {
tmp = t + (x * (z / y));
} else if (t <= 2.45e+67) {
tmp = t * (1.0 - (x / y));
} else if (t <= 1.55e+111) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = t + (z * (x / y))
t_2 = t * ((y - x) / y)
if (t <= (-1.6d-39)) then
tmp = t_2
else if (t <= (-2d-121)) then
tmp = t_1
else if (t <= 0.00023d0) then
tmp = t + (x * (z / y))
else if (t <= 2.45d+67) then
tmp = t * (1.0d0 - (x / y))
else if (t <= 1.55d+111) then
tmp = t_1
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = t + (z * (x / y));
double t_2 = t * ((y - x) / y);
double tmp;
if (t <= -1.6e-39) {
tmp = t_2;
} else if (t <= -2e-121) {
tmp = t_1;
} else if (t <= 0.00023) {
tmp = t + (x * (z / y));
} else if (t <= 2.45e+67) {
tmp = t * (1.0 - (x / y));
} else if (t <= 1.55e+111) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t): t_1 = t + (z * (x / y)) t_2 = t * ((y - x) / y) tmp = 0 if t <= -1.6e-39: tmp = t_2 elif t <= -2e-121: tmp = t_1 elif t <= 0.00023: tmp = t + (x * (z / y)) elif t <= 2.45e+67: tmp = t * (1.0 - (x / y)) elif t <= 1.55e+111: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t) t_1 = Float64(t + Float64(z * Float64(x / y))) t_2 = Float64(t * Float64(Float64(y - x) / y)) tmp = 0.0 if (t <= -1.6e-39) tmp = t_2; elseif (t <= -2e-121) tmp = t_1; elseif (t <= 0.00023) tmp = Float64(t + Float64(x * Float64(z / y))); elseif (t <= 2.45e+67) tmp = Float64(t * Float64(1.0 - Float64(x / y))); elseif (t <= 1.55e+111) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = t + (z * (x / y)); t_2 = t * ((y - x) / y); tmp = 0.0; if (t <= -1.6e-39) tmp = t_2; elseif (t <= -2e-121) tmp = t_1; elseif (t <= 0.00023) tmp = t + (x * (z / y)); elseif (t <= 2.45e+67) tmp = t * (1.0 - (x / y)); elseif (t <= 1.55e+111) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(t + N[(z * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t * N[(N[(y - x), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -1.6e-39], t$95$2, If[LessEqual[t, -2e-121], t$95$1, If[LessEqual[t, 0.00023], N[(t + N[(x * N[(z / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 2.45e+67], N[(t * N[(1.0 - N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.55e+111], t$95$1, t$95$2]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + z \cdot \frac{x}{y}\\
t_2 := t \cdot \frac{y - x}{y}\\
\mathbf{if}\;t \leq -1.6 \cdot 10^{-39}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq -2 \cdot 10^{-121}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 0.00023:\\
\;\;\;\;t + x \cdot \frac{z}{y}\\
\mathbf{elif}\;t \leq 2.45 \cdot 10^{+67}:\\
\;\;\;\;t \cdot \left(1 - \frac{x}{y}\right)\\
\mathbf{elif}\;t \leq 1.55 \cdot 10^{+111}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if t < -1.5999999999999999e-39 or 1.55e111 < t Initial program 99.0%
Taylor expanded in z around 0 81.2%
mul-1-neg81.2%
unsub-neg81.2%
*-rgt-identity81.2%
associate-/l*90.2%
distribute-lft-out--90.2%
Simplified90.2%
Taylor expanded in y around 0 90.2%
if -1.5999999999999999e-39 < t < -2e-121 or 2.44999999999999995e67 < t < 1.55e111Initial program 99.9%
Taylor expanded in z around inf 81.4%
associate-/l*84.5%
Simplified84.5%
*-commutative84.5%
associate-/r/90.5%
Applied egg-rr90.5%
clear-num90.4%
associate-/r/90.4%
clear-num90.5%
Applied egg-rr90.5%
if -2e-121 < t < 2.3000000000000001e-4Initial program 93.5%
Taylor expanded in z around inf 85.2%
associate-/l*89.6%
Simplified89.6%
if 2.3000000000000001e-4 < t < 2.44999999999999995e67Initial program 100.0%
Taylor expanded in z around 0 93.3%
mul-1-neg93.3%
unsub-neg93.3%
*-rgt-identity93.3%
associate-/l*100.0%
distribute-lft-out--100.0%
Simplified100.0%
Final simplification90.5%
(FPCore (x y z t)
:precision binary64
(if (<= z -4.8e+245)
(* x (/ z y))
(if (<= z 6.6e+88)
(* t (/ (- y x) y))
(if (<= z 6e+137)
(/ x (/ y z))
(if (<= z 4.4e+196) (* t (- 1.0 (/ x y))) (/ z (/ y x)))))))
double code(double x, double y, double z, double t) {
double tmp;
if (z <= -4.8e+245) {
tmp = x * (z / y);
} else if (z <= 6.6e+88) {
tmp = t * ((y - x) / y);
} else if (z <= 6e+137) {
tmp = x / (y / z);
} else if (z <= 4.4e+196) {
tmp = t * (1.0 - (x / y));
} else {
tmp = z / (y / x);
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if (z <= (-4.8d+245)) then
tmp = x * (z / y)
else if (z <= 6.6d+88) then
tmp = t * ((y - x) / y)
else if (z <= 6d+137) then
tmp = x / (y / z)
else if (z <= 4.4d+196) then
tmp = t * (1.0d0 - (x / y))
else
tmp = z / (y / x)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (z <= -4.8e+245) {
tmp = x * (z / y);
} else if (z <= 6.6e+88) {
tmp = t * ((y - x) / y);
} else if (z <= 6e+137) {
tmp = x / (y / z);
} else if (z <= 4.4e+196) {
tmp = t * (1.0 - (x / y));
} else {
tmp = z / (y / x);
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -4.8e+245: tmp = x * (z / y) elif z <= 6.6e+88: tmp = t * ((y - x) / y) elif z <= 6e+137: tmp = x / (y / z) elif z <= 4.4e+196: tmp = t * (1.0 - (x / y)) else: tmp = z / (y / x) return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -4.8e+245) tmp = Float64(x * Float64(z / y)); elseif (z <= 6.6e+88) tmp = Float64(t * Float64(Float64(y - x) / y)); elseif (z <= 6e+137) tmp = Float64(x / Float64(y / z)); elseif (z <= 4.4e+196) tmp = Float64(t * Float64(1.0 - Float64(x / y))); else tmp = Float64(z / Float64(y / x)); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (z <= -4.8e+245) tmp = x * (z / y); elseif (z <= 6.6e+88) tmp = t * ((y - x) / y); elseif (z <= 6e+137) tmp = x / (y / z); elseif (z <= 4.4e+196) tmp = t * (1.0 - (x / y)); else tmp = z / (y / x); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -4.8e+245], N[(x * N[(z / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 6.6e+88], N[(t * N[(N[(y - x), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 6e+137], N[(x / N[(y / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 4.4e+196], N[(t * N[(1.0 - N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(z / N[(y / x), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -4.8 \cdot 10^{+245}:\\
\;\;\;\;x \cdot \frac{z}{y}\\
\mathbf{elif}\;z \leq 6.6 \cdot 10^{+88}:\\
\;\;\;\;t \cdot \frac{y - x}{y}\\
\mathbf{elif}\;z \leq 6 \cdot 10^{+137}:\\
\;\;\;\;\frac{x}{\frac{y}{z}}\\
\mathbf{elif}\;z \leq 4.4 \cdot 10^{+196}:\\
\;\;\;\;t \cdot \left(1 - \frac{x}{y}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{z}{\frac{y}{x}}\\
\end{array}
\end{array}
if z < -4.7999999999999996e245Initial program 91.2%
Taylor expanded in z around inf 91.0%
associate-/l*95.4%
Simplified95.4%
Taylor expanded in z around inf 86.2%
+-commutative86.2%
Simplified86.2%
Taylor expanded in z around inf 64.7%
associate-/l*69.0%
Simplified69.0%
if -4.7999999999999996e245 < z < 6.6000000000000006e88Initial program 96.9%
Taylor expanded in z around 0 71.4%
mul-1-neg71.4%
unsub-neg71.4%
*-rgt-identity71.4%
associate-/l*76.3%
distribute-lft-out--76.3%
Simplified76.3%
Taylor expanded in y around 0 76.3%
if 6.6000000000000006e88 < z < 6.0000000000000002e137Initial program 99.6%
Taylor expanded in z around inf 63.3%
associate-/l*87.3%
Simplified87.3%
Taylor expanded in z around inf 87.1%
+-commutative87.1%
Simplified87.1%
Taylor expanded in z around inf 63.3%
associate-/l*75.9%
Simplified75.9%
clear-num75.7%
un-div-inv76.1%
Applied egg-rr76.1%
if 6.0000000000000002e137 < z < 4.39999999999999995e196Initial program 99.8%
Taylor expanded in z around 0 63.8%
mul-1-neg63.8%
unsub-neg63.8%
*-rgt-identity63.8%
associate-/l*69.6%
distribute-lft-out--69.6%
Simplified69.6%
if 4.39999999999999995e196 < z Initial program 99.9%
Taylor expanded in z around inf 82.9%
associate-/l*95.6%
Simplified95.6%
Taylor expanded in z around inf 99.9%
+-commutative99.9%
Simplified99.9%
Taylor expanded in x around inf 75.2%
clear-num75.2%
un-div-inv75.2%
Applied egg-rr75.2%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* t (- 1.0 (/ x y)))))
(if (<= z -9e+244)
(* x (/ z y))
(if (<= z 2.5e+89)
t_1
(if (<= z 4.8e+137)
(/ x (/ y z))
(if (<= z 4.8e+197) t_1 (/ z (/ y x))))))))
double code(double x, double y, double z, double t) {
double t_1 = t * (1.0 - (x / y));
double tmp;
if (z <= -9e+244) {
tmp = x * (z / y);
} else if (z <= 2.5e+89) {
tmp = t_1;
} else if (z <= 4.8e+137) {
tmp = x / (y / z);
} else if (z <= 4.8e+197) {
tmp = t_1;
} else {
tmp = z / (y / x);
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = t * (1.0d0 - (x / y))
if (z <= (-9d+244)) then
tmp = x * (z / y)
else if (z <= 2.5d+89) then
tmp = t_1
else if (z <= 4.8d+137) then
tmp = x / (y / z)
else if (z <= 4.8d+197) then
tmp = t_1
else
tmp = z / (y / x)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = t * (1.0 - (x / y));
double tmp;
if (z <= -9e+244) {
tmp = x * (z / y);
} else if (z <= 2.5e+89) {
tmp = t_1;
} else if (z <= 4.8e+137) {
tmp = x / (y / z);
} else if (z <= 4.8e+197) {
tmp = t_1;
} else {
tmp = z / (y / x);
}
return tmp;
}
def code(x, y, z, t): t_1 = t * (1.0 - (x / y)) tmp = 0 if z <= -9e+244: tmp = x * (z / y) elif z <= 2.5e+89: tmp = t_1 elif z <= 4.8e+137: tmp = x / (y / z) elif z <= 4.8e+197: tmp = t_1 else: tmp = z / (y / x) return tmp
function code(x, y, z, t) t_1 = Float64(t * Float64(1.0 - Float64(x / y))) tmp = 0.0 if (z <= -9e+244) tmp = Float64(x * Float64(z / y)); elseif (z <= 2.5e+89) tmp = t_1; elseif (z <= 4.8e+137) tmp = Float64(x / Float64(y / z)); elseif (z <= 4.8e+197) tmp = t_1; else tmp = Float64(z / Float64(y / x)); end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = t * (1.0 - (x / y)); tmp = 0.0; if (z <= -9e+244) tmp = x * (z / y); elseif (z <= 2.5e+89) tmp = t_1; elseif (z <= 4.8e+137) tmp = x / (y / z); elseif (z <= 4.8e+197) tmp = t_1; else tmp = z / (y / x); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(t * N[(1.0 - N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -9e+244], N[(x * N[(z / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 2.5e+89], t$95$1, If[LessEqual[z, 4.8e+137], N[(x / N[(y / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 4.8e+197], t$95$1, N[(z / N[(y / x), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t \cdot \left(1 - \frac{x}{y}\right)\\
\mathbf{if}\;z \leq -9 \cdot 10^{+244}:\\
\;\;\;\;x \cdot \frac{z}{y}\\
\mathbf{elif}\;z \leq 2.5 \cdot 10^{+89}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 4.8 \cdot 10^{+137}:\\
\;\;\;\;\frac{x}{\frac{y}{z}}\\
\mathbf{elif}\;z \leq 4.8 \cdot 10^{+197}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;\frac{z}{\frac{y}{x}}\\
\end{array}
\end{array}
if z < -9.0000000000000005e244Initial program 91.2%
Taylor expanded in z around inf 91.0%
associate-/l*95.4%
Simplified95.4%
Taylor expanded in z around inf 86.2%
+-commutative86.2%
Simplified86.2%
Taylor expanded in z around inf 64.7%
associate-/l*69.0%
Simplified69.0%
if -9.0000000000000005e244 < z < 2.49999999999999992e89 or 4.79999999999999966e137 < z < 4.7999999999999998e197Initial program 97.1%
Taylor expanded in z around 0 70.8%
mul-1-neg70.8%
unsub-neg70.8%
*-rgt-identity70.8%
associate-/l*75.8%
distribute-lft-out--75.8%
Simplified75.8%
if 2.49999999999999992e89 < z < 4.79999999999999966e137Initial program 99.6%
Taylor expanded in z around inf 63.3%
associate-/l*87.3%
Simplified87.3%
Taylor expanded in z around inf 87.1%
+-commutative87.1%
Simplified87.1%
Taylor expanded in z around inf 63.3%
associate-/l*75.9%
Simplified75.9%
clear-num75.7%
un-div-inv76.1%
Applied egg-rr76.1%
if 4.7999999999999998e197 < z Initial program 99.9%
Taylor expanded in z around inf 82.9%
associate-/l*95.6%
Simplified95.6%
Taylor expanded in z around inf 99.9%
+-commutative99.9%
Simplified99.9%
Taylor expanded in x around inf 75.2%
clear-num75.2%
un-div-inv75.2%
Applied egg-rr75.2%
(FPCore (x y z t)
:precision binary64
(if (<= y -6.5e+115)
t
(if (or (<= y 7.5e+64) (and (not (<= y 1.05e+98)) (<= y 1.75e+101)))
(* x (/ z y))
t)))
double code(double x, double y, double z, double t) {
double tmp;
if (y <= -6.5e+115) {
tmp = t;
} else if ((y <= 7.5e+64) || (!(y <= 1.05e+98) && (y <= 1.75e+101))) {
tmp = x * (z / y);
} else {
tmp = t;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if (y <= (-6.5d+115)) then
tmp = t
else if ((y <= 7.5d+64) .or. (.not. (y <= 1.05d+98)) .and. (y <= 1.75d+101)) then
tmp = x * (z / y)
else
tmp = t
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (y <= -6.5e+115) {
tmp = t;
} else if ((y <= 7.5e+64) || (!(y <= 1.05e+98) && (y <= 1.75e+101))) {
tmp = x * (z / y);
} else {
tmp = t;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if y <= -6.5e+115: tmp = t elif (y <= 7.5e+64) or (not (y <= 1.05e+98) and (y <= 1.75e+101)): tmp = x * (z / y) else: tmp = t return tmp
function code(x, y, z, t) tmp = 0.0 if (y <= -6.5e+115) tmp = t; elseif ((y <= 7.5e+64) || (!(y <= 1.05e+98) && (y <= 1.75e+101))) tmp = Float64(x * Float64(z / y)); else tmp = t; end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (y <= -6.5e+115) tmp = t; elseif ((y <= 7.5e+64) || (~((y <= 1.05e+98)) && (y <= 1.75e+101))) tmp = x * (z / y); else tmp = t; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[y, -6.5e+115], t, If[Or[LessEqual[y, 7.5e+64], And[N[Not[LessEqual[y, 1.05e+98]], $MachinePrecision], LessEqual[y, 1.75e+101]]], N[(x * N[(z / y), $MachinePrecision]), $MachinePrecision], t]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -6.5 \cdot 10^{+115}:\\
\;\;\;\;t\\
\mathbf{elif}\;y \leq 7.5 \cdot 10^{+64} \lor \neg \left(y \leq 1.05 \cdot 10^{+98}\right) \land y \leq 1.75 \cdot 10^{+101}:\\
\;\;\;\;x \cdot \frac{z}{y}\\
\mathbf{else}:\\
\;\;\;\;t\\
\end{array}
\end{array}
if y < -6.49999999999999966e115 or 7.5000000000000005e64 < y < 1.05000000000000002e98 or 1.75000000000000012e101 < y Initial program 99.0%
Taylor expanded in x around 0 69.8%
if -6.49999999999999966e115 < y < 7.5000000000000005e64 or 1.05000000000000002e98 < y < 1.75000000000000012e101Initial program 95.7%
Taylor expanded in z around inf 67.9%
associate-/l*68.4%
Simplified68.4%
Taylor expanded in z around inf 69.3%
+-commutative69.3%
Simplified69.3%
Taylor expanded in z around inf 47.6%
associate-/l*49.3%
Simplified49.3%
Final simplification57.2%
(FPCore (x y z t) :precision binary64 (if (<= t -1.4e-41) (/ t (/ y (- y x))) (if (<= t 6.4e-40) (+ t (/ x (/ y z))) (- t (/ t (/ y x))))))
double code(double x, double y, double z, double t) {
double tmp;
if (t <= -1.4e-41) {
tmp = t / (y / (y - x));
} else if (t <= 6.4e-40) {
tmp = t + (x / (y / z));
} else {
tmp = t - (t / (y / x));
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if (t <= (-1.4d-41)) then
tmp = t / (y / (y - x))
else if (t <= 6.4d-40) then
tmp = t + (x / (y / z))
else
tmp = t - (t / (y / x))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (t <= -1.4e-41) {
tmp = t / (y / (y - x));
} else if (t <= 6.4e-40) {
tmp = t + (x / (y / z));
} else {
tmp = t - (t / (y / x));
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if t <= -1.4e-41: tmp = t / (y / (y - x)) elif t <= 6.4e-40: tmp = t + (x / (y / z)) else: tmp = t - (t / (y / x)) return tmp
function code(x, y, z, t) tmp = 0.0 if (t <= -1.4e-41) tmp = Float64(t / Float64(y / Float64(y - x))); elseif (t <= 6.4e-40) tmp = Float64(t + Float64(x / Float64(y / z))); else tmp = Float64(t - Float64(t / Float64(y / x))); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (t <= -1.4e-41) tmp = t / (y / (y - x)); elseif (t <= 6.4e-40) tmp = t + (x / (y / z)); else tmp = t - (t / (y / x)); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[t, -1.4e-41], N[(t / N[(y / N[(y - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 6.4e-40], N[(t + N[(x / N[(y / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t - N[(t / N[(y / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.4 \cdot 10^{-41}:\\
\;\;\;\;\frac{t}{\frac{y}{y - x}}\\
\mathbf{elif}\;t \leq 6.4 \cdot 10^{-40}:\\
\;\;\;\;t + \frac{x}{\frac{y}{z}}\\
\mathbf{else}:\\
\;\;\;\;t - \frac{t}{\frac{y}{x}}\\
\end{array}
\end{array}
if t < -1.4000000000000001e-41Initial program 98.4%
Taylor expanded in z around 0 79.2%
mul-1-neg79.2%
unsub-neg79.2%
*-rgt-identity79.2%
associate-/l*86.3%
distribute-lft-out--86.3%
Simplified86.3%
Taylor expanded in y around 0 86.3%
clear-num86.3%
un-div-inv86.7%
Applied egg-rr86.7%
if -1.4000000000000001e-41 < t < 6.40000000000000004e-40Initial program 94.3%
associate-*l/91.9%
associate-*r/96.5%
clear-num96.5%
un-div-inv96.6%
Applied egg-rr96.6%
Taylor expanded in z around inf 90.1%
if 6.40000000000000004e-40 < t Initial program 100.0%
Taylor expanded in z around 0 80.3%
mul-1-neg80.3%
*-commutative80.3%
associate-/l*82.1%
distribute-rgt-neg-in82.1%
distribute-neg-frac282.1%
Simplified82.1%
*-commutative82.1%
add-sqr-sqrt44.0%
sqrt-unprod57.3%
sqr-neg57.3%
sqrt-unprod20.8%
add-sqr-sqrt52.0%
associate-/r/55.3%
frac-2neg55.3%
distribute-neg-frac55.3%
add-sqr-sqrt31.2%
sqrt-unprod70.3%
sqr-neg70.3%
sqrt-unprod43.4%
add-sqr-sqrt88.6%
Applied egg-rr88.6%
Final simplification88.8%
(FPCore (x y z t) :precision binary64 (if (<= t -1.6e-39) (/ t (/ y (- y x))) (if (<= t 8.5e-40) (+ t (/ x (/ y z))) (* t (/ (- y x) y)))))
double code(double x, double y, double z, double t) {
double tmp;
if (t <= -1.6e-39) {
tmp = t / (y / (y - x));
} else if (t <= 8.5e-40) {
tmp = t + (x / (y / z));
} else {
tmp = t * ((y - x) / y);
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if (t <= (-1.6d-39)) then
tmp = t / (y / (y - x))
else if (t <= 8.5d-40) then
tmp = t + (x / (y / z))
else
tmp = t * ((y - x) / y)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (t <= -1.6e-39) {
tmp = t / (y / (y - x));
} else if (t <= 8.5e-40) {
tmp = t + (x / (y / z));
} else {
tmp = t * ((y - x) / y);
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if t <= -1.6e-39: tmp = t / (y / (y - x)) elif t <= 8.5e-40: tmp = t + (x / (y / z)) else: tmp = t * ((y - x) / y) return tmp
function code(x, y, z, t) tmp = 0.0 if (t <= -1.6e-39) tmp = Float64(t / Float64(y / Float64(y - x))); elseif (t <= 8.5e-40) tmp = Float64(t + Float64(x / Float64(y / z))); else tmp = Float64(t * Float64(Float64(y - x) / y)); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (t <= -1.6e-39) tmp = t / (y / (y - x)); elseif (t <= 8.5e-40) tmp = t + (x / (y / z)); else tmp = t * ((y - x) / y); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[t, -1.6e-39], N[(t / N[(y / N[(y - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 8.5e-40], N[(t + N[(x / N[(y / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t * N[(N[(y - x), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.6 \cdot 10^{-39}:\\
\;\;\;\;\frac{t}{\frac{y}{y - x}}\\
\mathbf{elif}\;t \leq 8.5 \cdot 10^{-40}:\\
\;\;\;\;t + \frac{x}{\frac{y}{z}}\\
\mathbf{else}:\\
\;\;\;\;t \cdot \frac{y - x}{y}\\
\end{array}
\end{array}
if t < -1.5999999999999999e-39Initial program 98.4%
Taylor expanded in z around 0 79.2%
mul-1-neg79.2%
unsub-neg79.2%
*-rgt-identity79.2%
associate-/l*86.3%
distribute-lft-out--86.3%
Simplified86.3%
Taylor expanded in y around 0 86.3%
clear-num86.3%
un-div-inv86.7%
Applied egg-rr86.7%
if -1.5999999999999999e-39 < t < 8.4999999999999998e-40Initial program 94.3%
associate-*l/91.9%
associate-*r/96.5%
clear-num96.5%
un-div-inv96.6%
Applied egg-rr96.6%
Taylor expanded in z around inf 90.1%
if 8.4999999999999998e-40 < t Initial program 100.0%
Taylor expanded in z around 0 80.3%
mul-1-neg80.3%
unsub-neg80.3%
*-rgt-identity80.3%
associate-/l*88.6%
distribute-lft-out--88.5%
Simplified88.5%
Taylor expanded in y around 0 88.6%
Final simplification88.8%
(FPCore (x y z t) :precision binary64 (if (<= t -7.6e+71) (* t (- 1.0 (/ x y))) (if (<= t 3.6e-41) (+ t (* x (/ z y))) (* t (/ (- y x) y)))))
double code(double x, double y, double z, double t) {
double tmp;
if (t <= -7.6e+71) {
tmp = t * (1.0 - (x / y));
} else if (t <= 3.6e-41) {
tmp = t + (x * (z / y));
} else {
tmp = t * ((y - x) / y);
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if (t <= (-7.6d+71)) then
tmp = t * (1.0d0 - (x / y))
else if (t <= 3.6d-41) then
tmp = t + (x * (z / y))
else
tmp = t * ((y - x) / y)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (t <= -7.6e+71) {
tmp = t * (1.0 - (x / y));
} else if (t <= 3.6e-41) {
tmp = t + (x * (z / y));
} else {
tmp = t * ((y - x) / y);
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if t <= -7.6e+71: tmp = t * (1.0 - (x / y)) elif t <= 3.6e-41: tmp = t + (x * (z / y)) else: tmp = t * ((y - x) / y) return tmp
function code(x, y, z, t) tmp = 0.0 if (t <= -7.6e+71) tmp = Float64(t * Float64(1.0 - Float64(x / y))); elseif (t <= 3.6e-41) tmp = Float64(t + Float64(x * Float64(z / y))); else tmp = Float64(t * Float64(Float64(y - x) / y)); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (t <= -7.6e+71) tmp = t * (1.0 - (x / y)); elseif (t <= 3.6e-41) tmp = t + (x * (z / y)); else tmp = t * ((y - x) / y); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[t, -7.6e+71], N[(t * N[(1.0 - N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 3.6e-41], N[(t + N[(x * N[(z / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t * N[(N[(y - x), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -7.6 \cdot 10^{+71}:\\
\;\;\;\;t \cdot \left(1 - \frac{x}{y}\right)\\
\mathbf{elif}\;t \leq 3.6 \cdot 10^{-41}:\\
\;\;\;\;t + x \cdot \frac{z}{y}\\
\mathbf{else}:\\
\;\;\;\;t \cdot \frac{y - x}{y}\\
\end{array}
\end{array}
if t < -7.6000000000000001e71Initial program 99.8%
Taylor expanded in z around 0 79.2%
mul-1-neg79.2%
unsub-neg79.2%
*-rgt-identity79.2%
associate-/l*91.2%
distribute-lft-out--91.2%
Simplified91.2%
if -7.6000000000000001e71 < t < 3.6e-41Initial program 94.4%
Taylor expanded in z around inf 82.5%
associate-/l*87.2%
Simplified87.2%
if 3.6e-41 < t Initial program 100.0%
Taylor expanded in z around 0 80.3%
mul-1-neg80.3%
unsub-neg80.3%
*-rgt-identity80.3%
associate-/l*88.6%
distribute-lft-out--88.5%
Simplified88.5%
Taylor expanded in y around 0 88.6%
Final simplification88.3%
(FPCore (x y z t) :precision binary64 (+ t (* (- z t) (/ x y))))
double code(double x, double y, double z, double t) {
return t + ((z - t) * (x / y));
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = t + ((z - t) * (x / y))
end function
public static double code(double x, double y, double z, double t) {
return t + ((z - t) * (x / y));
}
def code(x, y, z, t): return t + ((z - t) * (x / y))
function code(x, y, z, t) return Float64(t + Float64(Float64(z - t) * Float64(x / y))) end
function tmp = code(x, y, z, t) tmp = t + ((z - t) * (x / y)); end
code[x_, y_, z_, t_] := N[(t + N[(N[(z - t), $MachinePrecision] * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
t + \left(z - t\right) \cdot \frac{x}{y}
\end{array}
Initial program 96.9%
Final simplification96.9%
(FPCore (x y z t) :precision binary64 t)
double code(double x, double y, double z, double t) {
return t;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = t
end function
public static double code(double x, double y, double z, double t) {
return t;
}
def code(x, y, z, t): return t
function code(x, y, z, t) return t end
function tmp = code(x, y, z, t) tmp = t; end
code[x_, y_, z_, t_] := t
\begin{array}{l}
\\
t
\end{array}
Initial program 96.9%
Taylor expanded in x around 0 41.2%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (+ (* (/ x y) (- z t)) t)))
(if (< z 2.759456554562692e-282)
t_1
(if (< z 2.326994450874436e-110) (+ (* x (/ (- z t) y)) t) t_1))))
double code(double x, double y, double z, double t) {
double t_1 = ((x / y) * (z - t)) + t;
double tmp;
if (z < 2.759456554562692e-282) {
tmp = t_1;
} else if (z < 2.326994450874436e-110) {
tmp = (x * ((z - t) / y)) + t;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = ((x / y) * (z - t)) + t
if (z < 2.759456554562692d-282) then
tmp = t_1
else if (z < 2.326994450874436d-110) then
tmp = (x * ((z - t) / y)) + t
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = ((x / y) * (z - t)) + t;
double tmp;
if (z < 2.759456554562692e-282) {
tmp = t_1;
} else if (z < 2.326994450874436e-110) {
tmp = (x * ((z - t) / y)) + t;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t): t_1 = ((x / y) * (z - t)) + t tmp = 0 if z < 2.759456554562692e-282: tmp = t_1 elif z < 2.326994450874436e-110: tmp = (x * ((z - t) / y)) + t else: tmp = t_1 return tmp
function code(x, y, z, t) t_1 = Float64(Float64(Float64(x / y) * Float64(z - t)) + t) tmp = 0.0 if (z < 2.759456554562692e-282) tmp = t_1; elseif (z < 2.326994450874436e-110) tmp = Float64(Float64(x * Float64(Float64(z - t) / y)) + t); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = ((x / y) * (z - t)) + t; tmp = 0.0; if (z < 2.759456554562692e-282) tmp = t_1; elseif (z < 2.326994450874436e-110) tmp = (x * ((z - t) / y)) + t; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(N[(N[(x / y), $MachinePrecision] * N[(z - t), $MachinePrecision]), $MachinePrecision] + t), $MachinePrecision]}, If[Less[z, 2.759456554562692e-282], t$95$1, If[Less[z, 2.326994450874436e-110], N[(N[(x * N[(N[(z - t), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision] + t), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{x}{y} \cdot \left(z - t\right) + t\\
\mathbf{if}\;z < 2.759456554562692 \cdot 10^{-282}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z < 2.326994450874436 \cdot 10^{-110}:\\
\;\;\;\;x \cdot \frac{z - t}{y} + t\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
herbie shell --seed 2024107
(FPCore (x y z t)
:name "Numeric.Signal.Multichannel:$cget from hsignal-0.2.7.1"
:precision binary64
:alt
(if (< z 2.759456554562692e-282) (+ (* (/ x y) (- z t)) t) (if (< z 2.326994450874436e-110) (+ (* x (/ (- z t) y)) t) (+ (* (/ x y) (- z t)) t)))
(+ (* (/ x y) (- z t)) t))