
(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 23 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 (* b (- (+ y t) 2.0))))
(if (<= (+ (+ (- x (* (+ y -1.0) z)) t_1) t_2) INFINITY)
(+ (+ x (+ t_2 (* z (- 1.0 y)))) t_1)
(* t (- b a)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (1.0 - t);
double t_2 = b * ((y + t) - 2.0);
double tmp;
if ((((x - ((y + -1.0) * z)) + t_1) + t_2) <= ((double) INFINITY)) {
tmp = (x + (t_2 + (z * (1.0 - y)))) + t_1;
} else {
tmp = t * (b - a);
}
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 = b * ((y + t) - 2.0);
double tmp;
if ((((x - ((y + -1.0) * z)) + t_1) + t_2) <= Double.POSITIVE_INFINITY) {
tmp = (x + (t_2 + (z * (1.0 - y)))) + t_1;
} else {
tmp = t * (b - a);
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (1.0 - t) t_2 = b * ((y + t) - 2.0) tmp = 0 if (((x - ((y + -1.0) * z)) + t_1) + t_2) <= math.inf: tmp = (x + (t_2 + (z * (1.0 - y)))) + t_1 else: tmp = t * (b - a) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(a * Float64(1.0 - t)) t_2 = Float64(b * Float64(Float64(y + t) - 2.0)) tmp = 0.0 if (Float64(Float64(Float64(x - Float64(Float64(y + -1.0) * z)) + t_1) + t_2) <= Inf) tmp = Float64(Float64(x + Float64(t_2 + Float64(z * Float64(1.0 - y)))) + t_1); else tmp = Float64(t * Float64(b - a)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = a * (1.0 - t); t_2 = b * ((y + t) - 2.0); tmp = 0.0; if ((((x - ((y + -1.0) * z)) + t_1) + t_2) <= Inf) tmp = (x + (t_2 + (z * (1.0 - y)))) + t_1; else tmp = t * (b - a); 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[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(N[(N[(x - N[(N[(y + -1.0), $MachinePrecision] * z), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision] + t$95$2), $MachinePrecision], Infinity], N[(N[(x + N[(t$95$2 + N[(z * N[(1.0 - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision], N[(t * N[(b - a), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(1 - t\right)\\
t_2 := b \cdot \left(\left(y + t\right) - 2\right)\\
\mathbf{if}\;\left(\left(x - \left(y + -1\right) \cdot z\right) + t\_1\right) + t\_2 \leq \infty:\\
\;\;\;\;\left(x + \left(t\_2 + z \cdot \left(1 - y\right)\right)\right) + t\_1\\
\mathbf{else}:\\
\;\;\;\;t \cdot \left(b - a\right)\\
\end{array}
\end{array}
if (+.f64 (-.f64 (-.f64 x (*.f64 (-.f64 y #s(literal 1 binary64)) z)) (*.f64 (-.f64 t #s(literal 1 binary64)) a)) (*.f64 (-.f64 (+.f64 y t) #s(literal 2 binary64)) b)) < +inf.0Initial program 100.0%
Taylor expanded in z around 0 100.0%
if +inf.0 < (+.f64 (-.f64 (-.f64 x (*.f64 (-.f64 y #s(literal 1 binary64)) z)) (*.f64 (-.f64 t #s(literal 1 binary64)) a)) (*.f64 (-.f64 (+.f64 y t) #s(literal 2 binary64)) b)) Initial program 0.0%
Taylor expanded in t around inf 66.7%
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.6%
+-commutative97.6%
fma-define98.4%
associate--l+98.4%
sub-neg98.4%
metadata-eval98.4%
sub-neg98.4%
associate-+l-98.4%
fmm-def98.8%
sub-neg98.8%
metadata-eval98.8%
remove-double-neg98.8%
sub-neg98.8%
metadata-eval98.8%
Simplified98.8%
Final simplification98.8%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1
(+ (+ (- x (* (+ y -1.0) z)) (* a (- 1.0 t))) (* b (- (+ y t) 2.0)))))
(if (<= t_1 INFINITY) t_1 (* t (- b a)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = ((x - ((y + -1.0) * z)) + (a * (1.0 - t))) + (b * ((y + t) - 2.0));
double tmp;
if (t_1 <= ((double) INFINITY)) {
tmp = t_1;
} else {
tmp = t * (b - a);
}
return tmp;
}
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = ((x - ((y + -1.0) * z)) + (a * (1.0 - t))) + (b * ((y + t) - 2.0));
double tmp;
if (t_1 <= Double.POSITIVE_INFINITY) {
tmp = t_1;
} else {
tmp = t * (b - a);
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = ((x - ((y + -1.0) * z)) + (a * (1.0 - t))) + (b * ((y + t) - 2.0)) tmp = 0 if t_1 <= math.inf: tmp = t_1 else: tmp = t * (b - a) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(Float64(x - Float64(Float64(y + -1.0) * z)) + Float64(a * Float64(1.0 - t))) + Float64(b * Float64(Float64(y + t) - 2.0))) tmp = 0.0 if (t_1 <= Inf) tmp = t_1; else tmp = Float64(t * Float64(b - a)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = ((x - ((y + -1.0) * z)) + (a * (1.0 - t))) + (b * ((y + t) - 2.0)); tmp = 0.0; if (t_1 <= Inf) tmp = t_1; else tmp = t * (b - a); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(N[(x - N[(N[(y + -1.0), $MachinePrecision] * z), $MachinePrecision]), $MachinePrecision] + N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, Infinity], t$95$1, N[(t * N[(b - a), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(\left(x - \left(y + -1\right) \cdot z\right) + a \cdot \left(1 - t\right)\right) + b \cdot \left(\left(y + t\right) - 2\right)\\
\mathbf{if}\;t\_1 \leq \infty:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t \cdot \left(b - a\right)\\
\end{array}
\end{array}
if (+.f64 (-.f64 (-.f64 x (*.f64 (-.f64 y #s(literal 1 binary64)) z)) (*.f64 (-.f64 t #s(literal 1 binary64)) a)) (*.f64 (-.f64 (+.f64 y t) #s(literal 2 binary64)) b)) < +inf.0Initial program 100.0%
if +inf.0 < (+.f64 (-.f64 (-.f64 x (*.f64 (-.f64 y #s(literal 1 binary64)) z)) (*.f64 (-.f64 t #s(literal 1 binary64)) a)) (*.f64 (-.f64 (+.f64 y t) #s(literal 2 binary64)) b)) Initial program 0.0%
Taylor expanded in t around inf 66.7%
Final simplification99.2%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (- 1.0 t))))
(if (or (<= y -2.45e+58) (not (<= y 5.4e-31)))
(+ (+ x (* y (- b z))) t_1)
(+ (+ (+ x z) (* (+ t -2.0) 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 tmp;
if ((y <= -2.45e+58) || !(y <= 5.4e-31)) {
tmp = (x + (y * (b - z))) + t_1;
} else {
tmp = ((x + z) + ((t + -2.0) * b)) + 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 ((y <= (-2.45d+58)) .or. (.not. (y <= 5.4d-31))) then
tmp = (x + (y * (b - z))) + t_1
else
tmp = ((x + z) + ((t + (-2.0d0)) * b)) + 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 ((y <= -2.45e+58) || !(y <= 5.4e-31)) {
tmp = (x + (y * (b - z))) + t_1;
} else {
tmp = ((x + z) + ((t + -2.0) * b)) + t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (1.0 - t) tmp = 0 if (y <= -2.45e+58) or not (y <= 5.4e-31): tmp = (x + (y * (b - z))) + t_1 else: tmp = ((x + z) + ((t + -2.0) * b)) + t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(a * Float64(1.0 - t)) tmp = 0.0 if ((y <= -2.45e+58) || !(y <= 5.4e-31)) tmp = Float64(Float64(x + Float64(y * Float64(b - z))) + t_1); else tmp = Float64(Float64(Float64(x + z) + Float64(Float64(t + -2.0) * b)) + 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 ((y <= -2.45e+58) || ~((y <= 5.4e-31))) tmp = (x + (y * (b - z))) + t_1; else tmp = ((x + z) + ((t + -2.0) * 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]}, If[Or[LessEqual[y, -2.45e+58], N[Not[LessEqual[y, 5.4e-31]], $MachinePrecision]], N[(N[(x + N[(y * N[(b - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision], N[(N[(N[(x + z), $MachinePrecision] + N[(N[(t + -2.0), $MachinePrecision] * b), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(1 - t\right)\\
\mathbf{if}\;y \leq -2.45 \cdot 10^{+58} \lor \neg \left(y \leq 5.4 \cdot 10^{-31}\right):\\
\;\;\;\;\left(x + y \cdot \left(b - z\right)\right) + t\_1\\
\mathbf{else}:\\
\;\;\;\;\left(\left(x + z\right) + \left(t + -2\right) \cdot b\right) + t\_1\\
\end{array}
\end{array}
if y < -2.45000000000000009e58 or 5.40000000000000027e-31 < y Initial program 96.4%
Taylor expanded in z around 0 96.4%
Taylor expanded in y around inf 96.5%
neg-mul-196.5%
unsub-neg96.5%
Simplified96.5%
if -2.45000000000000009e58 < y < 5.40000000000000027e-31Initial program 98.6%
Taylor expanded in z around 0 98.6%
Taylor expanded in y around 0 95.4%
associate-+r+95.4%
sub-neg95.4%
metadata-eval95.4%
sub-neg95.4%
metadata-eval95.4%
Simplified95.4%
Final simplification95.9%
(FPCore (x y z t a b) :precision binary64 (if (or (<= a -2.15e+175) (not (<= a 1.7e+101))) (+ (+ x (* y (- b z))) (* a (- 1.0 t))) (+ (+ x (* b (- (+ y t) 2.0))) (* z (- 1.0 y)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((a <= -2.15e+175) || !(a <= 1.7e+101)) {
tmp = (x + (y * (b - z))) + (a * (1.0 - t));
} else {
tmp = (x + (b * ((y + t) - 2.0))) + (z * (1.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 ((a <= (-2.15d+175)) .or. (.not. (a <= 1.7d+101))) then
tmp = (x + (y * (b - z))) + (a * (1.0d0 - t))
else
tmp = (x + (b * ((y + t) - 2.0d0))) + (z * (1.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 ((a <= -2.15e+175) || !(a <= 1.7e+101)) {
tmp = (x + (y * (b - z))) + (a * (1.0 - t));
} else {
tmp = (x + (b * ((y + t) - 2.0))) + (z * (1.0 - y));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (a <= -2.15e+175) or not (a <= 1.7e+101): tmp = (x + (y * (b - z))) + (a * (1.0 - t)) else: tmp = (x + (b * ((y + t) - 2.0))) + (z * (1.0 - y)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((a <= -2.15e+175) || !(a <= 1.7e+101)) tmp = Float64(Float64(x + Float64(y * Float64(b - z))) + Float64(a * Float64(1.0 - t))); else tmp = Float64(Float64(x + Float64(b * Float64(Float64(y + t) - 2.0))) + Float64(z * Float64(1.0 - y))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((a <= -2.15e+175) || ~((a <= 1.7e+101))) tmp = (x + (y * (b - z))) + (a * (1.0 - t)); else tmp = (x + (b * ((y + t) - 2.0))) + (z * (1.0 - y)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[a, -2.15e+175], N[Not[LessEqual[a, 1.7e+101]], $MachinePrecision]], N[(N[(x + N[(y * N[(b - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x + N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(z * N[(1.0 - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -2.15 \cdot 10^{+175} \lor \neg \left(a \leq 1.7 \cdot 10^{+101}\right):\\
\;\;\;\;\left(x + y \cdot \left(b - z\right)\right) + a \cdot \left(1 - t\right)\\
\mathbf{else}:\\
\;\;\;\;\left(x + b \cdot \left(\left(y + t\right) - 2\right)\right) + z \cdot \left(1 - y\right)\\
\end{array}
\end{array}
if a < -2.14999999999999992e175 or 1.70000000000000009e101 < a Initial program 97.2%
Taylor expanded in z around 0 97.2%
Taylor expanded in y around inf 94.0%
neg-mul-194.0%
unsub-neg94.0%
Simplified94.0%
if -2.14999999999999992e175 < a < 1.70000000000000009e101Initial program 97.8%
Taylor expanded in a around 0 90.2%
Final simplification91.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ x (* b (- (+ y t) 2.0)))))
(if (<= b -5.5e+21)
t_1
(if (<= b 2.1e-28)
(- (+ x a) (* (+ y -1.0) z))
(if (<= b 3.3e+38) (+ x (* a (- 1.0 t))) 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 tmp;
if (b <= -5.5e+21) {
tmp = t_1;
} else if (b <= 2.1e-28) {
tmp = (x + a) - ((y + -1.0) * z);
} else if (b <= 3.3e+38) {
tmp = x + (a * (1.0 - t));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = x + (b * ((y + t) - 2.0d0))
if (b <= (-5.5d+21)) then
tmp = t_1
else if (b <= 2.1d-28) then
tmp = (x + a) - ((y + (-1.0d0)) * z)
else if (b <= 3.3d+38) then
tmp = x + (a * (1.0d0 - t))
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 tmp;
if (b <= -5.5e+21) {
tmp = t_1;
} else if (b <= 2.1e-28) {
tmp = (x + a) - ((y + -1.0) * z);
} else if (b <= 3.3e+38) {
tmp = x + (a * (1.0 - t));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x + (b * ((y + t) - 2.0)) tmp = 0 if b <= -5.5e+21: tmp = t_1 elif b <= 2.1e-28: tmp = (x + a) - ((y + -1.0) * z) elif b <= 3.3e+38: tmp = x + (a * (1.0 - t)) 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))) tmp = 0.0 if (b <= -5.5e+21) tmp = t_1; elseif (b <= 2.1e-28) tmp = Float64(Float64(x + a) - Float64(Float64(y + -1.0) * z)); elseif (b <= 3.3e+38) tmp = Float64(x + Float64(a * Float64(1.0 - t))); 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)); tmp = 0.0; if (b <= -5.5e+21) tmp = t_1; elseif (b <= 2.1e-28) tmp = (x + a) - ((y + -1.0) * z); elseif (b <= 3.3e+38) tmp = x + (a * (1.0 - t)); 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]}, If[LessEqual[b, -5.5e+21], t$95$1, If[LessEqual[b, 2.1e-28], N[(N[(x + a), $MachinePrecision] - N[(N[(y + -1.0), $MachinePrecision] * z), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 3.3e+38], N[(x + N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + b \cdot \left(\left(y + t\right) - 2\right)\\
\mathbf{if}\;b \leq -5.5 \cdot 10^{+21}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 2.1 \cdot 10^{-28}:\\
\;\;\;\;\left(x + a\right) - \left(y + -1\right) \cdot z\\
\mathbf{elif}\;b \leq 3.3 \cdot 10^{+38}:\\
\;\;\;\;x + a \cdot \left(1 - t\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -5.5e21 or 3.2999999999999999e38 < b Initial program 94.5%
Taylor expanded in x around -inf 76.9%
mul-1-neg76.9%
sub-neg76.9%
sub-neg76.9%
metadata-eval76.9%
+-commutative76.9%
sub-neg76.9%
metadata-eval76.9%
associate-/l*74.1%
+-commutative74.1%
metadata-eval74.1%
Simplified74.1%
Taylor expanded in x around inf 79.6%
neg-mul-179.6%
Simplified79.6%
if -5.5e21 < b < 2.10000000000000006e-28Initial program 100.0%
Taylor expanded in b around 0 90.5%
Taylor expanded in t around 0 70.7%
neg-mul-170.7%
associate--r+70.7%
sub-neg70.7%
remove-double-neg70.7%
sub-neg70.7%
metadata-eval70.7%
Simplified70.7%
if 2.10000000000000006e-28 < b < 3.2999999999999999e38Initial program 100.0%
Taylor expanded in b around 0 89.4%
Taylor expanded in a around inf 83.6%
Final simplification75.4%
(FPCore (x y z t a b) :precision binary64 (if (or (<= b -4.3e+22) (not (<= b 1.15e+80))) (+ x (* b (- (+ y t) 2.0))) (+ x (- (* a (- 1.0 t)) (* (+ y -1.0) z)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -4.3e+22) || !(b <= 1.15e+80)) {
tmp = x + (b * ((y + t) - 2.0));
} else {
tmp = x + ((a * (1.0 - t)) - ((y + -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 ((b <= (-4.3d+22)) .or. (.not. (b <= 1.15d+80))) then
tmp = x + (b * ((y + t) - 2.0d0))
else
tmp = x + ((a * (1.0d0 - t)) - ((y + (-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 ((b <= -4.3e+22) || !(b <= 1.15e+80)) {
tmp = x + (b * ((y + t) - 2.0));
} else {
tmp = x + ((a * (1.0 - t)) - ((y + -1.0) * z));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (b <= -4.3e+22) or not (b <= 1.15e+80): tmp = x + (b * ((y + t) - 2.0)) else: tmp = x + ((a * (1.0 - t)) - ((y + -1.0) * z)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((b <= -4.3e+22) || !(b <= 1.15e+80)) tmp = Float64(x + Float64(b * Float64(Float64(y + t) - 2.0))); else tmp = Float64(x + Float64(Float64(a * Float64(1.0 - t)) - Float64(Float64(y + -1.0) * z))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((b <= -4.3e+22) || ~((b <= 1.15e+80))) tmp = x + (b * ((y + t) - 2.0)); else tmp = x + ((a * (1.0 - t)) - ((y + -1.0) * z)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[b, -4.3e+22], N[Not[LessEqual[b, 1.15e+80]], $MachinePrecision]], N[(x + N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision] - N[(N[(y + -1.0), $MachinePrecision] * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -4.3 \cdot 10^{+22} \lor \neg \left(b \leq 1.15 \cdot 10^{+80}\right):\\
\;\;\;\;x + b \cdot \left(\left(y + t\right) - 2\right)\\
\mathbf{else}:\\
\;\;\;\;x + \left(a \cdot \left(1 - t\right) - \left(y + -1\right) \cdot z\right)\\
\end{array}
\end{array}
if b < -4.3000000000000002e22 or 1.15000000000000002e80 < b Initial program 94.0%
Taylor expanded in x around -inf 77.3%
mul-1-neg77.3%
sub-neg77.3%
sub-neg77.3%
metadata-eval77.3%
+-commutative77.3%
sub-neg77.3%
metadata-eval77.3%
associate-/l*74.4%
+-commutative74.4%
metadata-eval74.4%
Simplified74.4%
Taylor expanded in x around inf 82.5%
neg-mul-182.5%
Simplified82.5%
if -4.3000000000000002e22 < b < 1.15000000000000002e80Initial program 100.0%
Taylor expanded in b around 0 88.8%
Final simplification86.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* b (- (+ y t) 2.0))))
(if (<= b -2.6e+63)
t_1
(if (<= b 4.9e-29)
(- (+ x a) (* (+ y -1.0) z))
(if (<= b 1.8e+110) (+ x (* a (- 1.0 t))) 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 tmp;
if (b <= -2.6e+63) {
tmp = t_1;
} else if (b <= 4.9e-29) {
tmp = (x + a) - ((y + -1.0) * z);
} else if (b <= 1.8e+110) {
tmp = x + (a * (1.0 - t));
} 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 = b * ((y + t) - 2.0d0)
if (b <= (-2.6d+63)) then
tmp = t_1
else if (b <= 4.9d-29) then
tmp = (x + a) - ((y + (-1.0d0)) * z)
else if (b <= 1.8d+110) then
tmp = x + (a * (1.0d0 - t))
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 tmp;
if (b <= -2.6e+63) {
tmp = t_1;
} else if (b <= 4.9e-29) {
tmp = (x + a) - ((y + -1.0) * z);
} else if (b <= 1.8e+110) {
tmp = x + (a * (1.0 - t));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = b * ((y + t) - 2.0) tmp = 0 if b <= -2.6e+63: tmp = t_1 elif b <= 4.9e-29: tmp = (x + a) - ((y + -1.0) * z) elif b <= 1.8e+110: tmp = x + (a * (1.0 - t)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(b * Float64(Float64(y + t) - 2.0)) tmp = 0.0 if (b <= -2.6e+63) tmp = t_1; elseif (b <= 4.9e-29) tmp = Float64(Float64(x + a) - Float64(Float64(y + -1.0) * z)); elseif (b <= 1.8e+110) tmp = Float64(x + Float64(a * Float64(1.0 - t))); 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); tmp = 0.0; if (b <= -2.6e+63) tmp = t_1; elseif (b <= 4.9e-29) tmp = (x + a) - ((y + -1.0) * z); elseif (b <= 1.8e+110) tmp = x + (a * (1.0 - t)); 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]}, If[LessEqual[b, -2.6e+63], t$95$1, If[LessEqual[b, 4.9e-29], N[(N[(x + a), $MachinePrecision] - N[(N[(y + -1.0), $MachinePrecision] * z), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1.8e+110], N[(x + N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(\left(y + t\right) - 2\right)\\
\mathbf{if}\;b \leq -2.6 \cdot 10^{+63}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 4.9 \cdot 10^{-29}:\\
\;\;\;\;\left(x + a\right) - \left(y + -1\right) \cdot z\\
\mathbf{elif}\;b \leq 1.8 \cdot 10^{+110}:\\
\;\;\;\;x + a \cdot \left(1 - t\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -2.6000000000000001e63 or 1.7999999999999998e110 < b Initial program 93.8%
Taylor expanded in b around inf 77.3%
if -2.6000000000000001e63 < b < 4.8999999999999998e-29Initial program 99.3%
Taylor expanded in b around 0 87.8%
Taylor expanded in t around 0 69.6%
neg-mul-169.6%
associate--r+69.6%
sub-neg69.6%
remove-double-neg69.6%
sub-neg69.6%
metadata-eval69.6%
Simplified69.6%
if 4.8999999999999998e-29 < b < 1.7999999999999998e110Initial program 100.0%
Taylor expanded in b around 0 74.1%
Taylor expanded in a around inf 65.8%
Final simplification71.5%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* b (- (+ y t) 2.0))))
(if (<= b -3.5e+63)
t_1
(if (<= b 1.65e-28)
(- x (* (+ y -1.0) z))
(if (<= b 1.35e+111) (+ x (* a (- 1.0 t))) 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 tmp;
if (b <= -3.5e+63) {
tmp = t_1;
} else if (b <= 1.65e-28) {
tmp = x - ((y + -1.0) * z);
} else if (b <= 1.35e+111) {
tmp = x + (a * (1.0 - t));
} 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 = b * ((y + t) - 2.0d0)
if (b <= (-3.5d+63)) then
tmp = t_1
else if (b <= 1.65d-28) then
tmp = x - ((y + (-1.0d0)) * z)
else if (b <= 1.35d+111) then
tmp = x + (a * (1.0d0 - t))
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 tmp;
if (b <= -3.5e+63) {
tmp = t_1;
} else if (b <= 1.65e-28) {
tmp = x - ((y + -1.0) * z);
} else if (b <= 1.35e+111) {
tmp = x + (a * (1.0 - t));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = b * ((y + t) - 2.0) tmp = 0 if b <= -3.5e+63: tmp = t_1 elif b <= 1.65e-28: tmp = x - ((y + -1.0) * z) elif b <= 1.35e+111: tmp = x + (a * (1.0 - t)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(b * Float64(Float64(y + t) - 2.0)) tmp = 0.0 if (b <= -3.5e+63) tmp = t_1; elseif (b <= 1.65e-28) tmp = Float64(x - Float64(Float64(y + -1.0) * z)); elseif (b <= 1.35e+111) tmp = Float64(x + Float64(a * Float64(1.0 - t))); 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); tmp = 0.0; if (b <= -3.5e+63) tmp = t_1; elseif (b <= 1.65e-28) tmp = x - ((y + -1.0) * z); elseif (b <= 1.35e+111) tmp = x + (a * (1.0 - t)); 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]}, If[LessEqual[b, -3.5e+63], t$95$1, If[LessEqual[b, 1.65e-28], N[(x - N[(N[(y + -1.0), $MachinePrecision] * z), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1.35e+111], N[(x + N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(\left(y + t\right) - 2\right)\\
\mathbf{if}\;b \leq -3.5 \cdot 10^{+63}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 1.65 \cdot 10^{-28}:\\
\;\;\;\;x - \left(y + -1\right) \cdot z\\
\mathbf{elif}\;b \leq 1.35 \cdot 10^{+111}:\\
\;\;\;\;x + a \cdot \left(1 - t\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -3.50000000000000029e63 or 1.3499999999999999e111 < b Initial program 93.8%
Taylor expanded in b around inf 77.3%
if -3.50000000000000029e63 < b < 1.6500000000000001e-28Initial program 99.3%
Taylor expanded in b around 0 87.8%
Taylor expanded in a around 0 59.7%
if 1.6500000000000001e-28 < b < 1.3499999999999999e111Initial program 100.0%
Taylor expanded in b around 0 74.1%
Taylor expanded in a around inf 65.8%
Final simplification66.1%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* y (- b z))))
(if (<= y -7.5e+72)
t_1
(if (<= y 1.4e-245) (* t (- b a)) (if (<= y 7.5e+47) (+ x a) t_1)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = y * (b - z);
double tmp;
if (y <= -7.5e+72) {
tmp = t_1;
} else if (y <= 1.4e-245) {
tmp = t * (b - a);
} else if (y <= 7.5e+47) {
tmp = x + a;
} 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 = y * (b - z)
if (y <= (-7.5d+72)) then
tmp = t_1
else if (y <= 1.4d-245) then
tmp = t * (b - a)
else if (y <= 7.5d+47) then
tmp = x + a
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 = y * (b - z);
double tmp;
if (y <= -7.5e+72) {
tmp = t_1;
} else if (y <= 1.4e-245) {
tmp = t * (b - a);
} else if (y <= 7.5e+47) {
tmp = x + a;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = y * (b - z) tmp = 0 if y <= -7.5e+72: tmp = t_1 elif y <= 1.4e-245: tmp = t * (b - a) elif y <= 7.5e+47: tmp = x + a else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(y * Float64(b - z)) tmp = 0.0 if (y <= -7.5e+72) tmp = t_1; elseif (y <= 1.4e-245) tmp = Float64(t * Float64(b - a)); elseif (y <= 7.5e+47) tmp = Float64(x + a); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = y * (b - z); tmp = 0.0; if (y <= -7.5e+72) tmp = t_1; elseif (y <= 1.4e-245) tmp = t * (b - a); elseif (y <= 7.5e+47) tmp = x + a; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(y * N[(b - z), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -7.5e+72], t$95$1, If[LessEqual[y, 1.4e-245], N[(t * N[(b - a), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 7.5e+47], N[(x + a), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \left(b - z\right)\\
\mathbf{if}\;y \leq -7.5 \cdot 10^{+72}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 1.4 \cdot 10^{-245}:\\
\;\;\;\;t \cdot \left(b - a\right)\\
\mathbf{elif}\;y \leq 7.5 \cdot 10^{+47}:\\
\;\;\;\;x + a\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -7.50000000000000027e72 or 7.4999999999999999e47 < y Initial program 96.7%
Taylor expanded in y around inf 72.9%
if -7.50000000000000027e72 < y < 1.4000000000000001e-245Initial program 98.0%
Taylor expanded in t around inf 45.2%
if 1.4000000000000001e-245 < y < 7.4999999999999999e47Initial program 98.4%
Taylor expanded in b around 0 80.5%
Taylor expanded in t around 0 62.8%
neg-mul-162.8%
associate--r+62.8%
sub-neg62.8%
remove-double-neg62.8%
sub-neg62.8%
metadata-eval62.8%
Simplified62.8%
Taylor expanded in y around inf 48.8%
Taylor expanded in y around 0 46.0%
Final simplification55.4%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* b (- y 2.0))))
(if (<= b -3.1e+227)
t_1
(if (<= b -1.65e-25)
(* b (- t 2.0))
(if (<= b 2e+88) (* a (- 1.0 t)) t_1)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = b * (y - 2.0);
double tmp;
if (b <= -3.1e+227) {
tmp = t_1;
} else if (b <= -1.65e-25) {
tmp = b * (t - 2.0);
} else if (b <= 2e+88) {
tmp = a * (1.0 - t);
} 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 = b * (y - 2.0d0)
if (b <= (-3.1d+227)) then
tmp = t_1
else if (b <= (-1.65d-25)) then
tmp = b * (t - 2.0d0)
else if (b <= 2d+88) then
tmp = a * (1.0d0 - t)
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 - 2.0);
double tmp;
if (b <= -3.1e+227) {
tmp = t_1;
} else if (b <= -1.65e-25) {
tmp = b * (t - 2.0);
} else if (b <= 2e+88) {
tmp = a * (1.0 - t);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = b * (y - 2.0) tmp = 0 if b <= -3.1e+227: tmp = t_1 elif b <= -1.65e-25: tmp = b * (t - 2.0) elif b <= 2e+88: tmp = a * (1.0 - t) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(b * Float64(y - 2.0)) tmp = 0.0 if (b <= -3.1e+227) tmp = t_1; elseif (b <= -1.65e-25) tmp = Float64(b * Float64(t - 2.0)); elseif (b <= 2e+88) tmp = Float64(a * Float64(1.0 - t)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = b * (y - 2.0); tmp = 0.0; if (b <= -3.1e+227) tmp = t_1; elseif (b <= -1.65e-25) tmp = b * (t - 2.0); elseif (b <= 2e+88) tmp = a * (1.0 - t); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(b * N[(y - 2.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -3.1e+227], t$95$1, If[LessEqual[b, -1.65e-25], N[(b * N[(t - 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 2e+88], N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(y - 2\right)\\
\mathbf{if}\;b \leq -3.1 \cdot 10^{+227}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq -1.65 \cdot 10^{-25}:\\
\;\;\;\;b \cdot \left(t - 2\right)\\
\mathbf{elif}\;b \leq 2 \cdot 10^{+88}:\\
\;\;\;\;a \cdot \left(1 - t\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -3.0999999999999999e227 or 1.99999999999999992e88 < b Initial program 95.0%
Taylor expanded in b around inf 74.5%
Taylor expanded in t around 0 55.3%
if -3.0999999999999999e227 < b < -1.6499999999999999e-25Initial program 93.8%
Taylor expanded in b around inf 60.1%
Taylor expanded in y around 0 52.0%
if -1.6499999999999999e-25 < b < 1.99999999999999992e88Initial program 100.0%
Taylor expanded in a around inf 36.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (- 1.0 t))))
(if (<= a -2.7e+98)
t_1
(if (<= a -8e-250) (* b (- t 2.0)) (if (<= a 1e-73) (* 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 (a <= -2.7e+98) {
tmp = t_1;
} else if (a <= -8e-250) {
tmp = b * (t - 2.0);
} else if (a <= 1e-73) {
tmp = 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 = a * (1.0d0 - t)
if (a <= (-2.7d+98)) then
tmp = t_1
else if (a <= (-8d-250)) then
tmp = b * (t - 2.0d0)
else if (a <= 1d-73) then
tmp = 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 = a * (1.0 - t);
double tmp;
if (a <= -2.7e+98) {
tmp = t_1;
} else if (a <= -8e-250) {
tmp = b * (t - 2.0);
} else if (a <= 1e-73) {
tmp = y * -z;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (1.0 - t) tmp = 0 if a <= -2.7e+98: tmp = t_1 elif a <= -8e-250: tmp = b * (t - 2.0) elif a <= 1e-73: tmp = y * -z 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 <= -2.7e+98) tmp = t_1; elseif (a <= -8e-250) tmp = Float64(b * Float64(t - 2.0)); elseif (a <= 1e-73) tmp = Float64(y * Float64(-z)); 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 <= -2.7e+98) tmp = t_1; elseif (a <= -8e-250) tmp = b * (t - 2.0); elseif (a <= 1e-73) tmp = y * -z; 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, -2.7e+98], t$95$1, If[LessEqual[a, -8e-250], N[(b * N[(t - 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 1e-73], N[(y * (-z)), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(1 - t\right)\\
\mathbf{if}\;a \leq -2.7 \cdot 10^{+98}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq -8 \cdot 10^{-250}:\\
\;\;\;\;b \cdot \left(t - 2\right)\\
\mathbf{elif}\;a \leq 10^{-73}:\\
\;\;\;\;y \cdot \left(-z\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if a < -2.7e98 or 9.99999999999999997e-74 < a Initial program 97.2%
Taylor expanded in a around inf 58.6%
if -2.7e98 < a < -8.0000000000000004e-250Initial program 97.5%
Taylor expanded in b around inf 46.8%
Taylor expanded in y around 0 34.5%
if -8.0000000000000004e-250 < a < 9.99999999999999997e-74Initial program 98.5%
Taylor expanded in z around inf 42.1%
Taylor expanded in y around inf 30.8%
associate-*r*30.8%
neg-mul-130.8%
*-commutative30.8%
Simplified30.8%
Final simplification43.7%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (- 1.0 t))))
(if (<= a -5.1e+125)
t_1
(if (<= a -2.4e-155) (+ x a) (if (<= a 8.2e-74) (* 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 (a <= -5.1e+125) {
tmp = t_1;
} else if (a <= -2.4e-155) {
tmp = x + a;
} else if (a <= 8.2e-74) {
tmp = 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 = a * (1.0d0 - t)
if (a <= (-5.1d+125)) then
tmp = t_1
else if (a <= (-2.4d-155)) then
tmp = x + a
else if (a <= 8.2d-74) then
tmp = 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 = a * (1.0 - t);
double tmp;
if (a <= -5.1e+125) {
tmp = t_1;
} else if (a <= -2.4e-155) {
tmp = x + a;
} else if (a <= 8.2e-74) {
tmp = y * -z;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (1.0 - t) tmp = 0 if a <= -5.1e+125: tmp = t_1 elif a <= -2.4e-155: tmp = x + a elif a <= 8.2e-74: tmp = y * -z 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 <= -5.1e+125) tmp = t_1; elseif (a <= -2.4e-155) tmp = Float64(x + a); elseif (a <= 8.2e-74) tmp = Float64(y * Float64(-z)); 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 <= -5.1e+125) tmp = t_1; elseif (a <= -2.4e-155) tmp = x + a; elseif (a <= 8.2e-74) tmp = y * -z; 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, -5.1e+125], t$95$1, If[LessEqual[a, -2.4e-155], N[(x + a), $MachinePrecision], If[LessEqual[a, 8.2e-74], N[(y * (-z)), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(1 - t\right)\\
\mathbf{if}\;a \leq -5.1 \cdot 10^{+125}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq -2.4 \cdot 10^{-155}:\\
\;\;\;\;x + a\\
\mathbf{elif}\;a \leq 8.2 \cdot 10^{-74}:\\
\;\;\;\;y \cdot \left(-z\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if a < -5.0999999999999998e125 or 8.20000000000000063e-74 < a Initial program 97.1%
Taylor expanded in a around inf 59.2%
if -5.0999999999999998e125 < a < -2.4e-155Initial program 98.5%
Taylor expanded in b around 0 62.5%
Taylor expanded in t around 0 56.7%
neg-mul-156.7%
associate--r+56.7%
sub-neg56.7%
remove-double-neg56.7%
sub-neg56.7%
metadata-eval56.7%
Simplified56.7%
Taylor expanded in y around inf 46.5%
Taylor expanded in y around 0 30.0%
if -2.4e-155 < a < 8.20000000000000063e-74Initial program 97.6%
Taylor expanded in z around inf 38.9%
Taylor expanded in y around inf 30.1%
associate-*r*30.1%
neg-mul-130.1%
*-commutative30.1%
Simplified30.1%
Final simplification42.0%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* t (- a))))
(if (<= t -1.1e+107)
t_1
(if (<= t 75000000000000.0) (+ x a) (if (<= t 8.8e+240) t_1 (* t b))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = t * -a;
double tmp;
if (t <= -1.1e+107) {
tmp = t_1;
} else if (t <= 75000000000000.0) {
tmp = x + a;
} else if (t <= 8.8e+240) {
tmp = t_1;
} else {
tmp = t * 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) :: t_1
real(8) :: tmp
t_1 = t * -a
if (t <= (-1.1d+107)) then
tmp = t_1
else if (t <= 75000000000000.0d0) then
tmp = x + a
else if (t <= 8.8d+240) then
tmp = t_1
else
tmp = t * b
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;
double tmp;
if (t <= -1.1e+107) {
tmp = t_1;
} else if (t <= 75000000000000.0) {
tmp = x + a;
} else if (t <= 8.8e+240) {
tmp = t_1;
} else {
tmp = t * b;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = t * -a tmp = 0 if t <= -1.1e+107: tmp = t_1 elif t <= 75000000000000.0: tmp = x + a elif t <= 8.8e+240: tmp = t_1 else: tmp = t * b return tmp
function code(x, y, z, t, a, b) t_1 = Float64(t * Float64(-a)) tmp = 0.0 if (t <= -1.1e+107) tmp = t_1; elseif (t <= 75000000000000.0) tmp = Float64(x + a); elseif (t <= 8.8e+240) tmp = t_1; else tmp = Float64(t * b); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = t * -a; tmp = 0.0; if (t <= -1.1e+107) tmp = t_1; elseif (t <= 75000000000000.0) tmp = x + a; elseif (t <= 8.8e+240) tmp = t_1; else tmp = t * b; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(t * (-a)), $MachinePrecision]}, If[LessEqual[t, -1.1e+107], t$95$1, If[LessEqual[t, 75000000000000.0], N[(x + a), $MachinePrecision], If[LessEqual[t, 8.8e+240], t$95$1, N[(t * b), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t \cdot \left(-a\right)\\
\mathbf{if}\;t \leq -1.1 \cdot 10^{+107}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 75000000000000:\\
\;\;\;\;x + a\\
\mathbf{elif}\;t \leq 8.8 \cdot 10^{+240}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t \cdot b\\
\end{array}
\end{array}
if t < -1.1e107 or 7.5e13 < t < 8.8000000000000006e240Initial program 95.9%
Taylor expanded in t around inf 63.6%
Taylor expanded in b around 0 40.7%
associate-*r*40.7%
neg-mul-140.7%
*-commutative40.7%
Simplified40.7%
if -1.1e107 < t < 7.5e13Initial program 99.3%
Taylor expanded in b around 0 71.5%
Taylor expanded in t around 0 69.3%
neg-mul-169.3%
associate--r+69.3%
sub-neg69.3%
remove-double-neg69.3%
sub-neg69.3%
metadata-eval69.3%
Simplified69.3%
Taylor expanded in y around inf 57.0%
Taylor expanded in y around 0 38.7%
if 8.8000000000000006e240 < t Initial program 93.3%
Taylor expanded in t around inf 82.8%
Taylor expanded in b around inf 70.2%
Final simplification41.3%
(FPCore (x y z t a b) :precision binary64 (if (<= y -4e+73) (* y b) (if (<= y 2e-250) (* t b) (if (<= y 6.5e+47) x (* y b)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -4e+73) {
tmp = y * b;
} else if (y <= 2e-250) {
tmp = t * b;
} else if (y <= 6.5e+47) {
tmp = x;
} else {
tmp = y * 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 <= (-4d+73)) then
tmp = y * b
else if (y <= 2d-250) then
tmp = t * b
else if (y <= 6.5d+47) then
tmp = x
else
tmp = y * 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 <= -4e+73) {
tmp = y * b;
} else if (y <= 2e-250) {
tmp = t * b;
} else if (y <= 6.5e+47) {
tmp = x;
} else {
tmp = y * b;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -4e+73: tmp = y * b elif y <= 2e-250: tmp = t * b elif y <= 6.5e+47: tmp = x else: tmp = y * b return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -4e+73) tmp = Float64(y * b); elseif (y <= 2e-250) tmp = Float64(t * b); elseif (y <= 6.5e+47) tmp = x; else tmp = Float64(y * b); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -4e+73) tmp = y * b; elseif (y <= 2e-250) tmp = t * b; elseif (y <= 6.5e+47) tmp = x; else tmp = y * b; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -4e+73], N[(y * b), $MachinePrecision], If[LessEqual[y, 2e-250], N[(t * b), $MachinePrecision], If[LessEqual[y, 6.5e+47], x, N[(y * b), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -4 \cdot 10^{+73}:\\
\;\;\;\;y \cdot b\\
\mathbf{elif}\;y \leq 2 \cdot 10^{-250}:\\
\;\;\;\;t \cdot b\\
\mathbf{elif}\;y \leq 6.5 \cdot 10^{+47}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;y \cdot b\\
\end{array}
\end{array}
if y < -3.99999999999999993e73 or 6.49999999999999988e47 < y Initial program 96.7%
Taylor expanded in b around inf 42.8%
Taylor expanded in y around inf 38.6%
if -3.99999999999999993e73 < y < 2.0000000000000001e-250Initial program 97.9%
Taylor expanded in t around inf 44.6%
Taylor expanded in b around inf 29.6%
if 2.0000000000000001e-250 < y < 6.49999999999999988e47Initial program 98.5%
Taylor expanded in x around inf 30.6%
Final simplification33.1%
(FPCore (x y z t a b) :precision binary64 (if (or (<= b -2.7e-28) (not (<= b 1.8e+110))) (* b (- (+ y t) 2.0)) (+ x (* a (- 1.0 t)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -2.7e-28) || !(b <= 1.8e+110)) {
tmp = b * ((y + t) - 2.0);
} else {
tmp = x + (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 <= (-2.7d-28)) .or. (.not. (b <= 1.8d+110))) then
tmp = b * ((y + t) - 2.0d0)
else
tmp = x + (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 <= -2.7e-28) || !(b <= 1.8e+110)) {
tmp = b * ((y + t) - 2.0);
} else {
tmp = x + (a * (1.0 - t));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (b <= -2.7e-28) or not (b <= 1.8e+110): tmp = b * ((y + t) - 2.0) else: tmp = x + (a * (1.0 - t)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((b <= -2.7e-28) || !(b <= 1.8e+110)) tmp = Float64(b * Float64(Float64(y + t) - 2.0)); else tmp = Float64(x + 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 <= -2.7e-28) || ~((b <= 1.8e+110))) tmp = b * ((y + t) - 2.0); else tmp = x + (a * (1.0 - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[b, -2.7e-28], N[Not[LessEqual[b, 1.8e+110]], $MachinePrecision]], N[(b * N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision]), $MachinePrecision], N[(x + N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -2.7 \cdot 10^{-28} \lor \neg \left(b \leq 1.8 \cdot 10^{+110}\right):\\
\;\;\;\;b \cdot \left(\left(y + t\right) - 2\right)\\
\mathbf{else}:\\
\;\;\;\;x + a \cdot \left(1 - t\right)\\
\end{array}
\end{array}
if b < -2.6999999999999999e-28 or 1.7999999999999998e110 < b Initial program 94.0%
Taylor expanded in b around inf 69.7%
if -2.6999999999999999e-28 < b < 1.7999999999999998e110Initial program 100.0%
Taylor expanded in b around 0 88.5%
Taylor expanded in a around inf 56.8%
Final simplification61.9%
(FPCore (x y z t a b) :precision binary64 (if (or (<= y -2.8e+42) (not (<= y 2.8e+47))) (* y (- b z)) (+ a (+ x z))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -2.8e+42) || !(y <= 2.8e+47)) {
tmp = y * (b - z);
} else {
tmp = a + (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 ((y <= (-2.8d+42)) .or. (.not. (y <= 2.8d+47))) then
tmp = y * (b - z)
else
tmp = a + (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 ((y <= -2.8e+42) || !(y <= 2.8e+47)) {
tmp = y * (b - z);
} else {
tmp = a + (x + z);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (y <= -2.8e+42) or not (y <= 2.8e+47): tmp = y * (b - z) else: tmp = a + (x + z) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((y <= -2.8e+42) || !(y <= 2.8e+47)) tmp = Float64(y * Float64(b - z)); else tmp = Float64(a + Float64(x + z)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((y <= -2.8e+42) || ~((y <= 2.8e+47))) tmp = y * (b - z); else tmp = a + (x + z); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[y, -2.8e+42], N[Not[LessEqual[y, 2.8e+47]], $MachinePrecision]], N[(y * N[(b - z), $MachinePrecision]), $MachinePrecision], N[(a + N[(x + z), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -2.8 \cdot 10^{+42} \lor \neg \left(y \leq 2.8 \cdot 10^{+47}\right):\\
\;\;\;\;y \cdot \left(b - z\right)\\
\mathbf{else}:\\
\;\;\;\;a + \left(x + z\right)\\
\end{array}
\end{array}
if y < -2.7999999999999999e42 or 2.79999999999999988e47 < y Initial program 96.1%
Taylor expanded in y around inf 69.8%
if -2.7999999999999999e42 < y < 2.79999999999999988e47Initial program 98.7%
Taylor expanded in b around 0 71.9%
Taylor expanded in t around 0 53.9%
neg-mul-153.9%
associate--r+53.9%
sub-neg53.9%
remove-double-neg53.9%
sub-neg53.9%
metadata-eval53.9%
Simplified53.9%
Taylor expanded in y around 0 51.3%
neg-mul-151.3%
associate--l+51.3%
sub-neg51.3%
remove-double-neg51.3%
Simplified51.3%
Final simplification58.7%
(FPCore (x y z t a b) :precision binary64 (if (or (<= t -0.19) (not (<= t 60000000000000.0))) (* t (- b a)) (+ x a)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((t <= -0.19) || !(t <= 60000000000000.0)) {
tmp = t * (b - a);
} else {
tmp = x + 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 ((t <= (-0.19d0)) .or. (.not. (t <= 60000000000000.0d0))) then
tmp = t * (b - a)
else
tmp = x + 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 ((t <= -0.19) || !(t <= 60000000000000.0)) {
tmp = t * (b - a);
} else {
tmp = x + a;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (t <= -0.19) or not (t <= 60000000000000.0): tmp = t * (b - a) else: tmp = x + a return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((t <= -0.19) || !(t <= 60000000000000.0)) tmp = Float64(t * Float64(b - a)); else tmp = Float64(x + a); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((t <= -0.19) || ~((t <= 60000000000000.0))) tmp = t * (b - a); else tmp = x + a; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[t, -0.19], N[Not[LessEqual[t, 60000000000000.0]], $MachinePrecision]], N[(t * N[(b - a), $MachinePrecision]), $MachinePrecision], N[(x + a), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -0.19 \lor \neg \left(t \leq 60000000000000\right):\\
\;\;\;\;t \cdot \left(b - a\right)\\
\mathbf{else}:\\
\;\;\;\;x + a\\
\end{array}
\end{array}
if t < -0.19 or 6e13 < t Initial program 95.6%
Taylor expanded in t around inf 59.2%
if -0.19 < t < 6e13Initial program 100.0%
Taylor expanded in b around 0 74.1%
Taylor expanded in t around 0 73.7%
neg-mul-173.7%
associate--r+73.7%
sub-neg73.7%
remove-double-neg73.7%
sub-neg73.7%
metadata-eval73.7%
Simplified73.7%
Taylor expanded in y around inf 62.5%
Taylor expanded in y around 0 43.2%
Final simplification51.8%
(FPCore (x y z t a b) :precision binary64 (if (or (<= t -1.9e+115) (not (<= t 7.5e+49))) (* t b) (+ x a)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((t <= -1.9e+115) || !(t <= 7.5e+49)) {
tmp = t * b;
} else {
tmp = x + 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 ((t <= (-1.9d+115)) .or. (.not. (t <= 7.5d+49))) then
tmp = t * b
else
tmp = x + 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 ((t <= -1.9e+115) || !(t <= 7.5e+49)) {
tmp = t * b;
} else {
tmp = x + a;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (t <= -1.9e+115) or not (t <= 7.5e+49): tmp = t * b else: tmp = x + a return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((t <= -1.9e+115) || !(t <= 7.5e+49)) tmp = Float64(t * b); else tmp = Float64(x + a); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((t <= -1.9e+115) || ~((t <= 7.5e+49))) tmp = t * b; else tmp = x + a; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[t, -1.9e+115], N[Not[LessEqual[t, 7.5e+49]], $MachinePrecision]], N[(t * b), $MachinePrecision], N[(x + a), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.9 \cdot 10^{+115} \lor \neg \left(t \leq 7.5 \cdot 10^{+49}\right):\\
\;\;\;\;t \cdot b\\
\mathbf{else}:\\
\;\;\;\;x + a\\
\end{array}
\end{array}
if t < -1.9e115 or 7.4999999999999995e49 < t Initial program 95.1%
Taylor expanded in t around inf 69.1%
Taylor expanded in b around inf 36.1%
if -1.9e115 < t < 7.4999999999999995e49Initial program 99.3%
Taylor expanded in b around 0 72.9%
Taylor expanded in t around 0 69.0%
neg-mul-169.0%
associate--r+69.0%
sub-neg69.0%
remove-double-neg69.0%
sub-neg69.0%
metadata-eval69.0%
Simplified69.0%
Taylor expanded in y around inf 56.4%
Taylor expanded in y around 0 37.4%
Final simplification36.9%
(FPCore (x y z t a b) :precision binary64 (if (or (<= y -3.6e+73) (not (<= y 5.6e+47))) (* y b) x))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -3.6e+73) || !(y <= 5.6e+47)) {
tmp = y * b;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((y <= (-3.6d+73)) .or. (.not. (y <= 5.6d+47))) then
tmp = y * b
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -3.6e+73) || !(y <= 5.6e+47)) {
tmp = y * b;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (y <= -3.6e+73) or not (y <= 5.6e+47): tmp = y * b else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((y <= -3.6e+73) || !(y <= 5.6e+47)) tmp = Float64(y * b); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((y <= -3.6e+73) || ~((y <= 5.6e+47))) tmp = y * b; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[y, -3.6e+73], N[Not[LessEqual[y, 5.6e+47]], $MachinePrecision]], N[(y * b), $MachinePrecision], x]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -3.6 \cdot 10^{+73} \lor \neg \left(y \leq 5.6 \cdot 10^{+47}\right):\\
\;\;\;\;y \cdot b\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if y < -3.5999999999999999e73 or 5.59999999999999976e47 < y Initial program 96.7%
Taylor expanded in b around inf 42.8%
Taylor expanded in y around inf 38.6%
if -3.5999999999999999e73 < y < 5.59999999999999976e47Initial program 98.1%
Taylor expanded in x around inf 24.2%
Final simplification29.5%
(FPCore (x y z t a b) :precision binary64 (if (<= x -4.2e+54) x (if (<= x 3.2e+121) z x)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (x <= -4.2e+54) {
tmp = x;
} else if (x <= 3.2e+121) {
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 (x <= (-4.2d+54)) then
tmp = x
else if (x <= 3.2d+121) 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 (x <= -4.2e+54) {
tmp = x;
} else if (x <= 3.2e+121) {
tmp = z;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if x <= -4.2e+54: tmp = x elif x <= 3.2e+121: tmp = z else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (x <= -4.2e+54) tmp = x; elseif (x <= 3.2e+121) tmp = z; else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (x <= -4.2e+54) tmp = x; elseif (x <= 3.2e+121) tmp = z; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[x, -4.2e+54], x, If[LessEqual[x, 3.2e+121], z, x]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -4.2 \cdot 10^{+54}:\\
\;\;\;\;x\\
\mathbf{elif}\;x \leq 3.2 \cdot 10^{+121}:\\
\;\;\;\;z\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if x < -4.19999999999999972e54 or 3.1999999999999999e121 < x Initial program 97.6%
Taylor expanded in x around inf 44.0%
if -4.19999999999999972e54 < x < 3.1999999999999999e121Initial program 97.7%
Taylor expanded in z around inf 32.1%
Taylor expanded in y around 0 13.9%
(FPCore (x y z t a b) :precision binary64 (if (<= x -9500000000.0) x (if (<= x 1.7e+108) a x)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (x <= -9500000000.0) {
tmp = x;
} else if (x <= 1.7e+108) {
tmp = a;
} 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 <= (-9500000000.0d0)) then
tmp = x
else if (x <= 1.7d+108) then
tmp = a
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 <= -9500000000.0) {
tmp = x;
} else if (x <= 1.7e+108) {
tmp = a;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if x <= -9500000000.0: tmp = x elif x <= 1.7e+108: tmp = a else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (x <= -9500000000.0) tmp = x; elseif (x <= 1.7e+108) tmp = a; else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (x <= -9500000000.0) tmp = x; elseif (x <= 1.7e+108) tmp = a; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[x, -9500000000.0], x, If[LessEqual[x, 1.7e+108], a, x]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -9500000000:\\
\;\;\;\;x\\
\mathbf{elif}\;x \leq 1.7 \cdot 10^{+108}:\\
\;\;\;\;a\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if x < -9.5e9 or 1.69999999999999998e108 < x Initial program 96.9%
Taylor expanded in x around inf 40.9%
if -9.5e9 < x < 1.69999999999999998e108Initial program 98.1%
Taylor expanded in a around inf 32.3%
Taylor expanded in t around 0 13.0%
(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.6%
Taylor expanded in a around inf 28.7%
Taylor expanded in t around 0 10.9%
herbie shell --seed 2024170
(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)))