
(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 24 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
(+ (+ (+ x (* z (- 1.0 y))) (* a (- 1.0 t))) (* (- (+ y t) 2.0) b))))
(if (<= t_1 INFINITY) t_1 (* (+ y t) b))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = ((x + (z * (1.0 - y))) + (a * (1.0 - t))) + (((y + t) - 2.0) * b);
double tmp;
if (t_1 <= ((double) INFINITY)) {
tmp = t_1;
} else {
tmp = (y + t) * b;
}
return tmp;
}
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = ((x + (z * (1.0 - y))) + (a * (1.0 - t))) + (((y + t) - 2.0) * b);
double tmp;
if (t_1 <= Double.POSITIVE_INFINITY) {
tmp = t_1;
} else {
tmp = (y + t) * b;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = ((x + (z * (1.0 - y))) + (a * (1.0 - t))) + (((y + t) - 2.0) * b) tmp = 0 if t_1 <= math.inf: tmp = t_1 else: tmp = (y + t) * b return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(Float64(x + Float64(z * Float64(1.0 - y))) + Float64(a * Float64(1.0 - t))) + Float64(Float64(Float64(y + t) - 2.0) * b)) tmp = 0.0 if (t_1 <= Inf) tmp = t_1; else tmp = Float64(Float64(y + t) * b); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = ((x + (z * (1.0 - y))) + (a * (1.0 - t))) + (((y + t) - 2.0) * b); tmp = 0.0; if (t_1 <= Inf) tmp = t_1; else tmp = (y + t) * b; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(N[(x + N[(z * N[(1.0 - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(a * N[(1.0 - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision] * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, Infinity], t$95$1, N[(N[(y + t), $MachinePrecision] * b), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(\left(x + z \cdot \left(1 - y\right)\right) + a \cdot \left(1 - t\right)\right) + \left(\left(y + t\right) - 2\right) \cdot b\\
\mathbf{if}\;t\_1 \leq \infty:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;\left(y + t\right) \cdot b\\
\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 z around 0
Simplified50.0%
Taylor expanded in b around inf
*-lowering-*.f64N/A
+-commutativeN/A
associate-+r-N/A
+-lowering-+.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6466.7
Simplified66.7%
Taylor expanded in t around inf
Simplified66.7%
Final simplification98.4%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ x (fma t b z))) (t_2 (fma a (- 1.0 t) x)))
(if (<= a -2.6e+95)
t_2
(if (<= a -1.25e-67)
t_1
(if (<= a -1e-233) (* (+ y t) b) (if (<= a 1.6e+101) t_1 t_2))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x + fma(t, b, z);
double t_2 = fma(a, (1.0 - t), x);
double tmp;
if (a <= -2.6e+95) {
tmp = t_2;
} else if (a <= -1.25e-67) {
tmp = t_1;
} else if (a <= -1e-233) {
tmp = (y + t) * b;
} else if (a <= 1.6e+101) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = Float64(x + fma(t, b, z)) t_2 = fma(a, Float64(1.0 - t), x) tmp = 0.0 if (a <= -2.6e+95) tmp = t_2; elseif (a <= -1.25e-67) tmp = t_1; elseif (a <= -1e-233) tmp = Float64(Float64(y + t) * b); elseif (a <= 1.6e+101) tmp = t_1; else tmp = t_2; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x + N[(t * b + z), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(a * N[(1.0 - t), $MachinePrecision] + x), $MachinePrecision]}, If[LessEqual[a, -2.6e+95], t$95$2, If[LessEqual[a, -1.25e-67], t$95$1, If[LessEqual[a, -1e-233], N[(N[(y + t), $MachinePrecision] * b), $MachinePrecision], If[LessEqual[a, 1.6e+101], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \mathsf{fma}\left(t, b, z\right)\\
t_2 := \mathsf{fma}\left(a, 1 - t, x\right)\\
\mathbf{if}\;a \leq -2.6 \cdot 10^{+95}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;a \leq -1.25 \cdot 10^{-67}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq -1 \cdot 10^{-233}:\\
\;\;\;\;\left(y + t\right) \cdot b\\
\mathbf{elif}\;a \leq 1.6 \cdot 10^{+101}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if a < -2.5999999999999999e95 or 1.60000000000000003e101 < a Initial program 95.6%
Taylor expanded in z around 0
Simplified85.2%
Taylor expanded in b around 0
+-commutativeN/A
associate-+r+N/A
*-rgt-identityN/A
mul-1-negN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
distribute-lft-inN/A
accelerator-lowering-fma.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f6470.1
Simplified70.1%
if -2.5999999999999999e95 < a < -1.25e-67 or -9.99999999999999958e-234 < a < 1.60000000000000003e101Initial program 95.7%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6474.8
Simplified74.8%
Taylor expanded in t around inf
Simplified64.6%
Taylor expanded in a around 0
+-commutativeN/A
+-lowering-+.f64N/A
+-commutativeN/A
*-commutativeN/A
accelerator-lowering-fma.f6460.8
Simplified60.8%
if -1.25e-67 < a < -9.99999999999999958e-234Initial program 91.6%
Taylor expanded in z around 0
Simplified87.8%
Taylor expanded in b around inf
*-lowering-*.f64N/A
+-commutativeN/A
associate-+r-N/A
+-lowering-+.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6475.8
Simplified75.8%
Taylor expanded in t around inf
Simplified67.8%
Final simplification64.8%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ x (fma t b z))))
(if (<= a -2.8e+95)
(- a (* t a))
(if (<= a -3.4e-66)
t_1
(if (<= a -1.85e-230)
(* (+ y t) b)
(if (<= a 1.95e+173) t_1 (fma (- t) a a)))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x + fma(t, b, z);
double tmp;
if (a <= -2.8e+95) {
tmp = a - (t * a);
} else if (a <= -3.4e-66) {
tmp = t_1;
} else if (a <= -1.85e-230) {
tmp = (y + t) * b;
} else if (a <= 1.95e+173) {
tmp = t_1;
} else {
tmp = fma(-t, a, a);
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = Float64(x + fma(t, b, z)) tmp = 0.0 if (a <= -2.8e+95) tmp = Float64(a - Float64(t * a)); elseif (a <= -3.4e-66) tmp = t_1; elseif (a <= -1.85e-230) tmp = Float64(Float64(y + t) * b); elseif (a <= 1.95e+173) tmp = t_1; else tmp = fma(Float64(-t), a, a); end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x + N[(t * b + z), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -2.8e+95], N[(a - N[(t * a), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, -3.4e-66], t$95$1, If[LessEqual[a, -1.85e-230], N[(N[(y + t), $MachinePrecision] * b), $MachinePrecision], If[LessEqual[a, 1.95e+173], t$95$1, N[((-t) * a + a), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \mathsf{fma}\left(t, b, z\right)\\
\mathbf{if}\;a \leq -2.8 \cdot 10^{+95}:\\
\;\;\;\;a - t \cdot a\\
\mathbf{elif}\;a \leq -3.4 \cdot 10^{-66}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq -1.85 \cdot 10^{-230}:\\
\;\;\;\;\left(y + t\right) \cdot b\\
\mathbf{elif}\;a \leq 1.95 \cdot 10^{+173}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(-t, a, a\right)\\
\end{array}
\end{array}
if a < -2.7999999999999998e95Initial program 95.5%
Taylor expanded in a around inf
sub-negN/A
neg-mul-1N/A
distribute-rgt-inN/A
*-lft-identityN/A
neg-mul-1N/A
distribute-lft-neg-inN/A
*-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f6466.7
Simplified66.7%
if -2.7999999999999998e95 < a < -3.39999999999999997e-66 or -1.84999999999999991e-230 < a < 1.9499999999999999e173Initial program 96.1%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6474.4
Simplified74.4%
Taylor expanded in t around inf
Simplified65.1%
Taylor expanded in a around 0
+-commutativeN/A
+-lowering-+.f64N/A
+-commutativeN/A
*-commutativeN/A
accelerator-lowering-fma.f6459.7
Simplified59.7%
if -3.39999999999999997e-66 < a < -1.84999999999999991e-230Initial program 91.6%
Taylor expanded in z around 0
Simplified87.8%
Taylor expanded in b around inf
*-lowering-*.f64N/A
+-commutativeN/A
associate-+r-N/A
+-lowering-+.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6475.8
Simplified75.8%
Taylor expanded in t around inf
Simplified67.8%
if 1.9499999999999999e173 < a Initial program 94.1%
Taylor expanded in a around inf
sub-negN/A
neg-mul-1N/A
distribute-rgt-inN/A
*-lft-identityN/A
neg-mul-1N/A
distribute-lft-neg-inN/A
*-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f6472.7
Simplified72.7%
sub-negN/A
+-commutativeN/A
distribute-lft-neg-inN/A
accelerator-lowering-fma.f64N/A
neg-lowering-neg.f6472.7
Applied egg-rr72.7%
Final simplification63.4%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (fma t (- b a) (+ a (fma b (+ y -2.0) x)))))
(if (<= b -3.6e-5)
t_1
(if (<= b 3.2e+63) (fma a (- 1.0 t) (fma z (- 1.0 y) x)) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = fma(t, (b - a), (a + fma(b, (y + -2.0), x)));
double tmp;
if (b <= -3.6e-5) {
tmp = t_1;
} else if (b <= 3.2e+63) {
tmp = fma(a, (1.0 - t), fma(z, (1.0 - y), x));
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = fma(t, Float64(b - a), Float64(a + fma(b, Float64(y + -2.0), x))) tmp = 0.0 if (b <= -3.6e-5) tmp = t_1; elseif (b <= 3.2e+63) tmp = fma(a, Float64(1.0 - t), fma(z, Float64(1.0 - y), x)); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(t * N[(b - a), $MachinePrecision] + N[(a + N[(b * N[(y + -2.0), $MachinePrecision] + x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -3.6e-5], t$95$1, If[LessEqual[b, 3.2e+63], N[(a * N[(1.0 - t), $MachinePrecision] + N[(z * N[(1.0 - y), $MachinePrecision] + x), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(t, b - a, a + \mathsf{fma}\left(b, y + -2, x\right)\right)\\
\mathbf{if}\;b \leq -3.6 \cdot 10^{-5}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 3.2 \cdot 10^{+63}:\\
\;\;\;\;\mathsf{fma}\left(a, 1 - t, \mathsf{fma}\left(z, 1 - y, x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -3.60000000000000009e-5 or 3.20000000000000011e63 < b Initial program 91.3%
Taylor expanded in z around 0
Simplified86.8%
if -3.60000000000000009e-5 < b < 3.20000000000000011e63Initial program 99.2%
Taylor expanded in b around 0
associate--r+N/A
sub-negN/A
+-commutativeN/A
associate-+r-N/A
distribute-rgt-neg-inN/A
mul-1-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f64N/A
sub-negN/A
+-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
accelerator-lowering-fma.f64N/A
Simplified92.8%
Final simplification89.8%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ x (* (- (+ y t) 2.0) b))))
(if (<= b -1.65e+127)
t_1
(if (<= b 3.7e+95) (fma a (- 1.0 t) (fma z (- 1.0 y) x)) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x + (((y + t) - 2.0) * b);
double tmp;
if (b <= -1.65e+127) {
tmp = t_1;
} else if (b <= 3.7e+95) {
tmp = fma(a, (1.0 - t), fma(z, (1.0 - y), x));
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = Float64(x + Float64(Float64(Float64(y + t) - 2.0) * b)) tmp = 0.0 if (b <= -1.65e+127) tmp = t_1; elseif (b <= 3.7e+95) tmp = fma(a, Float64(1.0 - t), fma(z, Float64(1.0 - y), x)); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x + N[(N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision] * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -1.65e+127], t$95$1, If[LessEqual[b, 3.7e+95], N[(a * N[(1.0 - t), $MachinePrecision] + N[(z * N[(1.0 - y), $MachinePrecision] + x), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \left(\left(y + t\right) - 2\right) \cdot b\\
\mathbf{if}\;b \leq -1.65 \cdot 10^{+127}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 3.7 \cdot 10^{+95}:\\
\;\;\;\;\mathsf{fma}\left(a, 1 - t, \mathsf{fma}\left(z, 1 - y, x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -1.64999999999999988e127 or 3.7000000000000001e95 < b Initial program 91.4%
Taylor expanded in x around inf
Simplified88.6%
if -1.64999999999999988e127 < b < 3.7000000000000001e95Initial program 98.0%
Taylor expanded in b around 0
associate--r+N/A
sub-negN/A
+-commutativeN/A
associate-+r-N/A
distribute-rgt-neg-inN/A
mul-1-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f64N/A
sub-negN/A
+-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
accelerator-lowering-fma.f64N/A
Simplified89.8%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ x (* (- (+ y t) 2.0) b))))
(if (<= b -3.9e+127)
t_1
(if (<= b 1.45e+95) (+ x (fma b t (fma a (- 1.0 t) z))) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x + (((y + t) - 2.0) * b);
double tmp;
if (b <= -3.9e+127) {
tmp = t_1;
} else if (b <= 1.45e+95) {
tmp = x + fma(b, t, fma(a, (1.0 - t), z));
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = Float64(x + Float64(Float64(Float64(y + t) - 2.0) * b)) tmp = 0.0 if (b <= -3.9e+127) tmp = t_1; elseif (b <= 1.45e+95) tmp = Float64(x + fma(b, t, fma(a, Float64(1.0 - t), z))); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x + N[(N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision] * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -3.9e+127], t$95$1, If[LessEqual[b, 1.45e+95], N[(x + N[(b * t + N[(a * N[(1.0 - t), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \left(\left(y + t\right) - 2\right) \cdot b\\
\mathbf{if}\;b \leq -3.9 \cdot 10^{+127}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 1.45 \cdot 10^{+95}:\\
\;\;\;\;x + \mathsf{fma}\left(b, t, \mathsf{fma}\left(a, 1 - t, z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -3.89999999999999981e127 or 1.45000000000000007e95 < b Initial program 91.4%
Taylor expanded in x around inf
Simplified88.6%
if -3.89999999999999981e127 < b < 1.45000000000000007e95Initial program 98.0%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6478.2
Simplified78.2%
Taylor expanded in t around inf
Simplified77.0%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (fma t (- b a) x)))
(if (<= t -1450000000000.0)
t_1
(if (<= t 7e-46)
(fma b (+ y -2.0) x)
(if (<= t 3.4) (+ z (+ x a)) t_1)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = fma(t, (b - a), x);
double tmp;
if (t <= -1450000000000.0) {
tmp = t_1;
} else if (t <= 7e-46) {
tmp = fma(b, (y + -2.0), x);
} else if (t <= 3.4) {
tmp = z + (x + a);
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = fma(t, Float64(b - a), x) tmp = 0.0 if (t <= -1450000000000.0) tmp = t_1; elseif (t <= 7e-46) tmp = fma(b, Float64(y + -2.0), x); elseif (t <= 3.4) tmp = Float64(z + Float64(x + a)); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(t * N[(b - a), $MachinePrecision] + x), $MachinePrecision]}, If[LessEqual[t, -1450000000000.0], t$95$1, If[LessEqual[t, 7e-46], N[(b * N[(y + -2.0), $MachinePrecision] + x), $MachinePrecision], If[LessEqual[t, 3.4], N[(z + N[(x + a), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(t, b - a, x\right)\\
\mathbf{if}\;t \leq -1450000000000:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 7 \cdot 10^{-46}:\\
\;\;\;\;\mathsf{fma}\left(b, y + -2, x\right)\\
\mathbf{elif}\;t \leq 3.4:\\
\;\;\;\;z + \left(x + a\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if t < -1.45e12 or 3.39999999999999991 < t Initial program 94.0%
Taylor expanded in z around 0
Simplified78.0%
Taylor expanded in x around inf
Simplified80.3%
if -1.45e12 < t < 7.0000000000000004e-46Initial program 96.9%
Taylor expanded in x around inf
Simplified58.0%
Taylor expanded in t around 0
+-commutativeN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6457.7
Simplified57.7%
if 7.0000000000000004e-46 < t < 3.39999999999999991Initial program 89.8%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6480.3
Simplified80.3%
Taylor expanded in t around inf
Simplified80.9%
Taylor expanded in t around 0
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
+-lowering-+.f6467.1
Simplified67.1%
Final simplification68.4%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* t (- b a))))
(if (<= t -6.3e+41)
t_1
(if (<= t 1.05e-45)
(fma b (+ y -2.0) x)
(if (<= t 1.75e+86) (+ x (fma t b z)) 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.3e+41) {
tmp = t_1;
} else if (t <= 1.05e-45) {
tmp = fma(b, (y + -2.0), x);
} else if (t <= 1.75e+86) {
tmp = x + fma(t, b, z);
} 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.3e+41) tmp = t_1; elseif (t <= 1.05e-45) tmp = fma(b, Float64(y + -2.0), x); elseif (t <= 1.75e+86) tmp = Float64(x + fma(t, b, z)); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(t * N[(b - a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -6.3e+41], t$95$1, If[LessEqual[t, 1.05e-45], N[(b * N[(y + -2.0), $MachinePrecision] + x), $MachinePrecision], If[LessEqual[t, 1.75e+86], N[(x + N[(t * b + z), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t \cdot \left(b - a\right)\\
\mathbf{if}\;t \leq -6.3 \cdot 10^{+41}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 1.05 \cdot 10^{-45}:\\
\;\;\;\;\mathsf{fma}\left(b, y + -2, x\right)\\
\mathbf{elif}\;t \leq 1.75 \cdot 10^{+86}:\\
\;\;\;\;x + \mathsf{fma}\left(t, b, z\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if t < -6.2999999999999999e41 or 1.75000000000000009e86 < t Initial program 92.5%
Taylor expanded in t around inf
*-lowering-*.f64N/A
--lowering--.f6481.6
Simplified81.6%
if -6.2999999999999999e41 < t < 1.04999999999999998e-45Initial program 97.0%
Taylor expanded in x around inf
Simplified58.2%
Taylor expanded in t around 0
+-commutativeN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6457.1
Simplified57.1%
if 1.04999999999999998e-45 < t < 1.75000000000000009e86Initial program 96.5%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6481.1
Simplified81.1%
Taylor expanded in t around inf
Simplified81.3%
Taylor expanded in a around 0
+-commutativeN/A
+-lowering-+.f64N/A
+-commutativeN/A
*-commutativeN/A
accelerator-lowering-fma.f6453.3
Simplified53.3%
Final simplification65.6%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (+ x (* (- (+ y t) 2.0) b))))
(if (<= b -1.65e+127)
t_1
(if (<= b 1.85e+96) (+ z (fma a (- 1.0 t) x)) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x + (((y + t) - 2.0) * b);
double tmp;
if (b <= -1.65e+127) {
tmp = t_1;
} else if (b <= 1.85e+96) {
tmp = z + fma(a, (1.0 - t), x);
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = Float64(x + Float64(Float64(Float64(y + t) - 2.0) * b)) tmp = 0.0 if (b <= -1.65e+127) tmp = t_1; elseif (b <= 1.85e+96) tmp = Float64(z + fma(a, Float64(1.0 - t), x)); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x + N[(N[(N[(y + t), $MachinePrecision] - 2.0), $MachinePrecision] * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -1.65e+127], t$95$1, If[LessEqual[b, 1.85e+96], N[(z + N[(a * N[(1.0 - t), $MachinePrecision] + x), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \left(\left(y + t\right) - 2\right) \cdot b\\
\mathbf{if}\;b \leq -1.65 \cdot 10^{+127}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 1.85 \cdot 10^{+96}:\\
\;\;\;\;z + \mathsf{fma}\left(a, 1 - t, x\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -1.64999999999999988e127 or 1.84999999999999996e96 < b Initial program 91.4%
Taylor expanded in x around inf
Simplified88.6%
if -1.64999999999999988e127 < b < 1.84999999999999996e96Initial program 98.0%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6478.2
Simplified78.2%
Taylor expanded in b around 0
+-commutativeN/A
associate-+l+N/A
+-commutativeN/A
+-lowering-+.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
--lowering--.f6471.9
Simplified71.9%
(FPCore (x y z t a b) :precision binary64 (if (<= t -1150000000000.0) (fma t (- b a) x) (if (<= t 0.000205) (+ x (fma b (+ y -2.0) a)) (+ a (fma t (- b a) z)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (t <= -1150000000000.0) {
tmp = fma(t, (b - a), x);
} else if (t <= 0.000205) {
tmp = x + fma(b, (y + -2.0), a);
} else {
tmp = a + fma(t, (b - a), z);
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if (t <= -1150000000000.0) tmp = fma(t, Float64(b - a), x); elseif (t <= 0.000205) tmp = Float64(x + fma(b, Float64(y + -2.0), a)); else tmp = Float64(a + fma(t, Float64(b - a), z)); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[t, -1150000000000.0], N[(t * N[(b - a), $MachinePrecision] + x), $MachinePrecision], If[LessEqual[t, 0.000205], N[(x + N[(b * N[(y + -2.0), $MachinePrecision] + a), $MachinePrecision]), $MachinePrecision], N[(a + N[(t * N[(b - a), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1150000000000:\\
\;\;\;\;\mathsf{fma}\left(t, b - a, x\right)\\
\mathbf{elif}\;t \leq 0.000205:\\
\;\;\;\;x + \mathsf{fma}\left(b, y + -2, a\right)\\
\mathbf{else}:\\
\;\;\;\;a + \mathsf{fma}\left(t, b - a, z\right)\\
\end{array}
\end{array}
if t < -1.15e12Initial program 95.9%
Taylor expanded in z around 0
Simplified80.1%
Taylor expanded in x around inf
Simplified83.9%
if -1.15e12 < t < 2.05e-4Initial program 96.3%
Taylor expanded in z around 0
Simplified74.3%
Taylor expanded in t around 0
associate-+r+N/A
+-commutativeN/A
associate-+l+N/A
+-lowering-+.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6472.5
Simplified72.5%
if 2.05e-4 < t Initial program 92.9%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6485.5
Simplified85.5%
Taylor expanded in t around inf
Simplified85.5%
Taylor expanded in x around 0
+-commutativeN/A
distribute-lft-out--N/A
*-rgt-identityN/A
unsub-negN/A
mul-1-negN/A
+-commutativeN/A
associate-+r+N/A
associate-*r*N/A
distribute-rgt-inN/A
associate-+l+N/A
+-commutativeN/A
+-lowering-+.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f6481.4
Simplified81.4%
(FPCore (x y z t a b) :precision binary64 (if (<= t -1100000000000.0) (fma t (- b a) x) (if (<= t 1.05e-45) (fma b (+ y -2.0) x) (+ a (fma t (- b a) z)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (t <= -1100000000000.0) {
tmp = fma(t, (b - a), x);
} else if (t <= 1.05e-45) {
tmp = fma(b, (y + -2.0), x);
} else {
tmp = a + fma(t, (b - a), z);
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if (t <= -1100000000000.0) tmp = fma(t, Float64(b - a), x); elseif (t <= 1.05e-45) tmp = fma(b, Float64(y + -2.0), x); else tmp = Float64(a + fma(t, Float64(b - a), z)); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[t, -1100000000000.0], N[(t * N[(b - a), $MachinePrecision] + x), $MachinePrecision], If[LessEqual[t, 1.05e-45], N[(b * N[(y + -2.0), $MachinePrecision] + x), $MachinePrecision], N[(a + N[(t * N[(b - a), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1100000000000:\\
\;\;\;\;\mathsf{fma}\left(t, b - a, x\right)\\
\mathbf{elif}\;t \leq 1.05 \cdot 10^{-45}:\\
\;\;\;\;\mathsf{fma}\left(b, y + -2, x\right)\\
\mathbf{else}:\\
\;\;\;\;a + \mathsf{fma}\left(t, b - a, z\right)\\
\end{array}
\end{array}
if t < -1.1e12Initial program 95.9%
Taylor expanded in z around 0
Simplified80.1%
Taylor expanded in x around inf
Simplified83.9%
if -1.1e12 < t < 1.04999999999999998e-45Initial program 96.9%
Taylor expanded in x around inf
Simplified58.0%
Taylor expanded in t around 0
+-commutativeN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6457.7
Simplified57.7%
if 1.04999999999999998e-45 < t Initial program 92.3%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6484.2
Simplified84.2%
Taylor expanded in t around inf
Simplified84.3%
Taylor expanded in x around 0
+-commutativeN/A
distribute-lft-out--N/A
*-rgt-identityN/A
unsub-negN/A
mul-1-negN/A
+-commutativeN/A
associate-+r+N/A
associate-*r*N/A
distribute-rgt-inN/A
associate-+l+N/A
+-commutativeN/A
+-lowering-+.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f6479.4
Simplified79.4%
(FPCore (x y z t a b) :precision binary64 (let* ((t_1 (* b (+ t (+ y -2.0))))) (if (<= b -1.85e+127) t_1 (if (<= b 5.8e+94) (fma a (- 1.0 t) x) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = b * (t + (y + -2.0));
double tmp;
if (b <= -1.85e+127) {
tmp = t_1;
} else if (b <= 5.8e+94) {
tmp = fma(a, (1.0 - t), x);
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = Float64(b * Float64(t + Float64(y + -2.0))) tmp = 0.0 if (b <= -1.85e+127) tmp = t_1; elseif (b <= 5.8e+94) tmp = fma(a, Float64(1.0 - t), x); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(b * N[(t + N[(y + -2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -1.85e+127], t$95$1, If[LessEqual[b, 5.8e+94], N[(a * N[(1.0 - t), $MachinePrecision] + x), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(t + \left(y + -2\right)\right)\\
\mathbf{if}\;b \leq -1.85 \cdot 10^{+127}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 5.8 \cdot 10^{+94}:\\
\;\;\;\;\mathsf{fma}\left(a, 1 - t, x\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -1.8499999999999999e127 or 5.7999999999999997e94 < b Initial program 91.4%
Taylor expanded in b around inf
*-lowering-*.f64N/A
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-eval82.8
Simplified82.8%
if -1.8499999999999999e127 < b < 5.7999999999999997e94Initial program 98.0%
Taylor expanded in z around 0
Simplified65.6%
Taylor expanded in b around 0
+-commutativeN/A
associate-+r+N/A
*-rgt-identityN/A
mul-1-negN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
distribute-lft-inN/A
accelerator-lowering-fma.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f6456.9
Simplified56.9%
(FPCore (x y z t a b) :precision binary64 (if (<= b -1.65e+127) (* (+ y t) b) (if (<= b 1.4e+95) (fma a (- 1.0 t) x) (fma b (+ t -2.0) x))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -1.65e+127) {
tmp = (y + t) * b;
} else if (b <= 1.4e+95) {
tmp = fma(a, (1.0 - t), x);
} else {
tmp = fma(b, (t + -2.0), x);
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -1.65e+127) tmp = Float64(Float64(y + t) * b); elseif (b <= 1.4e+95) tmp = fma(a, Float64(1.0 - t), x); else tmp = fma(b, Float64(t + -2.0), x); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -1.65e+127], N[(N[(y + t), $MachinePrecision] * b), $MachinePrecision], If[LessEqual[b, 1.4e+95], N[(a * N[(1.0 - t), $MachinePrecision] + x), $MachinePrecision], N[(b * N[(t + -2.0), $MachinePrecision] + x), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -1.65 \cdot 10^{+127}:\\
\;\;\;\;\left(y + t\right) \cdot b\\
\mathbf{elif}\;b \leq 1.4 \cdot 10^{+95}:\\
\;\;\;\;\mathsf{fma}\left(a, 1 - t, x\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(b, t + -2, x\right)\\
\end{array}
\end{array}
if b < -1.64999999999999988e127Initial program 92.3%
Taylor expanded in z around 0
Simplified92.7%
Taylor expanded in b around inf
*-lowering-*.f64N/A
+-commutativeN/A
associate-+r-N/A
+-lowering-+.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6482.6
Simplified82.6%
Taylor expanded in t around inf
Simplified73.0%
if -1.64999999999999988e127 < b < 1.3999999999999999e95Initial program 98.0%
Taylor expanded in z around 0
Simplified65.6%
Taylor expanded in b around 0
+-commutativeN/A
associate-+r+N/A
*-rgt-identityN/A
mul-1-negN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
distribute-lft-inN/A
accelerator-lowering-fma.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f6456.9
Simplified56.9%
if 1.3999999999999999e95 < b Initial program 90.9%
Taylor expanded in x around inf
Simplified87.6%
Taylor expanded in y around 0
+-commutativeN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6466.4
Simplified66.4%
Final simplification61.8%
(FPCore (x y z t a b) :precision binary64 (let* ((t_1 (* t (- b a)))) (if (<= t -9e+35) t_1 (if (<= t 1550.0) (+ z (+ x a)) 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 <= -9e+35) {
tmp = t_1;
} else if (t <= 1550.0) {
tmp = z + (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 = t * (b - a)
if (t <= (-9d+35)) then
tmp = t_1
else if (t <= 1550.0d0) then
tmp = z + (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 = t * (b - a);
double tmp;
if (t <= -9e+35) {
tmp = t_1;
} else if (t <= 1550.0) {
tmp = z + (x + a);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = t * (b - a) tmp = 0 if t <= -9e+35: tmp = t_1 elif t <= 1550.0: tmp = z + (x + a) 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 <= -9e+35) tmp = t_1; elseif (t <= 1550.0) tmp = Float64(z + Float64(x + a)); 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 <= -9e+35) tmp = t_1; elseif (t <= 1550.0) tmp = z + (x + a); 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, -9e+35], t$95$1, If[LessEqual[t, 1550.0], N[(z + N[(x + a), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t \cdot \left(b - a\right)\\
\mathbf{if}\;t \leq -9 \cdot 10^{+35}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 1550:\\
\;\;\;\;z + \left(x + a\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if t < -8.9999999999999993e35 or 1550 < t Initial program 93.7%
Taylor expanded in t around inf
*-lowering-*.f64N/A
--lowering--.f6475.0
Simplified75.0%
if -8.9999999999999993e35 < t < 1550Initial program 96.5%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6464.5
Simplified64.5%
Taylor expanded in t around inf
Simplified51.3%
Taylor expanded in t around 0
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
+-lowering-+.f6448.0
Simplified48.0%
Final simplification59.8%
(FPCore (x y z t a b) :precision binary64 (let* ((t_1 (* (+ y t) b))) (if (<= b -8e-5) t_1 (if (<= b 2.05e+71) (+ z (+ x a)) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (y + t) * b;
double tmp;
if (b <= -8e-5) {
tmp = t_1;
} else if (b <= 2.05e+71) {
tmp = z + (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 + t) * b
if (b <= (-8d-5)) then
tmp = t_1
else if (b <= 2.05d+71) then
tmp = z + (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 + t) * b;
double tmp;
if (b <= -8e-5) {
tmp = t_1;
} else if (b <= 2.05e+71) {
tmp = z + (x + a);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (y + t) * b tmp = 0 if b <= -8e-5: tmp = t_1 elif b <= 2.05e+71: tmp = z + (x + a) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(y + t) * b) tmp = 0.0 if (b <= -8e-5) tmp = t_1; elseif (b <= 2.05e+71) tmp = Float64(z + Float64(x + a)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (y + t) * b; tmp = 0.0; if (b <= -8e-5) tmp = t_1; elseif (b <= 2.05e+71) tmp = z + (x + a); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(y + t), $MachinePrecision] * b), $MachinePrecision]}, If[LessEqual[b, -8e-5], t$95$1, If[LessEqual[b, 2.05e+71], N[(z + N[(x + a), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(y + t\right) \cdot b\\
\mathbf{if}\;b \leq -8 \cdot 10^{-5}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 2.05 \cdot 10^{+71}:\\
\;\;\;\;z + \left(x + a\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -8.00000000000000065e-5 or 2.0500000000000001e71 < b Initial program 91.3%
Taylor expanded in z around 0
Simplified86.8%
Taylor expanded in b around inf
*-lowering-*.f64N/A
+-commutativeN/A
associate-+r-N/A
+-lowering-+.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6475.6
Simplified75.6%
Taylor expanded in t around inf
Simplified63.1%
if -8.00000000000000065e-5 < b < 2.0500000000000001e71Initial program 99.2%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6479.7
Simplified79.7%
Taylor expanded in t around inf
Simplified78.3%
Taylor expanded in t around 0
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
+-lowering-+.f6450.3
Simplified50.3%
Final simplification56.6%
(FPCore (x y z t a b) :precision binary64 (if (<= b -2.9e+109) (* b (+ y -2.0)) (if (<= b 1.95e+90) (+ z (+ x a)) (* b (+ t -2.0)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -2.9e+109) {
tmp = b * (y + -2.0);
} else if (b <= 1.95e+90) {
tmp = z + (x + a);
} else {
tmp = b * (t + -2.0);
}
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.9d+109)) then
tmp = b * (y + (-2.0d0))
else if (b <= 1.95d+90) then
tmp = z + (x + a)
else
tmp = b * (t + (-2.0d0))
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.9e+109) {
tmp = b * (y + -2.0);
} else if (b <= 1.95e+90) {
tmp = z + (x + a);
} else {
tmp = b * (t + -2.0);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -2.9e+109: tmp = b * (y + -2.0) elif b <= 1.95e+90: tmp = z + (x + a) else: tmp = b * (t + -2.0) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -2.9e+109) tmp = Float64(b * Float64(y + -2.0)); elseif (b <= 1.95e+90) tmp = Float64(z + Float64(x + a)); else tmp = Float64(b * Float64(t + -2.0)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -2.9e+109) tmp = b * (y + -2.0); elseif (b <= 1.95e+90) tmp = z + (x + a); else tmp = b * (t + -2.0); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -2.9e+109], N[(b * N[(y + -2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1.95e+90], N[(z + N[(x + a), $MachinePrecision]), $MachinePrecision], N[(b * N[(t + -2.0), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -2.9 \cdot 10^{+109}:\\
\;\;\;\;b \cdot \left(y + -2\right)\\
\mathbf{elif}\;b \leq 1.95 \cdot 10^{+90}:\\
\;\;\;\;z + \left(x + a\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(t + -2\right)\\
\end{array}
\end{array}
if b < -2.9e109Initial program 93.0%
Taylor expanded in z around 0
Simplified93.3%
Taylor expanded in b around inf
*-lowering-*.f64N/A
+-commutativeN/A
associate-+r-N/A
+-lowering-+.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6481.9
Simplified81.9%
Taylor expanded in t around 0
*-lowering-*.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-eval50.4
Simplified50.4%
if -2.9e109 < b < 1.9500000000000001e90Initial program 97.9%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6477.4
Simplified77.4%
Taylor expanded in t around inf
Simplified76.2%
Taylor expanded in t around 0
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
+-lowering-+.f6447.4
Simplified47.4%
if 1.9500000000000001e90 < b Initial program 91.0%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6475.4
Simplified75.4%
Taylor expanded in b around inf
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6460.8
Simplified60.8%
Final simplification51.4%
(FPCore (x y z t a b) :precision binary64 (let* ((t_1 (* b (+ t -2.0)))) (if (<= b -6e+108) t_1 (if (<= b 4.6e+74) (+ z (+ x a)) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = b * (t + -2.0);
double tmp;
if (b <= -6e+108) {
tmp = t_1;
} else if (b <= 4.6e+74) {
tmp = z + (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 = b * (t + (-2.0d0))
if (b <= (-6d+108)) then
tmp = t_1
else if (b <= 4.6d+74) then
tmp = z + (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 = b * (t + -2.0);
double tmp;
if (b <= -6e+108) {
tmp = t_1;
} else if (b <= 4.6e+74) {
tmp = z + (x + a);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = b * (t + -2.0) tmp = 0 if b <= -6e+108: tmp = t_1 elif b <= 4.6e+74: tmp = z + (x + a) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(b * Float64(t + -2.0)) tmp = 0.0 if (b <= -6e+108) tmp = t_1; elseif (b <= 4.6e+74) tmp = Float64(z + Float64(x + a)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = b * (t + -2.0); tmp = 0.0; if (b <= -6e+108) tmp = t_1; elseif (b <= 4.6e+74) tmp = z + (x + a); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(b * N[(t + -2.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -6e+108], t$95$1, If[LessEqual[b, 4.6e+74], N[(z + N[(x + a), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(t + -2\right)\\
\mathbf{if}\;b \leq -6 \cdot 10^{+108}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 4.6 \cdot 10^{+74}:\\
\;\;\;\;z + \left(x + a\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -5.99999999999999968e108 or 4.5999999999999997e74 < b Initial program 91.8%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6469.7
Simplified69.7%
Taylor expanded in b around inf
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f6454.6
Simplified54.6%
if -5.99999999999999968e108 < b < 4.5999999999999997e74Initial program 97.9%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6477.4
Simplified77.4%
Taylor expanded in t around inf
Simplified76.2%
Taylor expanded in t around 0
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
+-lowering-+.f6447.4
Simplified47.4%
Final simplification50.5%
(FPCore (x y z t a b) :precision binary64 (if (<= x -1e+62) x (if (<= x -6.2e-308) z (if (<= x 1.3e+134) a x))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (x <= -1e+62) {
tmp = x;
} else if (x <= -6.2e-308) {
tmp = z;
} else if (x <= 1.3e+134) {
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 <= (-1d+62)) then
tmp = x
else if (x <= (-6.2d-308)) then
tmp = z
else if (x <= 1.3d+134) 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 <= -1e+62) {
tmp = x;
} else if (x <= -6.2e-308) {
tmp = z;
} else if (x <= 1.3e+134) {
tmp = a;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if x <= -1e+62: tmp = x elif x <= -6.2e-308: tmp = z elif x <= 1.3e+134: tmp = a else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (x <= -1e+62) tmp = x; elseif (x <= -6.2e-308) tmp = z; elseif (x <= 1.3e+134) tmp = a; else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (x <= -1e+62) tmp = x; elseif (x <= -6.2e-308) tmp = z; elseif (x <= 1.3e+134) tmp = a; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[x, -1e+62], x, If[LessEqual[x, -6.2e-308], z, If[LessEqual[x, 1.3e+134], a, x]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -1 \cdot 10^{+62}:\\
\;\;\;\;x\\
\mathbf{elif}\;x \leq -6.2 \cdot 10^{-308}:\\
\;\;\;\;z\\
\mathbf{elif}\;x \leq 1.3 \cdot 10^{+134}:\\
\;\;\;\;a\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if x < -1.00000000000000004e62 or 1.3000000000000001e134 < x Initial program 94.3%
Taylor expanded in x around inf
Simplified35.7%
if -1.00000000000000004e62 < x < -6.19999999999999983e-308Initial program 96.2%
Taylor expanded in z around inf
sub-negN/A
neg-mul-1N/A
distribute-rgt-inN/A
associate-*r*N/A
*-lft-identityN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6437.9
Simplified37.9%
Taylor expanded in y around 0
Simplified20.1%
if -6.19999999999999983e-308 < x < 1.3000000000000001e134Initial program 95.4%
Taylor expanded in a around inf
sub-negN/A
neg-mul-1N/A
distribute-rgt-inN/A
*-lft-identityN/A
neg-mul-1N/A
distribute-lft-neg-inN/A
*-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f6435.3
Simplified35.3%
Taylor expanded in t around 0
Simplified16.2%
(FPCore (x y z t a b) :precision binary64 (if (<= t -1.66e+49) (fma t b x) (if (<= t 9e+32) (+ z (+ x a)) (fma t b x))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (t <= -1.66e+49) {
tmp = fma(t, b, x);
} else if (t <= 9e+32) {
tmp = z + (x + a);
} else {
tmp = fma(t, b, x);
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if (t <= -1.66e+49) tmp = fma(t, b, x); elseif (t <= 9e+32) tmp = Float64(z + Float64(x + a)); else tmp = fma(t, b, x); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[t, -1.66e+49], N[(t * b + x), $MachinePrecision], If[LessEqual[t, 9e+32], N[(z + N[(x + a), $MachinePrecision]), $MachinePrecision], N[(t * b + x), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.66 \cdot 10^{+49}:\\
\;\;\;\;\mathsf{fma}\left(t, b, x\right)\\
\mathbf{elif}\;t \leq 9 \cdot 10^{+32}:\\
\;\;\;\;z + \left(x + a\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(t, b, x\right)\\
\end{array}
\end{array}
if t < -1.65999999999999999e49 or 9.0000000000000007e32 < t Initial program 93.2%
Taylor expanded in z around 0
Simplified78.8%
Taylor expanded in x around inf
Simplified82.6%
Taylor expanded in b around inf
Simplified52.2%
if -1.65999999999999999e49 < t < 9.0000000000000007e32Initial program 96.7%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6465.6
Simplified65.6%
Taylor expanded in t around inf
Simplified53.2%
Taylor expanded in t around 0
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
+-lowering-+.f6446.6
Simplified46.6%
Final simplification48.9%
(FPCore (x y z t a b) :precision binary64 (if (<= t -1.66e+49) (* t b) (if (<= t 2.1e+99) (+ z (+ x a)) (* t b))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (t <= -1.66e+49) {
tmp = t * b;
} else if (t <= 2.1e+99) {
tmp = z + (x + a);
} 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) :: tmp
if (t <= (-1.66d+49)) then
tmp = t * b
else if (t <= 2.1d+99) then
tmp = z + (x + a)
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 tmp;
if (t <= -1.66e+49) {
tmp = t * b;
} else if (t <= 2.1e+99) {
tmp = z + (x + a);
} else {
tmp = t * b;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if t <= -1.66e+49: tmp = t * b elif t <= 2.1e+99: tmp = z + (x + a) else: tmp = t * b return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (t <= -1.66e+49) tmp = Float64(t * b); elseif (t <= 2.1e+99) tmp = Float64(z + Float64(x + a)); else tmp = Float64(t * b); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (t <= -1.66e+49) tmp = t * b; elseif (t <= 2.1e+99) tmp = z + (x + a); else tmp = t * b; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[t, -1.66e+49], N[(t * b), $MachinePrecision], If[LessEqual[t, 2.1e+99], N[(z + N[(x + a), $MachinePrecision]), $MachinePrecision], N[(t * b), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.66 \cdot 10^{+49}:\\
\;\;\;\;t \cdot b\\
\mathbf{elif}\;t \leq 2.1 \cdot 10^{+99}:\\
\;\;\;\;z + \left(x + a\right)\\
\mathbf{else}:\\
\;\;\;\;t \cdot b\\
\end{array}
\end{array}
if t < -1.65999999999999999e49 or 2.1000000000000001e99 < t Initial program 93.2%
Taylor expanded in x around inf
Simplified54.0%
Taylor expanded in t around inf
*-lowering-*.f6450.4
Simplified50.4%
if -1.65999999999999999e49 < t < 2.1000000000000001e99Initial program 96.4%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6466.9
Simplified66.9%
Taylor expanded in t around inf
Simplified55.6%
Taylor expanded in t around 0
associate-+r+N/A
+-commutativeN/A
+-lowering-+.f64N/A
+-lowering-+.f6445.6
Simplified45.6%
Final simplification47.3%
(FPCore (x y z t a b) :precision binary64 (if (<= t -1.02e+39) (* t b) (if (<= t 1.55e+100) (+ x z) (* t b))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (t <= -1.02e+39) {
tmp = t * b;
} else if (t <= 1.55e+100) {
tmp = x + z;
} 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) :: tmp
if (t <= (-1.02d+39)) then
tmp = t * b
else if (t <= 1.55d+100) then
tmp = x + z
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 tmp;
if (t <= -1.02e+39) {
tmp = t * b;
} else if (t <= 1.55e+100) {
tmp = x + z;
} else {
tmp = t * b;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if t <= -1.02e+39: tmp = t * b elif t <= 1.55e+100: tmp = x + z else: tmp = t * b return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (t <= -1.02e+39) tmp = Float64(t * b); elseif (t <= 1.55e+100) tmp = Float64(x + z); else tmp = Float64(t * b); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (t <= -1.02e+39) tmp = t * b; elseif (t <= 1.55e+100) tmp = x + z; else tmp = t * b; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[t, -1.02e+39], N[(t * b), $MachinePrecision], If[LessEqual[t, 1.55e+100], N[(x + z), $MachinePrecision], N[(t * b), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.02 \cdot 10^{+39}:\\
\;\;\;\;t \cdot b\\
\mathbf{elif}\;t \leq 1.55 \cdot 10^{+100}:\\
\;\;\;\;x + z\\
\mathbf{else}:\\
\;\;\;\;t \cdot b\\
\end{array}
\end{array}
if t < -1.02e39 or 1.55000000000000003e100 < t Initial program 93.3%
Taylor expanded in x around inf
Simplified52.9%
Taylor expanded in t around inf
*-lowering-*.f6449.4
Simplified49.4%
if -1.02e39 < t < 1.55000000000000003e100Initial program 96.4%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6466.5
Simplified66.5%
Taylor expanded in z around inf
Simplified32.6%
Final simplification38.5%
(FPCore (x y z t a b) :precision binary64 (if (<= a -2.8e+92) a (if (<= a 1.95e+173) (+ x z) a)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (a <= -2.8e+92) {
tmp = a;
} else if (a <= 1.95e+173) {
tmp = x + z;
} 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 <= (-2.8d+92)) then
tmp = a
else if (a <= 1.95d+173) then
tmp = x + z
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 <= -2.8e+92) {
tmp = a;
} else if (a <= 1.95e+173) {
tmp = x + z;
} else {
tmp = a;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if a <= -2.8e+92: tmp = a elif a <= 1.95e+173: tmp = x + z else: tmp = a return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (a <= -2.8e+92) tmp = a; elseif (a <= 1.95e+173) tmp = Float64(x + z); else tmp = a; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (a <= -2.8e+92) tmp = a; elseif (a <= 1.95e+173) tmp = x + z; else tmp = a; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[a, -2.8e+92], a, If[LessEqual[a, 1.95e+173], N[(x + z), $MachinePrecision], a]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -2.8 \cdot 10^{+92}:\\
\;\;\;\;a\\
\mathbf{elif}\;a \leq 1.95 \cdot 10^{+173}:\\
\;\;\;\;x + z\\
\mathbf{else}:\\
\;\;\;\;a\\
\end{array}
\end{array}
if a < -2.80000000000000001e92 or 1.9499999999999999e173 < a Initial program 95.0%
Taylor expanded in a around inf
sub-negN/A
neg-mul-1N/A
distribute-rgt-inN/A
*-lft-identityN/A
neg-mul-1N/A
distribute-lft-neg-inN/A
*-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f6468.4
Simplified68.4%
Taylor expanded in t around 0
Simplified28.1%
if -2.80000000000000001e92 < a < 1.9499999999999999e173Initial program 95.4%
Taylor expanded in y around 0
associate--l+N/A
+-lowering-+.f64N/A
sub-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
+-lowering-+.f64N/A
metadata-evalN/A
+-commutativeN/A
distribute-neg-inN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
mul-1-negN/A
remove-double-negN/A
accelerator-lowering-fma.f64N/A
sub-negN/A
metadata-evalN/A
distribute-lft-inN/A
metadata-evalN/A
+-commutativeN/A
neg-mul-1N/A
sub-negN/A
--lowering--.f6470.0
Simplified70.0%
Taylor expanded in z around inf
Simplified31.0%
(FPCore (x y z t a b) :precision binary64 (if (<= a -1.9e+95) a (if (<= a 1.95e+173) x a)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (a <= -1.9e+95) {
tmp = a;
} else if (a <= 1.95e+173) {
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.9d+95)) then
tmp = a
else if (a <= 1.95d+173) 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.9e+95) {
tmp = a;
} else if (a <= 1.95e+173) {
tmp = x;
} else {
tmp = a;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if a <= -1.9e+95: tmp = a elif a <= 1.95e+173: tmp = x else: tmp = a return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (a <= -1.9e+95) tmp = a; elseif (a <= 1.95e+173) 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.9e+95) tmp = a; elseif (a <= 1.95e+173) tmp = x; else tmp = a; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[a, -1.9e+95], a, If[LessEqual[a, 1.95e+173], x, a]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -1.9 \cdot 10^{+95}:\\
\;\;\;\;a\\
\mathbf{elif}\;a \leq 1.95 \cdot 10^{+173}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;a\\
\end{array}
\end{array}
if a < -1.9e95 or 1.9499999999999999e173 < a Initial program 95.0%
Taylor expanded in a around inf
sub-negN/A
neg-mul-1N/A
distribute-rgt-inN/A
*-lft-identityN/A
neg-mul-1N/A
distribute-lft-neg-inN/A
*-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f6468.4
Simplified68.4%
Taylor expanded in t around 0
Simplified28.1%
if -1.9e95 < a < 1.9499999999999999e173Initial program 95.4%
Taylor expanded in x around inf
Simplified18.6%
(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 95.3%
Taylor expanded in a around inf
sub-negN/A
neg-mul-1N/A
distribute-rgt-inN/A
*-lft-identityN/A
neg-mul-1N/A
distribute-lft-neg-inN/A
*-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f6427.9
Simplified27.9%
Taylor expanded in t around 0
Simplified10.8%
herbie shell --seed 2024199
(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)))