
(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 21 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-261) (not (<= t_1 0.0)))
(+ x (/ (- t x) (/ (- a z) (- y z))))
(+ t (/ (* (- y a) (- x t)) 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-261) || !(t_1 <= 0.0)) {
tmp = x + ((t - x) / ((a - z) / (y - z)));
} else {
tmp = t + (((y - a) * (x - t)) / 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) :: t_1
real(8) :: tmp
t_1 = x + (((y - z) * (t - x)) / (a - z))
if ((t_1 <= (-2d-261)) .or. (.not. (t_1 <= 0.0d0))) then
tmp = x + ((t - x) / ((a - z) / (y - z)))
else
tmp = t + (((y - a) * (x - t)) / z)
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-261) || !(t_1 <= 0.0)) {
tmp = x + ((t - x) / ((a - z) / (y - z)));
} else {
tmp = t + (((y - a) * (x - t)) / z);
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + (((y - z) * (t - x)) / (a - z)) tmp = 0 if (t_1 <= -2e-261) or not (t_1 <= 0.0): tmp = x + ((t - x) / ((a - z) / (y - z))) else: tmp = t + (((y - a) * (x - t)) / 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-261) || !(t_1 <= 0.0)) tmp = Float64(x + Float64(Float64(t - x) / Float64(Float64(a - z) / Float64(y - z)))); else tmp = Float64(t + Float64(Float64(Float64(y - a) * Float64(x - t)) / z)); 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-261) || ~((t_1 <= 0.0))) tmp = x + ((t - x) / ((a - z) / (y - z))); else tmp = t + (((y - a) * (x - t)) / z); 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[Or[LessEqual[t$95$1, -2e-261], N[Not[LessEqual[t$95$1, 0.0]], $MachinePrecision]], N[(x + N[(N[(t - x), $MachinePrecision] / N[(N[(a - z), $MachinePrecision] / N[(y - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t + N[(N[(N[(y - a), $MachinePrecision] * N[(x - t), $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^{-261} \lor \neg \left(t_1 \leq 0\right):\\
\;\;\;\;x + \frac{t - x}{\frac{a - z}{y - z}}\\
\mathbf{else}:\\
\;\;\;\;t + \frac{\left(y - a\right) \cdot \left(x - t\right)}{z}\\
\end{array}
\end{array}
if (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < -1.99999999999999997e-261 or 0.0 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) Initial program 73.0%
associate-*l/91.0%
Simplified91.0%
*-commutative91.0%
clear-num90.9%
un-div-inv91.3%
Applied egg-rr91.3%
if -1.99999999999999997e-261 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < 0.0Initial program 4.3%
associate-*l/4.3%
Simplified4.3%
Taylor expanded in z around -inf 99.6%
+-commutative99.6%
sub-neg99.6%
mul-1-neg99.6%
+-commutative99.6%
mul-1-neg99.6%
unsub-neg99.6%
+-commutative99.6%
mul-1-neg99.6%
sub-neg99.6%
distribute-rgt-out--99.4%
Simplified99.4%
Final simplification91.8%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (/ (* (- y z) (- t x)) (- a z)))))
(if (or (<= t_1 -2e-261) (not (<= t_1 0.0)))
(+ x (* (- t x) (/ (- y z) (- a z))))
(+ t (/ (* (- y a) (- x t)) 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-261) || !(t_1 <= 0.0)) {
tmp = x + ((t - x) * ((y - z) / (a - z)));
} else {
tmp = t + (((y - a) * (x - t)) / 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) :: t_1
real(8) :: tmp
t_1 = x + (((y - z) * (t - x)) / (a - z))
if ((t_1 <= (-2d-261)) .or. (.not. (t_1 <= 0.0d0))) then
tmp = x + ((t - x) * ((y - z) / (a - z)))
else
tmp = t + (((y - a) * (x - t)) / z)
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-261) || !(t_1 <= 0.0)) {
tmp = x + ((t - x) * ((y - z) / (a - z)));
} else {
tmp = t + (((y - a) * (x - t)) / z);
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + (((y - z) * (t - x)) / (a - z)) tmp = 0 if (t_1 <= -2e-261) or not (t_1 <= 0.0): tmp = x + ((t - x) * ((y - z) / (a - z))) else: tmp = t + (((y - a) * (x - t)) / 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-261) || !(t_1 <= 0.0)) tmp = Float64(x + Float64(Float64(t - x) * Float64(Float64(y - z) / Float64(a - z)))); else tmp = Float64(t + Float64(Float64(Float64(y - a) * Float64(x - t)) / z)); 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-261) || ~((t_1 <= 0.0))) tmp = x + ((t - x) * ((y - z) / (a - z))); else tmp = t + (((y - a) * (x - t)) / z); 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[Or[LessEqual[t$95$1, -2e-261], N[Not[LessEqual[t$95$1, 0.0]], $MachinePrecision]], N[(x + N[(N[(t - x), $MachinePrecision] * N[(N[(y - z), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t + N[(N[(N[(y - a), $MachinePrecision] * N[(x - t), $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^{-261} \lor \neg \left(t_1 \leq 0\right):\\
\;\;\;\;x + \left(t - x\right) \cdot \frac{y - z}{a - z}\\
\mathbf{else}:\\
\;\;\;\;t + \frac{\left(y - a\right) \cdot \left(x - t\right)}{z}\\
\end{array}
\end{array}
if (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < -1.99999999999999997e-261 or 0.0 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) Initial program 73.0%
associate-*l/91.0%
Simplified91.0%
if -1.99999999999999997e-261 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < 0.0Initial program 4.3%
associate-*l/4.3%
Simplified4.3%
Taylor expanded in z around -inf 99.6%
+-commutative99.6%
sub-neg99.6%
mul-1-neg99.6%
+-commutative99.6%
mul-1-neg99.6%
unsub-neg99.6%
+-commutative99.6%
mul-1-neg99.6%
sub-neg99.6%
distribute-rgt-out--99.4%
Simplified99.4%
Final simplification91.4%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* t (/ (- y z) (- a z)))) (t_2 (* y (/ (- t x) (- a z)))))
(if (<= y -4.8e+83)
t_2
(if (<= y -1.7e-28)
t_1
(if (<= y -8.2e-131)
(+ x t)
(if (<= y -3.8e-254)
t_1
(if (<= y 4.4e-242) (+ x t) (if (<= y 7.8e+104) t_1 t_2))))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t * ((y - z) / (a - z));
double t_2 = y * ((t - x) / (a - z));
double tmp;
if (y <= -4.8e+83) {
tmp = t_2;
} else if (y <= -1.7e-28) {
tmp = t_1;
} else if (y <= -8.2e-131) {
tmp = x + t;
} else if (y <= -3.8e-254) {
tmp = t_1;
} else if (y <= 4.4e-242) {
tmp = x + t;
} else if (y <= 7.8e+104) {
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 = t * ((y - z) / (a - z))
t_2 = y * ((t - x) / (a - z))
if (y <= (-4.8d+83)) then
tmp = t_2
else if (y <= (-1.7d-28)) then
tmp = t_1
else if (y <= (-8.2d-131)) then
tmp = x + t
else if (y <= (-3.8d-254)) then
tmp = t_1
else if (y <= 4.4d-242) then
tmp = x + t
else if (y <= 7.8d+104) 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 = t * ((y - z) / (a - z));
double t_2 = y * ((t - x) / (a - z));
double tmp;
if (y <= -4.8e+83) {
tmp = t_2;
} else if (y <= -1.7e-28) {
tmp = t_1;
} else if (y <= -8.2e-131) {
tmp = x + t;
} else if (y <= -3.8e-254) {
tmp = t_1;
} else if (y <= 4.4e-242) {
tmp = x + t;
} else if (y <= 7.8e+104) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t * ((y - z) / (a - z)) t_2 = y * ((t - x) / (a - z)) tmp = 0 if y <= -4.8e+83: tmp = t_2 elif y <= -1.7e-28: tmp = t_1 elif y <= -8.2e-131: tmp = x + t elif y <= -3.8e-254: tmp = t_1 elif y <= 4.4e-242: tmp = x + t elif y <= 7.8e+104: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a) t_1 = Float64(t * Float64(Float64(y - z) / Float64(a - z))) t_2 = Float64(y * Float64(Float64(t - x) / Float64(a - z))) tmp = 0.0 if (y <= -4.8e+83) tmp = t_2; elseif (y <= -1.7e-28) tmp = t_1; elseif (y <= -8.2e-131) tmp = Float64(x + t); elseif (y <= -3.8e-254) tmp = t_1; elseif (y <= 4.4e-242) tmp = Float64(x + t); elseif (y <= 7.8e+104) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t * ((y - z) / (a - z)); t_2 = y * ((t - x) / (a - z)); tmp = 0.0; if (y <= -4.8e+83) tmp = t_2; elseif (y <= -1.7e-28) tmp = t_1; elseif (y <= -8.2e-131) tmp = x + t; elseif (y <= -3.8e-254) tmp = t_1; elseif (y <= 4.4e-242) tmp = x + t; elseif (y <= 7.8e+104) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(t * N[(N[(y - z), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(y * N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -4.8e+83], t$95$2, If[LessEqual[y, -1.7e-28], t$95$1, If[LessEqual[y, -8.2e-131], N[(x + t), $MachinePrecision], If[LessEqual[y, -3.8e-254], t$95$1, If[LessEqual[y, 4.4e-242], N[(x + t), $MachinePrecision], If[LessEqual[y, 7.8e+104], t$95$1, t$95$2]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t \cdot \frac{y - z}{a - z}\\
t_2 := y \cdot \frac{t - x}{a - z}\\
\mathbf{if}\;y \leq -4.8 \cdot 10^{+83}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;y \leq -1.7 \cdot 10^{-28}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq -8.2 \cdot 10^{-131}:\\
\;\;\;\;x + t\\
\mathbf{elif}\;y \leq -3.8 \cdot 10^{-254}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq 4.4 \cdot 10^{-242}:\\
\;\;\;\;x + t\\
\mathbf{elif}\;y \leq 7.8 \cdot 10^{+104}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if y < -4.79999999999999982e83 or 7.80000000000000033e104 < y Initial program 67.3%
associate-*l/87.2%
Simplified87.2%
Taylor expanded in y around inf 79.1%
div-sub80.2%
*-commutative80.2%
Simplified80.2%
if -4.79999999999999982e83 < y < -1.7e-28 or -8.2000000000000004e-131 < y < -3.8000000000000001e-254 or 4.40000000000000003e-242 < y < 7.80000000000000033e104Initial program 65.1%
associate-*l/83.1%
Simplified83.1%
Taylor expanded in x around 0 46.9%
associate-*r/64.0%
Simplified64.0%
if -1.7e-28 < y < -8.2000000000000004e-131 or -3.8000000000000001e-254 < y < 4.40000000000000003e-242Initial program 82.6%
associate-/l*90.1%
Simplified90.1%
Taylor expanded in t around inf 89.2%
Taylor expanded in z around inf 69.3%
Final simplification70.8%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (/ (- y z) (/ (- a z) t)))))
(if (<= y -1.8e+76)
(* y (/ (- t x) (- a z)))
(if (<= y 1.8e-238)
t_1
(if (<= y 5.4e-190)
(* t (/ (- y z) (- a z)))
(if (<= y 5.8e+103) t_1 (+ x (/ (- t x) (/ (- a z) y)))))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + ((y - z) / ((a - z) / t));
double tmp;
if (y <= -1.8e+76) {
tmp = y * ((t - x) / (a - z));
} else if (y <= 1.8e-238) {
tmp = t_1;
} else if (y <= 5.4e-190) {
tmp = t * ((y - z) / (a - z));
} else if (y <= 5.8e+103) {
tmp = t_1;
} else {
tmp = x + ((t - x) / ((a - z) / 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 + ((y - z) / ((a - z) / t))
if (y <= (-1.8d+76)) then
tmp = y * ((t - x) / (a - z))
else if (y <= 1.8d-238) then
tmp = t_1
else if (y <= 5.4d-190) then
tmp = t * ((y - z) / (a - z))
else if (y <= 5.8d+103) then
tmp = t_1
else
tmp = x + ((t - x) / ((a - z) / 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 + ((y - z) / ((a - z) / t));
double tmp;
if (y <= -1.8e+76) {
tmp = y * ((t - x) / (a - z));
} else if (y <= 1.8e-238) {
tmp = t_1;
} else if (y <= 5.4e-190) {
tmp = t * ((y - z) / (a - z));
} else if (y <= 5.8e+103) {
tmp = t_1;
} else {
tmp = x + ((t - x) / ((a - z) / y));
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + ((y - z) / ((a - z) / t)) tmp = 0 if y <= -1.8e+76: tmp = y * ((t - x) / (a - z)) elif y <= 1.8e-238: tmp = t_1 elif y <= 5.4e-190: tmp = t * ((y - z) / (a - z)) elif y <= 5.8e+103: tmp = t_1 else: tmp = x + ((t - x) / ((a - z) / y)) return tmp
function code(x, y, z, t, a) t_1 = Float64(x + Float64(Float64(y - z) / Float64(Float64(a - z) / t))) tmp = 0.0 if (y <= -1.8e+76) tmp = Float64(y * Float64(Float64(t - x) / Float64(a - z))); elseif (y <= 1.8e-238) tmp = t_1; elseif (y <= 5.4e-190) tmp = Float64(t * Float64(Float64(y - z) / Float64(a - z))); elseif (y <= 5.8e+103) tmp = t_1; else tmp = Float64(x + Float64(Float64(t - x) / Float64(Float64(a - z) / y))); end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x + ((y - z) / ((a - z) / t)); tmp = 0.0; if (y <= -1.8e+76) tmp = y * ((t - x) / (a - z)); elseif (y <= 1.8e-238) tmp = t_1; elseif (y <= 5.4e-190) tmp = t * ((y - z) / (a - z)); elseif (y <= 5.8e+103) tmp = t_1; else tmp = x + ((t - x) / ((a - z) / y)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(N[(y - z), $MachinePrecision] / N[(N[(a - z), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.8e+76], N[(y * N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.8e-238], t$95$1, If[LessEqual[y, 5.4e-190], N[(t * N[(N[(y - z), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 5.8e+103], t$95$1, N[(x + N[(N[(t - x), $MachinePrecision] / N[(N[(a - z), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{y - z}{\frac{a - z}{t}}\\
\mathbf{if}\;y \leq -1.8 \cdot 10^{+76}:\\
\;\;\;\;y \cdot \frac{t - x}{a - z}\\
\mathbf{elif}\;y \leq 1.8 \cdot 10^{-238}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq 5.4 \cdot 10^{-190}:\\
\;\;\;\;t \cdot \frac{y - z}{a - z}\\
\mathbf{elif}\;y \leq 5.8 \cdot 10^{+103}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;x + \frac{t - x}{\frac{a - z}{y}}\\
\end{array}
\end{array}
if y < -1.8000000000000001e76Initial program 76.0%
associate-*l/85.6%
Simplified85.6%
Taylor expanded in y around inf 76.9%
div-sub79.0%
*-commutative79.0%
Simplified79.0%
if -1.8000000000000001e76 < y < 1.80000000000000005e-238 or 5.3999999999999999e-190 < y < 5.7999999999999997e103Initial program 72.9%
associate-/l*86.8%
Simplified86.8%
Taylor expanded in t around inf 80.6%
if 1.80000000000000005e-238 < y < 5.3999999999999999e-190Initial program 37.7%
associate-*l/51.5%
Simplified51.5%
Taylor expanded in x around 0 44.7%
associate-*r/58.3%
Simplified58.3%
if 5.7999999999999997e103 < y Initial program 60.4%
associate-*l/89.5%
Simplified89.5%
*-commutative89.5%
clear-num89.4%
un-div-inv90.9%
Applied egg-rr90.9%
Taylor expanded in y around inf 88.5%
Final simplification80.5%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (/ (- y z) (/ (- a z) t)))))
(if (<= y -1.4e+76)
(* y (/ (- t x) (- a z)))
(if (<= y 1.9e-238)
t_1
(if (<= y 5.4e-190)
(+ t (/ (* (- y a) (- x t)) z))
(if (<= y 1.95e+103) t_1 (+ x (/ (- t x) (/ (- a z) y)))))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + ((y - z) / ((a - z) / t));
double tmp;
if (y <= -1.4e+76) {
tmp = y * ((t - x) / (a - z));
} else if (y <= 1.9e-238) {
tmp = t_1;
} else if (y <= 5.4e-190) {
tmp = t + (((y - a) * (x - t)) / z);
} else if (y <= 1.95e+103) {
tmp = t_1;
} else {
tmp = x + ((t - x) / ((a - z) / 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 + ((y - z) / ((a - z) / t))
if (y <= (-1.4d+76)) then
tmp = y * ((t - x) / (a - z))
else if (y <= 1.9d-238) then
tmp = t_1
else if (y <= 5.4d-190) then
tmp = t + (((y - a) * (x - t)) / z)
else if (y <= 1.95d+103) then
tmp = t_1
else
tmp = x + ((t - x) / ((a - z) / 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 + ((y - z) / ((a - z) / t));
double tmp;
if (y <= -1.4e+76) {
tmp = y * ((t - x) / (a - z));
} else if (y <= 1.9e-238) {
tmp = t_1;
} else if (y <= 5.4e-190) {
tmp = t + (((y - a) * (x - t)) / z);
} else if (y <= 1.95e+103) {
tmp = t_1;
} else {
tmp = x + ((t - x) / ((a - z) / y));
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + ((y - z) / ((a - z) / t)) tmp = 0 if y <= -1.4e+76: tmp = y * ((t - x) / (a - z)) elif y <= 1.9e-238: tmp = t_1 elif y <= 5.4e-190: tmp = t + (((y - a) * (x - t)) / z) elif y <= 1.95e+103: tmp = t_1 else: tmp = x + ((t - x) / ((a - z) / y)) return tmp
function code(x, y, z, t, a) t_1 = Float64(x + Float64(Float64(y - z) / Float64(Float64(a - z) / t))) tmp = 0.0 if (y <= -1.4e+76) tmp = Float64(y * Float64(Float64(t - x) / Float64(a - z))); elseif (y <= 1.9e-238) tmp = t_1; elseif (y <= 5.4e-190) tmp = Float64(t + Float64(Float64(Float64(y - a) * Float64(x - t)) / z)); elseif (y <= 1.95e+103) tmp = t_1; else tmp = Float64(x + Float64(Float64(t - x) / Float64(Float64(a - z) / y))); end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x + ((y - z) / ((a - z) / t)); tmp = 0.0; if (y <= -1.4e+76) tmp = y * ((t - x) / (a - z)); elseif (y <= 1.9e-238) tmp = t_1; elseif (y <= 5.4e-190) tmp = t + (((y - a) * (x - t)) / z); elseif (y <= 1.95e+103) tmp = t_1; else tmp = x + ((t - x) / ((a - z) / y)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(N[(y - z), $MachinePrecision] / N[(N[(a - z), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.4e+76], N[(y * N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.9e-238], t$95$1, If[LessEqual[y, 5.4e-190], N[(t + N[(N[(N[(y - a), $MachinePrecision] * N[(x - t), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.95e+103], t$95$1, N[(x + N[(N[(t - x), $MachinePrecision] / N[(N[(a - z), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{y - z}{\frac{a - z}{t}}\\
\mathbf{if}\;y \leq -1.4 \cdot 10^{+76}:\\
\;\;\;\;y \cdot \frac{t - x}{a - z}\\
\mathbf{elif}\;y \leq 1.9 \cdot 10^{-238}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq 5.4 \cdot 10^{-190}:\\
\;\;\;\;t + \frac{\left(y - a\right) \cdot \left(x - t\right)}{z}\\
\mathbf{elif}\;y \leq 1.95 \cdot 10^{+103}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;x + \frac{t - x}{\frac{a - z}{y}}\\
\end{array}
\end{array}
if y < -1.3999999999999999e76Initial program 76.0%
associate-*l/85.6%
Simplified85.6%
Taylor expanded in y around inf 76.9%
div-sub79.0%
*-commutative79.0%
Simplified79.0%
if -1.3999999999999999e76 < y < 1.8999999999999998e-238 or 5.3999999999999999e-190 < y < 1.9499999999999999e103Initial program 72.9%
associate-/l*86.8%
Simplified86.8%
Taylor expanded in t around inf 80.6%
if 1.8999999999999998e-238 < y < 5.3999999999999999e-190Initial program 37.7%
associate-*l/51.5%
Simplified51.5%
Taylor expanded in z around -inf 72.9%
+-commutative72.9%
sub-neg72.9%
mul-1-neg72.9%
+-commutative72.9%
mul-1-neg72.9%
unsub-neg72.9%
+-commutative72.9%
mul-1-neg72.9%
sub-neg72.9%
distribute-rgt-out--72.8%
Simplified72.8%
if 1.9499999999999999e103 < y Initial program 60.4%
associate-*l/89.5%
Simplified89.5%
*-commutative89.5%
clear-num89.4%
un-div-inv90.9%
Applied egg-rr90.9%
Taylor expanded in y around inf 88.5%
Final simplification81.3%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* y (/ (- t x) a))))
(if (<= y -4.6e+232)
t_1
(if (<= y -1.4e+182)
(* x (/ y z))
(if (or (<= y -3.2e+62) (not (<= y 3.9e+102))) t_1 (+ x t))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = y * ((t - x) / a);
double tmp;
if (y <= -4.6e+232) {
tmp = t_1;
} else if (y <= -1.4e+182) {
tmp = x * (y / z);
} else if ((y <= -3.2e+62) || !(y <= 3.9e+102)) {
tmp = t_1;
} 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) :: t_1
real(8) :: tmp
t_1 = y * ((t - x) / a)
if (y <= (-4.6d+232)) then
tmp = t_1
else if (y <= (-1.4d+182)) then
tmp = x * (y / z)
else if ((y <= (-3.2d+62)) .or. (.not. (y <= 3.9d+102))) then
tmp = t_1
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 t_1 = y * ((t - x) / a);
double tmp;
if (y <= -4.6e+232) {
tmp = t_1;
} else if (y <= -1.4e+182) {
tmp = x * (y / z);
} else if ((y <= -3.2e+62) || !(y <= 3.9e+102)) {
tmp = t_1;
} else {
tmp = x + t;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = y * ((t - x) / a) tmp = 0 if y <= -4.6e+232: tmp = t_1 elif y <= -1.4e+182: tmp = x * (y / z) elif (y <= -3.2e+62) or not (y <= 3.9e+102): tmp = t_1 else: tmp = x + t return tmp
function code(x, y, z, t, a) t_1 = Float64(y * Float64(Float64(t - x) / a)) tmp = 0.0 if (y <= -4.6e+232) tmp = t_1; elseif (y <= -1.4e+182) tmp = Float64(x * Float64(y / z)); elseif ((y <= -3.2e+62) || !(y <= 3.9e+102)) tmp = t_1; else tmp = Float64(x + t); end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = y * ((t - x) / a); tmp = 0.0; if (y <= -4.6e+232) tmp = t_1; elseif (y <= -1.4e+182) tmp = x * (y / z); elseif ((y <= -3.2e+62) || ~((y <= 3.9e+102))) tmp = t_1; else tmp = x + t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(y * N[(N[(t - x), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -4.6e+232], t$95$1, If[LessEqual[y, -1.4e+182], N[(x * N[(y / z), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[y, -3.2e+62], N[Not[LessEqual[y, 3.9e+102]], $MachinePrecision]], t$95$1, N[(x + t), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \frac{t - x}{a}\\
\mathbf{if}\;y \leq -4.6 \cdot 10^{+232}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq -1.4 \cdot 10^{+182}:\\
\;\;\;\;x \cdot \frac{y}{z}\\
\mathbf{elif}\;y \leq -3.2 \cdot 10^{+62} \lor \neg \left(y \leq 3.9 \cdot 10^{+102}\right):\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;x + t\\
\end{array}
\end{array}
if y < -4.60000000000000012e232 or -1.40000000000000003e182 < y < -3.19999999999999984e62 or 3.8999999999999998e102 < y Initial program 66.6%
associate-*l/87.7%
Simplified87.7%
Taylor expanded in z around 0 47.5%
+-commutative47.5%
associate-/l*58.0%
Simplified58.0%
Taylor expanded in y around inf 48.4%
div-sub48.4%
*-commutative48.4%
Simplified48.4%
if -4.60000000000000012e232 < y < -1.40000000000000003e182Initial program 82.5%
associate-*l/92.4%
Simplified92.4%
Taylor expanded in x around inf 70.6%
mul-1-neg70.6%
unsub-neg70.6%
Simplified70.6%
Taylor expanded in a around 0 89.4%
if -3.19999999999999984e62 < y < 3.8999999999999998e102Initial program 70.0%
associate-/l*82.0%
Simplified82.0%
Taylor expanded in t around inf 74.9%
Taylor expanded in z around inf 47.1%
Final simplification49.0%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* t (/ (- y z) (- a z)))))
(if (<= z -1.55e+61)
t_1
(if (<= z -1.6e-79)
(* y (/ (- t x) (- a z)))
(if (<= z 1.35e+27) (+ x (* (- t x) (/ y a))) t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t * ((y - z) / (a - z));
double tmp;
if (z <= -1.55e+61) {
tmp = t_1;
} else if (z <= -1.6e-79) {
tmp = y * ((t - x) / (a - z));
} else if (z <= 1.35e+27) {
tmp = x + ((t - x) * (y / 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 * ((y - z) / (a - z))
if (z <= (-1.55d+61)) then
tmp = t_1
else if (z <= (-1.6d-79)) then
tmp = y * ((t - x) / (a - z))
else if (z <= 1.35d+27) then
tmp = x + ((t - x) * (y / 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 * ((y - z) / (a - z));
double tmp;
if (z <= -1.55e+61) {
tmp = t_1;
} else if (z <= -1.6e-79) {
tmp = y * ((t - x) / (a - z));
} else if (z <= 1.35e+27) {
tmp = x + ((t - x) * (y / a));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t * ((y - z) / (a - z)) tmp = 0 if z <= -1.55e+61: tmp = t_1 elif z <= -1.6e-79: tmp = y * ((t - x) / (a - z)) elif z <= 1.35e+27: tmp = x + ((t - x) * (y / a)) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(t * Float64(Float64(y - z) / Float64(a - z))) tmp = 0.0 if (z <= -1.55e+61) tmp = t_1; elseif (z <= -1.6e-79) tmp = Float64(y * Float64(Float64(t - x) / Float64(a - z))); elseif (z <= 1.35e+27) tmp = Float64(x + Float64(Float64(t - x) * Float64(y / a))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t * ((y - z) / (a - z)); tmp = 0.0; if (z <= -1.55e+61) tmp = t_1; elseif (z <= -1.6e-79) tmp = y * ((t - x) / (a - z)); elseif (z <= 1.35e+27) tmp = x + ((t - x) * (y / a)); 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[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -1.55e+61], t$95$1, If[LessEqual[z, -1.6e-79], N[(y * N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.35e+27], N[(x + N[(N[(t - x), $MachinePrecision] * N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t \cdot \frac{y - z}{a - z}\\
\mathbf{if}\;z \leq -1.55 \cdot 10^{+61}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z \leq -1.6 \cdot 10^{-79}:\\
\;\;\;\;y \cdot \frac{t - x}{a - z}\\
\mathbf{elif}\;z \leq 1.35 \cdot 10^{+27}:\\
\;\;\;\;x + \left(t - x\right) \cdot \frac{y}{a}\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if z < -1.55e61 or 1.3499999999999999e27 < z Initial program 39.6%
associate-*l/77.6%
Simplified77.6%
Taylor expanded in x around 0 37.4%
associate-*r/64.6%
Simplified64.6%
if -1.55e61 < z < -1.59999999999999994e-79Initial program 87.9%
associate-*l/87.8%
Simplified87.8%
Taylor expanded in y around inf 72.7%
div-sub75.8%
*-commutative75.8%
Simplified75.8%
if -1.59999999999999994e-79 < z < 1.3499999999999999e27Initial program 91.7%
associate-*l/93.8%
Simplified93.8%
Taylor expanded in z around 0 76.1%
Final simplification71.2%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* t (/ (- y z) (- a z)))))
(if (<= z -1.65e+61)
t_1
(if (<= z -1.7e-74)
(* y (/ (- t x) (- a z)))
(if (<= z 1.5e+27) (- x (/ (- x t) (/ a y))) t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t * ((y - z) / (a - z));
double tmp;
if (z <= -1.65e+61) {
tmp = t_1;
} else if (z <= -1.7e-74) {
tmp = y * ((t - x) / (a - z));
} else if (z <= 1.5e+27) {
tmp = x - ((x - t) / (a / y));
} 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) / (a - z))
if (z <= (-1.65d+61)) then
tmp = t_1
else if (z <= (-1.7d-74)) then
tmp = y * ((t - x) / (a - z))
else if (z <= 1.5d+27) then
tmp = x - ((x - t) / (a / y))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = t * ((y - z) / (a - z));
double tmp;
if (z <= -1.65e+61) {
tmp = t_1;
} else if (z <= -1.7e-74) {
tmp = y * ((t - x) / (a - z));
} else if (z <= 1.5e+27) {
tmp = x - ((x - t) / (a / y));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t * ((y - z) / (a - z)) tmp = 0 if z <= -1.65e+61: tmp = t_1 elif z <= -1.7e-74: tmp = y * ((t - x) / (a - z)) elif z <= 1.5e+27: tmp = x - ((x - t) / (a / y)) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(t * Float64(Float64(y - z) / Float64(a - z))) tmp = 0.0 if (z <= -1.65e+61) tmp = t_1; elseif (z <= -1.7e-74) tmp = Float64(y * Float64(Float64(t - x) / Float64(a - z))); elseif (z <= 1.5e+27) tmp = Float64(x - Float64(Float64(x - t) / Float64(a / y))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t * ((y - z) / (a - z)); tmp = 0.0; if (z <= -1.65e+61) tmp = t_1; elseif (z <= -1.7e-74) tmp = y * ((t - x) / (a - z)); elseif (z <= 1.5e+27) tmp = x - ((x - t) / (a / y)); 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[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -1.65e+61], t$95$1, If[LessEqual[z, -1.7e-74], N[(y * N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.5e+27], N[(x - N[(N[(x - t), $MachinePrecision] / N[(a / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t \cdot \frac{y - z}{a - z}\\
\mathbf{if}\;z \leq -1.65 \cdot 10^{+61}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z \leq -1.7 \cdot 10^{-74}:\\
\;\;\;\;y \cdot \frac{t - x}{a - z}\\
\mathbf{elif}\;z \leq 1.5 \cdot 10^{+27}:\\
\;\;\;\;x - \frac{x - t}{\frac{a}{y}}\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if z < -1.6499999999999999e61 or 1.49999999999999988e27 < z Initial program 39.6%
associate-*l/77.6%
Simplified77.6%
Taylor expanded in x around 0 37.4%
associate-*r/64.6%
Simplified64.6%
if -1.6499999999999999e61 < z < -1.7e-74Initial program 87.9%
associate-*l/87.8%
Simplified87.8%
Taylor expanded in y around inf 72.7%
div-sub75.8%
*-commutative75.8%
Simplified75.8%
if -1.7e-74 < z < 1.49999999999999988e27Initial program 91.7%
associate-*l/93.8%
Simplified93.8%
*-commutative93.8%
clear-num93.8%
un-div-inv94.1%
Applied egg-rr94.1%
Taylor expanded in z around 0 76.3%
Final simplification71.3%
(FPCore (x y z t a) :precision binary64 (if (or (<= z -2.45e+88) (not (<= z 4.2e+52))) (* t (/ (- y z) (- a z))) (+ x (/ (- t x) (/ (- a z) y)))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -2.45e+88) || !(z <= 4.2e+52)) {
tmp = t * ((y - z) / (a - z));
} else {
tmp = x + ((t - x) / ((a - z) / 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 ((z <= (-2.45d+88)) .or. (.not. (z <= 4.2d+52))) then
tmp = t * ((y - z) / (a - z))
else
tmp = x + ((t - x) / ((a - z) / y))
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.45e+88) || !(z <= 4.2e+52)) {
tmp = t * ((y - z) / (a - z));
} else {
tmp = x + ((t - x) / ((a - z) / y));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (z <= -2.45e+88) or not (z <= 4.2e+52): tmp = t * ((y - z) / (a - z)) else: tmp = x + ((t - x) / ((a - z) / y)) return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((z <= -2.45e+88) || !(z <= 4.2e+52)) tmp = Float64(t * Float64(Float64(y - z) / Float64(a - z))); else tmp = Float64(x + Float64(Float64(t - x) / Float64(Float64(a - z) / y))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((z <= -2.45e+88) || ~((z <= 4.2e+52))) tmp = t * ((y - z) / (a - z)); else tmp = x + ((t - x) / ((a - z) / y)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[z, -2.45e+88], N[Not[LessEqual[z, 4.2e+52]], $MachinePrecision]], N[(t * N[(N[(y - z), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(t - x), $MachinePrecision] / N[(N[(a - z), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -2.45 \cdot 10^{+88} \lor \neg \left(z \leq 4.2 \cdot 10^{+52}\right):\\
\;\;\;\;t \cdot \frac{y - z}{a - z}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{t - x}{\frac{a - z}{y}}\\
\end{array}
\end{array}
if z < -2.4500000000000001e88 or 4.2e52 < z Initial program 37.7%
associate-*l/76.8%
Simplified76.8%
Taylor expanded in x around 0 37.3%
associate-*r/66.7%
Simplified66.7%
if -2.4500000000000001e88 < z < 4.2e52Initial program 89.5%
associate-*l/92.3%
Simplified92.3%
*-commutative92.3%
clear-num92.3%
un-div-inv92.8%
Applied egg-rr92.8%
Taylor expanded in y around inf 81.9%
Final simplification76.0%
(FPCore (x y z t a)
:precision binary64
(if (<= t -5.5e-23)
(* (- y z) (/ t (- a z)))
(if (<= t 3.65e-156)
(* x (+ (/ (- z y) (- a z)) 1.0))
(* t (/ (- y z) (- a z))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -5.5e-23) {
tmp = (y - z) * (t / (a - z));
} else if (t <= 3.65e-156) {
tmp = x * (((z - y) / (a - z)) + 1.0);
} else {
tmp = t * ((y - z) / (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 (t <= (-5.5d-23)) then
tmp = (y - z) * (t / (a - z))
else if (t <= 3.65d-156) then
tmp = x * (((z - y) / (a - z)) + 1.0d0)
else
tmp = t * ((y - z) / (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 (t <= -5.5e-23) {
tmp = (y - z) * (t / (a - z));
} else if (t <= 3.65e-156) {
tmp = x * (((z - y) / (a - z)) + 1.0);
} else {
tmp = t * ((y - z) / (a - z));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if t <= -5.5e-23: tmp = (y - z) * (t / (a - z)) elif t <= 3.65e-156: tmp = x * (((z - y) / (a - z)) + 1.0) else: tmp = t * ((y - z) / (a - z)) return tmp
function code(x, y, z, t, a) tmp = 0.0 if (t <= -5.5e-23) tmp = Float64(Float64(y - z) * Float64(t / Float64(a - z))); elseif (t <= 3.65e-156) tmp = Float64(x * Float64(Float64(Float64(z - y) / Float64(a - z)) + 1.0)); else tmp = Float64(t * Float64(Float64(y - z) / Float64(a - z))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (t <= -5.5e-23) tmp = (y - z) * (t / (a - z)); elseif (t <= 3.65e-156) tmp = x * (((z - y) / (a - z)) + 1.0); else tmp = t * ((y - z) / (a - z)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[t, -5.5e-23], N[(N[(y - z), $MachinePrecision] * N[(t / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 3.65e-156], N[(x * N[(N[(N[(z - y), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], N[(t * N[(N[(y - z), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -5.5 \cdot 10^{-23}:\\
\;\;\;\;\left(y - z\right) \cdot \frac{t}{a - z}\\
\mathbf{elif}\;t \leq 3.65 \cdot 10^{-156}:\\
\;\;\;\;x \cdot \left(\frac{z - y}{a - z} + 1\right)\\
\mathbf{else}:\\
\;\;\;\;t \cdot \frac{y - z}{a - z}\\
\end{array}
\end{array}
if t < -5.5000000000000001e-23Initial program 73.2%
associate-*l/94.0%
Simplified94.0%
*-commutative94.0%
clear-num94.0%
un-div-inv94.1%
Applied egg-rr94.1%
Taylor expanded in x around 0 60.9%
associate-/l*74.6%
associate-/r/74.7%
Simplified74.7%
if -5.5000000000000001e-23 < t < 3.65e-156Initial program 74.3%
associate-*l/78.1%
Simplified78.1%
Taylor expanded in x around inf 67.0%
mul-1-neg67.0%
unsub-neg67.0%
Simplified67.0%
if 3.65e-156 < t Initial program 60.8%
associate-*l/88.7%
Simplified88.7%
Taylor expanded in x around 0 47.2%
associate-*r/71.0%
Simplified71.0%
Final simplification70.6%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (/ x (/ z y))))
(if (<= y -6.6e+155)
t_1
(if (<= y -1.1e+133)
(* x (/ (- y) a))
(if (or (<= y -1.85e+76) (not (<= y 2.85e+103))) t_1 (+ x t))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x / (z / y);
double tmp;
if (y <= -6.6e+155) {
tmp = t_1;
} else if (y <= -1.1e+133) {
tmp = x * (-y / a);
} else if ((y <= -1.85e+76) || !(y <= 2.85e+103)) {
tmp = t_1;
} 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) :: t_1
real(8) :: tmp
t_1 = x / (z / y)
if (y <= (-6.6d+155)) then
tmp = t_1
else if (y <= (-1.1d+133)) then
tmp = x * (-y / a)
else if ((y <= (-1.85d+76)) .or. (.not. (y <= 2.85d+103))) then
tmp = t_1
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 t_1 = x / (z / y);
double tmp;
if (y <= -6.6e+155) {
tmp = t_1;
} else if (y <= -1.1e+133) {
tmp = x * (-y / a);
} else if ((y <= -1.85e+76) || !(y <= 2.85e+103)) {
tmp = t_1;
} else {
tmp = x + t;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x / (z / y) tmp = 0 if y <= -6.6e+155: tmp = t_1 elif y <= -1.1e+133: tmp = x * (-y / a) elif (y <= -1.85e+76) or not (y <= 2.85e+103): tmp = t_1 else: tmp = x + t return tmp
function code(x, y, z, t, a) t_1 = Float64(x / Float64(z / y)) tmp = 0.0 if (y <= -6.6e+155) tmp = t_1; elseif (y <= -1.1e+133) tmp = Float64(x * Float64(Float64(-y) / a)); elseif ((y <= -1.85e+76) || !(y <= 2.85e+103)) tmp = t_1; else tmp = Float64(x + t); end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x / (z / y); tmp = 0.0; if (y <= -6.6e+155) tmp = t_1; elseif (y <= -1.1e+133) tmp = x * (-y / a); elseif ((y <= -1.85e+76) || ~((y <= 2.85e+103))) tmp = t_1; else tmp = x + t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x / N[(z / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -6.6e+155], t$95$1, If[LessEqual[y, -1.1e+133], N[(x * N[((-y) / a), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[y, -1.85e+76], N[Not[LessEqual[y, 2.85e+103]], $MachinePrecision]], t$95$1, N[(x + t), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{x}{\frac{z}{y}}\\
\mathbf{if}\;y \leq -6.6 \cdot 10^{+155}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq -1.1 \cdot 10^{+133}:\\
\;\;\;\;x \cdot \frac{-y}{a}\\
\mathbf{elif}\;y \leq -1.85 \cdot 10^{+76} \lor \neg \left(y \leq 2.85 \cdot 10^{+103}\right):\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;x + t\\
\end{array}
\end{array}
if y < -6.5999999999999997e155 or -1.1e133 < y < -1.85e76 or 2.85000000000000016e103 < y Initial program 66.2%
associate-*l/86.7%
Simplified86.7%
Taylor expanded in x around inf 49.0%
mul-1-neg49.0%
unsub-neg49.0%
Simplified49.0%
Taylor expanded in a around 0 38.7%
*-commutative38.7%
clear-num38.7%
un-div-inv39.4%
Applied egg-rr39.4%
if -6.5999999999999997e155 < y < -1.1e133Initial program 99.7%
associate-*l/99.7%
Simplified99.7%
Taylor expanded in x around inf 50.2%
mul-1-neg50.2%
unsub-neg50.2%
Simplified50.2%
Taylor expanded in z around 0 84.7%
Taylor expanded in y around inf 37.8%
mul-1-neg37.8%
associate-/l*37.8%
associate-/r/68.8%
distribute-rgt-neg-in68.8%
Simplified68.8%
if -1.85e76 < y < 2.85000000000000016e103Initial program 69.8%
associate-/l*82.6%
Simplified82.6%
Taylor expanded in t around inf 75.7%
Taylor expanded in z around inf 46.9%
Final simplification44.8%
(FPCore (x y z t a)
:precision binary64
(if (<= z -1.4e+58)
(+ x t)
(if (<= z -8e-128)
(* x (- 1.0 (/ y a)))
(if (<= z 1.35e+52) (+ x (/ y (/ a t))) t))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -1.4e+58) {
tmp = x + t;
} else if (z <= -8e-128) {
tmp = x * (1.0 - (y / a));
} else if (z <= 1.35e+52) {
tmp = x + (y / (a / t));
} else {
tmp = 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 (z <= (-1.4d+58)) then
tmp = x + t
else if (z <= (-8d-128)) then
tmp = x * (1.0d0 - (y / a))
else if (z <= 1.35d+52) then
tmp = x + (y / (a / t))
else
tmp = t
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -1.4e+58) {
tmp = x + t;
} else if (z <= -8e-128) {
tmp = x * (1.0 - (y / a));
} else if (z <= 1.35e+52) {
tmp = x + (y / (a / t));
} else {
tmp = t;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if z <= -1.4e+58: tmp = x + t elif z <= -8e-128: tmp = x * (1.0 - (y / a)) elif z <= 1.35e+52: tmp = x + (y / (a / t)) else: tmp = t return tmp
function code(x, y, z, t, a) tmp = 0.0 if (z <= -1.4e+58) tmp = Float64(x + t); elseif (z <= -8e-128) tmp = Float64(x * Float64(1.0 - Float64(y / a))); elseif (z <= 1.35e+52) tmp = Float64(x + Float64(y / Float64(a / t))); else tmp = t; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (z <= -1.4e+58) tmp = x + t; elseif (z <= -8e-128) tmp = x * (1.0 - (y / a)); elseif (z <= 1.35e+52) tmp = x + (y / (a / t)); else tmp = t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -1.4e+58], N[(x + t), $MachinePrecision], If[LessEqual[z, -8e-128], N[(x * N[(1.0 - N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.35e+52], N[(x + N[(y / N[(a / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1.4 \cdot 10^{+58}:\\
\;\;\;\;x + t\\
\mathbf{elif}\;z \leq -8 \cdot 10^{-128}:\\
\;\;\;\;x \cdot \left(1 - \frac{y}{a}\right)\\
\mathbf{elif}\;z \leq 1.35 \cdot 10^{+52}:\\
\;\;\;\;x + \frac{y}{\frac{a}{t}}\\
\mathbf{else}:\\
\;\;\;\;t\\
\end{array}
\end{array}
if z < -1.3999999999999999e58Initial program 38.4%
associate-/l*70.4%
Simplified70.4%
Taylor expanded in t around inf 63.7%
Taylor expanded in z around inf 45.5%
if -1.3999999999999999e58 < z < -8.00000000000000043e-128Initial program 88.6%
associate-*l/88.6%
Simplified88.6%
Taylor expanded in x around inf 45.2%
mul-1-neg45.2%
unsub-neg45.2%
Simplified45.2%
Taylor expanded in z around 0 45.5%
if -8.00000000000000043e-128 < z < 1.35e52Initial program 89.5%
associate-*l/93.5%
Simplified93.5%
Taylor expanded in z around 0 72.9%
+-commutative72.9%
associate-/l*74.5%
Simplified74.5%
Taylor expanded in t around inf 61.0%
associate-/l*61.0%
Simplified61.0%
if 1.35e52 < z Initial program 40.4%
associate-*l/76.8%
Simplified76.8%
Taylor expanded in z around inf 49.7%
Final simplification53.1%
(FPCore (x y z t a)
:precision binary64
(if (<= z -2.15e+64)
(+ x t)
(if (<= z -3.6e-15)
(/ (- y) (/ (- a z) x))
(if (<= z 2.5e+52) (+ x (/ y (/ a t))) t))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -2.15e+64) {
tmp = x + t;
} else if (z <= -3.6e-15) {
tmp = -y / ((a - z) / x);
} else if (z <= 2.5e+52) {
tmp = x + (y / (a / t));
} else {
tmp = 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 (z <= (-2.15d+64)) then
tmp = x + t
else if (z <= (-3.6d-15)) then
tmp = -y / ((a - z) / x)
else if (z <= 2.5d+52) then
tmp = x + (y / (a / t))
else
tmp = t
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.15e+64) {
tmp = x + t;
} else if (z <= -3.6e-15) {
tmp = -y / ((a - z) / x);
} else if (z <= 2.5e+52) {
tmp = x + (y / (a / t));
} else {
tmp = t;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if z <= -2.15e+64: tmp = x + t elif z <= -3.6e-15: tmp = -y / ((a - z) / x) elif z <= 2.5e+52: tmp = x + (y / (a / t)) else: tmp = t return tmp
function code(x, y, z, t, a) tmp = 0.0 if (z <= -2.15e+64) tmp = Float64(x + t); elseif (z <= -3.6e-15) tmp = Float64(Float64(-y) / Float64(Float64(a - z) / x)); elseif (z <= 2.5e+52) tmp = Float64(x + Float64(y / Float64(a / t))); else tmp = t; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (z <= -2.15e+64) tmp = x + t; elseif (z <= -3.6e-15) tmp = -y / ((a - z) / x); elseif (z <= 2.5e+52) tmp = x + (y / (a / t)); else tmp = t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -2.15e+64], N[(x + t), $MachinePrecision], If[LessEqual[z, -3.6e-15], N[((-y) / N[(N[(a - z), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 2.5e+52], N[(x + N[(y / N[(a / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -2.15 \cdot 10^{+64}:\\
\;\;\;\;x + t\\
\mathbf{elif}\;z \leq -3.6 \cdot 10^{-15}:\\
\;\;\;\;\frac{-y}{\frac{a - z}{x}}\\
\mathbf{elif}\;z \leq 2.5 \cdot 10^{+52}:\\
\;\;\;\;x + \frac{y}{\frac{a}{t}}\\
\mathbf{else}:\\
\;\;\;\;t\\
\end{array}
\end{array}
if z < -2.1499999999999999e64Initial program 37.1%
associate-/l*69.8%
Simplified69.8%
Taylor expanded in t around inf 62.9%
Taylor expanded in z around inf 46.4%
if -2.1499999999999999e64 < z < -3.6000000000000001e-15Initial program 81.0%
associate-*l/93.1%
Simplified93.1%
Taylor expanded in x around inf 61.0%
mul-1-neg61.0%
unsub-neg61.0%
Simplified61.0%
Taylor expanded in y around inf 48.6%
mul-1-neg48.6%
associate-/l*54.7%
distribute-neg-frac54.7%
Simplified54.7%
if -3.6000000000000001e-15 < z < 2.5e52Initial program 90.3%
associate-*l/92.1%
Simplified92.1%
Taylor expanded in z around 0 68.0%
+-commutative68.0%
associate-/l*69.3%
Simplified69.3%
Taylor expanded in t around inf 56.5%
associate-/l*56.5%
Simplified56.5%
if 2.5e52 < z Initial program 40.4%
associate-*l/76.8%
Simplified76.8%
Taylor expanded in z around inf 49.7%
Final simplification53.1%
(FPCore (x y z t a) :precision binary64 (if (or (<= t -2.5e-35) (not (<= t 3.1e-188))) (* t (/ (- y z) (- a z))) (* x (- 1.0 (/ y a)))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((t <= -2.5e-35) || !(t <= 3.1e-188)) {
tmp = t * ((y - z) / (a - z));
} else {
tmp = x * (1.0 - (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 ((t <= (-2.5d-35)) .or. (.not. (t <= 3.1d-188))) then
tmp = t * ((y - z) / (a - z))
else
tmp = x * (1.0d0 - (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 ((t <= -2.5e-35) || !(t <= 3.1e-188)) {
tmp = t * ((y - z) / (a - z));
} else {
tmp = x * (1.0 - (y / a));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (t <= -2.5e-35) or not (t <= 3.1e-188): tmp = t * ((y - z) / (a - z)) else: tmp = x * (1.0 - (y / a)) return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((t <= -2.5e-35) || !(t <= 3.1e-188)) tmp = Float64(t * Float64(Float64(y - z) / Float64(a - z))); else tmp = Float64(x * Float64(1.0 - Float64(y / a))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((t <= -2.5e-35) || ~((t <= 3.1e-188))) tmp = t * ((y - z) / (a - z)); else tmp = x * (1.0 - (y / a)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[t, -2.5e-35], N[Not[LessEqual[t, 3.1e-188]], $MachinePrecision]], N[(t * N[(N[(y - z), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(1.0 - N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -2.5 \cdot 10^{-35} \lor \neg \left(t \leq 3.1 \cdot 10^{-188}\right):\\
\;\;\;\;t \cdot \frac{y - z}{a - z}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(1 - \frac{y}{a}\right)\\
\end{array}
\end{array}
if t < -2.49999999999999982e-35 or 3.1000000000000002e-188 < t Initial program 65.5%
associate-*l/90.3%
Simplified90.3%
Taylor expanded in x around 0 52.3%
associate-*r/70.8%
Simplified70.8%
if -2.49999999999999982e-35 < t < 3.1000000000000002e-188Initial program 76.5%
associate-*l/78.5%
Simplified78.5%
Taylor expanded in x around inf 67.7%
mul-1-neg67.7%
unsub-neg67.7%
Simplified67.7%
Taylor expanded in z around 0 51.7%
Final simplification64.2%
(FPCore (x y z t a) :precision binary64 (if (<= z -3.4e+57) (+ x t) (if (<= z 2.6e+70) (* x (- 1.0 (/ y a))) t)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -3.4e+57) {
tmp = x + t;
} else if (z <= 2.6e+70) {
tmp = x * (1.0 - (y / a));
} else {
tmp = 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 (z <= (-3.4d+57)) then
tmp = x + t
else if (z <= 2.6d+70) then
tmp = x * (1.0d0 - (y / a))
else
tmp = t
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.4e+57) {
tmp = x + t;
} else if (z <= 2.6e+70) {
tmp = x * (1.0 - (y / a));
} else {
tmp = t;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if z <= -3.4e+57: tmp = x + t elif z <= 2.6e+70: tmp = x * (1.0 - (y / a)) else: tmp = t return tmp
function code(x, y, z, t, a) tmp = 0.0 if (z <= -3.4e+57) tmp = Float64(x + t); elseif (z <= 2.6e+70) tmp = Float64(x * Float64(1.0 - Float64(y / a))); else tmp = t; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (z <= -3.4e+57) tmp = x + t; elseif (z <= 2.6e+70) tmp = x * (1.0 - (y / a)); else tmp = t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -3.4e+57], N[(x + t), $MachinePrecision], If[LessEqual[z, 2.6e+70], N[(x * N[(1.0 - N[(y / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -3.4 \cdot 10^{+57}:\\
\;\;\;\;x + t\\
\mathbf{elif}\;z \leq 2.6 \cdot 10^{+70}:\\
\;\;\;\;x \cdot \left(1 - \frac{y}{a}\right)\\
\mathbf{else}:\\
\;\;\;\;t\\
\end{array}
\end{array}
if z < -3.39999999999999992e57Initial program 38.4%
associate-/l*70.4%
Simplified70.4%
Taylor expanded in t around inf 63.7%
Taylor expanded in z around inf 45.5%
if -3.39999999999999992e57 < z < 2.6e70Initial program 88.3%
associate-*l/92.3%
Simplified92.3%
Taylor expanded in x around inf 52.3%
mul-1-neg52.3%
unsub-neg52.3%
Simplified52.3%
Taylor expanded in z around 0 47.7%
if 2.6e70 < z Initial program 40.6%
associate-*l/75.4%
Simplified75.4%
Taylor expanded in z around inf 50.7%
Final simplification47.9%
(FPCore (x y z t a) :precision binary64 (if (or (<= y -1.85e+76) (not (<= y 9.8e+103))) (* y (/ x z)) (+ x t)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((y <= -1.85e+76) || !(y <= 9.8e+103)) {
tmp = y * (x / 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 ((y <= (-1.85d+76)) .or. (.not. (y <= 9.8d+103))) then
tmp = y * (x / 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 ((y <= -1.85e+76) || !(y <= 9.8e+103)) {
tmp = y * (x / z);
} else {
tmp = x + t;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (y <= -1.85e+76) or not (y <= 9.8e+103): tmp = y * (x / z) else: tmp = x + t return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((y <= -1.85e+76) || !(y <= 9.8e+103)) tmp = Float64(y * Float64(x / z)); else tmp = Float64(x + t); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((y <= -1.85e+76) || ~((y <= 9.8e+103))) tmp = y * (x / z); else tmp = x + t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[y, -1.85e+76], N[Not[LessEqual[y, 9.8e+103]], $MachinePrecision]], N[(y * N[(x / z), $MachinePrecision]), $MachinePrecision], N[(x + t), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -1.85 \cdot 10^{+76} \lor \neg \left(y \leq 9.8 \cdot 10^{+103}\right):\\
\;\;\;\;y \cdot \frac{x}{z}\\
\mathbf{else}:\\
\;\;\;\;x + t\\
\end{array}
\end{array}
if y < -1.85e76 or 9.7999999999999997e103 < y Initial program 68.3%
associate-*l/87.5%
Simplified87.5%
Taylor expanded in x around inf 49.0%
mul-1-neg49.0%
unsub-neg49.0%
Simplified49.0%
Taylor expanded in a around 0 36.3%
Taylor expanded in y around 0 26.7%
associate-*r/33.6%
Simplified33.6%
if -1.85e76 < y < 9.7999999999999997e103Initial program 69.8%
associate-/l*82.6%
Simplified82.6%
Taylor expanded in t around inf 75.7%
Taylor expanded in z around inf 46.9%
Final simplification42.0%
(FPCore (x y z t a) :precision binary64 (if (or (<= y -1.85e+76) (not (<= y 5.8e+103))) (* x (/ y z)) (+ x t)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((y <= -1.85e+76) || !(y <= 5.8e+103)) {
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 ((y <= (-1.85d+76)) .or. (.not. (y <= 5.8d+103))) 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 ((y <= -1.85e+76) || !(y <= 5.8e+103)) {
tmp = x * (y / z);
} else {
tmp = x + t;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (y <= -1.85e+76) or not (y <= 5.8e+103): tmp = x * (y / z) else: tmp = x + t return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((y <= -1.85e+76) || !(y <= 5.8e+103)) 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 ((y <= -1.85e+76) || ~((y <= 5.8e+103))) tmp = x * (y / z); else tmp = x + t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[y, -1.85e+76], N[Not[LessEqual[y, 5.8e+103]], $MachinePrecision]], N[(x * N[(y / z), $MachinePrecision]), $MachinePrecision], N[(x + t), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -1.85 \cdot 10^{+76} \lor \neg \left(y \leq 5.8 \cdot 10^{+103}\right):\\
\;\;\;\;x \cdot \frac{y}{z}\\
\mathbf{else}:\\
\;\;\;\;x + t\\
\end{array}
\end{array}
if y < -1.85e76 or 5.7999999999999997e103 < y Initial program 68.3%
associate-*l/87.5%
Simplified87.5%
Taylor expanded in x around inf 49.0%
mul-1-neg49.0%
unsub-neg49.0%
Simplified49.0%
Taylor expanded in a around 0 36.3%
if -1.85e76 < y < 5.7999999999999997e103Initial program 69.8%
associate-/l*82.6%
Simplified82.6%
Taylor expanded in t around inf 75.7%
Taylor expanded in z around inf 46.9%
Final simplification43.0%
(FPCore (x y z t a) :precision binary64 (if (or (<= y -1.8e+76) (not (<= y 3e+103))) (/ x (/ z y)) (+ x t)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((y <= -1.8e+76) || !(y <= 3e+103)) {
tmp = x / (z / y);
} 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 ((y <= (-1.8d+76)) .or. (.not. (y <= 3d+103))) then
tmp = x / (z / y)
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 ((y <= -1.8e+76) || !(y <= 3e+103)) {
tmp = x / (z / y);
} else {
tmp = x + t;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (y <= -1.8e+76) or not (y <= 3e+103): tmp = x / (z / y) else: tmp = x + t return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((y <= -1.8e+76) || !(y <= 3e+103)) tmp = Float64(x / Float64(z / y)); else tmp = Float64(x + t); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((y <= -1.8e+76) || ~((y <= 3e+103))) tmp = x / (z / y); else tmp = x + t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[y, -1.8e+76], N[Not[LessEqual[y, 3e+103]], $MachinePrecision]], N[(x / N[(z / y), $MachinePrecision]), $MachinePrecision], N[(x + t), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -1.8 \cdot 10^{+76} \lor \neg \left(y \leq 3 \cdot 10^{+103}\right):\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\mathbf{else}:\\
\;\;\;\;x + t\\
\end{array}
\end{array}
if y < -1.8000000000000001e76 or 3e103 < y Initial program 68.3%
associate-*l/87.5%
Simplified87.5%
Taylor expanded in x around inf 49.0%
mul-1-neg49.0%
unsub-neg49.0%
Simplified49.0%
Taylor expanded in a around 0 36.3%
*-commutative36.3%
clear-num36.3%
un-div-inv37.0%
Applied egg-rr37.0%
if -1.8000000000000001e76 < y < 3e103Initial program 69.8%
associate-/l*82.6%
Simplified82.6%
Taylor expanded in t around inf 75.7%
Taylor expanded in z around inf 46.9%
Final simplification43.2%
(FPCore (x y z t a) :precision binary64 (if (<= z -2.3e+109) t (if (<= z 5.5e+51) x t)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -2.3e+109) {
tmp = t;
} else if (z <= 5.5e+51) {
tmp = x;
} else {
tmp = 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 (z <= (-2.3d+109)) then
tmp = t
else if (z <= 5.5d+51) then
tmp = x
else
tmp = t
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.3e+109) {
tmp = t;
} else if (z <= 5.5e+51) {
tmp = x;
} else {
tmp = t;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if z <= -2.3e+109: tmp = t elif z <= 5.5e+51: tmp = x else: tmp = t return tmp
function code(x, y, z, t, a) tmp = 0.0 if (z <= -2.3e+109) tmp = t; elseif (z <= 5.5e+51) tmp = x; else tmp = t; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (z <= -2.3e+109) tmp = t; elseif (z <= 5.5e+51) tmp = x; else tmp = t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -2.3e+109], t, If[LessEqual[z, 5.5e+51], x, t]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -2.3 \cdot 10^{+109}:\\
\;\;\;\;t\\
\mathbf{elif}\;z \leq 5.5 \cdot 10^{+51}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;t\\
\end{array}
\end{array}
if z < -2.3000000000000001e109 or 5.5e51 < z Initial program 35.1%
associate-*l/75.8%
Simplified75.8%
Taylor expanded in z around inf 47.4%
if -2.3000000000000001e109 < z < 5.5e51Initial program 89.8%
associate-*l/92.5%
Simplified92.5%
Taylor expanded in a around inf 30.5%
Final simplification36.8%
(FPCore (x y z t a) :precision binary64 (if (<= z -1.66e-93) (+ x t) (if (<= z 1.2e+52) x t)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -1.66e-93) {
tmp = x + t;
} else if (z <= 1.2e+52) {
tmp = x;
} else {
tmp = 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 (z <= (-1.66d-93)) then
tmp = x + t
else if (z <= 1.2d+52) then
tmp = x
else
tmp = t
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -1.66e-93) {
tmp = x + t;
} else if (z <= 1.2e+52) {
tmp = x;
} else {
tmp = t;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if z <= -1.66e-93: tmp = x + t elif z <= 1.2e+52: tmp = x else: tmp = t return tmp
function code(x, y, z, t, a) tmp = 0.0 if (z <= -1.66e-93) tmp = Float64(x + t); elseif (z <= 1.2e+52) tmp = x; else tmp = t; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (z <= -1.66e-93) tmp = x + t; elseif (z <= 1.2e+52) tmp = x; else tmp = t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -1.66e-93], N[(x + t), $MachinePrecision], If[LessEqual[z, 1.2e+52], x, t]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1.66 \cdot 10^{-93}:\\
\;\;\;\;x + t\\
\mathbf{elif}\;z \leq 1.2 \cdot 10^{+52}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;t\\
\end{array}
\end{array}
if z < -1.6599999999999999e-93Initial program 58.5%
associate-/l*79.8%
Simplified79.8%
Taylor expanded in t around inf 62.3%
Taylor expanded in z around inf 34.6%
if -1.6599999999999999e-93 < z < 1.2e52Initial program 89.6%
associate-*l/93.2%
Simplified93.2%
Taylor expanded in a around inf 35.7%
if 1.2e52 < z Initial program 40.4%
associate-*l/76.8%
Simplified76.8%
Taylor expanded in z around inf 49.7%
Final simplification38.3%
(FPCore (x y z t a) :precision binary64 t)
double code(double x, double y, double z, double t, double a) {
return 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 = t
end function
public static double code(double x, double y, double z, double t, double a) {
return t;
}
def code(x, y, z, t, a): return t
function code(x, y, z, t, a) return t end
function tmp = code(x, y, z, t, a) tmp = t; end
code[x_, y_, z_, t_, a_] := t
\begin{array}{l}
\\
t
\end{array}
Initial program 69.2%
associate-*l/86.2%
Simplified86.2%
Taylor expanded in z around inf 23.3%
Final simplification23.3%
(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 2023176
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.Axis.Types:invLinMap from Chart-1.5.3"
:precision binary64
:herbie-target
(if (< z -1.2536131056095036e+188) (- t (* (/ y z) (- t x))) (if (< z 4.446702369113811e+64) (+ x (/ (- y z) (/ (- a z) (- t x)))) (- t (* (/ y z) (- t x)))))
(+ x (/ (* (- y z) (- t x)) (- a z))))