
(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 21 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
(+ (* (- (+ t y) 2.0) b) (- (- x (* z (- y 1.0))) (* a (- t 1.0))))))
(if (<= t_1 INFINITY) t_1 (fma (- b a) t (fma (- 1.0 y) z a)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (((t + y) - 2.0) * b) + ((x - (z * (y - 1.0))) - (a * (t - 1.0)));
double tmp;
if (t_1 <= ((double) INFINITY)) {
tmp = t_1;
} else {
tmp = fma((b - a), t, fma((1.0 - y), z, a));
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = Float64(Float64(Float64(Float64(t + y) - 2.0) * b) + Float64(Float64(x - Float64(z * Float64(y - 1.0))) - Float64(a * Float64(t - 1.0)))) tmp = 0.0 if (t_1 <= Inf) tmp = t_1; else tmp = fma(Float64(b - a), t, fma(Float64(1.0 - y), z, a)); end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(N[(N[(t + y), $MachinePrecision] - 2.0), $MachinePrecision] * b), $MachinePrecision] + N[(N[(x - N[(z * N[(y - 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(a * N[(t - 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, Infinity], t$95$1, N[(N[(b - a), $MachinePrecision] * t + N[(N[(1.0 - y), $MachinePrecision] * z + a), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(\left(t + y\right) - 2\right) \cdot b + \left(\left(x - z \cdot \left(y - 1\right)\right) - a \cdot \left(t - 1\right)\right)\\
\mathbf{if}\;t\_1 \leq \infty:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(b - a, t, \mathsf{fma}\left(1 - y, z, a\right)\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 99.9%
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 x around 0
Applied rewrites72.7%
Taylor expanded in y around 0
Applied rewrites57.3%
Taylor expanded in b around 0
Applied rewrites72.7%
Final simplification98.8%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (- (+ t y) 2.0)))
(if (<= x -2.3e+131)
(fma t_1 b (fma (- 1.0 y) z x))
(if (<= x 3.1e+137)
(fma (- b a) t (fma (- y 2.0) b (fma (- 1.0 y) z a)))
(fma (- 1.0 y) z (fma t_1 b x))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (t + y) - 2.0;
double tmp;
if (x <= -2.3e+131) {
tmp = fma(t_1, b, fma((1.0 - y), z, x));
} else if (x <= 3.1e+137) {
tmp = fma((b - a), t, fma((y - 2.0), b, fma((1.0 - y), z, a)));
} else {
tmp = fma((1.0 - y), z, fma(t_1, b, x));
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = Float64(Float64(t + y) - 2.0) tmp = 0.0 if (x <= -2.3e+131) tmp = fma(t_1, b, fma(Float64(1.0 - y), z, x)); elseif (x <= 3.1e+137) tmp = fma(Float64(b - a), t, fma(Float64(y - 2.0), b, fma(Float64(1.0 - y), z, a))); else tmp = fma(Float64(1.0 - y), z, fma(t_1, b, x)); end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(t + y), $MachinePrecision] - 2.0), $MachinePrecision]}, If[LessEqual[x, -2.3e+131], N[(t$95$1 * b + N[(N[(1.0 - y), $MachinePrecision] * z + x), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 3.1e+137], N[(N[(b - a), $MachinePrecision] * t + N[(N[(y - 2.0), $MachinePrecision] * b + N[(N[(1.0 - y), $MachinePrecision] * z + a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(1.0 - y), $MachinePrecision] * z + N[(t$95$1 * b + x), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(t + y\right) - 2\\
\mathbf{if}\;x \leq -2.3 \cdot 10^{+131}:\\
\;\;\;\;\mathsf{fma}\left(t\_1, b, \mathsf{fma}\left(1 - y, z, x\right)\right)\\
\mathbf{elif}\;x \leq 3.1 \cdot 10^{+137}:\\
\;\;\;\;\mathsf{fma}\left(b - a, t, \mathsf{fma}\left(y - 2, b, \mathsf{fma}\left(1 - y, z, a\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(t\_1, b, x\right)\right)\\
\end{array}
\end{array}
if x < -2.29999999999999992e131Initial program 97.7%
Taylor expanded in a around 0
sub-negN/A
+-commutativeN/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower--.f64N/A
lower-+.f6484.8
Applied rewrites84.8%
Applied rewrites87.0%
if -2.29999999999999992e131 < x < 3.0999999999999999e137Initial program 95.0%
Taylor expanded in x around 0
Applied rewrites97.2%
if 3.0999999999999999e137 < x Initial program 96.7%
Taylor expanded in a around 0
sub-negN/A
+-commutativeN/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower--.f64N/A
lower-+.f6488.0
Applied rewrites88.0%
(FPCore (x y z t a b)
:precision binary64
(if (<= y -9.5e+192)
(fma (- 1.0 y) z (fma (- y 2.0) b x))
(if (<= y 1300000000000.0)
(fma (- 1.0 t) a (+ (fma (- t 2.0) b x) z))
(if (<= y 2.05e+180) (fma (- b a) t (fma (- 1.0 y) z a)) (* (- b z) y)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -9.5e+192) {
tmp = fma((1.0 - y), z, fma((y - 2.0), b, x));
} else if (y <= 1300000000000.0) {
tmp = fma((1.0 - t), a, (fma((t - 2.0), b, x) + z));
} else if (y <= 2.05e+180) {
tmp = fma((b - a), t, fma((1.0 - y), z, a));
} else {
tmp = (b - z) * y;
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -9.5e+192) tmp = fma(Float64(1.0 - y), z, fma(Float64(y - 2.0), b, x)); elseif (y <= 1300000000000.0) tmp = fma(Float64(1.0 - t), a, Float64(fma(Float64(t - 2.0), b, x) + z)); elseif (y <= 2.05e+180) tmp = fma(Float64(b - a), t, fma(Float64(1.0 - y), z, a)); else tmp = Float64(Float64(b - z) * y); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -9.5e+192], N[(N[(1.0 - y), $MachinePrecision] * z + N[(N[(y - 2.0), $MachinePrecision] * b + x), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1300000000000.0], N[(N[(1.0 - t), $MachinePrecision] * a + N[(N[(N[(t - 2.0), $MachinePrecision] * b + x), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.05e+180], N[(N[(b - a), $MachinePrecision] * t + N[(N[(1.0 - y), $MachinePrecision] * z + a), $MachinePrecision]), $MachinePrecision], N[(N[(b - z), $MachinePrecision] * y), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -9.5 \cdot 10^{+192}:\\
\;\;\;\;\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(y - 2, b, x\right)\right)\\
\mathbf{elif}\;y \leq 1300000000000:\\
\;\;\;\;\mathsf{fma}\left(1 - t, a, \mathsf{fma}\left(t - 2, b, x\right) + z\right)\\
\mathbf{elif}\;y \leq 2.05 \cdot 10^{+180}:\\
\;\;\;\;\mathsf{fma}\left(b - a, t, \mathsf{fma}\left(1 - y, z, a\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b - z\right) \cdot y\\
\end{array}
\end{array}
if y < -9.49999999999999931e192Initial program 96.2%
Taylor expanded in a around 0
sub-negN/A
+-commutativeN/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower--.f64N/A
lower-+.f6488.8
Applied rewrites88.8%
Taylor expanded in t around 0
Applied rewrites88.8%
if -9.49999999999999931e192 < y < 1.3e12Initial program 96.4%
Taylor expanded in y around 0
sub-negN/A
+-commutativeN/A
+-commutativeN/A
distribute-neg-inN/A
mul-1-negN/A
remove-double-negN/A
associate-+l+N/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
lower-+.f64N/A
+-commutativeN/A
Applied rewrites90.8%
if 1.3e12 < y < 2.05e180Initial program 97.0%
Taylor expanded in x around 0
Applied rewrites89.3%
Taylor expanded in y around 0
Applied rewrites50.5%
Taylor expanded in b around 0
Applied rewrites77.3%
if 2.05e180 < y Initial program 88.9%
Taylor expanded in y around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6496.3
Applied rewrites96.3%
Final simplification89.4%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (fma (- 1.0 y) z x)) (t_2 (* (- b a) t)))
(if (<= t -3.35e+44)
t_2
(if (<= t 1.16e-302)
t_1
(if (<= t 6.4e-119) (fma (- y 2.0) b x) (if (<= t 4.5e+85) t_1 t_2))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = fma((1.0 - y), z, x);
double t_2 = (b - a) * t;
double tmp;
if (t <= -3.35e+44) {
tmp = t_2;
} else if (t <= 1.16e-302) {
tmp = t_1;
} else if (t <= 6.4e-119) {
tmp = fma((y - 2.0), b, x);
} else if (t <= 4.5e+85) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = fma(Float64(1.0 - y), z, x) t_2 = Float64(Float64(b - a) * t) tmp = 0.0 if (t <= -3.35e+44) tmp = t_2; elseif (t <= 1.16e-302) tmp = t_1; elseif (t <= 6.4e-119) tmp = fma(Float64(y - 2.0), b, x); elseif (t <= 4.5e+85) tmp = t_1; else tmp = t_2; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(1.0 - y), $MachinePrecision] * z + x), $MachinePrecision]}, Block[{t$95$2 = N[(N[(b - a), $MachinePrecision] * t), $MachinePrecision]}, If[LessEqual[t, -3.35e+44], t$95$2, If[LessEqual[t, 1.16e-302], t$95$1, If[LessEqual[t, 6.4e-119], N[(N[(y - 2.0), $MachinePrecision] * b + x), $MachinePrecision], If[LessEqual[t, 4.5e+85], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(1 - y, z, x\right)\\
t_2 := \left(b - a\right) \cdot t\\
\mathbf{if}\;t \leq -3.35 \cdot 10^{+44}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq 1.16 \cdot 10^{-302}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 6.4 \cdot 10^{-119}:\\
\;\;\;\;\mathsf{fma}\left(y - 2, b, x\right)\\
\mathbf{elif}\;t \leq 4.5 \cdot 10^{+85}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if t < -3.35000000000000018e44 or 4.50000000000000007e85 < t Initial program 94.1%
Taylor expanded in t around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6479.7
Applied rewrites79.7%
if -3.35000000000000018e44 < t < 1.16000000000000006e-302 or 6.39999999999999986e-119 < t < 4.50000000000000007e85Initial program 97.9%
Taylor expanded in a around 0
sub-negN/A
+-commutativeN/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower--.f64N/A
lower-+.f6482.9
Applied rewrites82.9%
Taylor expanded in b around 0
Applied rewrites63.8%
if 1.16000000000000006e-302 < t < 6.39999999999999986e-119Initial program 94.6%
Taylor expanded in a around 0
sub-negN/A
+-commutativeN/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower--.f64N/A
lower-+.f6484.1
Applied rewrites84.1%
Applied rewrites78.7%
Taylor expanded in z around 0
Applied rewrites62.3%
Taylor expanded in t around 0
Applied rewrites62.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (fma (- 1.0 y) z x)) (t_2 (* (- b a) t)))
(if (<= t -3.35e+44)
t_2
(if (<= t 1.15e-303)
t_1
(if (<= t 7.5e-127) (* (- b z) y) (if (<= t 4.5e+85) t_1 t_2))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = fma((1.0 - y), z, x);
double t_2 = (b - a) * t;
double tmp;
if (t <= -3.35e+44) {
tmp = t_2;
} else if (t <= 1.15e-303) {
tmp = t_1;
} else if (t <= 7.5e-127) {
tmp = (b - z) * y;
} else if (t <= 4.5e+85) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = fma(Float64(1.0 - y), z, x) t_2 = Float64(Float64(b - a) * t) tmp = 0.0 if (t <= -3.35e+44) tmp = t_2; elseif (t <= 1.15e-303) tmp = t_1; elseif (t <= 7.5e-127) tmp = Float64(Float64(b - z) * y); elseif (t <= 4.5e+85) tmp = t_1; else tmp = t_2; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(1.0 - y), $MachinePrecision] * z + x), $MachinePrecision]}, Block[{t$95$2 = N[(N[(b - a), $MachinePrecision] * t), $MachinePrecision]}, If[LessEqual[t, -3.35e+44], t$95$2, If[LessEqual[t, 1.15e-303], t$95$1, If[LessEqual[t, 7.5e-127], N[(N[(b - z), $MachinePrecision] * y), $MachinePrecision], If[LessEqual[t, 4.5e+85], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(1 - y, z, x\right)\\
t_2 := \left(b - a\right) \cdot t\\
\mathbf{if}\;t \leq -3.35 \cdot 10^{+44}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq 1.15 \cdot 10^{-303}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 7.5 \cdot 10^{-127}:\\
\;\;\;\;\left(b - z\right) \cdot y\\
\mathbf{elif}\;t \leq 4.5 \cdot 10^{+85}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if t < -3.35000000000000018e44 or 4.50000000000000007e85 < t Initial program 94.1%
Taylor expanded in t around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6479.7
Applied rewrites79.7%
if -3.35000000000000018e44 < t < 1.14999999999999998e-303 or 7.5000000000000004e-127 < t < 4.50000000000000007e85Initial program 97.9%
Taylor expanded in a around 0
sub-negN/A
+-commutativeN/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower--.f64N/A
lower-+.f6482.3
Applied rewrites82.3%
Taylor expanded in b around 0
Applied rewrites62.5%
if 1.14999999999999998e-303 < t < 7.5000000000000004e-127Initial program 94.3%
Taylor expanded in y around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6461.2
Applied rewrites61.2%
(FPCore (x y z t a b)
:precision binary64
(if (<= y -9.5e+192)
(fma (- 1.0 y) z (fma (- y 2.0) b x))
(if (<= y 4.5e+38)
(fma (- 1.0 t) a (+ (fma (- t 2.0) b x) z))
(fma (- 1.0 y) z (fma (- (+ t y) 2.0) b x)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -9.5e+192) {
tmp = fma((1.0 - y), z, fma((y - 2.0), b, x));
} else if (y <= 4.5e+38) {
tmp = fma((1.0 - t), a, (fma((t - 2.0), b, x) + z));
} else {
tmp = fma((1.0 - y), z, fma(((t + y) - 2.0), b, x));
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -9.5e+192) tmp = fma(Float64(1.0 - y), z, fma(Float64(y - 2.0), b, x)); elseif (y <= 4.5e+38) tmp = fma(Float64(1.0 - t), a, Float64(fma(Float64(t - 2.0), b, x) + z)); else tmp = fma(Float64(1.0 - y), z, fma(Float64(Float64(t + y) - 2.0), b, x)); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -9.5e+192], N[(N[(1.0 - y), $MachinePrecision] * z + N[(N[(y - 2.0), $MachinePrecision] * b + x), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 4.5e+38], N[(N[(1.0 - t), $MachinePrecision] * a + N[(N[(N[(t - 2.0), $MachinePrecision] * b + x), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision], N[(N[(1.0 - y), $MachinePrecision] * z + N[(N[(N[(t + y), $MachinePrecision] - 2.0), $MachinePrecision] * b + x), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -9.5 \cdot 10^{+192}:\\
\;\;\;\;\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(y - 2, b, x\right)\right)\\
\mathbf{elif}\;y \leq 4.5 \cdot 10^{+38}:\\
\;\;\;\;\mathsf{fma}\left(1 - t, a, \mathsf{fma}\left(t - 2, b, x\right) + z\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(\left(t + y\right) - 2, b, x\right)\right)\\
\end{array}
\end{array}
if y < -9.49999999999999931e192Initial program 96.2%
Taylor expanded in a around 0
sub-negN/A
+-commutativeN/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower--.f64N/A
lower-+.f6488.8
Applied rewrites88.8%
Taylor expanded in t around 0
Applied rewrites88.8%
if -9.49999999999999931e192 < y < 4.4999999999999998e38Initial program 95.9%
Taylor expanded in y around 0
sub-negN/A
+-commutativeN/A
+-commutativeN/A
distribute-neg-inN/A
mul-1-negN/A
remove-double-negN/A
associate-+l+N/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
lower-+.f64N/A
+-commutativeN/A
Applied rewrites91.0%
if 4.4999999999999998e38 < y Initial program 94.7%
Taylor expanded in a around 0
sub-negN/A
+-commutativeN/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower--.f64N/A
lower-+.f6484.7
Applied rewrites84.7%
Final simplification89.4%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* (- 1.0 y) z)) (t_2 (* (- b a) t)))
(if (<= t -3.2e+44)
t_2
(if (<= t 1.16e-302)
t_1
(if (<= t 6.5e-126) (* (- y 2.0) b) (if (<= t 8.5e+84) t_1 t_2))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (1.0 - y) * z;
double t_2 = (b - a) * t;
double tmp;
if (t <= -3.2e+44) {
tmp = t_2;
} else if (t <= 1.16e-302) {
tmp = t_1;
} else if (t <= 6.5e-126) {
tmp = (y - 2.0) * b;
} else if (t <= 8.5e+84) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = (1.0d0 - y) * z
t_2 = (b - a) * t
if (t <= (-3.2d+44)) then
tmp = t_2
else if (t <= 1.16d-302) then
tmp = t_1
else if (t <= 6.5d-126) then
tmp = (y - 2.0d0) * b
else if (t <= 8.5d+84) then
tmp = t_1
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (1.0 - y) * z;
double t_2 = (b - a) * t;
double tmp;
if (t <= -3.2e+44) {
tmp = t_2;
} else if (t <= 1.16e-302) {
tmp = t_1;
} else if (t <= 6.5e-126) {
tmp = (y - 2.0) * b;
} else if (t <= 8.5e+84) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (1.0 - y) * z t_2 = (b - a) * t tmp = 0 if t <= -3.2e+44: tmp = t_2 elif t <= 1.16e-302: tmp = t_1 elif t <= 6.5e-126: tmp = (y - 2.0) * b elif t <= 8.5e+84: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(1.0 - y) * z) t_2 = Float64(Float64(b - a) * t) tmp = 0.0 if (t <= -3.2e+44) tmp = t_2; elseif (t <= 1.16e-302) tmp = t_1; elseif (t <= 6.5e-126) tmp = Float64(Float64(y - 2.0) * b); elseif (t <= 8.5e+84) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (1.0 - y) * z; t_2 = (b - a) * t; tmp = 0.0; if (t <= -3.2e+44) tmp = t_2; elseif (t <= 1.16e-302) tmp = t_1; elseif (t <= 6.5e-126) tmp = (y - 2.0) * b; elseif (t <= 8.5e+84) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(1.0 - y), $MachinePrecision] * z), $MachinePrecision]}, Block[{t$95$2 = N[(N[(b - a), $MachinePrecision] * t), $MachinePrecision]}, If[LessEqual[t, -3.2e+44], t$95$2, If[LessEqual[t, 1.16e-302], t$95$1, If[LessEqual[t, 6.5e-126], N[(N[(y - 2.0), $MachinePrecision] * b), $MachinePrecision], If[LessEqual[t, 8.5e+84], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(1 - y\right) \cdot z\\
t_2 := \left(b - a\right) \cdot t\\
\mathbf{if}\;t \leq -3.2 \cdot 10^{+44}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq 1.16 \cdot 10^{-302}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 6.5 \cdot 10^{-126}:\\
\;\;\;\;\left(y - 2\right) \cdot b\\
\mathbf{elif}\;t \leq 8.5 \cdot 10^{+84}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if t < -3.20000000000000004e44 or 8.5000000000000008e84 < t Initial program 94.1%
Taylor expanded in t around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6479.7
Applied rewrites79.7%
if -3.20000000000000004e44 < t < 1.16000000000000006e-302 or 6.50000000000000014e-126 < t < 8.5000000000000008e84Initial program 97.9%
Taylor expanded in z around inf
*-commutativeN/A
sub-negN/A
metadata-evalN/A
distribute-neg-inN/A
+-commutativeN/A
metadata-evalN/A
sub-negN/A
mul-1-negN/A
lower-*.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f6440.7
Applied rewrites40.7%
if 1.16000000000000006e-302 < t < 6.50000000000000014e-126Initial program 94.1%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6453.4
Applied rewrites53.4%
Taylor expanded in t around 0
Applied rewrites53.4%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* (- 1.0 y) z)) (t_2 (* (- 1.0 t) a)))
(if (<= a -5.5e+63)
t_2
(if (<= a -6.7e-161)
t_1
(if (<= a 4.5e-259) (* (- y 2.0) b) (if (<= a 1.2e+17) t_1 t_2))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (1.0 - y) * z;
double t_2 = (1.0 - t) * a;
double tmp;
if (a <= -5.5e+63) {
tmp = t_2;
} else if (a <= -6.7e-161) {
tmp = t_1;
} else if (a <= 4.5e-259) {
tmp = (y - 2.0) * b;
} else if (a <= 1.2e+17) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = (1.0d0 - y) * z
t_2 = (1.0d0 - t) * a
if (a <= (-5.5d+63)) then
tmp = t_2
else if (a <= (-6.7d-161)) then
tmp = t_1
else if (a <= 4.5d-259) then
tmp = (y - 2.0d0) * b
else if (a <= 1.2d+17) then
tmp = t_1
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (1.0 - y) * z;
double t_2 = (1.0 - t) * a;
double tmp;
if (a <= -5.5e+63) {
tmp = t_2;
} else if (a <= -6.7e-161) {
tmp = t_1;
} else if (a <= 4.5e-259) {
tmp = (y - 2.0) * b;
} else if (a <= 1.2e+17) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (1.0 - y) * z t_2 = (1.0 - t) * a tmp = 0 if a <= -5.5e+63: tmp = t_2 elif a <= -6.7e-161: tmp = t_1 elif a <= 4.5e-259: tmp = (y - 2.0) * b elif a <= 1.2e+17: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(1.0 - y) * z) t_2 = Float64(Float64(1.0 - t) * a) tmp = 0.0 if (a <= -5.5e+63) tmp = t_2; elseif (a <= -6.7e-161) tmp = t_1; elseif (a <= 4.5e-259) tmp = Float64(Float64(y - 2.0) * b); elseif (a <= 1.2e+17) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (1.0 - y) * z; t_2 = (1.0 - t) * a; tmp = 0.0; if (a <= -5.5e+63) tmp = t_2; elseif (a <= -6.7e-161) tmp = t_1; elseif (a <= 4.5e-259) tmp = (y - 2.0) * b; elseif (a <= 1.2e+17) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(1.0 - y), $MachinePrecision] * z), $MachinePrecision]}, Block[{t$95$2 = N[(N[(1.0 - t), $MachinePrecision] * a), $MachinePrecision]}, If[LessEqual[a, -5.5e+63], t$95$2, If[LessEqual[a, -6.7e-161], t$95$1, If[LessEqual[a, 4.5e-259], N[(N[(y - 2.0), $MachinePrecision] * b), $MachinePrecision], If[LessEqual[a, 1.2e+17], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(1 - y\right) \cdot z\\
t_2 := \left(1 - t\right) \cdot a\\
\mathbf{if}\;a \leq -5.5 \cdot 10^{+63}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;a \leq -6.7 \cdot 10^{-161}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq 4.5 \cdot 10^{-259}:\\
\;\;\;\;\left(y - 2\right) \cdot b\\
\mathbf{elif}\;a \leq 1.2 \cdot 10^{+17}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if a < -5.50000000000000004e63 or 1.2e17 < a Initial program 93.1%
Taylor expanded in a around inf
*-commutativeN/A
sub-negN/A
metadata-evalN/A
distribute-neg-inN/A
+-commutativeN/A
metadata-evalN/A
sub-negN/A
mul-1-negN/A
lower-*.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f6462.7
Applied rewrites62.7%
if -5.50000000000000004e63 < a < -6.7000000000000001e-161 or 4.49999999999999974e-259 < a < 1.2e17Initial program 96.8%
Taylor expanded in z around inf
*-commutativeN/A
sub-negN/A
metadata-evalN/A
distribute-neg-inN/A
+-commutativeN/A
metadata-evalN/A
sub-negN/A
mul-1-negN/A
lower-*.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f6438.1
Applied rewrites38.1%
if -6.7000000000000001e-161 < a < 4.49999999999999974e-259Initial program 100.0%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6473.5
Applied rewrites73.5%
Taylor expanded in t around 0
Applied rewrites51.1%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* (- a) t)))
(if (<= t -1.65e+173)
(* b t)
(if (<= t -1.2e+77)
t_1
(if (<= t 2.05e-16)
(* (- y 2.0) b)
(if (<= t 9e+74) (* (- z) y) t_1))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = -a * t;
double tmp;
if (t <= -1.65e+173) {
tmp = b * t;
} else if (t <= -1.2e+77) {
tmp = t_1;
} else if (t <= 2.05e-16) {
tmp = (y - 2.0) * b;
} else if (t <= 9e+74) {
tmp = -z * y;
} 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 * t
if (t <= (-1.65d+173)) then
tmp = b * t
else if (t <= (-1.2d+77)) then
tmp = t_1
else if (t <= 2.05d-16) then
tmp = (y - 2.0d0) * b
else if (t <= 9d+74) then
tmp = -z * y
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 * t;
double tmp;
if (t <= -1.65e+173) {
tmp = b * t;
} else if (t <= -1.2e+77) {
tmp = t_1;
} else if (t <= 2.05e-16) {
tmp = (y - 2.0) * b;
} else if (t <= 9e+74) {
tmp = -z * y;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = -a * t tmp = 0 if t <= -1.65e+173: tmp = b * t elif t <= -1.2e+77: tmp = t_1 elif t <= 2.05e-16: tmp = (y - 2.0) * b elif t <= 9e+74: tmp = -z * y else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(-a) * t) tmp = 0.0 if (t <= -1.65e+173) tmp = Float64(b * t); elseif (t <= -1.2e+77) tmp = t_1; elseif (t <= 2.05e-16) tmp = Float64(Float64(y - 2.0) * b); elseif (t <= 9e+74) tmp = Float64(Float64(-z) * y); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = -a * t; tmp = 0.0; if (t <= -1.65e+173) tmp = b * t; elseif (t <= -1.2e+77) tmp = t_1; elseif (t <= 2.05e-16) tmp = (y - 2.0) * b; elseif (t <= 9e+74) tmp = -z * y; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[((-a) * t), $MachinePrecision]}, If[LessEqual[t, -1.65e+173], N[(b * t), $MachinePrecision], If[LessEqual[t, -1.2e+77], t$95$1, If[LessEqual[t, 2.05e-16], N[(N[(y - 2.0), $MachinePrecision] * b), $MachinePrecision], If[LessEqual[t, 9e+74], N[((-z) * y), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(-a\right) \cdot t\\
\mathbf{if}\;t \leq -1.65 \cdot 10^{+173}:\\
\;\;\;\;b \cdot t\\
\mathbf{elif}\;t \leq -1.2 \cdot 10^{+77}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 2.05 \cdot 10^{-16}:\\
\;\;\;\;\left(y - 2\right) \cdot b\\
\mathbf{elif}\;t \leq 9 \cdot 10^{+74}:\\
\;\;\;\;\left(-z\right) \cdot y\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if t < -1.64999999999999998e173Initial program 97.3%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6456.4
Applied rewrites56.4%
Taylor expanded in t around inf
Applied rewrites54.0%
if -1.64999999999999998e173 < t < -1.1999999999999999e77 or 8.9999999999999999e74 < t Initial program 92.6%
Taylor expanded in t around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6475.1
Applied rewrites75.1%
Taylor expanded in a around inf
Applied rewrites55.8%
if -1.1999999999999999e77 < t < 2.05000000000000003e-16Initial program 97.4%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6437.5
Applied rewrites37.5%
Taylor expanded in t around 0
Applied rewrites35.1%
if 2.05000000000000003e-16 < t < 8.9999999999999999e74Initial program 94.7%
Taylor expanded in y around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6448.9
Applied rewrites48.9%
Taylor expanded in z around inf
Applied rewrites38.6%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* (- a) t)))
(if (<= t -1.65e+173)
(* b t)
(if (<= t -1.1e+15)
t_1
(if (<= t 3.2e-124) (* b y) (if (<= t 9e+74) (* (- z) y) t_1))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = -a * t;
double tmp;
if (t <= -1.65e+173) {
tmp = b * t;
} else if (t <= -1.1e+15) {
tmp = t_1;
} else if (t <= 3.2e-124) {
tmp = b * y;
} else if (t <= 9e+74) {
tmp = -z * y;
} 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 * t
if (t <= (-1.65d+173)) then
tmp = b * t
else if (t <= (-1.1d+15)) then
tmp = t_1
else if (t <= 3.2d-124) then
tmp = b * y
else if (t <= 9d+74) then
tmp = -z * y
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 * t;
double tmp;
if (t <= -1.65e+173) {
tmp = b * t;
} else if (t <= -1.1e+15) {
tmp = t_1;
} else if (t <= 3.2e-124) {
tmp = b * y;
} else if (t <= 9e+74) {
tmp = -z * y;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = -a * t tmp = 0 if t <= -1.65e+173: tmp = b * t elif t <= -1.1e+15: tmp = t_1 elif t <= 3.2e-124: tmp = b * y elif t <= 9e+74: tmp = -z * y else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(-a) * t) tmp = 0.0 if (t <= -1.65e+173) tmp = Float64(b * t); elseif (t <= -1.1e+15) tmp = t_1; elseif (t <= 3.2e-124) tmp = Float64(b * y); elseif (t <= 9e+74) tmp = Float64(Float64(-z) * y); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = -a * t; tmp = 0.0; if (t <= -1.65e+173) tmp = b * t; elseif (t <= -1.1e+15) tmp = t_1; elseif (t <= 3.2e-124) tmp = b * y; elseif (t <= 9e+74) tmp = -z * y; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[((-a) * t), $MachinePrecision]}, If[LessEqual[t, -1.65e+173], N[(b * t), $MachinePrecision], If[LessEqual[t, -1.1e+15], t$95$1, If[LessEqual[t, 3.2e-124], N[(b * y), $MachinePrecision], If[LessEqual[t, 9e+74], N[((-z) * y), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(-a\right) \cdot t\\
\mathbf{if}\;t \leq -1.65 \cdot 10^{+173}:\\
\;\;\;\;b \cdot t\\
\mathbf{elif}\;t \leq -1.1 \cdot 10^{+15}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 3.2 \cdot 10^{-124}:\\
\;\;\;\;b \cdot y\\
\mathbf{elif}\;t \leq 9 \cdot 10^{+74}:\\
\;\;\;\;\left(-z\right) \cdot y\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if t < -1.64999999999999998e173Initial program 97.3%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6456.4
Applied rewrites56.4%
Taylor expanded in t around inf
Applied rewrites54.0%
if -1.64999999999999998e173 < t < -1.1e15 or 8.9999999999999999e74 < t Initial program 93.4%
Taylor expanded in t around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6472.6
Applied rewrites72.6%
Taylor expanded in a around inf
Applied rewrites52.1%
if -1.1e15 < t < 3.20000000000000004e-124Initial program 97.8%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6437.9
Applied rewrites37.9%
Taylor expanded in y around inf
Applied rewrites30.3%
if 3.20000000000000004e-124 < t < 8.9999999999999999e74Initial program 93.7%
Taylor expanded in y around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6435.9
Applied rewrites35.9%
Taylor expanded in z around inf
Applied rewrites30.0%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (fma (- b a) t (fma (- 1.0 y) z a))))
(if (<= t -5e+16)
t_1
(if (<= t 7.5e+80) (fma (- 1.0 y) z (fma (- y 2.0) b x)) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = fma((b - a), t, fma((1.0 - y), z, a));
double tmp;
if (t <= -5e+16) {
tmp = t_1;
} else if (t <= 7.5e+80) {
tmp = fma((1.0 - y), z, fma((y - 2.0), b, x));
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = fma(Float64(b - a), t, fma(Float64(1.0 - y), z, a)) tmp = 0.0 if (t <= -5e+16) tmp = t_1; elseif (t <= 7.5e+80) tmp = fma(Float64(1.0 - y), z, fma(Float64(y - 2.0), b, x)); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(b - a), $MachinePrecision] * t + N[(N[(1.0 - y), $MachinePrecision] * z + a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -5e+16], t$95$1, If[LessEqual[t, 7.5e+80], N[(N[(1.0 - y), $MachinePrecision] * z + N[(N[(y - 2.0), $MachinePrecision] * b + x), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(b - a, t, \mathsf{fma}\left(1 - y, z, a\right)\right)\\
\mathbf{if}\;t \leq -5 \cdot 10^{+16}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 7.5 \cdot 10^{+80}:\\
\;\;\;\;\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(y - 2, b, x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if t < -5e16 or 7.49999999999999994e80 < t Initial program 94.4%
Taylor expanded in x around 0
Applied rewrites93.1%
Taylor expanded in y around 0
Applied rewrites80.5%
Taylor expanded in b around 0
Applied rewrites88.5%
if -5e16 < t < 7.49999999999999994e80Initial program 96.9%
Taylor expanded in a around 0
sub-negN/A
+-commutativeN/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower--.f64N/A
lower-+.f6483.3
Applied rewrites83.3%
Taylor expanded in t around 0
Applied rewrites82.6%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (fma (- b a) t (+ a z))))
(if (<= t -1.05e+71)
t_1
(if (<= t 1.66e+81) (fma (- 1.0 y) z (fma (- y 2.0) b x)) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = fma((b - a), t, (a + z));
double tmp;
if (t <= -1.05e+71) {
tmp = t_1;
} else if (t <= 1.66e+81) {
tmp = fma((1.0 - y), z, fma((y - 2.0), b, x));
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = fma(Float64(b - a), t, Float64(a + z)) tmp = 0.0 if (t <= -1.05e+71) tmp = t_1; elseif (t <= 1.66e+81) tmp = fma(Float64(1.0 - y), z, fma(Float64(y - 2.0), b, x)); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(b - a), $MachinePrecision] * t + N[(a + z), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -1.05e+71], t$95$1, If[LessEqual[t, 1.66e+81], N[(N[(1.0 - y), $MachinePrecision] * z + N[(N[(y - 2.0), $MachinePrecision] * b + x), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(b - a, t, a + z\right)\\
\mathbf{if}\;t \leq -1.05 \cdot 10^{+71}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 1.66 \cdot 10^{+81}:\\
\;\;\;\;\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(y - 2, b, x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if t < -1.04999999999999995e71 or 1.66000000000000001e81 < t Initial program 94.0%
Taylor expanded in x around 0
Applied rewrites93.4%
Taylor expanded in y around 0
Applied rewrites83.2%
Taylor expanded in b around 0
Applied rewrites83.2%
if -1.04999999999999995e71 < t < 1.66000000000000001e81Initial program 97.0%
Taylor expanded in a around 0
sub-negN/A
+-commutativeN/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower--.f64N/A
lower-+.f6482.9
Applied rewrites82.9%
Taylor expanded in t around 0
Applied rewrites81.5%
(FPCore (x y z t a b)
:precision binary64
(if (<= a -5.3e-24)
(fma (- 1.0 t) a (* (- 1.0 y) z))
(if (<= a 3.6e+58)
(fma (- t 2.0) b (fma (- 1.0 y) z x))
(fma (- b a) t (+ a z)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (a <= -5.3e-24) {
tmp = fma((1.0 - t), a, ((1.0 - y) * z));
} else if (a <= 3.6e+58) {
tmp = fma((t - 2.0), b, fma((1.0 - y), z, x));
} else {
tmp = fma((b - a), t, (a + z));
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if (a <= -5.3e-24) tmp = fma(Float64(1.0 - t), a, Float64(Float64(1.0 - y) * z)); elseif (a <= 3.6e+58) tmp = fma(Float64(t - 2.0), b, fma(Float64(1.0 - y), z, x)); else tmp = fma(Float64(b - a), t, Float64(a + z)); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[a, -5.3e-24], N[(N[(1.0 - t), $MachinePrecision] * a + N[(N[(1.0 - y), $MachinePrecision] * z), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 3.6e+58], N[(N[(t - 2.0), $MachinePrecision] * b + N[(N[(1.0 - y), $MachinePrecision] * z + x), $MachinePrecision]), $MachinePrecision], N[(N[(b - a), $MachinePrecision] * t + N[(a + z), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -5.3 \cdot 10^{-24}:\\
\;\;\;\;\mathsf{fma}\left(1 - t, a, \left(1 - y\right) \cdot z\right)\\
\mathbf{elif}\;a \leq 3.6 \cdot 10^{+58}:\\
\;\;\;\;\mathsf{fma}\left(t - 2, b, \mathsf{fma}\left(1 - y, z, x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(b - a, t, a + z\right)\\
\end{array}
\end{array}
if a < -5.29999999999999969e-24Initial program 97.1%
Taylor expanded in x around 0
Applied rewrites88.8%
Taylor expanded in b around 0
Applied rewrites77.4%
if -5.29999999999999969e-24 < a < 3.59999999999999996e58Initial program 97.7%
Taylor expanded in a around 0
sub-negN/A
+-commutativeN/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower--.f64N/A
lower-+.f6492.3
Applied rewrites92.3%
Applied rewrites93.1%
Taylor expanded in y around 0
Applied rewrites75.8%
if 3.59999999999999996e58 < a Initial program 88.9%
Taylor expanded in x around 0
Applied rewrites92.8%
Taylor expanded in y around 0
Applied rewrites80.1%
Taylor expanded in b around 0
Applied rewrites80.2%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* (- 1.0 t) a)))
(if (<= a -4.6e-24)
t_1
(if (<= a -6.5e-158)
(* (- t 2.0) b)
(if (<= a 2.1e+36) (* (- y 2.0) b) t_1)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (1.0 - t) * a;
double tmp;
if (a <= -4.6e-24) {
tmp = t_1;
} else if (a <= -6.5e-158) {
tmp = (t - 2.0) * b;
} else if (a <= 2.1e+36) {
tmp = (y - 2.0) * b;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = (1.0d0 - t) * a
if (a <= (-4.6d-24)) then
tmp = t_1
else if (a <= (-6.5d-158)) then
tmp = (t - 2.0d0) * b
else if (a <= 2.1d+36) then
tmp = (y - 2.0d0) * b
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (1.0 - t) * a;
double tmp;
if (a <= -4.6e-24) {
tmp = t_1;
} else if (a <= -6.5e-158) {
tmp = (t - 2.0) * b;
} else if (a <= 2.1e+36) {
tmp = (y - 2.0) * b;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (1.0 - t) * a tmp = 0 if a <= -4.6e-24: tmp = t_1 elif a <= -6.5e-158: tmp = (t - 2.0) * b elif a <= 2.1e+36: tmp = (y - 2.0) * b else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(1.0 - t) * a) tmp = 0.0 if (a <= -4.6e-24) tmp = t_1; elseif (a <= -6.5e-158) tmp = Float64(Float64(t - 2.0) * b); elseif (a <= 2.1e+36) tmp = Float64(Float64(y - 2.0) * b); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (1.0 - t) * a; tmp = 0.0; if (a <= -4.6e-24) tmp = t_1; elseif (a <= -6.5e-158) tmp = (t - 2.0) * b; elseif (a <= 2.1e+36) tmp = (y - 2.0) * b; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(1.0 - t), $MachinePrecision] * a), $MachinePrecision]}, If[LessEqual[a, -4.6e-24], t$95$1, If[LessEqual[a, -6.5e-158], N[(N[(t - 2.0), $MachinePrecision] * b), $MachinePrecision], If[LessEqual[a, 2.1e+36], N[(N[(y - 2.0), $MachinePrecision] * b), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(1 - t\right) \cdot a\\
\mathbf{if}\;a \leq -4.6 \cdot 10^{-24}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq -6.5 \cdot 10^{-158}:\\
\;\;\;\;\left(t - 2\right) \cdot b\\
\mathbf{elif}\;a \leq 2.1 \cdot 10^{+36}:\\
\;\;\;\;\left(y - 2\right) \cdot b\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if a < -4.6000000000000002e-24 or 2.10000000000000004e36 < a Initial program 93.7%
Taylor expanded in a around inf
*-commutativeN/A
sub-negN/A
metadata-evalN/A
distribute-neg-inN/A
+-commutativeN/A
metadata-evalN/A
sub-negN/A
mul-1-negN/A
lower-*.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f6459.8
Applied rewrites59.8%
if -4.6000000000000002e-24 < a < -6.49999999999999971e-158Initial program 99.9%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6441.3
Applied rewrites41.3%
Taylor expanded in y around 0
Applied rewrites33.4%
if -6.49999999999999971e-158 < a < 2.10000000000000004e36Initial program 97.0%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6453.8
Applied rewrites53.8%
Taylor expanded in t around 0
Applied rewrites36.1%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* (- t 2.0) b)))
(if (<= b -6.5e+223)
(* b y)
(if (<= b -18000.0) t_1 (if (<= b 5.3e+84) (* (- a) t) t_1)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (t - 2.0) * b;
double tmp;
if (b <= -6.5e+223) {
tmp = b * y;
} else if (b <= -18000.0) {
tmp = t_1;
} else if (b <= 5.3e+84) {
tmp = -a * 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 = (t - 2.0d0) * b
if (b <= (-6.5d+223)) then
tmp = b * y
else if (b <= (-18000.0d0)) then
tmp = t_1
else if (b <= 5.3d+84) then
tmp = -a * 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 = (t - 2.0) * b;
double tmp;
if (b <= -6.5e+223) {
tmp = b * y;
} else if (b <= -18000.0) {
tmp = t_1;
} else if (b <= 5.3e+84) {
tmp = -a * t;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (t - 2.0) * b tmp = 0 if b <= -6.5e+223: tmp = b * y elif b <= -18000.0: tmp = t_1 elif b <= 5.3e+84: tmp = -a * t else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(t - 2.0) * b) tmp = 0.0 if (b <= -6.5e+223) tmp = Float64(b * y); elseif (b <= -18000.0) tmp = t_1; elseif (b <= 5.3e+84) tmp = Float64(Float64(-a) * t); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (t - 2.0) * b; tmp = 0.0; if (b <= -6.5e+223) tmp = b * y; elseif (b <= -18000.0) tmp = t_1; elseif (b <= 5.3e+84) tmp = -a * t; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(t - 2.0), $MachinePrecision] * b), $MachinePrecision]}, If[LessEqual[b, -6.5e+223], N[(b * y), $MachinePrecision], If[LessEqual[b, -18000.0], t$95$1, If[LessEqual[b, 5.3e+84], N[((-a) * t), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(t - 2\right) \cdot b\\
\mathbf{if}\;b \leq -6.5 \cdot 10^{+223}:\\
\;\;\;\;b \cdot y\\
\mathbf{elif}\;b \leq -18000:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 5.3 \cdot 10^{+84}:\\
\;\;\;\;\left(-a\right) \cdot t\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -6.5000000000000001e223Initial program 80.0%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6490.0
Applied rewrites90.0%
Taylor expanded in y around inf
Applied rewrites65.0%
if -6.5000000000000001e223 < b < -18000 or 5.3000000000000003e84 < b Initial program 92.0%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6463.9
Applied rewrites63.9%
Taylor expanded in y around 0
Applied rewrites45.0%
if -18000 < b < 5.3000000000000003e84Initial program 99.9%
Taylor expanded in t around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6439.9
Applied rewrites39.9%
Taylor expanded in a around inf
Applied rewrites35.9%
(FPCore (x y z t a b) :precision binary64 (if (<= a -2.85e-25) (fma (- 1.0 t) a (* (- 1.0 y) z)) (if (<= a 3.9e+57) (fma (- (+ t y) 2.0) b x) (fma (- b a) t (+ a z)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (a <= -2.85e-25) {
tmp = fma((1.0 - t), a, ((1.0 - y) * z));
} else if (a <= 3.9e+57) {
tmp = fma(((t + y) - 2.0), b, x);
} else {
tmp = fma((b - a), t, (a + z));
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if (a <= -2.85e-25) tmp = fma(Float64(1.0 - t), a, Float64(Float64(1.0 - y) * z)); elseif (a <= 3.9e+57) tmp = fma(Float64(Float64(t + y) - 2.0), b, x); else tmp = fma(Float64(b - a), t, Float64(a + z)); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[a, -2.85e-25], N[(N[(1.0 - t), $MachinePrecision] * a + N[(N[(1.0 - y), $MachinePrecision] * z), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 3.9e+57], N[(N[(N[(t + y), $MachinePrecision] - 2.0), $MachinePrecision] * b + x), $MachinePrecision], N[(N[(b - a), $MachinePrecision] * t + N[(a + z), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -2.85 \cdot 10^{-25}:\\
\;\;\;\;\mathsf{fma}\left(1 - t, a, \left(1 - y\right) \cdot z\right)\\
\mathbf{elif}\;a \leq 3.9 \cdot 10^{+57}:\\
\;\;\;\;\mathsf{fma}\left(\left(t + y\right) - 2, b, x\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(b - a, t, a + z\right)\\
\end{array}
\end{array}
if a < -2.8500000000000002e-25Initial program 97.1%
Taylor expanded in x around 0
Applied rewrites88.8%
Taylor expanded in b around 0
Applied rewrites77.4%
if -2.8500000000000002e-25 < a < 3.89999999999999968e57Initial program 97.7%
Taylor expanded in a around 0
sub-negN/A
+-commutativeN/A
*-commutativeN/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
neg-sub0N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
lower--.f64N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower--.f64N/A
lower-+.f6492.3
Applied rewrites92.3%
Applied rewrites93.1%
Taylor expanded in z around 0
Applied rewrites68.9%
if 3.89999999999999968e57 < a Initial program 88.9%
Taylor expanded in x around 0
Applied rewrites92.8%
Taylor expanded in y around 0
Applied rewrites80.1%
Taylor expanded in b around 0
Applied rewrites80.2%
(FPCore (x y z t a b) :precision binary64 (let* ((t_1 (* (- b z) y))) (if (<= y -5e+192) t_1 (if (<= y 6e+38) (fma (- b a) t (+ a z)) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (b - z) * y;
double tmp;
if (y <= -5e+192) {
tmp = t_1;
} else if (y <= 6e+38) {
tmp = fma((b - a), t, (a + z));
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b) t_1 = Float64(Float64(b - z) * y) tmp = 0.0 if (y <= -5e+192) tmp = t_1; elseif (y <= 6e+38) tmp = fma(Float64(b - a), t, Float64(a + z)); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(b - z), $MachinePrecision] * y), $MachinePrecision]}, If[LessEqual[y, -5e+192], t$95$1, If[LessEqual[y, 6e+38], N[(N[(b - a), $MachinePrecision] * t + N[(a + z), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(b - z\right) \cdot y\\
\mathbf{if}\;y \leq -5 \cdot 10^{+192}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 6 \cdot 10^{+38}:\\
\;\;\;\;\mathsf{fma}\left(b - a, t, a + z\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -5.00000000000000033e192 or 6.0000000000000002e38 < y Initial program 95.2%
Taylor expanded in y around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6476.7
Applied rewrites76.7%
if -5.00000000000000033e192 < y < 6.0000000000000002e38Initial program 95.9%
Taylor expanded in x around 0
Applied rewrites81.9%
Taylor expanded in y around 0
Applied rewrites76.0%
Taylor expanded in b around 0
Applied rewrites70.8%
(FPCore (x y z t a b) :precision binary64 (let* ((t_1 (* (- b a) t))) (if (<= t -4.1e+44) t_1 (if (<= t 1.05e+75) (* (- b z) y) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (b - a) * t;
double tmp;
if (t <= -4.1e+44) {
tmp = t_1;
} else if (t <= 1.05e+75) {
tmp = (b - z) * y;
} 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 - a) * t
if (t <= (-4.1d+44)) then
tmp = t_1
else if (t <= 1.05d+75) then
tmp = (b - z) * y
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 - a) * t;
double tmp;
if (t <= -4.1e+44) {
tmp = t_1;
} else if (t <= 1.05e+75) {
tmp = (b - z) * y;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (b - a) * t tmp = 0 if t <= -4.1e+44: tmp = t_1 elif t <= 1.05e+75: tmp = (b - z) * y else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(b - a) * t) tmp = 0.0 if (t <= -4.1e+44) tmp = t_1; elseif (t <= 1.05e+75) tmp = Float64(Float64(b - z) * y); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (b - a) * t; tmp = 0.0; if (t <= -4.1e+44) tmp = t_1; elseif (t <= 1.05e+75) tmp = (b - z) * y; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(b - a), $MachinePrecision] * t), $MachinePrecision]}, If[LessEqual[t, -4.1e+44], t$95$1, If[LessEqual[t, 1.05e+75], N[(N[(b - z), $MachinePrecision] * y), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(b - a\right) \cdot t\\
\mathbf{if}\;t \leq -4.1 \cdot 10^{+44}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 1.05 \cdot 10^{+75}:\\
\;\;\;\;\left(b - z\right) \cdot y\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if t < -4.09999999999999965e44 or 1.04999999999999999e75 < t Initial program 94.4%
Taylor expanded in t around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6476.8
Applied rewrites76.8%
if -4.09999999999999965e44 < t < 1.04999999999999999e75Initial program 96.8%
Taylor expanded in y around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6443.8
Applied rewrites43.8%
(FPCore (x y z t a b) :precision binary64 (if (<= y -1.02e+139) (* b y) (if (<= y 1.3e+181) (* (- a) t) (* b y))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -1.02e+139) {
tmp = b * y;
} else if (y <= 1.3e+181) {
tmp = -a * t;
} else {
tmp = b * y;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (y <= (-1.02d+139)) then
tmp = b * y
else if (y <= 1.3d+181) then
tmp = -a * t
else
tmp = b * y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -1.02e+139) {
tmp = b * y;
} else if (y <= 1.3e+181) {
tmp = -a * t;
} else {
tmp = b * y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -1.02e+139: tmp = b * y elif y <= 1.3e+181: tmp = -a * t else: tmp = b * y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -1.02e+139) tmp = Float64(b * y); elseif (y <= 1.3e+181) tmp = Float64(Float64(-a) * t); else tmp = Float64(b * y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -1.02e+139) tmp = b * y; elseif (y <= 1.3e+181) tmp = -a * t; else tmp = b * y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -1.02e+139], N[(b * y), $MachinePrecision], If[LessEqual[y, 1.3e+181], N[((-a) * t), $MachinePrecision], N[(b * y), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -1.02 \cdot 10^{+139}:\\
\;\;\;\;b \cdot y\\
\mathbf{elif}\;y \leq 1.3 \cdot 10^{+181}:\\
\;\;\;\;\left(-a\right) \cdot t\\
\mathbf{else}:\\
\;\;\;\;b \cdot y\\
\end{array}
\end{array}
if y < -1.02e139 or 1.3e181 < y Initial program 91.9%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6458.1
Applied rewrites58.1%
Taylor expanded in y around inf
Applied rewrites56.6%
if -1.02e139 < y < 1.3e181Initial program 96.8%
Taylor expanded in t around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f6449.0
Applied rewrites49.0%
Taylor expanded in a around inf
Applied rewrites32.2%
(FPCore (x y z t a b) :precision binary64 (if (<= t -1.38e+48) (* b t) (if (<= t 2e+130) (* b y) (* b t))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (t <= -1.38e+48) {
tmp = b * t;
} else if (t <= 2e+130) {
tmp = b * y;
} else {
tmp = b * 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 (t <= (-1.38d+48)) then
tmp = b * t
else if (t <= 2d+130) then
tmp = b * y
else
tmp = b * 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 (t <= -1.38e+48) {
tmp = b * t;
} else if (t <= 2e+130) {
tmp = b * y;
} else {
tmp = b * t;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if t <= -1.38e+48: tmp = b * t elif t <= 2e+130: tmp = b * y else: tmp = b * t return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (t <= -1.38e+48) tmp = Float64(b * t); elseif (t <= 2e+130) tmp = Float64(b * y); else tmp = Float64(b * t); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (t <= -1.38e+48) tmp = b * t; elseif (t <= 2e+130) tmp = b * y; else tmp = b * t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[t, -1.38e+48], N[(b * t), $MachinePrecision], If[LessEqual[t, 2e+130], N[(b * y), $MachinePrecision], N[(b * t), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.38 \cdot 10^{+48}:\\
\;\;\;\;b \cdot t\\
\mathbf{elif}\;t \leq 2 \cdot 10^{+130}:\\
\;\;\;\;b \cdot y\\
\mathbf{else}:\\
\;\;\;\;b \cdot t\\
\end{array}
\end{array}
if t < -1.3800000000000001e48 or 2.0000000000000001e130 < t Initial program 93.6%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6445.3
Applied rewrites45.3%
Taylor expanded in t around inf
Applied rewrites40.9%
if -1.3800000000000001e48 < t < 2.0000000000000001e130Initial program 97.2%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6432.4
Applied rewrites32.4%
Taylor expanded in y around inf
Applied rewrites25.0%
(FPCore (x y z t a b) :precision binary64 (* b t))
double code(double x, double y, double z, double t, double a, double b) {
return b * t;
}
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 = b * t
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return b * t;
}
def code(x, y, z, t, a, b): return b * t
function code(x, y, z, t, a, b) return Float64(b * t) end
function tmp = code(x, y, z, t, a, b) tmp = b * t; end
code[x_, y_, z_, t_, a_, b_] := N[(b * t), $MachinePrecision]
\begin{array}{l}
\\
b \cdot t
\end{array}
Initial program 95.6%
Taylor expanded in b around inf
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-+.f6437.9
Applied rewrites37.9%
Taylor expanded in t around inf
Applied rewrites19.1%
herbie shell --seed 2024296
(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)))