
(FPCore (x y z t a) :precision binary64 (+ x (/ (* (- y x) (- z t)) (- a t))))
double code(double x, double y, double z, double t, double a) {
return x + (((y - x) * (z - t)) / (a - t));
}
real(8) function code(x, y, z, t, a)
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
code = x + (((y - x) * (z - t)) / (a - t))
end function
public static double code(double x, double y, double z, double t, double a) {
return x + (((y - x) * (z - t)) / (a - t));
}
def code(x, y, z, t, a): return x + (((y - x) * (z - t)) / (a - t))
function code(x, y, z, t, a) return Float64(x + Float64(Float64(Float64(y - x) * Float64(z - t)) / Float64(a - t))) end
function tmp = code(x, y, z, t, a) tmp = x + (((y - x) * (z - t)) / (a - t)); end
code[x_, y_, z_, t_, a_] := N[(x + N[(N[(N[(y - x), $MachinePrecision] * N[(z - t), $MachinePrecision]), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 25 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a) :precision binary64 (+ x (/ (* (- y x) (- z t)) (- a t))))
double code(double x, double y, double z, double t, double a) {
return x + (((y - x) * (z - t)) / (a - t));
}
real(8) function code(x, y, z, t, a)
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
code = x + (((y - x) * (z - t)) / (a - t))
end function
public static double code(double x, double y, double z, double t, double a) {
return x + (((y - x) * (z - t)) / (a - t));
}
def code(x, y, z, t, a): return x + (((y - x) * (z - t)) / (a - t))
function code(x, y, z, t, a) return Float64(x + Float64(Float64(Float64(y - x) * Float64(z - t)) / Float64(a - t))) end
function tmp = code(x, y, z, t, a) tmp = x + (((y - x) * (z - t)) / (a - t)); end
code[x_, y_, z_, t_, a_] := N[(x + N[(N[(N[(y - x), $MachinePrecision] * N[(z - t), $MachinePrecision]), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}
\end{array}
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (/ (* (- y x) (- z t)) (- a t)))))
(if (or (<= t_1 -4e-246) (not (<= t_1 0.0)))
(fma (- y x) (/ (- z t) (- a t)) x)
(+ y (* (/ (- y x) t) (- a z))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - x) * (z - t)) / (a - t));
double tmp;
if ((t_1 <= -4e-246) || !(t_1 <= 0.0)) {
tmp = fma((y - x), ((z - t) / (a - t)), x);
} else {
tmp = y + (((y - x) / t) * (a - z));
}
return tmp;
}
function code(x, y, z, t, a) t_1 = Float64(x + Float64(Float64(Float64(y - x) * Float64(z - t)) / Float64(a - t))) tmp = 0.0 if ((t_1 <= -4e-246) || !(t_1 <= 0.0)) tmp = fma(Float64(y - x), Float64(Float64(z - t) / Float64(a - t)), x); else tmp = Float64(y + Float64(Float64(Float64(y - x) / t) * Float64(a - z))); end return tmp end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(N[(N[(y - x), $MachinePrecision] * N[(z - t), $MachinePrecision]), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[t$95$1, -4e-246], N[Not[LessEqual[t$95$1, 0.0]], $MachinePrecision]], N[(N[(y - x), $MachinePrecision] * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision], N[(y + N[(N[(N[(y - x), $MachinePrecision] / t), $MachinePrecision] * N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\\
\mathbf{if}\;t\_1 \leq -4 \cdot 10^{-246} \lor \neg \left(t\_1 \leq 0\right):\\
\;\;\;\;\mathsf{fma}\left(y - x, \frac{z - t}{a - t}, x\right)\\
\mathbf{else}:\\
\;\;\;\;y + \frac{y - x}{t} \cdot \left(a - z\right)\\
\end{array}
\end{array}
if (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < -3.99999999999999982e-246 or 0.0 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) Initial program 75.4%
+-commutative75.4%
associate-/l*93.1%
fma-define93.1%
Simplified93.1%
if -3.99999999999999982e-246 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < 0.0Initial program 4.7%
Taylor expanded in t around inf 99.6%
associate--l+99.7%
distribute-lft-out--99.7%
div-sub99.7%
mul-1-neg99.7%
unsub-neg99.7%
div-sub99.7%
associate-/l*99.9%
associate-/l*99.9%
distribute-rgt-out--99.9%
Simplified99.9%
Final simplification93.5%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (/ (* (- y x) (- z t)) (- a t)))))
(if (<= t_1 (- INFINITY))
(* z (+ (/ (- y x) (- a t)) (/ (+ x (* t (/ (- y x) (- t a)))) z)))
(if (<= t_1 -4e-246)
t_1
(if (<= t_1 0.0)
(+ y (* (/ (- y x) t) (- a z)))
(if (<= t_1 1e+232)
t_1
(+ x (* y (* (+ (/ x y) -1.0) (/ (- z t) (- t a)))))))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - x) * (z - t)) / (a - t));
double tmp;
if (t_1 <= -((double) INFINITY)) {
tmp = z * (((y - x) / (a - t)) + ((x + (t * ((y - x) / (t - a)))) / z));
} else if (t_1 <= -4e-246) {
tmp = t_1;
} else if (t_1 <= 0.0) {
tmp = y + (((y - x) / t) * (a - z));
} else if (t_1 <= 1e+232) {
tmp = t_1;
} else {
tmp = x + (y * (((x / y) + -1.0) * ((z - t) / (t - a))));
}
return tmp;
}
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - x) * (z - t)) / (a - t));
double tmp;
if (t_1 <= -Double.POSITIVE_INFINITY) {
tmp = z * (((y - x) / (a - t)) + ((x + (t * ((y - x) / (t - a)))) / z));
} else if (t_1 <= -4e-246) {
tmp = t_1;
} else if (t_1 <= 0.0) {
tmp = y + (((y - x) / t) * (a - z));
} else if (t_1 <= 1e+232) {
tmp = t_1;
} else {
tmp = x + (y * (((x / y) + -1.0) * ((z - t) / (t - a))));
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + (((y - x) * (z - t)) / (a - t)) tmp = 0 if t_1 <= -math.inf: tmp = z * (((y - x) / (a - t)) + ((x + (t * ((y - x) / (t - a)))) / z)) elif t_1 <= -4e-246: tmp = t_1 elif t_1 <= 0.0: tmp = y + (((y - x) / t) * (a - z)) elif t_1 <= 1e+232: tmp = t_1 else: tmp = x + (y * (((x / y) + -1.0) * ((z - t) / (t - a)))) return tmp
function code(x, y, z, t, a) t_1 = Float64(x + Float64(Float64(Float64(y - x) * Float64(z - t)) / Float64(a - t))) tmp = 0.0 if (t_1 <= Float64(-Inf)) tmp = Float64(z * Float64(Float64(Float64(y - x) / Float64(a - t)) + Float64(Float64(x + Float64(t * Float64(Float64(y - x) / Float64(t - a)))) / z))); elseif (t_1 <= -4e-246) tmp = t_1; elseif (t_1 <= 0.0) tmp = Float64(y + Float64(Float64(Float64(y - x) / t) * Float64(a - z))); elseif (t_1 <= 1e+232) tmp = t_1; else tmp = Float64(x + Float64(y * Float64(Float64(Float64(x / y) + -1.0) * Float64(Float64(z - t) / Float64(t - a))))); end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x + (((y - x) * (z - t)) / (a - t)); tmp = 0.0; if (t_1 <= -Inf) tmp = z * (((y - x) / (a - t)) + ((x + (t * ((y - x) / (t - a)))) / z)); elseif (t_1 <= -4e-246) tmp = t_1; elseif (t_1 <= 0.0) tmp = y + (((y - x) / t) * (a - z)); elseif (t_1 <= 1e+232) tmp = t_1; else tmp = x + (y * (((x / y) + -1.0) * ((z - t) / (t - a)))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(N[(N[(y - x), $MachinePrecision] * N[(z - t), $MachinePrecision]), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, (-Infinity)], N[(z * N[(N[(N[(y - x), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision] + N[(N[(x + N[(t * N[(N[(y - x), $MachinePrecision] / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$1, -4e-246], t$95$1, If[LessEqual[t$95$1, 0.0], N[(y + N[(N[(N[(y - x), $MachinePrecision] / t), $MachinePrecision] * N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$1, 1e+232], t$95$1, N[(x + N[(y * N[(N[(N[(x / y), $MachinePrecision] + -1.0), $MachinePrecision] * N[(N[(z - t), $MachinePrecision] / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\\
\mathbf{if}\;t\_1 \leq -\infty:\\
\;\;\;\;z \cdot \left(\frac{y - x}{a - t} + \frac{x + t \cdot \frac{y - x}{t - a}}{z}\right)\\
\mathbf{elif}\;t\_1 \leq -4 \cdot 10^{-246}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t\_1 \leq 0:\\
\;\;\;\;y + \frac{y - x}{t} \cdot \left(a - z\right)\\
\mathbf{elif}\;t\_1 \leq 10^{+232}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;x + y \cdot \left(\left(\frac{x}{y} + -1\right) \cdot \frac{z - t}{t - a}\right)\\
\end{array}
\end{array}
if (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < -inf.0Initial program 29.5%
Taylor expanded in z around -inf 46.6%
mul-1-neg46.6%
*-commutative46.6%
distribute-rgt-neg-in46.6%
Simplified80.7%
if -inf.0 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < -3.99999999999999982e-246 or 0.0 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < 1.00000000000000006e232Initial program 98.7%
if -3.99999999999999982e-246 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < 0.0Initial program 4.7%
Taylor expanded in t around inf 99.6%
associate--l+99.7%
distribute-lft-out--99.7%
div-sub99.7%
mul-1-neg99.7%
unsub-neg99.7%
div-sub99.7%
associate-/l*99.9%
associate-/l*99.9%
distribute-rgt-out--99.9%
Simplified99.9%
if 1.00000000000000006e232 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) Initial program 48.2%
Taylor expanded in y around -inf 68.7%
mul-1-neg68.7%
*-commutative68.7%
distribute-rgt-neg-in68.7%
+-commutative68.7%
times-frac76.3%
distribute-rgt-out78.2%
Simplified78.2%
Final simplification91.6%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (/ (* (- y x) (- z t)) (- a t)))))
(if (<= t_1 (- INFINITY))
(+ x (/ 1.0 (/ (/ (- a t) z) (- y x))))
(if (or (<= t_1 -4e-246) (and (not (<= t_1 0.0)) (<= t_1 5e+298)))
t_1
(+ y (* (/ (- y x) t) (- a z)))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - x) * (z - t)) / (a - t));
double tmp;
if (t_1 <= -((double) INFINITY)) {
tmp = x + (1.0 / (((a - t) / z) / (y - x)));
} else if ((t_1 <= -4e-246) || (!(t_1 <= 0.0) && (t_1 <= 5e+298))) {
tmp = t_1;
} else {
tmp = y + (((y - x) / t) * (a - z));
}
return tmp;
}
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - x) * (z - t)) / (a - t));
double tmp;
if (t_1 <= -Double.POSITIVE_INFINITY) {
tmp = x + (1.0 / (((a - t) / z) / (y - x)));
} else if ((t_1 <= -4e-246) || (!(t_1 <= 0.0) && (t_1 <= 5e+298))) {
tmp = t_1;
} else {
tmp = y + (((y - x) / t) * (a - z));
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + (((y - x) * (z - t)) / (a - t)) tmp = 0 if t_1 <= -math.inf: tmp = x + (1.0 / (((a - t) / z) / (y - x))) elif (t_1 <= -4e-246) or (not (t_1 <= 0.0) and (t_1 <= 5e+298)): tmp = t_1 else: tmp = y + (((y - x) / t) * (a - z)) return tmp
function code(x, y, z, t, a) t_1 = Float64(x + Float64(Float64(Float64(y - x) * Float64(z - t)) / Float64(a - t))) tmp = 0.0 if (t_1 <= Float64(-Inf)) tmp = Float64(x + Float64(1.0 / Float64(Float64(Float64(a - t) / z) / Float64(y - x)))); elseif ((t_1 <= -4e-246) || (!(t_1 <= 0.0) && (t_1 <= 5e+298))) tmp = t_1; else tmp = Float64(y + Float64(Float64(Float64(y - x) / t) * Float64(a - z))); end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x + (((y - x) * (z - t)) / (a - t)); tmp = 0.0; if (t_1 <= -Inf) tmp = x + (1.0 / (((a - t) / z) / (y - x))); elseif ((t_1 <= -4e-246) || (~((t_1 <= 0.0)) && (t_1 <= 5e+298))) tmp = t_1; else tmp = y + (((y - x) / t) * (a - z)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(N[(N[(y - x), $MachinePrecision] * N[(z - t), $MachinePrecision]), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, (-Infinity)], N[(x + N[(1.0 / N[(N[(N[(a - t), $MachinePrecision] / z), $MachinePrecision] / N[(y - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[t$95$1, -4e-246], And[N[Not[LessEqual[t$95$1, 0.0]], $MachinePrecision], LessEqual[t$95$1, 5e+298]]], t$95$1, N[(y + N[(N[(N[(y - x), $MachinePrecision] / t), $MachinePrecision] * N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\\
\mathbf{if}\;t\_1 \leq -\infty:\\
\;\;\;\;x + \frac{1}{\frac{\frac{a - t}{z}}{y - x}}\\
\mathbf{elif}\;t\_1 \leq -4 \cdot 10^{-246} \lor \neg \left(t\_1 \leq 0\right) \land t\_1 \leq 5 \cdot 10^{+298}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;y + \frac{y - x}{t} \cdot \left(a - z\right)\\
\end{array}
\end{array}
if (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < -inf.0Initial program 29.5%
clear-num29.5%
inv-pow29.5%
*-commutative29.5%
associate-/r*86.1%
Applied egg-rr86.1%
unpow-186.1%
associate-/l/29.5%
*-commutative29.5%
Simplified29.5%
Taylor expanded in z around inf 36.4%
associate-/r*66.6%
Simplified66.6%
if -inf.0 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < -3.99999999999999982e-246 or 0.0 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < 5.0000000000000003e298Initial program 98.8%
if -3.99999999999999982e-246 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < 0.0 or 5.0000000000000003e298 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) Initial program 33.1%
Taylor expanded in t around inf 63.1%
associate--l+63.1%
distribute-lft-out--63.1%
div-sub66.6%
mul-1-neg66.6%
unsub-neg66.6%
div-sub63.1%
associate-/l*73.5%
associate-/l*73.6%
distribute-rgt-out--80.4%
Simplified80.4%
Final simplification88.8%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* x (/ z t))))
(if (<= a -1.46e-26)
x
(if (<= a -3.8e-175)
y
(if (<= a -5e-231)
t_1
(if (<= a 4.1e-160)
y
(if (<= a 8e-81)
t_1
(if (<= a 95000000000.0)
y
(if (<= a 3.5e+49) (* x (/ z (- a))) x)))))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x * (z / t);
double tmp;
if (a <= -1.46e-26) {
tmp = x;
} else if (a <= -3.8e-175) {
tmp = y;
} else if (a <= -5e-231) {
tmp = t_1;
} else if (a <= 4.1e-160) {
tmp = y;
} else if (a <= 8e-81) {
tmp = t_1;
} else if (a <= 95000000000.0) {
tmp = y;
} else if (a <= 3.5e+49) {
tmp = x * (z / -a);
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: tmp
t_1 = x * (z / t)
if (a <= (-1.46d-26)) then
tmp = x
else if (a <= (-3.8d-175)) then
tmp = y
else if (a <= (-5d-231)) then
tmp = t_1
else if (a <= 4.1d-160) then
tmp = y
else if (a <= 8d-81) then
tmp = t_1
else if (a <= 95000000000.0d0) then
tmp = y
else if (a <= 3.5d+49) then
tmp = x * (z / -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 t_1 = x * (z / t);
double tmp;
if (a <= -1.46e-26) {
tmp = x;
} else if (a <= -3.8e-175) {
tmp = y;
} else if (a <= -5e-231) {
tmp = t_1;
} else if (a <= 4.1e-160) {
tmp = y;
} else if (a <= 8e-81) {
tmp = t_1;
} else if (a <= 95000000000.0) {
tmp = y;
} else if (a <= 3.5e+49) {
tmp = x * (z / -a);
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x * (z / t) tmp = 0 if a <= -1.46e-26: tmp = x elif a <= -3.8e-175: tmp = y elif a <= -5e-231: tmp = t_1 elif a <= 4.1e-160: tmp = y elif a <= 8e-81: tmp = t_1 elif a <= 95000000000.0: tmp = y elif a <= 3.5e+49: tmp = x * (z / -a) else: tmp = x return tmp
function code(x, y, z, t, a) t_1 = Float64(x * Float64(z / t)) tmp = 0.0 if (a <= -1.46e-26) tmp = x; elseif (a <= -3.8e-175) tmp = y; elseif (a <= -5e-231) tmp = t_1; elseif (a <= 4.1e-160) tmp = y; elseif (a <= 8e-81) tmp = t_1; elseif (a <= 95000000000.0) tmp = y; elseif (a <= 3.5e+49) tmp = Float64(x * Float64(z / Float64(-a))); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x * (z / t); tmp = 0.0; if (a <= -1.46e-26) tmp = x; elseif (a <= -3.8e-175) tmp = y; elseif (a <= -5e-231) tmp = t_1; elseif (a <= 4.1e-160) tmp = y; elseif (a <= 8e-81) tmp = t_1; elseif (a <= 95000000000.0) tmp = y; elseif (a <= 3.5e+49) tmp = x * (z / -a); else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x * N[(z / t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -1.46e-26], x, If[LessEqual[a, -3.8e-175], y, If[LessEqual[a, -5e-231], t$95$1, If[LessEqual[a, 4.1e-160], y, If[LessEqual[a, 8e-81], t$95$1, If[LessEqual[a, 95000000000.0], y, If[LessEqual[a, 3.5e+49], N[(x * N[(z / (-a)), $MachinePrecision]), $MachinePrecision], x]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \frac{z}{t}\\
\mathbf{if}\;a \leq -1.46 \cdot 10^{-26}:\\
\;\;\;\;x\\
\mathbf{elif}\;a \leq -3.8 \cdot 10^{-175}:\\
\;\;\;\;y\\
\mathbf{elif}\;a \leq -5 \cdot 10^{-231}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq 4.1 \cdot 10^{-160}:\\
\;\;\;\;y\\
\mathbf{elif}\;a \leq 8 \cdot 10^{-81}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq 95000000000:\\
\;\;\;\;y\\
\mathbf{elif}\;a \leq 3.5 \cdot 10^{+49}:\\
\;\;\;\;x \cdot \frac{z}{-a}\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if a < -1.4599999999999999e-26 or 3.49999999999999975e49 < a Initial program 69.9%
Taylor expanded in a around inf 47.8%
if -1.4599999999999999e-26 < a < -3.8e-175 or -5.00000000000000023e-231 < a < 4.10000000000000002e-160 or 7.9999999999999997e-81 < a < 9.5e10Initial program 72.6%
Taylor expanded in t around inf 39.3%
if -3.8e-175 < a < -5.00000000000000023e-231 or 4.10000000000000002e-160 < a < 7.9999999999999997e-81Initial program 82.5%
Taylor expanded in x around inf 63.7%
mul-1-neg63.7%
unsub-neg63.7%
Simplified63.7%
Taylor expanded in a around 0 56.8%
if 9.5e10 < a < 3.49999999999999975e49Initial program 18.8%
Taylor expanded in x around inf 26.7%
mul-1-neg26.7%
unsub-neg26.7%
Simplified26.7%
Taylor expanded in t around 0 25.7%
*-commutative25.7%
Simplified25.7%
Taylor expanded in z around inf 26.9%
mul-1-neg26.9%
Simplified26.9%
Final simplification44.8%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* x (- 1.0 (/ z a)))))
(if (<= t -3.5e+31)
y
(if (<= t -3.5e-118)
t_1
(if (<= t -1.55e-216)
(+ x (/ (* y z) a))
(if (<= t 9.5e-200)
t_1
(if (<= t 9.5e-179)
(* y (/ (- z t) a))
(if (<= t 8e+93) t_1 y))))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double tmp;
if (t <= -3.5e+31) {
tmp = y;
} else if (t <= -3.5e-118) {
tmp = t_1;
} else if (t <= -1.55e-216) {
tmp = x + ((y * z) / a);
} else if (t <= 9.5e-200) {
tmp = t_1;
} else if (t <= 9.5e-179) {
tmp = y * ((z - t) / a);
} else if (t <= 8e+93) {
tmp = t_1;
} else {
tmp = y;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: tmp
t_1 = x * (1.0d0 - (z / a))
if (t <= (-3.5d+31)) then
tmp = y
else if (t <= (-3.5d-118)) then
tmp = t_1
else if (t <= (-1.55d-216)) then
tmp = x + ((y * z) / a)
else if (t <= 9.5d-200) then
tmp = t_1
else if (t <= 9.5d-179) then
tmp = y * ((z - t) / a)
else if (t <= 8d+93) then
tmp = t_1
else
tmp = y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double tmp;
if (t <= -3.5e+31) {
tmp = y;
} else if (t <= -3.5e-118) {
tmp = t_1;
} else if (t <= -1.55e-216) {
tmp = x + ((y * z) / a);
} else if (t <= 9.5e-200) {
tmp = t_1;
} else if (t <= 9.5e-179) {
tmp = y * ((z - t) / a);
} else if (t <= 8e+93) {
tmp = t_1;
} else {
tmp = y;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x * (1.0 - (z / a)) tmp = 0 if t <= -3.5e+31: tmp = y elif t <= -3.5e-118: tmp = t_1 elif t <= -1.55e-216: tmp = x + ((y * z) / a) elif t <= 9.5e-200: tmp = t_1 elif t <= 9.5e-179: tmp = y * ((z - t) / a) elif t <= 8e+93: tmp = t_1 else: tmp = y return tmp
function code(x, y, z, t, a) t_1 = Float64(x * Float64(1.0 - Float64(z / a))) tmp = 0.0 if (t <= -3.5e+31) tmp = y; elseif (t <= -3.5e-118) tmp = t_1; elseif (t <= -1.55e-216) tmp = Float64(x + Float64(Float64(y * z) / a)); elseif (t <= 9.5e-200) tmp = t_1; elseif (t <= 9.5e-179) tmp = Float64(y * Float64(Float64(z - t) / a)); elseif (t <= 8e+93) tmp = t_1; else tmp = y; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x * (1.0 - (z / a)); tmp = 0.0; if (t <= -3.5e+31) tmp = y; elseif (t <= -3.5e-118) tmp = t_1; elseif (t <= -1.55e-216) tmp = x + ((y * z) / a); elseif (t <= 9.5e-200) tmp = t_1; elseif (t <= 9.5e-179) tmp = y * ((z - t) / a); elseif (t <= 8e+93) tmp = t_1; else tmp = y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -3.5e+31], y, If[LessEqual[t, -3.5e-118], t$95$1, If[LessEqual[t, -1.55e-216], N[(x + N[(N[(y * z), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 9.5e-200], t$95$1, If[LessEqual[t, 9.5e-179], N[(y * N[(N[(z - t), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 8e+93], t$95$1, y]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(1 - \frac{z}{a}\right)\\
\mathbf{if}\;t \leq -3.5 \cdot 10^{+31}:\\
\;\;\;\;y\\
\mathbf{elif}\;t \leq -3.5 \cdot 10^{-118}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq -1.55 \cdot 10^{-216}:\\
\;\;\;\;x + \frac{y \cdot z}{a}\\
\mathbf{elif}\;t \leq 9.5 \cdot 10^{-200}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 9.5 \cdot 10^{-179}:\\
\;\;\;\;y \cdot \frac{z - t}{a}\\
\mathbf{elif}\;t \leq 8 \cdot 10^{+93}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}
\end{array}
if t < -3.5e31 or 8.00000000000000035e93 < t Initial program 45.1%
Taylor expanded in t around inf 45.3%
if -3.5e31 < t < -3.5e-118 or -1.5500000000000001e-216 < t < 9.4999999999999995e-200 or 9.50000000000000037e-179 < t < 8.00000000000000035e93Initial program 85.1%
Taylor expanded in x around inf 65.2%
mul-1-neg65.2%
unsub-neg65.2%
Simplified65.2%
Taylor expanded in t around 0 58.7%
*-commutative58.7%
Simplified58.7%
if -3.5e-118 < t < -1.5500000000000001e-216Initial program 94.6%
Taylor expanded in y around inf 84.7%
*-commutative84.7%
Simplified84.7%
Taylor expanded in t around 0 63.6%
if 9.4999999999999995e-200 < t < 9.50000000000000037e-179Initial program 80.9%
Taylor expanded in y around inf 99.7%
associate-+r+99.7%
associate--l+99.7%
fma-define99.7%
associate-/l*99.7%
*-commutative99.7%
div-sub99.7%
Simplified99.7%
Taylor expanded in y around inf 99.7%
div-sub99.7%
Simplified99.7%
Taylor expanded in a around inf 80.9%
associate-/l*99.7%
Simplified99.7%
Final simplification54.9%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* x (- 1.0 (/ z a)))))
(if (<= t -8.6e+32)
y
(if (<= t -2.05e-119)
t_1
(if (<= t -2.2e-213)
(+ x (/ (* y z) a))
(if (<= t 9.5e-200)
(- x (* x (/ z a)))
(if (<= t 9.5e-179)
(* y (/ (- z t) a))
(if (<= t 2.05e+93) t_1 y))))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double tmp;
if (t <= -8.6e+32) {
tmp = y;
} else if (t <= -2.05e-119) {
tmp = t_1;
} else if (t <= -2.2e-213) {
tmp = x + ((y * z) / a);
} else if (t <= 9.5e-200) {
tmp = x - (x * (z / a));
} else if (t <= 9.5e-179) {
tmp = y * ((z - t) / a);
} else if (t <= 2.05e+93) {
tmp = t_1;
} else {
tmp = y;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: tmp
t_1 = x * (1.0d0 - (z / a))
if (t <= (-8.6d+32)) then
tmp = y
else if (t <= (-2.05d-119)) then
tmp = t_1
else if (t <= (-2.2d-213)) then
tmp = x + ((y * z) / a)
else if (t <= 9.5d-200) then
tmp = x - (x * (z / a))
else if (t <= 9.5d-179) then
tmp = y * ((z - t) / a)
else if (t <= 2.05d+93) then
tmp = t_1
else
tmp = y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double tmp;
if (t <= -8.6e+32) {
tmp = y;
} else if (t <= -2.05e-119) {
tmp = t_1;
} else if (t <= -2.2e-213) {
tmp = x + ((y * z) / a);
} else if (t <= 9.5e-200) {
tmp = x - (x * (z / a));
} else if (t <= 9.5e-179) {
tmp = y * ((z - t) / a);
} else if (t <= 2.05e+93) {
tmp = t_1;
} else {
tmp = y;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x * (1.0 - (z / a)) tmp = 0 if t <= -8.6e+32: tmp = y elif t <= -2.05e-119: tmp = t_1 elif t <= -2.2e-213: tmp = x + ((y * z) / a) elif t <= 9.5e-200: tmp = x - (x * (z / a)) elif t <= 9.5e-179: tmp = y * ((z - t) / a) elif t <= 2.05e+93: tmp = t_1 else: tmp = y return tmp
function code(x, y, z, t, a) t_1 = Float64(x * Float64(1.0 - Float64(z / a))) tmp = 0.0 if (t <= -8.6e+32) tmp = y; elseif (t <= -2.05e-119) tmp = t_1; elseif (t <= -2.2e-213) tmp = Float64(x + Float64(Float64(y * z) / a)); elseif (t <= 9.5e-200) tmp = Float64(x - Float64(x * Float64(z / a))); elseif (t <= 9.5e-179) tmp = Float64(y * Float64(Float64(z - t) / a)); elseif (t <= 2.05e+93) tmp = t_1; else tmp = y; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x * (1.0 - (z / a)); tmp = 0.0; if (t <= -8.6e+32) tmp = y; elseif (t <= -2.05e-119) tmp = t_1; elseif (t <= -2.2e-213) tmp = x + ((y * z) / a); elseif (t <= 9.5e-200) tmp = x - (x * (z / a)); elseif (t <= 9.5e-179) tmp = y * ((z - t) / a); elseif (t <= 2.05e+93) tmp = t_1; else tmp = y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -8.6e+32], y, If[LessEqual[t, -2.05e-119], t$95$1, If[LessEqual[t, -2.2e-213], N[(x + N[(N[(y * z), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 9.5e-200], N[(x - N[(x * N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 9.5e-179], N[(y * N[(N[(z - t), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 2.05e+93], t$95$1, y]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(1 - \frac{z}{a}\right)\\
\mathbf{if}\;t \leq -8.6 \cdot 10^{+32}:\\
\;\;\;\;y\\
\mathbf{elif}\;t \leq -2.05 \cdot 10^{-119}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq -2.2 \cdot 10^{-213}:\\
\;\;\;\;x + \frac{y \cdot z}{a}\\
\mathbf{elif}\;t \leq 9.5 \cdot 10^{-200}:\\
\;\;\;\;x - x \cdot \frac{z}{a}\\
\mathbf{elif}\;t \leq 9.5 \cdot 10^{-179}:\\
\;\;\;\;y \cdot \frac{z - t}{a}\\
\mathbf{elif}\;t \leq 2.05 \cdot 10^{+93}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}
\end{array}
if t < -8.5999999999999994e32 or 2.0500000000000001e93 < t Initial program 45.1%
Taylor expanded in t around inf 45.3%
if -8.5999999999999994e32 < t < -2.0500000000000001e-119 or 9.50000000000000037e-179 < t < 2.0500000000000001e93Initial program 84.2%
Taylor expanded in x around inf 59.7%
mul-1-neg59.7%
unsub-neg59.7%
Simplified59.7%
Taylor expanded in t around 0 50.9%
*-commutative50.9%
Simplified50.9%
if -2.0500000000000001e-119 < t < -2.2000000000000001e-213Initial program 94.6%
Taylor expanded in y around inf 84.7%
*-commutative84.7%
Simplified84.7%
Taylor expanded in t around 0 63.6%
if -2.2000000000000001e-213 < t < 9.4999999999999995e-200Initial program 86.8%
Taylor expanded in x around inf 75.4%
mul-1-neg75.4%
unsub-neg75.4%
Simplified75.4%
Taylor expanded in t around 0 73.5%
*-commutative73.5%
Simplified73.5%
Taylor expanded in z around 0 64.5%
mul-1-neg64.5%
unsub-neg64.5%
associate-/l*73.5%
Simplified73.5%
if 9.4999999999999995e-200 < t < 9.50000000000000037e-179Initial program 80.9%
Taylor expanded in y around inf 99.7%
associate-+r+99.7%
associate--l+99.7%
fma-define99.7%
associate-/l*99.7%
*-commutative99.7%
div-sub99.7%
Simplified99.7%
Taylor expanded in y around inf 99.7%
div-sub99.7%
Simplified99.7%
Taylor expanded in a around inf 80.9%
associate-/l*99.7%
Simplified99.7%
Final simplification54.9%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (/ 1.0 (/ (/ (- a t) z) (- y x)))))
(t_2 (+ y (* (/ (- y x) t) (- a z)))))
(if (<= t -3.5e+45)
t_2
(if (<= t 5.4e-81)
t_1
(if (<= t 410.0)
(* y (+ (/ (- z t) (- a t)) (/ x y)))
(if (<= t 1.8e+93) t_1 t_2))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + (1.0 / (((a - t) / z) / (y - x)));
double t_2 = y + (((y - x) / t) * (a - z));
double tmp;
if (t <= -3.5e+45) {
tmp = t_2;
} else if (t <= 5.4e-81) {
tmp = t_1;
} else if (t <= 410.0) {
tmp = y * (((z - t) / (a - t)) + (x / y));
} else if (t <= 1.8e+93) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = x + (1.0d0 / (((a - t) / z) / (y - x)))
t_2 = y + (((y - x) / t) * (a - z))
if (t <= (-3.5d+45)) then
tmp = t_2
else if (t <= 5.4d-81) then
tmp = t_1
else if (t <= 410.0d0) then
tmp = y * (((z - t) / (a - t)) + (x / y))
else if (t <= 1.8d+93) 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 t_1 = x + (1.0 / (((a - t) / z) / (y - x)));
double t_2 = y + (((y - x) / t) * (a - z));
double tmp;
if (t <= -3.5e+45) {
tmp = t_2;
} else if (t <= 5.4e-81) {
tmp = t_1;
} else if (t <= 410.0) {
tmp = y * (((z - t) / (a - t)) + (x / y));
} else if (t <= 1.8e+93) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + (1.0 / (((a - t) / z) / (y - x))) t_2 = y + (((y - x) / t) * (a - z)) tmp = 0 if t <= -3.5e+45: tmp = t_2 elif t <= 5.4e-81: tmp = t_1 elif t <= 410.0: tmp = y * (((z - t) / (a - t)) + (x / y)) elif t <= 1.8e+93: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a) t_1 = Float64(x + Float64(1.0 / Float64(Float64(Float64(a - t) / z) / Float64(y - x)))) t_2 = Float64(y + Float64(Float64(Float64(y - x) / t) * Float64(a - z))) tmp = 0.0 if (t <= -3.5e+45) tmp = t_2; elseif (t <= 5.4e-81) tmp = t_1; elseif (t <= 410.0) tmp = Float64(y * Float64(Float64(Float64(z - t) / Float64(a - t)) + Float64(x / y))); elseif (t <= 1.8e+93) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x + (1.0 / (((a - t) / z) / (y - x))); t_2 = y + (((y - x) / t) * (a - z)); tmp = 0.0; if (t <= -3.5e+45) tmp = t_2; elseif (t <= 5.4e-81) tmp = t_1; elseif (t <= 410.0) tmp = y * (((z - t) / (a - t)) + (x / y)); elseif (t <= 1.8e+93) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(1.0 / N[(N[(N[(a - t), $MachinePrecision] / z), $MachinePrecision] / N[(y - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(y + N[(N[(N[(y - x), $MachinePrecision] / t), $MachinePrecision] * N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -3.5e+45], t$95$2, If[LessEqual[t, 5.4e-81], t$95$1, If[LessEqual[t, 410.0], N[(y * N[(N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision] + N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.8e+93], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{1}{\frac{\frac{a - t}{z}}{y - x}}\\
t_2 := y + \frac{y - x}{t} \cdot \left(a - z\right)\\
\mathbf{if}\;t \leq -3.5 \cdot 10^{+45}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq 5.4 \cdot 10^{-81}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 410:\\
\;\;\;\;y \cdot \left(\frac{z - t}{a - t} + \frac{x}{y}\right)\\
\mathbf{elif}\;t \leq 1.8 \cdot 10^{+93}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if t < -3.50000000000000023e45 or 1.8e93 < t Initial program 42.6%
Taylor expanded in t around inf 62.9%
associate--l+62.9%
distribute-lft-out--62.9%
div-sub62.9%
mul-1-neg62.9%
unsub-neg62.9%
div-sub62.9%
associate-/l*78.8%
associate-/l*84.2%
distribute-rgt-out--84.2%
Simplified84.2%
if -3.50000000000000023e45 < t < 5.39999999999999979e-81 or 410 < t < 1.8e93Initial program 86.2%
clear-num86.0%
inv-pow86.0%
*-commutative86.0%
associate-/r*94.2%
Applied egg-rr94.2%
unpow-194.2%
associate-/l/86.0%
*-commutative86.0%
Simplified86.0%
Taylor expanded in z around inf 78.8%
associate-/r*87.0%
Simplified87.0%
if 5.39999999999999979e-81 < t < 410Initial program 87.4%
Taylor expanded in y around inf 82.7%
associate-+r+82.7%
associate--l+82.7%
fma-define82.7%
associate-/l*95.5%
*-commutative95.5%
div-sub95.5%
Simplified95.5%
Taylor expanded in a around inf 87.1%
Final simplification86.0%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* y (/ z (- a t)))) (t_2 (* x (- 1.0 (/ z a)))))
(if (<= x -1.32e-80)
t_2
(if (<= x -9e-135)
t_1
(if (<= x -3.9e-140)
(/ (* x z) (- t a))
(if (<= x 6e-169)
(* t (/ y (- t a)))
(if (<= x 1.05e-9) t_1 t_2)))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = y * (z / (a - t));
double t_2 = x * (1.0 - (z / a));
double tmp;
if (x <= -1.32e-80) {
tmp = t_2;
} else if (x <= -9e-135) {
tmp = t_1;
} else if (x <= -3.9e-140) {
tmp = (x * z) / (t - a);
} else if (x <= 6e-169) {
tmp = t * (y / (t - a));
} else if (x <= 1.05e-9) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = y * (z / (a - t))
t_2 = x * (1.0d0 - (z / a))
if (x <= (-1.32d-80)) then
tmp = t_2
else if (x <= (-9d-135)) then
tmp = t_1
else if (x <= (-3.9d-140)) then
tmp = (x * z) / (t - a)
else if (x <= 6d-169) then
tmp = t * (y / (t - a))
else if (x <= 1.05d-9) 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 t_1 = y * (z / (a - t));
double t_2 = x * (1.0 - (z / a));
double tmp;
if (x <= -1.32e-80) {
tmp = t_2;
} else if (x <= -9e-135) {
tmp = t_1;
} else if (x <= -3.9e-140) {
tmp = (x * z) / (t - a);
} else if (x <= 6e-169) {
tmp = t * (y / (t - a));
} else if (x <= 1.05e-9) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = y * (z / (a - t)) t_2 = x * (1.0 - (z / a)) tmp = 0 if x <= -1.32e-80: tmp = t_2 elif x <= -9e-135: tmp = t_1 elif x <= -3.9e-140: tmp = (x * z) / (t - a) elif x <= 6e-169: tmp = t * (y / (t - a)) elif x <= 1.05e-9: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a) t_1 = Float64(y * Float64(z / Float64(a - t))) t_2 = Float64(x * Float64(1.0 - Float64(z / a))) tmp = 0.0 if (x <= -1.32e-80) tmp = t_2; elseif (x <= -9e-135) tmp = t_1; elseif (x <= -3.9e-140) tmp = Float64(Float64(x * z) / Float64(t - a)); elseif (x <= 6e-169) tmp = Float64(t * Float64(y / Float64(t - a))); elseif (x <= 1.05e-9) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = y * (z / (a - t)); t_2 = x * (1.0 - (z / a)); tmp = 0.0; if (x <= -1.32e-80) tmp = t_2; elseif (x <= -9e-135) tmp = t_1; elseif (x <= -3.9e-140) tmp = (x * z) / (t - a); elseif (x <= 6e-169) tmp = t * (y / (t - a)); elseif (x <= 1.05e-9) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(y * N[(z / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -1.32e-80], t$95$2, If[LessEqual[x, -9e-135], t$95$1, If[LessEqual[x, -3.9e-140], N[(N[(x * z), $MachinePrecision] / N[(t - a), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 6e-169], N[(t * N[(y / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 1.05e-9], t$95$1, t$95$2]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \frac{z}{a - t}\\
t_2 := x \cdot \left(1 - \frac{z}{a}\right)\\
\mathbf{if}\;x \leq -1.32 \cdot 10^{-80}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;x \leq -9 \cdot 10^{-135}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;x \leq -3.9 \cdot 10^{-140}:\\
\;\;\;\;\frac{x \cdot z}{t - a}\\
\mathbf{elif}\;x \leq 6 \cdot 10^{-169}:\\
\;\;\;\;t \cdot \frac{y}{t - a}\\
\mathbf{elif}\;x \leq 1.05 \cdot 10^{-9}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if x < -1.31999999999999995e-80 or 1.0500000000000001e-9 < x Initial program 64.2%
Taylor expanded in x around inf 64.4%
mul-1-neg64.4%
unsub-neg64.4%
Simplified64.4%
Taylor expanded in t around 0 55.4%
*-commutative55.4%
Simplified55.4%
if -1.31999999999999995e-80 < x < -8.99999999999999975e-135 or 5.9999999999999998e-169 < x < 1.0500000000000001e-9Initial program 79.1%
Taylor expanded in y around inf 86.6%
associate-+r+86.6%
associate--l+86.6%
fma-define86.6%
associate-/l*89.4%
*-commutative89.4%
div-sub89.4%
Simplified89.4%
Taylor expanded in y around inf 70.5%
div-sub70.5%
Simplified70.5%
Taylor expanded in z around inf 42.3%
associate-/l*52.4%
Simplified52.4%
if -8.99999999999999975e-135 < x < -3.90000000000000019e-140Initial program 100.0%
Taylor expanded in x around inf 100.0%
mul-1-neg100.0%
unsub-neg100.0%
Simplified100.0%
Taylor expanded in z around inf 100.0%
mul-1-neg100.0%
*-commutative100.0%
Simplified100.0%
if -3.90000000000000019e-140 < x < 5.9999999999999998e-169Initial program 80.9%
Taylor expanded in z around 0 52.1%
mul-1-neg52.1%
unsub-neg52.1%
associate-/l*60.2%
Simplified60.2%
Taylor expanded in x around 0 43.8%
mul-1-neg43.8%
Simplified43.8%
associate-*r/49.1%
*-commutative49.1%
Applied egg-rr49.1%
Final simplification53.7%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (* y (* (+ (/ x y) -1.0) (/ (- z t) (- t a)))))))
(if (<= y -7.6e-145)
t_1
(if (<= y -3.4e-172)
(+ y (/ (+ (* (- y x) a) (* z (- x y))) t))
(if (<= y 1.15e-193)
(* x (+ (+ 1.0 (/ t (- a t))) (/ z (- t a))))
t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + (y * (((x / y) + -1.0) * ((z - t) / (t - a))));
double tmp;
if (y <= -7.6e-145) {
tmp = t_1;
} else if (y <= -3.4e-172) {
tmp = y + ((((y - x) * a) + (z * (x - y))) / t);
} else if (y <= 1.15e-193) {
tmp = x * ((1.0 + (t / (a - t))) + (z / (t - a)));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: tmp
t_1 = x + (y * (((x / y) + (-1.0d0)) * ((z - t) / (t - a))))
if (y <= (-7.6d-145)) then
tmp = t_1
else if (y <= (-3.4d-172)) then
tmp = y + ((((y - x) * a) + (z * (x - y))) / t)
else if (y <= 1.15d-193) then
tmp = x * ((1.0d0 + (t / (a - t))) + (z / (t - 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 t_1 = x + (y * (((x / y) + -1.0) * ((z - t) / (t - a))));
double tmp;
if (y <= -7.6e-145) {
tmp = t_1;
} else if (y <= -3.4e-172) {
tmp = y + ((((y - x) * a) + (z * (x - y))) / t);
} else if (y <= 1.15e-193) {
tmp = x * ((1.0 + (t / (a - t))) + (z / (t - a)));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + (y * (((x / y) + -1.0) * ((z - t) / (t - a)))) tmp = 0 if y <= -7.6e-145: tmp = t_1 elif y <= -3.4e-172: tmp = y + ((((y - x) * a) + (z * (x - y))) / t) elif y <= 1.15e-193: tmp = x * ((1.0 + (t / (a - t))) + (z / (t - a))) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(x + Float64(y * Float64(Float64(Float64(x / y) + -1.0) * Float64(Float64(z - t) / Float64(t - a))))) tmp = 0.0 if (y <= -7.6e-145) tmp = t_1; elseif (y <= -3.4e-172) tmp = Float64(y + Float64(Float64(Float64(Float64(y - x) * a) + Float64(z * Float64(x - y))) / t)); elseif (y <= 1.15e-193) tmp = Float64(x * Float64(Float64(1.0 + Float64(t / Float64(a - t))) + Float64(z / Float64(t - a)))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x + (y * (((x / y) + -1.0) * ((z - t) / (t - a)))); tmp = 0.0; if (y <= -7.6e-145) tmp = t_1; elseif (y <= -3.4e-172) tmp = y + ((((y - x) * a) + (z * (x - y))) / t); elseif (y <= 1.15e-193) tmp = x * ((1.0 + (t / (a - t))) + (z / (t - a))); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(y * N[(N[(N[(x / y), $MachinePrecision] + -1.0), $MachinePrecision] * N[(N[(z - t), $MachinePrecision] / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -7.6e-145], t$95$1, If[LessEqual[y, -3.4e-172], N[(y + N[(N[(N[(N[(y - x), $MachinePrecision] * a), $MachinePrecision] + N[(z * N[(x - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.15e-193], N[(x * N[(N[(1.0 + N[(t / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(z / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + y \cdot \left(\left(\frac{x}{y} + -1\right) \cdot \frac{z - t}{t - a}\right)\\
\mathbf{if}\;y \leq -7.6 \cdot 10^{-145}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq -3.4 \cdot 10^{-172}:\\
\;\;\;\;y + \frac{\left(y - x\right) \cdot a + z \cdot \left(x - y\right)}{t}\\
\mathbf{elif}\;y \leq 1.15 \cdot 10^{-193}:\\
\;\;\;\;x \cdot \left(\left(1 + \frac{t}{a - t}\right) + \frac{z}{t - a}\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -7.6000000000000004e-145 or 1.15000000000000004e-193 < y Initial program 73.0%
Taylor expanded in y around -inf 82.7%
mul-1-neg82.7%
*-commutative82.7%
distribute-rgt-neg-in82.7%
+-commutative82.7%
times-frac87.8%
distribute-rgt-out89.9%
Simplified89.9%
if -7.6000000000000004e-145 < y < -3.3999999999999999e-172Initial program 20.2%
Taylor expanded in t around -inf 99.7%
if -3.3999999999999999e-172 < y < 1.15000000000000004e-193Initial program 69.1%
Taylor expanded in x around -inf 86.9%
associate-*r*86.9%
neg-mul-186.9%
+-commutative86.9%
Simplified86.9%
Final simplification89.5%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (- x (* z (/ (- y x) (- t a)))))
(t_2 (+ y (* (/ (- y x) t) (- a z)))))
(if (<= t -1.6e+44)
t_2
(if (<= t 8e-79)
t_1
(if (<= t 58.0)
(* y (+ (/ (- z t) (- a t)) (/ x y)))
(if (<= t 2.05e+93) t_1 t_2))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x - (z * ((y - x) / (t - a)));
double t_2 = y + (((y - x) / t) * (a - z));
double tmp;
if (t <= -1.6e+44) {
tmp = t_2;
} else if (t <= 8e-79) {
tmp = t_1;
} else if (t <= 58.0) {
tmp = y * (((z - t) / (a - t)) + (x / y));
} else if (t <= 2.05e+93) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = x - (z * ((y - x) / (t - a)))
t_2 = y + (((y - x) / t) * (a - z))
if (t <= (-1.6d+44)) then
tmp = t_2
else if (t <= 8d-79) then
tmp = t_1
else if (t <= 58.0d0) then
tmp = y * (((z - t) / (a - t)) + (x / y))
else if (t <= 2.05d+93) 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 t_1 = x - (z * ((y - x) / (t - a)));
double t_2 = y + (((y - x) / t) * (a - z));
double tmp;
if (t <= -1.6e+44) {
tmp = t_2;
} else if (t <= 8e-79) {
tmp = t_1;
} else if (t <= 58.0) {
tmp = y * (((z - t) / (a - t)) + (x / y));
} else if (t <= 2.05e+93) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x - (z * ((y - x) / (t - a))) t_2 = y + (((y - x) / t) * (a - z)) tmp = 0 if t <= -1.6e+44: tmp = t_2 elif t <= 8e-79: tmp = t_1 elif t <= 58.0: tmp = y * (((z - t) / (a - t)) + (x / y)) elif t <= 2.05e+93: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a) t_1 = Float64(x - Float64(z * Float64(Float64(y - x) / Float64(t - a)))) t_2 = Float64(y + Float64(Float64(Float64(y - x) / t) * Float64(a - z))) tmp = 0.0 if (t <= -1.6e+44) tmp = t_2; elseif (t <= 8e-79) tmp = t_1; elseif (t <= 58.0) tmp = Float64(y * Float64(Float64(Float64(z - t) / Float64(a - t)) + Float64(x / y))); elseif (t <= 2.05e+93) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x - (z * ((y - x) / (t - a))); t_2 = y + (((y - x) / t) * (a - z)); tmp = 0.0; if (t <= -1.6e+44) tmp = t_2; elseif (t <= 8e-79) tmp = t_1; elseif (t <= 58.0) tmp = y * (((z - t) / (a - t)) + (x / y)); elseif (t <= 2.05e+93) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x - N[(z * N[(N[(y - x), $MachinePrecision] / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(y + N[(N[(N[(y - x), $MachinePrecision] / t), $MachinePrecision] * N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -1.6e+44], t$95$2, If[LessEqual[t, 8e-79], t$95$1, If[LessEqual[t, 58.0], N[(y * N[(N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision] + N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 2.05e+93], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x - z \cdot \frac{y - x}{t - a}\\
t_2 := y + \frac{y - x}{t} \cdot \left(a - z\right)\\
\mathbf{if}\;t \leq -1.6 \cdot 10^{+44}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq 8 \cdot 10^{-79}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 58:\\
\;\;\;\;y \cdot \left(\frac{z - t}{a - t} + \frac{x}{y}\right)\\
\mathbf{elif}\;t \leq 2.05 \cdot 10^{+93}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if t < -1.60000000000000002e44 or 2.0500000000000001e93 < t Initial program 42.6%
Taylor expanded in t around inf 62.9%
associate--l+62.9%
distribute-lft-out--62.9%
div-sub62.9%
mul-1-neg62.9%
unsub-neg62.9%
div-sub62.9%
associate-/l*78.8%
associate-/l*84.2%
distribute-rgt-out--84.2%
Simplified84.2%
if -1.60000000000000002e44 < t < 8e-79 or 58 < t < 2.0500000000000001e93Initial program 86.2%
Taylor expanded in z around inf 78.9%
associate-/l*84.5%
Simplified84.5%
if 8e-79 < t < 58Initial program 87.4%
Taylor expanded in y around inf 82.7%
associate-+r+82.7%
associate--l+82.7%
fma-define82.7%
associate-/l*95.5%
*-commutative95.5%
div-sub95.5%
Simplified95.5%
Taylor expanded in a around inf 87.1%
Final simplification84.6%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* x (/ z t))))
(if (<= a -1.85e-22)
x
(if (<= a -5.5e-175)
y
(if (<= a -4.5e-240)
t_1
(if (<= a 7e-161) y (if (<= a 1.75e+61) t_1 x)))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x * (z / t);
double tmp;
if (a <= -1.85e-22) {
tmp = x;
} else if (a <= -5.5e-175) {
tmp = y;
} else if (a <= -4.5e-240) {
tmp = t_1;
} else if (a <= 7e-161) {
tmp = y;
} else if (a <= 1.75e+61) {
tmp = t_1;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: tmp
t_1 = x * (z / t)
if (a <= (-1.85d-22)) then
tmp = x
else if (a <= (-5.5d-175)) then
tmp = y
else if (a <= (-4.5d-240)) then
tmp = t_1
else if (a <= 7d-161) then
tmp = y
else if (a <= 1.75d+61) then
tmp = t_1
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x * (z / t);
double tmp;
if (a <= -1.85e-22) {
tmp = x;
} else if (a <= -5.5e-175) {
tmp = y;
} else if (a <= -4.5e-240) {
tmp = t_1;
} else if (a <= 7e-161) {
tmp = y;
} else if (a <= 1.75e+61) {
tmp = t_1;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x * (z / t) tmp = 0 if a <= -1.85e-22: tmp = x elif a <= -5.5e-175: tmp = y elif a <= -4.5e-240: tmp = t_1 elif a <= 7e-161: tmp = y elif a <= 1.75e+61: tmp = t_1 else: tmp = x return tmp
function code(x, y, z, t, a) t_1 = Float64(x * Float64(z / t)) tmp = 0.0 if (a <= -1.85e-22) tmp = x; elseif (a <= -5.5e-175) tmp = y; elseif (a <= -4.5e-240) tmp = t_1; elseif (a <= 7e-161) tmp = y; elseif (a <= 1.75e+61) tmp = t_1; else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x * (z / t); tmp = 0.0; if (a <= -1.85e-22) tmp = x; elseif (a <= -5.5e-175) tmp = y; elseif (a <= -4.5e-240) tmp = t_1; elseif (a <= 7e-161) tmp = y; elseif (a <= 1.75e+61) tmp = t_1; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x * N[(z / t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -1.85e-22], x, If[LessEqual[a, -5.5e-175], y, If[LessEqual[a, -4.5e-240], t$95$1, If[LessEqual[a, 7e-161], y, If[LessEqual[a, 1.75e+61], t$95$1, x]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \frac{z}{t}\\
\mathbf{if}\;a \leq -1.85 \cdot 10^{-22}:\\
\;\;\;\;x\\
\mathbf{elif}\;a \leq -5.5 \cdot 10^{-175}:\\
\;\;\;\;y\\
\mathbf{elif}\;a \leq -4.5 \cdot 10^{-240}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq 7 \cdot 10^{-161}:\\
\;\;\;\;y\\
\mathbf{elif}\;a \leq 1.75 \cdot 10^{+61}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if a < -1.85e-22 or 1.75000000000000009e61 < a Initial program 70.0%
Taylor expanded in a around inf 48.2%
if -1.85e-22 < a < -5.50000000000000054e-175 or -4.5000000000000001e-240 < a < 7.00000000000000039e-161Initial program 71.1%
Taylor expanded in t around inf 41.9%
if -5.50000000000000054e-175 < a < -4.5000000000000001e-240 or 7.00000000000000039e-161 < a < 1.75000000000000009e61Initial program 72.5%
Taylor expanded in x around inf 47.4%
mul-1-neg47.4%
unsub-neg47.4%
Simplified47.4%
Taylor expanded in a around 0 36.6%
Final simplification43.3%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (/ (- z t) (- t a))))
(if (<= y -1.5e-166)
(* y (+ (/ (- z t) (- a t)) (/ (* x (+ 1.0 t_1)) y)))
(if (<= y 1.35e-189)
(* x (+ (+ 1.0 (/ t (- a t))) (/ z (- t a))))
(+ x (* y (* (+ (/ x y) -1.0) t_1)))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = (z - t) / (t - a);
double tmp;
if (y <= -1.5e-166) {
tmp = y * (((z - t) / (a - t)) + ((x * (1.0 + t_1)) / y));
} else if (y <= 1.35e-189) {
tmp = x * ((1.0 + (t / (a - t))) + (z / (t - a)));
} else {
tmp = x + (y * (((x / y) + -1.0) * t_1));
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: tmp
t_1 = (z - t) / (t - a)
if (y <= (-1.5d-166)) then
tmp = y * (((z - t) / (a - t)) + ((x * (1.0d0 + t_1)) / y))
else if (y <= 1.35d-189) then
tmp = x * ((1.0d0 + (t / (a - t))) + (z / (t - a)))
else
tmp = x + (y * (((x / y) + (-1.0d0)) * t_1))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = (z - t) / (t - a);
double tmp;
if (y <= -1.5e-166) {
tmp = y * (((z - t) / (a - t)) + ((x * (1.0 + t_1)) / y));
} else if (y <= 1.35e-189) {
tmp = x * ((1.0 + (t / (a - t))) + (z / (t - a)));
} else {
tmp = x + (y * (((x / y) + -1.0) * t_1));
}
return tmp;
}
def code(x, y, z, t, a): t_1 = (z - t) / (t - a) tmp = 0 if y <= -1.5e-166: tmp = y * (((z - t) / (a - t)) + ((x * (1.0 + t_1)) / y)) elif y <= 1.35e-189: tmp = x * ((1.0 + (t / (a - t))) + (z / (t - a))) else: tmp = x + (y * (((x / y) + -1.0) * t_1)) return tmp
function code(x, y, z, t, a) t_1 = Float64(Float64(z - t) / Float64(t - a)) tmp = 0.0 if (y <= -1.5e-166) tmp = Float64(y * Float64(Float64(Float64(z - t) / Float64(a - t)) + Float64(Float64(x * Float64(1.0 + t_1)) / y))); elseif (y <= 1.35e-189) tmp = Float64(x * Float64(Float64(1.0 + Float64(t / Float64(a - t))) + Float64(z / Float64(t - a)))); else tmp = Float64(x + Float64(y * Float64(Float64(Float64(x / y) + -1.0) * t_1))); end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = (z - t) / (t - a); tmp = 0.0; if (y <= -1.5e-166) tmp = y * (((z - t) / (a - t)) + ((x * (1.0 + t_1)) / y)); elseif (y <= 1.35e-189) tmp = x * ((1.0 + (t / (a - t))) + (z / (t - a))); else tmp = x + (y * (((x / y) + -1.0) * t_1)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(N[(z - t), $MachinePrecision] / N[(t - a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.5e-166], N[(y * N[(N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision] + N[(N[(x * N[(1.0 + t$95$1), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.35e-189], N[(x * N[(N[(1.0 + N[(t / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(z / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(y * N[(N[(N[(x / y), $MachinePrecision] + -1.0), $MachinePrecision] * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{z - t}{t - a}\\
\mathbf{if}\;y \leq -1.5 \cdot 10^{-166}:\\
\;\;\;\;y \cdot \left(\frac{z - t}{a - t} + \frac{x \cdot \left(1 + t\_1\right)}{y}\right)\\
\mathbf{elif}\;y \leq 1.35 \cdot 10^{-189}:\\
\;\;\;\;x \cdot \left(\left(1 + \frac{t}{a - t}\right) + \frac{z}{t - a}\right)\\
\mathbf{else}:\\
\;\;\;\;x + y \cdot \left(\left(\frac{x}{y} + -1\right) \cdot t\_1\right)\\
\end{array}
\end{array}
if y < -1.5000000000000001e-166Initial program 72.6%
Taylor expanded in y around -inf 87.5%
mul-1-neg87.5%
*-commutative87.5%
distribute-rgt-neg-in87.5%
Simplified94.2%
if -1.5000000000000001e-166 < y < 1.35e-189Initial program 66.8%
Taylor expanded in x around -inf 84.0%
associate-*r*84.0%
neg-mul-184.0%
+-commutative84.0%
Simplified84.0%
if 1.35e-189 < y Initial program 71.8%
Taylor expanded in y around -inf 79.7%
mul-1-neg79.7%
*-commutative79.7%
distribute-rgt-neg-in79.7%
+-commutative79.7%
times-frac83.3%
distribute-rgt-out86.9%
Simplified86.9%
Final simplification88.7%
(FPCore (x y z t a)
:precision binary64
(if (<= y -2.55e+250)
y
(if (<= y -1.05e+96)
(* y (/ z a))
(if (<= y -1.16e-147)
x
(if (<= y -2.7e-305) (* x (/ (- z a) t)) (if (<= y 10000000.0) x y))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (y <= -2.55e+250) {
tmp = y;
} else if (y <= -1.05e+96) {
tmp = y * (z / a);
} else if (y <= -1.16e-147) {
tmp = x;
} else if (y <= -2.7e-305) {
tmp = x * ((z - a) / t);
} else if (y <= 10000000.0) {
tmp = x;
} else {
tmp = y;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: tmp
if (y <= (-2.55d+250)) then
tmp = y
else if (y <= (-1.05d+96)) then
tmp = y * (z / a)
else if (y <= (-1.16d-147)) then
tmp = x
else if (y <= (-2.7d-305)) then
tmp = x * ((z - a) / t)
else if (y <= 10000000.0d0) then
tmp = x
else
tmp = y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (y <= -2.55e+250) {
tmp = y;
} else if (y <= -1.05e+96) {
tmp = y * (z / a);
} else if (y <= -1.16e-147) {
tmp = x;
} else if (y <= -2.7e-305) {
tmp = x * ((z - a) / t);
} else if (y <= 10000000.0) {
tmp = x;
} else {
tmp = y;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if y <= -2.55e+250: tmp = y elif y <= -1.05e+96: tmp = y * (z / a) elif y <= -1.16e-147: tmp = x elif y <= -2.7e-305: tmp = x * ((z - a) / t) elif y <= 10000000.0: tmp = x else: tmp = y return tmp
function code(x, y, z, t, a) tmp = 0.0 if (y <= -2.55e+250) tmp = y; elseif (y <= -1.05e+96) tmp = Float64(y * Float64(z / a)); elseif (y <= -1.16e-147) tmp = x; elseif (y <= -2.7e-305) tmp = Float64(x * Float64(Float64(z - a) / t)); elseif (y <= 10000000.0) tmp = x; else tmp = y; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (y <= -2.55e+250) tmp = y; elseif (y <= -1.05e+96) tmp = y * (z / a); elseif (y <= -1.16e-147) tmp = x; elseif (y <= -2.7e-305) tmp = x * ((z - a) / t); elseif (y <= 10000000.0) tmp = x; else tmp = y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[y, -2.55e+250], y, If[LessEqual[y, -1.05e+96], N[(y * N[(z / a), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, -1.16e-147], x, If[LessEqual[y, -2.7e-305], N[(x * N[(N[(z - a), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 10000000.0], x, y]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -2.55 \cdot 10^{+250}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq -1.05 \cdot 10^{+96}:\\
\;\;\;\;y \cdot \frac{z}{a}\\
\mathbf{elif}\;y \leq -1.16 \cdot 10^{-147}:\\
\;\;\;\;x\\
\mathbf{elif}\;y \leq -2.7 \cdot 10^{-305}:\\
\;\;\;\;x \cdot \frac{z - a}{t}\\
\mathbf{elif}\;y \leq 10000000:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}
\end{array}
if y < -2.55e250 or 1e7 < y Initial program 60.2%
Taylor expanded in t around inf 45.3%
if -2.55e250 < y < -1.0500000000000001e96Initial program 68.2%
Taylor expanded in y around inf 85.3%
associate-+r+85.3%
associate--l+85.3%
fma-define85.3%
associate-/l*90.1%
*-commutative90.1%
div-sub90.1%
Simplified90.1%
Taylor expanded in y around inf 81.4%
div-sub81.4%
Simplified81.4%
Taylor expanded in t around 0 40.4%
associate-/l*44.9%
Simplified44.9%
if -1.0500000000000001e96 < y < -1.1599999999999999e-147 or -2.6999999999999999e-305 < y < 1e7Initial program 80.3%
Taylor expanded in a around inf 36.2%
if -1.1599999999999999e-147 < y < -2.6999999999999999e-305Initial program 62.7%
Taylor expanded in x around -inf 77.2%
associate-*r*77.2%
neg-mul-177.2%
+-commutative77.2%
Simplified77.2%
Taylor expanded in t around -inf 54.7%
associate-/l*62.3%
Simplified62.3%
Final simplification43.4%
(FPCore (x y z t a)
:precision binary64
(if (<= y -4.7e+253)
y
(if (<= y -0.021)
(* y (/ z (- a t)))
(if (<= y -3.7e-145)
x
(if (<= y -8.6e-305) (* x (/ (- z a) t)) (if (<= y 8.6e+14) x y))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (y <= -4.7e+253) {
tmp = y;
} else if (y <= -0.021) {
tmp = y * (z / (a - t));
} else if (y <= -3.7e-145) {
tmp = x;
} else if (y <= -8.6e-305) {
tmp = x * ((z - a) / t);
} else if (y <= 8.6e+14) {
tmp = x;
} else {
tmp = y;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: tmp
if (y <= (-4.7d+253)) then
tmp = y
else if (y <= (-0.021d0)) then
tmp = y * (z / (a - t))
else if (y <= (-3.7d-145)) then
tmp = x
else if (y <= (-8.6d-305)) then
tmp = x * ((z - a) / t)
else if (y <= 8.6d+14) then
tmp = x
else
tmp = y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (y <= -4.7e+253) {
tmp = y;
} else if (y <= -0.021) {
tmp = y * (z / (a - t));
} else if (y <= -3.7e-145) {
tmp = x;
} else if (y <= -8.6e-305) {
tmp = x * ((z - a) / t);
} else if (y <= 8.6e+14) {
tmp = x;
} else {
tmp = y;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if y <= -4.7e+253: tmp = y elif y <= -0.021: tmp = y * (z / (a - t)) elif y <= -3.7e-145: tmp = x elif y <= -8.6e-305: tmp = x * ((z - a) / t) elif y <= 8.6e+14: tmp = x else: tmp = y return tmp
function code(x, y, z, t, a) tmp = 0.0 if (y <= -4.7e+253) tmp = y; elseif (y <= -0.021) tmp = Float64(y * Float64(z / Float64(a - t))); elseif (y <= -3.7e-145) tmp = x; elseif (y <= -8.6e-305) tmp = Float64(x * Float64(Float64(z - a) / t)); elseif (y <= 8.6e+14) tmp = x; else tmp = y; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (y <= -4.7e+253) tmp = y; elseif (y <= -0.021) tmp = y * (z / (a - t)); elseif (y <= -3.7e-145) tmp = x; elseif (y <= -8.6e-305) tmp = x * ((z - a) / t); elseif (y <= 8.6e+14) tmp = x; else tmp = y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[y, -4.7e+253], y, If[LessEqual[y, -0.021], N[(y * N[(z / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, -3.7e-145], x, If[LessEqual[y, -8.6e-305], N[(x * N[(N[(z - a), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 8.6e+14], x, y]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -4.7 \cdot 10^{+253}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq -0.021:\\
\;\;\;\;y \cdot \frac{z}{a - t}\\
\mathbf{elif}\;y \leq -3.7 \cdot 10^{-145}:\\
\;\;\;\;x\\
\mathbf{elif}\;y \leq -8.6 \cdot 10^{-305}:\\
\;\;\;\;x \cdot \frac{z - a}{t}\\
\mathbf{elif}\;y \leq 8.6 \cdot 10^{+14}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}
\end{array}
if y < -4.70000000000000022e253 or 8.6e14 < y Initial program 60.2%
Taylor expanded in t around inf 45.3%
if -4.70000000000000022e253 < y < -0.0210000000000000013Initial program 75.7%
Taylor expanded in y around inf 88.2%
associate-+r+88.2%
associate--l+88.2%
fma-define88.2%
associate-/l*92.6%
*-commutative92.6%
div-sub92.6%
Simplified92.6%
Taylor expanded in y around inf 64.0%
div-sub64.0%
Simplified64.0%
Taylor expanded in z around inf 39.8%
associate-/l*51.9%
Simplified51.9%
if -0.0210000000000000013 < y < -3.70000000000000013e-145 or -8.6000000000000004e-305 < y < 8.6e14Initial program 79.8%
Taylor expanded in a around inf 37.9%
if -3.70000000000000013e-145 < y < -8.6000000000000004e-305Initial program 62.7%
Taylor expanded in x around -inf 77.2%
associate-*r*77.2%
neg-mul-177.2%
+-commutative77.2%
Simplified77.2%
Taylor expanded in t around -inf 54.7%
associate-/l*62.3%
Simplified62.3%
Final simplification46.0%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* x (- 1.0 (/ z a)))))
(if (<= t -8.6e+32)
y
(if (<= t 6e-200)
t_1
(if (<= t 9.5e-179) (* y (/ (- z t) a)) (if (<= t 5e+94) t_1 y))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double tmp;
if (t <= -8.6e+32) {
tmp = y;
} else if (t <= 6e-200) {
tmp = t_1;
} else if (t <= 9.5e-179) {
tmp = y * ((z - t) / a);
} else if (t <= 5e+94) {
tmp = t_1;
} else {
tmp = y;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: tmp
t_1 = x * (1.0d0 - (z / a))
if (t <= (-8.6d+32)) then
tmp = y
else if (t <= 6d-200) then
tmp = t_1
else if (t <= 9.5d-179) then
tmp = y * ((z - t) / a)
else if (t <= 5d+94) then
tmp = t_1
else
tmp = y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double tmp;
if (t <= -8.6e+32) {
tmp = y;
} else if (t <= 6e-200) {
tmp = t_1;
} else if (t <= 9.5e-179) {
tmp = y * ((z - t) / a);
} else if (t <= 5e+94) {
tmp = t_1;
} else {
tmp = y;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x * (1.0 - (z / a)) tmp = 0 if t <= -8.6e+32: tmp = y elif t <= 6e-200: tmp = t_1 elif t <= 9.5e-179: tmp = y * ((z - t) / a) elif t <= 5e+94: tmp = t_1 else: tmp = y return tmp
function code(x, y, z, t, a) t_1 = Float64(x * Float64(1.0 - Float64(z / a))) tmp = 0.0 if (t <= -8.6e+32) tmp = y; elseif (t <= 6e-200) tmp = t_1; elseif (t <= 9.5e-179) tmp = Float64(y * Float64(Float64(z - t) / a)); elseif (t <= 5e+94) tmp = t_1; else tmp = y; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x * (1.0 - (z / a)); tmp = 0.0; if (t <= -8.6e+32) tmp = y; elseif (t <= 6e-200) tmp = t_1; elseif (t <= 9.5e-179) tmp = y * ((z - t) / a); elseif (t <= 5e+94) tmp = t_1; else tmp = y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -8.6e+32], y, If[LessEqual[t, 6e-200], t$95$1, If[LessEqual[t, 9.5e-179], N[(y * N[(N[(z - t), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 5e+94], t$95$1, y]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(1 - \frac{z}{a}\right)\\
\mathbf{if}\;t \leq -8.6 \cdot 10^{+32}:\\
\;\;\;\;y\\
\mathbf{elif}\;t \leq 6 \cdot 10^{-200}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 9.5 \cdot 10^{-179}:\\
\;\;\;\;y \cdot \frac{z - t}{a}\\
\mathbf{elif}\;t \leq 5 \cdot 10^{+94}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}
\end{array}
if t < -8.5999999999999994e32 or 5.0000000000000001e94 < t Initial program 45.1%
Taylor expanded in t around inf 45.3%
if -8.5999999999999994e32 < t < 5.99999999999999989e-200 or 9.50000000000000037e-179 < t < 5.0000000000000001e94Initial program 86.2%
Taylor expanded in x around inf 63.6%
mul-1-neg63.6%
unsub-neg63.6%
Simplified63.6%
Taylor expanded in t around 0 56.6%
*-commutative56.6%
Simplified56.6%
if 5.99999999999999989e-200 < t < 9.50000000000000037e-179Initial program 80.9%
Taylor expanded in y around inf 99.7%
associate-+r+99.7%
associate--l+99.7%
fma-define99.7%
associate-/l*99.7%
*-commutative99.7%
div-sub99.7%
Simplified99.7%
Taylor expanded in y around inf 99.7%
div-sub99.7%
Simplified99.7%
Taylor expanded in a around inf 80.9%
associate-/l*99.7%
Simplified99.7%
Final simplification53.3%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* x (- 1.0 (/ z a)))))
(if (<= x -1.86e-78)
t_1
(if (<= x 4.6e-169)
(* t (/ y (- t a)))
(if (<= x 1.15e-8) (* y (/ z (- a t))) t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double tmp;
if (x <= -1.86e-78) {
tmp = t_1;
} else if (x <= 4.6e-169) {
tmp = t * (y / (t - a));
} else if (x <= 1.15e-8) {
tmp = y * (z / (a - t));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: tmp
t_1 = x * (1.0d0 - (z / a))
if (x <= (-1.86d-78)) then
tmp = t_1
else if (x <= 4.6d-169) then
tmp = t * (y / (t - a))
else if (x <= 1.15d-8) then
tmp = y * (z / (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 t_1 = x * (1.0 - (z / a));
double tmp;
if (x <= -1.86e-78) {
tmp = t_1;
} else if (x <= 4.6e-169) {
tmp = t * (y / (t - a));
} else if (x <= 1.15e-8) {
tmp = y * (z / (a - t));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x * (1.0 - (z / a)) tmp = 0 if x <= -1.86e-78: tmp = t_1 elif x <= 4.6e-169: tmp = t * (y / (t - a)) elif x <= 1.15e-8: tmp = y * (z / (a - t)) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(x * Float64(1.0 - Float64(z / a))) tmp = 0.0 if (x <= -1.86e-78) tmp = t_1; elseif (x <= 4.6e-169) tmp = Float64(t * Float64(y / Float64(t - a))); elseif (x <= 1.15e-8) tmp = Float64(y * Float64(z / Float64(a - t))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x * (1.0 - (z / a)); tmp = 0.0; if (x <= -1.86e-78) tmp = t_1; elseif (x <= 4.6e-169) tmp = t * (y / (t - a)); elseif (x <= 1.15e-8) tmp = y * (z / (a - t)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -1.86e-78], t$95$1, If[LessEqual[x, 4.6e-169], N[(t * N[(y / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 1.15e-8], N[(y * N[(z / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(1 - \frac{z}{a}\right)\\
\mathbf{if}\;x \leq -1.86 \cdot 10^{-78}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;x \leq 4.6 \cdot 10^{-169}:\\
\;\;\;\;t \cdot \frac{y}{t - a}\\
\mathbf{elif}\;x \leq 1.15 \cdot 10^{-8}:\\
\;\;\;\;y \cdot \frac{z}{a - t}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if x < -1.85999999999999996e-78 or 1.15e-8 < x Initial program 64.2%
Taylor expanded in x around inf 64.4%
mul-1-neg64.4%
unsub-neg64.4%
Simplified64.4%
Taylor expanded in t around 0 55.4%
*-commutative55.4%
Simplified55.4%
if -1.85999999999999996e-78 < x < 4.6000000000000002e-169Initial program 82.2%
Taylor expanded in z around 0 48.4%
mul-1-neg48.4%
unsub-neg48.4%
associate-/l*53.8%
Simplified53.8%
Taylor expanded in x around 0 40.6%
mul-1-neg40.6%
Simplified40.6%
associate-*r/43.8%
*-commutative43.8%
Applied egg-rr43.8%
if 4.6000000000000002e-169 < x < 1.15e-8Initial program 75.0%
Taylor expanded in y around inf 87.3%
associate-+r+87.3%
associate--l+87.3%
fma-define87.3%
associate-/l*87.3%
*-commutative87.3%
div-sub87.3%
Simplified87.3%
Taylor expanded in y around inf 70.5%
div-sub70.5%
Simplified70.5%
Taylor expanded in z around inf 45.5%
associate-/l*57.9%
Simplified57.9%
Final simplification51.9%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* x (- 1.0 (/ z a)))))
(if (<= x -1.05e-43)
t_1
(if (<= x 1.2e-167)
(* y (/ (- t z) t))
(if (<= x 3.3e-9) (* y (/ z (- a t))) t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double tmp;
if (x <= -1.05e-43) {
tmp = t_1;
} else if (x <= 1.2e-167) {
tmp = y * ((t - z) / t);
} else if (x <= 3.3e-9) {
tmp = y * (z / (a - t));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: tmp
t_1 = x * (1.0d0 - (z / a))
if (x <= (-1.05d-43)) then
tmp = t_1
else if (x <= 1.2d-167) then
tmp = y * ((t - z) / t)
else if (x <= 3.3d-9) then
tmp = y * (z / (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 t_1 = x * (1.0 - (z / a));
double tmp;
if (x <= -1.05e-43) {
tmp = t_1;
} else if (x <= 1.2e-167) {
tmp = y * ((t - z) / t);
} else if (x <= 3.3e-9) {
tmp = y * (z / (a - t));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x * (1.0 - (z / a)) tmp = 0 if x <= -1.05e-43: tmp = t_1 elif x <= 1.2e-167: tmp = y * ((t - z) / t) elif x <= 3.3e-9: tmp = y * (z / (a - t)) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(x * Float64(1.0 - Float64(z / a))) tmp = 0.0 if (x <= -1.05e-43) tmp = t_1; elseif (x <= 1.2e-167) tmp = Float64(y * Float64(Float64(t - z) / t)); elseif (x <= 3.3e-9) tmp = Float64(y * Float64(z / Float64(a - t))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x * (1.0 - (z / a)); tmp = 0.0; if (x <= -1.05e-43) tmp = t_1; elseif (x <= 1.2e-167) tmp = y * ((t - z) / t); elseif (x <= 3.3e-9) tmp = y * (z / (a - t)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -1.05e-43], t$95$1, If[LessEqual[x, 1.2e-167], N[(y * N[(N[(t - z), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 3.3e-9], N[(y * N[(z / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(1 - \frac{z}{a}\right)\\
\mathbf{if}\;x \leq -1.05 \cdot 10^{-43}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;x \leq 1.2 \cdot 10^{-167}:\\
\;\;\;\;y \cdot \frac{t - z}{t}\\
\mathbf{elif}\;x \leq 3.3 \cdot 10^{-9}:\\
\;\;\;\;y \cdot \frac{z}{a - t}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if x < -1.05e-43 or 3.30000000000000018e-9 < x Initial program 64.8%
Taylor expanded in x around inf 65.8%
mul-1-neg65.8%
unsub-neg65.8%
Simplified65.8%
Taylor expanded in t around 0 56.9%
*-commutative56.9%
Simplified56.9%
if -1.05e-43 < x < 1.19999999999999997e-167Initial program 79.9%
Taylor expanded in y around inf 94.4%
associate-+r+94.4%
associate--l+94.4%
fma-define94.4%
associate-/l*92.3%
*-commutative92.3%
div-sub92.3%
Simplified92.3%
Taylor expanded in y around inf 76.4%
div-sub76.4%
Simplified76.4%
Taylor expanded in a around 0 58.1%
mul-1-neg58.1%
Simplified58.1%
if 1.19999999999999997e-167 < x < 3.30000000000000018e-9Initial program 73.9%
Taylor expanded in y around inf 86.7%
associate-+r+86.7%
associate--l+86.7%
fma-define86.7%
associate-/l*86.8%
*-commutative86.8%
div-sub86.8%
Simplified86.8%
Taylor expanded in y around inf 69.2%
div-sub69.2%
Simplified69.2%
Taylor expanded in z around inf 47.4%
associate-/l*60.3%
Simplified60.3%
Final simplification57.6%
(FPCore (x y z t a) :precision binary64 (if (or (<= x -1.16e-45) (not (<= x 35000000.0))) (* x (+ 1.0 (/ (- z t) (- t a)))) (* y (/ (- z t) (- a t)))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((x <= -1.16e-45) || !(x <= 35000000.0)) {
tmp = x * (1.0 + ((z - t) / (t - a)));
} else {
tmp = y * ((z - t) / (a - t));
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: tmp
if ((x <= (-1.16d-45)) .or. (.not. (x <= 35000000.0d0))) then
tmp = x * (1.0d0 + ((z - t) / (t - a)))
else
tmp = y * ((z - t) / (a - t))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if ((x <= -1.16e-45) || !(x <= 35000000.0)) {
tmp = x * (1.0 + ((z - t) / (t - a)));
} else {
tmp = y * ((z - t) / (a - t));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (x <= -1.16e-45) or not (x <= 35000000.0): tmp = x * (1.0 + ((z - t) / (t - a))) else: tmp = y * ((z - t) / (a - t)) return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((x <= -1.16e-45) || !(x <= 35000000.0)) tmp = Float64(x * Float64(1.0 + Float64(Float64(z - t) / Float64(t - a)))); else tmp = Float64(y * Float64(Float64(z - t) / Float64(a - t))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((x <= -1.16e-45) || ~((x <= 35000000.0))) tmp = x * (1.0 + ((z - t) / (t - a))); else tmp = y * ((z - t) / (a - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[x, -1.16e-45], N[Not[LessEqual[x, 35000000.0]], $MachinePrecision]], N[(x * N[(1.0 + N[(N[(z - t), $MachinePrecision] / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -1.16 \cdot 10^{-45} \lor \neg \left(x \leq 35000000\right):\\
\;\;\;\;x \cdot \left(1 + \frac{z - t}{t - a}\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \frac{z - t}{a - t}\\
\end{array}
\end{array}
if x < -1.16000000000000002e-45 or 3.5e7 < x Initial program 65.1%
Taylor expanded in x around inf 66.9%
mul-1-neg66.9%
unsub-neg66.9%
Simplified66.9%
if -1.16000000000000002e-45 < x < 3.5e7Initial program 77.9%
Taylor expanded in y around inf 93.1%
associate-+r+93.1%
associate--l+93.1%
fma-define93.1%
associate-/l*91.5%
*-commutative91.5%
div-sub91.5%
Simplified91.5%
Taylor expanded in y around inf 75.0%
div-sub75.0%
Simplified75.0%
Final simplification70.6%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (/ (- z t) (- t a))))
(if (or (<= y -5e-167) (not (<= y 1.25e-164)))
(- x (* y t_1))
(* x (+ 1.0 t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = (z - t) / (t - a);
double tmp;
if ((y <= -5e-167) || !(y <= 1.25e-164)) {
tmp = x - (y * t_1);
} else {
tmp = x * (1.0 + t_1);
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: tmp
t_1 = (z - t) / (t - a)
if ((y <= (-5d-167)) .or. (.not. (y <= 1.25d-164))) then
tmp = x - (y * t_1)
else
tmp = x * (1.0d0 + t_1)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = (z - t) / (t - a);
double tmp;
if ((y <= -5e-167) || !(y <= 1.25e-164)) {
tmp = x - (y * t_1);
} else {
tmp = x * (1.0 + t_1);
}
return tmp;
}
def code(x, y, z, t, a): t_1 = (z - t) / (t - a) tmp = 0 if (y <= -5e-167) or not (y <= 1.25e-164): tmp = x - (y * t_1) else: tmp = x * (1.0 + t_1) return tmp
function code(x, y, z, t, a) t_1 = Float64(Float64(z - t) / Float64(t - a)) tmp = 0.0 if ((y <= -5e-167) || !(y <= 1.25e-164)) tmp = Float64(x - Float64(y * t_1)); else tmp = Float64(x * Float64(1.0 + t_1)); end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = (z - t) / (t - a); tmp = 0.0; if ((y <= -5e-167) || ~((y <= 1.25e-164))) tmp = x - (y * t_1); else tmp = x * (1.0 + t_1); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(N[(z - t), $MachinePrecision] / N[(t - a), $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[y, -5e-167], N[Not[LessEqual[y, 1.25e-164]], $MachinePrecision]], N[(x - N[(y * t$95$1), $MachinePrecision]), $MachinePrecision], N[(x * N[(1.0 + t$95$1), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{z - t}{t - a}\\
\mathbf{if}\;y \leq -5 \cdot 10^{-167} \lor \neg \left(y \leq 1.25 \cdot 10^{-164}\right):\\
\;\;\;\;x - y \cdot t\_1\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(1 + t\_1\right)\\
\end{array}
\end{array}
if y < -5.0000000000000002e-167 or 1.2499999999999999e-164 < y Initial program 72.2%
Taylor expanded in y around inf 64.2%
associate-/l*78.6%
Simplified78.6%
if -5.0000000000000002e-167 < y < 1.2499999999999999e-164Initial program 67.2%
Taylor expanded in x around inf 75.9%
mul-1-neg75.9%
unsub-neg75.9%
Simplified75.9%
Final simplification78.0%
(FPCore (x y z t a) :precision binary64 (if (or (<= y -3.4e+89) (not (<= y 4.5e-141))) (- x (* y (/ (- z t) (- t a)))) (- x (* z (/ (- y x) (- t a))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((y <= -3.4e+89) || !(y <= 4.5e-141)) {
tmp = x - (y * ((z - t) / (t - a)));
} else {
tmp = x - (z * ((y - x) / (t - a)));
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: tmp
if ((y <= (-3.4d+89)) .or. (.not. (y <= 4.5d-141))) then
tmp = x - (y * ((z - t) / (t - a)))
else
tmp = x - (z * ((y - x) / (t - a)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if ((y <= -3.4e+89) || !(y <= 4.5e-141)) {
tmp = x - (y * ((z - t) / (t - a)));
} else {
tmp = x - (z * ((y - x) / (t - a)));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (y <= -3.4e+89) or not (y <= 4.5e-141): tmp = x - (y * ((z - t) / (t - a))) else: tmp = x - (z * ((y - x) / (t - a))) return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((y <= -3.4e+89) || !(y <= 4.5e-141)) tmp = Float64(x - Float64(y * Float64(Float64(z - t) / Float64(t - a)))); else tmp = Float64(x - Float64(z * Float64(Float64(y - x) / Float64(t - a)))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((y <= -3.4e+89) || ~((y <= 4.5e-141))) tmp = x - (y * ((z - t) / (t - a))); else tmp = x - (z * ((y - x) / (t - a))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[y, -3.4e+89], N[Not[LessEqual[y, 4.5e-141]], $MachinePrecision]], N[(x - N[(y * N[(N[(z - t), $MachinePrecision] / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x - N[(z * N[(N[(y - x), $MachinePrecision] / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -3.4 \cdot 10^{+89} \lor \neg \left(y \leq 4.5 \cdot 10^{-141}\right):\\
\;\;\;\;x - y \cdot \frac{z - t}{t - a}\\
\mathbf{else}:\\
\;\;\;\;x - z \cdot \frac{y - x}{t - a}\\
\end{array}
\end{array}
if y < -3.4000000000000002e89 or 4.5e-141 < y Initial program 68.8%
Taylor expanded in y around inf 65.1%
associate-/l*85.2%
Simplified85.2%
if -3.4000000000000002e89 < y < 4.5e-141Initial program 73.2%
Taylor expanded in z around inf 66.8%
associate-/l*74.5%
Simplified74.5%
Final simplification79.9%
(FPCore (x y z t a) :precision binary64 (if (or (<= t -1.3e+43) (not (<= t 2.05e+93))) (+ y (* (/ (- y x) t) (- a z))) (- x (* z (/ (- y x) (- t a))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((t <= -1.3e+43) || !(t <= 2.05e+93)) {
tmp = y + (((y - x) / t) * (a - z));
} else {
tmp = x - (z * ((y - x) / (t - a)));
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: tmp
if ((t <= (-1.3d+43)) .or. (.not. (t <= 2.05d+93))) then
tmp = y + (((y - x) / t) * (a - z))
else
tmp = x - (z * ((y - x) / (t - a)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if ((t <= -1.3e+43) || !(t <= 2.05e+93)) {
tmp = y + (((y - x) / t) * (a - z));
} else {
tmp = x - (z * ((y - x) / (t - a)));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (t <= -1.3e+43) or not (t <= 2.05e+93): tmp = y + (((y - x) / t) * (a - z)) else: tmp = x - (z * ((y - x) / (t - a))) return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((t <= -1.3e+43) || !(t <= 2.05e+93)) tmp = Float64(y + Float64(Float64(Float64(y - x) / t) * Float64(a - z))); else tmp = Float64(x - Float64(z * Float64(Float64(y - x) / Float64(t - a)))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((t <= -1.3e+43) || ~((t <= 2.05e+93))) tmp = y + (((y - x) / t) * (a - z)); else tmp = x - (z * ((y - x) / (t - a))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[t, -1.3e+43], N[Not[LessEqual[t, 2.05e+93]], $MachinePrecision]], N[(y + N[(N[(N[(y - x), $MachinePrecision] / t), $MachinePrecision] * N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x - N[(z * N[(N[(y - x), $MachinePrecision] / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.3 \cdot 10^{+43} \lor \neg \left(t \leq 2.05 \cdot 10^{+93}\right):\\
\;\;\;\;y + \frac{y - x}{t} \cdot \left(a - z\right)\\
\mathbf{else}:\\
\;\;\;\;x - z \cdot \frac{y - x}{t - a}\\
\end{array}
\end{array}
if t < -1.3000000000000001e43 or 2.0500000000000001e93 < t Initial program 42.6%
Taylor expanded in t around inf 62.9%
associate--l+62.9%
distribute-lft-out--62.9%
div-sub62.9%
mul-1-neg62.9%
unsub-neg62.9%
div-sub62.9%
associate-/l*78.8%
associate-/l*84.2%
distribute-rgt-out--84.2%
Simplified84.2%
if -1.3000000000000001e43 < t < 2.0500000000000001e93Initial program 86.3%
Taylor expanded in z around inf 76.1%
associate-/l*82.1%
Simplified82.1%
Final simplification82.8%
(FPCore (x y z t a) :precision binary64 (if (or (<= x -1.7e+43) (not (<= x 2.8e+20))) (* x (- 1.0 (/ z a))) (* y (/ (- z t) (- a t)))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((x <= -1.7e+43) || !(x <= 2.8e+20)) {
tmp = x * (1.0 - (z / a));
} else {
tmp = y * ((z - t) / (a - t));
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: tmp
if ((x <= (-1.7d+43)) .or. (.not. (x <= 2.8d+20))) then
tmp = x * (1.0d0 - (z / a))
else
tmp = y * ((z - t) / (a - t))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if ((x <= -1.7e+43) || !(x <= 2.8e+20)) {
tmp = x * (1.0 - (z / a));
} else {
tmp = y * ((z - t) / (a - t));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (x <= -1.7e+43) or not (x <= 2.8e+20): tmp = x * (1.0 - (z / a)) else: tmp = y * ((z - t) / (a - t)) return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((x <= -1.7e+43) || !(x <= 2.8e+20)) tmp = Float64(x * Float64(1.0 - Float64(z / a))); else tmp = Float64(y * Float64(Float64(z - t) / Float64(a - t))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((x <= -1.7e+43) || ~((x <= 2.8e+20))) tmp = x * (1.0 - (z / a)); else tmp = y * ((z - t) / (a - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[x, -1.7e+43], N[Not[LessEqual[x, 2.8e+20]], $MachinePrecision]], N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -1.7 \cdot 10^{+43} \lor \neg \left(x \leq 2.8 \cdot 10^{+20}\right):\\
\;\;\;\;x \cdot \left(1 - \frac{z}{a}\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \frac{z - t}{a - t}\\
\end{array}
\end{array}
if x < -1.70000000000000006e43 or 2.8e20 < x Initial program 61.8%
Taylor expanded in x around inf 68.1%
mul-1-neg68.1%
unsub-neg68.1%
Simplified68.1%
Taylor expanded in t around 0 60.5%
*-commutative60.5%
Simplified60.5%
if -1.70000000000000006e43 < x < 2.8e20Initial program 78.6%
Taylor expanded in y around inf 92.1%
associate-+r+92.1%
associate--l+92.1%
fma-define92.1%
associate-/l*90.7%
*-commutative90.7%
div-sub90.7%
Simplified90.7%
Taylor expanded in y around inf 69.9%
div-sub69.9%
Simplified69.9%
Final simplification65.6%
(FPCore (x y z t a) :precision binary64 (if (or (<= x -2.8e-43) (not (<= x 600000000.0))) (+ x (* z (/ (- y x) a))) (* y (/ (- z t) (- a t)))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((x <= -2.8e-43) || !(x <= 600000000.0)) {
tmp = x + (z * ((y - x) / a));
} else {
tmp = y * ((z - t) / (a - t));
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: tmp
if ((x <= (-2.8d-43)) .or. (.not. (x <= 600000000.0d0))) then
tmp = x + (z * ((y - x) / a))
else
tmp = y * ((z - t) / (a - t))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if ((x <= -2.8e-43) || !(x <= 600000000.0)) {
tmp = x + (z * ((y - x) / a));
} else {
tmp = y * ((z - t) / (a - t));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (x <= -2.8e-43) or not (x <= 600000000.0): tmp = x + (z * ((y - x) / a)) else: tmp = y * ((z - t) / (a - t)) return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((x <= -2.8e-43) || !(x <= 600000000.0)) tmp = Float64(x + Float64(z * Float64(Float64(y - x) / a))); else tmp = Float64(y * Float64(Float64(z - t) / Float64(a - t))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((x <= -2.8e-43) || ~((x <= 600000000.0))) tmp = x + (z * ((y - x) / a)); else tmp = y * ((z - t) / (a - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[x, -2.8e-43], N[Not[LessEqual[x, 600000000.0]], $MachinePrecision]], N[(x + N[(z * N[(N[(y - x), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -2.8 \cdot 10^{-43} \lor \neg \left(x \leq 600000000\right):\\
\;\;\;\;x + z \cdot \frac{y - x}{a}\\
\mathbf{else}:\\
\;\;\;\;y \cdot \frac{z - t}{a - t}\\
\end{array}
\end{array}
if x < -2.7999999999999998e-43 or 6e8 < x Initial program 64.6%
Taylor expanded in t around 0 53.0%
associate-/l*62.1%
Simplified62.1%
if -2.7999999999999998e-43 < x < 6e8Initial program 78.3%
Taylor expanded in y around inf 92.4%
associate-+r+92.4%
associate--l+92.4%
fma-define92.4%
associate-/l*90.8%
*-commutative90.8%
div-sub90.9%
Simplified90.9%
Taylor expanded in y around inf 73.8%
div-sub73.8%
Simplified73.8%
Final simplification67.6%
(FPCore (x y z t a) :precision binary64 (if (<= a -6.3e-27) x (if (<= a 3.5e+49) y x)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (a <= -6.3e-27) {
tmp = x;
} else if (a <= 3.5e+49) {
tmp = y;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: tmp
if (a <= (-6.3d-27)) then
tmp = x
else if (a <= 3.5d+49) then
tmp = y
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (a <= -6.3e-27) {
tmp = x;
} else if (a <= 3.5e+49) {
tmp = y;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if a <= -6.3e-27: tmp = x elif a <= 3.5e+49: tmp = y else: tmp = x return tmp
function code(x, y, z, t, a) tmp = 0.0 if (a <= -6.3e-27) tmp = x; elseif (a <= 3.5e+49) tmp = y; else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (a <= -6.3e-27) tmp = x; elseif (a <= 3.5e+49) tmp = y; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[a, -6.3e-27], x, If[LessEqual[a, 3.5e+49], y, x]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -6.3 \cdot 10^{-27}:\\
\;\;\;\;x\\
\mathbf{elif}\;a \leq 3.5 \cdot 10^{+49}:\\
\;\;\;\;y\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if a < -6.3000000000000001e-27 or 3.49999999999999975e49 < a Initial program 69.9%
Taylor expanded in a around inf 47.8%
if -6.3000000000000001e-27 < a < 3.49999999999999975e49Initial program 71.8%
Taylor expanded in t around inf 31.8%
Final simplification38.9%
(FPCore (x y z t a) :precision binary64 x)
double code(double x, double y, double z, double t, double a) {
return x;
}
real(8) function code(x, y, z, t, a)
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
code = x
end function
public static double code(double x, double y, double z, double t, double a) {
return x;
}
def code(x, y, z, t, a): return x
function code(x, y, z, t, a) return x end
function tmp = code(x, y, z, t, a) tmp = x; end
code[x_, y_, z_, t_, a_] := x
\begin{array}{l}
\\
x
\end{array}
Initial program 71.0%
Taylor expanded in a around inf 25.2%
Final simplification25.2%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (* (/ (- y x) 1.0) (/ (- z t) (- a t))))))
(if (< a -1.6153062845442575e-142)
t_1
(if (< a 3.774403170083174e-182) (- y (* (/ z t) (- y x))) t_1))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - x) / 1.0) * ((z - t) / (a - t)));
double tmp;
if (a < -1.6153062845442575e-142) {
tmp = t_1;
} else if (a < 3.774403170083174e-182) {
tmp = y - ((z / t) * (y - x));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
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) :: t_1
real(8) :: tmp
t_1 = x + (((y - x) / 1.0d0) * ((z - t) / (a - t)))
if (a < (-1.6153062845442575d-142)) then
tmp = t_1
else if (a < 3.774403170083174d-182) then
tmp = y - ((z / t) * (y - x))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - x) / 1.0) * ((z - t) / (a - t)));
double tmp;
if (a < -1.6153062845442575e-142) {
tmp = t_1;
} else if (a < 3.774403170083174e-182) {
tmp = y - ((z / t) * (y - x));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + (((y - x) / 1.0) * ((z - t) / (a - t))) tmp = 0 if a < -1.6153062845442575e-142: tmp = t_1 elif a < 3.774403170083174e-182: tmp = y - ((z / t) * (y - x)) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(x + Float64(Float64(Float64(y - x) / 1.0) * Float64(Float64(z - t) / Float64(a - t)))) tmp = 0.0 if (a < -1.6153062845442575e-142) tmp = t_1; elseif (a < 3.774403170083174e-182) tmp = Float64(y - Float64(Float64(z / t) * Float64(y - x))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x + (((y - x) / 1.0) * ((z - t) / (a - t))); tmp = 0.0; if (a < -1.6153062845442575e-142) tmp = t_1; elseif (a < 3.774403170083174e-182) tmp = y - ((z / t) * (y - x)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(N[(N[(y - x), $MachinePrecision] / 1.0), $MachinePrecision] * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Less[a, -1.6153062845442575e-142], t$95$1, If[Less[a, 3.774403170083174e-182], N[(y - N[(N[(z / t), $MachinePrecision] * N[(y - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{y - x}{1} \cdot \frac{z - t}{a - t}\\
\mathbf{if}\;a < -1.6153062845442575 \cdot 10^{-142}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a < 3.774403170083174 \cdot 10^{-182}:\\
\;\;\;\;y - \frac{z}{t} \cdot \left(y - x\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
herbie shell --seed 2024066
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.Axis.Types:linMap from Chart-1.5.3"
:precision binary64
:alt
(if (< a -1.6153062845442575e-142) (+ x (* (/ (- y x) 1.0) (/ (- z t) (- a t)))) (if (< a 3.774403170083174e-182) (- y (* (/ z t) (- y x))) (+ x (* (/ (- y x) 1.0) (/ (- z t) (- a t))))))
(+ x (/ (* (- y x) (- z t)) (- a t))))