
(FPCore (x y z t a b) :precision binary64 (/ (+ (* x y) (* z (- t a))) (+ y (* z (- b y)))))
double code(double x, double y, double z, double t, double a, double b) {
return ((x * y) + (z * (t - a))) / (y + (z * (b - y)));
}
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))) / (y + (z * (b - y)))
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return ((x * y) + (z * (t - a))) / (y + (z * (b - y)));
}
def code(x, y, z, t, a, b): return ((x * y) + (z * (t - a))) / (y + (z * (b - y)))
function code(x, y, z, t, a, b) return Float64(Float64(Float64(x * y) + Float64(z * Float64(t - a))) / Float64(y + Float64(z * Float64(b - y)))) end
function tmp = code(x, y, z, t, a, b) tmp = ((x * y) + (z * (t - a))) / (y + (z * (b - y))); end
code[x_, y_, z_, t_, a_, b_] := N[(N[(N[(x * y), $MachinePrecision] + N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(y + N[(z * N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 20 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b) :precision binary64 (/ (+ (* x y) (* z (- t a))) (+ y (* z (- b y)))))
double code(double x, double y, double z, double t, double a, double b) {
return ((x * y) + (z * (t - a))) / (y + (z * (b - y)));
}
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))) / (y + (z * (b - y)))
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return ((x * y) + (z * (t - a))) / (y + (z * (b - y)));
}
def code(x, y, z, t, a, b): return ((x * y) + (z * (t - a))) / (y + (z * (b - y)))
function code(x, y, z, t, a, b) return Float64(Float64(Float64(x * y) + Float64(z * Float64(t - a))) / Float64(y + Float64(z * Float64(b - y)))) end
function tmp = code(x, y, z, t, a, b) tmp = ((x * y) + (z * (t - a))) / (y + (z * (b - y))); end
code[x_, y_, z_, t_, a_, b_] := N[(N[(N[(x * y), $MachinePrecision] + N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(y + N[(z * N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}
\end{array}
(FPCore (x y z t a b)
:precision binary64
(if (or (<= z -880000000000.0) (not (<= z 1.22e+62)))
(-
(+ (/ (* (/ x z) y) (- b y)) (/ (- t a) (- b y)))
(* y (/ (/ (- t a) (pow (- b y) 2.0)) z)))
(/ (fma x y (* z (- t a))) (fma z (- b y) y))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -880000000000.0) || !(z <= 1.22e+62)) {
tmp = ((((x / z) * y) / (b - y)) + ((t - a) / (b - y))) - (y * (((t - a) / pow((b - y), 2.0)) / z));
} else {
tmp = fma(x, y, (z * (t - a))) / fma(z, (b - y), y);
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -880000000000.0) || !(z <= 1.22e+62)) tmp = Float64(Float64(Float64(Float64(Float64(x / z) * y) / Float64(b - y)) + Float64(Float64(t - a) / Float64(b - y))) - Float64(y * Float64(Float64(Float64(t - a) / (Float64(b - y) ^ 2.0)) / z))); else tmp = Float64(fma(x, y, Float64(z * Float64(t - a))) / fma(z, Float64(b - y), y)); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -880000000000.0], N[Not[LessEqual[z, 1.22e+62]], $MachinePrecision]], N[(N[(N[(N[(N[(x / z), $MachinePrecision] * y), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision] + N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y * N[(N[(N[(t - a), $MachinePrecision] / N[Power[N[(b - y), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x * y + N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(z * N[(b - y), $MachinePrecision] + y), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -880000000000 \lor \neg \left(z \leq 1.22 \cdot 10^{+62}\right):\\
\;\;\;\;\left(\frac{\frac{x}{z} \cdot y}{b - y} + \frac{t - a}{b - y}\right) - y \cdot \frac{\frac{t - a}{{\left(b - y\right)}^{2}}}{z}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(x, y, z \cdot \left(t - a\right)\right)}{\mathsf{fma}\left(z, b - y, y\right)}\\
\end{array}
\end{array}
if z < -8.8e11 or 1.21999999999999998e62 < z Initial program 43.0%
Taylor expanded in z around inf 66.7%
associate--r+66.7%
+-commutative66.7%
associate--l+66.7%
times-frac77.9%
associate-*r/74.4%
div-sub75.3%
associate-/l*90.8%
*-commutative90.8%
associate-/r*89.0%
Simplified89.0%
if -8.8e11 < z < 1.21999999999999998e62Initial program 89.6%
fma-define89.6%
+-commutative89.6%
fma-define89.6%
Simplified89.6%
Final simplification89.4%
(FPCore (x y z t a b)
:precision binary64
(if (or (<= z -250000000000.0) (not (<= z 1.55e+62)))
(-
(+ (/ (* (/ x z) y) (- b y)) (/ (- t a) (- b y)))
(* y (/ (/ (- t a) (pow (- b y) 2.0)) z)))
(/ (+ (* z (- t a)) (* x y)) (+ y (* z (- b y))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -250000000000.0) || !(z <= 1.55e+62)) {
tmp = ((((x / z) * y) / (b - y)) + ((t - a) / (b - y))) - (y * (((t - a) / pow((b - y), 2.0)) / z));
} else {
tmp = ((z * (t - a)) + (x * y)) / (y + (z * (b - 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 <= (-250000000000.0d0)) .or. (.not. (z <= 1.55d+62))) then
tmp = ((((x / z) * y) / (b - y)) + ((t - a) / (b - y))) - (y * (((t - a) / ((b - y) ** 2.0d0)) / z))
else
tmp = ((z * (t - a)) + (x * y)) / (y + (z * (b - 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 <= -250000000000.0) || !(z <= 1.55e+62)) {
tmp = ((((x / z) * y) / (b - y)) + ((t - a) / (b - y))) - (y * (((t - a) / Math.pow((b - y), 2.0)) / z));
} else {
tmp = ((z * (t - a)) + (x * y)) / (y + (z * (b - y)));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -250000000000.0) or not (z <= 1.55e+62): tmp = ((((x / z) * y) / (b - y)) + ((t - a) / (b - y))) - (y * (((t - a) / math.pow((b - y), 2.0)) / z)) else: tmp = ((z * (t - a)) + (x * y)) / (y + (z * (b - y))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -250000000000.0) || !(z <= 1.55e+62)) tmp = Float64(Float64(Float64(Float64(Float64(x / z) * y) / Float64(b - y)) + Float64(Float64(t - a) / Float64(b - y))) - Float64(y * Float64(Float64(Float64(t - a) / (Float64(b - y) ^ 2.0)) / z))); else tmp = Float64(Float64(Float64(z * Float64(t - a)) + Float64(x * y)) / Float64(y + Float64(z * Float64(b - y)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -250000000000.0) || ~((z <= 1.55e+62))) tmp = ((((x / z) * y) / (b - y)) + ((t - a) / (b - y))) - (y * (((t - a) / ((b - y) ^ 2.0)) / z)); else tmp = ((z * (t - a)) + (x * y)) / (y + (z * (b - y))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -250000000000.0], N[Not[LessEqual[z, 1.55e+62]], $MachinePrecision]], N[(N[(N[(N[(N[(x / z), $MachinePrecision] * y), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision] + N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y * N[(N[(N[(t - a), $MachinePrecision] / N[Power[N[(b - y), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision] + N[(x * y), $MachinePrecision]), $MachinePrecision] / N[(y + N[(z * N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -250000000000 \lor \neg \left(z \leq 1.55 \cdot 10^{+62}\right):\\
\;\;\;\;\left(\frac{\frac{x}{z} \cdot y}{b - y} + \frac{t - a}{b - y}\right) - y \cdot \frac{\frac{t - a}{{\left(b - y\right)}^{2}}}{z}\\
\mathbf{else}:\\
\;\;\;\;\frac{z \cdot \left(t - a\right) + x \cdot y}{y + z \cdot \left(b - y\right)}\\
\end{array}
\end{array}
if z < -2.5e11 or 1.55000000000000007e62 < z Initial program 43.0%
Taylor expanded in z around inf 66.7%
associate--r+66.7%
+-commutative66.7%
associate--l+66.7%
times-frac77.9%
associate-*r/74.4%
div-sub75.3%
associate-/l*90.8%
*-commutative90.8%
associate-/r*89.0%
Simplified89.0%
if -2.5e11 < z < 1.55000000000000007e62Initial program 89.6%
Final simplification89.4%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ y (* z (- b y)))))
(if (or (<= z -2.05e+30) (not (<= z 8e+77)))
(/ (- t a) (- b y))
(+ (/ (* z a) (- (* z (- y b)) y)) (+ (/ (* z t) t_1) (/ (* x y) t_1))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = y + (z * (b - y));
double tmp;
if ((z <= -2.05e+30) || !(z <= 8e+77)) {
tmp = (t - a) / (b - y);
} else {
tmp = ((z * a) / ((z * (y - b)) - y)) + (((z * t) / t_1) + ((x * y) / 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 = y + (z * (b - y))
if ((z <= (-2.05d+30)) .or. (.not. (z <= 8d+77))) then
tmp = (t - a) / (b - y)
else
tmp = ((z * a) / ((z * (y - b)) - y)) + (((z * t) / t_1) + ((x * y) / 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 = y + (z * (b - y));
double tmp;
if ((z <= -2.05e+30) || !(z <= 8e+77)) {
tmp = (t - a) / (b - y);
} else {
tmp = ((z * a) / ((z * (y - b)) - y)) + (((z * t) / t_1) + ((x * y) / t_1));
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = y + (z * (b - y)) tmp = 0 if (z <= -2.05e+30) or not (z <= 8e+77): tmp = (t - a) / (b - y) else: tmp = ((z * a) / ((z * (y - b)) - y)) + (((z * t) / t_1) + ((x * y) / t_1)) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(y + Float64(z * Float64(b - y))) tmp = 0.0 if ((z <= -2.05e+30) || !(z <= 8e+77)) tmp = Float64(Float64(t - a) / Float64(b - y)); else tmp = Float64(Float64(Float64(z * a) / Float64(Float64(z * Float64(y - b)) - y)) + Float64(Float64(Float64(z * t) / t_1) + Float64(Float64(x * y) / t_1))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = y + (z * (b - y)); tmp = 0.0; if ((z <= -2.05e+30) || ~((z <= 8e+77))) tmp = (t - a) / (b - y); else tmp = ((z * a) / ((z * (y - b)) - y)) + (((z * t) / t_1) + ((x * y) / t_1)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(y + N[(z * N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[z, -2.05e+30], N[Not[LessEqual[z, 8e+77]], $MachinePrecision]], N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision], N[(N[(N[(z * a), $MachinePrecision] / N[(N[(z * N[(y - b), $MachinePrecision]), $MachinePrecision] - y), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(z * t), $MachinePrecision] / t$95$1), $MachinePrecision] + N[(N[(x * y), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y + z \cdot \left(b - y\right)\\
\mathbf{if}\;z \leq -2.05 \cdot 10^{+30} \lor \neg \left(z \leq 8 \cdot 10^{+77}\right):\\
\;\;\;\;\frac{t - a}{b - y}\\
\mathbf{else}:\\
\;\;\;\;\frac{z \cdot a}{z \cdot \left(y - b\right) - y} + \left(\frac{z \cdot t}{t\_1} + \frac{x \cdot y}{t\_1}\right)\\
\end{array}
\end{array}
if z < -2.05000000000000003e30 or 7.99999999999999986e77 < z Initial program 39.8%
Taylor expanded in z around inf 79.5%
if -2.05000000000000003e30 < z < 7.99999999999999986e77Initial program 88.9%
Taylor expanded in t around 0 89.0%
Final simplification85.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (- x (* z (/ a y))))
(t_2 (/ (- t a) (- b y)))
(t_3 (/ (* x y) (+ y (* z b)))))
(if (<= z -3.8e-47)
t_2
(if (<= z -4.7e-288)
t_1
(if (<= z 4.4e-268)
t_3
(if (<= z 2.5e-128)
t_1
(if (or (<= z 2.4e-46) (not (<= z 0.00046))) t_2 t_3)))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x - (z * (a / y));
double t_2 = (t - a) / (b - y);
double t_3 = (x * y) / (y + (z * b));
double tmp;
if (z <= -3.8e-47) {
tmp = t_2;
} else if (z <= -4.7e-288) {
tmp = t_1;
} else if (z <= 4.4e-268) {
tmp = t_3;
} else if (z <= 2.5e-128) {
tmp = t_1;
} else if ((z <= 2.4e-46) || !(z <= 0.00046)) {
tmp = t_2;
} else {
tmp = t_3;
}
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) :: t_3
real(8) :: tmp
t_1 = x - (z * (a / y))
t_2 = (t - a) / (b - y)
t_3 = (x * y) / (y + (z * b))
if (z <= (-3.8d-47)) then
tmp = t_2
else if (z <= (-4.7d-288)) then
tmp = t_1
else if (z <= 4.4d-268) then
tmp = t_3
else if (z <= 2.5d-128) then
tmp = t_1
else if ((z <= 2.4d-46) .or. (.not. (z <= 0.00046d0))) then
tmp = t_2
else
tmp = t_3
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 - (z * (a / y));
double t_2 = (t - a) / (b - y);
double t_3 = (x * y) / (y + (z * b));
double tmp;
if (z <= -3.8e-47) {
tmp = t_2;
} else if (z <= -4.7e-288) {
tmp = t_1;
} else if (z <= 4.4e-268) {
tmp = t_3;
} else if (z <= 2.5e-128) {
tmp = t_1;
} else if ((z <= 2.4e-46) || !(z <= 0.00046)) {
tmp = t_2;
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x - (z * (a / y)) t_2 = (t - a) / (b - y) t_3 = (x * y) / (y + (z * b)) tmp = 0 if z <= -3.8e-47: tmp = t_2 elif z <= -4.7e-288: tmp = t_1 elif z <= 4.4e-268: tmp = t_3 elif z <= 2.5e-128: tmp = t_1 elif (z <= 2.4e-46) or not (z <= 0.00046): tmp = t_2 else: tmp = t_3 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x - Float64(z * Float64(a / y))) t_2 = Float64(Float64(t - a) / Float64(b - y)) t_3 = Float64(Float64(x * y) / Float64(y + Float64(z * b))) tmp = 0.0 if (z <= -3.8e-47) tmp = t_2; elseif (z <= -4.7e-288) tmp = t_1; elseif (z <= 4.4e-268) tmp = t_3; elseif (z <= 2.5e-128) tmp = t_1; elseif ((z <= 2.4e-46) || !(z <= 0.00046)) tmp = t_2; else tmp = t_3; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x - (z * (a / y)); t_2 = (t - a) / (b - y); t_3 = (x * y) / (y + (z * b)); tmp = 0.0; if (z <= -3.8e-47) tmp = t_2; elseif (z <= -4.7e-288) tmp = t_1; elseif (z <= 4.4e-268) tmp = t_3; elseif (z <= 2.5e-128) tmp = t_1; elseif ((z <= 2.4e-46) || ~((z <= 0.00046))) tmp = t_2; else tmp = t_3; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x - N[(z * N[(a / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(x * y), $MachinePrecision] / N[(y + N[(z * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -3.8e-47], t$95$2, If[LessEqual[z, -4.7e-288], t$95$1, If[LessEqual[z, 4.4e-268], t$95$3, If[LessEqual[z, 2.5e-128], t$95$1, If[Or[LessEqual[z, 2.4e-46], N[Not[LessEqual[z, 0.00046]], $MachinePrecision]], t$95$2, t$95$3]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x - z \cdot \frac{a}{y}\\
t_2 := \frac{t - a}{b - y}\\
t_3 := \frac{x \cdot y}{y + z \cdot b}\\
\mathbf{if}\;z \leq -3.8 \cdot 10^{-47}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;z \leq -4.7 \cdot 10^{-288}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 4.4 \cdot 10^{-268}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;z \leq 2.5 \cdot 10^{-128}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 2.4 \cdot 10^{-46} \lor \neg \left(z \leq 0.00046\right):\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;t\_3\\
\end{array}
\end{array}
if z < -3.80000000000000015e-47 or 2.5000000000000001e-128 < z < 2.40000000000000013e-46 or 4.6000000000000001e-4 < z Initial program 56.3%
Taylor expanded in z around inf 73.7%
if -3.80000000000000015e-47 < z < -4.6999999999999999e-288 or 4.40000000000000008e-268 < z < 2.5000000000000001e-128Initial program 85.0%
Taylor expanded in z around 0 52.7%
Taylor expanded in a around inf 67.4%
associate-*r/67.4%
neg-mul-167.4%
Simplified67.4%
if -4.6999999999999999e-288 < z < 4.40000000000000008e-268 or 2.40000000000000013e-46 < z < 4.6000000000000001e-4Initial program 99.7%
Taylor expanded in x around inf 73.3%
*-commutative73.3%
Simplified73.3%
Taylor expanded in b around inf 73.3%
*-commutative73.3%
Simplified73.3%
Final simplification71.8%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (- x (* z (/ a y))))
(t_2 (/ (- t a) (- b y)))
(t_3 (/ (* x y) (+ y (* z b)))))
(if (<= z -1.85e-50)
t_2
(if (<= z -1.2e-288)
t_1
(if (<= z 4.1e-268)
t_3
(if (<= z 3.4e-112)
t_1
(if (<= z 9.2e-49)
(/ (* z a) (- (- y) (* z b)))
(if (<= z 6.2e-8) t_3 t_2))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x - (z * (a / y));
double t_2 = (t - a) / (b - y);
double t_3 = (x * y) / (y + (z * b));
double tmp;
if (z <= -1.85e-50) {
tmp = t_2;
} else if (z <= -1.2e-288) {
tmp = t_1;
} else if (z <= 4.1e-268) {
tmp = t_3;
} else if (z <= 3.4e-112) {
tmp = t_1;
} else if (z <= 9.2e-49) {
tmp = (z * a) / (-y - (z * b));
} else if (z <= 6.2e-8) {
tmp = t_3;
} 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) :: t_3
real(8) :: tmp
t_1 = x - (z * (a / y))
t_2 = (t - a) / (b - y)
t_3 = (x * y) / (y + (z * b))
if (z <= (-1.85d-50)) then
tmp = t_2
else if (z <= (-1.2d-288)) then
tmp = t_1
else if (z <= 4.1d-268) then
tmp = t_3
else if (z <= 3.4d-112) then
tmp = t_1
else if (z <= 9.2d-49) then
tmp = (z * a) / (-y - (z * b))
else if (z <= 6.2d-8) then
tmp = t_3
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 = x - (z * (a / y));
double t_2 = (t - a) / (b - y);
double t_3 = (x * y) / (y + (z * b));
double tmp;
if (z <= -1.85e-50) {
tmp = t_2;
} else if (z <= -1.2e-288) {
tmp = t_1;
} else if (z <= 4.1e-268) {
tmp = t_3;
} else if (z <= 3.4e-112) {
tmp = t_1;
} else if (z <= 9.2e-49) {
tmp = (z * a) / (-y - (z * b));
} else if (z <= 6.2e-8) {
tmp = t_3;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x - (z * (a / y)) t_2 = (t - a) / (b - y) t_3 = (x * y) / (y + (z * b)) tmp = 0 if z <= -1.85e-50: tmp = t_2 elif z <= -1.2e-288: tmp = t_1 elif z <= 4.1e-268: tmp = t_3 elif z <= 3.4e-112: tmp = t_1 elif z <= 9.2e-49: tmp = (z * a) / (-y - (z * b)) elif z <= 6.2e-8: tmp = t_3 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x - Float64(z * Float64(a / y))) t_2 = Float64(Float64(t - a) / Float64(b - y)) t_3 = Float64(Float64(x * y) / Float64(y + Float64(z * b))) tmp = 0.0 if (z <= -1.85e-50) tmp = t_2; elseif (z <= -1.2e-288) tmp = t_1; elseif (z <= 4.1e-268) tmp = t_3; elseif (z <= 3.4e-112) tmp = t_1; elseif (z <= 9.2e-49) tmp = Float64(Float64(z * a) / Float64(Float64(-y) - Float64(z * b))); elseif (z <= 6.2e-8) tmp = t_3; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x - (z * (a / y)); t_2 = (t - a) / (b - y); t_3 = (x * y) / (y + (z * b)); tmp = 0.0; if (z <= -1.85e-50) tmp = t_2; elseif (z <= -1.2e-288) tmp = t_1; elseif (z <= 4.1e-268) tmp = t_3; elseif (z <= 3.4e-112) tmp = t_1; elseif (z <= 9.2e-49) tmp = (z * a) / (-y - (z * b)); elseif (z <= 6.2e-8) tmp = t_3; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x - N[(z * N[(a / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(x * y), $MachinePrecision] / N[(y + N[(z * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -1.85e-50], t$95$2, If[LessEqual[z, -1.2e-288], t$95$1, If[LessEqual[z, 4.1e-268], t$95$3, If[LessEqual[z, 3.4e-112], t$95$1, If[LessEqual[z, 9.2e-49], N[(N[(z * a), $MachinePrecision] / N[((-y) - N[(z * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 6.2e-8], t$95$3, t$95$2]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x - z \cdot \frac{a}{y}\\
t_2 := \frac{t - a}{b - y}\\
t_3 := \frac{x \cdot y}{y + z \cdot b}\\
\mathbf{if}\;z \leq -1.85 \cdot 10^{-50}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;z \leq -1.2 \cdot 10^{-288}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 4.1 \cdot 10^{-268}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;z \leq 3.4 \cdot 10^{-112}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 9.2 \cdot 10^{-49}:\\
\;\;\;\;\frac{z \cdot a}{\left(-y\right) - z \cdot b}\\
\mathbf{elif}\;z \leq 6.2 \cdot 10^{-8}:\\
\;\;\;\;t\_3\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if z < -1.85e-50 or 6.2e-8 < z Initial program 51.8%
Taylor expanded in z around inf 76.7%
if -1.85e-50 < z < -1.1999999999999999e-288 or 4.0999999999999999e-268 < z < 3.3999999999999998e-112Initial program 85.0%
Taylor expanded in z around 0 50.2%
Taylor expanded in a around inf 65.2%
associate-*r/65.2%
neg-mul-165.2%
Simplified65.2%
if -1.1999999999999999e-288 < z < 4.0999999999999999e-268 or 9.1999999999999996e-49 < z < 6.2e-8Initial program 99.7%
Taylor expanded in x around inf 73.3%
*-commutative73.3%
Simplified73.3%
Taylor expanded in b around inf 73.3%
*-commutative73.3%
Simplified73.3%
if 3.3999999999999998e-112 < z < 9.1999999999999996e-49Initial program 91.9%
Taylor expanded in a around inf 59.4%
mul-1-neg59.4%
distribute-lft-neg-out59.4%
*-commutative59.4%
Simplified59.4%
Taylor expanded in b around inf 59.4%
*-commutative19.6%
Simplified59.4%
Final simplification71.8%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (- t a) (- b y))) (t_2 (* z (- t a))))
(if (<= z -3.1e-12)
t_1
(if (<= z 2.15e-128)
(+ x (* a (/ z (- (* z (- y b)) y))))
(if (<= z 7.6e-49)
(/ t_2 (+ y (* z (- b y))))
(if (<= z 58.0) (/ (+ t_2 (* x y)) (* y (- 1.0 z))) t_1))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (t - a) / (b - y);
double t_2 = z * (t - a);
double tmp;
if (z <= -3.1e-12) {
tmp = t_1;
} else if (z <= 2.15e-128) {
tmp = x + (a * (z / ((z * (y - b)) - y)));
} else if (z <= 7.6e-49) {
tmp = t_2 / (y + (z * (b - y)));
} else if (z <= 58.0) {
tmp = (t_2 + (x * y)) / (y * (1.0 - z));
} 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 = (t - a) / (b - y)
t_2 = z * (t - a)
if (z <= (-3.1d-12)) then
tmp = t_1
else if (z <= 2.15d-128) then
tmp = x + (a * (z / ((z * (y - b)) - y)))
else if (z <= 7.6d-49) then
tmp = t_2 / (y + (z * (b - y)))
else if (z <= 58.0d0) then
tmp = (t_2 + (x * y)) / (y * (1.0d0 - z))
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 = (t - a) / (b - y);
double t_2 = z * (t - a);
double tmp;
if (z <= -3.1e-12) {
tmp = t_1;
} else if (z <= 2.15e-128) {
tmp = x + (a * (z / ((z * (y - b)) - y)));
} else if (z <= 7.6e-49) {
tmp = t_2 / (y + (z * (b - y)));
} else if (z <= 58.0) {
tmp = (t_2 + (x * y)) / (y * (1.0 - z));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (t - a) / (b - y) t_2 = z * (t - a) tmp = 0 if z <= -3.1e-12: tmp = t_1 elif z <= 2.15e-128: tmp = x + (a * (z / ((z * (y - b)) - y))) elif z <= 7.6e-49: tmp = t_2 / (y + (z * (b - y))) elif z <= 58.0: tmp = (t_2 + (x * y)) / (y * (1.0 - z)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(t - a) / Float64(b - y)) t_2 = Float64(z * Float64(t - a)) tmp = 0.0 if (z <= -3.1e-12) tmp = t_1; elseif (z <= 2.15e-128) tmp = Float64(x + Float64(a * Float64(z / Float64(Float64(z * Float64(y - b)) - y)))); elseif (z <= 7.6e-49) tmp = Float64(t_2 / Float64(y + Float64(z * Float64(b - y)))); elseif (z <= 58.0) tmp = Float64(Float64(t_2 + Float64(x * y)) / Float64(y * Float64(1.0 - z))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (t - a) / (b - y); t_2 = z * (t - a); tmp = 0.0; if (z <= -3.1e-12) tmp = t_1; elseif (z <= 2.15e-128) tmp = x + (a * (z / ((z * (y - b)) - y))); elseif (z <= 7.6e-49) tmp = t_2 / (y + (z * (b - y))); elseif (z <= 58.0) tmp = (t_2 + (x * y)) / (y * (1.0 - z)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -3.1e-12], t$95$1, If[LessEqual[z, 2.15e-128], N[(x + N[(a * N[(z / N[(N[(z * N[(y - b), $MachinePrecision]), $MachinePrecision] - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 7.6e-49], N[(t$95$2 / N[(y + N[(z * N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 58.0], N[(N[(t$95$2 + N[(x * y), $MachinePrecision]), $MachinePrecision] / N[(y * N[(1.0 - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{t - a}{b - y}\\
t_2 := z \cdot \left(t - a\right)\\
\mathbf{if}\;z \leq -3.1 \cdot 10^{-12}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 2.15 \cdot 10^{-128}:\\
\;\;\;\;x + a \cdot \frac{z}{z \cdot \left(y - b\right) - y}\\
\mathbf{elif}\;z \leq 7.6 \cdot 10^{-49}:\\
\;\;\;\;\frac{t\_2}{y + z \cdot \left(b - y\right)}\\
\mathbf{elif}\;z \leq 58:\\
\;\;\;\;\frac{t\_2 + x \cdot y}{y \cdot \left(1 - z\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if z < -3.1000000000000001e-12 or 58 < z Initial program 48.7%
Taylor expanded in z around inf 79.4%
if -3.1000000000000001e-12 < z < 2.14999999999999997e-128Initial program 89.1%
Taylor expanded in x around 0 89.0%
Taylor expanded in t around 0 89.1%
Taylor expanded in z around 0 80.4%
Taylor expanded in a around inf 70.2%
mul-1-neg70.2%
associate-/l*69.3%
distribute-rgt-neg-in69.3%
Simplified69.3%
if 2.14999999999999997e-128 < z < 7.5999999999999994e-49Initial program 89.4%
Taylor expanded in x around 0 73.7%
if 7.5999999999999994e-49 < z < 58Initial program 90.7%
Taylor expanded in y around inf 71.3%
mul-1-neg71.3%
unsub-neg71.3%
Simplified71.3%
Final simplification74.5%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* x (/ y (+ y (* z (- b y)))))) (t_2 (/ (- t a) (- b y))))
(if (<= z -5.3e-52)
t_2
(if (<= z 2.5e-107)
t_1
(if (<= z 7e-50)
(/ (* z a) (- (- y) (* z b)))
(if (<= z 650.0) t_1 t_2))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x * (y / (y + (z * (b - y))));
double t_2 = (t - a) / (b - y);
double tmp;
if (z <= -5.3e-52) {
tmp = t_2;
} else if (z <= 2.5e-107) {
tmp = t_1;
} else if (z <= 7e-50) {
tmp = (z * a) / (-y - (z * b));
} else if (z <= 650.0) {
tmp = t_1;
} 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 = x * (y / (y + (z * (b - y))))
t_2 = (t - a) / (b - y)
if (z <= (-5.3d-52)) then
tmp = t_2
else if (z <= 2.5d-107) then
tmp = t_1
else if (z <= 7d-50) then
tmp = (z * a) / (-y - (z * b))
else if (z <= 650.0d0) 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 a, double b) {
double t_1 = x * (y / (y + (z * (b - y))));
double t_2 = (t - a) / (b - y);
double tmp;
if (z <= -5.3e-52) {
tmp = t_2;
} else if (z <= 2.5e-107) {
tmp = t_1;
} else if (z <= 7e-50) {
tmp = (z * a) / (-y - (z * b));
} else if (z <= 650.0) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x * (y / (y + (z * (b - y)))) t_2 = (t - a) / (b - y) tmp = 0 if z <= -5.3e-52: tmp = t_2 elif z <= 2.5e-107: tmp = t_1 elif z <= 7e-50: tmp = (z * a) / (-y - (z * b)) elif z <= 650.0: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x * Float64(y / Float64(y + Float64(z * Float64(b - y))))) t_2 = Float64(Float64(t - a) / Float64(b - y)) tmp = 0.0 if (z <= -5.3e-52) tmp = t_2; elseif (z <= 2.5e-107) tmp = t_1; elseif (z <= 7e-50) tmp = Float64(Float64(z * a) / Float64(Float64(-y) - Float64(z * b))); elseif (z <= 650.0) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x * (y / (y + (z * (b - y)))); t_2 = (t - a) / (b - y); tmp = 0.0; if (z <= -5.3e-52) tmp = t_2; elseif (z <= 2.5e-107) tmp = t_1; elseif (z <= 7e-50) tmp = (z * a) / (-y - (z * b)); elseif (z <= 650.0) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x * N[(y / N[(y + N[(z * N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -5.3e-52], t$95$2, If[LessEqual[z, 2.5e-107], t$95$1, If[LessEqual[z, 7e-50], N[(N[(z * a), $MachinePrecision] / N[((-y) - N[(z * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 650.0], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \frac{y}{y + z \cdot \left(b - y\right)}\\
t_2 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -5.3 \cdot 10^{-52}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;z \leq 2.5 \cdot 10^{-107}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 7 \cdot 10^{-50}:\\
\;\;\;\;\frac{z \cdot a}{\left(-y\right) - z \cdot b}\\
\mathbf{elif}\;z \leq 650:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if z < -5.3000000000000003e-52 or 650 < z Initial program 52.2%
Taylor expanded in z around inf 77.2%
if -5.3000000000000003e-52 < z < 2.49999999999999985e-107 or 6.99999999999999993e-50 < z < 650Initial program 88.2%
Taylor expanded in x around inf 57.5%
*-commutative57.5%
Simplified57.5%
Taylor expanded in x around 0 57.5%
associate-/l*67.4%
Simplified67.4%
if 2.49999999999999985e-107 < z < 6.99999999999999993e-50Initial program 91.3%
Taylor expanded in a around inf 64.4%
mul-1-neg64.4%
distribute-lft-neg-out64.4%
*-commutative64.4%
Simplified64.4%
Taylor expanded in b around inf 64.4%
*-commutative12.4%
Simplified64.4%
Final simplification72.4%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ y (* z (- b y))))
(t_2 (* x (/ y t_1)))
(t_3 (/ (- t a) (- b y))))
(if (<= z -2.15e-47)
t_3
(if (<= z 2.35e-107)
t_2
(if (<= z 1.3e-48)
(/ (* z (- t a)) t_1)
(if (<= z 43000.0) t_2 t_3))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = y + (z * (b - y));
double t_2 = x * (y / t_1);
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -2.15e-47) {
tmp = t_3;
} else if (z <= 2.35e-107) {
tmp = t_2;
} else if (z <= 1.3e-48) {
tmp = (z * (t - a)) / t_1;
} else if (z <= 43000.0) {
tmp = t_2;
} else {
tmp = t_3;
}
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) :: t_3
real(8) :: tmp
t_1 = y + (z * (b - y))
t_2 = x * (y / t_1)
t_3 = (t - a) / (b - y)
if (z <= (-2.15d-47)) then
tmp = t_3
else if (z <= 2.35d-107) then
tmp = t_2
else if (z <= 1.3d-48) then
tmp = (z * (t - a)) / t_1
else if (z <= 43000.0d0) then
tmp = t_2
else
tmp = t_3
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 = y + (z * (b - y));
double t_2 = x * (y / t_1);
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -2.15e-47) {
tmp = t_3;
} else if (z <= 2.35e-107) {
tmp = t_2;
} else if (z <= 1.3e-48) {
tmp = (z * (t - a)) / t_1;
} else if (z <= 43000.0) {
tmp = t_2;
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = y + (z * (b - y)) t_2 = x * (y / t_1) t_3 = (t - a) / (b - y) tmp = 0 if z <= -2.15e-47: tmp = t_3 elif z <= 2.35e-107: tmp = t_2 elif z <= 1.3e-48: tmp = (z * (t - a)) / t_1 elif z <= 43000.0: tmp = t_2 else: tmp = t_3 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(y + Float64(z * Float64(b - y))) t_2 = Float64(x * Float64(y / t_1)) t_3 = Float64(Float64(t - a) / Float64(b - y)) tmp = 0.0 if (z <= -2.15e-47) tmp = t_3; elseif (z <= 2.35e-107) tmp = t_2; elseif (z <= 1.3e-48) tmp = Float64(Float64(z * Float64(t - a)) / t_1); elseif (z <= 43000.0) tmp = t_2; else tmp = t_3; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = y + (z * (b - y)); t_2 = x * (y / t_1); t_3 = (t - a) / (b - y); tmp = 0.0; if (z <= -2.15e-47) tmp = t_3; elseif (z <= 2.35e-107) tmp = t_2; elseif (z <= 1.3e-48) tmp = (z * (t - a)) / t_1; elseif (z <= 43000.0) tmp = t_2; else tmp = t_3; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(y + N[(z * N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x * N[(y / t$95$1), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -2.15e-47], t$95$3, If[LessEqual[z, 2.35e-107], t$95$2, If[LessEqual[z, 1.3e-48], N[(N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision], If[LessEqual[z, 43000.0], t$95$2, t$95$3]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y + z \cdot \left(b - y\right)\\
t_2 := x \cdot \frac{y}{t\_1}\\
t_3 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -2.15 \cdot 10^{-47}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;z \leq 2.35 \cdot 10^{-107}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;z \leq 1.3 \cdot 10^{-48}:\\
\;\;\;\;\frac{z \cdot \left(t - a\right)}{t\_1}\\
\mathbf{elif}\;z \leq 43000:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;t\_3\\
\end{array}
\end{array}
if z < -2.1499999999999999e-47 or 43000 < z Initial program 52.2%
Taylor expanded in z around inf 77.2%
if -2.1499999999999999e-47 < z < 2.34999999999999999e-107 or 1.29999999999999994e-48 < z < 43000Initial program 88.2%
Taylor expanded in x around inf 57.5%
*-commutative57.5%
Simplified57.5%
Taylor expanded in x around 0 57.5%
associate-/l*67.4%
Simplified67.4%
if 2.34999999999999999e-107 < z < 1.29999999999999994e-48Initial program 91.3%
Taylor expanded in x around 0 90.7%
Final simplification73.5%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ y (* z (- b y)))) (t_2 (/ (- t a) (- b y))))
(if (<= z -3.3e-12)
t_2
(if (<= z 1.95e-128)
(+ x (* a (/ z (- (* z (- y b)) y))))
(if (<= z 2.45e-46)
(/ (* z (- t a)) t_1)
(if (<= z 2.1) (* x (/ y t_1)) t_2))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = y + (z * (b - y));
double t_2 = (t - a) / (b - y);
double tmp;
if (z <= -3.3e-12) {
tmp = t_2;
} else if (z <= 1.95e-128) {
tmp = x + (a * (z / ((z * (y - b)) - y)));
} else if (z <= 2.45e-46) {
tmp = (z * (t - a)) / t_1;
} else if (z <= 2.1) {
tmp = x * (y / t_1);
} 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 = y + (z * (b - y))
t_2 = (t - a) / (b - y)
if (z <= (-3.3d-12)) then
tmp = t_2
else if (z <= 1.95d-128) then
tmp = x + (a * (z / ((z * (y - b)) - y)))
else if (z <= 2.45d-46) then
tmp = (z * (t - a)) / t_1
else if (z <= 2.1d0) then
tmp = x * (y / 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 a, double b) {
double t_1 = y + (z * (b - y));
double t_2 = (t - a) / (b - y);
double tmp;
if (z <= -3.3e-12) {
tmp = t_2;
} else if (z <= 1.95e-128) {
tmp = x + (a * (z / ((z * (y - b)) - y)));
} else if (z <= 2.45e-46) {
tmp = (z * (t - a)) / t_1;
} else if (z <= 2.1) {
tmp = x * (y / t_1);
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = y + (z * (b - y)) t_2 = (t - a) / (b - y) tmp = 0 if z <= -3.3e-12: tmp = t_2 elif z <= 1.95e-128: tmp = x + (a * (z / ((z * (y - b)) - y))) elif z <= 2.45e-46: tmp = (z * (t - a)) / t_1 elif z <= 2.1: tmp = x * (y / t_1) else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(y + Float64(z * Float64(b - y))) t_2 = Float64(Float64(t - a) / Float64(b - y)) tmp = 0.0 if (z <= -3.3e-12) tmp = t_2; elseif (z <= 1.95e-128) tmp = Float64(x + Float64(a * Float64(z / Float64(Float64(z * Float64(y - b)) - y)))); elseif (z <= 2.45e-46) tmp = Float64(Float64(z * Float64(t - a)) / t_1); elseif (z <= 2.1) tmp = Float64(x * Float64(y / t_1)); else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = y + (z * (b - y)); t_2 = (t - a) / (b - y); tmp = 0.0; if (z <= -3.3e-12) tmp = t_2; elseif (z <= 1.95e-128) tmp = x + (a * (z / ((z * (y - b)) - y))); elseif (z <= 2.45e-46) tmp = (z * (t - a)) / t_1; elseif (z <= 2.1) tmp = x * (y / t_1); else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(y + N[(z * N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -3.3e-12], t$95$2, If[LessEqual[z, 1.95e-128], N[(x + N[(a * N[(z / N[(N[(z * N[(y - b), $MachinePrecision]), $MachinePrecision] - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 2.45e-46], N[(N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision], If[LessEqual[z, 2.1], N[(x * N[(y / t$95$1), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y + z \cdot \left(b - y\right)\\
t_2 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -3.3 \cdot 10^{-12}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;z \leq 1.95 \cdot 10^{-128}:\\
\;\;\;\;x + a \cdot \frac{z}{z \cdot \left(y - b\right) - y}\\
\mathbf{elif}\;z \leq 2.45 \cdot 10^{-46}:\\
\;\;\;\;\frac{z \cdot \left(t - a\right)}{t\_1}\\
\mathbf{elif}\;z \leq 2.1:\\
\;\;\;\;x \cdot \frac{y}{t\_1}\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if z < -3.3000000000000001e-12 or 2.10000000000000009 < z Initial program 48.7%
Taylor expanded in z around inf 79.4%
if -3.3000000000000001e-12 < z < 1.94999999999999998e-128Initial program 89.1%
Taylor expanded in x around 0 89.0%
Taylor expanded in t around 0 89.1%
Taylor expanded in z around 0 80.4%
Taylor expanded in a around inf 70.2%
mul-1-neg70.2%
associate-/l*69.3%
distribute-rgt-neg-in69.3%
Simplified69.3%
if 1.94999999999999998e-128 < z < 2.45e-46Initial program 89.4%
Taylor expanded in x around 0 73.7%
if 2.45e-46 < z < 2.10000000000000009Initial program 90.7%
Taylor expanded in x around inf 61.7%
*-commutative61.7%
Simplified61.7%
Taylor expanded in x around 0 61.7%
associate-/l*70.4%
Simplified70.4%
Final simplification74.5%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (- t a) b)) (t_2 (/ x (- 1.0 z))))
(if (<= y -50000000000.0)
t_2
(if (<= y -2.6e-31)
(/ (- a t) y)
(if (<= y 8.2e-52)
t_1
(if (<= y 3.2e-7)
(+ x (* z (/ t y)))
(if (<= y 2.8e+17) t_1 t_2)))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (t - a) / b;
double t_2 = x / (1.0 - z);
double tmp;
if (y <= -50000000000.0) {
tmp = t_2;
} else if (y <= -2.6e-31) {
tmp = (a - t) / y;
} else if (y <= 8.2e-52) {
tmp = t_1;
} else if (y <= 3.2e-7) {
tmp = x + (z * (t / y));
} else if (y <= 2.8e+17) {
tmp = t_1;
} 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 = (t - a) / b
t_2 = x / (1.0d0 - z)
if (y <= (-50000000000.0d0)) then
tmp = t_2
else if (y <= (-2.6d-31)) then
tmp = (a - t) / y
else if (y <= 8.2d-52) then
tmp = t_1
else if (y <= 3.2d-7) then
tmp = x + (z * (t / y))
else if (y <= 2.8d+17) 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 a, double b) {
double t_1 = (t - a) / b;
double t_2 = x / (1.0 - z);
double tmp;
if (y <= -50000000000.0) {
tmp = t_2;
} else if (y <= -2.6e-31) {
tmp = (a - t) / y;
} else if (y <= 8.2e-52) {
tmp = t_1;
} else if (y <= 3.2e-7) {
tmp = x + (z * (t / y));
} else if (y <= 2.8e+17) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (t - a) / b t_2 = x / (1.0 - z) tmp = 0 if y <= -50000000000.0: tmp = t_2 elif y <= -2.6e-31: tmp = (a - t) / y elif y <= 8.2e-52: tmp = t_1 elif y <= 3.2e-7: tmp = x + (z * (t / y)) elif y <= 2.8e+17: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(t - a) / b) t_2 = Float64(x / Float64(1.0 - z)) tmp = 0.0 if (y <= -50000000000.0) tmp = t_2; elseif (y <= -2.6e-31) tmp = Float64(Float64(a - t) / y); elseif (y <= 8.2e-52) tmp = t_1; elseif (y <= 3.2e-7) tmp = Float64(x + Float64(z * Float64(t / y))); elseif (y <= 2.8e+17) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (t - a) / b; t_2 = x / (1.0 - z); tmp = 0.0; if (y <= -50000000000.0) tmp = t_2; elseif (y <= -2.6e-31) tmp = (a - t) / y; elseif (y <= 8.2e-52) tmp = t_1; elseif (y <= 3.2e-7) tmp = x + (z * (t / y)); elseif (y <= 2.8e+17) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(t - a), $MachinePrecision] / b), $MachinePrecision]}, Block[{t$95$2 = N[(x / N[(1.0 - z), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -50000000000.0], t$95$2, If[LessEqual[y, -2.6e-31], N[(N[(a - t), $MachinePrecision] / y), $MachinePrecision], If[LessEqual[y, 8.2e-52], t$95$1, If[LessEqual[y, 3.2e-7], N[(x + N[(z * N[(t / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.8e+17], t$95$1, t$95$2]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{t - a}{b}\\
t_2 := \frac{x}{1 - z}\\
\mathbf{if}\;y \leq -50000000000:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq -2.6 \cdot 10^{-31}:\\
\;\;\;\;\frac{a - t}{y}\\
\mathbf{elif}\;y \leq 8.2 \cdot 10^{-52}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 3.2 \cdot 10^{-7}:\\
\;\;\;\;x + z \cdot \frac{t}{y}\\
\mathbf{elif}\;y \leq 2.8 \cdot 10^{+17}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if y < -5e10 or 2.8e17 < y Initial program 56.5%
Taylor expanded in y around inf 60.0%
mul-1-neg60.0%
unsub-neg60.0%
Simplified60.0%
if -5e10 < y < -2.59999999999999995e-31Initial program 58.2%
Taylor expanded in b around 0 48.3%
+-commutative48.3%
fma-define48.3%
*-commutative48.3%
*-rgt-identity48.3%
mul-1-neg48.3%
distribute-rgt-neg-in48.3%
mul-1-neg48.3%
distribute-lft-in48.3%
mul-1-neg48.3%
unsub-neg48.3%
Simplified48.3%
Taylor expanded in z around inf 69.6%
mul-1-neg69.6%
distribute-neg-frac269.6%
Simplified69.6%
if -2.59999999999999995e-31 < y < 8.19999999999999977e-52 or 3.2000000000000001e-7 < y < 2.8e17Initial program 81.8%
Taylor expanded in y around 0 66.7%
if 8.19999999999999977e-52 < y < 3.2000000000000001e-7Initial program 90.4%
Taylor expanded in z around 0 61.6%
Taylor expanded in t around inf 80.5%
Final simplification64.2%
(FPCore (x y z t a b)
:precision binary64
(if (or (<= z -1.45e-49)
(not (or (<= z 2.2e-128) (and (not (<= z 3.7e-47)) (<= z 6.2e-8)))))
(/ (- t a) (- b y))
(- x (* z (/ a y)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -1.45e-49) || !((z <= 2.2e-128) || (!(z <= 3.7e-47) && (z <= 6.2e-8)))) {
tmp = (t - a) / (b - y);
} else {
tmp = x - (z * (a / 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-49)) .or. (.not. (z <= 2.2d-128) .or. (.not. (z <= 3.7d-47)) .and. (z <= 6.2d-8))) then
tmp = (t - a) / (b - y)
else
tmp = x - (z * (a / 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-49) || !((z <= 2.2e-128) || (!(z <= 3.7e-47) && (z <= 6.2e-8)))) {
tmp = (t - a) / (b - y);
} else {
tmp = x - (z * (a / y));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -1.45e-49) or not ((z <= 2.2e-128) or (not (z <= 3.7e-47) and (z <= 6.2e-8))): tmp = (t - a) / (b - y) else: tmp = x - (z * (a / y)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -1.45e-49) || !((z <= 2.2e-128) || (!(z <= 3.7e-47) && (z <= 6.2e-8)))) tmp = Float64(Float64(t - a) / Float64(b - y)); else tmp = Float64(x - Float64(z * Float64(a / y))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -1.45e-49) || ~(((z <= 2.2e-128) || (~((z <= 3.7e-47)) && (z <= 6.2e-8))))) tmp = (t - a) / (b - y); else tmp = x - (z * (a / y)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -1.45e-49], N[Not[Or[LessEqual[z, 2.2e-128], And[N[Not[LessEqual[z, 3.7e-47]], $MachinePrecision], LessEqual[z, 6.2e-8]]]], $MachinePrecision]], N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision], N[(x - N[(z * N[(a / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1.45 \cdot 10^{-49} \lor \neg \left(z \leq 2.2 \cdot 10^{-128} \lor \neg \left(z \leq 3.7 \cdot 10^{-47}\right) \land z \leq 6.2 \cdot 10^{-8}\right):\\
\;\;\;\;\frac{t - a}{b - y}\\
\mathbf{else}:\\
\;\;\;\;x - z \cdot \frac{a}{y}\\
\end{array}
\end{array}
if z < -1.45e-49 or 2.20000000000000009e-128 < z < 3.7e-47 or 6.2e-8 < z Initial program 56.3%
Taylor expanded in z around inf 73.7%
if -1.45e-49 < z < 2.20000000000000009e-128 or 3.7e-47 < z < 6.2e-8Initial program 89.1%
Taylor expanded in z around 0 56.0%
Taylor expanded in a around inf 64.5%
associate-*r/64.5%
neg-mul-164.5%
Simplified64.5%
Final simplification69.9%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (- t a) (- b y))))
(if (<= z -1.56e-49)
t_1
(if (<= z 2.5e-128)
(+ x (* z (/ t y)))
(if (or (<= z 7e-49) (not (<= z 53.0))) t_1 (/ x (- 1.0 z)))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (t - a) / (b - y);
double tmp;
if (z <= -1.56e-49) {
tmp = t_1;
} else if (z <= 2.5e-128) {
tmp = x + (z * (t / y));
} else if ((z <= 7e-49) || !(z <= 53.0)) {
tmp = t_1;
} else {
tmp = x / (1.0 - z);
}
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 = (t - a) / (b - y)
if (z <= (-1.56d-49)) then
tmp = t_1
else if (z <= 2.5d-128) then
tmp = x + (z * (t / y))
else if ((z <= 7d-49) .or. (.not. (z <= 53.0d0))) then
tmp = t_1
else
tmp = x / (1.0d0 - z)
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 = (t - a) / (b - y);
double tmp;
if (z <= -1.56e-49) {
tmp = t_1;
} else if (z <= 2.5e-128) {
tmp = x + (z * (t / y));
} else if ((z <= 7e-49) || !(z <= 53.0)) {
tmp = t_1;
} else {
tmp = x / (1.0 - z);
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (t - a) / (b - y) tmp = 0 if z <= -1.56e-49: tmp = t_1 elif z <= 2.5e-128: tmp = x + (z * (t / y)) elif (z <= 7e-49) or not (z <= 53.0): tmp = t_1 else: tmp = x / (1.0 - z) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(t - a) / Float64(b - y)) tmp = 0.0 if (z <= -1.56e-49) tmp = t_1; elseif (z <= 2.5e-128) tmp = Float64(x + Float64(z * Float64(t / y))); elseif ((z <= 7e-49) || !(z <= 53.0)) tmp = t_1; else tmp = Float64(x / Float64(1.0 - z)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (t - a) / (b - y); tmp = 0.0; if (z <= -1.56e-49) tmp = t_1; elseif (z <= 2.5e-128) tmp = x + (z * (t / y)); elseif ((z <= 7e-49) || ~((z <= 53.0))) tmp = t_1; else tmp = x / (1.0 - z); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -1.56e-49], t$95$1, If[LessEqual[z, 2.5e-128], N[(x + N[(z * N[(t / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[z, 7e-49], N[Not[LessEqual[z, 53.0]], $MachinePrecision]], t$95$1, N[(x / N[(1.0 - z), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -1.56 \cdot 10^{-49}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 2.5 \cdot 10^{-128}:\\
\;\;\;\;x + z \cdot \frac{t}{y}\\
\mathbf{elif}\;z \leq 7 \cdot 10^{-49} \lor \neg \left(z \leq 53\right):\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{1 - z}\\
\end{array}
\end{array}
if z < -1.56000000000000008e-49 or 2.5000000000000001e-128 < z < 7.00000000000000012e-49 or 53 < z Initial program 56.6%
Taylor expanded in z around inf 74.2%
if -1.56000000000000008e-49 < z < 2.5000000000000001e-128Initial program 88.1%
Taylor expanded in z around 0 54.4%
Taylor expanded in t around inf 61.3%
if 7.00000000000000012e-49 < z < 53Initial program 90.7%
Taylor expanded in y around inf 59.0%
mul-1-neg59.0%
unsub-neg59.0%
Simplified59.0%
Final simplification68.8%
(FPCore (x y z t a b) :precision binary64 (if (or (<= z -3.6e+30) (not (<= z 7.2e+77))) (/ (- t a) (- b y)) (/ (+ (* z (- t a)) (* x y)) (+ y (* z (- b y))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -3.6e+30) || !(z <= 7.2e+77)) {
tmp = (t - a) / (b - y);
} else {
tmp = ((z * (t - a)) + (x * y)) / (y + (z * (b - 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 <= (-3.6d+30)) .or. (.not. (z <= 7.2d+77))) then
tmp = (t - a) / (b - y)
else
tmp = ((z * (t - a)) + (x * y)) / (y + (z * (b - 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 <= -3.6e+30) || !(z <= 7.2e+77)) {
tmp = (t - a) / (b - y);
} else {
tmp = ((z * (t - a)) + (x * y)) / (y + (z * (b - y)));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -3.6e+30) or not (z <= 7.2e+77): tmp = (t - a) / (b - y) else: tmp = ((z * (t - a)) + (x * y)) / (y + (z * (b - y))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -3.6e+30) || !(z <= 7.2e+77)) tmp = Float64(Float64(t - a) / Float64(b - y)); else tmp = Float64(Float64(Float64(z * Float64(t - a)) + Float64(x * y)) / Float64(y + Float64(z * Float64(b - y)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -3.6e+30) || ~((z <= 7.2e+77))) tmp = (t - a) / (b - y); else tmp = ((z * (t - a)) + (x * y)) / (y + (z * (b - y))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -3.6e+30], N[Not[LessEqual[z, 7.2e+77]], $MachinePrecision]], N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision], N[(N[(N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision] + N[(x * y), $MachinePrecision]), $MachinePrecision] / N[(y + N[(z * N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -3.6 \cdot 10^{+30} \lor \neg \left(z \leq 7.2 \cdot 10^{+77}\right):\\
\;\;\;\;\frac{t - a}{b - y}\\
\mathbf{else}:\\
\;\;\;\;\frac{z \cdot \left(t - a\right) + x \cdot y}{y + z \cdot \left(b - y\right)}\\
\end{array}
\end{array}
if z < -3.6000000000000002e30 or 7.1999999999999996e77 < z Initial program 39.8%
Taylor expanded in z around inf 79.5%
if -3.6000000000000002e30 < z < 7.1999999999999996e77Initial program 88.9%
Final simplification85.3%
(FPCore (x y z t a b) :precision binary64 (if (or (<= z -3.2e-6) (not (<= z 760000000000.0))) (/ (- t a) (- b y)) (/ (- (* x y) (* z a)) (+ y (* z (- b y))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -3.2e-6) || !(z <= 760000000000.0)) {
tmp = (t - a) / (b - y);
} else {
tmp = ((x * y) - (z * a)) / (y + (z * (b - 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 <= (-3.2d-6)) .or. (.not. (z <= 760000000000.0d0))) then
tmp = (t - a) / (b - y)
else
tmp = ((x * y) - (z * a)) / (y + (z * (b - 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 <= -3.2e-6) || !(z <= 760000000000.0)) {
tmp = (t - a) / (b - y);
} else {
tmp = ((x * y) - (z * a)) / (y + (z * (b - y)));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -3.2e-6) or not (z <= 760000000000.0): tmp = (t - a) / (b - y) else: tmp = ((x * y) - (z * a)) / (y + (z * (b - y))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -3.2e-6) || !(z <= 760000000000.0)) tmp = Float64(Float64(t - a) / Float64(b - y)); else tmp = Float64(Float64(Float64(x * y) - Float64(z * a)) / Float64(y + Float64(z * Float64(b - y)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -3.2e-6) || ~((z <= 760000000000.0))) tmp = (t - a) / (b - y); else tmp = ((x * y) - (z * a)) / (y + (z * (b - y))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -3.2e-6], N[Not[LessEqual[z, 760000000000.0]], $MachinePrecision]], N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision], N[(N[(N[(x * y), $MachinePrecision] - N[(z * a), $MachinePrecision]), $MachinePrecision] / N[(y + N[(z * N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -3.2 \cdot 10^{-6} \lor \neg \left(z \leq 760000000000\right):\\
\;\;\;\;\frac{t - a}{b - y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot y - z \cdot a}{y + z \cdot \left(b - y\right)}\\
\end{array}
\end{array}
if z < -3.1999999999999999e-6 or 7.6e11 < z Initial program 48.7%
Taylor expanded in z around inf 79.4%
if -3.1999999999999999e-6 < z < 7.6e11Initial program 89.2%
Taylor expanded in t around 0 70.9%
+-commutative70.9%
mul-1-neg70.9%
unsub-neg70.9%
*-commutative70.9%
*-commutative70.9%
Simplified70.9%
Final simplification75.0%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ x (- 1.0 z))))
(if (<= y -170000000.0)
t_1
(if (<= y -3e-31) (/ (- a t) y) (if (<= y 8e-44) (/ (- t a) b) t_1)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x / (1.0 - z);
double tmp;
if (y <= -170000000.0) {
tmp = t_1;
} else if (y <= -3e-31) {
tmp = (a - t) / y;
} else if (y <= 8e-44) {
tmp = (t - a) / b;
} 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 = x / (1.0d0 - z)
if (y <= (-170000000.0d0)) then
tmp = t_1
else if (y <= (-3d-31)) then
tmp = (a - t) / y
else if (y <= 8d-44) then
tmp = (t - a) / b
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 / (1.0 - z);
double tmp;
if (y <= -170000000.0) {
tmp = t_1;
} else if (y <= -3e-31) {
tmp = (a - t) / y;
} else if (y <= 8e-44) {
tmp = (t - a) / b;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x / (1.0 - z) tmp = 0 if y <= -170000000.0: tmp = t_1 elif y <= -3e-31: tmp = (a - t) / y elif y <= 8e-44: tmp = (t - a) / b else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x / Float64(1.0 - z)) tmp = 0.0 if (y <= -170000000.0) tmp = t_1; elseif (y <= -3e-31) tmp = Float64(Float64(a - t) / y); elseif (y <= 8e-44) tmp = Float64(Float64(t - a) / b); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x / (1.0 - z); tmp = 0.0; if (y <= -170000000.0) tmp = t_1; elseif (y <= -3e-31) tmp = (a - t) / y; elseif (y <= 8e-44) tmp = (t - a) / b; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x / N[(1.0 - z), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -170000000.0], t$95$1, If[LessEqual[y, -3e-31], N[(N[(a - t), $MachinePrecision] / y), $MachinePrecision], If[LessEqual[y, 8e-44], N[(N[(t - a), $MachinePrecision] / b), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{x}{1 - z}\\
\mathbf{if}\;y \leq -170000000:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq -3 \cdot 10^{-31}:\\
\;\;\;\;\frac{a - t}{y}\\
\mathbf{elif}\;y \leq 8 \cdot 10^{-44}:\\
\;\;\;\;\frac{t - a}{b}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -1.7e8 or 7.99999999999999962e-44 < y Initial program 59.0%
Taylor expanded in y around inf 58.4%
mul-1-neg58.4%
unsub-neg58.4%
Simplified58.4%
if -1.7e8 < y < -2.99999999999999981e-31Initial program 58.2%
Taylor expanded in b around 0 48.3%
+-commutative48.3%
fma-define48.3%
*-commutative48.3%
*-rgt-identity48.3%
mul-1-neg48.3%
distribute-rgt-neg-in48.3%
mul-1-neg48.3%
distribute-lft-in48.3%
mul-1-neg48.3%
unsub-neg48.3%
Simplified48.3%
Taylor expanded in z around inf 69.6%
mul-1-neg69.6%
distribute-neg-frac269.6%
Simplified69.6%
if -2.99999999999999981e-31 < y < 7.99999999999999962e-44Initial program 82.3%
Taylor expanded in y around 0 66.1%
Final simplification62.3%
(FPCore (x y z t a b) :precision binary64 (if (or (<= y -3.2e-110) (not (<= y 8.2e-45))) (/ x (- 1.0 z)) (/ (- a) b)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -3.2e-110) || !(y <= 8.2e-45)) {
tmp = x / (1.0 - z);
} else {
tmp = -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 ((y <= (-3.2d-110)) .or. (.not. (y <= 8.2d-45))) then
tmp = x / (1.0d0 - z)
else
tmp = -a / b
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -3.2e-110) || !(y <= 8.2e-45)) {
tmp = x / (1.0 - z);
} else {
tmp = -a / b;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (y <= -3.2e-110) or not (y <= 8.2e-45): tmp = x / (1.0 - z) else: tmp = -a / b return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((y <= -3.2e-110) || !(y <= 8.2e-45)) tmp = Float64(x / Float64(1.0 - z)); else tmp = Float64(Float64(-a) / b); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((y <= -3.2e-110) || ~((y <= 8.2e-45))) tmp = x / (1.0 - z); else tmp = -a / b; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[y, -3.2e-110], N[Not[LessEqual[y, 8.2e-45]], $MachinePrecision]], N[(x / N[(1.0 - z), $MachinePrecision]), $MachinePrecision], N[((-a) / b), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -3.2 \cdot 10^{-110} \lor \neg \left(y \leq 8.2 \cdot 10^{-45}\right):\\
\;\;\;\;\frac{x}{1 - z}\\
\mathbf{else}:\\
\;\;\;\;\frac{-a}{b}\\
\end{array}
\end{array}
if y < -3.20000000000000028e-110 or 8.1999999999999998e-45 < y Initial program 60.3%
Taylor expanded in y around inf 53.2%
mul-1-neg53.2%
unsub-neg53.2%
Simplified53.2%
if -3.20000000000000028e-110 < y < 8.1999999999999998e-45Initial program 83.2%
Taylor expanded in t around 0 48.8%
+-commutative48.8%
mul-1-neg48.8%
unsub-neg48.8%
*-commutative48.8%
*-commutative48.8%
Simplified48.8%
Taylor expanded in y around 0 39.5%
associate-*r/39.5%
neg-mul-139.5%
Simplified39.5%
Final simplification47.5%
(FPCore (x y z t a b) :precision binary64 (if (or (<= y -8e-51) (not (<= y 2.15e-44))) (/ x (- 1.0 z)) (/ (- t a) b)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -8e-51) || !(y <= 2.15e-44)) {
tmp = x / (1.0 - z);
} else {
tmp = (t - 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 ((y <= (-8d-51)) .or. (.not. (y <= 2.15d-44))) then
tmp = x / (1.0d0 - z)
else
tmp = (t - 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 ((y <= -8e-51) || !(y <= 2.15e-44)) {
tmp = x / (1.0 - z);
} else {
tmp = (t - a) / b;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (y <= -8e-51) or not (y <= 2.15e-44): tmp = x / (1.0 - z) else: tmp = (t - a) / b return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((y <= -8e-51) || !(y <= 2.15e-44)) tmp = Float64(x / Float64(1.0 - z)); else tmp = Float64(Float64(t - a) / b); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((y <= -8e-51) || ~((y <= 2.15e-44))) tmp = x / (1.0 - z); else tmp = (t - a) / b; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[y, -8e-51], N[Not[LessEqual[y, 2.15e-44]], $MachinePrecision]], N[(x / N[(1.0 - z), $MachinePrecision]), $MachinePrecision], N[(N[(t - a), $MachinePrecision] / b), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -8 \cdot 10^{-51} \lor \neg \left(y \leq 2.15 \cdot 10^{-44}\right):\\
\;\;\;\;\frac{x}{1 - z}\\
\mathbf{else}:\\
\;\;\;\;\frac{t - a}{b}\\
\end{array}
\end{array}
if y < -8.0000000000000001e-51 or 2.15000000000000007e-44 < y Initial program 59.4%
Taylor expanded in y around inf 55.4%
mul-1-neg55.4%
unsub-neg55.4%
Simplified55.4%
if -8.0000000000000001e-51 < y < 2.15000000000000007e-44Initial program 82.6%
Taylor expanded in y around 0 67.5%
Final simplification60.8%
(FPCore (x y z t a b) :precision binary64 (if (<= y -4.2e-64) x (if (<= y 3.2e-45) (/ (- a) b) x)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -4.2e-64) {
tmp = x;
} else if (y <= 3.2e-45) {
tmp = -a / b;
} 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 (y <= (-4.2d-64)) then
tmp = x
else if (y <= 3.2d-45) then
tmp = -a / b
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 (y <= -4.2e-64) {
tmp = x;
} else if (y <= 3.2e-45) {
tmp = -a / b;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -4.2e-64: tmp = x elif y <= 3.2e-45: tmp = -a / b else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -4.2e-64) tmp = x; elseif (y <= 3.2e-45) tmp = Float64(Float64(-a) / b); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -4.2e-64) tmp = x; elseif (y <= 3.2e-45) tmp = -a / b; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -4.2e-64], x, If[LessEqual[y, 3.2e-45], N[((-a) / b), $MachinePrecision], x]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -4.2 \cdot 10^{-64}:\\
\;\;\;\;x\\
\mathbf{elif}\;y \leq 3.2 \cdot 10^{-45}:\\
\;\;\;\;\frac{-a}{b}\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if y < -4.20000000000000023e-64 or 3.20000000000000007e-45 < y Initial program 59.7%
Taylor expanded in z around 0 42.1%
if -4.20000000000000023e-64 < y < 3.20000000000000007e-45Initial program 82.5%
Taylor expanded in t around 0 49.3%
+-commutative49.3%
mul-1-neg49.3%
unsub-neg49.3%
*-commutative49.3%
*-commutative49.3%
Simplified49.3%
Taylor expanded in y around 0 38.0%
associate-*r/38.0%
neg-mul-138.0%
Simplified38.0%
Final simplification40.3%
(FPCore (x y z t a b) :precision binary64 (if (or (<= z -8.5e-6) (not (<= z 1.0))) (/ a y) x))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -8.5e-6) || !(z <= 1.0)) {
tmp = a / y;
} 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 ((z <= (-8.5d-6)) .or. (.not. (z <= 1.0d0))) then
tmp = a / y
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 ((z <= -8.5e-6) || !(z <= 1.0)) {
tmp = a / y;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -8.5e-6) or not (z <= 1.0): tmp = a / y else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -8.5e-6) || !(z <= 1.0)) tmp = Float64(a / y); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -8.5e-6) || ~((z <= 1.0))) tmp = a / y; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -8.5e-6], N[Not[LessEqual[z, 1.0]], $MachinePrecision]], N[(a / y), $MachinePrecision], x]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -8.5 \cdot 10^{-6} \lor \neg \left(z \leq 1\right):\\
\;\;\;\;\frac{a}{y}\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if z < -8.4999999999999999e-6 or 1 < z Initial program 48.0%
Taylor expanded in b around 0 25.2%
+-commutative25.2%
fma-define25.2%
*-commutative25.2%
*-rgt-identity25.2%
mul-1-neg25.2%
distribute-rgt-neg-in25.2%
mul-1-neg25.2%
distribute-lft-in25.2%
mul-1-neg25.2%
unsub-neg25.2%
Simplified25.2%
Taylor expanded in z around inf 35.1%
mul-1-neg35.1%
distribute-neg-frac235.1%
Simplified35.1%
Taylor expanded in t around 0 17.0%
if -8.4999999999999999e-6 < z < 1Initial program 89.9%
Taylor expanded in z around 0 49.8%
Final simplification34.0%
(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 69.7%
Taylor expanded in z around 0 27.5%
Final simplification27.5%
(FPCore (x y z t a b) :precision binary64 (- (/ (+ (* z t) (* y x)) (+ y (* z (- b y)))) (/ a (+ (- b y) (/ y z)))))
double code(double x, double y, double z, double t, double a, double b) {
return (((z * t) + (y * x)) / (y + (z * (b - y)))) - (a / ((b - y) + (y / z)));
}
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 = (((z * t) + (y * x)) / (y + (z * (b - y)))) - (a / ((b - y) + (y / z)))
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return (((z * t) + (y * x)) / (y + (z * (b - y)))) - (a / ((b - y) + (y / z)));
}
def code(x, y, z, t, a, b): return (((z * t) + (y * x)) / (y + (z * (b - y)))) - (a / ((b - y) + (y / z)))
function code(x, y, z, t, a, b) return Float64(Float64(Float64(Float64(z * t) + Float64(y * x)) / Float64(y + Float64(z * Float64(b - y)))) - Float64(a / Float64(Float64(b - y) + Float64(y / z)))) end
function tmp = code(x, y, z, t, a, b) tmp = (((z * t) + (y * x)) / (y + (z * (b - y)))) - (a / ((b - y) + (y / z))); end
code[x_, y_, z_, t_, a_, b_] := N[(N[(N[(N[(z * t), $MachinePrecision] + N[(y * x), $MachinePrecision]), $MachinePrecision] / N[(y + N[(z * N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(a / N[(N[(b - y), $MachinePrecision] + N[(y / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{z \cdot t + y \cdot x}{y + z \cdot \left(b - y\right)} - \frac{a}{\left(b - y\right) + \frac{y}{z}}
\end{array}
herbie shell --seed 2024039
(FPCore (x y z t a b)
:name "Development.Shake.Progress:decay from shake-0.15.5"
:precision binary64
:herbie-target
(- (/ (+ (* z t) (* y x)) (+ y (* z (- b y)))) (/ a (+ (- b y) (/ y z))))
(/ (+ (* x y) (* z (- t a))) (+ y (* z (- b y)))))