
(FPCore (x y z t a b) :precision binary64 (+ (- (- x (* (- y 1.0) z)) (* (- t 1.0) a)) (* (- (+ y t) 2.0) b)))
double code(double x, double y, double z, double t, double a, double b) {
return ((x - ((y - 1.0) * z)) - ((t - 1.0) * a)) + (((y + t) - 2.0) * b);
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
code = ((x - ((y - 1.0d0) * z)) - ((t - 1.0d0) * a)) + (((y + t) - 2.0d0) * b)
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return ((x - ((y - 1.0) * z)) - ((t - 1.0) * a)) + (((y + t) - 2.0) * b);
}
def code(x, y, z, t, a, b): return ((x - ((y - 1.0) * z)) - ((t - 1.0) * a)) + (((y + t) - 2.0) * b)
function code(x, y, z, t, a, b) return Float64(Float64(Float64(x - Float64(Float64(y - 1.0) * z)) - Float64(Float64(t - 1.0) * a)) + Float64(Float64(Float64(y + t) - 2.0) * b)) end
function tmp = code(x, y, z, t, a, b) tmp = ((x - ((y - 1.0) * z)) - ((t - 1.0) * a)) + (((y + t) - 2.0) * b); end
code[x_, y_, z_, t_, a_, b_] := N[(N[(N[(x - N[(N[(y - 1.0), $MachinePrecision] * z), $MachinePrecision]), $MachinePrecision] - N[(N[(t - 1.0), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision] * b), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(\left(x - \left(y - 1\right) \cdot z\right) - \left(t - 1\right) \cdot a\right) + \left(\left(y + t\right) - 2\right) \cdot b
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 25 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b) :precision binary64 (+ (- (- x (* (- y 1.0) z)) (* (- t 1.0) a)) (* (- (+ y t) 2.0) b)))
double code(double x, double y, double z, double t, double a, double b) {
return ((x - ((y - 1.0) * z)) - ((t - 1.0) * a)) + (((y + t) - 2.0) * b);
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
code = ((x - ((y - 1.0d0) * z)) - ((t - 1.0d0) * a)) + (((y + t) - 2.0d0) * b)
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return ((x - ((y - 1.0) * z)) - ((t - 1.0) * a)) + (((y + t) - 2.0) * b);
}
def code(x, y, z, t, a, b): return ((x - ((y - 1.0) * z)) - ((t - 1.0) * a)) + (((y + t) - 2.0) * b)
function code(x, y, z, t, a, b) return Float64(Float64(Float64(x - Float64(Float64(y - 1.0) * z)) - Float64(Float64(t - 1.0) * a)) + Float64(Float64(Float64(y + t) - 2.0) * b)) end
function tmp = code(x, y, z, t, a, b) tmp = ((x - ((y - 1.0) * z)) - ((t - 1.0) * a)) + (((y + t) - 2.0) * b); end
code[x_, y_, z_, t_, a_, b_] := N[(N[(N[(x - N[(N[(y - 1.0), $MachinePrecision] * z), $MachinePrecision]), $MachinePrecision] - N[(N[(t - 1.0), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision] * b), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(\left(x - \left(y - 1\right) \cdot z\right) - \left(t - 1\right) \cdot a\right) + \left(\left(y + t\right) - 2\right) \cdot b
\end{array}
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (- 1.0 t)))
(t_2 (+ (+ (+ x (* z (- 1.0 y))) t_1) (* b (- (+ y t) 2.0)))))
(if (<= t_2 INFINITY) t_2 (+ (+ x (* y b)) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (1.0 - t);
double t_2 = ((x + (z * (1.0 - y))) + t_1) + (b * ((y + t) - 2.0));
double tmp;
if (t_2 <= ((double) INFINITY)) {
tmp = t_2;
} else {
tmp = (x + (y * b)) + t_1;
}
return tmp;
}
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (1.0 - t);
double t_2 = ((x + (z * (1.0 - y))) + t_1) + (b * ((y + t) - 2.0));
double tmp;
if (t_2 <= Double.POSITIVE_INFINITY) {
tmp = t_2;
} else {
tmp = (x + (y * b)) + t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (1.0 - t) t_2 = ((x + (z * (1.0 - y))) + t_1) + (b * ((y + t) - 2.0)) tmp = 0 if t_2 <= math.inf: tmp = t_2 else: tmp = (x + (y * b)) + t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(a * Float64(1.0 - t)) t_2 = Float64(Float64(Float64(x + Float64(z * Float64(1.0 - y))) + t_1) + Float64(b * Float64(Float64(y + t) - 2.0))) tmp = 0.0 if (t_2 <= Inf) tmp = t_2; else tmp = Float64(Float64(x + Float64(y * b)) + t_1); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = a * (1.0 - t); t_2 = ((x + (z * (1.0 - y))) + t_1) + (b * ((y + t) - 2.0)); tmp = 0.0; if (t_2 <= Inf) tmp = t_2; else tmp = (x + (y * b)) + t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(x + N[(z * N[(1.0 - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision] + N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$2, Infinity], t$95$2, N[(N[(x + N[(y * b), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(1 - t\right)\\
t_2 := \left(\left(x + z \cdot \left(1 - y\right)\right) + t_1\right) + b \cdot \left(\left(y + t\right) - 2\right)\\
\mathbf{if}\;t_2 \leq \infty:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;\left(x + y \cdot b\right) + t_1\\
\end{array}
\end{array}
if (+.f64 (-.f64 (-.f64 x (*.f64 (-.f64 y 1) z)) (*.f64 (-.f64 t 1) a)) (*.f64 (-.f64 (+.f64 y t) 2) b)) < +inf.0Initial program 99.9%
if +inf.0 < (+.f64 (-.f64 (-.f64 x (*.f64 (-.f64 y 1) z)) (*.f64 (-.f64 t 1) a)) (*.f64 (-.f64 (+.f64 y t) 2) b)) Initial program 0.0%
Taylor expanded in z around 0 71.4%
Taylor expanded in y around inf 71.4%
*-commutative71.4%
Simplified71.4%
Final simplification99.2%
(FPCore (x y z t a b) :precision binary64 (fma (+ y (+ t -2.0)) b (- x (fma (+ y -1.0) z (* a (+ t -1.0))))))
double code(double x, double y, double z, double t, double a, double b) {
return fma((y + (t + -2.0)), b, (x - fma((y + -1.0), z, (a * (t + -1.0)))));
}
function code(x, y, z, t, a, b) return fma(Float64(y + Float64(t + -2.0)), b, Float64(x - fma(Float64(y + -1.0), z, Float64(a * Float64(t + -1.0))))) end
code[x_, y_, z_, t_, a_, b_] := N[(N[(y + N[(t + -2.0), $MachinePrecision]), $MachinePrecision] * b + N[(x - N[(N[(y + -1.0), $MachinePrecision] * z + N[(a * N[(t + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\mathsf{fma}\left(y + \left(t + -2\right), b, x - \mathsf{fma}\left(y + -1, z, a \cdot \left(t + -1\right)\right)\right)
\end{array}
Initial program 97.2%
+-commutative97.2%
fma-def97.6%
associate--l+97.6%
sub-neg97.6%
metadata-eval97.6%
sub-neg97.6%
associate-+l-97.6%
fma-neg98.4%
sub-neg98.4%
metadata-eval98.4%
remove-double-neg98.4%
sub-neg98.4%
metadata-eval98.4%
Simplified98.4%
Final simplification98.4%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (- z (* y z)))
(t_2 (+ x (* y b)))
(t_3 (* a (- 1.0 t)))
(t_4 (* b (- (+ y t) 2.0))))
(if (<= b -1.1e+28)
t_4
(if (<= b -7.8e-171)
t_1
(if (<= b 1.3e-284)
t_3
(if (<= b 3.8e-221)
t_1
(if (<= b 2.1e-201)
t_3
(if (<= b 2.5e-170)
t_2
(if (<= b 1.35e-129) t_3 (if (<= b 2.9e-30) t_2 t_4))))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = z - (y * z);
double t_2 = x + (y * b);
double t_3 = a * (1.0 - t);
double t_4 = b * ((y + t) - 2.0);
double tmp;
if (b <= -1.1e+28) {
tmp = t_4;
} else if (b <= -7.8e-171) {
tmp = t_1;
} else if (b <= 1.3e-284) {
tmp = t_3;
} else if (b <= 3.8e-221) {
tmp = t_1;
} else if (b <= 2.1e-201) {
tmp = t_3;
} else if (b <= 2.5e-170) {
tmp = t_2;
} else if (b <= 1.35e-129) {
tmp = t_3;
} else if (b <= 2.9e-30) {
tmp = t_2;
} else {
tmp = t_4;
}
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) :: t_4
real(8) :: tmp
t_1 = z - (y * z)
t_2 = x + (y * b)
t_3 = a * (1.0d0 - t)
t_4 = b * ((y + t) - 2.0d0)
if (b <= (-1.1d+28)) then
tmp = t_4
else if (b <= (-7.8d-171)) then
tmp = t_1
else if (b <= 1.3d-284) then
tmp = t_3
else if (b <= 3.8d-221) then
tmp = t_1
else if (b <= 2.1d-201) then
tmp = t_3
else if (b <= 2.5d-170) then
tmp = t_2
else if (b <= 1.35d-129) then
tmp = t_3
else if (b <= 2.9d-30) then
tmp = t_2
else
tmp = t_4
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 - (y * z);
double t_2 = x + (y * b);
double t_3 = a * (1.0 - t);
double t_4 = b * ((y + t) - 2.0);
double tmp;
if (b <= -1.1e+28) {
tmp = t_4;
} else if (b <= -7.8e-171) {
tmp = t_1;
} else if (b <= 1.3e-284) {
tmp = t_3;
} else if (b <= 3.8e-221) {
tmp = t_1;
} else if (b <= 2.1e-201) {
tmp = t_3;
} else if (b <= 2.5e-170) {
tmp = t_2;
} else if (b <= 1.35e-129) {
tmp = t_3;
} else if (b <= 2.9e-30) {
tmp = t_2;
} else {
tmp = t_4;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = z - (y * z) t_2 = x + (y * b) t_3 = a * (1.0 - t) t_4 = b * ((y + t) - 2.0) tmp = 0 if b <= -1.1e+28: tmp = t_4 elif b <= -7.8e-171: tmp = t_1 elif b <= 1.3e-284: tmp = t_3 elif b <= 3.8e-221: tmp = t_1 elif b <= 2.1e-201: tmp = t_3 elif b <= 2.5e-170: tmp = t_2 elif b <= 1.35e-129: tmp = t_3 elif b <= 2.9e-30: tmp = t_2 else: tmp = t_4 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(z - Float64(y * z)) t_2 = Float64(x + Float64(y * b)) t_3 = Float64(a * Float64(1.0 - t)) t_4 = Float64(b * Float64(Float64(y + t) - 2.0)) tmp = 0.0 if (b <= -1.1e+28) tmp = t_4; elseif (b <= -7.8e-171) tmp = t_1; elseif (b <= 1.3e-284) tmp = t_3; elseif (b <= 3.8e-221) tmp = t_1; elseif (b <= 2.1e-201) tmp = t_3; elseif (b <= 2.5e-170) tmp = t_2; elseif (b <= 1.35e-129) tmp = t_3; elseif (b <= 2.9e-30) tmp = t_2; else tmp = t_4; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = z - (y * z); t_2 = x + (y * b); t_3 = a * (1.0 - t); t_4 = b * ((y + t) - 2.0); tmp = 0.0; if (b <= -1.1e+28) tmp = t_4; elseif (b <= -7.8e-171) tmp = t_1; elseif (b <= 1.3e-284) tmp = t_3; elseif (b <= 3.8e-221) tmp = t_1; elseif (b <= 2.1e-201) tmp = t_3; elseif (b <= 2.5e-170) tmp = t_2; elseif (b <= 1.35e-129) tmp = t_3; elseif (b <= 2.9e-30) tmp = t_2; else tmp = t_4; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(z - N[(y * z), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x + N[(y * b), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -1.1e+28], t$95$4, If[LessEqual[b, -7.8e-171], t$95$1, If[LessEqual[b, 1.3e-284], t$95$3, If[LessEqual[b, 3.8e-221], t$95$1, If[LessEqual[b, 2.1e-201], t$95$3, If[LessEqual[b, 2.5e-170], t$95$2, If[LessEqual[b, 1.35e-129], t$95$3, If[LessEqual[b, 2.9e-30], t$95$2, t$95$4]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := z - y \cdot z\\
t_2 := x + y \cdot b\\
t_3 := a \cdot \left(1 - t\right)\\
t_4 := b \cdot \left(\left(y + t\right) - 2\right)\\
\mathbf{if}\;b \leq -1.1 \cdot 10^{+28}:\\
\;\;\;\;t_4\\
\mathbf{elif}\;b \leq -7.8 \cdot 10^{-171}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;b \leq 1.3 \cdot 10^{-284}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;b \leq 3.8 \cdot 10^{-221}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;b \leq 2.1 \cdot 10^{-201}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;b \leq 2.5 \cdot 10^{-170}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;b \leq 1.35 \cdot 10^{-129}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;b \leq 2.9 \cdot 10^{-30}:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;t_4\\
\end{array}
\end{array}
if b < -1.09999999999999993e28 or 2.89999999999999989e-30 < b Initial program 95.4%
Taylor expanded in b around inf 69.7%
if -1.09999999999999993e28 < b < -7.7999999999999997e-171 or 1.3e-284 < b < 3.8000000000000001e-221Initial program 99.9%
Taylor expanded in z around inf 52.3%
sub-neg52.3%
distribute-rgt-in52.4%
*-un-lft-identity52.4%
Applied egg-rr52.4%
if -7.7999999999999997e-171 < b < 1.3e-284 or 3.8000000000000001e-221 < b < 2.10000000000000012e-201 or 2.50000000000000005e-170 < b < 1.35e-129Initial program 96.5%
Taylor expanded in a around inf 53.0%
if 2.10000000000000012e-201 < b < 2.50000000000000005e-170 or 1.35e-129 < b < 2.89999999999999989e-30Initial program 100.0%
Taylor expanded in z around 0 77.0%
Taylor expanded in a around 0 56.8%
Taylor expanded in y around inf 56.8%
*-commutative77.0%
Simplified56.8%
Final simplification60.5%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* y (- b z))) (t_2 (* t (- b a))) (t_3 (+ x (* -2.0 b))))
(if (<= t -2.8e+89)
t_2
(if (<= t -1.45e+58)
t_1
(if (<= t -920000000000.0)
t_2
(if (<= t -2.7e-170)
t_3
(if (<= t -1.8e-231)
t_1
(if (<= t 2.4e-276) t_3 (if (<= t 4.6e+84) t_1 t_2)))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = y * (b - z);
double t_2 = t * (b - a);
double t_3 = x + (-2.0 * b);
double tmp;
if (t <= -2.8e+89) {
tmp = t_2;
} else if (t <= -1.45e+58) {
tmp = t_1;
} else if (t <= -920000000000.0) {
tmp = t_2;
} else if (t <= -2.7e-170) {
tmp = t_3;
} else if (t <= -1.8e-231) {
tmp = t_1;
} else if (t <= 2.4e-276) {
tmp = t_3;
} else if (t <= 4.6e+84) {
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) :: t_3
real(8) :: tmp
t_1 = y * (b - z)
t_2 = t * (b - a)
t_3 = x + ((-2.0d0) * b)
if (t <= (-2.8d+89)) then
tmp = t_2
else if (t <= (-1.45d+58)) then
tmp = t_1
else if (t <= (-920000000000.0d0)) then
tmp = t_2
else if (t <= (-2.7d-170)) then
tmp = t_3
else if (t <= (-1.8d-231)) then
tmp = t_1
else if (t <= 2.4d-276) then
tmp = t_3
else if (t <= 4.6d+84) 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 = y * (b - z);
double t_2 = t * (b - a);
double t_3 = x + (-2.0 * b);
double tmp;
if (t <= -2.8e+89) {
tmp = t_2;
} else if (t <= -1.45e+58) {
tmp = t_1;
} else if (t <= -920000000000.0) {
tmp = t_2;
} else if (t <= -2.7e-170) {
tmp = t_3;
} else if (t <= -1.8e-231) {
tmp = t_1;
} else if (t <= 2.4e-276) {
tmp = t_3;
} else if (t <= 4.6e+84) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = y * (b - z) t_2 = t * (b - a) t_3 = x + (-2.0 * b) tmp = 0 if t <= -2.8e+89: tmp = t_2 elif t <= -1.45e+58: tmp = t_1 elif t <= -920000000000.0: tmp = t_2 elif t <= -2.7e-170: tmp = t_3 elif t <= -1.8e-231: tmp = t_1 elif t <= 2.4e-276: tmp = t_3 elif t <= 4.6e+84: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(y * Float64(b - z)) t_2 = Float64(t * Float64(b - a)) t_3 = Float64(x + Float64(-2.0 * b)) tmp = 0.0 if (t <= -2.8e+89) tmp = t_2; elseif (t <= -1.45e+58) tmp = t_1; elseif (t <= -920000000000.0) tmp = t_2; elseif (t <= -2.7e-170) tmp = t_3; elseif (t <= -1.8e-231) tmp = t_1; elseif (t <= 2.4e-276) tmp = t_3; elseif (t <= 4.6e+84) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = y * (b - z); t_2 = t * (b - a); t_3 = x + (-2.0 * b); tmp = 0.0; if (t <= -2.8e+89) tmp = t_2; elseif (t <= -1.45e+58) tmp = t_1; elseif (t <= -920000000000.0) tmp = t_2; elseif (t <= -2.7e-170) tmp = t_3; elseif (t <= -1.8e-231) tmp = t_1; elseif (t <= 2.4e-276) tmp = t_3; elseif (t <= 4.6e+84) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(y * N[(b - z), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t * N[(b - a), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(x + N[(-2.0 * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -2.8e+89], t$95$2, If[LessEqual[t, -1.45e+58], t$95$1, If[LessEqual[t, -920000000000.0], t$95$2, If[LessEqual[t, -2.7e-170], t$95$3, If[LessEqual[t, -1.8e-231], t$95$1, If[LessEqual[t, 2.4e-276], t$95$3, If[LessEqual[t, 4.6e+84], t$95$1, t$95$2]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \left(b - z\right)\\
t_2 := t \cdot \left(b - a\right)\\
t_3 := x + -2 \cdot b\\
\mathbf{if}\;t \leq -2.8 \cdot 10^{+89}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;t \leq -1.45 \cdot 10^{+58}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq -920000000000:\\
\;\;\;\;t_2\\
\mathbf{elif}\;t \leq -2.7 \cdot 10^{-170}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;t \leq -1.8 \cdot 10^{-231}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq 2.4 \cdot 10^{-276}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;t \leq 4.6 \cdot 10^{+84}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if t < -2.7999999999999998e89 or -1.45000000000000001e58 < t < -9.2e11 or 4.5999999999999998e84 < t Initial program 95.8%
Taylor expanded in t around inf 69.3%
if -2.7999999999999998e89 < t < -1.45000000000000001e58 or -2.6999999999999999e-170 < t < -1.79999999999999987e-231 or 2.39999999999999983e-276 < t < 4.5999999999999998e84Initial program 97.9%
Taylor expanded in y around inf 47.6%
if -9.2e11 < t < -2.6999999999999999e-170 or -1.79999999999999987e-231 < t < 2.39999999999999983e-276Initial program 98.3%
Taylor expanded in z around 0 75.8%
Taylor expanded in a around 0 55.1%
Taylor expanded in t around 0 55.1%
Taylor expanded in y around 0 47.1%
*-commutative47.1%
Simplified47.1%
Final simplification55.7%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (- 1.0 t))))
(if (<= a -1.15e+29)
t_1
(if (<= a -1.12e-306)
x
(if (<= a 5e-289)
(* t b)
(if (<= a 7.2e-151)
x
(if (<= a 1.35e+29) (* y b) (if (<= a 5.5e+54) x t_1))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (1.0 - t);
double tmp;
if (a <= -1.15e+29) {
tmp = t_1;
} else if (a <= -1.12e-306) {
tmp = x;
} else if (a <= 5e-289) {
tmp = t * b;
} else if (a <= 7.2e-151) {
tmp = x;
} else if (a <= 1.35e+29) {
tmp = y * b;
} else if (a <= 5.5e+54) {
tmp = 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 = a * (1.0d0 - t)
if (a <= (-1.15d+29)) then
tmp = t_1
else if (a <= (-1.12d-306)) then
tmp = x
else if (a <= 5d-289) then
tmp = t * b
else if (a <= 7.2d-151) then
tmp = x
else if (a <= 1.35d+29) then
tmp = y * b
else if (a <= 5.5d+54) then
tmp = 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 = a * (1.0 - t);
double tmp;
if (a <= -1.15e+29) {
tmp = t_1;
} else if (a <= -1.12e-306) {
tmp = x;
} else if (a <= 5e-289) {
tmp = t * b;
} else if (a <= 7.2e-151) {
tmp = x;
} else if (a <= 1.35e+29) {
tmp = y * b;
} else if (a <= 5.5e+54) {
tmp = x;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (1.0 - t) tmp = 0 if a <= -1.15e+29: tmp = t_1 elif a <= -1.12e-306: tmp = x elif a <= 5e-289: tmp = t * b elif a <= 7.2e-151: tmp = x elif a <= 1.35e+29: tmp = y * b elif a <= 5.5e+54: tmp = x else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(a * Float64(1.0 - t)) tmp = 0.0 if (a <= -1.15e+29) tmp = t_1; elseif (a <= -1.12e-306) tmp = x; elseif (a <= 5e-289) tmp = Float64(t * b); elseif (a <= 7.2e-151) tmp = x; elseif (a <= 1.35e+29) tmp = Float64(y * b); elseif (a <= 5.5e+54) tmp = x; else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = a * (1.0 - t); tmp = 0.0; if (a <= -1.15e+29) tmp = t_1; elseif (a <= -1.12e-306) tmp = x; elseif (a <= 5e-289) tmp = t * b; elseif (a <= 7.2e-151) tmp = x; elseif (a <= 1.35e+29) tmp = y * b; elseif (a <= 5.5e+54) tmp = x; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -1.15e+29], t$95$1, If[LessEqual[a, -1.12e-306], x, If[LessEqual[a, 5e-289], N[(t * b), $MachinePrecision], If[LessEqual[a, 7.2e-151], x, If[LessEqual[a, 1.35e+29], N[(y * b), $MachinePrecision], If[LessEqual[a, 5.5e+54], x, t$95$1]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(1 - t\right)\\
\mathbf{if}\;a \leq -1.15 \cdot 10^{+29}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;a \leq -1.12 \cdot 10^{-306}:\\
\;\;\;\;x\\
\mathbf{elif}\;a \leq 5 \cdot 10^{-289}:\\
\;\;\;\;t \cdot b\\
\mathbf{elif}\;a \leq 7.2 \cdot 10^{-151}:\\
\;\;\;\;x\\
\mathbf{elif}\;a \leq 1.35 \cdot 10^{+29}:\\
\;\;\;\;y \cdot b\\
\mathbf{elif}\;a \leq 5.5 \cdot 10^{+54}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if a < -1.1500000000000001e29 or 5.50000000000000026e54 < a Initial program 95.9%
Taylor expanded in a around inf 61.1%
if -1.1500000000000001e29 < a < -1.12e-306 or 5.00000000000000029e-289 < a < 7.20000000000000064e-151 or 1.35e29 < a < 5.50000000000000026e54Initial program 99.1%
Taylor expanded in x around inf 34.3%
if -1.12e-306 < a < 5.00000000000000029e-289Initial program 100.0%
Taylor expanded in t around inf 75.5%
Taylor expanded in b around inf 75.5%
*-commutative75.5%
Simplified75.5%
if 7.20000000000000064e-151 < a < 1.35e29Initial program 94.7%
Taylor expanded in b around inf 53.1%
Taylor expanded in y around inf 32.4%
*-commutative50.6%
Simplified32.4%
Final simplification45.7%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* b (- y 2.0))) (t_2 (* a (- 1.0 t))))
(if (<= a -7.8e+28)
t_2
(if (<= a -0.075)
t_1
(if (<= a -5.4e-115)
(* y (- z))
(if (<= a -3.5e-303)
t_1
(if (<= a 3.5e-151) x (if (<= a 2.15e+76) t_1 t_2))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = b * (y - 2.0);
double t_2 = a * (1.0 - t);
double tmp;
if (a <= -7.8e+28) {
tmp = t_2;
} else if (a <= -0.075) {
tmp = t_1;
} else if (a <= -5.4e-115) {
tmp = y * -z;
} else if (a <= -3.5e-303) {
tmp = t_1;
} else if (a <= 3.5e-151) {
tmp = x;
} else if (a <= 2.15e+76) {
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 = b * (y - 2.0d0)
t_2 = a * (1.0d0 - t)
if (a <= (-7.8d+28)) then
tmp = t_2
else if (a <= (-0.075d0)) then
tmp = t_1
else if (a <= (-5.4d-115)) then
tmp = y * -z
else if (a <= (-3.5d-303)) then
tmp = t_1
else if (a <= 3.5d-151) then
tmp = x
else if (a <= 2.15d+76) 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 = b * (y - 2.0);
double t_2 = a * (1.0 - t);
double tmp;
if (a <= -7.8e+28) {
tmp = t_2;
} else if (a <= -0.075) {
tmp = t_1;
} else if (a <= -5.4e-115) {
tmp = y * -z;
} else if (a <= -3.5e-303) {
tmp = t_1;
} else if (a <= 3.5e-151) {
tmp = x;
} else if (a <= 2.15e+76) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = b * (y - 2.0) t_2 = a * (1.0 - t) tmp = 0 if a <= -7.8e+28: tmp = t_2 elif a <= -0.075: tmp = t_1 elif a <= -5.4e-115: tmp = y * -z elif a <= -3.5e-303: tmp = t_1 elif a <= 3.5e-151: tmp = x elif a <= 2.15e+76: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(b * Float64(y - 2.0)) t_2 = Float64(a * Float64(1.0 - t)) tmp = 0.0 if (a <= -7.8e+28) tmp = t_2; elseif (a <= -0.075) tmp = t_1; elseif (a <= -5.4e-115) tmp = Float64(y * Float64(-z)); elseif (a <= -3.5e-303) tmp = t_1; elseif (a <= 3.5e-151) tmp = x; elseif (a <= 2.15e+76) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = b * (y - 2.0); t_2 = a * (1.0 - t); tmp = 0.0; if (a <= -7.8e+28) tmp = t_2; elseif (a <= -0.075) tmp = t_1; elseif (a <= -5.4e-115) tmp = y * -z; elseif (a <= -3.5e-303) tmp = t_1; elseif (a <= 3.5e-151) tmp = x; elseif (a <= 2.15e+76) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(b * N[(y - 2.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -7.8e+28], t$95$2, If[LessEqual[a, -0.075], t$95$1, If[LessEqual[a, -5.4e-115], N[(y * (-z)), $MachinePrecision], If[LessEqual[a, -3.5e-303], t$95$1, If[LessEqual[a, 3.5e-151], x, If[LessEqual[a, 2.15e+76], t$95$1, t$95$2]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(y - 2\right)\\
t_2 := a \cdot \left(1 - t\right)\\
\mathbf{if}\;a \leq -7.8 \cdot 10^{+28}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;a \leq -0.075:\\
\;\;\;\;t_1\\
\mathbf{elif}\;a \leq -5.4 \cdot 10^{-115}:\\
\;\;\;\;y \cdot \left(-z\right)\\
\mathbf{elif}\;a \leq -3.5 \cdot 10^{-303}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;a \leq 3.5 \cdot 10^{-151}:\\
\;\;\;\;x\\
\mathbf{elif}\;a \leq 2.15 \cdot 10^{+76}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if a < -7.7999999999999997e28 or 2.14999999999999989e76 < a Initial program 96.7%
Taylor expanded in a around inf 63.9%
if -7.7999999999999997e28 < a < -0.0749999999999999972 or -5.4e-115 < a < -3.5e-303 or 3.49999999999999995e-151 < a < 2.14999999999999989e76Initial program 95.9%
Taylor expanded in b around inf 49.9%
Taylor expanded in t around 0 40.5%
if -0.0749999999999999972 < a < -5.4e-115Initial program 99.9%
Taylor expanded in z around inf 51.1%
Taylor expanded in y around inf 37.7%
mul-1-neg37.7%
distribute-lft-neg-out37.7%
*-commutative37.7%
Simplified37.7%
if -3.5e-303 < a < 3.49999999999999995e-151Initial program 100.0%
Taylor expanded in x around inf 42.1%
Final simplification49.0%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* t (- b a))))
(if (<= t -6.5e+87)
t_1
(if (<= t -2.5e+54)
(* y (- b z))
(if (<= t -1.7e+14)
t_1
(if (<= t -1.45e-171)
(+ x (* -2.0 b))
(if (<= t -9.2e-208)
(* z (- 1.0 y))
(if (<= t 6.8e+89) (+ x (* y b)) t_1))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = t * (b - a);
double tmp;
if (t <= -6.5e+87) {
tmp = t_1;
} else if (t <= -2.5e+54) {
tmp = y * (b - z);
} else if (t <= -1.7e+14) {
tmp = t_1;
} else if (t <= -1.45e-171) {
tmp = x + (-2.0 * b);
} else if (t <= -9.2e-208) {
tmp = z * (1.0 - y);
} else if (t <= 6.8e+89) {
tmp = x + (y * b);
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = t * (b - a)
if (t <= (-6.5d+87)) then
tmp = t_1
else if (t <= (-2.5d+54)) then
tmp = y * (b - z)
else if (t <= (-1.7d+14)) then
tmp = t_1
else if (t <= (-1.45d-171)) then
tmp = x + ((-2.0d0) * b)
else if (t <= (-9.2d-208)) then
tmp = z * (1.0d0 - y)
else if (t <= 6.8d+89) then
tmp = x + (y * b)
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = t * (b - a);
double tmp;
if (t <= -6.5e+87) {
tmp = t_1;
} else if (t <= -2.5e+54) {
tmp = y * (b - z);
} else if (t <= -1.7e+14) {
tmp = t_1;
} else if (t <= -1.45e-171) {
tmp = x + (-2.0 * b);
} else if (t <= -9.2e-208) {
tmp = z * (1.0 - y);
} else if (t <= 6.8e+89) {
tmp = x + (y * b);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = t * (b - a) tmp = 0 if t <= -6.5e+87: tmp = t_1 elif t <= -2.5e+54: tmp = y * (b - z) elif t <= -1.7e+14: tmp = t_1 elif t <= -1.45e-171: tmp = x + (-2.0 * b) elif t <= -9.2e-208: tmp = z * (1.0 - y) elif t <= 6.8e+89: tmp = x + (y * b) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(t * Float64(b - a)) tmp = 0.0 if (t <= -6.5e+87) tmp = t_1; elseif (t <= -2.5e+54) tmp = Float64(y * Float64(b - z)); elseif (t <= -1.7e+14) tmp = t_1; elseif (t <= -1.45e-171) tmp = Float64(x + Float64(-2.0 * b)); elseif (t <= -9.2e-208) tmp = Float64(z * Float64(1.0 - y)); elseif (t <= 6.8e+89) tmp = Float64(x + Float64(y * b)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = t * (b - a); tmp = 0.0; if (t <= -6.5e+87) tmp = t_1; elseif (t <= -2.5e+54) tmp = y * (b - z); elseif (t <= -1.7e+14) tmp = t_1; elseif (t <= -1.45e-171) tmp = x + (-2.0 * b); elseif (t <= -9.2e-208) tmp = z * (1.0 - y); elseif (t <= 6.8e+89) tmp = x + (y * b); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(t * N[(b - a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -6.5e+87], t$95$1, If[LessEqual[t, -2.5e+54], N[(y * N[(b - z), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, -1.7e+14], t$95$1, If[LessEqual[t, -1.45e-171], N[(x + N[(-2.0 * b), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, -9.2e-208], N[(z * N[(1.0 - y), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 6.8e+89], N[(x + N[(y * b), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t \cdot \left(b - a\right)\\
\mathbf{if}\;t \leq -6.5 \cdot 10^{+87}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq -2.5 \cdot 10^{+54}:\\
\;\;\;\;y \cdot \left(b - z\right)\\
\mathbf{elif}\;t \leq -1.7 \cdot 10^{+14}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq -1.45 \cdot 10^{-171}:\\
\;\;\;\;x + -2 \cdot b\\
\mathbf{elif}\;t \leq -9.2 \cdot 10^{-208}:\\
\;\;\;\;z \cdot \left(1 - y\right)\\
\mathbf{elif}\;t \leq 6.8 \cdot 10^{+89}:\\
\;\;\;\;x + y \cdot b\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if t < -6.5000000000000002e87 or -2.50000000000000003e54 < t < -1.7e14 or 6.8000000000000004e89 < t Initial program 95.8%
Taylor expanded in t around inf 69.3%
if -6.5000000000000002e87 < t < -2.50000000000000003e54Initial program 99.9%
Taylor expanded in y around inf 58.2%
if -1.7e14 < t < -1.4499999999999999e-171Initial program 97.4%
Taylor expanded in z around 0 76.1%
Taylor expanded in a around 0 58.0%
Taylor expanded in t around 0 58.0%
Taylor expanded in y around 0 49.8%
*-commutative49.8%
Simplified49.8%
if -1.4499999999999999e-171 < t < -9.19999999999999986e-208Initial program 100.0%
Taylor expanded in z around inf 68.8%
if -9.19999999999999986e-208 < t < 6.8000000000000004e89Initial program 97.9%
Taylor expanded in z around 0 75.0%
Taylor expanded in a around 0 58.9%
Taylor expanded in y around inf 45.7%
*-commutative61.6%
Simplified45.7%
Final simplification56.6%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ x (* b (- (+ y t) 2.0)))) (t_2 (- x (* a (+ t -1.0)))))
(if (<= b -4.2e+25)
t_1
(if (<= b -4e-171)
(- (+ x z) (* y z))
(if (<= b 2e-255)
t_2
(if (<= b 1.36e-221) (- z (* y z)) (if (<= b 6e-24) t_2 t_1)))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x + (b * ((y + t) - 2.0));
double t_2 = x - (a * (t + -1.0));
double tmp;
if (b <= -4.2e+25) {
tmp = t_1;
} else if (b <= -4e-171) {
tmp = (x + z) - (y * z);
} else if (b <= 2e-255) {
tmp = t_2;
} else if (b <= 1.36e-221) {
tmp = z - (y * z);
} else if (b <= 6e-24) {
tmp = t_2;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = x + (b * ((y + t) - 2.0d0))
t_2 = x - (a * (t + (-1.0d0)))
if (b <= (-4.2d+25)) then
tmp = t_1
else if (b <= (-4d-171)) then
tmp = (x + z) - (y * z)
else if (b <= 2d-255) then
tmp = t_2
else if (b <= 1.36d-221) then
tmp = z - (y * z)
else if (b <= 6d-24) then
tmp = t_2
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x + (b * ((y + t) - 2.0));
double t_2 = x - (a * (t + -1.0));
double tmp;
if (b <= -4.2e+25) {
tmp = t_1;
} else if (b <= -4e-171) {
tmp = (x + z) - (y * z);
} else if (b <= 2e-255) {
tmp = t_2;
} else if (b <= 1.36e-221) {
tmp = z - (y * z);
} else if (b <= 6e-24) {
tmp = t_2;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x + (b * ((y + t) - 2.0)) t_2 = x - (a * (t + -1.0)) tmp = 0 if b <= -4.2e+25: tmp = t_1 elif b <= -4e-171: tmp = (x + z) - (y * z) elif b <= 2e-255: tmp = t_2 elif b <= 1.36e-221: tmp = z - (y * z) elif b <= 6e-24: tmp = t_2 else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x + Float64(b * Float64(Float64(y + t) - 2.0))) t_2 = Float64(x - Float64(a * Float64(t + -1.0))) tmp = 0.0 if (b <= -4.2e+25) tmp = t_1; elseif (b <= -4e-171) tmp = Float64(Float64(x + z) - Float64(y * z)); elseif (b <= 2e-255) tmp = t_2; elseif (b <= 1.36e-221) tmp = Float64(z - Float64(y * z)); elseif (b <= 6e-24) tmp = t_2; else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x + (b * ((y + t) - 2.0)); t_2 = x - (a * (t + -1.0)); tmp = 0.0; if (b <= -4.2e+25) tmp = t_1; elseif (b <= -4e-171) tmp = (x + z) - (y * z); elseif (b <= 2e-255) tmp = t_2; elseif (b <= 1.36e-221) tmp = z - (y * z); elseif (b <= 6e-24) tmp = t_2; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x + N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x - N[(a * N[(t + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -4.2e+25], t$95$1, If[LessEqual[b, -4e-171], N[(N[(x + z), $MachinePrecision] - N[(y * z), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 2e-255], t$95$2, If[LessEqual[b, 1.36e-221], N[(z - N[(y * z), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 6e-24], t$95$2, t$95$1]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + b \cdot \left(\left(y + t\right) - 2\right)\\
t_2 := x - a \cdot \left(t + -1\right)\\
\mathbf{if}\;b \leq -4.2 \cdot 10^{+25}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;b \leq -4 \cdot 10^{-171}:\\
\;\;\;\;\left(x + z\right) - y \cdot z\\
\mathbf{elif}\;b \leq 2 \cdot 10^{-255}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;b \leq 1.36 \cdot 10^{-221}:\\
\;\;\;\;z - y \cdot z\\
\mathbf{elif}\;b \leq 6 \cdot 10^{-24}:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if b < -4.1999999999999998e25 or 5.99999999999999991e-24 < b Initial program 95.3%
Taylor expanded in z around 0 92.4%
Taylor expanded in a around 0 80.9%
if -4.1999999999999998e25 < b < -3.9999999999999999e-171Initial program 100.0%
Taylor expanded in y around 0 100.0%
Taylor expanded in b around 0 87.5%
sub-neg87.5%
metadata-eval87.5%
associate--r+87.5%
*-commutative87.5%
cancel-sign-sub-inv87.5%
sub-neg87.5%
mul-1-neg87.5%
unsub-neg87.5%
mul-1-neg87.5%
remove-double-neg87.5%
+-commutative87.5%
distribute-neg-in87.5%
metadata-eval87.5%
sub-neg87.5%
*-commutative87.5%
Simplified87.5%
Taylor expanded in a around 0 71.6%
if -3.9999999999999999e-171 < b < 2e-255 or 1.3600000000000001e-221 < b < 5.99999999999999991e-24Initial program 97.8%
Taylor expanded in z around 0 76.3%
Taylor expanded in b around 0 71.4%
if 2e-255 < b < 1.3600000000000001e-221Initial program 99.7%
Taylor expanded in z around inf 99.7%
sub-neg99.7%
distribute-rgt-in100.0%
*-un-lft-identity100.0%
Applied egg-rr100.0%
Final simplification76.0%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* b (- (+ y t) 2.0))) (t_2 (- x (* a (+ t -1.0)))))
(if (<= b -1.9e+32)
t_1
(if (<= b -4.4e-172)
(- (+ x z) (* y z))
(if (<= b 3.1e-255)
t_2
(if (<= b 1.1e-221) (- z (* y z)) (if (<= b 9e-22) t_2 t_1)))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = b * ((y + t) - 2.0);
double t_2 = x - (a * (t + -1.0));
double tmp;
if (b <= -1.9e+32) {
tmp = t_1;
} else if (b <= -4.4e-172) {
tmp = (x + z) - (y * z);
} else if (b <= 3.1e-255) {
tmp = t_2;
} else if (b <= 1.1e-221) {
tmp = z - (y * z);
} else if (b <= 9e-22) {
tmp = t_2;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = b * ((y + t) - 2.0d0)
t_2 = x - (a * (t + (-1.0d0)))
if (b <= (-1.9d+32)) then
tmp = t_1
else if (b <= (-4.4d-172)) then
tmp = (x + z) - (y * z)
else if (b <= 3.1d-255) then
tmp = t_2
else if (b <= 1.1d-221) then
tmp = z - (y * z)
else if (b <= 9d-22) then
tmp = t_2
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = b * ((y + t) - 2.0);
double t_2 = x - (a * (t + -1.0));
double tmp;
if (b <= -1.9e+32) {
tmp = t_1;
} else if (b <= -4.4e-172) {
tmp = (x + z) - (y * z);
} else if (b <= 3.1e-255) {
tmp = t_2;
} else if (b <= 1.1e-221) {
tmp = z - (y * z);
} else if (b <= 9e-22) {
tmp = t_2;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = b * ((y + t) - 2.0) t_2 = x - (a * (t + -1.0)) tmp = 0 if b <= -1.9e+32: tmp = t_1 elif b <= -4.4e-172: tmp = (x + z) - (y * z) elif b <= 3.1e-255: tmp = t_2 elif b <= 1.1e-221: tmp = z - (y * z) elif b <= 9e-22: tmp = t_2 else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(b * Float64(Float64(y + t) - 2.0)) t_2 = Float64(x - Float64(a * Float64(t + -1.0))) tmp = 0.0 if (b <= -1.9e+32) tmp = t_1; elseif (b <= -4.4e-172) tmp = Float64(Float64(x + z) - Float64(y * z)); elseif (b <= 3.1e-255) tmp = t_2; elseif (b <= 1.1e-221) tmp = Float64(z - Float64(y * z)); elseif (b <= 9e-22) tmp = t_2; else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = b * ((y + t) - 2.0); t_2 = x - (a * (t + -1.0)); tmp = 0.0; if (b <= -1.9e+32) tmp = t_1; elseif (b <= -4.4e-172) tmp = (x + z) - (y * z); elseif (b <= 3.1e-255) tmp = t_2; elseif (b <= 1.1e-221) tmp = z - (y * z); elseif (b <= 9e-22) tmp = t_2; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x - N[(a * N[(t + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -1.9e+32], t$95$1, If[LessEqual[b, -4.4e-172], N[(N[(x + z), $MachinePrecision] - N[(y * z), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 3.1e-255], t$95$2, If[LessEqual[b, 1.1e-221], N[(z - N[(y * z), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 9e-22], t$95$2, t$95$1]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(\left(y + t\right) - 2\right)\\
t_2 := x - a \cdot \left(t + -1\right)\\
\mathbf{if}\;b \leq -1.9 \cdot 10^{+32}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;b \leq -4.4 \cdot 10^{-172}:\\
\;\;\;\;\left(x + z\right) - y \cdot z\\
\mathbf{elif}\;b \leq 3.1 \cdot 10^{-255}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;b \leq 1.1 \cdot 10^{-221}:\\
\;\;\;\;z - y \cdot z\\
\mathbf{elif}\;b \leq 9 \cdot 10^{-22}:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if b < -1.9000000000000002e32 or 8.99999999999999973e-22 < b Initial program 95.3%
Taylor expanded in b around inf 71.6%
if -1.9000000000000002e32 < b < -4.40000000000000018e-172Initial program 100.0%
Taylor expanded in y around 0 100.0%
Taylor expanded in b around 0 87.5%
sub-neg87.5%
metadata-eval87.5%
associate--r+87.5%
*-commutative87.5%
cancel-sign-sub-inv87.5%
sub-neg87.5%
mul-1-neg87.5%
unsub-neg87.5%
mul-1-neg87.5%
remove-double-neg87.5%
+-commutative87.5%
distribute-neg-in87.5%
metadata-eval87.5%
sub-neg87.5%
*-commutative87.5%
Simplified87.5%
Taylor expanded in a around 0 71.6%
if -4.40000000000000018e-172 < b < 3.09999999999999997e-255 or 1.10000000000000001e-221 < b < 8.99999999999999973e-22Initial program 97.8%
Taylor expanded in z around 0 76.3%
Taylor expanded in b around 0 71.4%
if 3.09999999999999997e-255 < b < 1.10000000000000001e-221Initial program 99.7%
Taylor expanded in z around inf 99.7%
sub-neg99.7%
distribute-rgt-in100.0%
*-un-lft-identity100.0%
Applied egg-rr100.0%
Final simplification72.1%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* b (- y 2.0))) (t_2 (* t (- b a))))
(if (<= t -120000.0)
t_2
(if (<= t -2.4e-143)
x
(if (<= t 2.25e-110)
t_1
(if (<= t 1.65e-47)
(* y (- z))
(if (<= t 16000000000000.0) t_1 t_2)))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = b * (y - 2.0);
double t_2 = t * (b - a);
double tmp;
if (t <= -120000.0) {
tmp = t_2;
} else if (t <= -2.4e-143) {
tmp = x;
} else if (t <= 2.25e-110) {
tmp = t_1;
} else if (t <= 1.65e-47) {
tmp = y * -z;
} else if (t <= 16000000000000.0) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = b * (y - 2.0d0)
t_2 = t * (b - a)
if (t <= (-120000.0d0)) then
tmp = t_2
else if (t <= (-2.4d-143)) then
tmp = x
else if (t <= 2.25d-110) then
tmp = t_1
else if (t <= 1.65d-47) then
tmp = y * -z
else if (t <= 16000000000000.0d0) then
tmp = t_1
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = b * (y - 2.0);
double t_2 = t * (b - a);
double tmp;
if (t <= -120000.0) {
tmp = t_2;
} else if (t <= -2.4e-143) {
tmp = x;
} else if (t <= 2.25e-110) {
tmp = t_1;
} else if (t <= 1.65e-47) {
tmp = y * -z;
} else if (t <= 16000000000000.0) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = b * (y - 2.0) t_2 = t * (b - a) tmp = 0 if t <= -120000.0: tmp = t_2 elif t <= -2.4e-143: tmp = x elif t <= 2.25e-110: tmp = t_1 elif t <= 1.65e-47: tmp = y * -z elif t <= 16000000000000.0: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(b * Float64(y - 2.0)) t_2 = Float64(t * Float64(b - a)) tmp = 0.0 if (t <= -120000.0) tmp = t_2; elseif (t <= -2.4e-143) tmp = x; elseif (t <= 2.25e-110) tmp = t_1; elseif (t <= 1.65e-47) tmp = Float64(y * Float64(-z)); elseif (t <= 16000000000000.0) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = b * (y - 2.0); t_2 = t * (b - a); tmp = 0.0; if (t <= -120000.0) tmp = t_2; elseif (t <= -2.4e-143) tmp = x; elseif (t <= 2.25e-110) tmp = t_1; elseif (t <= 1.65e-47) tmp = y * -z; elseif (t <= 16000000000000.0) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(b * N[(y - 2.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t * N[(b - a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -120000.0], t$95$2, If[LessEqual[t, -2.4e-143], x, If[LessEqual[t, 2.25e-110], t$95$1, If[LessEqual[t, 1.65e-47], N[(y * (-z)), $MachinePrecision], If[LessEqual[t, 16000000000000.0], t$95$1, t$95$2]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(y - 2\right)\\
t_2 := t \cdot \left(b - a\right)\\
\mathbf{if}\;t \leq -120000:\\
\;\;\;\;t_2\\
\mathbf{elif}\;t \leq -2.4 \cdot 10^{-143}:\\
\;\;\;\;x\\
\mathbf{elif}\;t \leq 2.25 \cdot 10^{-110}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq 1.65 \cdot 10^{-47}:\\
\;\;\;\;y \cdot \left(-z\right)\\
\mathbf{elif}\;t \leq 16000000000000:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if t < -1.2e5 or 1.6e13 < t Initial program 96.8%
Taylor expanded in t around inf 59.1%
if -1.2e5 < t < -2.3999999999999999e-143Initial program 96.7%
Taylor expanded in x around inf 38.7%
if -2.3999999999999999e-143 < t < 2.25e-110 or 1.65000000000000002e-47 < t < 1.6e13Initial program 97.6%
Taylor expanded in b around inf 41.8%
Taylor expanded in t around 0 41.7%
if 2.25e-110 < t < 1.65000000000000002e-47Initial program 100.0%
Taylor expanded in z around inf 47.0%
Taylor expanded in y around inf 47.1%
mul-1-neg47.1%
distribute-lft-neg-out47.1%
*-commutative47.1%
Simplified47.1%
Final simplification50.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* y (- b z))) (t_2 (* t (- b a))))
(if (<= t -6.5e+87)
t_2
(if (<= t -8.5e+57)
t_1
(if (<= t -6500000000.0)
t_2
(if (<= t -1.65e-163) x (if (<= t 8e+87) t_1 t_2)))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = y * (b - z);
double t_2 = t * (b - a);
double tmp;
if (t <= -6.5e+87) {
tmp = t_2;
} else if (t <= -8.5e+57) {
tmp = t_1;
} else if (t <= -6500000000.0) {
tmp = t_2;
} else if (t <= -1.65e-163) {
tmp = x;
} else if (t <= 8e+87) {
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 = y * (b - z)
t_2 = t * (b - a)
if (t <= (-6.5d+87)) then
tmp = t_2
else if (t <= (-8.5d+57)) then
tmp = t_1
else if (t <= (-6500000000.0d0)) then
tmp = t_2
else if (t <= (-1.65d-163)) then
tmp = x
else if (t <= 8d+87) 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 = y * (b - z);
double t_2 = t * (b - a);
double tmp;
if (t <= -6.5e+87) {
tmp = t_2;
} else if (t <= -8.5e+57) {
tmp = t_1;
} else if (t <= -6500000000.0) {
tmp = t_2;
} else if (t <= -1.65e-163) {
tmp = x;
} else if (t <= 8e+87) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = y * (b - z) t_2 = t * (b - a) tmp = 0 if t <= -6.5e+87: tmp = t_2 elif t <= -8.5e+57: tmp = t_1 elif t <= -6500000000.0: tmp = t_2 elif t <= -1.65e-163: tmp = x elif t <= 8e+87: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(y * Float64(b - z)) t_2 = Float64(t * Float64(b - a)) tmp = 0.0 if (t <= -6.5e+87) tmp = t_2; elseif (t <= -8.5e+57) tmp = t_1; elseif (t <= -6500000000.0) tmp = t_2; elseif (t <= -1.65e-163) tmp = x; elseif (t <= 8e+87) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = y * (b - z); t_2 = t * (b - a); tmp = 0.0; if (t <= -6.5e+87) tmp = t_2; elseif (t <= -8.5e+57) tmp = t_1; elseif (t <= -6500000000.0) tmp = t_2; elseif (t <= -1.65e-163) tmp = x; elseif (t <= 8e+87) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(y * N[(b - z), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t * N[(b - a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -6.5e+87], t$95$2, If[LessEqual[t, -8.5e+57], t$95$1, If[LessEqual[t, -6500000000.0], t$95$2, If[LessEqual[t, -1.65e-163], x, If[LessEqual[t, 8e+87], t$95$1, t$95$2]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \left(b - z\right)\\
t_2 := t \cdot \left(b - a\right)\\
\mathbf{if}\;t \leq -6.5 \cdot 10^{+87}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;t \leq -8.5 \cdot 10^{+57}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq -6500000000:\\
\;\;\;\;t_2\\
\mathbf{elif}\;t \leq -1.65 \cdot 10^{-163}:\\
\;\;\;\;x\\
\mathbf{elif}\;t \leq 8 \cdot 10^{+87}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if t < -6.5000000000000002e87 or -8.5000000000000001e57 < t < -6.5e9 or 7.9999999999999997e87 < t Initial program 95.8%
Taylor expanded in t around inf 69.3%
if -6.5000000000000002e87 < t < -8.5000000000000001e57 or -1.65e-163 < t < 7.9999999999999997e87Initial program 98.3%
Taylor expanded in y around inf 41.1%
if -6.5e9 < t < -1.65e-163Initial program 97.1%
Taylor expanded in x around inf 36.3%
Final simplification51.1%
(FPCore (x y z t a b)
:precision binary64
(if (<= x -1.9e+49)
x
(if (<= x -4.8e-304)
(* y b)
(if (<= x 1.5e-174)
(* t b)
(if (<= x 4.5e-95) (* y b) (if (<= x 8.4e+40) (* t b) x))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (x <= -1.9e+49) {
tmp = x;
} else if (x <= -4.8e-304) {
tmp = y * b;
} else if (x <= 1.5e-174) {
tmp = t * b;
} else if (x <= 4.5e-95) {
tmp = y * b;
} else if (x <= 8.4e+40) {
tmp = t * b;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (x <= (-1.9d+49)) then
tmp = x
else if (x <= (-4.8d-304)) then
tmp = y * b
else if (x <= 1.5d-174) then
tmp = t * b
else if (x <= 4.5d-95) then
tmp = y * b
else if (x <= 8.4d+40) then
tmp = t * b
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (x <= -1.9e+49) {
tmp = x;
} else if (x <= -4.8e-304) {
tmp = y * b;
} else if (x <= 1.5e-174) {
tmp = t * b;
} else if (x <= 4.5e-95) {
tmp = y * b;
} else if (x <= 8.4e+40) {
tmp = t * b;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if x <= -1.9e+49: tmp = x elif x <= -4.8e-304: tmp = y * b elif x <= 1.5e-174: tmp = t * b elif x <= 4.5e-95: tmp = y * b elif x <= 8.4e+40: tmp = t * b else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (x <= -1.9e+49) tmp = x; elseif (x <= -4.8e-304) tmp = Float64(y * b); elseif (x <= 1.5e-174) tmp = Float64(t * b); elseif (x <= 4.5e-95) tmp = Float64(y * b); elseif (x <= 8.4e+40) tmp = Float64(t * b); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (x <= -1.9e+49) tmp = x; elseif (x <= -4.8e-304) tmp = y * b; elseif (x <= 1.5e-174) tmp = t * b; elseif (x <= 4.5e-95) tmp = y * b; elseif (x <= 8.4e+40) tmp = t * b; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[x, -1.9e+49], x, If[LessEqual[x, -4.8e-304], N[(y * b), $MachinePrecision], If[LessEqual[x, 1.5e-174], N[(t * b), $MachinePrecision], If[LessEqual[x, 4.5e-95], N[(y * b), $MachinePrecision], If[LessEqual[x, 8.4e+40], N[(t * b), $MachinePrecision], x]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -1.9 \cdot 10^{+49}:\\
\;\;\;\;x\\
\mathbf{elif}\;x \leq -4.8 \cdot 10^{-304}:\\
\;\;\;\;y \cdot b\\
\mathbf{elif}\;x \leq 1.5 \cdot 10^{-174}:\\
\;\;\;\;t \cdot b\\
\mathbf{elif}\;x \leq 4.5 \cdot 10^{-95}:\\
\;\;\;\;y \cdot b\\
\mathbf{elif}\;x \leq 8.4 \cdot 10^{+40}:\\
\;\;\;\;t \cdot b\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if x < -1.8999999999999999e49 or 8.4000000000000004e40 < x Initial program 99.1%
Taylor expanded in x around inf 42.8%
if -1.8999999999999999e49 < x < -4.8000000000000002e-304 or 1.50000000000000011e-174 < x < 4.5e-95Initial program 95.6%
Taylor expanded in b around inf 46.4%
Taylor expanded in y around inf 27.5%
*-commutative53.1%
Simplified27.5%
if -4.8000000000000002e-304 < x < 1.50000000000000011e-174 or 4.5e-95 < x < 8.4000000000000004e40Initial program 95.9%
Taylor expanded in t around inf 51.2%
Taylor expanded in b around inf 31.5%
*-commutative31.5%
Simplified31.5%
Final simplification35.1%
(FPCore (x y z t a b)
:precision binary64
(if (<= x -1.25e+83)
x
(if (<= x -1e-172)
(* t (- a))
(if (<= x 1.7e-286)
(* y (- z))
(if (<= x 1.1e-110) (* y b) (if (<= x 1.4e+44) (* t b) x))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (x <= -1.25e+83) {
tmp = x;
} else if (x <= -1e-172) {
tmp = t * -a;
} else if (x <= 1.7e-286) {
tmp = y * -z;
} else if (x <= 1.1e-110) {
tmp = y * b;
} else if (x <= 1.4e+44) {
tmp = t * b;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (x <= (-1.25d+83)) then
tmp = x
else if (x <= (-1d-172)) then
tmp = t * -a
else if (x <= 1.7d-286) then
tmp = y * -z
else if (x <= 1.1d-110) then
tmp = y * b
else if (x <= 1.4d+44) then
tmp = t * b
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (x <= -1.25e+83) {
tmp = x;
} else if (x <= -1e-172) {
tmp = t * -a;
} else if (x <= 1.7e-286) {
tmp = y * -z;
} else if (x <= 1.1e-110) {
tmp = y * b;
} else if (x <= 1.4e+44) {
tmp = t * b;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if x <= -1.25e+83: tmp = x elif x <= -1e-172: tmp = t * -a elif x <= 1.7e-286: tmp = y * -z elif x <= 1.1e-110: tmp = y * b elif x <= 1.4e+44: tmp = t * b else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (x <= -1.25e+83) tmp = x; elseif (x <= -1e-172) tmp = Float64(t * Float64(-a)); elseif (x <= 1.7e-286) tmp = Float64(y * Float64(-z)); elseif (x <= 1.1e-110) tmp = Float64(y * b); elseif (x <= 1.4e+44) tmp = Float64(t * b); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (x <= -1.25e+83) tmp = x; elseif (x <= -1e-172) tmp = t * -a; elseif (x <= 1.7e-286) tmp = y * -z; elseif (x <= 1.1e-110) tmp = y * b; elseif (x <= 1.4e+44) tmp = t * b; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[x, -1.25e+83], x, If[LessEqual[x, -1e-172], N[(t * (-a)), $MachinePrecision], If[LessEqual[x, 1.7e-286], N[(y * (-z)), $MachinePrecision], If[LessEqual[x, 1.1e-110], N[(y * b), $MachinePrecision], If[LessEqual[x, 1.4e+44], N[(t * b), $MachinePrecision], x]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -1.25 \cdot 10^{+83}:\\
\;\;\;\;x\\
\mathbf{elif}\;x \leq -1 \cdot 10^{-172}:\\
\;\;\;\;t \cdot \left(-a\right)\\
\mathbf{elif}\;x \leq 1.7 \cdot 10^{-286}:\\
\;\;\;\;y \cdot \left(-z\right)\\
\mathbf{elif}\;x \leq 1.1 \cdot 10^{-110}:\\
\;\;\;\;y \cdot b\\
\mathbf{elif}\;x \leq 1.4 \cdot 10^{+44}:\\
\;\;\;\;t \cdot b\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if x < -1.25000000000000007e83 or 1.4e44 < x Initial program 99.0%
Taylor expanded in x around inf 45.6%
if -1.25000000000000007e83 < x < -1e-172Initial program 94.6%
Taylor expanded in a around inf 37.6%
Taylor expanded in t around inf 26.8%
mul-1-neg26.8%
*-commutative26.8%
distribute-rgt-neg-in26.8%
Simplified26.8%
if -1e-172 < x < 1.7000000000000001e-286Initial program 99.9%
Taylor expanded in z around inf 56.6%
Taylor expanded in y around inf 40.8%
mul-1-neg40.8%
distribute-lft-neg-out40.8%
*-commutative40.8%
Simplified40.8%
if 1.7000000000000001e-286 < x < 1.1e-110Initial program 93.2%
Taylor expanded in b around inf 54.4%
Taylor expanded in y around inf 29.6%
*-commutative59.4%
Simplified29.6%
if 1.1e-110 < x < 1.4e44Initial program 97.0%
Taylor expanded in t around inf 47.9%
Taylor expanded in b around inf 30.8%
*-commutative30.8%
Simplified30.8%
Final simplification37.1%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (- x (* a (+ t -1.0)))) (t_2 (* b (- (+ y t) 2.0))))
(if (<= b -4.5e+48)
t_2
(if (<= b 3.1e-255)
t_1
(if (<= b 2.85e-221) (- z (* y z)) (if (<= b 1.1e-21) t_1 t_2))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x - (a * (t + -1.0));
double t_2 = b * ((y + t) - 2.0);
double tmp;
if (b <= -4.5e+48) {
tmp = t_2;
} else if (b <= 3.1e-255) {
tmp = t_1;
} else if (b <= 2.85e-221) {
tmp = z - (y * z);
} else if (b <= 1.1e-21) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = x - (a * (t + (-1.0d0)))
t_2 = b * ((y + t) - 2.0d0)
if (b <= (-4.5d+48)) then
tmp = t_2
else if (b <= 3.1d-255) then
tmp = t_1
else if (b <= 2.85d-221) then
tmp = z - (y * z)
else if (b <= 1.1d-21) then
tmp = t_1
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x - (a * (t + -1.0));
double t_2 = b * ((y + t) - 2.0);
double tmp;
if (b <= -4.5e+48) {
tmp = t_2;
} else if (b <= 3.1e-255) {
tmp = t_1;
} else if (b <= 2.85e-221) {
tmp = z - (y * z);
} else if (b <= 1.1e-21) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x - (a * (t + -1.0)) t_2 = b * ((y + t) - 2.0) tmp = 0 if b <= -4.5e+48: tmp = t_2 elif b <= 3.1e-255: tmp = t_1 elif b <= 2.85e-221: tmp = z - (y * z) elif b <= 1.1e-21: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x - Float64(a * Float64(t + -1.0))) t_2 = Float64(b * Float64(Float64(y + t) - 2.0)) tmp = 0.0 if (b <= -4.5e+48) tmp = t_2; elseif (b <= 3.1e-255) tmp = t_1; elseif (b <= 2.85e-221) tmp = Float64(z - Float64(y * z)); elseif (b <= 1.1e-21) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x - (a * (t + -1.0)); t_2 = b * ((y + t) - 2.0); tmp = 0.0; if (b <= -4.5e+48) tmp = t_2; elseif (b <= 3.1e-255) tmp = t_1; elseif (b <= 2.85e-221) tmp = z - (y * z); elseif (b <= 1.1e-21) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x - N[(a * N[(t + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -4.5e+48], t$95$2, If[LessEqual[b, 3.1e-255], t$95$1, If[LessEqual[b, 2.85e-221], N[(z - N[(y * z), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1.1e-21], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x - a \cdot \left(t + -1\right)\\
t_2 := b \cdot \left(\left(y + t\right) - 2\right)\\
\mathbf{if}\;b \leq -4.5 \cdot 10^{+48}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;b \leq 3.1 \cdot 10^{-255}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;b \leq 2.85 \cdot 10^{-221}:\\
\;\;\;\;z - y \cdot z\\
\mathbf{elif}\;b \leq 1.1 \cdot 10^{-21}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if b < -4.49999999999999995e48 or 1.1e-21 < b Initial program 95.1%
Taylor expanded in b around inf 73.5%
if -4.49999999999999995e48 < b < 3.09999999999999997e-255 or 2.8500000000000001e-221 < b < 1.1e-21Initial program 98.6%
Taylor expanded in z around 0 68.7%
Taylor expanded in b around 0 60.4%
if 3.09999999999999997e-255 < b < 2.8500000000000001e-221Initial program 99.7%
Taylor expanded in z around inf 99.7%
sub-neg99.7%
distribute-rgt-in100.0%
*-un-lft-identity100.0%
Applied egg-rr100.0%
Final simplification66.5%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (- 1.0 t))))
(if (or (<= b -1.55e+25) (not (<= b 9.2e-37)))
(+ (+ x (* b (- (+ y t) 2.0))) t_1)
(+ (+ z (- x (* y z))) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (1.0 - t);
double tmp;
if ((b <= -1.55e+25) || !(b <= 9.2e-37)) {
tmp = (x + (b * ((y + t) - 2.0))) + t_1;
} else {
tmp = (z + (x - (y * z))) + 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 = a * (1.0d0 - t)
if ((b <= (-1.55d+25)) .or. (.not. (b <= 9.2d-37))) then
tmp = (x + (b * ((y + t) - 2.0d0))) + t_1
else
tmp = (z + (x - (y * z))) + 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 = a * (1.0 - t);
double tmp;
if ((b <= -1.55e+25) || !(b <= 9.2e-37)) {
tmp = (x + (b * ((y + t) - 2.0))) + t_1;
} else {
tmp = (z + (x - (y * z))) + t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (1.0 - t) tmp = 0 if (b <= -1.55e+25) or not (b <= 9.2e-37): tmp = (x + (b * ((y + t) - 2.0))) + t_1 else: tmp = (z + (x - (y * z))) + t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(a * Float64(1.0 - t)) tmp = 0.0 if ((b <= -1.55e+25) || !(b <= 9.2e-37)) tmp = Float64(Float64(x + Float64(b * Float64(Float64(y + t) - 2.0))) + t_1); else tmp = Float64(Float64(z + Float64(x - Float64(y * z))) + t_1); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = a * (1.0 - t); tmp = 0.0; if ((b <= -1.55e+25) || ~((b <= 9.2e-37))) tmp = (x + (b * ((y + t) - 2.0))) + t_1; else tmp = (z + (x - (y * z))) + t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[b, -1.55e+25], N[Not[LessEqual[b, 9.2e-37]], $MachinePrecision]], N[(N[(x + N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision], N[(N[(z + N[(x - N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(1 - t\right)\\
\mathbf{if}\;b \leq -1.55 \cdot 10^{+25} \lor \neg \left(b \leq 9.2 \cdot 10^{-37}\right):\\
\;\;\;\;\left(x + b \cdot \left(\left(y + t\right) - 2\right)\right) + t_1\\
\mathbf{else}:\\
\;\;\;\;\left(z + \left(x - y \cdot z\right)\right) + t_1\\
\end{array}
\end{array}
if b < -1.5499999999999999e25 or 9.1999999999999999e-37 < b Initial program 95.4%
Taylor expanded in z around 0 91.7%
if -1.5499999999999999e25 < b < 9.1999999999999999e-37Initial program 98.6%
Taylor expanded in y around 0 98.6%
Taylor expanded in b around 0 92.4%
sub-neg92.4%
metadata-eval92.4%
associate--r+92.4%
*-commutative92.4%
cancel-sign-sub-inv92.4%
sub-neg92.4%
mul-1-neg92.4%
unsub-neg92.4%
mul-1-neg92.4%
remove-double-neg92.4%
+-commutative92.4%
distribute-neg-in92.4%
metadata-eval92.4%
sub-neg92.4%
*-commutative92.4%
Simplified92.4%
Final simplification92.1%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (- 1.0 t))))
(if (<= b -1.4e+25)
(+ (+ x (* b (- (+ y t) 2.0))) t_1)
(if (<= b 1.55e-37)
(+ (+ z (- x (* y z))) t_1)
(+ a (+ x (- (* t (- b a)) (* b (- 2.0 y)))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (1.0 - t);
double tmp;
if (b <= -1.4e+25) {
tmp = (x + (b * ((y + t) - 2.0))) + t_1;
} else if (b <= 1.55e-37) {
tmp = (z + (x - (y * z))) + t_1;
} else {
tmp = a + (x + ((t * (b - a)) - (b * (2.0 - y))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = a * (1.0d0 - t)
if (b <= (-1.4d+25)) then
tmp = (x + (b * ((y + t) - 2.0d0))) + t_1
else if (b <= 1.55d-37) then
tmp = (z + (x - (y * z))) + t_1
else
tmp = a + (x + ((t * (b - a)) - (b * (2.0d0 - y))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (1.0 - t);
double tmp;
if (b <= -1.4e+25) {
tmp = (x + (b * ((y + t) - 2.0))) + t_1;
} else if (b <= 1.55e-37) {
tmp = (z + (x - (y * z))) + t_1;
} else {
tmp = a + (x + ((t * (b - a)) - (b * (2.0 - y))));
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (1.0 - t) tmp = 0 if b <= -1.4e+25: tmp = (x + (b * ((y + t) - 2.0))) + t_1 elif b <= 1.55e-37: tmp = (z + (x - (y * z))) + t_1 else: tmp = a + (x + ((t * (b - a)) - (b * (2.0 - y)))) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(a * Float64(1.0 - t)) tmp = 0.0 if (b <= -1.4e+25) tmp = Float64(Float64(x + Float64(b * Float64(Float64(y + t) - 2.0))) + t_1); elseif (b <= 1.55e-37) tmp = Float64(Float64(z + Float64(x - Float64(y * z))) + t_1); else tmp = Float64(a + Float64(x + Float64(Float64(t * Float64(b - a)) - Float64(b * Float64(2.0 - y))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = a * (1.0 - t); tmp = 0.0; if (b <= -1.4e+25) tmp = (x + (b * ((y + t) - 2.0))) + t_1; elseif (b <= 1.55e-37) tmp = (z + (x - (y * z))) + t_1; else tmp = a + (x + ((t * (b - a)) - (b * (2.0 - y)))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -1.4e+25], N[(N[(x + N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision], If[LessEqual[b, 1.55e-37], N[(N[(z + N[(x - N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision], N[(a + N[(x + N[(N[(t * N[(b - a), $MachinePrecision]), $MachinePrecision] - N[(b * N[(2.0 - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(1 - t\right)\\
\mathbf{if}\;b \leq -1.4 \cdot 10^{+25}:\\
\;\;\;\;\left(x + b \cdot \left(\left(y + t\right) - 2\right)\right) + t_1\\
\mathbf{elif}\;b \leq 1.55 \cdot 10^{-37}:\\
\;\;\;\;\left(z + \left(x - y \cdot z\right)\right) + t_1\\
\mathbf{else}:\\
\;\;\;\;a + \left(x + \left(t \cdot \left(b - a\right) - b \cdot \left(2 - y\right)\right)\right)\\
\end{array}
\end{array}
if b < -1.4000000000000001e25Initial program 94.5%
Taylor expanded in z around 0 94.0%
if -1.4000000000000001e25 < b < 1.54999999999999997e-37Initial program 98.6%
Taylor expanded in y around 0 98.6%
Taylor expanded in b around 0 92.4%
sub-neg92.4%
metadata-eval92.4%
associate--r+92.4%
*-commutative92.4%
cancel-sign-sub-inv92.4%
sub-neg92.4%
mul-1-neg92.4%
unsub-neg92.4%
mul-1-neg92.4%
remove-double-neg92.4%
+-commutative92.4%
distribute-neg-in92.4%
metadata-eval92.4%
sub-neg92.4%
*-commutative92.4%
Simplified92.4%
if 1.54999999999999997e-37 < b Initial program 96.4%
Taylor expanded in z around 0 89.5%
Taylor expanded in t around 0 89.6%
Final simplification92.1%
(FPCore (x y z t a b)
:precision binary64
(if (<= x -1.8e+81)
x
(if (<= x 2e-172)
(* t (- a))
(if (<= x 1.25e-95) (* y b) (if (<= x 4.2e+41) (* t b) x)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (x <= -1.8e+81) {
tmp = x;
} else if (x <= 2e-172) {
tmp = t * -a;
} else if (x <= 1.25e-95) {
tmp = y * b;
} else if (x <= 4.2e+41) {
tmp = t * b;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (x <= (-1.8d+81)) then
tmp = x
else if (x <= 2d-172) then
tmp = t * -a
else if (x <= 1.25d-95) then
tmp = y * b
else if (x <= 4.2d+41) then
tmp = t * b
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (x <= -1.8e+81) {
tmp = x;
} else if (x <= 2e-172) {
tmp = t * -a;
} else if (x <= 1.25e-95) {
tmp = y * b;
} else if (x <= 4.2e+41) {
tmp = t * b;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if x <= -1.8e+81: tmp = x elif x <= 2e-172: tmp = t * -a elif x <= 1.25e-95: tmp = y * b elif x <= 4.2e+41: tmp = t * b else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (x <= -1.8e+81) tmp = x; elseif (x <= 2e-172) tmp = Float64(t * Float64(-a)); elseif (x <= 1.25e-95) tmp = Float64(y * b); elseif (x <= 4.2e+41) tmp = Float64(t * b); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (x <= -1.8e+81) tmp = x; elseif (x <= 2e-172) tmp = t * -a; elseif (x <= 1.25e-95) tmp = y * b; elseif (x <= 4.2e+41) tmp = t * b; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[x, -1.8e+81], x, If[LessEqual[x, 2e-172], N[(t * (-a)), $MachinePrecision], If[LessEqual[x, 1.25e-95], N[(y * b), $MachinePrecision], If[LessEqual[x, 4.2e+41], N[(t * b), $MachinePrecision], x]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -1.8 \cdot 10^{+81}:\\
\;\;\;\;x\\
\mathbf{elif}\;x \leq 2 \cdot 10^{-172}:\\
\;\;\;\;t \cdot \left(-a\right)\\
\mathbf{elif}\;x \leq 1.25 \cdot 10^{-95}:\\
\;\;\;\;y \cdot b\\
\mathbf{elif}\;x \leq 4.2 \cdot 10^{+41}:\\
\;\;\;\;t \cdot b\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if x < -1.80000000000000003e81 or 4.1999999999999999e41 < x Initial program 99.0%
Taylor expanded in x around inf 45.6%
if -1.80000000000000003e81 < x < 2.0000000000000001e-172Initial program 96.0%
Taylor expanded in a around inf 33.6%
Taylor expanded in t around inf 23.8%
mul-1-neg23.8%
*-commutative23.8%
distribute-rgt-neg-in23.8%
Simplified23.8%
if 2.0000000000000001e-172 < x < 1.2499999999999999e-95Initial program 95.2%
Taylor expanded in b around inf 58.2%
Taylor expanded in y around inf 39.4%
*-commutative53.5%
Simplified39.4%
if 1.2499999999999999e-95 < x < 4.1999999999999999e41Initial program 96.4%
Taylor expanded in t around inf 54.3%
Taylor expanded in b around inf 36.9%
*-commutative36.9%
Simplified36.9%
Final simplification35.4%
(FPCore (x y z t a b) :precision binary64 (if (or (<= b -3e+48) (not (<= b 1.1e-21))) (+ x (* b (- (+ y t) 2.0))) (+ (+ z (- x (* y z))) (* a (- 1.0 t)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -3e+48) || !(b <= 1.1e-21)) {
tmp = x + (b * ((y + t) - 2.0));
} else {
tmp = (z + (x - (y * z))) + (a * (1.0 - t));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((b <= (-3d+48)) .or. (.not. (b <= 1.1d-21))) then
tmp = x + (b * ((y + t) - 2.0d0))
else
tmp = (z + (x - (y * z))) + (a * (1.0d0 - t))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -3e+48) || !(b <= 1.1e-21)) {
tmp = x + (b * ((y + t) - 2.0));
} else {
tmp = (z + (x - (y * z))) + (a * (1.0 - t));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (b <= -3e+48) or not (b <= 1.1e-21): tmp = x + (b * ((y + t) - 2.0)) else: tmp = (z + (x - (y * z))) + (a * (1.0 - t)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((b <= -3e+48) || !(b <= 1.1e-21)) tmp = Float64(x + Float64(b * Float64(Float64(y + t) - 2.0))); else tmp = Float64(Float64(z + Float64(x - Float64(y * z))) + Float64(a * Float64(1.0 - t))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((b <= -3e+48) || ~((b <= 1.1e-21))) tmp = x + (b * ((y + t) - 2.0)); else tmp = (z + (x - (y * z))) + (a * (1.0 - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[b, -3e+48], N[Not[LessEqual[b, 1.1e-21]], $MachinePrecision]], N[(x + N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(z + N[(x - N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -3 \cdot 10^{+48} \lor \neg \left(b \leq 1.1 \cdot 10^{-21}\right):\\
\;\;\;\;x + b \cdot \left(\left(y + t\right) - 2\right)\\
\mathbf{else}:\\
\;\;\;\;\left(z + \left(x - y \cdot z\right)\right) + a \cdot \left(1 - t\right)\\
\end{array}
\end{array}
if b < -3e48 or 1.1e-21 < b Initial program 95.1%
Taylor expanded in z around 0 92.4%
Taylor expanded in a around 0 83.2%
if -3e48 < b < 1.1e-21Initial program 98.6%
Taylor expanded in y around 0 98.7%
Taylor expanded in b around 0 90.4%
sub-neg90.4%
metadata-eval90.4%
associate--r+90.4%
*-commutative90.4%
cancel-sign-sub-inv90.4%
sub-neg90.4%
mul-1-neg90.4%
unsub-neg90.4%
mul-1-neg90.4%
remove-double-neg90.4%
+-commutative90.4%
distribute-neg-in90.4%
metadata-eval90.4%
sub-neg90.4%
*-commutative90.4%
Simplified90.4%
Final simplification87.5%
(FPCore (x y z t a b) :precision binary64 (+ (+ x (+ (* b (- t 2.0)) (* y (- b z)))) (- z (* a (+ t -1.0)))))
double code(double x, double y, double z, double t, double a, double b) {
return (x + ((b * (t - 2.0)) + (y * (b - z)))) + (z - (a * (t + -1.0)));
}
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 + ((b * (t - 2.0d0)) + (y * (b - z)))) + (z - (a * (t + (-1.0d0))))
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return (x + ((b * (t - 2.0)) + (y * (b - z)))) + (z - (a * (t + -1.0)));
}
def code(x, y, z, t, a, b): return (x + ((b * (t - 2.0)) + (y * (b - z)))) + (z - (a * (t + -1.0)))
function code(x, y, z, t, a, b) return Float64(Float64(x + Float64(Float64(b * Float64(t - 2.0)) + Float64(y * Float64(b - z)))) + Float64(z - Float64(a * Float64(t + -1.0)))) end
function tmp = code(x, y, z, t, a, b) tmp = (x + ((b * (t - 2.0)) + (y * (b - z)))) + (z - (a * (t + -1.0))); end
code[x_, y_, z_, t_, a_, b_] := N[(N[(x + N[(N[(b * N[(t - 2.0), $MachinePrecision]), $MachinePrecision] + N[(y * N[(b - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(z - N[(a * N[(t + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(x + \left(b \cdot \left(t - 2\right) + y \cdot \left(b - z\right)\right)\right) + \left(z - a \cdot \left(t + -1\right)\right)
\end{array}
Initial program 97.2%
Taylor expanded in y around 0 97.6%
Final simplification97.6%
(FPCore (x y z t a b) :precision binary64 (if (or (<= b -5.4e+47) (not (<= b 6e-22))) (+ x (* b (- (+ y t) 2.0))) (+ (+ x z) (* a (- 1.0 t)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -5.4e+47) || !(b <= 6e-22)) {
tmp = x + (b * ((y + t) - 2.0));
} else {
tmp = (x + z) + (a * (1.0 - t));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((b <= (-5.4d+47)) .or. (.not. (b <= 6d-22))) then
tmp = x + (b * ((y + t) - 2.0d0))
else
tmp = (x + z) + (a * (1.0d0 - t))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -5.4e+47) || !(b <= 6e-22)) {
tmp = x + (b * ((y + t) - 2.0));
} else {
tmp = (x + z) + (a * (1.0 - t));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (b <= -5.4e+47) or not (b <= 6e-22): tmp = x + (b * ((y + t) - 2.0)) else: tmp = (x + z) + (a * (1.0 - t)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((b <= -5.4e+47) || !(b <= 6e-22)) tmp = Float64(x + Float64(b * Float64(Float64(y + t) - 2.0))); else tmp = Float64(Float64(x + z) + Float64(a * Float64(1.0 - t))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((b <= -5.4e+47) || ~((b <= 6e-22))) tmp = x + (b * ((y + t) - 2.0)); else tmp = (x + z) + (a * (1.0 - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[b, -5.4e+47], N[Not[LessEqual[b, 6e-22]], $MachinePrecision]], N[(x + N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x + z), $MachinePrecision] + N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -5.4 \cdot 10^{+47} \lor \neg \left(b \leq 6 \cdot 10^{-22}\right):\\
\;\;\;\;x + b \cdot \left(\left(y + t\right) - 2\right)\\
\mathbf{else}:\\
\;\;\;\;\left(x + z\right) + a \cdot \left(1 - t\right)\\
\end{array}
\end{array}
if b < -5.39999999999999991e47 or 5.9999999999999998e-22 < b Initial program 95.1%
Taylor expanded in z around 0 92.4%
Taylor expanded in a around 0 83.2%
if -5.39999999999999991e47 < b < 5.9999999999999998e-22Initial program 98.6%
Taylor expanded in y around 0 98.7%
Taylor expanded in b around 0 90.4%
sub-neg90.4%
metadata-eval90.4%
associate--r+90.4%
*-commutative90.4%
cancel-sign-sub-inv90.4%
sub-neg90.4%
mul-1-neg90.4%
unsub-neg90.4%
mul-1-neg90.4%
remove-double-neg90.4%
+-commutative90.4%
distribute-neg-in90.4%
metadata-eval90.4%
sub-neg90.4%
*-commutative90.4%
Simplified90.4%
Taylor expanded in y around 0 72.2%
associate-+r+72.2%
+-commutative72.2%
Simplified72.2%
Final simplification76.6%
(FPCore (x y z t a b) :precision binary64 (if (or (<= t -2.8e+74) (not (<= t 1.45e+63))) (* t (- b a)) (- x (* b (- 2.0 y)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((t <= -2.8e+74) || !(t <= 1.45e+63)) {
tmp = t * (b - a);
} else {
tmp = x - (b * (2.0 - 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 ((t <= (-2.8d+74)) .or. (.not. (t <= 1.45d+63))) then
tmp = t * (b - a)
else
tmp = x - (b * (2.0d0 - 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 ((t <= -2.8e+74) || !(t <= 1.45e+63)) {
tmp = t * (b - a);
} else {
tmp = x - (b * (2.0 - y));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (t <= -2.8e+74) or not (t <= 1.45e+63): tmp = t * (b - a) else: tmp = x - (b * (2.0 - y)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((t <= -2.8e+74) || !(t <= 1.45e+63)) tmp = Float64(t * Float64(b - a)); else tmp = Float64(x - Float64(b * Float64(2.0 - y))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((t <= -2.8e+74) || ~((t <= 1.45e+63))) tmp = t * (b - a); else tmp = x - (b * (2.0 - y)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[t, -2.8e+74], N[Not[LessEqual[t, 1.45e+63]], $MachinePrecision]], N[(t * N[(b - a), $MachinePrecision]), $MachinePrecision], N[(x - N[(b * N[(2.0 - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -2.8 \cdot 10^{+74} \lor \neg \left(t \leq 1.45 \cdot 10^{+63}\right):\\
\;\;\;\;t \cdot \left(b - a\right)\\
\mathbf{else}:\\
\;\;\;\;x - b \cdot \left(2 - y\right)\\
\end{array}
\end{array}
if t < -2.80000000000000002e74 or 1.45e63 < t Initial program 97.0%
Taylor expanded in t around inf 66.3%
if -2.80000000000000002e74 < t < 1.45e63Initial program 97.4%
Taylor expanded in z around 0 73.4%
Taylor expanded in a around 0 57.3%
Taylor expanded in t around 0 54.2%
Final simplification59.0%
(FPCore (x y z t a b) :precision binary64 (if (or (<= b -7e+102) (not (<= b 1.85e-41))) (* t b) x))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -7e+102) || !(b <= 1.85e-41)) {
tmp = t * b;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((b <= (-7d+102)) .or. (.not. (b <= 1.85d-41))) then
tmp = t * b
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -7e+102) || !(b <= 1.85e-41)) {
tmp = t * b;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (b <= -7e+102) or not (b <= 1.85e-41): tmp = t * b else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((b <= -7e+102) || !(b <= 1.85e-41)) tmp = Float64(t * b); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((b <= -7e+102) || ~((b <= 1.85e-41))) tmp = t * b; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[b, -7e+102], N[Not[LessEqual[b, 1.85e-41]], $MachinePrecision]], N[(t * b), $MachinePrecision], x]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -7 \cdot 10^{+102} \lor \neg \left(b \leq 1.85 \cdot 10^{-41}\right):\\
\;\;\;\;t \cdot b\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if b < -7.00000000000000021e102 or 1.8500000000000001e-41 < b Initial program 94.7%
Taylor expanded in t around inf 38.0%
Taylor expanded in b around inf 32.7%
*-commutative32.7%
Simplified32.7%
if -7.00000000000000021e102 < b < 1.8500000000000001e-41Initial program 98.7%
Taylor expanded in x around inf 27.8%
Final simplification29.6%
(FPCore (x y z t a b) :precision binary64 (if (<= a -1.6e+192) a (if (<= a 8.2e+154) x a)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (a <= -1.6e+192) {
tmp = a;
} else if (a <= 8.2e+154) {
tmp = x;
} else {
tmp = a;
}
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 (a <= (-1.6d+192)) then
tmp = a
else if (a <= 8.2d+154) then
tmp = x
else
tmp = a
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 (a <= -1.6e+192) {
tmp = a;
} else if (a <= 8.2e+154) {
tmp = x;
} else {
tmp = a;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if a <= -1.6e+192: tmp = a elif a <= 8.2e+154: tmp = x else: tmp = a return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (a <= -1.6e+192) tmp = a; elseif (a <= 8.2e+154) tmp = x; else tmp = a; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (a <= -1.6e+192) tmp = a; elseif (a <= 8.2e+154) tmp = x; else tmp = a; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[a, -1.6e+192], a, If[LessEqual[a, 8.2e+154], x, a]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -1.6 \cdot 10^{+192}:\\
\;\;\;\;a\\
\mathbf{elif}\;a \leq 8.2 \cdot 10^{+154}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;a\\
\end{array}
\end{array}
if a < -1.60000000000000012e192 or 8.2e154 < a Initial program 96.1%
Taylor expanded in a around inf 74.9%
Taylor expanded in t around 0 38.1%
if -1.60000000000000012e192 < a < 8.2e154Initial program 97.5%
Taylor expanded in x around inf 24.4%
Final simplification27.3%
(FPCore (x y z t a b) :precision binary64 (if (<= z -8.6e+88) z x))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -8.6e+88) {
tmp = z;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (z <= (-8.6d+88)) then
tmp = z
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -8.6e+88) {
tmp = z;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if z <= -8.6e+88: tmp = z else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (z <= -8.6e+88) tmp = z; else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (z <= -8.6e+88) tmp = z; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -8.6e+88], z, x]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -8.6 \cdot 10^{+88}:\\
\;\;\;\;z\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if z < -8.59999999999999947e88Initial program 91.8%
Taylor expanded in z around inf 54.3%
Taylor expanded in y around 0 30.6%
if -8.59999999999999947e88 < z Initial program 98.5%
Taylor expanded in x around inf 24.6%
Final simplification25.7%
(FPCore (x y z t a b) :precision binary64 a)
double code(double x, double y, double z, double t, double a, double b) {
return a;
}
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 = a
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return a;
}
def code(x, y, z, t, a, b): return a
function code(x, y, z, t, a, b) return a end
function tmp = code(x, y, z, t, a, b) tmp = a; end
code[x_, y_, z_, t_, a_, b_] := a
\begin{array}{l}
\\
a
\end{array}
Initial program 97.2%
Taylor expanded in a around inf 26.7%
Taylor expanded in t around 0 10.1%
Final simplification10.1%
herbie shell --seed 2024018
(FPCore (x y z t a b)
:name "Statistics.Distribution.Beta:$centropy from math-functions-0.1.5.2"
:precision binary64
(+ (- (- x (* (- y 1.0) z)) (* (- t 1.0) a)) (* (- (+ y t) 2.0) b)))