
(FPCore (x y z t a) :precision binary64 (+ x (/ (* (- y z) (- t x)) (- a z))))
double code(double x, double y, double z, double t, double a) {
return x + (((y - z) * (t - x)) / (a - z));
}
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 - z) * (t - x)) / (a - z))
end function
public static double code(double x, double y, double z, double t, double a) {
return x + (((y - z) * (t - x)) / (a - z));
}
def code(x, y, z, t, a): return x + (((y - z) * (t - x)) / (a - z))
function code(x, y, z, t, a) return Float64(x + Float64(Float64(Float64(y - z) * Float64(t - x)) / Float64(a - z))) end
function tmp = code(x, y, z, t, a) tmp = x + (((y - z) * (t - x)) / (a - z)); end
code[x_, y_, z_, t_, a_] := N[(x + N[(N[(N[(y - z), $MachinePrecision] * N[(t - x), $MachinePrecision]), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 23 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a) :precision binary64 (+ x (/ (* (- y z) (- t x)) (- a z))))
double code(double x, double y, double z, double t, double a) {
return x + (((y - z) * (t - x)) / (a - z));
}
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 - z) * (t - x)) / (a - z))
end function
public static double code(double x, double y, double z, double t, double a) {
return x + (((y - z) * (t - x)) / (a - z));
}
def code(x, y, z, t, a): return x + (((y - z) * (t - x)) / (a - z))
function code(x, y, z, t, a) return Float64(x + Float64(Float64(Float64(y - z) * Float64(t - x)) / Float64(a - z))) end
function tmp = code(x, y, z, t, a) tmp = x + (((y - z) * (t - x)) / (a - z)); end
code[x_, y_, z_, t_, a_] := N[(x + N[(N[(N[(y - z), $MachinePrecision] * N[(t - x), $MachinePrecision]), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}
\end{array}
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (/ (* (- y z) (- t x)) (- a z)))))
(if (or (<= t_1 -2e-274) (not (<= t_1 0.0)))
(fma (- t x) (/ (- y z) (- a z)) x)
(- t (/ (* (- t x) (- y a)) z)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - z) * (t - x)) / (a - z));
double tmp;
if ((t_1 <= -2e-274) || !(t_1 <= 0.0)) {
tmp = fma((t - x), ((y - z) / (a - z)), x);
} else {
tmp = t - (((t - x) * (y - a)) / z);
}
return tmp;
}
function code(x, y, z, t, a) t_1 = Float64(x + Float64(Float64(Float64(y - z) * Float64(t - x)) / Float64(a - z))) tmp = 0.0 if ((t_1 <= -2e-274) || !(t_1 <= 0.0)) tmp = fma(Float64(t - x), Float64(Float64(y - z) / Float64(a - z)), x); else tmp = Float64(t - Float64(Float64(Float64(t - x) * Float64(y - a)) / z)); end return tmp end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(N[(N[(y - z), $MachinePrecision] * N[(t - x), $MachinePrecision]), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[t$95$1, -2e-274], N[Not[LessEqual[t$95$1, 0.0]], $MachinePrecision]], N[(N[(t - x), $MachinePrecision] * N[(N[(y - z), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision], N[(t - N[(N[(N[(t - x), $MachinePrecision] * N[(y - a), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\
\mathbf{if}\;t\_1 \leq -2 \cdot 10^{-274} \lor \neg \left(t\_1 \leq 0\right):\\
\;\;\;\;\mathsf{fma}\left(t - x, \frac{y - z}{a - z}, x\right)\\
\mathbf{else}:\\
\;\;\;\;t - \frac{\left(t - x\right) \cdot \left(y - a\right)}{z}\\
\end{array}
\end{array}
if (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < -1.99999999999999993e-274 or 0.0 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) Initial program 76.3%
+-commutative76.3%
*-commutative76.3%
associate-/l*91.9%
fma-define91.9%
Simplified91.9%
if -1.99999999999999993e-274 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < 0.0Initial program 3.5%
+-commutative3.5%
*-commutative3.5%
associate-/l*3.5%
fma-define3.5%
Simplified3.5%
Taylor expanded in z around inf 99.8%
associate--l+99.8%
associate-*r/99.8%
associate-*r/99.8%
mul-1-neg99.8%
div-sub99.8%
mul-1-neg99.8%
distribute-lft-out--99.8%
associate-*r/99.8%
mul-1-neg99.8%
unsub-neg99.8%
distribute-rgt-out--99.8%
Simplified99.8%
Final simplification92.6%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (* (- y z) (/ (- t x) (- a z)))))
(t_2 (+ x (/ (* (- y z) (- t x)) (- a z)))))
(if (<= t_2 -2e-274)
t_1
(if (<= t_2 0.0)
(- t (/ (* (- t x) (- y a)) z))
(if (<= t_2 2e+268) t_2 t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + ((y - z) * ((t - x) / (a - z)));
double t_2 = x + (((y - z) * (t - x)) / (a - z));
double tmp;
if (t_2 <= -2e-274) {
tmp = t_1;
} else if (t_2 <= 0.0) {
tmp = t - (((t - x) * (y - a)) / z);
} else if (t_2 <= 2e+268) {
tmp = t_2;
} 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) :: t_2
real(8) :: tmp
t_1 = x + ((y - z) * ((t - x) / (a - z)))
t_2 = x + (((y - z) * (t - x)) / (a - z))
if (t_2 <= (-2d-274)) then
tmp = t_1
else if (t_2 <= 0.0d0) then
tmp = t - (((t - x) * (y - a)) / z)
else if (t_2 <= 2d+268) then
tmp = t_2
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x + ((y - z) * ((t - x) / (a - z)));
double t_2 = x + (((y - z) * (t - x)) / (a - z));
double tmp;
if (t_2 <= -2e-274) {
tmp = t_1;
} else if (t_2 <= 0.0) {
tmp = t - (((t - x) * (y - a)) / z);
} else if (t_2 <= 2e+268) {
tmp = t_2;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + ((y - z) * ((t - x) / (a - z))) t_2 = x + (((y - z) * (t - x)) / (a - z)) tmp = 0 if t_2 <= -2e-274: tmp = t_1 elif t_2 <= 0.0: tmp = t - (((t - x) * (y - a)) / z) elif t_2 <= 2e+268: tmp = t_2 else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(x + Float64(Float64(y - z) * Float64(Float64(t - x) / Float64(a - z)))) t_2 = Float64(x + Float64(Float64(Float64(y - z) * Float64(t - x)) / Float64(a - z))) tmp = 0.0 if (t_2 <= -2e-274) tmp = t_1; elseif (t_2 <= 0.0) tmp = Float64(t - Float64(Float64(Float64(t - x) * Float64(y - a)) / z)); elseif (t_2 <= 2e+268) tmp = t_2; else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x + ((y - z) * ((t - x) / (a - z))); t_2 = x + (((y - z) * (t - x)) / (a - z)); tmp = 0.0; if (t_2 <= -2e-274) tmp = t_1; elseif (t_2 <= 0.0) tmp = t - (((t - x) * (y - a)) / z); elseif (t_2 <= 2e+268) tmp = t_2; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(N[(y - z), $MachinePrecision] * N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x + N[(N[(N[(y - z), $MachinePrecision] * N[(t - x), $MachinePrecision]), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$2, -2e-274], t$95$1, If[LessEqual[t$95$2, 0.0], N[(t - N[(N[(N[(t - x), $MachinePrecision] * N[(y - a), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$2, 2e+268], t$95$2, t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \left(y - z\right) \cdot \frac{t - x}{a - z}\\
t_2 := x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\
\mathbf{if}\;t\_2 \leq -2 \cdot 10^{-274}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t\_2 \leq 0:\\
\;\;\;\;t - \frac{\left(t - x\right) \cdot \left(y - a\right)}{z}\\
\mathbf{elif}\;t\_2 \leq 2 \cdot 10^{+268}:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < -1.99999999999999993e-274 or 1.9999999999999999e268 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) Initial program 67.7%
associate-/l*88.4%
Simplified88.4%
if -1.99999999999999993e-274 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < 0.0Initial program 3.5%
+-commutative3.5%
*-commutative3.5%
associate-/l*3.5%
fma-define3.5%
Simplified3.5%
Taylor expanded in z around inf 99.8%
associate--l+99.8%
associate-*r/99.8%
associate-*r/99.8%
mul-1-neg99.8%
div-sub99.8%
mul-1-neg99.8%
distribute-lft-out--99.8%
associate-*r/99.8%
mul-1-neg99.8%
unsub-neg99.8%
distribute-rgt-out--99.8%
Simplified99.8%
if 0.0 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < 1.9999999999999999e268Initial program 97.8%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (/ (* (- y z) (- t x)) (- a z)))))
(if (<= t_1 -2e-274)
(+ x (* (- y z) (/ (- t x) (- a z))))
(if (<= t_1 1e-194)
(- t (/ (* (- t x) (- y a)) z))
(+ x (/ (- y z) (/ (- a z) (- t x))))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - z) * (t - x)) / (a - z));
double tmp;
if (t_1 <= -2e-274) {
tmp = x + ((y - z) * ((t - x) / (a - z)));
} else if (t_1 <= 1e-194) {
tmp = t - (((t - x) * (y - a)) / z);
} else {
tmp = x + ((y - z) / ((a - z) / (t - 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 + (((y - z) * (t - x)) / (a - z))
if (t_1 <= (-2d-274)) then
tmp = x + ((y - z) * ((t - x) / (a - z)))
else if (t_1 <= 1d-194) then
tmp = t - (((t - x) * (y - a)) / z)
else
tmp = x + ((y - z) / ((a - z) / (t - 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 + (((y - z) * (t - x)) / (a - z));
double tmp;
if (t_1 <= -2e-274) {
tmp = x + ((y - z) * ((t - x) / (a - z)));
} else if (t_1 <= 1e-194) {
tmp = t - (((t - x) * (y - a)) / z);
} else {
tmp = x + ((y - z) / ((a - z) / (t - x)));
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + (((y - z) * (t - x)) / (a - z)) tmp = 0 if t_1 <= -2e-274: tmp = x + ((y - z) * ((t - x) / (a - z))) elif t_1 <= 1e-194: tmp = t - (((t - x) * (y - a)) / z) else: tmp = x + ((y - z) / ((a - z) / (t - x))) return tmp
function code(x, y, z, t, a) t_1 = Float64(x + Float64(Float64(Float64(y - z) * Float64(t - x)) / Float64(a - z))) tmp = 0.0 if (t_1 <= -2e-274) tmp = Float64(x + Float64(Float64(y - z) * Float64(Float64(t - x) / Float64(a - z)))); elseif (t_1 <= 1e-194) tmp = Float64(t - Float64(Float64(Float64(t - x) * Float64(y - a)) / z)); else tmp = Float64(x + Float64(Float64(y - z) / Float64(Float64(a - z) / Float64(t - x)))); end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x + (((y - z) * (t - x)) / (a - z)); tmp = 0.0; if (t_1 <= -2e-274) tmp = x + ((y - z) * ((t - x) / (a - z))); elseif (t_1 <= 1e-194) tmp = t - (((t - x) * (y - a)) / z); else tmp = x + ((y - z) / ((a - z) / (t - x))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(N[(N[(y - z), $MachinePrecision] * N[(t - x), $MachinePrecision]), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, -2e-274], N[(x + N[(N[(y - z), $MachinePrecision] * N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$1, 1e-194], N[(t - N[(N[(N[(t - x), $MachinePrecision] * N[(y - a), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(y - z), $MachinePrecision] / N[(N[(a - z), $MachinePrecision] / N[(t - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\
\mathbf{if}\;t\_1 \leq -2 \cdot 10^{-274}:\\
\;\;\;\;x + \left(y - z\right) \cdot \frac{t - x}{a - z}\\
\mathbf{elif}\;t\_1 \leq 10^{-194}:\\
\;\;\;\;t - \frac{\left(t - x\right) \cdot \left(y - a\right)}{z}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y - z}{\frac{a - z}{t - x}}\\
\end{array}
\end{array}
if (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < -1.99999999999999993e-274Initial program 79.0%
associate-/l*88.9%
Simplified88.9%
if -1.99999999999999993e-274 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < 1.00000000000000002e-194Initial program 16.6%
+-commutative16.6%
*-commutative16.6%
associate-/l*16.6%
fma-define16.6%
Simplified16.6%
Taylor expanded in z around inf 96.1%
associate--l+96.1%
associate-*r/96.1%
associate-*r/96.1%
mul-1-neg96.1%
div-sub96.1%
mul-1-neg96.1%
distribute-lft-out--96.1%
associate-*r/96.1%
mul-1-neg96.1%
unsub-neg96.1%
distribute-rgt-out--96.1%
Simplified96.1%
if 1.00000000000000002e-194 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) Initial program 73.2%
associate-/l*90.0%
Simplified90.0%
clear-num90.0%
un-div-inv91.0%
Applied egg-rr91.0%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ t (* a (/ (- t x) z)))))
(if (<= z -2.7e+133)
t_1
(if (<= z -6.4e-89)
(* x (+ (/ (- y z) (- z a)) 1.0))
(if (<= z 1.1e+57)
(+ x (/ (- t x) (/ a y)))
(if (<= z 9e+132) (* y (/ (- x t) z)) t_1))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -2.7e+133) {
tmp = t_1;
} else if (z <= -6.4e-89) {
tmp = x * (((y - z) / (z - a)) + 1.0);
} else if (z <= 1.1e+57) {
tmp = x + ((t - x) / (a / y));
} else if (z <= 9e+132) {
tmp = y * ((x - t) / z);
} 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 = t + (a * ((t - x) / z))
if (z <= (-2.7d+133)) then
tmp = t_1
else if (z <= (-6.4d-89)) then
tmp = x * (((y - z) / (z - a)) + 1.0d0)
else if (z <= 1.1d+57) then
tmp = x + ((t - x) / (a / y))
else if (z <= 9d+132) then
tmp = y * ((x - t) / z)
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -2.7e+133) {
tmp = t_1;
} else if (z <= -6.4e-89) {
tmp = x * (((y - z) / (z - a)) + 1.0);
} else if (z <= 1.1e+57) {
tmp = x + ((t - x) / (a / y));
} else if (z <= 9e+132) {
tmp = y * ((x - t) / z);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t + (a * ((t - x) / z)) tmp = 0 if z <= -2.7e+133: tmp = t_1 elif z <= -6.4e-89: tmp = x * (((y - z) / (z - a)) + 1.0) elif z <= 1.1e+57: tmp = x + ((t - x) / (a / y)) elif z <= 9e+132: tmp = y * ((x - t) / z) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(t + Float64(a * Float64(Float64(t - x) / z))) tmp = 0.0 if (z <= -2.7e+133) tmp = t_1; elseif (z <= -6.4e-89) tmp = Float64(x * Float64(Float64(Float64(y - z) / Float64(z - a)) + 1.0)); elseif (z <= 1.1e+57) tmp = Float64(x + Float64(Float64(t - x) / Float64(a / y))); elseif (z <= 9e+132) tmp = Float64(y * Float64(Float64(x - t) / z)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t + (a * ((t - x) / z)); tmp = 0.0; if (z <= -2.7e+133) tmp = t_1; elseif (z <= -6.4e-89) tmp = x * (((y - z) / (z - a)) + 1.0); elseif (z <= 1.1e+57) tmp = x + ((t - x) / (a / y)); elseif (z <= 9e+132) tmp = y * ((x - t) / z); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(t + N[(a * N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -2.7e+133], t$95$1, If[LessEqual[z, -6.4e-89], N[(x * N[(N[(N[(y - z), $MachinePrecision] / N[(z - a), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.1e+57], N[(x + N[(N[(t - x), $MachinePrecision] / N[(a / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 9e+132], N[(y * N[(N[(x - t), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + a \cdot \frac{t - x}{z}\\
\mathbf{if}\;z \leq -2.7 \cdot 10^{+133}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq -6.4 \cdot 10^{-89}:\\
\;\;\;\;x \cdot \left(\frac{y - z}{z - a} + 1\right)\\
\mathbf{elif}\;z \leq 1.1 \cdot 10^{+57}:\\
\;\;\;\;x + \frac{t - x}{\frac{a}{y}}\\
\mathbf{elif}\;z \leq 9 \cdot 10^{+132}:\\
\;\;\;\;y \cdot \frac{x - t}{z}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if z < -2.7000000000000002e133 or 8.99999999999999944e132 < z Initial program 31.1%
+-commutative31.1%
*-commutative31.1%
associate-/l*64.1%
fma-define64.2%
Simplified64.2%
Taylor expanded in z around inf 47.7%
sub-neg47.7%
Simplified60.8%
Taylor expanded in z around inf 72.2%
if -2.7000000000000002e133 < z < -6.39999999999999997e-89Initial program 80.5%
+-commutative80.5%
*-commutative80.5%
associate-/l*89.8%
fma-define89.8%
Simplified89.8%
Taylor expanded in t around 0 51.9%
*-rgt-identity51.9%
mul-1-neg51.9%
associate-/l*57.4%
distribute-rgt-neg-in57.4%
mul-1-neg57.4%
distribute-lft-in57.4%
mul-1-neg57.4%
unsub-neg57.4%
Simplified57.4%
if -6.39999999999999997e-89 < z < 1.1e57Initial program 85.0%
associate-/l*90.8%
Simplified90.8%
Taylor expanded in a around inf 73.8%
associate-/l*82.5%
Simplified82.5%
Taylor expanded in y around inf 81.6%
clear-num81.6%
un-div-inv81.6%
Applied egg-rr81.6%
if 1.1e57 < z < 8.99999999999999944e132Initial program 73.4%
+-commutative73.4%
*-commutative73.4%
associate-/l*78.4%
fma-define78.4%
Simplified78.4%
Taylor expanded in y around inf 56.5%
Taylor expanded in a around 0 57.2%
associate-*r/57.2%
associate-*r/57.2%
div-sub57.2%
div-sub57.2%
associate-*r/57.2%
associate-*r/57.2%
distribute-lft-out--57.2%
div-sub57.2%
associate-*r/57.2%
neg-mul-157.2%
Simplified57.2%
Final simplification73.0%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ t (* a (/ (- t x) z)))))
(if (<= z -1.35e+123)
t_1
(if (<= z -310000000000.0)
(+ x (* z (/ t (- z a))))
(if (<= z 1.9e+54)
(+ x (/ (- t x) (/ a y)))
(if (<= z 9.8e+135) (* y (/ (- x t) z)) t_1))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -1.35e+123) {
tmp = t_1;
} else if (z <= -310000000000.0) {
tmp = x + (z * (t / (z - a)));
} else if (z <= 1.9e+54) {
tmp = x + ((t - x) / (a / y));
} else if (z <= 9.8e+135) {
tmp = y * ((x - t) / z);
} 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 = t + (a * ((t - x) / z))
if (z <= (-1.35d+123)) then
tmp = t_1
else if (z <= (-310000000000.0d0)) then
tmp = x + (z * (t / (z - a)))
else if (z <= 1.9d+54) then
tmp = x + ((t - x) / (a / y))
else if (z <= 9.8d+135) then
tmp = y * ((x - t) / z)
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -1.35e+123) {
tmp = t_1;
} else if (z <= -310000000000.0) {
tmp = x + (z * (t / (z - a)));
} else if (z <= 1.9e+54) {
tmp = x + ((t - x) / (a / y));
} else if (z <= 9.8e+135) {
tmp = y * ((x - t) / z);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t + (a * ((t - x) / z)) tmp = 0 if z <= -1.35e+123: tmp = t_1 elif z <= -310000000000.0: tmp = x + (z * (t / (z - a))) elif z <= 1.9e+54: tmp = x + ((t - x) / (a / y)) elif z <= 9.8e+135: tmp = y * ((x - t) / z) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(t + Float64(a * Float64(Float64(t - x) / z))) tmp = 0.0 if (z <= -1.35e+123) tmp = t_1; elseif (z <= -310000000000.0) tmp = Float64(x + Float64(z * Float64(t / Float64(z - a)))); elseif (z <= 1.9e+54) tmp = Float64(x + Float64(Float64(t - x) / Float64(a / y))); elseif (z <= 9.8e+135) tmp = Float64(y * Float64(Float64(x - t) / z)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t + (a * ((t - x) / z)); tmp = 0.0; if (z <= -1.35e+123) tmp = t_1; elseif (z <= -310000000000.0) tmp = x + (z * (t / (z - a))); elseif (z <= 1.9e+54) tmp = x + ((t - x) / (a / y)); elseif (z <= 9.8e+135) tmp = y * ((x - t) / z); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(t + N[(a * N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -1.35e+123], t$95$1, If[LessEqual[z, -310000000000.0], N[(x + N[(z * N[(t / N[(z - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.9e+54], N[(x + N[(N[(t - x), $MachinePrecision] / N[(a / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 9.8e+135], N[(y * N[(N[(x - t), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + a \cdot \frac{t - x}{z}\\
\mathbf{if}\;z \leq -1.35 \cdot 10^{+123}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq -310000000000:\\
\;\;\;\;x + z \cdot \frac{t}{z - a}\\
\mathbf{elif}\;z \leq 1.9 \cdot 10^{+54}:\\
\;\;\;\;x + \frac{t - x}{\frac{a}{y}}\\
\mathbf{elif}\;z \leq 9.8 \cdot 10^{+135}:\\
\;\;\;\;y \cdot \frac{x - t}{z}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if z < -1.35000000000000007e123 or 9.8000000000000002e135 < z Initial program 33.2%
+-commutative33.2%
*-commutative33.2%
associate-/l*65.2%
fma-define65.3%
Simplified65.3%
Taylor expanded in z around inf 49.3%
sub-neg49.3%
Simplified62.0%
Taylor expanded in z around inf 70.1%
if -1.35000000000000007e123 < z < -3.1e11Initial program 68.9%
associate-/l*85.5%
Simplified85.5%
clear-num85.6%
un-div-inv85.8%
Applied egg-rr85.8%
Taylor expanded in y around 0 53.1%
mul-1-neg53.1%
unsub-neg53.1%
associate-/l*62.6%
Simplified62.6%
Taylor expanded in t around inf 56.4%
*-commutative56.4%
associate-*r/63.3%
Simplified63.3%
if -3.1e11 < z < 1.9000000000000001e54Initial program 86.3%
associate-/l*91.3%
Simplified91.3%
Taylor expanded in a around inf 70.6%
associate-/l*78.1%
Simplified78.1%
Taylor expanded in y around inf 77.3%
clear-num77.3%
un-div-inv77.4%
Applied egg-rr77.4%
if 1.9000000000000001e54 < z < 9.8000000000000002e135Initial program 73.4%
+-commutative73.4%
*-commutative73.4%
associate-/l*78.4%
fma-define78.4%
Simplified78.4%
Taylor expanded in y around inf 56.5%
Taylor expanded in a around 0 57.2%
associate-*r/57.2%
associate-*r/57.2%
div-sub57.2%
div-sub57.2%
associate-*r/57.2%
associate-*r/57.2%
distribute-lft-out--57.2%
div-sub57.2%
associate-*r/57.2%
neg-mul-157.2%
Simplified57.2%
Final simplification72.6%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ t (* a (/ (- t x) z)))))
(if (<= z -2.4e+133)
t_1
(if (<= z -3e-124)
(* x (- 1.0 (/ y a)))
(if (<= z 8.5e+55)
(+ x (/ t (/ a y)))
(if (<= z 5.3e+131) (* y (/ (- x t) z)) t_1))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -2.4e+133) {
tmp = t_1;
} else if (z <= -3e-124) {
tmp = x * (1.0 - (y / a));
} else if (z <= 8.5e+55) {
tmp = x + (t / (a / y));
} else if (z <= 5.3e+131) {
tmp = y * ((x - t) / z);
} 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 = t + (a * ((t - x) / z))
if (z <= (-2.4d+133)) then
tmp = t_1
else if (z <= (-3d-124)) then
tmp = x * (1.0d0 - (y / a))
else if (z <= 8.5d+55) then
tmp = x + (t / (a / y))
else if (z <= 5.3d+131) then
tmp = y * ((x - t) / z)
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -2.4e+133) {
tmp = t_1;
} else if (z <= -3e-124) {
tmp = x * (1.0 - (y / a));
} else if (z <= 8.5e+55) {
tmp = x + (t / (a / y));
} else if (z <= 5.3e+131) {
tmp = y * ((x - t) / z);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t + (a * ((t - x) / z)) tmp = 0 if z <= -2.4e+133: tmp = t_1 elif z <= -3e-124: tmp = x * (1.0 - (y / a)) elif z <= 8.5e+55: tmp = x + (t / (a / y)) elif z <= 5.3e+131: tmp = y * ((x - t) / z) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(t + Float64(a * Float64(Float64(t - x) / z))) tmp = 0.0 if (z <= -2.4e+133) tmp = t_1; elseif (z <= -3e-124) tmp = Float64(x * Float64(1.0 - Float64(y / a))); elseif (z <= 8.5e+55) tmp = Float64(x + Float64(t / Float64(a / y))); elseif (z <= 5.3e+131) tmp = Float64(y * Float64(Float64(x - t) / z)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t + (a * ((t - x) / z)); tmp = 0.0; if (z <= -2.4e+133) tmp = t_1; elseif (z <= -3e-124) tmp = x * (1.0 - (y / a)); elseif (z <= 8.5e+55) tmp = x + (t / (a / y)); elseif (z <= 5.3e+131) tmp = y * ((x - t) / z); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(t + N[(a * N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -2.4e+133], t$95$1, If[LessEqual[z, -3e-124], N[(x * N[(1.0 - N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 8.5e+55], N[(x + N[(t / N[(a / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 5.3e+131], N[(y * N[(N[(x - t), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + a \cdot \frac{t - x}{z}\\
\mathbf{if}\;z \leq -2.4 \cdot 10^{+133}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq -3 \cdot 10^{-124}:\\
\;\;\;\;x \cdot \left(1 - \frac{y}{a}\right)\\
\mathbf{elif}\;z \leq 8.5 \cdot 10^{+55}:\\
\;\;\;\;x + \frac{t}{\frac{a}{y}}\\
\mathbf{elif}\;z \leq 5.3 \cdot 10^{+131}:\\
\;\;\;\;y \cdot \frac{x - t}{z}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if z < -2.3999999999999999e133 or 5.2999999999999997e131 < z Initial program 31.1%
+-commutative31.1%
*-commutative31.1%
associate-/l*64.1%
fma-define64.2%
Simplified64.2%
Taylor expanded in z around inf 47.7%
sub-neg47.7%
Simplified60.8%
Taylor expanded in z around inf 72.2%
if -2.3999999999999999e133 < z < -3e-124Initial program 81.5%
associate-/l*90.5%
Simplified90.5%
Taylor expanded in a around inf 49.9%
associate-/l*55.6%
Simplified55.6%
Taylor expanded in y around inf 51.8%
Taylor expanded in x around inf 50.3%
mul-1-neg50.3%
sub-neg50.3%
Simplified50.3%
if -3e-124 < z < 8.50000000000000002e55Initial program 85.0%
associate-/l*90.6%
Simplified90.6%
Taylor expanded in t around inf 70.5%
associate-/l*74.4%
Simplified74.4%
Taylor expanded in z around 0 62.9%
+-commutative62.9%
associate-*r/67.6%
Simplified67.6%
clear-num67.7%
un-div-inv67.7%
Applied egg-rr67.7%
if 8.50000000000000002e55 < z < 5.2999999999999997e131Initial program 73.4%
+-commutative73.4%
*-commutative73.4%
associate-/l*78.4%
fma-define78.4%
Simplified78.4%
Taylor expanded in y around inf 56.5%
Taylor expanded in a around 0 57.2%
associate-*r/57.2%
associate-*r/57.2%
div-sub57.2%
div-sub57.2%
associate-*r/57.2%
associate-*r/57.2%
distribute-lft-out--57.2%
div-sub57.2%
associate-*r/57.2%
neg-mul-157.2%
Simplified57.2%
Final simplification63.9%
(FPCore (x y z t a)
:precision binary64
(if (<= z -4.8e+49)
(+ x t)
(if (<= z -5.5e-125)
(* x (- 1.0 (/ y a)))
(if (<= z 1.2e+55)
(+ x (/ t (/ a y)))
(if (<= z 2.8e+267) (* x (/ (- y a) z)) (+ x (- t x)))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -4.8e+49) {
tmp = x + t;
} else if (z <= -5.5e-125) {
tmp = x * (1.0 - (y / a));
} else if (z <= 1.2e+55) {
tmp = x + (t / (a / y));
} else if (z <= 2.8e+267) {
tmp = x * ((y - a) / z);
} else {
tmp = x + (t - 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 (z <= (-4.8d+49)) then
tmp = x + t
else if (z <= (-5.5d-125)) then
tmp = x * (1.0d0 - (y / a))
else if (z <= 1.2d+55) then
tmp = x + (t / (a / y))
else if (z <= 2.8d+267) then
tmp = x * ((y - a) / z)
else
tmp = x + (t - x)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -4.8e+49) {
tmp = x + t;
} else if (z <= -5.5e-125) {
tmp = x * (1.0 - (y / a));
} else if (z <= 1.2e+55) {
tmp = x + (t / (a / y));
} else if (z <= 2.8e+267) {
tmp = x * ((y - a) / z);
} else {
tmp = x + (t - x);
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if z <= -4.8e+49: tmp = x + t elif z <= -5.5e-125: tmp = x * (1.0 - (y / a)) elif z <= 1.2e+55: tmp = x + (t / (a / y)) elif z <= 2.8e+267: tmp = x * ((y - a) / z) else: tmp = x + (t - x) return tmp
function code(x, y, z, t, a) tmp = 0.0 if (z <= -4.8e+49) tmp = Float64(x + t); elseif (z <= -5.5e-125) tmp = Float64(x * Float64(1.0 - Float64(y / a))); elseif (z <= 1.2e+55) tmp = Float64(x + Float64(t / Float64(a / y))); elseif (z <= 2.8e+267) tmp = Float64(x * Float64(Float64(y - a) / z)); else tmp = Float64(x + Float64(t - x)); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (z <= -4.8e+49) tmp = x + t; elseif (z <= -5.5e-125) tmp = x * (1.0 - (y / a)); elseif (z <= 1.2e+55) tmp = x + (t / (a / y)); elseif (z <= 2.8e+267) tmp = x * ((y - a) / z); else tmp = x + (t - x); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -4.8e+49], N[(x + t), $MachinePrecision], If[LessEqual[z, -5.5e-125], N[(x * N[(1.0 - N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.2e+55], N[(x + N[(t / N[(a / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 2.8e+267], N[(x * N[(N[(y - a), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], N[(x + N[(t - x), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -4.8 \cdot 10^{+49}:\\
\;\;\;\;x + t\\
\mathbf{elif}\;z \leq -5.5 \cdot 10^{-125}:\\
\;\;\;\;x \cdot \left(1 - \frac{y}{a}\right)\\
\mathbf{elif}\;z \leq 1.2 \cdot 10^{+55}:\\
\;\;\;\;x + \frac{t}{\frac{a}{y}}\\
\mathbf{elif}\;z \leq 2.8 \cdot 10^{+267}:\\
\;\;\;\;x \cdot \frac{y - a}{z}\\
\mathbf{else}:\\
\;\;\;\;x + \left(t - x\right)\\
\end{array}
\end{array}
if z < -4.8e49Initial program 42.8%
associate-/l*69.2%
Simplified69.2%
Taylor expanded in t around inf 33.3%
associate-/l*61.7%
Simplified61.7%
Taylor expanded in z around inf 45.5%
if -4.8e49 < z < -5.4999999999999997e-125Initial program 83.9%
associate-/l*91.7%
Simplified91.7%
Taylor expanded in a around inf 55.6%
associate-/l*61.4%
Simplified61.4%
Taylor expanded in y around inf 58.1%
Taylor expanded in x around inf 56.1%
mul-1-neg56.1%
sub-neg56.1%
Simplified56.1%
if -5.4999999999999997e-125 < z < 1.2e55Initial program 85.0%
associate-/l*90.6%
Simplified90.6%
Taylor expanded in t around inf 70.5%
associate-/l*74.4%
Simplified74.4%
Taylor expanded in z around 0 62.9%
+-commutative62.9%
associate-*r/67.6%
Simplified67.6%
clear-num67.7%
un-div-inv67.7%
Applied egg-rr67.7%
if 1.2e55 < z < 2.8000000000000002e267Initial program 53.1%
+-commutative53.1%
*-commutative53.1%
associate-/l*64.5%
fma-define64.6%
Simplified64.6%
Taylor expanded in t around 0 15.5%
*-rgt-identity15.5%
mul-1-neg15.5%
associate-/l*19.6%
distribute-rgt-neg-in19.6%
mul-1-neg19.6%
distribute-lft-in19.8%
mul-1-neg19.8%
unsub-neg19.8%
Simplified19.8%
Taylor expanded in z around inf 40.1%
neg-mul-140.1%
sub-neg40.1%
mul-1-neg40.1%
Simplified40.1%
if 2.8000000000000002e267 < z Initial program 24.5%
associate-/l*52.9%
Simplified52.9%
Taylor expanded in z around inf 65.2%
Final simplification57.2%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ t (* a (/ (- t x) z)))))
(if (<= z -2.1e+134)
t_1
(if (<= z 1.6e+56)
(+ x (* y (/ (- t x) (- a z))))
(if (<= z 2e+218) (- t (/ (* (- t x) (- y a)) z)) t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -2.1e+134) {
tmp = t_1;
} else if (z <= 1.6e+56) {
tmp = x + (y * ((t - x) / (a - z)));
} else if (z <= 2e+218) {
tmp = t - (((t - x) * (y - a)) / z);
} 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 = t + (a * ((t - x) / z))
if (z <= (-2.1d+134)) then
tmp = t_1
else if (z <= 1.6d+56) then
tmp = x + (y * ((t - x) / (a - z)))
else if (z <= 2d+218) then
tmp = t - (((t - x) * (y - a)) / z)
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -2.1e+134) {
tmp = t_1;
} else if (z <= 1.6e+56) {
tmp = x + (y * ((t - x) / (a - z)));
} else if (z <= 2e+218) {
tmp = t - (((t - x) * (y - a)) / z);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t + (a * ((t - x) / z)) tmp = 0 if z <= -2.1e+134: tmp = t_1 elif z <= 1.6e+56: tmp = x + (y * ((t - x) / (a - z))) elif z <= 2e+218: tmp = t - (((t - x) * (y - a)) / z) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(t + Float64(a * Float64(Float64(t - x) / z))) tmp = 0.0 if (z <= -2.1e+134) tmp = t_1; elseif (z <= 1.6e+56) tmp = Float64(x + Float64(y * Float64(Float64(t - x) / Float64(a - z)))); elseif (z <= 2e+218) tmp = Float64(t - Float64(Float64(Float64(t - x) * Float64(y - a)) / z)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t + (a * ((t - x) / z)); tmp = 0.0; if (z <= -2.1e+134) tmp = t_1; elseif (z <= 1.6e+56) tmp = x + (y * ((t - x) / (a - z))); elseif (z <= 2e+218) tmp = t - (((t - x) * (y - a)) / z); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(t + N[(a * N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -2.1e+134], t$95$1, If[LessEqual[z, 1.6e+56], N[(x + N[(y * N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 2e+218], N[(t - N[(N[(N[(t - x), $MachinePrecision] * N[(y - a), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + a \cdot \frac{t - x}{z}\\
\mathbf{if}\;z \leq -2.1 \cdot 10^{+134}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 1.6 \cdot 10^{+56}:\\
\;\;\;\;x + y \cdot \frac{t - x}{a - z}\\
\mathbf{elif}\;z \leq 2 \cdot 10^{+218}:\\
\;\;\;\;t - \frac{\left(t - x\right) \cdot \left(y - a\right)}{z}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if z < -2.1000000000000001e134 or 2.00000000000000017e218 < z Initial program 25.3%
+-commutative25.3%
*-commutative25.3%
associate-/l*61.6%
fma-define61.6%
Simplified61.6%
Taylor expanded in z around inf 47.2%
sub-neg47.2%
Simplified60.4%
Taylor expanded in z around inf 75.2%
if -2.1000000000000001e134 < z < 1.60000000000000002e56Initial program 83.8%
associate-/l*90.5%
Simplified90.5%
Taylor expanded in y around inf 77.1%
associate-*r/82.3%
Simplified82.3%
if 1.60000000000000002e56 < z < 2.00000000000000017e218Initial program 69.3%
+-commutative69.3%
*-commutative69.3%
associate-/l*78.1%
fma-define78.4%
Simplified78.4%
Taylor expanded in z around inf 72.8%
associate--l+72.8%
associate-*r/72.8%
associate-*r/72.8%
mul-1-neg72.8%
div-sub72.8%
mul-1-neg72.8%
distribute-lft-out--72.8%
associate-*r/72.8%
mul-1-neg72.8%
unsub-neg72.8%
distribute-rgt-out--72.8%
Simplified72.8%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ t (* a (/ (- t x) z)))))
(if (<= z -1.35e+134)
t_1
(if (<= z 4e-94)
(+ x (* y (/ (- t x) (- a z))))
(if (<= z 1.1e+211) (- x (* t (/ (- y z) (- z a)))) t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -1.35e+134) {
tmp = t_1;
} else if (z <= 4e-94) {
tmp = x + (y * ((t - x) / (a - z)));
} else if (z <= 1.1e+211) {
tmp = x - (t * ((y - z) / (z - 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 = t + (a * ((t - x) / z))
if (z <= (-1.35d+134)) then
tmp = t_1
else if (z <= 4d-94) then
tmp = x + (y * ((t - x) / (a - z)))
else if (z <= 1.1d+211) then
tmp = x - (t * ((y - z) / (z - 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 = t + (a * ((t - x) / z));
double tmp;
if (z <= -1.35e+134) {
tmp = t_1;
} else if (z <= 4e-94) {
tmp = x + (y * ((t - x) / (a - z)));
} else if (z <= 1.1e+211) {
tmp = x - (t * ((y - z) / (z - a)));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t + (a * ((t - x) / z)) tmp = 0 if z <= -1.35e+134: tmp = t_1 elif z <= 4e-94: tmp = x + (y * ((t - x) / (a - z))) elif z <= 1.1e+211: tmp = x - (t * ((y - z) / (z - a))) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(t + Float64(a * Float64(Float64(t - x) / z))) tmp = 0.0 if (z <= -1.35e+134) tmp = t_1; elseif (z <= 4e-94) tmp = Float64(x + Float64(y * Float64(Float64(t - x) / Float64(a - z)))); elseif (z <= 1.1e+211) tmp = Float64(x - Float64(t * Float64(Float64(y - z) / Float64(z - a)))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t + (a * ((t - x) / z)); tmp = 0.0; if (z <= -1.35e+134) tmp = t_1; elseif (z <= 4e-94) tmp = x + (y * ((t - x) / (a - z))); elseif (z <= 1.1e+211) tmp = x - (t * ((y - z) / (z - a))); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(t + N[(a * N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -1.35e+134], t$95$1, If[LessEqual[z, 4e-94], N[(x + N[(y * N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.1e+211], N[(x - N[(t * N[(N[(y - z), $MachinePrecision] / N[(z - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + a \cdot \frac{t - x}{z}\\
\mathbf{if}\;z \leq -1.35 \cdot 10^{+134}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 4 \cdot 10^{-94}:\\
\;\;\;\;x + y \cdot \frac{t - x}{a - z}\\
\mathbf{elif}\;z \leq 1.1 \cdot 10^{+211}:\\
\;\;\;\;x - t \cdot \frac{y - z}{z - a}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if z < -1.35e134 or 1.10000000000000002e211 < z Initial program 25.3%
+-commutative25.3%
*-commutative25.3%
associate-/l*61.6%
fma-define61.6%
Simplified61.6%
Taylor expanded in z around inf 47.2%
sub-neg47.2%
Simplified60.4%
Taylor expanded in z around inf 75.2%
if -1.35e134 < z < 3.9999999999999998e-94Initial program 86.9%
associate-/l*91.9%
Simplified91.9%
Taylor expanded in y around inf 81.4%
associate-*r/85.2%
Simplified85.2%
if 3.9999999999999998e-94 < z < 1.10000000000000002e211Initial program 69.4%
associate-/l*79.7%
Simplified79.7%
Taylor expanded in t around inf 63.3%
associate-/l*69.4%
Simplified69.4%
Final simplification79.5%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ t (* a (/ (- t x) z)))))
(if (<= z -9.5e+120)
t_1
(if (<= z 4.1e+55)
(+ x (/ (- t x) (/ a y)))
(if (<= z 2.4e+138) (* y (/ (- x t) z)) t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -9.5e+120) {
tmp = t_1;
} else if (z <= 4.1e+55) {
tmp = x + ((t - x) / (a / y));
} else if (z <= 2.4e+138) {
tmp = y * ((x - t) / z);
} 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 = t + (a * ((t - x) / z))
if (z <= (-9.5d+120)) then
tmp = t_1
else if (z <= 4.1d+55) then
tmp = x + ((t - x) / (a / y))
else if (z <= 2.4d+138) then
tmp = y * ((x - t) / z)
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -9.5e+120) {
tmp = t_1;
} else if (z <= 4.1e+55) {
tmp = x + ((t - x) / (a / y));
} else if (z <= 2.4e+138) {
tmp = y * ((x - t) / z);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t + (a * ((t - x) / z)) tmp = 0 if z <= -9.5e+120: tmp = t_1 elif z <= 4.1e+55: tmp = x + ((t - x) / (a / y)) elif z <= 2.4e+138: tmp = y * ((x - t) / z) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(t + Float64(a * Float64(Float64(t - x) / z))) tmp = 0.0 if (z <= -9.5e+120) tmp = t_1; elseif (z <= 4.1e+55) tmp = Float64(x + Float64(Float64(t - x) / Float64(a / y))); elseif (z <= 2.4e+138) tmp = Float64(y * Float64(Float64(x - t) / z)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t + (a * ((t - x) / z)); tmp = 0.0; if (z <= -9.5e+120) tmp = t_1; elseif (z <= 4.1e+55) tmp = x + ((t - x) / (a / y)); elseif (z <= 2.4e+138) tmp = y * ((x - t) / z); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(t + N[(a * N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -9.5e+120], t$95$1, If[LessEqual[z, 4.1e+55], N[(x + N[(N[(t - x), $MachinePrecision] / N[(a / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 2.4e+138], N[(y * N[(N[(x - t), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + a \cdot \frac{t - x}{z}\\
\mathbf{if}\;z \leq -9.5 \cdot 10^{+120}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 4.1 \cdot 10^{+55}:\\
\;\;\;\;x + \frac{t - x}{\frac{a}{y}}\\
\mathbf{elif}\;z \leq 2.4 \cdot 10^{+138}:\\
\;\;\;\;y \cdot \frac{x - t}{z}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if z < -9.5e120 or 2.4000000000000001e138 < z Initial program 33.2%
+-commutative33.2%
*-commutative33.2%
associate-/l*65.2%
fma-define65.3%
Simplified65.3%
Taylor expanded in z around inf 49.3%
sub-neg49.3%
Simplified62.0%
Taylor expanded in z around inf 70.1%
if -9.5e120 < z < 4.09999999999999981e55Initial program 83.6%
associate-/l*90.4%
Simplified90.4%
Taylor expanded in a around inf 65.9%
associate-/l*73.7%
Simplified73.7%
Taylor expanded in y around inf 71.8%
clear-num71.8%
un-div-inv71.8%
Applied egg-rr71.8%
if 4.09999999999999981e55 < z < 2.4000000000000001e138Initial program 73.4%
+-commutative73.4%
*-commutative73.4%
associate-/l*78.4%
fma-define78.4%
Simplified78.4%
Taylor expanded in y around inf 56.5%
Taylor expanded in a around 0 57.2%
associate-*r/57.2%
associate-*r/57.2%
div-sub57.2%
div-sub57.2%
associate-*r/57.2%
associate-*r/57.2%
distribute-lft-out--57.2%
div-sub57.2%
associate-*r/57.2%
neg-mul-157.2%
Simplified57.2%
Final simplification70.4%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ t (* a (/ (- t x) z)))))
(if (<= z -1.5e+121)
t_1
(if (<= z 2.8e+56)
(+ x (* (- t x) (/ y a)))
(if (<= z 3.9e+133) (* y (/ (- x t) z)) t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -1.5e+121) {
tmp = t_1;
} else if (z <= 2.8e+56) {
tmp = x + ((t - x) * (y / a));
} else if (z <= 3.9e+133) {
tmp = y * ((x - t) / z);
} 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 = t + (a * ((t - x) / z))
if (z <= (-1.5d+121)) then
tmp = t_1
else if (z <= 2.8d+56) then
tmp = x + ((t - x) * (y / a))
else if (z <= 3.9d+133) then
tmp = y * ((x - t) / z)
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -1.5e+121) {
tmp = t_1;
} else if (z <= 2.8e+56) {
tmp = x + ((t - x) * (y / a));
} else if (z <= 3.9e+133) {
tmp = y * ((x - t) / z);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t + (a * ((t - x) / z)) tmp = 0 if z <= -1.5e+121: tmp = t_1 elif z <= 2.8e+56: tmp = x + ((t - x) * (y / a)) elif z <= 3.9e+133: tmp = y * ((x - t) / z) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(t + Float64(a * Float64(Float64(t - x) / z))) tmp = 0.0 if (z <= -1.5e+121) tmp = t_1; elseif (z <= 2.8e+56) tmp = Float64(x + Float64(Float64(t - x) * Float64(y / a))); elseif (z <= 3.9e+133) tmp = Float64(y * Float64(Float64(x - t) / z)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t + (a * ((t - x) / z)); tmp = 0.0; if (z <= -1.5e+121) tmp = t_1; elseif (z <= 2.8e+56) tmp = x + ((t - x) * (y / a)); elseif (z <= 3.9e+133) tmp = y * ((x - t) / z); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(t + N[(a * N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -1.5e+121], t$95$1, If[LessEqual[z, 2.8e+56], N[(x + N[(N[(t - x), $MachinePrecision] * N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 3.9e+133], N[(y * N[(N[(x - t), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + a \cdot \frac{t - x}{z}\\
\mathbf{if}\;z \leq -1.5 \cdot 10^{+121}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 2.8 \cdot 10^{+56}:\\
\;\;\;\;x + \left(t - x\right) \cdot \frac{y}{a}\\
\mathbf{elif}\;z \leq 3.9 \cdot 10^{+133}:\\
\;\;\;\;y \cdot \frac{x - t}{z}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if z < -1.5000000000000001e121 or 3.90000000000000014e133 < z Initial program 33.2%
+-commutative33.2%
*-commutative33.2%
associate-/l*65.2%
fma-define65.3%
Simplified65.3%
Taylor expanded in z around inf 49.3%
sub-neg49.3%
Simplified62.0%
Taylor expanded in z around inf 70.1%
if -1.5000000000000001e121 < z < 2.80000000000000008e56Initial program 83.6%
associate-/l*90.4%
Simplified90.4%
Taylor expanded in a around inf 65.9%
associate-/l*73.7%
Simplified73.7%
Taylor expanded in y around inf 71.8%
if 2.80000000000000008e56 < z < 3.90000000000000014e133Initial program 73.4%
+-commutative73.4%
*-commutative73.4%
associate-/l*78.4%
fma-define78.4%
Simplified78.4%
Taylor expanded in y around inf 56.5%
Taylor expanded in a around 0 57.2%
associate-*r/57.2%
associate-*r/57.2%
div-sub57.2%
div-sub57.2%
associate-*r/57.2%
associate-*r/57.2%
distribute-lft-out--57.2%
div-sub57.2%
associate-*r/57.2%
neg-mul-157.2%
Simplified57.2%
Final simplification70.3%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ t (* a (/ (- t x) z)))))
(if (<= z -5.8e+119)
t_1
(if (<= z 1.3e+56)
(+ x (* y (/ (- t x) a)))
(if (<= z 1.6e+135) (* y (/ (- x t) z)) t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -5.8e+119) {
tmp = t_1;
} else if (z <= 1.3e+56) {
tmp = x + (y * ((t - x) / a));
} else if (z <= 1.6e+135) {
tmp = y * ((x - t) / z);
} 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 = t + (a * ((t - x) / z))
if (z <= (-5.8d+119)) then
tmp = t_1
else if (z <= 1.3d+56) then
tmp = x + (y * ((t - x) / a))
else if (z <= 1.6d+135) then
tmp = y * ((x - t) / z)
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = t + (a * ((t - x) / z));
double tmp;
if (z <= -5.8e+119) {
tmp = t_1;
} else if (z <= 1.3e+56) {
tmp = x + (y * ((t - x) / a));
} else if (z <= 1.6e+135) {
tmp = y * ((x - t) / z);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t + (a * ((t - x) / z)) tmp = 0 if z <= -5.8e+119: tmp = t_1 elif z <= 1.3e+56: tmp = x + (y * ((t - x) / a)) elif z <= 1.6e+135: tmp = y * ((x - t) / z) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(t + Float64(a * Float64(Float64(t - x) / z))) tmp = 0.0 if (z <= -5.8e+119) tmp = t_1; elseif (z <= 1.3e+56) tmp = Float64(x + Float64(y * Float64(Float64(t - x) / a))); elseif (z <= 1.6e+135) tmp = Float64(y * Float64(Float64(x - t) / z)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t + (a * ((t - x) / z)); tmp = 0.0; if (z <= -5.8e+119) tmp = t_1; elseif (z <= 1.3e+56) tmp = x + (y * ((t - x) / a)); elseif (z <= 1.6e+135) tmp = y * ((x - t) / z); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(t + N[(a * N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -5.8e+119], t$95$1, If[LessEqual[z, 1.3e+56], N[(x + N[(y * N[(N[(t - x), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.6e+135], N[(y * N[(N[(x - t), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + a \cdot \frac{t - x}{z}\\
\mathbf{if}\;z \leq -5.8 \cdot 10^{+119}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 1.3 \cdot 10^{+56}:\\
\;\;\;\;x + y \cdot \frac{t - x}{a}\\
\mathbf{elif}\;z \leq 1.6 \cdot 10^{+135}:\\
\;\;\;\;y \cdot \frac{x - t}{z}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if z < -5.80000000000000014e119 or 1.59999999999999987e135 < z Initial program 33.2%
+-commutative33.2%
*-commutative33.2%
associate-/l*65.2%
fma-define65.3%
Simplified65.3%
Taylor expanded in z around inf 49.3%
sub-neg49.3%
Simplified62.0%
Taylor expanded in z around inf 70.1%
if -5.80000000000000014e119 < z < 1.30000000000000005e56Initial program 83.6%
associate-/l*90.4%
Simplified90.4%
Taylor expanded in z around 0 64.9%
associate-/l*69.6%
Simplified69.6%
if 1.30000000000000005e56 < z < 1.59999999999999987e135Initial program 73.4%
+-commutative73.4%
*-commutative73.4%
associate-/l*78.4%
fma-define78.4%
Simplified78.4%
Taylor expanded in y around inf 56.5%
Taylor expanded in a around 0 57.2%
associate-*r/57.2%
associate-*r/57.2%
div-sub57.2%
div-sub57.2%
associate-*r/57.2%
associate-*r/57.2%
distribute-lft-out--57.2%
div-sub57.2%
associate-*r/57.2%
neg-mul-157.2%
Simplified57.2%
Final simplification68.9%
(FPCore (x y z t a)
:precision binary64
(if (<= a -3.5e-95)
(+ x (/ t (/ a y)))
(if (<= a 2.9e-67)
(* y (/ (- x t) z))
(if (<= a 1.6e+99) (+ x t) (+ x (* t (/ y a)))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (a <= -3.5e-95) {
tmp = x + (t / (a / y));
} else if (a <= 2.9e-67) {
tmp = y * ((x - t) / z);
} else if (a <= 1.6e+99) {
tmp = x + t;
} else {
tmp = x + (t * (y / 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 (a <= (-3.5d-95)) then
tmp = x + (t / (a / y))
else if (a <= 2.9d-67) then
tmp = y * ((x - t) / z)
else if (a <= 1.6d+99) then
tmp = x + t
else
tmp = x + (t * (y / a))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (a <= -3.5e-95) {
tmp = x + (t / (a / y));
} else if (a <= 2.9e-67) {
tmp = y * ((x - t) / z);
} else if (a <= 1.6e+99) {
tmp = x + t;
} else {
tmp = x + (t * (y / a));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if a <= -3.5e-95: tmp = x + (t / (a / y)) elif a <= 2.9e-67: tmp = y * ((x - t) / z) elif a <= 1.6e+99: tmp = x + t else: tmp = x + (t * (y / a)) return tmp
function code(x, y, z, t, a) tmp = 0.0 if (a <= -3.5e-95) tmp = Float64(x + Float64(t / Float64(a / y))); elseif (a <= 2.9e-67) tmp = Float64(y * Float64(Float64(x - t) / z)); elseif (a <= 1.6e+99) tmp = Float64(x + t); else tmp = Float64(x + Float64(t * Float64(y / a))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (a <= -3.5e-95) tmp = x + (t / (a / y)); elseif (a <= 2.9e-67) tmp = y * ((x - t) / z); elseif (a <= 1.6e+99) tmp = x + t; else tmp = x + (t * (y / a)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[a, -3.5e-95], N[(x + N[(t / N[(a / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 2.9e-67], N[(y * N[(N[(x - t), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 1.6e+99], N[(x + t), $MachinePrecision], N[(x + N[(t * N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -3.5 \cdot 10^{-95}:\\
\;\;\;\;x + \frac{t}{\frac{a}{y}}\\
\mathbf{elif}\;a \leq 2.9 \cdot 10^{-67}:\\
\;\;\;\;y \cdot \frac{x - t}{z}\\
\mathbf{elif}\;a \leq 1.6 \cdot 10^{+99}:\\
\;\;\;\;x + t\\
\mathbf{else}:\\
\;\;\;\;x + t \cdot \frac{y}{a}\\
\end{array}
\end{array}
if a < -3.4999999999999997e-95Initial program 72.8%
associate-/l*85.6%
Simplified85.6%
Taylor expanded in t around inf 63.7%
associate-/l*74.4%
Simplified74.4%
Taylor expanded in z around 0 55.9%
+-commutative55.9%
associate-*r/59.3%
Simplified59.3%
clear-num59.4%
un-div-inv59.4%
Applied egg-rr59.4%
if -3.4999999999999997e-95 < a < 2.90000000000000005e-67Initial program 70.1%
+-commutative70.1%
*-commutative70.1%
associate-/l*76.0%
fma-define76.0%
Simplified76.0%
Taylor expanded in y around inf 66.9%
Taylor expanded in a around 0 56.7%
associate-*r/56.7%
associate-*r/56.7%
div-sub57.8%
div-sub56.7%
associate-*r/56.7%
associate-*r/56.7%
distribute-lft-out--56.7%
div-sub57.8%
associate-*r/57.8%
neg-mul-157.8%
Simplified57.8%
if 2.90000000000000005e-67 < a < 1.6e99Initial program 68.8%
associate-/l*81.0%
Simplified81.0%
Taylor expanded in t around inf 53.5%
associate-/l*68.7%
Simplified68.7%
Taylor expanded in z around inf 48.8%
if 1.6e99 < a Initial program 65.3%
associate-/l*91.8%
Simplified91.8%
Taylor expanded in t around inf 67.5%
associate-/l*85.5%
Simplified85.5%
Taylor expanded in z around 0 62.4%
+-commutative62.4%
associate-*r/70.3%
Simplified70.3%
Final simplification59.0%
(FPCore (x y z t a)
:precision binary64
(if (<= z -9.2e+51)
(+ x t)
(if (<= z -6e-125)
(* x (- 1.0 (/ y a)))
(if (<= z 1.8e+57) (+ x (/ t (/ a y))) (+ x (- t x))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -9.2e+51) {
tmp = x + t;
} else if (z <= -6e-125) {
tmp = x * (1.0 - (y / a));
} else if (z <= 1.8e+57) {
tmp = x + (t / (a / y));
} else {
tmp = x + (t - 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 (z <= (-9.2d+51)) then
tmp = x + t
else if (z <= (-6d-125)) then
tmp = x * (1.0d0 - (y / a))
else if (z <= 1.8d+57) then
tmp = x + (t / (a / y))
else
tmp = x + (t - x)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -9.2e+51) {
tmp = x + t;
} else if (z <= -6e-125) {
tmp = x * (1.0 - (y / a));
} else if (z <= 1.8e+57) {
tmp = x + (t / (a / y));
} else {
tmp = x + (t - x);
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if z <= -9.2e+51: tmp = x + t elif z <= -6e-125: tmp = x * (1.0 - (y / a)) elif z <= 1.8e+57: tmp = x + (t / (a / y)) else: tmp = x + (t - x) return tmp
function code(x, y, z, t, a) tmp = 0.0 if (z <= -9.2e+51) tmp = Float64(x + t); elseif (z <= -6e-125) tmp = Float64(x * Float64(1.0 - Float64(y / a))); elseif (z <= 1.8e+57) tmp = Float64(x + Float64(t / Float64(a / y))); else tmp = Float64(x + Float64(t - x)); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (z <= -9.2e+51) tmp = x + t; elseif (z <= -6e-125) tmp = x * (1.0 - (y / a)); elseif (z <= 1.8e+57) tmp = x + (t / (a / y)); else tmp = x + (t - x); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -9.2e+51], N[(x + t), $MachinePrecision], If[LessEqual[z, -6e-125], N[(x * N[(1.0 - N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.8e+57], N[(x + N[(t / N[(a / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(t - x), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -9.2 \cdot 10^{+51}:\\
\;\;\;\;x + t\\
\mathbf{elif}\;z \leq -6 \cdot 10^{-125}:\\
\;\;\;\;x \cdot \left(1 - \frac{y}{a}\right)\\
\mathbf{elif}\;z \leq 1.8 \cdot 10^{+57}:\\
\;\;\;\;x + \frac{t}{\frac{a}{y}}\\
\mathbf{else}:\\
\;\;\;\;x + \left(t - x\right)\\
\end{array}
\end{array}
if z < -9.2000000000000002e51Initial program 42.8%
associate-/l*69.2%
Simplified69.2%
Taylor expanded in t around inf 33.3%
associate-/l*61.7%
Simplified61.7%
Taylor expanded in z around inf 45.5%
if -9.2000000000000002e51 < z < -5.99999999999999981e-125Initial program 83.9%
associate-/l*91.7%
Simplified91.7%
Taylor expanded in a around inf 55.6%
associate-/l*61.4%
Simplified61.4%
Taylor expanded in y around inf 58.1%
Taylor expanded in x around inf 56.1%
mul-1-neg56.1%
sub-neg56.1%
Simplified56.1%
if -5.99999999999999981e-125 < z < 1.8000000000000001e57Initial program 85.0%
associate-/l*90.6%
Simplified90.6%
Taylor expanded in t around inf 70.5%
associate-/l*74.4%
Simplified74.4%
Taylor expanded in z around 0 62.9%
+-commutative62.9%
associate-*r/67.6%
Simplified67.6%
clear-num67.7%
un-div-inv67.7%
Applied egg-rr67.7%
if 1.8000000000000001e57 < z Initial program 47.8%
associate-/l*60.3%
Simplified60.3%
Taylor expanded in z around inf 32.8%
Final simplification54.9%
(FPCore (x y z t a)
:precision binary64
(if (<= z -2.6e+49)
(+ x t)
(if (<= z -1.4e-124)
(* x (- 1.0 (/ y a)))
(if (<= z 1.35e+57) (+ x (* t (/ y a))) (+ x (- t x))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -2.6e+49) {
tmp = x + t;
} else if (z <= -1.4e-124) {
tmp = x * (1.0 - (y / a));
} else if (z <= 1.35e+57) {
tmp = x + (t * (y / a));
} else {
tmp = x + (t - 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 (z <= (-2.6d+49)) then
tmp = x + t
else if (z <= (-1.4d-124)) then
tmp = x * (1.0d0 - (y / a))
else if (z <= 1.35d+57) then
tmp = x + (t * (y / a))
else
tmp = x + (t - x)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -2.6e+49) {
tmp = x + t;
} else if (z <= -1.4e-124) {
tmp = x * (1.0 - (y / a));
} else if (z <= 1.35e+57) {
tmp = x + (t * (y / a));
} else {
tmp = x + (t - x);
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if z <= -2.6e+49: tmp = x + t elif z <= -1.4e-124: tmp = x * (1.0 - (y / a)) elif z <= 1.35e+57: tmp = x + (t * (y / a)) else: tmp = x + (t - x) return tmp
function code(x, y, z, t, a) tmp = 0.0 if (z <= -2.6e+49) tmp = Float64(x + t); elseif (z <= -1.4e-124) tmp = Float64(x * Float64(1.0 - Float64(y / a))); elseif (z <= 1.35e+57) tmp = Float64(x + Float64(t * Float64(y / a))); else tmp = Float64(x + Float64(t - x)); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (z <= -2.6e+49) tmp = x + t; elseif (z <= -1.4e-124) tmp = x * (1.0 - (y / a)); elseif (z <= 1.35e+57) tmp = x + (t * (y / a)); else tmp = x + (t - x); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -2.6e+49], N[(x + t), $MachinePrecision], If[LessEqual[z, -1.4e-124], N[(x * N[(1.0 - N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.35e+57], N[(x + N[(t * N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(t - x), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -2.6 \cdot 10^{+49}:\\
\;\;\;\;x + t\\
\mathbf{elif}\;z \leq -1.4 \cdot 10^{-124}:\\
\;\;\;\;x \cdot \left(1 - \frac{y}{a}\right)\\
\mathbf{elif}\;z \leq 1.35 \cdot 10^{+57}:\\
\;\;\;\;x + t \cdot \frac{y}{a}\\
\mathbf{else}:\\
\;\;\;\;x + \left(t - x\right)\\
\end{array}
\end{array}
if z < -2.59999999999999989e49Initial program 42.8%
associate-/l*69.2%
Simplified69.2%
Taylor expanded in t around inf 33.3%
associate-/l*61.7%
Simplified61.7%
Taylor expanded in z around inf 45.5%
if -2.59999999999999989e49 < z < -1.39999999999999999e-124Initial program 83.9%
associate-/l*91.7%
Simplified91.7%
Taylor expanded in a around inf 55.6%
associate-/l*61.4%
Simplified61.4%
Taylor expanded in y around inf 58.1%
Taylor expanded in x around inf 56.1%
mul-1-neg56.1%
sub-neg56.1%
Simplified56.1%
if -1.39999999999999999e-124 < z < 1.3499999999999999e57Initial program 85.0%
associate-/l*90.6%
Simplified90.6%
Taylor expanded in t around inf 70.5%
associate-/l*74.4%
Simplified74.4%
Taylor expanded in z around 0 62.9%
+-commutative62.9%
associate-*r/67.6%
Simplified67.6%
if 1.3499999999999999e57 < z Initial program 47.8%
associate-/l*60.3%
Simplified60.3%
Taylor expanded in z around inf 32.8%
Final simplification54.9%
(FPCore (x y z t a)
:precision binary64
(if (<= z -4.4e+52)
(+ x t)
(if (<= z -2.2e-125)
(* x (- 1.0 (/ y a)))
(if (<= z 4e+55) (+ x (/ (* y t) a)) (+ x (- t x))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -4.4e+52) {
tmp = x + t;
} else if (z <= -2.2e-125) {
tmp = x * (1.0 - (y / a));
} else if (z <= 4e+55) {
tmp = x + ((y * t) / a);
} else {
tmp = x + (t - 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 (z <= (-4.4d+52)) then
tmp = x + t
else if (z <= (-2.2d-125)) then
tmp = x * (1.0d0 - (y / a))
else if (z <= 4d+55) then
tmp = x + ((y * t) / a)
else
tmp = x + (t - x)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -4.4e+52) {
tmp = x + t;
} else if (z <= -2.2e-125) {
tmp = x * (1.0 - (y / a));
} else if (z <= 4e+55) {
tmp = x + ((y * t) / a);
} else {
tmp = x + (t - x);
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if z <= -4.4e+52: tmp = x + t elif z <= -2.2e-125: tmp = x * (1.0 - (y / a)) elif z <= 4e+55: tmp = x + ((y * t) / a) else: tmp = x + (t - x) return tmp
function code(x, y, z, t, a) tmp = 0.0 if (z <= -4.4e+52) tmp = Float64(x + t); elseif (z <= -2.2e-125) tmp = Float64(x * Float64(1.0 - Float64(y / a))); elseif (z <= 4e+55) tmp = Float64(x + Float64(Float64(y * t) / a)); else tmp = Float64(x + Float64(t - x)); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (z <= -4.4e+52) tmp = x + t; elseif (z <= -2.2e-125) tmp = x * (1.0 - (y / a)); elseif (z <= 4e+55) tmp = x + ((y * t) / a); else tmp = x + (t - x); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -4.4e+52], N[(x + t), $MachinePrecision], If[LessEqual[z, -2.2e-125], N[(x * N[(1.0 - N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 4e+55], N[(x + N[(N[(y * t), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision], N[(x + N[(t - x), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -4.4 \cdot 10^{+52}:\\
\;\;\;\;x + t\\
\mathbf{elif}\;z \leq -2.2 \cdot 10^{-125}:\\
\;\;\;\;x \cdot \left(1 - \frac{y}{a}\right)\\
\mathbf{elif}\;z \leq 4 \cdot 10^{+55}:\\
\;\;\;\;x + \frac{y \cdot t}{a}\\
\mathbf{else}:\\
\;\;\;\;x + \left(t - x\right)\\
\end{array}
\end{array}
if z < -4.4e52Initial program 42.8%
associate-/l*69.2%
Simplified69.2%
Taylor expanded in t around inf 33.3%
associate-/l*61.7%
Simplified61.7%
Taylor expanded in z around inf 45.5%
if -4.4e52 < z < -2.19999999999999995e-125Initial program 83.9%
associate-/l*91.7%
Simplified91.7%
Taylor expanded in a around inf 55.6%
associate-/l*61.4%
Simplified61.4%
Taylor expanded in y around inf 58.1%
Taylor expanded in x around inf 56.1%
mul-1-neg56.1%
sub-neg56.1%
Simplified56.1%
if -2.19999999999999995e-125 < z < 4.00000000000000004e55Initial program 85.0%
associate-/l*90.6%
Simplified90.6%
Taylor expanded in t around inf 70.5%
associate-/l*74.4%
Simplified74.4%
Taylor expanded in z around 0 62.9%
if 4.00000000000000004e55 < z Initial program 47.8%
associate-/l*60.3%
Simplified60.3%
Taylor expanded in z around inf 32.8%
Final simplification52.8%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (/ (- y z) (- z a))))
(if (or (<= x -9e+66) (not (<= x 1.8e+62)))
(* x (+ t_1 1.0))
(- x (* t t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = (y - z) / (z - a);
double tmp;
if ((x <= -9e+66) || !(x <= 1.8e+62)) {
tmp = x * (t_1 + 1.0);
} else {
tmp = x - (t * 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 = (y - z) / (z - a)
if ((x <= (-9d+66)) .or. (.not. (x <= 1.8d+62))) then
tmp = x * (t_1 + 1.0d0)
else
tmp = x - (t * 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 = (y - z) / (z - a);
double tmp;
if ((x <= -9e+66) || !(x <= 1.8e+62)) {
tmp = x * (t_1 + 1.0);
} else {
tmp = x - (t * t_1);
}
return tmp;
}
def code(x, y, z, t, a): t_1 = (y - z) / (z - a) tmp = 0 if (x <= -9e+66) or not (x <= 1.8e+62): tmp = x * (t_1 + 1.0) else: tmp = x - (t * t_1) return tmp
function code(x, y, z, t, a) t_1 = Float64(Float64(y - z) / Float64(z - a)) tmp = 0.0 if ((x <= -9e+66) || !(x <= 1.8e+62)) tmp = Float64(x * Float64(t_1 + 1.0)); else tmp = Float64(x - Float64(t * t_1)); end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = (y - z) / (z - a); tmp = 0.0; if ((x <= -9e+66) || ~((x <= 1.8e+62))) tmp = x * (t_1 + 1.0); else tmp = x - (t * t_1); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(N[(y - z), $MachinePrecision] / N[(z - a), $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[x, -9e+66], N[Not[LessEqual[x, 1.8e+62]], $MachinePrecision]], N[(x * N[(t$95$1 + 1.0), $MachinePrecision]), $MachinePrecision], N[(x - N[(t * t$95$1), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{y - z}{z - a}\\
\mathbf{if}\;x \leq -9 \cdot 10^{+66} \lor \neg \left(x \leq 1.8 \cdot 10^{+62}\right):\\
\;\;\;\;x \cdot \left(t\_1 + 1\right)\\
\mathbf{else}:\\
\;\;\;\;x - t \cdot t\_1\\
\end{array}
\end{array}
if x < -8.9999999999999997e66 or 1.8e62 < x Initial program 58.4%
+-commutative58.4%
*-commutative58.4%
associate-/l*74.8%
fma-define74.8%
Simplified74.8%
Taylor expanded in t around 0 55.4%
*-rgt-identity55.4%
mul-1-neg55.4%
associate-/l*67.2%
distribute-rgt-neg-in67.2%
mul-1-neg67.2%
distribute-lft-in67.3%
mul-1-neg67.3%
unsub-neg67.3%
Simplified67.3%
if -8.9999999999999997e66 < x < 1.8e62Initial program 77.1%
associate-/l*87.4%
Simplified87.4%
Taylor expanded in t around inf 67.3%
associate-/l*80.2%
Simplified80.2%
Final simplification75.3%
(FPCore (x y z t a) :precision binary64 (if (or (<= z -7.2e+125) (not (<= z 9.6e+135))) (+ t (* a (/ (- t x) z))) (+ x (* t (/ y (- a z))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -7.2e+125) || !(z <= 9.6e+135)) {
tmp = t + (a * ((t - x) / z));
} else {
tmp = x + (t * (y / (a - z)));
}
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 ((z <= (-7.2d+125)) .or. (.not. (z <= 9.6d+135))) then
tmp = t + (a * ((t - x) / z))
else
tmp = x + (t * (y / (a - z)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -7.2e+125) || !(z <= 9.6e+135)) {
tmp = t + (a * ((t - x) / z));
} else {
tmp = x + (t * (y / (a - z)));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (z <= -7.2e+125) or not (z <= 9.6e+135): tmp = t + (a * ((t - x) / z)) else: tmp = x + (t * (y / (a - z))) return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((z <= -7.2e+125) || !(z <= 9.6e+135)) tmp = Float64(t + Float64(a * Float64(Float64(t - x) / z))); else tmp = Float64(x + Float64(t * Float64(y / Float64(a - z)))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((z <= -7.2e+125) || ~((z <= 9.6e+135))) tmp = t + (a * ((t - x) / z)); else tmp = x + (t * (y / (a - z))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[z, -7.2e+125], N[Not[LessEqual[z, 9.6e+135]], $MachinePrecision]], N[(t + N[(a * N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(t * N[(y / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -7.2 \cdot 10^{+125} \lor \neg \left(z \leq 9.6 \cdot 10^{+135}\right):\\
\;\;\;\;t + a \cdot \frac{t - x}{z}\\
\mathbf{else}:\\
\;\;\;\;x + t \cdot \frac{y}{a - z}\\
\end{array}
\end{array}
if z < -7.2000000000000007e125 or 9.59999999999999989e135 < z Initial program 32.1%
+-commutative32.1%
*-commutative32.1%
associate-/l*64.7%
fma-define64.8%
Simplified64.8%
Taylor expanded in z around inf 48.5%
sub-neg48.5%
Simplified61.4%
Taylor expanded in z around inf 71.1%
if -7.2000000000000007e125 < z < 9.59999999999999989e135Initial program 82.7%
associate-/l*89.3%
Simplified89.3%
Taylor expanded in t around inf 67.5%
associate-/l*71.3%
Simplified71.3%
Taylor expanded in y around inf 59.2%
associate-/l*62.0%
Simplified62.0%
Final simplification64.2%
(FPCore (x y z t a) :precision binary64 (if (<= z 3.2e+180) (+ x (* (- y z) (/ (- t x) (- a z)))) (+ t (* a (/ (- t x) z)))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= 3.2e+180) {
tmp = x + ((y - z) * ((t - x) / (a - z)));
} else {
tmp = t + (a * ((t - x) / z));
}
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 (z <= 3.2d+180) then
tmp = x + ((y - z) * ((t - x) / (a - z)))
else
tmp = t + (a * ((t - x) / z))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= 3.2e+180) {
tmp = x + ((y - z) * ((t - x) / (a - z)));
} else {
tmp = t + (a * ((t - x) / z));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if z <= 3.2e+180: tmp = x + ((y - z) * ((t - x) / (a - z))) else: tmp = t + (a * ((t - x) / z)) return tmp
function code(x, y, z, t, a) tmp = 0.0 if (z <= 3.2e+180) tmp = Float64(x + Float64(Float64(y - z) * Float64(Float64(t - x) / Float64(a - z)))); else tmp = Float64(t + Float64(a * Float64(Float64(t - x) / z))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (z <= 3.2e+180) tmp = x + ((y - z) * ((t - x) / (a - z))); else tmp = t + (a * ((t - x) / z)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, 3.2e+180], N[(x + N[(N[(y - z), $MachinePrecision] * N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t + N[(a * N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq 3.2 \cdot 10^{+180}:\\
\;\;\;\;x + \left(y - z\right) \cdot \frac{t - x}{a - z}\\
\mathbf{else}:\\
\;\;\;\;t + a \cdot \frac{t - x}{z}\\
\end{array}
\end{array}
if z < 3.19999999999999994e180Initial program 74.9%
associate-/l*85.2%
Simplified85.2%
if 3.19999999999999994e180 < z Initial program 23.3%
+-commutative23.3%
*-commutative23.3%
associate-/l*53.5%
fma-define53.5%
Simplified53.5%
Taylor expanded in z around inf 41.6%
sub-neg41.6%
Simplified55.1%
Taylor expanded in z around inf 76.4%
(FPCore (x y z t a) :precision binary64 (if (<= z -9.5e+50) (+ x t) (if (<= z 1.4e+136) (* x (- 1.0 (/ y a))) (+ x (- t x)))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -9.5e+50) {
tmp = x + t;
} else if (z <= 1.4e+136) {
tmp = x * (1.0 - (y / a));
} else {
tmp = x + (t - 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 (z <= (-9.5d+50)) then
tmp = x + t
else if (z <= 1.4d+136) then
tmp = x * (1.0d0 - (y / a))
else
tmp = x + (t - x)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -9.5e+50) {
tmp = x + t;
} else if (z <= 1.4e+136) {
tmp = x * (1.0 - (y / a));
} else {
tmp = x + (t - x);
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if z <= -9.5e+50: tmp = x + t elif z <= 1.4e+136: tmp = x * (1.0 - (y / a)) else: tmp = x + (t - x) return tmp
function code(x, y, z, t, a) tmp = 0.0 if (z <= -9.5e+50) tmp = Float64(x + t); elseif (z <= 1.4e+136) tmp = Float64(x * Float64(1.0 - Float64(y / a))); else tmp = Float64(x + Float64(t - x)); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (z <= -9.5e+50) tmp = x + t; elseif (z <= 1.4e+136) tmp = x * (1.0 - (y / a)); else tmp = x + (t - x); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -9.5e+50], N[(x + t), $MachinePrecision], If[LessEqual[z, 1.4e+136], N[(x * N[(1.0 - N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(t - x), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -9.5 \cdot 10^{+50}:\\
\;\;\;\;x + t\\
\mathbf{elif}\;z \leq 1.4 \cdot 10^{+136}:\\
\;\;\;\;x \cdot \left(1 - \frac{y}{a}\right)\\
\mathbf{else}:\\
\;\;\;\;x + \left(t - x\right)\\
\end{array}
\end{array}
if z < -9.4999999999999993e50Initial program 42.8%
associate-/l*69.2%
Simplified69.2%
Taylor expanded in t around inf 33.3%
associate-/l*61.7%
Simplified61.7%
Taylor expanded in z around inf 45.5%
if -9.4999999999999993e50 < z < 1.4000000000000001e136Initial program 83.6%
associate-/l*89.6%
Simplified89.6%
Taylor expanded in a around inf 63.7%
associate-/l*70.9%
Simplified70.9%
Taylor expanded in y around inf 68.3%
Taylor expanded in x around inf 53.6%
mul-1-neg53.6%
sub-neg53.6%
Simplified53.6%
if 1.4000000000000001e136 < z Initial program 32.4%
associate-/l*49.5%
Simplified49.5%
Taylor expanded in z around inf 41.2%
(FPCore (x y z t a) :precision binary64 (if (<= a -9.5e-31) x (if (<= a 8.5e-70) (* x (/ y z)) (+ x t))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (a <= -9.5e-31) {
tmp = x;
} else if (a <= 8.5e-70) {
tmp = x * (y / z);
} else {
tmp = x + 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 (a <= (-9.5d-31)) then
tmp = x
else if (a <= 8.5d-70) then
tmp = x * (y / z)
else
tmp = x + t
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (a <= -9.5e-31) {
tmp = x;
} else if (a <= 8.5e-70) {
tmp = x * (y / z);
} else {
tmp = x + t;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if a <= -9.5e-31: tmp = x elif a <= 8.5e-70: tmp = x * (y / z) else: tmp = x + t return tmp
function code(x, y, z, t, a) tmp = 0.0 if (a <= -9.5e-31) tmp = x; elseif (a <= 8.5e-70) tmp = Float64(x * Float64(y / z)); else tmp = Float64(x + t); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (a <= -9.5e-31) tmp = x; elseif (a <= 8.5e-70) tmp = x * (y / z); else tmp = x + t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[a, -9.5e-31], x, If[LessEqual[a, 8.5e-70], N[(x * N[(y / z), $MachinePrecision]), $MachinePrecision], N[(x + t), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -9.5 \cdot 10^{-31}:\\
\;\;\;\;x\\
\mathbf{elif}\;a \leq 8.5 \cdot 10^{-70}:\\
\;\;\;\;x \cdot \frac{y}{z}\\
\mathbf{else}:\\
\;\;\;\;x + t\\
\end{array}
\end{array}
if a < -9.5000000000000008e-31Initial program 70.9%
+-commutative70.9%
*-commutative70.9%
associate-/l*90.6%
fma-define90.7%
Simplified90.7%
Taylor expanded in a around inf 45.4%
if -9.5000000000000008e-31 < a < 8.5000000000000002e-70Initial program 71.7%
+-commutative71.7%
*-commutative71.7%
associate-/l*77.1%
fma-define77.1%
Simplified77.1%
Taylor expanded in t around 0 35.5%
*-rgt-identity35.5%
mul-1-neg35.5%
associate-/l*39.9%
distribute-rgt-neg-in39.9%
mul-1-neg39.9%
distribute-lft-in39.8%
mul-1-neg39.8%
unsub-neg39.8%
Simplified39.8%
Taylor expanded in a around 0 40.5%
if 8.5000000000000002e-70 < a Initial program 67.0%
associate-/l*86.7%
Simplified86.7%
Taylor expanded in t around inf 60.9%
associate-/l*77.6%
Simplified77.6%
Taylor expanded in z around inf 49.6%
(FPCore (x y z t a) :precision binary64 (if (or (<= z -4.4e+39) (not (<= z 3e+53))) (+ x t) x))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -4.4e+39) || !(z <= 3e+53)) {
tmp = x + t;
} 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 ((z <= (-4.4d+39)) .or. (.not. (z <= 3d+53))) then
tmp = x + t
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 ((z <= -4.4e+39) || !(z <= 3e+53)) {
tmp = x + t;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (z <= -4.4e+39) or not (z <= 3e+53): tmp = x + t else: tmp = x return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((z <= -4.4e+39) || !(z <= 3e+53)) tmp = Float64(x + t); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((z <= -4.4e+39) || ~((z <= 3e+53))) tmp = x + t; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[z, -4.4e+39], N[Not[LessEqual[z, 3e+53]], $MachinePrecision]], N[(x + t), $MachinePrecision], x]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -4.4 \cdot 10^{+39} \lor \neg \left(z \leq 3 \cdot 10^{+53}\right):\\
\;\;\;\;x + t\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if z < -4.4000000000000003e39 or 2.99999999999999998e53 < z Initial program 44.8%
associate-/l*66.1%
Simplified66.1%
Taylor expanded in t around inf 35.6%
associate-/l*56.6%
Simplified56.6%
Taylor expanded in z around inf 39.1%
if -4.4000000000000003e39 < z < 2.99999999999999998e53Initial program 86.0%
+-commutative86.0%
*-commutative86.0%
associate-/l*92.5%
fma-define92.4%
Simplified92.4%
Taylor expanded in a around inf 38.0%
Final simplification38.5%
(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 70.1%
+-commutative70.1%
*-commutative70.1%
associate-/l*84.3%
fma-define84.3%
Simplified84.3%
Taylor expanded in a around inf 27.7%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (- t (* (/ y z) (- t x)))))
(if (< z -1.2536131056095036e+188)
t_1
(if (< z 4.446702369113811e+64)
(+ x (/ (- y z) (/ (- a z) (- t x))))
t_1))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t - ((y / z) * (t - x));
double tmp;
if (z < -1.2536131056095036e+188) {
tmp = t_1;
} else if (z < 4.446702369113811e+64) {
tmp = x + ((y - z) / ((a - z) / (t - 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 = t - ((y / z) * (t - x))
if (z < (-1.2536131056095036d+188)) then
tmp = t_1
else if (z < 4.446702369113811d+64) then
tmp = x + ((y - z) / ((a - z) / (t - 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 = t - ((y / z) * (t - x));
double tmp;
if (z < -1.2536131056095036e+188) {
tmp = t_1;
} else if (z < 4.446702369113811e+64) {
tmp = x + ((y - z) / ((a - z) / (t - x)));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t - ((y / z) * (t - x)) tmp = 0 if z < -1.2536131056095036e+188: tmp = t_1 elif z < 4.446702369113811e+64: tmp = x + ((y - z) / ((a - z) / (t - x))) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(t - Float64(Float64(y / z) * Float64(t - x))) tmp = 0.0 if (z < -1.2536131056095036e+188) tmp = t_1; elseif (z < 4.446702369113811e+64) tmp = Float64(x + Float64(Float64(y - z) / Float64(Float64(a - z) / Float64(t - x)))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t - ((y / z) * (t - x)); tmp = 0.0; if (z < -1.2536131056095036e+188) tmp = t_1; elseif (z < 4.446702369113811e+64) tmp = x + ((y - z) / ((a - z) / (t - x))); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(t - N[(N[(y / z), $MachinePrecision] * N[(t - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Less[z, -1.2536131056095036e+188], t$95$1, If[Less[z, 4.446702369113811e+64], N[(x + N[(N[(y - z), $MachinePrecision] / N[(N[(a - z), $MachinePrecision] / N[(t - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t - \frac{y}{z} \cdot \left(t - x\right)\\
\mathbf{if}\;z < -1.2536131056095036 \cdot 10^{+188}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z < 4.446702369113811 \cdot 10^{+64}:\\
\;\;\;\;x + \frac{y - z}{\frac{a - z}{t - x}}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
herbie shell --seed 2024181
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.Axis.Types:invLinMap from Chart-1.5.3"
:precision binary64
:alt
(! :herbie-platform default (if (< z -125361310560950360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) (- t (* (/ y z) (- t x))) (if (< z 44467023691138110000000000000000000000000000000000000000000000000) (+ x (/ (- y z) (/ (- a z) (- t x)))) (- t (* (/ y z) (- t x))))))
(+ x (/ (* (- y z) (- t x)) (- a z))))