
(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 22 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
(let* ((t_1 (pow (- b y) 2.0))
(t_2 (fma z (- b y) y))
(t_3 (- y (* z (- y b))))
(t_4 (+ (/ (* x y) t_3) (- (/ (* z t) t_3) (/ (* z a) t_3))))
(t_5 (/ (+ (* x y) (* z (- t a))) t_3))
(t_6 (+ (/ y (/ t_2 x)) (/ (- t a) (/ t_2 z)))))
(if (<= t_5 (- INFINITY))
t_6
(if (<= t_5 -1e-221)
t_4
(if (<= t_5 2e-281)
(-
(/ (/ (* x y) z) (- b y))
(- (+ (/ a (- b y)) (* (/ (- t a) t_1) (/ y z))) (/ t (- b y))))
(if (<= t_5 2e+306)
t_4
(if (<= t_5 INFINITY)
t_6
(+
(/ (+ (/ y (/ (- b y) x)) (/ (- a t) (/ t_1 y))) z)
(/ (- t a) (- b y))))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = pow((b - y), 2.0);
double t_2 = fma(z, (b - y), y);
double t_3 = y - (z * (y - b));
double t_4 = ((x * y) / t_3) + (((z * t) / t_3) - ((z * a) / t_3));
double t_5 = ((x * y) + (z * (t - a))) / t_3;
double t_6 = (y / (t_2 / x)) + ((t - a) / (t_2 / z));
double tmp;
if (t_5 <= -((double) INFINITY)) {
tmp = t_6;
} else if (t_5 <= -1e-221) {
tmp = t_4;
} else if (t_5 <= 2e-281) {
tmp = (((x * y) / z) / (b - y)) - (((a / (b - y)) + (((t - a) / t_1) * (y / z))) - (t / (b - y)));
} else if (t_5 <= 2e+306) {
tmp = t_4;
} else if (t_5 <= ((double) INFINITY)) {
tmp = t_6;
} else {
tmp = (((y / ((b - y) / x)) + ((a - t) / (t_1 / y))) / z) + ((t - a) / (b - y));
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = Float64(b - y) ^ 2.0 t_2 = fma(z, Float64(b - y), y) t_3 = Float64(y - Float64(z * Float64(y - b))) t_4 = Float64(Float64(Float64(x * y) / t_3) + Float64(Float64(Float64(z * t) / t_3) - Float64(Float64(z * a) / t_3))) t_5 = Float64(Float64(Float64(x * y) + Float64(z * Float64(t - a))) / t_3) t_6 = Float64(Float64(y / Float64(t_2 / x)) + Float64(Float64(t - a) / Float64(t_2 / z))) tmp = 0.0 if (t_5 <= Float64(-Inf)) tmp = t_6; elseif (t_5 <= -1e-221) tmp = t_4; elseif (t_5 <= 2e-281) tmp = Float64(Float64(Float64(Float64(x * y) / z) / Float64(b - y)) - Float64(Float64(Float64(a / Float64(b - y)) + Float64(Float64(Float64(t - a) / t_1) * Float64(y / z))) - Float64(t / Float64(b - y)))); elseif (t_5 <= 2e+306) tmp = t_4; elseif (t_5 <= Inf) tmp = t_6; else tmp = Float64(Float64(Float64(Float64(y / Float64(Float64(b - y) / x)) + Float64(Float64(a - t) / Float64(t_1 / y))) / z) + Float64(Float64(t - a) / Float64(b - y))); end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[Power[N[(b - y), $MachinePrecision], 2.0], $MachinePrecision]}, Block[{t$95$2 = N[(z * N[(b - y), $MachinePrecision] + y), $MachinePrecision]}, Block[{t$95$3 = N[(y - N[(z * N[(y - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(x * y), $MachinePrecision] / t$95$3), $MachinePrecision] + N[(N[(N[(z * t), $MachinePrecision] / t$95$3), $MachinePrecision] - N[(N[(z * a), $MachinePrecision] / t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(N[(x * y), $MachinePrecision] + N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$3), $MachinePrecision]}, Block[{t$95$6 = N[(N[(y / N[(t$95$2 / x), $MachinePrecision]), $MachinePrecision] + N[(N[(t - a), $MachinePrecision] / N[(t$95$2 / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$5, (-Infinity)], t$95$6, If[LessEqual[t$95$5, -1e-221], t$95$4, If[LessEqual[t$95$5, 2e-281], N[(N[(N[(N[(x * y), $MachinePrecision] / z), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(a / N[(b - y), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(t - a), $MachinePrecision] / t$95$1), $MachinePrecision] * N[(y / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(t / N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$5, 2e+306], t$95$4, If[LessEqual[t$95$5, Infinity], t$95$6, N[(N[(N[(N[(y / N[(N[(b - y), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision] + N[(N[(a - t), $MachinePrecision] / N[(t$95$1 / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision] + N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := {\left(b - y\right)}^{2}\\
t_2 := \mathsf{fma}\left(z, b - y, y\right)\\
t_3 := y - z \cdot \left(y - b\right)\\
t_4 := \frac{x \cdot y}{t_3} + \left(\frac{z \cdot t}{t_3} - \frac{z \cdot a}{t_3}\right)\\
t_5 := \frac{x \cdot y + z \cdot \left(t - a\right)}{t_3}\\
t_6 := \frac{y}{\frac{t_2}{x}} + \frac{t - a}{\frac{t_2}{z}}\\
\mathbf{if}\;t_5 \leq -\infty:\\
\;\;\;\;t_6\\
\mathbf{elif}\;t_5 \leq -1 \cdot 10^{-221}:\\
\;\;\;\;t_4\\
\mathbf{elif}\;t_5 \leq 2 \cdot 10^{-281}:\\
\;\;\;\;\frac{\frac{x \cdot y}{z}}{b - y} - \left(\left(\frac{a}{b - y} + \frac{t - a}{t_1} \cdot \frac{y}{z}\right) - \frac{t}{b - y}\right)\\
\mathbf{elif}\;t_5 \leq 2 \cdot 10^{+306}:\\
\;\;\;\;t_4\\
\mathbf{elif}\;t_5 \leq \infty:\\
\;\;\;\;t_6\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{y}{\frac{b - y}{x}} + \frac{a - t}{\frac{t_1}{y}}}{z} + \frac{t - a}{b - y}\\
\end{array}
\end{array}
if (/.f64 (+.f64 (*.f64 x y) (*.f64 z (-.f64 t a))) (+.f64 y (*.f64 z (-.f64 b y)))) < -inf.0 or 2.00000000000000003e306 < (/.f64 (+.f64 (*.f64 x y) (*.f64 z (-.f64 t a))) (+.f64 y (*.f64 z (-.f64 b y)))) < +inf.0Initial program 25.5%
Taylor expanded in x around 0 25.5%
associate-/l*61.5%
+-commutative61.5%
*-commutative61.5%
fma-udef61.5%
associate-/l*99.8%
+-commutative99.8%
*-commutative99.8%
fma-udef99.8%
Simplified99.8%
if -inf.0 < (/.f64 (+.f64 (*.f64 x y) (*.f64 z (-.f64 t a))) (+.f64 y (*.f64 z (-.f64 b y)))) < -1.00000000000000002e-221 or 2e-281 < (/.f64 (+.f64 (*.f64 x y) (*.f64 z (-.f64 t a))) (+.f64 y (*.f64 z (-.f64 b y)))) < 2.00000000000000003e306Initial program 99.5%
Taylor expanded in a around inf 99.6%
if -1.00000000000000002e-221 < (/.f64 (+.f64 (*.f64 x y) (*.f64 z (-.f64 t a))) (+.f64 y (*.f64 z (-.f64 b y)))) < 2e-281Initial program 41.3%
Taylor expanded in z around inf 69.9%
associate--l+69.9%
associate-/r*95.2%
+-commutative95.2%
*-commutative95.2%
times-frac99.6%
Simplified99.6%
if +inf.0 < (/.f64 (+.f64 (*.f64 x y) (*.f64 z (-.f64 t a))) (+.f64 y (*.f64 z (-.f64 b y)))) Initial program 0.0%
Taylor expanded in z around -inf 38.2%
+-commutative38.2%
associate--l+38.2%
Simplified99.9%
Final simplification99.7%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (- y (* z (- y b))))
(t_2
(+
(/ (+ (/ y (/ (- b y) x)) (/ (- a t) (/ (pow (- b y) 2.0) y))) z)
(/ (- t a) (- b y))))
(t_3 (+ (/ (* x y) t_1) (- (/ (* z t) t_1) (/ (* z a) t_1)))))
(if (<= z -38000000000.0)
t_2
(if (<= z -1.5e-195)
t_3
(if (<= z 2.35e-234)
(- (/ (* z (- t a)) y) (/ x (+ z -1.0)))
(if (<= z 15.0) t_3 t_2))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = y - (z * (y - b));
double t_2 = (((y / ((b - y) / x)) + ((a - t) / (pow((b - y), 2.0) / y))) / z) + ((t - a) / (b - y));
double t_3 = ((x * y) / t_1) + (((z * t) / t_1) - ((z * a) / t_1));
double tmp;
if (z <= -38000000000.0) {
tmp = t_2;
} else if (z <= -1.5e-195) {
tmp = t_3;
} else if (z <= 2.35e-234) {
tmp = ((z * (t - a)) / y) - (x / (z + -1.0));
} else if (z <= 15.0) {
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 = y - (z * (y - b))
t_2 = (((y / ((b - y) / x)) + ((a - t) / (((b - y) ** 2.0d0) / y))) / z) + ((t - a) / (b - y))
t_3 = ((x * y) / t_1) + (((z * t) / t_1) - ((z * a) / t_1))
if (z <= (-38000000000.0d0)) then
tmp = t_2
else if (z <= (-1.5d-195)) then
tmp = t_3
else if (z <= 2.35d-234) then
tmp = ((z * (t - a)) / y) - (x / (z + (-1.0d0)))
else if (z <= 15.0d0) 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 = y - (z * (y - b));
double t_2 = (((y / ((b - y) / x)) + ((a - t) / (Math.pow((b - y), 2.0) / y))) / z) + ((t - a) / (b - y));
double t_3 = ((x * y) / t_1) + (((z * t) / t_1) - ((z * a) / t_1));
double tmp;
if (z <= -38000000000.0) {
tmp = t_2;
} else if (z <= -1.5e-195) {
tmp = t_3;
} else if (z <= 2.35e-234) {
tmp = ((z * (t - a)) / y) - (x / (z + -1.0));
} else if (z <= 15.0) {
tmp = t_3;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = y - (z * (y - b)) t_2 = (((y / ((b - y) / x)) + ((a - t) / (math.pow((b - y), 2.0) / y))) / z) + ((t - a) / (b - y)) t_3 = ((x * y) / t_1) + (((z * t) / t_1) - ((z * a) / t_1)) tmp = 0 if z <= -38000000000.0: tmp = t_2 elif z <= -1.5e-195: tmp = t_3 elif z <= 2.35e-234: tmp = ((z * (t - a)) / y) - (x / (z + -1.0)) elif z <= 15.0: tmp = t_3 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(y - Float64(z * Float64(y - b))) t_2 = Float64(Float64(Float64(Float64(y / Float64(Float64(b - y) / x)) + Float64(Float64(a - t) / Float64((Float64(b - y) ^ 2.0) / y))) / z) + Float64(Float64(t - a) / Float64(b - y))) t_3 = Float64(Float64(Float64(x * y) / t_1) + Float64(Float64(Float64(z * t) / t_1) - Float64(Float64(z * a) / t_1))) tmp = 0.0 if (z <= -38000000000.0) tmp = t_2; elseif (z <= -1.5e-195) tmp = t_3; elseif (z <= 2.35e-234) tmp = Float64(Float64(Float64(z * Float64(t - a)) / y) - Float64(x / Float64(z + -1.0))); elseif (z <= 15.0) tmp = t_3; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = y - (z * (y - b)); t_2 = (((y / ((b - y) / x)) + ((a - t) / (((b - y) ^ 2.0) / y))) / z) + ((t - a) / (b - y)); t_3 = ((x * y) / t_1) + (((z * t) / t_1) - ((z * a) / t_1)); tmp = 0.0; if (z <= -38000000000.0) tmp = t_2; elseif (z <= -1.5e-195) tmp = t_3; elseif (z <= 2.35e-234) tmp = ((z * (t - a)) / y) - (x / (z + -1.0)); elseif (z <= 15.0) tmp = t_3; 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[(y - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(N[(y / N[(N[(b - y), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision] + N[(N[(a - t), $MachinePrecision] / N[(N[Power[N[(b - y), $MachinePrecision], 2.0], $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision] + N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(x * y), $MachinePrecision] / t$95$1), $MachinePrecision] + N[(N[(N[(z * t), $MachinePrecision] / t$95$1), $MachinePrecision] - N[(N[(z * a), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -38000000000.0], t$95$2, If[LessEqual[z, -1.5e-195], t$95$3, If[LessEqual[z, 2.35e-234], N[(N[(N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision] - N[(x / N[(z + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 15.0], t$95$3, t$95$2]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y - z \cdot \left(y - b\right)\\
t_2 := \frac{\frac{y}{\frac{b - y}{x}} + \frac{a - t}{\frac{{\left(b - y\right)}^{2}}{y}}}{z} + \frac{t - a}{b - y}\\
t_3 := \frac{x \cdot y}{t_1} + \left(\frac{z \cdot t}{t_1} - \frac{z \cdot a}{t_1}\right)\\
\mathbf{if}\;z \leq -38000000000:\\
\;\;\;\;t_2\\
\mathbf{elif}\;z \leq -1.5 \cdot 10^{-195}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;z \leq 2.35 \cdot 10^{-234}:\\
\;\;\;\;\frac{z \cdot \left(t - a\right)}{y} - \frac{x}{z + -1}\\
\mathbf{elif}\;z \leq 15:\\
\;\;\;\;t_3\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if z < -3.8e10 or 15 < z Initial program 36.5%
Taylor expanded in z around -inf 68.0%
+-commutative68.0%
associate--l+68.0%
Simplified96.5%
if -3.8e10 < z < -1.5e-195 or 2.35e-234 < z < 15Initial program 90.8%
Taylor expanded in a around inf 90.8%
if -1.5e-195 < z < 2.35e-234Initial program 76.8%
Taylor expanded in y around -inf 80.0%
mul-1-neg80.0%
unsub-neg80.0%
mul-1-neg80.0%
distribute-neg-frac80.0%
cancel-sign-sub-inv80.0%
associate-/l*80.0%
metadata-eval80.0%
*-lft-identity80.0%
associate-/l*80.0%
Simplified80.0%
Taylor expanded in z around 0 80.0%
associate-/l*76.7%
mul-1-neg76.7%
unsub-neg76.7%
Simplified76.7%
Taylor expanded in b around 0 91.2%
Final simplification93.7%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (- y (* z (- y b))))
(t_2 (+ (/ (* x y) t_1) (- (/ (* z t) t_1) (/ (* z a) t_1))))
(t_3 (/ (- t a) (- b y))))
(if (<= z -2.55e+16)
t_3
(if (<= z -2.6e-197)
t_2
(if (<= z 1.05e-231)
(- (/ (* z (- t a)) y) (/ x (+ z -1.0)))
(if (<= z 15.0) t_2 t_3))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = y - (z * (y - b));
double t_2 = ((x * y) / t_1) + (((z * t) / t_1) - ((z * a) / t_1));
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -2.55e+16) {
tmp = t_3;
} else if (z <= -2.6e-197) {
tmp = t_2;
} else if (z <= 1.05e-231) {
tmp = ((z * (t - a)) / y) - (x / (z + -1.0));
} else if (z <= 15.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 * (y - b))
t_2 = ((x * y) / t_1) + (((z * t) / t_1) - ((z * a) / t_1))
t_3 = (t - a) / (b - y)
if (z <= (-2.55d+16)) then
tmp = t_3
else if (z <= (-2.6d-197)) then
tmp = t_2
else if (z <= 1.05d-231) then
tmp = ((z * (t - a)) / y) - (x / (z + (-1.0d0)))
else if (z <= 15.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 * (y - b));
double t_2 = ((x * y) / t_1) + (((z * t) / t_1) - ((z * a) / t_1));
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -2.55e+16) {
tmp = t_3;
} else if (z <= -2.6e-197) {
tmp = t_2;
} else if (z <= 1.05e-231) {
tmp = ((z * (t - a)) / y) - (x / (z + -1.0));
} else if (z <= 15.0) {
tmp = t_2;
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = y - (z * (y - b)) t_2 = ((x * y) / t_1) + (((z * t) / t_1) - ((z * a) / t_1)) t_3 = (t - a) / (b - y) tmp = 0 if z <= -2.55e+16: tmp = t_3 elif z <= -2.6e-197: tmp = t_2 elif z <= 1.05e-231: tmp = ((z * (t - a)) / y) - (x / (z + -1.0)) elif z <= 15.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(y - b))) t_2 = Float64(Float64(Float64(x * y) / t_1) + Float64(Float64(Float64(z * t) / t_1) - Float64(Float64(z * a) / t_1))) t_3 = Float64(Float64(t - a) / Float64(b - y)) tmp = 0.0 if (z <= -2.55e+16) tmp = t_3; elseif (z <= -2.6e-197) tmp = t_2; elseif (z <= 1.05e-231) tmp = Float64(Float64(Float64(z * Float64(t - a)) / y) - Float64(x / Float64(z + -1.0))); elseif (z <= 15.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 * (y - b)); t_2 = ((x * y) / t_1) + (((z * t) / t_1) - ((z * a) / t_1)); t_3 = (t - a) / (b - y); tmp = 0.0; if (z <= -2.55e+16) tmp = t_3; elseif (z <= -2.6e-197) tmp = t_2; elseif (z <= 1.05e-231) tmp = ((z * (t - a)) / y) - (x / (z + -1.0)); elseif (z <= 15.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[(y - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(x * y), $MachinePrecision] / t$95$1), $MachinePrecision] + N[(N[(N[(z * t), $MachinePrecision] / t$95$1), $MachinePrecision] - N[(N[(z * a), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -2.55e+16], t$95$3, If[LessEqual[z, -2.6e-197], t$95$2, If[LessEqual[z, 1.05e-231], N[(N[(N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision] - N[(x / N[(z + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 15.0], t$95$2, t$95$3]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y - z \cdot \left(y - b\right)\\
t_2 := \frac{x \cdot y}{t_1} + \left(\frac{z \cdot t}{t_1} - \frac{z \cdot a}{t_1}\right)\\
t_3 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -2.55 \cdot 10^{+16}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;z \leq -2.6 \cdot 10^{-197}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;z \leq 1.05 \cdot 10^{-231}:\\
\;\;\;\;\frac{z \cdot \left(t - a\right)}{y} - \frac{x}{z + -1}\\
\mathbf{elif}\;z \leq 15:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;t_3\\
\end{array}
\end{array}
if z < -2.55e16 or 15 < z Initial program 36.7%
Taylor expanded in z around inf 81.3%
if -2.55e16 < z < -2.6000000000000001e-197 or 1.04999999999999995e-231 < z < 15Initial program 89.8%
Taylor expanded in a around inf 89.8%
if -2.6000000000000001e-197 < z < 1.04999999999999995e-231Initial program 76.8%
Taylor expanded in y around -inf 80.0%
mul-1-neg80.0%
unsub-neg80.0%
mul-1-neg80.0%
distribute-neg-frac80.0%
cancel-sign-sub-inv80.0%
associate-/l*80.0%
metadata-eval80.0%
*-lft-identity80.0%
associate-/l*80.0%
Simplified80.0%
Taylor expanded in z around 0 80.0%
associate-/l*76.7%
mul-1-neg76.7%
unsub-neg76.7%
Simplified76.7%
Taylor expanded in b around 0 91.2%
Final simplification85.9%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ y (* z b)))
(t_2 (/ (* z (- t a)) t_1))
(t_3 (/ (- t a) (- b y))))
(if (<= z -0.82)
t_3
(if (<= z -5.8e-161)
t_2
(if (<= z 1.72e-293)
(- (/ t (/ y z)) (/ x (+ z -1.0)))
(if (<= z 5.3e-114)
(- x (* z (- (/ a y) x)))
(if (<= z 4.5e-93)
t_2
(if (<= z 2.2e-61)
(/ (* x y) t_1)
(if (<= z 0.465)
(- (/ (- x) (+ z -1.0)) (/ a (/ y z)))
t_3)))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = y + (z * b);
double t_2 = (z * (t - a)) / t_1;
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -0.82) {
tmp = t_3;
} else if (z <= -5.8e-161) {
tmp = t_2;
} else if (z <= 1.72e-293) {
tmp = (t / (y / z)) - (x / (z + -1.0));
} else if (z <= 5.3e-114) {
tmp = x - (z * ((a / y) - x));
} else if (z <= 4.5e-93) {
tmp = t_2;
} else if (z <= 2.2e-61) {
tmp = (x * y) / t_1;
} else if (z <= 0.465) {
tmp = (-x / (z + -1.0)) - (a / (y / z));
} 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)
t_2 = (z * (t - a)) / t_1
t_3 = (t - a) / (b - y)
if (z <= (-0.82d0)) then
tmp = t_3
else if (z <= (-5.8d-161)) then
tmp = t_2
else if (z <= 1.72d-293) then
tmp = (t / (y / z)) - (x / (z + (-1.0d0)))
else if (z <= 5.3d-114) then
tmp = x - (z * ((a / y) - x))
else if (z <= 4.5d-93) then
tmp = t_2
else if (z <= 2.2d-61) then
tmp = (x * y) / t_1
else if (z <= 0.465d0) then
tmp = (-x / (z + (-1.0d0))) - (a / (y / z))
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);
double t_2 = (z * (t - a)) / t_1;
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -0.82) {
tmp = t_3;
} else if (z <= -5.8e-161) {
tmp = t_2;
} else if (z <= 1.72e-293) {
tmp = (t / (y / z)) - (x / (z + -1.0));
} else if (z <= 5.3e-114) {
tmp = x - (z * ((a / y) - x));
} else if (z <= 4.5e-93) {
tmp = t_2;
} else if (z <= 2.2e-61) {
tmp = (x * y) / t_1;
} else if (z <= 0.465) {
tmp = (-x / (z + -1.0)) - (a / (y / z));
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = y + (z * b) t_2 = (z * (t - a)) / t_1 t_3 = (t - a) / (b - y) tmp = 0 if z <= -0.82: tmp = t_3 elif z <= -5.8e-161: tmp = t_2 elif z <= 1.72e-293: tmp = (t / (y / z)) - (x / (z + -1.0)) elif z <= 5.3e-114: tmp = x - (z * ((a / y) - x)) elif z <= 4.5e-93: tmp = t_2 elif z <= 2.2e-61: tmp = (x * y) / t_1 elif z <= 0.465: tmp = (-x / (z + -1.0)) - (a / (y / z)) else: tmp = t_3 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(y + Float64(z * b)) t_2 = Float64(Float64(z * Float64(t - a)) / t_1) t_3 = Float64(Float64(t - a) / Float64(b - y)) tmp = 0.0 if (z <= -0.82) tmp = t_3; elseif (z <= -5.8e-161) tmp = t_2; elseif (z <= 1.72e-293) tmp = Float64(Float64(t / Float64(y / z)) - Float64(x / Float64(z + -1.0))); elseif (z <= 5.3e-114) tmp = Float64(x - Float64(z * Float64(Float64(a / y) - x))); elseif (z <= 4.5e-93) tmp = t_2; elseif (z <= 2.2e-61) tmp = Float64(Float64(x * y) / t_1); elseif (z <= 0.465) tmp = Float64(Float64(Float64(-x) / Float64(z + -1.0)) - Float64(a / Float64(y / z))); else tmp = t_3; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = y + (z * b); t_2 = (z * (t - a)) / t_1; t_3 = (t - a) / (b - y); tmp = 0.0; if (z <= -0.82) tmp = t_3; elseif (z <= -5.8e-161) tmp = t_2; elseif (z <= 1.72e-293) tmp = (t / (y / z)) - (x / (z + -1.0)); elseif (z <= 5.3e-114) tmp = x - (z * ((a / y) - x)); elseif (z <= 4.5e-93) tmp = t_2; elseif (z <= 2.2e-61) tmp = (x * y) / t_1; elseif (z <= 0.465) tmp = (-x / (z + -1.0)) - (a / (y / z)); else tmp = t_3; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(y + N[(z * b), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision]}, Block[{t$95$3 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -0.82], t$95$3, If[LessEqual[z, -5.8e-161], t$95$2, If[LessEqual[z, 1.72e-293], N[(N[(t / N[(y / z), $MachinePrecision]), $MachinePrecision] - N[(x / N[(z + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 5.3e-114], N[(x - N[(z * N[(N[(a / y), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 4.5e-93], t$95$2, If[LessEqual[z, 2.2e-61], N[(N[(x * y), $MachinePrecision] / t$95$1), $MachinePrecision], If[LessEqual[z, 0.465], N[(N[((-x) / N[(z + -1.0), $MachinePrecision]), $MachinePrecision] - N[(a / N[(y / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$3]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y + z \cdot b\\
t_2 := \frac{z \cdot \left(t - a\right)}{t_1}\\
t_3 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -0.82:\\
\;\;\;\;t_3\\
\mathbf{elif}\;z \leq -5.8 \cdot 10^{-161}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;z \leq 1.72 \cdot 10^{-293}:\\
\;\;\;\;\frac{t}{\frac{y}{z}} - \frac{x}{z + -1}\\
\mathbf{elif}\;z \leq 5.3 \cdot 10^{-114}:\\
\;\;\;\;x - z \cdot \left(\frac{a}{y} - x\right)\\
\mathbf{elif}\;z \leq 4.5 \cdot 10^{-93}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;z \leq 2.2 \cdot 10^{-61}:\\
\;\;\;\;\frac{x \cdot y}{t_1}\\
\mathbf{elif}\;z \leq 0.465:\\
\;\;\;\;\frac{-x}{z + -1} - \frac{a}{\frac{y}{z}}\\
\mathbf{else}:\\
\;\;\;\;t_3\\
\end{array}
\end{array}
if z < -0.819999999999999951 or 0.465000000000000024 < z Initial program 38.4%
Taylor expanded in z around inf 80.5%
if -0.819999999999999951 < z < -5.8e-161 or 5.29999999999999973e-114 < z < 4.5000000000000002e-93Initial program 88.4%
Taylor expanded in x around 0 71.0%
Taylor expanded in b around inf 69.8%
if -5.8e-161 < z < 1.72000000000000008e-293Initial program 84.4%
Taylor expanded in y around -inf 78.4%
mul-1-neg78.4%
unsub-neg78.4%
mul-1-neg78.4%
distribute-neg-frac78.4%
cancel-sign-sub-inv78.4%
associate-/l*78.4%
metadata-eval78.4%
*-lft-identity78.4%
associate-/l*78.4%
Simplified78.4%
Taylor expanded in z around 0 78.4%
associate-/l*75.6%
mul-1-neg75.6%
unsub-neg75.6%
Simplified75.6%
Taylor expanded in t around inf 78.6%
mul-1-neg78.6%
associate-/l*75.7%
distribute-neg-frac75.7%
Simplified75.7%
if 1.72000000000000008e-293 < z < 5.29999999999999973e-114Initial program 78.6%
Taylor expanded in y around -inf 74.2%
mul-1-neg74.2%
unsub-neg74.2%
mul-1-neg74.2%
distribute-neg-frac74.2%
cancel-sign-sub-inv74.2%
associate-/l*74.3%
metadata-eval74.3%
*-lft-identity74.3%
associate-/l*74.3%
Simplified74.3%
div-inv74.4%
+-commutative74.4%
associate-/r/74.4%
sub-neg74.4%
metadata-eval74.4%
associate-/r/74.2%
sub-neg74.2%
metadata-eval74.2%
Applied egg-rr74.2%
Taylor expanded in a around inf 71.6%
mul-1-neg71.6%
times-frac69.1%
distribute-rgt-neg-in69.1%
sub-neg69.1%
metadata-eval69.1%
Simplified69.1%
Taylor expanded in z around 0 71.8%
if 4.5000000000000002e-93 < z < 2.20000000000000009e-61Initial program 99.6%
Taylor expanded in x around inf 63.8%
associate-/l*51.9%
+-commutative51.9%
*-commutative51.9%
fma-udef51.9%
Simplified51.9%
Taylor expanded in x around 0 63.8%
Taylor expanded in b around inf 63.8%
if 2.20000000000000009e-61 < z < 0.465000000000000024Initial program 92.0%
Taylor expanded in y around -inf 67.7%
mul-1-neg67.7%
unsub-neg67.7%
mul-1-neg67.7%
distribute-neg-frac67.7%
cancel-sign-sub-inv67.7%
associate-/l*67.7%
metadata-eval67.7%
*-lft-identity67.7%
associate-/l*67.7%
Simplified67.7%
Taylor expanded in z around 0 67.7%
associate-/l*67.8%
mul-1-neg67.8%
unsub-neg67.8%
Simplified67.8%
Taylor expanded in a around inf 72.3%
associate-/l*72.4%
Simplified72.4%
Final simplification76.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* z (- t a))) (t_2 (/ (- t a) (- b y))) (t_3 (+ y (* z b))))
(if (<= z -1150.0)
t_2
(if (<= z -5.8e-161)
(/ t_1 (- y (* z (- y b))))
(if (<= z 1.75e-293)
(- (/ t (/ y z)) (/ x (+ z -1.0)))
(if (<= z 6.4e-114)
(- x (* z (- (/ a y) x)))
(if (<= z 1e-92)
(/ t_1 t_3)
(if (<= z 3e-61)
(/ (* x y) t_3)
(if (<= z 0.29)
(- (/ (- x) (+ z -1.0)) (/ a (/ y z)))
t_2)))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = z * (t - a);
double t_2 = (t - a) / (b - y);
double t_3 = y + (z * b);
double tmp;
if (z <= -1150.0) {
tmp = t_2;
} else if (z <= -5.8e-161) {
tmp = t_1 / (y - (z * (y - b)));
} else if (z <= 1.75e-293) {
tmp = (t / (y / z)) - (x / (z + -1.0));
} else if (z <= 6.4e-114) {
tmp = x - (z * ((a / y) - x));
} else if (z <= 1e-92) {
tmp = t_1 / t_3;
} else if (z <= 3e-61) {
tmp = (x * y) / t_3;
} else if (z <= 0.29) {
tmp = (-x / (z + -1.0)) - (a / (y / z));
} 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 = z * (t - a)
t_2 = (t - a) / (b - y)
t_3 = y + (z * b)
if (z <= (-1150.0d0)) then
tmp = t_2
else if (z <= (-5.8d-161)) then
tmp = t_1 / (y - (z * (y - b)))
else if (z <= 1.75d-293) then
tmp = (t / (y / z)) - (x / (z + (-1.0d0)))
else if (z <= 6.4d-114) then
tmp = x - (z * ((a / y) - x))
else if (z <= 1d-92) then
tmp = t_1 / t_3
else if (z <= 3d-61) then
tmp = (x * y) / t_3
else if (z <= 0.29d0) then
tmp = (-x / (z + (-1.0d0))) - (a / (y / z))
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 = z * (t - a);
double t_2 = (t - a) / (b - y);
double t_3 = y + (z * b);
double tmp;
if (z <= -1150.0) {
tmp = t_2;
} else if (z <= -5.8e-161) {
tmp = t_1 / (y - (z * (y - b)));
} else if (z <= 1.75e-293) {
tmp = (t / (y / z)) - (x / (z + -1.0));
} else if (z <= 6.4e-114) {
tmp = x - (z * ((a / y) - x));
} else if (z <= 1e-92) {
tmp = t_1 / t_3;
} else if (z <= 3e-61) {
tmp = (x * y) / t_3;
} else if (z <= 0.29) {
tmp = (-x / (z + -1.0)) - (a / (y / z));
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = z * (t - a) t_2 = (t - a) / (b - y) t_3 = y + (z * b) tmp = 0 if z <= -1150.0: tmp = t_2 elif z <= -5.8e-161: tmp = t_1 / (y - (z * (y - b))) elif z <= 1.75e-293: tmp = (t / (y / z)) - (x / (z + -1.0)) elif z <= 6.4e-114: tmp = x - (z * ((a / y) - x)) elif z <= 1e-92: tmp = t_1 / t_3 elif z <= 3e-61: tmp = (x * y) / t_3 elif z <= 0.29: tmp = (-x / (z + -1.0)) - (a / (y / z)) else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(z * Float64(t - a)) t_2 = Float64(Float64(t - a) / Float64(b - y)) t_3 = Float64(y + Float64(z * b)) tmp = 0.0 if (z <= -1150.0) tmp = t_2; elseif (z <= -5.8e-161) tmp = Float64(t_1 / Float64(y - Float64(z * Float64(y - b)))); elseif (z <= 1.75e-293) tmp = Float64(Float64(t / Float64(y / z)) - Float64(x / Float64(z + -1.0))); elseif (z <= 6.4e-114) tmp = Float64(x - Float64(z * Float64(Float64(a / y) - x))); elseif (z <= 1e-92) tmp = Float64(t_1 / t_3); elseif (z <= 3e-61) tmp = Float64(Float64(x * y) / t_3); elseif (z <= 0.29) tmp = Float64(Float64(Float64(-x) / Float64(z + -1.0)) - Float64(a / Float64(y / z))); else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = z * (t - a); t_2 = (t - a) / (b - y); t_3 = y + (z * b); tmp = 0.0; if (z <= -1150.0) tmp = t_2; elseif (z <= -5.8e-161) tmp = t_1 / (y - (z * (y - b))); elseif (z <= 1.75e-293) tmp = (t / (y / z)) - (x / (z + -1.0)); elseif (z <= 6.4e-114) tmp = x - (z * ((a / y) - x)); elseif (z <= 1e-92) tmp = t_1 / t_3; elseif (z <= 3e-61) tmp = (x * y) / t_3; elseif (z <= 0.29) tmp = (-x / (z + -1.0)) - (a / (y / z)); else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(y + N[(z * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -1150.0], t$95$2, If[LessEqual[z, -5.8e-161], N[(t$95$1 / N[(y - N[(z * N[(y - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.75e-293], N[(N[(t / N[(y / z), $MachinePrecision]), $MachinePrecision] - N[(x / N[(z + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 6.4e-114], N[(x - N[(z * N[(N[(a / y), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1e-92], N[(t$95$1 / t$95$3), $MachinePrecision], If[LessEqual[z, 3e-61], N[(N[(x * y), $MachinePrecision] / t$95$3), $MachinePrecision], If[LessEqual[z, 0.29], N[(N[((-x) / N[(z + -1.0), $MachinePrecision]), $MachinePrecision] - N[(a / N[(y / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := z \cdot \left(t - a\right)\\
t_2 := \frac{t - a}{b - y}\\
t_3 := y + z \cdot b\\
\mathbf{if}\;z \leq -1150:\\
\;\;\;\;t_2\\
\mathbf{elif}\;z \leq -5.8 \cdot 10^{-161}:\\
\;\;\;\;\frac{t_1}{y - z \cdot \left(y - b\right)}\\
\mathbf{elif}\;z \leq 1.75 \cdot 10^{-293}:\\
\;\;\;\;\frac{t}{\frac{y}{z}} - \frac{x}{z + -1}\\
\mathbf{elif}\;z \leq 6.4 \cdot 10^{-114}:\\
\;\;\;\;x - z \cdot \left(\frac{a}{y} - x\right)\\
\mathbf{elif}\;z \leq 10^{-92}:\\
\;\;\;\;\frac{t_1}{t_3}\\
\mathbf{elif}\;z \leq 3 \cdot 10^{-61}:\\
\;\;\;\;\frac{x \cdot y}{t_3}\\
\mathbf{elif}\;z \leq 0.29:\\
\;\;\;\;\frac{-x}{z + -1} - \frac{a}{\frac{y}{z}}\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if z < -1150 or 0.28999999999999998 < z Initial program 38.4%
Taylor expanded in z around inf 80.5%
if -1150 < z < -5.8e-161Initial program 89.1%
Taylor expanded in x around 0 67.1%
if -5.8e-161 < z < 1.7500000000000001e-293Initial program 84.4%
Taylor expanded in y around -inf 78.4%
mul-1-neg78.4%
unsub-neg78.4%
mul-1-neg78.4%
distribute-neg-frac78.4%
cancel-sign-sub-inv78.4%
associate-/l*78.4%
metadata-eval78.4%
*-lft-identity78.4%
associate-/l*78.4%
Simplified78.4%
Taylor expanded in z around 0 78.4%
associate-/l*75.6%
mul-1-neg75.6%
unsub-neg75.6%
Simplified75.6%
Taylor expanded in t around inf 78.6%
mul-1-neg78.6%
associate-/l*75.7%
distribute-neg-frac75.7%
Simplified75.7%
if 1.7500000000000001e-293 < z < 6.4000000000000003e-114Initial program 78.6%
Taylor expanded in y around -inf 74.2%
mul-1-neg74.2%
unsub-neg74.2%
mul-1-neg74.2%
distribute-neg-frac74.2%
cancel-sign-sub-inv74.2%
associate-/l*74.3%
metadata-eval74.3%
*-lft-identity74.3%
associate-/l*74.3%
Simplified74.3%
div-inv74.4%
+-commutative74.4%
associate-/r/74.4%
sub-neg74.4%
metadata-eval74.4%
associate-/r/74.2%
sub-neg74.2%
metadata-eval74.2%
Applied egg-rr74.2%
Taylor expanded in a around inf 71.6%
mul-1-neg71.6%
times-frac69.1%
distribute-rgt-neg-in69.1%
sub-neg69.1%
metadata-eval69.1%
Simplified69.1%
Taylor expanded in z around 0 71.8%
if 6.4000000000000003e-114 < z < 9.99999999999999988e-93Initial program 86.0%
Taylor expanded in x around 0 85.9%
Taylor expanded in b around inf 85.9%
if 9.99999999999999988e-93 < z < 3.00000000000000012e-61Initial program 99.6%
Taylor expanded in x around inf 63.8%
associate-/l*51.9%
+-commutative51.9%
*-commutative51.9%
fma-udef51.9%
Simplified51.9%
Taylor expanded in x around 0 63.8%
Taylor expanded in b around inf 63.8%
if 3.00000000000000012e-61 < z < 0.28999999999999998Initial program 92.0%
Taylor expanded in y around -inf 67.7%
mul-1-neg67.7%
unsub-neg67.7%
mul-1-neg67.7%
distribute-neg-frac67.7%
cancel-sign-sub-inv67.7%
associate-/l*67.7%
metadata-eval67.7%
*-lft-identity67.7%
associate-/l*67.7%
Simplified67.7%
Taylor expanded in z around 0 67.7%
associate-/l*67.8%
mul-1-neg67.8%
unsub-neg67.8%
Simplified67.8%
Taylor expanded in a around inf 72.3%
associate-/l*72.4%
Simplified72.4%
Final simplification76.5%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* z (- t a)))
(t_2 (/ (+ (* x y) t_1) (- y (* z (- y b)))))
(t_3 (/ (- t a) (- b y))))
(if (<= z -2.3e+16)
t_3
(if (<= z -8.5e-198)
t_2
(if (<= z 6.2e-225)
(- (/ t_1 y) (/ x (+ z -1.0)))
(if (<= z 15.0) t_2 t_3))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = z * (t - a);
double t_2 = ((x * y) + t_1) / (y - (z * (y - b)));
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -2.3e+16) {
tmp = t_3;
} else if (z <= -8.5e-198) {
tmp = t_2;
} else if (z <= 6.2e-225) {
tmp = (t_1 / y) - (x / (z + -1.0));
} else if (z <= 15.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 = z * (t - a)
t_2 = ((x * y) + t_1) / (y - (z * (y - b)))
t_3 = (t - a) / (b - y)
if (z <= (-2.3d+16)) then
tmp = t_3
else if (z <= (-8.5d-198)) then
tmp = t_2
else if (z <= 6.2d-225) then
tmp = (t_1 / y) - (x / (z + (-1.0d0)))
else if (z <= 15.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 = z * (t - a);
double t_2 = ((x * y) + t_1) / (y - (z * (y - b)));
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -2.3e+16) {
tmp = t_3;
} else if (z <= -8.5e-198) {
tmp = t_2;
} else if (z <= 6.2e-225) {
tmp = (t_1 / y) - (x / (z + -1.0));
} else if (z <= 15.0) {
tmp = t_2;
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = z * (t - a) t_2 = ((x * y) + t_1) / (y - (z * (y - b))) t_3 = (t - a) / (b - y) tmp = 0 if z <= -2.3e+16: tmp = t_3 elif z <= -8.5e-198: tmp = t_2 elif z <= 6.2e-225: tmp = (t_1 / y) - (x / (z + -1.0)) elif z <= 15.0: tmp = t_2 else: tmp = t_3 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(z * Float64(t - a)) t_2 = Float64(Float64(Float64(x * y) + t_1) / Float64(y - Float64(z * Float64(y - b)))) t_3 = Float64(Float64(t - a) / Float64(b - y)) tmp = 0.0 if (z <= -2.3e+16) tmp = t_3; elseif (z <= -8.5e-198) tmp = t_2; elseif (z <= 6.2e-225) tmp = Float64(Float64(t_1 / y) - Float64(x / Float64(z + -1.0))); elseif (z <= 15.0) tmp = t_2; else tmp = t_3; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = z * (t - a); t_2 = ((x * y) + t_1) / (y - (z * (y - b))); t_3 = (t - a) / (b - y); tmp = 0.0; if (z <= -2.3e+16) tmp = t_3; elseif (z <= -8.5e-198) tmp = t_2; elseif (z <= 6.2e-225) tmp = (t_1 / y) - (x / (z + -1.0)); elseif (z <= 15.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[(z * N[(t - a), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(x * y), $MachinePrecision] + t$95$1), $MachinePrecision] / N[(y - N[(z * N[(y - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -2.3e+16], t$95$3, If[LessEqual[z, -8.5e-198], t$95$2, If[LessEqual[z, 6.2e-225], N[(N[(t$95$1 / y), $MachinePrecision] - N[(x / N[(z + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 15.0], t$95$2, t$95$3]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := z \cdot \left(t - a\right)\\
t_2 := \frac{x \cdot y + t_1}{y - z \cdot \left(y - b\right)}\\
t_3 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -2.3 \cdot 10^{+16}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;z \leq -8.5 \cdot 10^{-198}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;z \leq 6.2 \cdot 10^{-225}:\\
\;\;\;\;\frac{t_1}{y} - \frac{x}{z + -1}\\
\mathbf{elif}\;z \leq 15:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;t_3\\
\end{array}
\end{array}
if z < -2.3e16 or 15 < z Initial program 36.7%
Taylor expanded in z around inf 81.3%
if -2.3e16 < z < -8.4999999999999994e-198 or 6.19999999999999993e-225 < z < 15Initial program 89.8%
if -8.4999999999999994e-198 < z < 6.19999999999999993e-225Initial program 76.8%
Taylor expanded in y around -inf 80.0%
mul-1-neg80.0%
unsub-neg80.0%
mul-1-neg80.0%
distribute-neg-frac80.0%
cancel-sign-sub-inv80.0%
associate-/l*80.0%
metadata-eval80.0%
*-lft-identity80.0%
associate-/l*80.0%
Simplified80.0%
Taylor expanded in z around 0 80.0%
associate-/l*76.7%
mul-1-neg76.7%
unsub-neg76.7%
Simplified76.7%
Taylor expanded in b around 0 91.2%
Final simplification85.8%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (* z (- t a)) (+ y (* z b))))
(t_2 (- x (* z (- (/ a y) x))))
(t_3 (/ (- t a) (- b y))))
(if (<= z -0.88)
t_3
(if (<= z -4.6e-156)
t_1
(if (<= z -8e-264)
(/ y (/ (- y (* z (- y b))) x))
(if (<= z -5.3e-297)
(* (- t a) (/ z y))
(if (<= z 8.2e-114)
t_2
(if (<= z 5.8e-93) t_1 (if (<= z 0.202) t_2 t_3)))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (z * (t - a)) / (y + (z * b));
double t_2 = x - (z * ((a / y) - x));
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -0.88) {
tmp = t_3;
} else if (z <= -4.6e-156) {
tmp = t_1;
} else if (z <= -8e-264) {
tmp = y / ((y - (z * (y - b))) / x);
} else if (z <= -5.3e-297) {
tmp = (t - a) * (z / y);
} else if (z <= 8.2e-114) {
tmp = t_2;
} else if (z <= 5.8e-93) {
tmp = t_1;
} else if (z <= 0.202) {
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 = (z * (t - a)) / (y + (z * b))
t_2 = x - (z * ((a / y) - x))
t_3 = (t - a) / (b - y)
if (z <= (-0.88d0)) then
tmp = t_3
else if (z <= (-4.6d-156)) then
tmp = t_1
else if (z <= (-8d-264)) then
tmp = y / ((y - (z * (y - b))) / x)
else if (z <= (-5.3d-297)) then
tmp = (t - a) * (z / y)
else if (z <= 8.2d-114) then
tmp = t_2
else if (z <= 5.8d-93) then
tmp = t_1
else if (z <= 0.202d0) 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 = (z * (t - a)) / (y + (z * b));
double t_2 = x - (z * ((a / y) - x));
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -0.88) {
tmp = t_3;
} else if (z <= -4.6e-156) {
tmp = t_1;
} else if (z <= -8e-264) {
tmp = y / ((y - (z * (y - b))) / x);
} else if (z <= -5.3e-297) {
tmp = (t - a) * (z / y);
} else if (z <= 8.2e-114) {
tmp = t_2;
} else if (z <= 5.8e-93) {
tmp = t_1;
} else if (z <= 0.202) {
tmp = t_2;
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (z * (t - a)) / (y + (z * b)) t_2 = x - (z * ((a / y) - x)) t_3 = (t - a) / (b - y) tmp = 0 if z <= -0.88: tmp = t_3 elif z <= -4.6e-156: tmp = t_1 elif z <= -8e-264: tmp = y / ((y - (z * (y - b))) / x) elif z <= -5.3e-297: tmp = (t - a) * (z / y) elif z <= 8.2e-114: tmp = t_2 elif z <= 5.8e-93: tmp = t_1 elif z <= 0.202: tmp = t_2 else: tmp = t_3 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(z * Float64(t - a)) / Float64(y + Float64(z * b))) t_2 = Float64(x - Float64(z * Float64(Float64(a / y) - x))) t_3 = Float64(Float64(t - a) / Float64(b - y)) tmp = 0.0 if (z <= -0.88) tmp = t_3; elseif (z <= -4.6e-156) tmp = t_1; elseif (z <= -8e-264) tmp = Float64(y / Float64(Float64(y - Float64(z * Float64(y - b))) / x)); elseif (z <= -5.3e-297) tmp = Float64(Float64(t - a) * Float64(z / y)); elseif (z <= 8.2e-114) tmp = t_2; elseif (z <= 5.8e-93) tmp = t_1; elseif (z <= 0.202) tmp = t_2; else tmp = t_3; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (z * (t - a)) / (y + (z * b)); t_2 = x - (z * ((a / y) - x)); t_3 = (t - a) / (b - y); tmp = 0.0; if (z <= -0.88) tmp = t_3; elseif (z <= -4.6e-156) tmp = t_1; elseif (z <= -8e-264) tmp = y / ((y - (z * (y - b))) / x); elseif (z <= -5.3e-297) tmp = (t - a) * (z / y); elseif (z <= 8.2e-114) tmp = t_2; elseif (z <= 5.8e-93) tmp = t_1; elseif (z <= 0.202) tmp = t_2; else tmp = t_3; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision] / N[(y + N[(z * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x - N[(z * N[(N[(a / y), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -0.88], t$95$3, If[LessEqual[z, -4.6e-156], t$95$1, If[LessEqual[z, -8e-264], N[(y / N[(N[(y - N[(z * N[(y - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, -5.3e-297], N[(N[(t - a), $MachinePrecision] * N[(z / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 8.2e-114], t$95$2, If[LessEqual[z, 5.8e-93], t$95$1, If[LessEqual[z, 0.202], t$95$2, t$95$3]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{z \cdot \left(t - a\right)}{y + z \cdot b}\\
t_2 := x - z \cdot \left(\frac{a}{y} - x\right)\\
t_3 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -0.88:\\
\;\;\;\;t_3\\
\mathbf{elif}\;z \leq -4.6 \cdot 10^{-156}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z \leq -8 \cdot 10^{-264}:\\
\;\;\;\;\frac{y}{\frac{y - z \cdot \left(y - b\right)}{x}}\\
\mathbf{elif}\;z \leq -5.3 \cdot 10^{-297}:\\
\;\;\;\;\left(t - a\right) \cdot \frac{z}{y}\\
\mathbf{elif}\;z \leq 8.2 \cdot 10^{-114}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;z \leq 5.8 \cdot 10^{-93}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z \leq 0.202:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;t_3\\
\end{array}
\end{array}
if z < -0.880000000000000004 or 0.20200000000000001 < z Initial program 38.4%
Taylor expanded in z around inf 80.5%
if -0.880000000000000004 < z < -4.5999999999999999e-156 or 8.1999999999999993e-114 < z < 5.7999999999999997e-93Initial program 88.1%
Taylor expanded in x around 0 73.1%
Taylor expanded in b around inf 71.8%
if -4.5999999999999999e-156 < z < -8.0000000000000001e-264Initial program 82.0%
Taylor expanded in x around inf 59.0%
associate-/l*67.4%
+-commutative67.4%
*-commutative67.4%
fma-udef67.4%
Simplified67.4%
fma-udef67.4%
Applied egg-rr67.4%
if -8.0000000000000001e-264 < z < -5.30000000000000019e-297Initial program 99.8%
Taylor expanded in x around 0 85.8%
Taylor expanded in b around inf 85.8%
Taylor expanded in z around 0 85.8%
div-inv85.6%
*-commutative85.6%
Applied egg-rr85.6%
associate-*r/85.8%
*-rgt-identity85.8%
*-commutative85.8%
associate-*r/86.2%
Simplified86.2%
if -5.30000000000000019e-297 < z < 8.1999999999999993e-114 or 5.7999999999999997e-93 < z < 0.20200000000000001Initial program 83.9%
Taylor expanded in y around -inf 72.1%
mul-1-neg72.1%
unsub-neg72.1%
mul-1-neg72.1%
distribute-neg-frac72.1%
cancel-sign-sub-inv72.1%
associate-/l*72.2%
metadata-eval72.2%
*-lft-identity72.2%
associate-/l*72.2%
Simplified72.2%
div-inv72.2%
+-commutative72.2%
associate-/r/72.2%
sub-neg72.2%
metadata-eval72.2%
associate-/r/72.1%
sub-neg72.1%
metadata-eval72.1%
Applied egg-rr72.1%
Taylor expanded in a around inf 72.9%
mul-1-neg72.9%
times-frac71.5%
distribute-rgt-neg-in71.5%
sub-neg71.5%
metadata-eval71.5%
Simplified71.5%
Taylor expanded in z around 0 67.7%
Final simplification75.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* z (- t a)))
(t_2 (/ (+ (* x y) t_1) (+ y (* z b))))
(t_3 (/ (- t a) (- b y))))
(if (<= z -350000000000.0)
t_3
(if (<= z -3.8e-195)
t_2
(if (<= z 6.5e-233)
(- (/ t_1 y) (/ x (+ z -1.0)))
(if (<= z 1.9) t_2 t_3))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = z * (t - a);
double t_2 = ((x * y) + t_1) / (y + (z * b));
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -350000000000.0) {
tmp = t_3;
} else if (z <= -3.8e-195) {
tmp = t_2;
} else if (z <= 6.5e-233) {
tmp = (t_1 / y) - (x / (z + -1.0));
} else if (z <= 1.9) {
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 = z * (t - a)
t_2 = ((x * y) + t_1) / (y + (z * b))
t_3 = (t - a) / (b - y)
if (z <= (-350000000000.0d0)) then
tmp = t_3
else if (z <= (-3.8d-195)) then
tmp = t_2
else if (z <= 6.5d-233) then
tmp = (t_1 / y) - (x / (z + (-1.0d0)))
else if (z <= 1.9d0) 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 = z * (t - a);
double t_2 = ((x * y) + t_1) / (y + (z * b));
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -350000000000.0) {
tmp = t_3;
} else if (z <= -3.8e-195) {
tmp = t_2;
} else if (z <= 6.5e-233) {
tmp = (t_1 / y) - (x / (z + -1.0));
} else if (z <= 1.9) {
tmp = t_2;
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = z * (t - a) t_2 = ((x * y) + t_1) / (y + (z * b)) t_3 = (t - a) / (b - y) tmp = 0 if z <= -350000000000.0: tmp = t_3 elif z <= -3.8e-195: tmp = t_2 elif z <= 6.5e-233: tmp = (t_1 / y) - (x / (z + -1.0)) elif z <= 1.9: tmp = t_2 else: tmp = t_3 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(z * Float64(t - a)) t_2 = Float64(Float64(Float64(x * y) + t_1) / Float64(y + Float64(z * b))) t_3 = Float64(Float64(t - a) / Float64(b - y)) tmp = 0.0 if (z <= -350000000000.0) tmp = t_3; elseif (z <= -3.8e-195) tmp = t_2; elseif (z <= 6.5e-233) tmp = Float64(Float64(t_1 / y) - Float64(x / Float64(z + -1.0))); elseif (z <= 1.9) tmp = t_2; else tmp = t_3; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = z * (t - a); t_2 = ((x * y) + t_1) / (y + (z * b)); t_3 = (t - a) / (b - y); tmp = 0.0; if (z <= -350000000000.0) tmp = t_3; elseif (z <= -3.8e-195) tmp = t_2; elseif (z <= 6.5e-233) tmp = (t_1 / y) - (x / (z + -1.0)); elseif (z <= 1.9) tmp = t_2; else tmp = t_3; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(x * y), $MachinePrecision] + t$95$1), $MachinePrecision] / N[(y + N[(z * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -350000000000.0], t$95$3, If[LessEqual[z, -3.8e-195], t$95$2, If[LessEqual[z, 6.5e-233], N[(N[(t$95$1 / y), $MachinePrecision] - N[(x / N[(z + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.9], t$95$2, t$95$3]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := z \cdot \left(t - a\right)\\
t_2 := \frac{x \cdot y + t_1}{y + z \cdot b}\\
t_3 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -350000000000:\\
\;\;\;\;t_3\\
\mathbf{elif}\;z \leq -3.8 \cdot 10^{-195}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;z \leq 6.5 \cdot 10^{-233}:\\
\;\;\;\;\frac{t_1}{y} - \frac{x}{z + -1}\\
\mathbf{elif}\;z \leq 1.9:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;t_3\\
\end{array}
\end{array}
if z < -3.5e11 or 1.8999999999999999 < z Initial program 36.7%
Taylor expanded in z around inf 81.3%
if -3.5e11 < z < -3.80000000000000013e-195 or 6.49999999999999989e-233 < z < 1.8999999999999999Initial program 89.8%
Taylor expanded in b around inf 86.1%
if -3.80000000000000013e-195 < z < 6.49999999999999989e-233Initial program 76.8%
Taylor expanded in y around -inf 80.0%
mul-1-neg80.0%
unsub-neg80.0%
mul-1-neg80.0%
distribute-neg-frac80.0%
cancel-sign-sub-inv80.0%
associate-/l*80.0%
metadata-eval80.0%
*-lft-identity80.0%
associate-/l*80.0%
Simplified80.0%
Taylor expanded in z around 0 80.0%
associate-/l*76.7%
mul-1-neg76.7%
unsub-neg76.7%
Simplified76.7%
Taylor expanded in b around 0 91.2%
Final simplification84.6%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (- t a) (- b y))))
(if (<= z -0.82)
t_1
(if (<= z -3.5e-157)
(/ (* z (- t a)) (+ y (* z b)))
(if (<= z -8e-264)
(/ y (/ (- y (* z (- y b))) x))
(if (<= z -5.3e-297)
(* (- t a) (/ z y))
(if (<= z 0.6) (- (/ (- x) (+ z -1.0)) (/ a (/ y 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 tmp;
if (z <= -0.82) {
tmp = t_1;
} else if (z <= -3.5e-157) {
tmp = (z * (t - a)) / (y + (z * b));
} else if (z <= -8e-264) {
tmp = y / ((y - (z * (y - b))) / x);
} else if (z <= -5.3e-297) {
tmp = (t - a) * (z / y);
} else if (z <= 0.6) {
tmp = (-x / (z + -1.0)) - (a / (y / 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) :: tmp
t_1 = (t - a) / (b - y)
if (z <= (-0.82d0)) then
tmp = t_1
else if (z <= (-3.5d-157)) then
tmp = (z * (t - a)) / (y + (z * b))
else if (z <= (-8d-264)) then
tmp = y / ((y - (z * (y - b))) / x)
else if (z <= (-5.3d-297)) then
tmp = (t - a) * (z / y)
else if (z <= 0.6d0) then
tmp = (-x / (z + (-1.0d0))) - (a / (y / 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 tmp;
if (z <= -0.82) {
tmp = t_1;
} else if (z <= -3.5e-157) {
tmp = (z * (t - a)) / (y + (z * b));
} else if (z <= -8e-264) {
tmp = y / ((y - (z * (y - b))) / x);
} else if (z <= -5.3e-297) {
tmp = (t - a) * (z / y);
} else if (z <= 0.6) {
tmp = (-x / (z + -1.0)) - (a / (y / z));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (t - a) / (b - y) tmp = 0 if z <= -0.82: tmp = t_1 elif z <= -3.5e-157: tmp = (z * (t - a)) / (y + (z * b)) elif z <= -8e-264: tmp = y / ((y - (z * (y - b))) / x) elif z <= -5.3e-297: tmp = (t - a) * (z / y) elif z <= 0.6: tmp = (-x / (z + -1.0)) - (a / (y / z)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(t - a) / Float64(b - y)) tmp = 0.0 if (z <= -0.82) tmp = t_1; elseif (z <= -3.5e-157) tmp = Float64(Float64(z * Float64(t - a)) / Float64(y + Float64(z * b))); elseif (z <= -8e-264) tmp = Float64(y / Float64(Float64(y - Float64(z * Float64(y - b))) / x)); elseif (z <= -5.3e-297) tmp = Float64(Float64(t - a) * Float64(z / y)); elseif (z <= 0.6) tmp = Float64(Float64(Float64(-x) / Float64(z + -1.0)) - Float64(a / Float64(y / 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); tmp = 0.0; if (z <= -0.82) tmp = t_1; elseif (z <= -3.5e-157) tmp = (z * (t - a)) / (y + (z * b)); elseif (z <= -8e-264) tmp = y / ((y - (z * (y - b))) / x); elseif (z <= -5.3e-297) tmp = (t - a) * (z / y); elseif (z <= 0.6) tmp = (-x / (z + -1.0)) - (a / (y / 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]}, If[LessEqual[z, -0.82], t$95$1, If[LessEqual[z, -3.5e-157], N[(N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision] / N[(y + N[(z * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, -8e-264], N[(y / N[(N[(y - N[(z * N[(y - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, -5.3e-297], N[(N[(t - a), $MachinePrecision] * N[(z / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 0.6], N[(N[((-x) / N[(z + -1.0), $MachinePrecision]), $MachinePrecision] - N[(a / N[(y / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -0.82:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z \leq -3.5 \cdot 10^{-157}:\\
\;\;\;\;\frac{z \cdot \left(t - a\right)}{y + z \cdot b}\\
\mathbf{elif}\;z \leq -8 \cdot 10^{-264}:\\
\;\;\;\;\frac{y}{\frac{y - z \cdot \left(y - b\right)}{x}}\\
\mathbf{elif}\;z \leq -5.3 \cdot 10^{-297}:\\
\;\;\;\;\left(t - a\right) \cdot \frac{z}{y}\\
\mathbf{elif}\;z \leq 0.6:\\
\;\;\;\;\frac{-x}{z + -1} - \frac{a}{\frac{y}{z}}\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if z < -0.819999999999999951 or 0.599999999999999978 < z Initial program 38.4%
Taylor expanded in z around inf 80.5%
if -0.819999999999999951 < z < -3.5000000000000002e-157Initial program 88.7%
Taylor expanded in x around 0 69.6%
Taylor expanded in b around inf 68.1%
if -3.5000000000000002e-157 < z < -8.0000000000000001e-264Initial program 82.0%
Taylor expanded in x around inf 59.0%
associate-/l*67.4%
+-commutative67.4%
*-commutative67.4%
fma-udef67.4%
Simplified67.4%
fma-udef67.4%
Applied egg-rr67.4%
if -8.0000000000000001e-264 < z < -5.30000000000000019e-297Initial program 99.8%
Taylor expanded in x around 0 85.8%
Taylor expanded in b around inf 85.8%
Taylor expanded in z around 0 85.8%
div-inv85.6%
*-commutative85.6%
Applied egg-rr85.6%
associate-*r/85.8%
*-rgt-identity85.8%
*-commutative85.8%
associate-*r/86.2%
Simplified86.2%
if -5.30000000000000019e-297 < z < 0.599999999999999978Initial program 84.1%
Taylor expanded in y around -inf 72.1%
mul-1-neg72.1%
unsub-neg72.1%
mul-1-neg72.1%
distribute-neg-frac72.1%
cancel-sign-sub-inv72.1%
associate-/l*72.1%
metadata-eval72.1%
*-lft-identity72.1%
associate-/l*72.1%
Simplified72.1%
Taylor expanded in z around 0 72.1%
associate-/l*66.1%
mul-1-neg66.1%
unsub-neg66.1%
Simplified66.1%
Taylor expanded in a around inf 70.2%
associate-/l*67.6%
Simplified67.6%
Final simplification74.7%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* z (- t a)))
(t_2 (- y (* z (- y b))))
(t_3 (/ (- t a) (- b y))))
(if (<= z -1300.0)
t_3
(if (<= z -1.7e-157)
(/ t_1 t_2)
(if (<= z -1e-199)
(/ y (/ t_2 x))
(if (<= z 0.37) (- (/ t_1 y) (/ x (+ z -1.0))) t_3))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = z * (t - a);
double t_2 = y - (z * (y - b));
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -1300.0) {
tmp = t_3;
} else if (z <= -1.7e-157) {
tmp = t_1 / t_2;
} else if (z <= -1e-199) {
tmp = y / (t_2 / x);
} else if (z <= 0.37) {
tmp = (t_1 / y) - (x / (z + -1.0));
} 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 = z * (t - a)
t_2 = y - (z * (y - b))
t_3 = (t - a) / (b - y)
if (z <= (-1300.0d0)) then
tmp = t_3
else if (z <= (-1.7d-157)) then
tmp = t_1 / t_2
else if (z <= (-1d-199)) then
tmp = y / (t_2 / x)
else if (z <= 0.37d0) then
tmp = (t_1 / y) - (x / (z + (-1.0d0)))
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 = z * (t - a);
double t_2 = y - (z * (y - b));
double t_3 = (t - a) / (b - y);
double tmp;
if (z <= -1300.0) {
tmp = t_3;
} else if (z <= -1.7e-157) {
tmp = t_1 / t_2;
} else if (z <= -1e-199) {
tmp = y / (t_2 / x);
} else if (z <= 0.37) {
tmp = (t_1 / y) - (x / (z + -1.0));
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = z * (t - a) t_2 = y - (z * (y - b)) t_3 = (t - a) / (b - y) tmp = 0 if z <= -1300.0: tmp = t_3 elif z <= -1.7e-157: tmp = t_1 / t_2 elif z <= -1e-199: tmp = y / (t_2 / x) elif z <= 0.37: tmp = (t_1 / y) - (x / (z + -1.0)) else: tmp = t_3 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(z * Float64(t - a)) t_2 = Float64(y - Float64(z * Float64(y - b))) t_3 = Float64(Float64(t - a) / Float64(b - y)) tmp = 0.0 if (z <= -1300.0) tmp = t_3; elseif (z <= -1.7e-157) tmp = Float64(t_1 / t_2); elseif (z <= -1e-199) tmp = Float64(y / Float64(t_2 / x)); elseif (z <= 0.37) tmp = Float64(Float64(t_1 / y) - Float64(x / Float64(z + -1.0))); else tmp = t_3; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = z * (t - a); t_2 = y - (z * (y - b)); t_3 = (t - a) / (b - y); tmp = 0.0; if (z <= -1300.0) tmp = t_3; elseif (z <= -1.7e-157) tmp = t_1 / t_2; elseif (z <= -1e-199) tmp = y / (t_2 / x); elseif (z <= 0.37) tmp = (t_1 / y) - (x / (z + -1.0)); else tmp = t_3; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(y - N[(z * N[(y - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -1300.0], t$95$3, If[LessEqual[z, -1.7e-157], N[(t$95$1 / t$95$2), $MachinePrecision], If[LessEqual[z, -1e-199], N[(y / N[(t$95$2 / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 0.37], N[(N[(t$95$1 / y), $MachinePrecision] - N[(x / N[(z + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$3]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := z \cdot \left(t - a\right)\\
t_2 := y - z \cdot \left(y - b\right)\\
t_3 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -1300:\\
\;\;\;\;t_3\\
\mathbf{elif}\;z \leq -1.7 \cdot 10^{-157}:\\
\;\;\;\;\frac{t_1}{t_2}\\
\mathbf{elif}\;z \leq -1 \cdot 10^{-199}:\\
\;\;\;\;\frac{y}{\frac{t_2}{x}}\\
\mathbf{elif}\;z \leq 0.37:\\
\;\;\;\;\frac{t_1}{y} - \frac{x}{z + -1}\\
\mathbf{else}:\\
\;\;\;\;t_3\\
\end{array}
\end{array}
if z < -1300 or 0.37 < z Initial program 38.4%
Taylor expanded in z around inf 80.5%
if -1300 < z < -1.69999999999999989e-157Initial program 88.7%
Taylor expanded in x around 0 69.6%
if -1.69999999999999989e-157 < z < -9.99999999999999982e-200Initial program 72.7%
Taylor expanded in x around inf 58.6%
associate-/l*85.2%
+-commutative85.2%
*-commutative85.2%
fma-udef85.2%
Simplified85.2%
fma-udef85.2%
Applied egg-rr85.2%
if -9.99999999999999982e-200 < z < 0.37Initial program 85.7%
Taylor expanded in y around -inf 74.2%
mul-1-neg74.2%
unsub-neg74.2%
mul-1-neg74.2%
distribute-neg-frac74.2%
cancel-sign-sub-inv74.2%
associate-/l*74.3%
metadata-eval74.3%
*-lft-identity74.3%
associate-/l*74.3%
Simplified74.3%
Taylor expanded in z around 0 74.2%
associate-/l*69.6%
mul-1-neg69.6%
unsub-neg69.6%
Simplified69.6%
Taylor expanded in b around 0 80.2%
Final simplification79.4%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (- t a) (- b y))))
(if (<= z -1.25e-120)
t_1
(if (<= z -8e-264)
(/ y (/ (- y (* z (- y b))) x))
(if (<= z -5.3e-297)
(* (- t a) (/ z y))
(if (<= z 0.048) (- x (* z (- (/ a y) x))) t_1))))))
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.25e-120) {
tmp = t_1;
} else if (z <= -8e-264) {
tmp = y / ((y - (z * (y - b))) / x);
} else if (z <= -5.3e-297) {
tmp = (t - a) * (z / y);
} else if (z <= 0.048) {
tmp = x - (z * ((a / y) - x));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = (t - a) / (b - y)
if (z <= (-1.25d-120)) then
tmp = t_1
else if (z <= (-8d-264)) then
tmp = y / ((y - (z * (y - b))) / x)
else if (z <= (-5.3d-297)) then
tmp = (t - a) * (z / y)
else if (z <= 0.048d0) then
tmp = x - (z * ((a / y) - x))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (t - a) / (b - y);
double tmp;
if (z <= -1.25e-120) {
tmp = t_1;
} else if (z <= -8e-264) {
tmp = y / ((y - (z * (y - b))) / x);
} else if (z <= -5.3e-297) {
tmp = (t - a) * (z / y);
} else if (z <= 0.048) {
tmp = x - (z * ((a / y) - x));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (t - a) / (b - y) tmp = 0 if z <= -1.25e-120: tmp = t_1 elif z <= -8e-264: tmp = y / ((y - (z * (y - b))) / x) elif z <= -5.3e-297: tmp = (t - a) * (z / y) elif z <= 0.048: tmp = x - (z * ((a / y) - x)) else: tmp = t_1 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.25e-120) tmp = t_1; elseif (z <= -8e-264) tmp = Float64(y / Float64(Float64(y - Float64(z * Float64(y - b))) / x)); elseif (z <= -5.3e-297) tmp = Float64(Float64(t - a) * Float64(z / y)); elseif (z <= 0.048) tmp = Float64(x - Float64(z * Float64(Float64(a / y) - x))); else tmp = t_1; 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.25e-120) tmp = t_1; elseif (z <= -8e-264) tmp = y / ((y - (z * (y - b))) / x); elseif (z <= -5.3e-297) tmp = (t - a) * (z / y); elseif (z <= 0.048) tmp = x - (z * ((a / y) - x)); 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]}, If[LessEqual[z, -1.25e-120], t$95$1, If[LessEqual[z, -8e-264], N[(y / N[(N[(y - N[(z * N[(y - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, -5.3e-297], N[(N[(t - a), $MachinePrecision] * N[(z / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 0.048], N[(x - N[(z * N[(N[(a / y), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -1.25 \cdot 10^{-120}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z \leq -8 \cdot 10^{-264}:\\
\;\;\;\;\frac{y}{\frac{y - z \cdot \left(y - b\right)}{x}}\\
\mathbf{elif}\;z \leq -5.3 \cdot 10^{-297}:\\
\;\;\;\;\left(t - a\right) \cdot \frac{z}{y}\\
\mathbf{elif}\;z \leq 0.048:\\
\;\;\;\;x - z \cdot \left(\frac{a}{y} - x\right)\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if z < -1.25000000000000002e-120 or 0.048000000000000001 < z Initial program 44.8%
Taylor expanded in z around inf 76.1%
if -1.25000000000000002e-120 < z < -8.0000000000000001e-264Initial program 83.2%
Taylor expanded in x around inf 52.1%
associate-/l*61.7%
+-commutative61.7%
*-commutative61.7%
fma-udef61.7%
Simplified61.7%
fma-udef61.7%
Applied egg-rr61.7%
if -8.0000000000000001e-264 < z < -5.30000000000000019e-297Initial program 99.8%
Taylor expanded in x around 0 85.8%
Taylor expanded in b around inf 85.8%
Taylor expanded in z around 0 85.8%
div-inv85.6%
*-commutative85.6%
Applied egg-rr85.6%
associate-*r/85.8%
*-rgt-identity85.8%
*-commutative85.8%
associate-*r/86.2%
Simplified86.2%
if -5.30000000000000019e-297 < z < 0.048000000000000001Initial program 84.1%
Taylor expanded in y around -inf 72.1%
mul-1-neg72.1%
unsub-neg72.1%
mul-1-neg72.1%
distribute-neg-frac72.1%
cancel-sign-sub-inv72.1%
associate-/l*72.1%
metadata-eval72.1%
*-lft-identity72.1%
associate-/l*72.1%
Simplified72.1%
div-inv72.1%
+-commutative72.1%
associate-/r/72.1%
sub-neg72.1%
metadata-eval72.1%
associate-/r/72.1%
sub-neg72.1%
metadata-eval72.1%
Applied egg-rr72.1%
Taylor expanded in a around inf 70.2%
mul-1-neg70.2%
times-frac68.9%
distribute-rgt-neg-in68.9%
sub-neg68.9%
metadata-eval68.9%
Simplified68.9%
Taylor expanded in z around 0 63.0%
Final simplification71.2%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (- t a) b)) (t_2 (/ x (- 1.0 z))))
(if (<= y -2.3e+96)
t_2
(if (<= y -130000000.0)
t_1
(if (<= y -2.65e-32)
t_2
(if (<= y -1.05e-73)
(/ (- (* z a)) y)
(if (<= y 1.7e-55) 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 <= -2.3e+96) {
tmp = t_2;
} else if (y <= -130000000.0) {
tmp = t_1;
} else if (y <= -2.65e-32) {
tmp = t_2;
} else if (y <= -1.05e-73) {
tmp = -(z * a) / y;
} else if (y <= 1.7e-55) {
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 <= (-2.3d+96)) then
tmp = t_2
else if (y <= (-130000000.0d0)) then
tmp = t_1
else if (y <= (-2.65d-32)) then
tmp = t_2
else if (y <= (-1.05d-73)) then
tmp = -(z * a) / y
else if (y <= 1.7d-55) 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 <= -2.3e+96) {
tmp = t_2;
} else if (y <= -130000000.0) {
tmp = t_1;
} else if (y <= -2.65e-32) {
tmp = t_2;
} else if (y <= -1.05e-73) {
tmp = -(z * a) / y;
} else if (y <= 1.7e-55) {
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 <= -2.3e+96: tmp = t_2 elif y <= -130000000.0: tmp = t_1 elif y <= -2.65e-32: tmp = t_2 elif y <= -1.05e-73: tmp = -(z * a) / y elif y <= 1.7e-55: 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 <= -2.3e+96) tmp = t_2; elseif (y <= -130000000.0) tmp = t_1; elseif (y <= -2.65e-32) tmp = t_2; elseif (y <= -1.05e-73) tmp = Float64(Float64(-Float64(z * a)) / y); elseif (y <= 1.7e-55) 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 <= -2.3e+96) tmp = t_2; elseif (y <= -130000000.0) tmp = t_1; elseif (y <= -2.65e-32) tmp = t_2; elseif (y <= -1.05e-73) tmp = -(z * a) / y; elseif (y <= 1.7e-55) 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, -2.3e+96], t$95$2, If[LessEqual[y, -130000000.0], t$95$1, If[LessEqual[y, -2.65e-32], t$95$2, If[LessEqual[y, -1.05e-73], N[((-N[(z * a), $MachinePrecision]) / y), $MachinePrecision], If[LessEqual[y, 1.7e-55], 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 -2.3 \cdot 10^{+96}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;y \leq -130000000:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq -2.65 \cdot 10^{-32}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;y \leq -1.05 \cdot 10^{-73}:\\
\;\;\;\;\frac{-z \cdot a}{y}\\
\mathbf{elif}\;y \leq 1.7 \cdot 10^{-55}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if y < -2.30000000000000015e96 or -1.3e8 < y < -2.65e-32 or 1.69999999999999986e-55 < y Initial program 47.2%
Taylor expanded in y around inf 55.0%
+-commutative55.0%
mul-1-neg55.0%
unsub-neg55.0%
Simplified55.0%
if -2.30000000000000015e96 < y < -1.3e8 or -1.0499999999999999e-73 < y < 1.69999999999999986e-55Initial program 73.9%
Taylor expanded in y around 0 55.4%
if -2.65e-32 < y < -1.0499999999999999e-73Initial program 83.8%
Taylor expanded in x around 0 75.6%
Taylor expanded in b around inf 58.5%
Taylor expanded in z around 0 51.5%
Taylor expanded in t around 0 45.3%
associate-*r/45.3%
associate-*r*45.3%
mul-1-neg45.3%
Simplified45.3%
Final simplification54.7%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (- t a) b)) (t_2 (/ x (- 1.0 z))))
(if (<= y -2.8e+96)
t_2
(if (<= y -850000.0)
t_1
(if (<= y -7.5e-31)
t_2
(if (<= y -3.15e-74)
(* (- t a) (/ z y))
(if (<= y 4.6e-55) 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 <= -2.8e+96) {
tmp = t_2;
} else if (y <= -850000.0) {
tmp = t_1;
} else if (y <= -7.5e-31) {
tmp = t_2;
} else if (y <= -3.15e-74) {
tmp = (t - a) * (z / y);
} else if (y <= 4.6e-55) {
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 <= (-2.8d+96)) then
tmp = t_2
else if (y <= (-850000.0d0)) then
tmp = t_1
else if (y <= (-7.5d-31)) then
tmp = t_2
else if (y <= (-3.15d-74)) then
tmp = (t - a) * (z / y)
else if (y <= 4.6d-55) 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 <= -2.8e+96) {
tmp = t_2;
} else if (y <= -850000.0) {
tmp = t_1;
} else if (y <= -7.5e-31) {
tmp = t_2;
} else if (y <= -3.15e-74) {
tmp = (t - a) * (z / y);
} else if (y <= 4.6e-55) {
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 <= -2.8e+96: tmp = t_2 elif y <= -850000.0: tmp = t_1 elif y <= -7.5e-31: tmp = t_2 elif y <= -3.15e-74: tmp = (t - a) * (z / y) elif y <= 4.6e-55: 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 <= -2.8e+96) tmp = t_2; elseif (y <= -850000.0) tmp = t_1; elseif (y <= -7.5e-31) tmp = t_2; elseif (y <= -3.15e-74) tmp = Float64(Float64(t - a) * Float64(z / y)); elseif (y <= 4.6e-55) 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 <= -2.8e+96) tmp = t_2; elseif (y <= -850000.0) tmp = t_1; elseif (y <= -7.5e-31) tmp = t_2; elseif (y <= -3.15e-74) tmp = (t - a) * (z / y); elseif (y <= 4.6e-55) 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, -2.8e+96], t$95$2, If[LessEqual[y, -850000.0], t$95$1, If[LessEqual[y, -7.5e-31], t$95$2, If[LessEqual[y, -3.15e-74], N[(N[(t - a), $MachinePrecision] * N[(z / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 4.6e-55], 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 -2.8 \cdot 10^{+96}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;y \leq -850000:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq -7.5 \cdot 10^{-31}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;y \leq -3.15 \cdot 10^{-74}:\\
\;\;\;\;\left(t - a\right) \cdot \frac{z}{y}\\
\mathbf{elif}\;y \leq 4.6 \cdot 10^{-55}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if y < -2.8e96 or -8.5e5 < y < -7.49999999999999975e-31 or 4.60000000000000023e-55 < y Initial program 47.2%
Taylor expanded in y around inf 55.0%
+-commutative55.0%
mul-1-neg55.0%
unsub-neg55.0%
Simplified55.0%
if -2.8e96 < y < -8.5e5 or -3.15000000000000001e-74 < y < 4.60000000000000023e-55Initial program 73.9%
Taylor expanded in y around 0 55.4%
if -7.49999999999999975e-31 < y < -3.15000000000000001e-74Initial program 83.8%
Taylor expanded in x around 0 75.6%
Taylor expanded in b around inf 58.5%
Taylor expanded in z around 0 51.5%
div-inv51.3%
*-commutative51.3%
Applied egg-rr51.3%
associate-*r/51.5%
*-rgt-identity51.5%
*-commutative51.5%
associate-*r/51.3%
Simplified51.3%
Final simplification55.0%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (- t a) b)) (t_2 (/ x (- 1.0 z))))
(if (<= y -2.3e+96)
t_2
(if (<= y -2000000.0)
t_1
(if (<= y -1.12e-29)
t_2
(if (<= y -1.05e-73)
(/ (* z (- t a)) y)
(if (<= y 1.7e-55) 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 <= -2.3e+96) {
tmp = t_2;
} else if (y <= -2000000.0) {
tmp = t_1;
} else if (y <= -1.12e-29) {
tmp = t_2;
} else if (y <= -1.05e-73) {
tmp = (z * (t - a)) / y;
} else if (y <= 1.7e-55) {
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 <= (-2.3d+96)) then
tmp = t_2
else if (y <= (-2000000.0d0)) then
tmp = t_1
else if (y <= (-1.12d-29)) then
tmp = t_2
else if (y <= (-1.05d-73)) then
tmp = (z * (t - a)) / y
else if (y <= 1.7d-55) 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 <= -2.3e+96) {
tmp = t_2;
} else if (y <= -2000000.0) {
tmp = t_1;
} else if (y <= -1.12e-29) {
tmp = t_2;
} else if (y <= -1.05e-73) {
tmp = (z * (t - a)) / y;
} else if (y <= 1.7e-55) {
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 <= -2.3e+96: tmp = t_2 elif y <= -2000000.0: tmp = t_1 elif y <= -1.12e-29: tmp = t_2 elif y <= -1.05e-73: tmp = (z * (t - a)) / y elif y <= 1.7e-55: 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 <= -2.3e+96) tmp = t_2; elseif (y <= -2000000.0) tmp = t_1; elseif (y <= -1.12e-29) tmp = t_2; elseif (y <= -1.05e-73) tmp = Float64(Float64(z * Float64(t - a)) / y); elseif (y <= 1.7e-55) 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 <= -2.3e+96) tmp = t_2; elseif (y <= -2000000.0) tmp = t_1; elseif (y <= -1.12e-29) tmp = t_2; elseif (y <= -1.05e-73) tmp = (z * (t - a)) / y; elseif (y <= 1.7e-55) 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, -2.3e+96], t$95$2, If[LessEqual[y, -2000000.0], t$95$1, If[LessEqual[y, -1.12e-29], t$95$2, If[LessEqual[y, -1.05e-73], N[(N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], If[LessEqual[y, 1.7e-55], 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 -2.3 \cdot 10^{+96}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;y \leq -2000000:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq -1.12 \cdot 10^{-29}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;y \leq -1.05 \cdot 10^{-73}:\\
\;\;\;\;\frac{z \cdot \left(t - a\right)}{y}\\
\mathbf{elif}\;y \leq 1.7 \cdot 10^{-55}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if y < -2.30000000000000015e96 or -2e6 < y < -1.11999999999999995e-29 or 1.69999999999999986e-55 < y Initial program 47.2%
Taylor expanded in y around inf 55.0%
+-commutative55.0%
mul-1-neg55.0%
unsub-neg55.0%
Simplified55.0%
if -2.30000000000000015e96 < y < -2e6 or -1.0499999999999999e-73 < y < 1.69999999999999986e-55Initial program 73.9%
Taylor expanded in y around 0 55.4%
if -1.11999999999999995e-29 < y < -1.0499999999999999e-73Initial program 83.8%
Taylor expanded in x around 0 75.6%
Taylor expanded in b around inf 58.5%
Taylor expanded in z around 0 51.5%
Final simplification55.0%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (- t a) (- b y))))
(if (<= z -2.6e-117)
t_1
(if (<= z -8e-264)
x
(if (<= z -5.3e-297)
(* (- t a) (/ z y))
(if (<= z 0.135) (/ x (- 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 tmp;
if (z <= -2.6e-117) {
tmp = t_1;
} else if (z <= -8e-264) {
tmp = x;
} else if (z <= -5.3e-297) {
tmp = (t - a) * (z / y);
} else if (z <= 0.135) {
tmp = x / (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) :: tmp
t_1 = (t - a) / (b - y)
if (z <= (-2.6d-117)) then
tmp = t_1
else if (z <= (-8d-264)) then
tmp = x
else if (z <= (-5.3d-297)) then
tmp = (t - a) * (z / y)
else if (z <= 0.135d0) then
tmp = x / (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 tmp;
if (z <= -2.6e-117) {
tmp = t_1;
} else if (z <= -8e-264) {
tmp = x;
} else if (z <= -5.3e-297) {
tmp = (t - a) * (z / y);
} else if (z <= 0.135) {
tmp = x / (1.0 - z);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (t - a) / (b - y) tmp = 0 if z <= -2.6e-117: tmp = t_1 elif z <= -8e-264: tmp = x elif z <= -5.3e-297: tmp = (t - a) * (z / y) elif z <= 0.135: tmp = x / (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)) tmp = 0.0 if (z <= -2.6e-117) tmp = t_1; elseif (z <= -8e-264) tmp = x; elseif (z <= -5.3e-297) tmp = Float64(Float64(t - a) * Float64(z / y)); elseif (z <= 0.135) tmp = Float64(x / 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); tmp = 0.0; if (z <= -2.6e-117) tmp = t_1; elseif (z <= -8e-264) tmp = x; elseif (z <= -5.3e-297) tmp = (t - a) * (z / y); elseif (z <= 0.135) tmp = x / (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]}, If[LessEqual[z, -2.6e-117], t$95$1, If[LessEqual[z, -8e-264], x, If[LessEqual[z, -5.3e-297], N[(N[(t - a), $MachinePrecision] * N[(z / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 0.135], N[(x / N[(1.0 - z), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -2.6 \cdot 10^{-117}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z \leq -8 \cdot 10^{-264}:\\
\;\;\;\;x\\
\mathbf{elif}\;z \leq -5.3 \cdot 10^{-297}:\\
\;\;\;\;\left(t - a\right) \cdot \frac{z}{y}\\
\mathbf{elif}\;z \leq 0.135:\\
\;\;\;\;\frac{x}{1 - z}\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if z < -2.59999999999999983e-117 or 0.13500000000000001 < z Initial program 44.8%
Taylor expanded in z around inf 76.1%
if -2.59999999999999983e-117 < z < -8.0000000000000001e-264Initial program 83.2%
Taylor expanded in z around 0 51.3%
if -8.0000000000000001e-264 < z < -5.30000000000000019e-297Initial program 99.8%
Taylor expanded in x around 0 85.8%
Taylor expanded in b around inf 85.8%
Taylor expanded in z around 0 85.8%
div-inv85.6%
*-commutative85.6%
Applied egg-rr85.6%
associate-*r/85.8%
*-rgt-identity85.8%
*-commutative85.8%
associate-*r/86.2%
Simplified86.2%
if -5.30000000000000019e-297 < z < 0.13500000000000001Initial program 84.1%
Taylor expanded in y around inf 52.2%
+-commutative52.2%
mul-1-neg52.2%
unsub-neg52.2%
Simplified52.2%
Final simplification67.1%
(FPCore (x y z t a b) :precision binary64 (if (or (<= z -8.5e-111) (not (<= z 0.048))) (/ (- t a) (- b y)) (- x (* z (- (/ a y) x)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -8.5e-111) || !(z <= 0.048)) {
tmp = (t - a) / (b - y);
} else {
tmp = x - (z * ((a / y) - 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-111)) .or. (.not. (z <= 0.048d0))) then
tmp = (t - a) / (b - y)
else
tmp = x - (z * ((a / y) - 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-111) || !(z <= 0.048)) {
tmp = (t - a) / (b - y);
} else {
tmp = x - (z * ((a / y) - x));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -8.5e-111) or not (z <= 0.048): tmp = (t - a) / (b - y) else: tmp = x - (z * ((a / y) - x)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -8.5e-111) || !(z <= 0.048)) tmp = Float64(Float64(t - a) / Float64(b - y)); else tmp = Float64(x - Float64(z * Float64(Float64(a / y) - x))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -8.5e-111) || ~((z <= 0.048))) tmp = (t - a) / (b - y); else tmp = x - (z * ((a / y) - x)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -8.5e-111], N[Not[LessEqual[z, 0.048]], $MachinePrecision]], N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision], N[(x - N[(z * N[(N[(a / y), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -8.5 \cdot 10^{-111} \lor \neg \left(z \leq 0.048\right):\\
\;\;\;\;\frac{t - a}{b - y}\\
\mathbf{else}:\\
\;\;\;\;x - z \cdot \left(\frac{a}{y} - x\right)\\
\end{array}
\end{array}
if z < -8.5000000000000003e-111 or 0.048000000000000001 < z Initial program 43.3%
Taylor expanded in z around inf 77.4%
if -8.5000000000000003e-111 < z < 0.048000000000000001Initial program 85.4%
Taylor expanded in y around -inf 73.1%
mul-1-neg73.1%
unsub-neg73.1%
mul-1-neg73.1%
distribute-neg-frac73.1%
cancel-sign-sub-inv73.1%
associate-/l*73.1%
metadata-eval73.1%
*-lft-identity73.1%
associate-/l*73.1%
Simplified73.1%
div-inv73.1%
+-commutative73.1%
associate-/r/73.1%
sub-neg73.1%
metadata-eval73.1%
associate-/r/73.1%
sub-neg73.1%
metadata-eval73.1%
Applied egg-rr73.1%
Taylor expanded in a around inf 64.1%
mul-1-neg64.1%
times-frac63.3%
distribute-rgt-neg-in63.3%
sub-neg63.3%
metadata-eval63.3%
Simplified63.3%
Taylor expanded in z around 0 58.5%
Final simplification69.3%
(FPCore (x y z t a b) :precision binary64 (if (or (<= y -5e+100) (not (<= y 1.35e-55))) (/ 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 <= -5e+100) || !(y <= 1.35e-55)) {
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 <= (-5d+100)) .or. (.not. (y <= 1.35d-55))) 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 <= -5e+100) || !(y <= 1.35e-55)) {
tmp = x / (1.0 - z);
} else {
tmp = (t - a) / b;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (y <= -5e+100) or not (y <= 1.35e-55): 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 <= -5e+100) || !(y <= 1.35e-55)) 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 <= -5e+100) || ~((y <= 1.35e-55))) 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, -5e+100], N[Not[LessEqual[y, 1.35e-55]], $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 -5 \cdot 10^{+100} \lor \neg \left(y \leq 1.35 \cdot 10^{-55}\right):\\
\;\;\;\;\frac{x}{1 - z}\\
\mathbf{else}:\\
\;\;\;\;\frac{t - a}{b}\\
\end{array}
\end{array}
if y < -4.9999999999999999e100 or 1.35000000000000002e-55 < y Initial program 44.5%
Taylor expanded in y around inf 53.5%
+-commutative53.5%
mul-1-neg53.5%
unsub-neg53.5%
Simplified53.5%
if -4.9999999999999999e100 < y < 1.35000000000000002e-55Initial program 75.9%
Taylor expanded in y around 0 50.6%
Final simplification51.9%
(FPCore (x y z t a b) :precision binary64 (if (<= z -4.4e+32) (/ a y) (if (<= z 1.0) (+ x (* x z)) (- (/ x z)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -4.4e+32) {
tmp = a / y;
} else if (z <= 1.0) {
tmp = x + (x * z);
} else {
tmp = -(x / 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) :: tmp
if (z <= (-4.4d+32)) then
tmp = a / y
else if (z <= 1.0d0) then
tmp = x + (x * z)
else
tmp = -(x / z)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -4.4e+32) {
tmp = a / y;
} else if (z <= 1.0) {
tmp = x + (x * z);
} else {
tmp = -(x / z);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if z <= -4.4e+32: tmp = a / y elif z <= 1.0: tmp = x + (x * z) else: tmp = -(x / z) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (z <= -4.4e+32) tmp = Float64(a / y); elseif (z <= 1.0) tmp = Float64(x + Float64(x * z)); else tmp = Float64(-Float64(x / z)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (z <= -4.4e+32) tmp = a / y; elseif (z <= 1.0) tmp = x + (x * z); else tmp = -(x / z); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -4.4e+32], N[(a / y), $MachinePrecision], If[LessEqual[z, 1.0], N[(x + N[(x * z), $MachinePrecision]), $MachinePrecision], (-N[(x / z), $MachinePrecision])]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -4.4 \cdot 10^{+32}:\\
\;\;\;\;\frac{a}{y}\\
\mathbf{elif}\;z \leq 1:\\
\;\;\;\;x + x \cdot z\\
\mathbf{else}:\\
\;\;\;\;-\frac{x}{z}\\
\end{array}
\end{array}
if z < -4.40000000000000002e32Initial program 39.5%
Taylor expanded in y around -inf 25.9%
mul-1-neg25.9%
unsub-neg25.9%
mul-1-neg25.9%
distribute-neg-frac25.9%
cancel-sign-sub-inv25.9%
associate-/l*40.6%
metadata-eval40.6%
*-lft-identity40.6%
associate-/l*51.5%
Simplified51.5%
div-inv51.4%
+-commutative51.4%
associate-/r/51.4%
sub-neg51.4%
metadata-eval51.4%
associate-/r/49.4%
sub-neg49.4%
metadata-eval49.4%
Applied egg-rr49.4%
Taylor expanded in a around inf 21.2%
mul-1-neg21.2%
times-frac31.1%
distribute-rgt-neg-in31.1%
sub-neg31.1%
metadata-eval31.1%
Simplified31.1%
Taylor expanded in z around inf 23.1%
if -4.40000000000000002e32 < z < 1Initial program 83.7%
Taylor expanded in y around inf 44.4%
+-commutative44.4%
mul-1-neg44.4%
unsub-neg44.4%
Simplified44.4%
Taylor expanded in z around 0 41.0%
if 1 < z Initial program 34.4%
Taylor expanded in y around inf 20.4%
+-commutative20.4%
mul-1-neg20.4%
unsub-neg20.4%
Simplified20.4%
Taylor expanded in z around inf 20.4%
associate-*r/20.4%
mul-1-neg20.4%
Simplified20.4%
Final simplification31.8%
(FPCore (x y z t a b) :precision binary64 (if (<= z -1.15e+44) (/ a y) (if (<= z 1.0) x (- (/ x z)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -1.15e+44) {
tmp = a / y;
} else if (z <= 1.0) {
tmp = x;
} else {
tmp = -(x / 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) :: tmp
if (z <= (-1.15d+44)) then
tmp = a / y
else if (z <= 1.0d0) then
tmp = x
else
tmp = -(x / z)
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.15e+44) {
tmp = a / y;
} else if (z <= 1.0) {
tmp = x;
} else {
tmp = -(x / z);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if z <= -1.15e+44: tmp = a / y elif z <= 1.0: tmp = x else: tmp = -(x / z) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (z <= -1.15e+44) tmp = Float64(a / y); elseif (z <= 1.0) tmp = x; else tmp = Float64(-Float64(x / z)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (z <= -1.15e+44) tmp = a / y; elseif (z <= 1.0) tmp = x; else tmp = -(x / z); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -1.15e+44], N[(a / y), $MachinePrecision], If[LessEqual[z, 1.0], x, (-N[(x / z), $MachinePrecision])]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1.15 \cdot 10^{+44}:\\
\;\;\;\;\frac{a}{y}\\
\mathbf{elif}\;z \leq 1:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;-\frac{x}{z}\\
\end{array}
\end{array}
if z < -1.15000000000000002e44Initial program 37.5%
Taylor expanded in y around -inf 25.0%
mul-1-neg25.0%
unsub-neg25.0%
mul-1-neg25.0%
distribute-neg-frac25.0%
cancel-sign-sub-inv25.0%
associate-/l*40.2%
metadata-eval40.2%
*-lft-identity40.2%
associate-/l*51.5%
Simplified51.5%
div-inv51.4%
+-commutative51.4%
associate-/r/51.4%
sub-neg51.4%
metadata-eval51.4%
associate-/r/49.3%
sub-neg49.3%
metadata-eval49.3%
Applied egg-rr49.3%
Taylor expanded in a around inf 21.6%
mul-1-neg21.6%
times-frac31.8%
distribute-rgt-neg-in31.8%
sub-neg31.8%
metadata-eval31.8%
Simplified31.8%
Taylor expanded in z around inf 23.7%
if -1.15000000000000002e44 < z < 1Initial program 84.0%
Taylor expanded in z around 0 40.4%
if 1 < z Initial program 34.4%
Taylor expanded in y around inf 20.4%
+-commutative20.4%
mul-1-neg20.4%
unsub-neg20.4%
Simplified20.4%
Taylor expanded in z around inf 20.4%
associate-*r/20.4%
mul-1-neg20.4%
Simplified20.4%
Final simplification31.8%
(FPCore (x y z t a b) :precision binary64 (if (<= z -1.15e+44) (/ a y) (if (<= z 1.0) x (/ a y))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -1.15e+44) {
tmp = a / y;
} else if (z <= 1.0) {
tmp = x;
} else {
tmp = 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.15d+44)) then
tmp = a / y
else if (z <= 1.0d0) then
tmp = x
else
tmp = 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.15e+44) {
tmp = a / y;
} else if (z <= 1.0) {
tmp = x;
} else {
tmp = a / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if z <= -1.15e+44: tmp = a / y elif z <= 1.0: tmp = x else: tmp = a / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (z <= -1.15e+44) tmp = Float64(a / y); elseif (z <= 1.0) tmp = x; else tmp = Float64(a / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (z <= -1.15e+44) tmp = a / y; elseif (z <= 1.0) tmp = x; else tmp = a / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -1.15e+44], N[(a / y), $MachinePrecision], If[LessEqual[z, 1.0], x, N[(a / y), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1.15 \cdot 10^{+44}:\\
\;\;\;\;\frac{a}{y}\\
\mathbf{elif}\;z \leq 1:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{y}\\
\end{array}
\end{array}
if z < -1.15000000000000002e44 or 1 < z Initial program 35.9%
Taylor expanded in y around -inf 25.1%
mul-1-neg25.1%
unsub-neg25.1%
mul-1-neg25.1%
distribute-neg-frac25.1%
cancel-sign-sub-inv25.1%
associate-/l*41.1%
metadata-eval41.1%
*-lft-identity41.1%
associate-/l*51.6%
Simplified51.6%
div-inv51.5%
+-commutative51.5%
associate-/r/51.5%
sub-neg51.5%
metadata-eval51.5%
associate-/r/50.3%
sub-neg50.3%
metadata-eval50.3%
Applied egg-rr50.3%
Taylor expanded in a around inf 21.6%
mul-1-neg21.6%
times-frac30.3%
distribute-rgt-neg-in30.3%
sub-neg30.3%
metadata-eval30.3%
Simplified30.3%
Taylor expanded in z around inf 18.0%
if -1.15000000000000002e44 < z < 1Initial program 84.0%
Taylor expanded in z around 0 40.4%
Final simplification29.9%
(FPCore (x y z t a b) :precision binary64 (if (<= z -1.15e+57) (/ a y) (/ x (- 1.0 z))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -1.15e+57) {
tmp = a / y;
} 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) :: tmp
if (z <= (-1.15d+57)) then
tmp = a / y
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 tmp;
if (z <= -1.15e+57) {
tmp = a / y;
} else {
tmp = x / (1.0 - z);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if z <= -1.15e+57: tmp = a / y else: tmp = x / (1.0 - z) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (z <= -1.15e+57) tmp = Float64(a / y); else tmp = Float64(x / Float64(1.0 - z)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (z <= -1.15e+57) tmp = a / y; else tmp = x / (1.0 - z); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -1.15e+57], N[(a / y), $MachinePrecision], N[(x / N[(1.0 - z), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1.15 \cdot 10^{+57}:\\
\;\;\;\;\frac{a}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{1 - z}\\
\end{array}
\end{array}
if z < -1.1499999999999999e57Initial program 36.9%
Taylor expanded in y around -inf 24.1%
mul-1-neg24.1%
unsub-neg24.1%
mul-1-neg24.1%
distribute-neg-frac24.1%
cancel-sign-sub-inv24.1%
associate-/l*39.8%
metadata-eval39.8%
*-lft-identity39.8%
associate-/l*51.5%
Simplified51.5%
div-inv51.4%
+-commutative51.4%
associate-/r/51.4%
sub-neg51.4%
metadata-eval51.4%
associate-/r/49.2%
sub-neg49.2%
metadata-eval49.2%
Applied egg-rr49.2%
Taylor expanded in a around inf 20.5%
mul-1-neg20.5%
times-frac31.1%
distribute-rgt-neg-in31.1%
sub-neg31.1%
metadata-eval31.1%
Simplified31.1%
Taylor expanded in z around inf 24.4%
if -1.1499999999999999e57 < z Initial program 68.1%
Taylor expanded in y around inf 36.6%
+-commutative36.6%
mul-1-neg36.6%
unsub-neg36.6%
Simplified36.6%
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 61.4%
Taylor expanded in z around 0 22.8%
Final simplification22.8%
(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 2023268
(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)))))