
(FPCore (x y z t a) :precision binary64 (+ x (/ (* (- y x) (- z t)) (- a t))))
double code(double x, double y, double z, double t, double a) {
return x + (((y - x) * (z - t)) / (a - t));
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
code = x + (((y - x) * (z - t)) / (a - t))
end function
public static double code(double x, double y, double z, double t, double a) {
return x + (((y - x) * (z - t)) / (a - t));
}
def code(x, y, z, t, a): return x + (((y - x) * (z - t)) / (a - t))
function code(x, y, z, t, a) return Float64(x + Float64(Float64(Float64(y - x) * Float64(z - t)) / Float64(a - t))) end
function tmp = code(x, y, z, t, a) tmp = x + (((y - x) * (z - t)) / (a - t)); end
code[x_, y_, z_, t_, a_] := N[(x + N[(N[(N[(y - x), $MachinePrecision] * N[(z - t), $MachinePrecision]), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 20 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a) :precision binary64 (+ x (/ (* (- y x) (- z t)) (- a t))))
double code(double x, double y, double z, double t, double a) {
return x + (((y - x) * (z - t)) / (a - t));
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
code = x + (((y - x) * (z - t)) / (a - t))
end function
public static double code(double x, double y, double z, double t, double a) {
return x + (((y - x) * (z - t)) / (a - t));
}
def code(x, y, z, t, a): return x + (((y - x) * (z - t)) / (a - t))
function code(x, y, z, t, a) return Float64(x + Float64(Float64(Float64(y - x) * Float64(z - t)) / Float64(a - t))) end
function tmp = code(x, y, z, t, a) tmp = x + (((y - x) * (z - t)) / (a - t)); end
code[x_, y_, z_, t_, a_] := N[(x + N[(N[(N[(y - x), $MachinePrecision] * N[(z - t), $MachinePrecision]), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}
\end{array}
(FPCore (x y z t a)
:precision binary64
(if (<= t -1.45e+99)
(+ y (* (/ x t) (- z a)))
(if (<= t 3.6e+170)
(+ x (/ (- y x) (/ (- a t) (- z t))))
(+ y (/ (- x y) (/ t (- z a)))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -1.45e+99) {
tmp = y + ((x / t) * (z - a));
} else if (t <= 3.6e+170) {
tmp = x + ((y - x) / ((a - t) / (z - t)));
} else {
tmp = y + ((x - y) / (t / (z - a)));
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: tmp
if (t <= (-1.45d+99)) then
tmp = y + ((x / t) * (z - a))
else if (t <= 3.6d+170) then
tmp = x + ((y - x) / ((a - t) / (z - t)))
else
tmp = y + ((x - y) / (t / (z - a)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -1.45e+99) {
tmp = y + ((x / t) * (z - a));
} else if (t <= 3.6e+170) {
tmp = x + ((y - x) / ((a - t) / (z - t)));
} else {
tmp = y + ((x - y) / (t / (z - a)));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if t <= -1.45e+99: tmp = y + ((x / t) * (z - a)) elif t <= 3.6e+170: tmp = x + ((y - x) / ((a - t) / (z - t))) else: tmp = y + ((x - y) / (t / (z - a))) return tmp
function code(x, y, z, t, a) tmp = 0.0 if (t <= -1.45e+99) tmp = Float64(y + Float64(Float64(x / t) * Float64(z - a))); elseif (t <= 3.6e+170) tmp = Float64(x + Float64(Float64(y - x) / Float64(Float64(a - t) / Float64(z - t)))); else tmp = Float64(y + Float64(Float64(x - y) / Float64(t / Float64(z - a)))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (t <= -1.45e+99) tmp = y + ((x / t) * (z - a)); elseif (t <= 3.6e+170) tmp = x + ((y - x) / ((a - t) / (z - t))); else tmp = y + ((x - y) / (t / (z - a))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[t, -1.45e+99], N[(y + N[(N[(x / t), $MachinePrecision] * N[(z - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 3.6e+170], N[(x + N[(N[(y - x), $MachinePrecision] / N[(N[(a - t), $MachinePrecision] / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y + N[(N[(x - y), $MachinePrecision] / N[(t / N[(z - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.45 \cdot 10^{+99}:\\
\;\;\;\;y + \frac{x}{t} \cdot \left(z - a\right)\\
\mathbf{elif}\;t \leq 3.6 \cdot 10^{+170}:\\
\;\;\;\;x + \frac{y - x}{\frac{a - t}{z - t}}\\
\mathbf{else}:\\
\;\;\;\;y + \frac{x - y}{\frac{t}{z - a}}\\
\end{array}
\end{array}
if t < -1.4500000000000001e99Initial program 30.9%
associate-/l*62.0%
Simplified62.0%
Taylor expanded in t around inf 69.8%
associate--l+69.8%
associate-*r/69.8%
associate-*r/69.8%
div-sub69.8%
distribute-lft-out--69.8%
associate-*r/69.8%
mul-1-neg69.8%
unsub-neg69.8%
distribute-rgt-out--69.8%
associate-/l*86.0%
Simplified86.0%
Taylor expanded in y around 0 74.1%
mul-1-neg74.1%
associate-/l*84.2%
associate-/r/88.4%
distribute-rgt-neg-in88.4%
Simplified88.4%
if -1.4500000000000001e99 < t < 3.6e170Initial program 76.5%
associate-/l*90.9%
Simplified90.9%
if 3.6e170 < t Initial program 25.2%
associate-/l*52.9%
Simplified52.9%
Taylor expanded in t around inf 68.2%
associate--l+68.2%
associate-*r/68.2%
associate-*r/68.2%
div-sub68.2%
distribute-lft-out--68.2%
associate-*r/68.2%
mul-1-neg68.2%
unsub-neg68.2%
distribute-rgt-out--68.4%
associate-/l*89.3%
Simplified89.3%
Final simplification90.3%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* x (- 1.0 (/ z a))))
(t_2 (* (/ z t) (- x y)))
(t_3 (- y (* z (/ y t))))
(t_4 (/ y (/ a (- z t)))))
(if (<= t -1.36e-8)
t_3
(if (<= t -2.8e-228)
t_1
(if (<= t 2.2e-278)
t_4
(if (<= t 6.3e-65)
t_1
(if (<= t 1.35e+23)
t_2
(if (<= t 1.4e+60)
t_4
(if (<= t 1.45e+128) t_2 (if (<= t 1.8e+169) t_1 t_3))))))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double t_2 = (z / t) * (x - y);
double t_3 = y - (z * (y / t));
double t_4 = y / (a / (z - t));
double tmp;
if (t <= -1.36e-8) {
tmp = t_3;
} else if (t <= -2.8e-228) {
tmp = t_1;
} else if (t <= 2.2e-278) {
tmp = t_4;
} else if (t <= 6.3e-65) {
tmp = t_1;
} else if (t <= 1.35e+23) {
tmp = t_2;
} else if (t <= 1.4e+60) {
tmp = t_4;
} else if (t <= 1.45e+128) {
tmp = t_2;
} else if (t <= 1.8e+169) {
tmp = t_1;
} else {
tmp = t_3;
}
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) :: t_3
real(8) :: t_4
real(8) :: tmp
t_1 = x * (1.0d0 - (z / a))
t_2 = (z / t) * (x - y)
t_3 = y - (z * (y / t))
t_4 = y / (a / (z - t))
if (t <= (-1.36d-8)) then
tmp = t_3
else if (t <= (-2.8d-228)) then
tmp = t_1
else if (t <= 2.2d-278) then
tmp = t_4
else if (t <= 6.3d-65) then
tmp = t_1
else if (t <= 1.35d+23) then
tmp = t_2
else if (t <= 1.4d+60) then
tmp = t_4
else if (t <= 1.45d+128) then
tmp = t_2
else if (t <= 1.8d+169) then
tmp = t_1
else
tmp = t_3
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double t_2 = (z / t) * (x - y);
double t_3 = y - (z * (y / t));
double t_4 = y / (a / (z - t));
double tmp;
if (t <= -1.36e-8) {
tmp = t_3;
} else if (t <= -2.8e-228) {
tmp = t_1;
} else if (t <= 2.2e-278) {
tmp = t_4;
} else if (t <= 6.3e-65) {
tmp = t_1;
} else if (t <= 1.35e+23) {
tmp = t_2;
} else if (t <= 1.4e+60) {
tmp = t_4;
} else if (t <= 1.45e+128) {
tmp = t_2;
} else if (t <= 1.8e+169) {
tmp = t_1;
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x * (1.0 - (z / a)) t_2 = (z / t) * (x - y) t_3 = y - (z * (y / t)) t_4 = y / (a / (z - t)) tmp = 0 if t <= -1.36e-8: tmp = t_3 elif t <= -2.8e-228: tmp = t_1 elif t <= 2.2e-278: tmp = t_4 elif t <= 6.3e-65: tmp = t_1 elif t <= 1.35e+23: tmp = t_2 elif t <= 1.4e+60: tmp = t_4 elif t <= 1.45e+128: tmp = t_2 elif t <= 1.8e+169: tmp = t_1 else: tmp = t_3 return tmp
function code(x, y, z, t, a) t_1 = Float64(x * Float64(1.0 - Float64(z / a))) t_2 = Float64(Float64(z / t) * Float64(x - y)) t_3 = Float64(y - Float64(z * Float64(y / t))) t_4 = Float64(y / Float64(a / Float64(z - t))) tmp = 0.0 if (t <= -1.36e-8) tmp = t_3; elseif (t <= -2.8e-228) tmp = t_1; elseif (t <= 2.2e-278) tmp = t_4; elseif (t <= 6.3e-65) tmp = t_1; elseif (t <= 1.35e+23) tmp = t_2; elseif (t <= 1.4e+60) tmp = t_4; elseif (t <= 1.45e+128) tmp = t_2; elseif (t <= 1.8e+169) tmp = t_1; else tmp = t_3; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x * (1.0 - (z / a)); t_2 = (z / t) * (x - y); t_3 = y - (z * (y / t)); t_4 = y / (a / (z - t)); tmp = 0.0; if (t <= -1.36e-8) tmp = t_3; elseif (t <= -2.8e-228) tmp = t_1; elseif (t <= 2.2e-278) tmp = t_4; elseif (t <= 6.3e-65) tmp = t_1; elseif (t <= 1.35e+23) tmp = t_2; elseif (t <= 1.4e+60) tmp = t_4; elseif (t <= 1.45e+128) tmp = t_2; elseif (t <= 1.8e+169) tmp = t_1; else tmp = t_3; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(z / t), $MachinePrecision] * N[(x - y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(y - N[(z * N[(y / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(y / N[(a / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -1.36e-8], t$95$3, If[LessEqual[t, -2.8e-228], t$95$1, If[LessEqual[t, 2.2e-278], t$95$4, If[LessEqual[t, 6.3e-65], t$95$1, If[LessEqual[t, 1.35e+23], t$95$2, If[LessEqual[t, 1.4e+60], t$95$4, If[LessEqual[t, 1.45e+128], t$95$2, If[LessEqual[t, 1.8e+169], t$95$1, t$95$3]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(1 - \frac{z}{a}\right)\\
t_2 := \frac{z}{t} \cdot \left(x - y\right)\\
t_3 := y - z \cdot \frac{y}{t}\\
t_4 := \frac{y}{\frac{a}{z - t}}\\
\mathbf{if}\;t \leq -1.36 \cdot 10^{-8}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;t \leq -2.8 \cdot 10^{-228}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq 2.2 \cdot 10^{-278}:\\
\;\;\;\;t_4\\
\mathbf{elif}\;t \leq 6.3 \cdot 10^{-65}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq 1.35 \cdot 10^{+23}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;t \leq 1.4 \cdot 10^{+60}:\\
\;\;\;\;t_4\\
\mathbf{elif}\;t \leq 1.45 \cdot 10^{+128}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;t \leq 1.8 \cdot 10^{+169}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_3\\
\end{array}
\end{array}
if t < -1.3599999999999999e-8 or 1.80000000000000005e169 < t Initial program 34.8%
associate-/l*63.9%
Simplified63.9%
Taylor expanded in t around inf 65.2%
associate--l+65.2%
associate-*r/65.2%
associate-*r/65.2%
div-sub65.2%
distribute-lft-out--65.2%
associate-*r/65.2%
mul-1-neg65.2%
unsub-neg65.2%
distribute-rgt-out--65.4%
associate-/l*81.4%
Simplified81.4%
Taylor expanded in z around inf 71.3%
Taylor expanded in y around inf 51.0%
associate-*l/59.8%
*-commutative59.8%
Simplified59.8%
if -1.3599999999999999e-8 < t < -2.8000000000000003e-228 or 2.2000000000000001e-278 < t < 6.2999999999999997e-65 or 1.45e128 < t < 1.80000000000000005e169Initial program 80.6%
+-commutative80.6%
associate-*l/88.8%
fma-def88.8%
Simplified88.8%
fma-udef88.8%
associate-*l/80.6%
associate-*r/91.5%
Applied egg-rr91.5%
Taylor expanded in t around 0 76.3%
Taylor expanded in x around inf 55.6%
mul-1-neg55.6%
unsub-neg55.6%
Simplified55.6%
if -2.8000000000000003e-228 < t < 2.2000000000000001e-278 or 1.3499999999999999e23 < t < 1.4e60Initial program 77.8%
associate-/l*99.1%
Simplified99.1%
Taylor expanded in x around 0 65.0%
Taylor expanded in a around inf 59.3%
associate-/l*71.8%
Simplified71.8%
if 6.2999999999999997e-65 < t < 1.3499999999999999e23 or 1.4e60 < t < 1.45e128Initial program 75.6%
associate-/l*83.6%
Simplified83.6%
Taylor expanded in t around inf 79.3%
associate--l+79.3%
associate-*r/79.3%
associate-*r/79.3%
div-sub79.3%
distribute-lft-out--79.3%
associate-*r/79.3%
mul-1-neg79.3%
unsub-neg79.3%
distribute-rgt-out--79.3%
associate-/l*79.5%
Simplified79.5%
Taylor expanded in z around -inf 59.6%
mul-1-neg59.6%
associate-*l/59.8%
*-commutative59.8%
distribute-rgt-neg-in59.8%
distribute-frac-neg59.8%
Simplified59.8%
Final simplification59.6%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* x (- 1.0 (/ z a))))
(t_2 (- y (* z (/ y t))))
(t_3 (/ y (/ a (- z t)))))
(if (<= t -2.3e-9)
t_2
(if (<= t -2.2e-236)
t_1
(if (<= t 6.3e-279)
t_3
(if (<= t 6e-65)
t_1
(if (<= t 9.4e+38) t_3 (if (<= t 1.8e+169) t_1 t_2))))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double t_2 = y - (z * (y / t));
double t_3 = y / (a / (z - t));
double tmp;
if (t <= -2.3e-9) {
tmp = t_2;
} else if (t <= -2.2e-236) {
tmp = t_1;
} else if (t <= 6.3e-279) {
tmp = t_3;
} else if (t <= 6e-65) {
tmp = t_1;
} else if (t <= 9.4e+38) {
tmp = t_3;
} else if (t <= 1.8e+169) {
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) :: t_3
real(8) :: tmp
t_1 = x * (1.0d0 - (z / a))
t_2 = y - (z * (y / t))
t_3 = y / (a / (z - t))
if (t <= (-2.3d-9)) then
tmp = t_2
else if (t <= (-2.2d-236)) then
tmp = t_1
else if (t <= 6.3d-279) then
tmp = t_3
else if (t <= 6d-65) then
tmp = t_1
else if (t <= 9.4d+38) then
tmp = t_3
else if (t <= 1.8d+169) then
tmp = t_1
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double t_2 = y - (z * (y / t));
double t_3 = y / (a / (z - t));
double tmp;
if (t <= -2.3e-9) {
tmp = t_2;
} else if (t <= -2.2e-236) {
tmp = t_1;
} else if (t <= 6.3e-279) {
tmp = t_3;
} else if (t <= 6e-65) {
tmp = t_1;
} else if (t <= 9.4e+38) {
tmp = t_3;
} else if (t <= 1.8e+169) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x * (1.0 - (z / a)) t_2 = y - (z * (y / t)) t_3 = y / (a / (z - t)) tmp = 0 if t <= -2.3e-9: tmp = t_2 elif t <= -2.2e-236: tmp = t_1 elif t <= 6.3e-279: tmp = t_3 elif t <= 6e-65: tmp = t_1 elif t <= 9.4e+38: tmp = t_3 elif t <= 1.8e+169: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a) t_1 = Float64(x * Float64(1.0 - Float64(z / a))) t_2 = Float64(y - Float64(z * Float64(y / t))) t_3 = Float64(y / Float64(a / Float64(z - t))) tmp = 0.0 if (t <= -2.3e-9) tmp = t_2; elseif (t <= -2.2e-236) tmp = t_1; elseif (t <= 6.3e-279) tmp = t_3; elseif (t <= 6e-65) tmp = t_1; elseif (t <= 9.4e+38) tmp = t_3; elseif (t <= 1.8e+169) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x * (1.0 - (z / a)); t_2 = y - (z * (y / t)); t_3 = y / (a / (z - t)); tmp = 0.0; if (t <= -2.3e-9) tmp = t_2; elseif (t <= -2.2e-236) tmp = t_1; elseif (t <= 6.3e-279) tmp = t_3; elseif (t <= 6e-65) tmp = t_1; elseif (t <= 9.4e+38) tmp = t_3; elseif (t <= 1.8e+169) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(y - N[(z * N[(y / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(y / N[(a / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -2.3e-9], t$95$2, If[LessEqual[t, -2.2e-236], t$95$1, If[LessEqual[t, 6.3e-279], t$95$3, If[LessEqual[t, 6e-65], t$95$1, If[LessEqual[t, 9.4e+38], t$95$3, If[LessEqual[t, 1.8e+169], t$95$1, t$95$2]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(1 - \frac{z}{a}\right)\\
t_2 := y - z \cdot \frac{y}{t}\\
t_3 := \frac{y}{\frac{a}{z - t}}\\
\mathbf{if}\;t \leq -2.3 \cdot 10^{-9}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;t \leq -2.2 \cdot 10^{-236}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq 6.3 \cdot 10^{-279}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;t \leq 6 \cdot 10^{-65}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq 9.4 \cdot 10^{+38}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;t \leq 1.8 \cdot 10^{+169}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if t < -2.2999999999999999e-9 or 1.80000000000000005e169 < t Initial program 34.8%
associate-/l*63.9%
Simplified63.9%
Taylor expanded in t around inf 65.2%
associate--l+65.2%
associate-*r/65.2%
associate-*r/65.2%
div-sub65.2%
distribute-lft-out--65.2%
associate-*r/65.2%
mul-1-neg65.2%
unsub-neg65.2%
distribute-rgt-out--65.4%
associate-/l*81.4%
Simplified81.4%
Taylor expanded in z around inf 71.3%
Taylor expanded in y around inf 51.0%
associate-*l/59.8%
*-commutative59.8%
Simplified59.8%
if -2.2999999999999999e-9 < t < -2.19999999999999992e-236 or 6.2999999999999998e-279 < t < 5.99999999999999996e-65 or 9.3999999999999998e38 < t < 1.80000000000000005e169Initial program 80.3%
+-commutative80.3%
associate-*l/89.2%
fma-def89.2%
Simplified89.2%
fma-udef89.2%
associate-*l/80.3%
associate-*r/91.6%
Applied egg-rr91.6%
Taylor expanded in t around 0 75.7%
Taylor expanded in x around inf 54.9%
mul-1-neg54.9%
unsub-neg54.9%
Simplified54.9%
if -2.19999999999999992e-236 < t < 6.2999999999999998e-279 or 5.99999999999999996e-65 < t < 9.3999999999999998e38Initial program 76.5%
associate-/l*92.1%
Simplified92.1%
Taylor expanded in x around 0 60.6%
Taylor expanded in a around inf 44.6%
associate-/l*58.3%
Simplified58.3%
Final simplification57.4%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (- y (* (/ x t) (- a z)))))
(if (<= t -3.6e+110)
t_1
(if (<= t -8.4e-10)
(* y (/ (- z t) (- a t)))
(if (<= t 6.5e-65)
(+ x (/ (- y x) (/ a z)))
(if (<= t 2.45e+41)
(* (- z t) (/ y (- a t)))
(if (<= t 1.8e+169) (+ x (/ z (/ a (- y x)))) t_1)))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = y - ((x / t) * (a - z));
double tmp;
if (t <= -3.6e+110) {
tmp = t_1;
} else if (t <= -8.4e-10) {
tmp = y * ((z - t) / (a - t));
} else if (t <= 6.5e-65) {
tmp = x + ((y - x) / (a / z));
} else if (t <= 2.45e+41) {
tmp = (z - t) * (y / (a - t));
} else if (t <= 1.8e+169) {
tmp = x + (z / (a / (y - x)));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: t_1
real(8) :: tmp
t_1 = y - ((x / t) * (a - z))
if (t <= (-3.6d+110)) then
tmp = t_1
else if (t <= (-8.4d-10)) then
tmp = y * ((z - t) / (a - t))
else if (t <= 6.5d-65) then
tmp = x + ((y - x) / (a / z))
else if (t <= 2.45d+41) then
tmp = (z - t) * (y / (a - t))
else if (t <= 1.8d+169) then
tmp = x + (z / (a / (y - x)))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = y - ((x / t) * (a - z));
double tmp;
if (t <= -3.6e+110) {
tmp = t_1;
} else if (t <= -8.4e-10) {
tmp = y * ((z - t) / (a - t));
} else if (t <= 6.5e-65) {
tmp = x + ((y - x) / (a / z));
} else if (t <= 2.45e+41) {
tmp = (z - t) * (y / (a - t));
} else if (t <= 1.8e+169) {
tmp = x + (z / (a / (y - x)));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = y - ((x / t) * (a - z)) tmp = 0 if t <= -3.6e+110: tmp = t_1 elif t <= -8.4e-10: tmp = y * ((z - t) / (a - t)) elif t <= 6.5e-65: tmp = x + ((y - x) / (a / z)) elif t <= 2.45e+41: tmp = (z - t) * (y / (a - t)) elif t <= 1.8e+169: tmp = x + (z / (a / (y - x))) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(y - Float64(Float64(x / t) * Float64(a - z))) tmp = 0.0 if (t <= -3.6e+110) tmp = t_1; elseif (t <= -8.4e-10) tmp = Float64(y * Float64(Float64(z - t) / Float64(a - t))); elseif (t <= 6.5e-65) tmp = Float64(x + Float64(Float64(y - x) / Float64(a / z))); elseif (t <= 2.45e+41) tmp = Float64(Float64(z - t) * Float64(y / Float64(a - t))); elseif (t <= 1.8e+169) tmp = Float64(x + Float64(z / Float64(a / Float64(y - x)))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = y - ((x / t) * (a - z)); tmp = 0.0; if (t <= -3.6e+110) tmp = t_1; elseif (t <= -8.4e-10) tmp = y * ((z - t) / (a - t)); elseif (t <= 6.5e-65) tmp = x + ((y - x) / (a / z)); elseif (t <= 2.45e+41) tmp = (z - t) * (y / (a - t)); elseif (t <= 1.8e+169) tmp = x + (z / (a / (y - x))); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(y - N[(N[(x / t), $MachinePrecision] * N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -3.6e+110], t$95$1, If[LessEqual[t, -8.4e-10], N[(y * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 6.5e-65], N[(x + N[(N[(y - x), $MachinePrecision] / N[(a / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 2.45e+41], N[(N[(z - t), $MachinePrecision] * N[(y / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.8e+169], N[(x + N[(z / N[(a / N[(y - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y - \frac{x}{t} \cdot \left(a - z\right)\\
\mathbf{if}\;t \leq -3.6 \cdot 10^{+110}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq -8.4 \cdot 10^{-10}:\\
\;\;\;\;y \cdot \frac{z - t}{a - t}\\
\mathbf{elif}\;t \leq 6.5 \cdot 10^{-65}:\\
\;\;\;\;x + \frac{y - x}{\frac{a}{z}}\\
\mathbf{elif}\;t \leq 2.45 \cdot 10^{+41}:\\
\;\;\;\;\left(z - t\right) \cdot \frac{y}{a - t}\\
\mathbf{elif}\;t \leq 1.8 \cdot 10^{+169}:\\
\;\;\;\;x + \frac{z}{\frac{a}{y - x}}\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if t < -3.5999999999999997e110 or 1.80000000000000005e169 < t Initial program 27.6%
associate-/l*57.5%
Simplified57.5%
Taylor expanded in t around inf 68.7%
associate--l+68.7%
associate-*r/68.7%
associate-*r/68.7%
div-sub68.7%
distribute-lft-out--68.7%
associate-*r/68.7%
mul-1-neg68.7%
unsub-neg68.7%
distribute-rgt-out--68.8%
associate-/l*87.4%
Simplified87.4%
Taylor expanded in y around 0 74.4%
mul-1-neg74.4%
associate-/l*83.5%
associate-/r/84.9%
distribute-rgt-neg-in84.9%
Simplified84.9%
if -3.5999999999999997e110 < t < -8.3999999999999999e-10Initial program 58.9%
associate-/l*85.3%
Simplified85.3%
Taylor expanded in x around 0 49.0%
associate-*r/68.0%
Simplified68.0%
if -8.3999999999999999e-10 < t < 6.5e-65Initial program 84.4%
associate-/l*93.5%
Simplified93.5%
Taylor expanded in t around 0 79.7%
if 6.5e-65 < t < 2.4499999999999999e41Initial program 77.7%
+-commutative77.7%
associate-*l/86.5%
fma-def86.3%
Simplified86.3%
fma-udef86.5%
associate-*l/77.7%
associate-*r/86.5%
Applied egg-rr86.5%
Taylor expanded in y around -inf 55.6%
associate-/l*64.3%
associate-/r/64.4%
Simplified64.4%
if 2.4499999999999999e41 < t < 1.80000000000000005e169Initial program 54.2%
associate-/l*88.3%
Simplified88.3%
Taylor expanded in t around 0 51.0%
associate-/l*68.8%
Simplified68.8%
Final simplification78.0%
(FPCore (x y z t a)
:precision binary64
(if (or (<= t -2.1e-18)
(not (or (<= t 1.22e-67) (and (not (<= t 2.6e+16)) (<= t 2.8e+169)))))
(+ y (/ (- x y) (/ t (- z a))))
(+ x (/ (- y x) (/ a (- z t))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((t <= -2.1e-18) || !((t <= 1.22e-67) || (!(t <= 2.6e+16) && (t <= 2.8e+169)))) {
tmp = y + ((x - y) / (t / (z - a)));
} else {
tmp = x + ((y - x) / (a / (z - 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 ((t <= (-2.1d-18)) .or. (.not. (t <= 1.22d-67) .or. (.not. (t <= 2.6d+16)) .and. (t <= 2.8d+169))) then
tmp = y + ((x - y) / (t / (z - a)))
else
tmp = x + ((y - x) / (a / (z - t)))
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.1e-18) || !((t <= 1.22e-67) || (!(t <= 2.6e+16) && (t <= 2.8e+169)))) {
tmp = y + ((x - y) / (t / (z - a)));
} else {
tmp = x + ((y - x) / (a / (z - t)));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (t <= -2.1e-18) or not ((t <= 1.22e-67) or (not (t <= 2.6e+16) and (t <= 2.8e+169))): tmp = y + ((x - y) / (t / (z - a))) else: tmp = x + ((y - x) / (a / (z - t))) return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((t <= -2.1e-18) || !((t <= 1.22e-67) || (!(t <= 2.6e+16) && (t <= 2.8e+169)))) tmp = Float64(y + Float64(Float64(x - y) / Float64(t / Float64(z - a)))); else tmp = Float64(x + Float64(Float64(y - x) / Float64(a / Float64(z - t)))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((t <= -2.1e-18) || ~(((t <= 1.22e-67) || (~((t <= 2.6e+16)) && (t <= 2.8e+169))))) tmp = y + ((x - y) / (t / (z - a))); else tmp = x + ((y - x) / (a / (z - t))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[t, -2.1e-18], N[Not[Or[LessEqual[t, 1.22e-67], And[N[Not[LessEqual[t, 2.6e+16]], $MachinePrecision], LessEqual[t, 2.8e+169]]]], $MachinePrecision]], N[(y + N[(N[(x - y), $MachinePrecision] / N[(t / N[(z - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(y - x), $MachinePrecision] / N[(a / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -2.1 \cdot 10^{-18} \lor \neg \left(t \leq 1.22 \cdot 10^{-67} \lor \neg \left(t \leq 2.6 \cdot 10^{+16}\right) \land t \leq 2.8 \cdot 10^{+169}\right):\\
\;\;\;\;y + \frac{x - y}{\frac{t}{z - a}}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y - x}{\frac{a}{z - t}}\\
\end{array}
\end{array}
if t < -2.1e-18 or 1.22e-67 < t < 2.6e16 or 2.8000000000000002e169 < t Initial program 40.6%
associate-/l*66.6%
Simplified66.6%
Taylor expanded in t around inf 67.6%
associate--l+67.6%
associate-*r/67.6%
associate-*r/67.6%
div-sub67.7%
distribute-lft-out--67.7%
associate-*r/67.7%
mul-1-neg67.7%
unsub-neg67.7%
distribute-rgt-out--67.8%
associate-/l*81.2%
Simplified81.2%
if -2.1e-18 < t < 1.22e-67 or 2.6e16 < t < 2.8000000000000002e169Initial program 80.5%
associate-/l*93.5%
Simplified93.5%
Taylor expanded in a around inf 69.6%
associate-/l*81.6%
Simplified81.6%
Final simplification81.4%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (- x (* (- z t) (/ (- x y) a)))))
(if (<= a -3.6e+51)
t_1
(if (<= a -1.9e-132)
(+ y (* (/ x t) (- z a)))
(if (<= a 1.15e-215)
(+ y (/ (- x y) (/ t z)))
(if (<= a 2.4e+125) (* y (/ (- z t) (- a t))) t_1))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x - ((z - t) * ((x - y) / a));
double tmp;
if (a <= -3.6e+51) {
tmp = t_1;
} else if (a <= -1.9e-132) {
tmp = y + ((x / t) * (z - a));
} else if (a <= 1.15e-215) {
tmp = y + ((x - y) / (t / z));
} else if (a <= 2.4e+125) {
tmp = y * ((z - t) / (a - t));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: t_1
real(8) :: tmp
t_1 = x - ((z - t) * ((x - y) / a))
if (a <= (-3.6d+51)) then
tmp = t_1
else if (a <= (-1.9d-132)) then
tmp = y + ((x / t) * (z - a))
else if (a <= 1.15d-215) then
tmp = y + ((x - y) / (t / z))
else if (a <= 2.4d+125) then
tmp = y * ((z - t) / (a - t))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x - ((z - t) * ((x - y) / a));
double tmp;
if (a <= -3.6e+51) {
tmp = t_1;
} else if (a <= -1.9e-132) {
tmp = y + ((x / t) * (z - a));
} else if (a <= 1.15e-215) {
tmp = y + ((x - y) / (t / z));
} else if (a <= 2.4e+125) {
tmp = y * ((z - t) / (a - t));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x - ((z - t) * ((x - y) / a)) tmp = 0 if a <= -3.6e+51: tmp = t_1 elif a <= -1.9e-132: tmp = y + ((x / t) * (z - a)) elif a <= 1.15e-215: tmp = y + ((x - y) / (t / z)) elif a <= 2.4e+125: tmp = y * ((z - t) / (a - t)) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(x - Float64(Float64(z - t) * Float64(Float64(x - y) / a))) tmp = 0.0 if (a <= -3.6e+51) tmp = t_1; elseif (a <= -1.9e-132) tmp = Float64(y + Float64(Float64(x / t) * Float64(z - a))); elseif (a <= 1.15e-215) tmp = Float64(y + Float64(Float64(x - y) / Float64(t / z))); elseif (a <= 2.4e+125) tmp = Float64(y * Float64(Float64(z - t) / Float64(a - t))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x - ((z - t) * ((x - y) / a)); tmp = 0.0; if (a <= -3.6e+51) tmp = t_1; elseif (a <= -1.9e-132) tmp = y + ((x / t) * (z - a)); elseif (a <= 1.15e-215) tmp = y + ((x - y) / (t / z)); elseif (a <= 2.4e+125) tmp = y * ((z - t) / (a - t)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x - N[(N[(z - t), $MachinePrecision] * N[(N[(x - y), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -3.6e+51], t$95$1, If[LessEqual[a, -1.9e-132], N[(y + N[(N[(x / t), $MachinePrecision] * N[(z - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 1.15e-215], N[(y + N[(N[(x - y), $MachinePrecision] / N[(t / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 2.4e+125], N[(y * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x - \left(z - t\right) \cdot \frac{x - y}{a}\\
\mathbf{if}\;a \leq -3.6 \cdot 10^{+51}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;a \leq -1.9 \cdot 10^{-132}:\\
\;\;\;\;y + \frac{x}{t} \cdot \left(z - a\right)\\
\mathbf{elif}\;a \leq 1.15 \cdot 10^{-215}:\\
\;\;\;\;y + \frac{x - y}{\frac{t}{z}}\\
\mathbf{elif}\;a \leq 2.4 \cdot 10^{+125}:\\
\;\;\;\;y \cdot \frac{z - t}{a - t}\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if a < -3.60000000000000011e51 or 2.4e125 < a Initial program 61.6%
associate-*l/90.3%
Simplified90.3%
Taylor expanded in a around inf 79.0%
if -3.60000000000000011e51 < a < -1.8999999999999998e-132Initial program 57.5%
associate-/l*63.0%
Simplified63.0%
Taylor expanded in t around inf 77.8%
associate--l+77.8%
associate-*r/77.8%
associate-*r/77.8%
div-sub77.9%
distribute-lft-out--77.9%
associate-*r/77.9%
mul-1-neg77.9%
unsub-neg77.9%
distribute-rgt-out--77.9%
associate-/l*83.8%
Simplified83.8%
Taylor expanded in y around 0 72.1%
mul-1-neg72.1%
associate-/l*77.9%
associate-/r/77.8%
distribute-rgt-neg-in77.8%
Simplified77.8%
if -1.8999999999999998e-132 < a < 1.15e-215Initial program 67.9%
associate-/l*81.5%
Simplified81.5%
Taylor expanded in t around inf 85.6%
associate--l+85.6%
associate-*r/85.6%
associate-*r/85.6%
div-sub85.6%
distribute-lft-out--85.6%
associate-*r/85.6%
mul-1-neg85.6%
unsub-neg85.6%
distribute-rgt-out--85.6%
associate-/l*90.8%
Simplified90.8%
Taylor expanded in z around inf 90.8%
if 1.15e-215 < a < 2.4e125Initial program 57.3%
associate-/l*72.2%
Simplified72.2%
Taylor expanded in x around 0 51.2%
associate-*r/71.0%
Simplified71.0%
Final simplification79.2%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ y (* x (/ z t))))
(t_2 (* x (- 1.0 (/ z a))))
(t_3 (/ y (/ a (- z t)))))
(if (<= a -1.25e+53)
t_2
(if (<= a 2.4e-149)
t_1
(if (<= a 6.8e-82)
t_3
(if (<= a 1.1e+65) t_1 (if (<= a 1.22e+216) t_3 t_2)))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = y + (x * (z / t));
double t_2 = x * (1.0 - (z / a));
double t_3 = y / (a / (z - t));
double tmp;
if (a <= -1.25e+53) {
tmp = t_2;
} else if (a <= 2.4e-149) {
tmp = t_1;
} else if (a <= 6.8e-82) {
tmp = t_3;
} else if (a <= 1.1e+65) {
tmp = t_1;
} else if (a <= 1.22e+216) {
tmp = t_3;
} 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) :: t_3
real(8) :: tmp
t_1 = y + (x * (z / t))
t_2 = x * (1.0d0 - (z / a))
t_3 = y / (a / (z - t))
if (a <= (-1.25d+53)) then
tmp = t_2
else if (a <= 2.4d-149) then
tmp = t_1
else if (a <= 6.8d-82) then
tmp = t_3
else if (a <= 1.1d+65) then
tmp = t_1
else if (a <= 1.22d+216) then
tmp = t_3
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = y + (x * (z / t));
double t_2 = x * (1.0 - (z / a));
double t_3 = y / (a / (z - t));
double tmp;
if (a <= -1.25e+53) {
tmp = t_2;
} else if (a <= 2.4e-149) {
tmp = t_1;
} else if (a <= 6.8e-82) {
tmp = t_3;
} else if (a <= 1.1e+65) {
tmp = t_1;
} else if (a <= 1.22e+216) {
tmp = t_3;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = y + (x * (z / t)) t_2 = x * (1.0 - (z / a)) t_3 = y / (a / (z - t)) tmp = 0 if a <= -1.25e+53: tmp = t_2 elif a <= 2.4e-149: tmp = t_1 elif a <= 6.8e-82: tmp = t_3 elif a <= 1.1e+65: tmp = t_1 elif a <= 1.22e+216: tmp = t_3 else: tmp = t_2 return tmp
function code(x, y, z, t, a) t_1 = Float64(y + Float64(x * Float64(z / t))) t_2 = Float64(x * Float64(1.0 - Float64(z / a))) t_3 = Float64(y / Float64(a / Float64(z - t))) tmp = 0.0 if (a <= -1.25e+53) tmp = t_2; elseif (a <= 2.4e-149) tmp = t_1; elseif (a <= 6.8e-82) tmp = t_3; elseif (a <= 1.1e+65) tmp = t_1; elseif (a <= 1.22e+216) tmp = t_3; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = y + (x * (z / t)); t_2 = x * (1.0 - (z / a)); t_3 = y / (a / (z - t)); tmp = 0.0; if (a <= -1.25e+53) tmp = t_2; elseif (a <= 2.4e-149) tmp = t_1; elseif (a <= 6.8e-82) tmp = t_3; elseif (a <= 1.1e+65) tmp = t_1; elseif (a <= 1.22e+216) tmp = t_3; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(y + N[(x * N[(z / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(y / N[(a / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -1.25e+53], t$95$2, If[LessEqual[a, 2.4e-149], t$95$1, If[LessEqual[a, 6.8e-82], t$95$3, If[LessEqual[a, 1.1e+65], t$95$1, If[LessEqual[a, 1.22e+216], t$95$3, t$95$2]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y + x \cdot \frac{z}{t}\\
t_2 := x \cdot \left(1 - \frac{z}{a}\right)\\
t_3 := \frac{y}{\frac{a}{z - t}}\\
\mathbf{if}\;a \leq -1.25 \cdot 10^{+53}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;a \leq 2.4 \cdot 10^{-149}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;a \leq 6.8 \cdot 10^{-82}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;a \leq 1.1 \cdot 10^{+65}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;a \leq 1.22 \cdot 10^{+216}:\\
\;\;\;\;t_3\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if a < -1.2500000000000001e53 or 1.22e216 < a Initial program 63.4%
+-commutative63.4%
associate-*l/90.3%
fma-def90.3%
Simplified90.3%
fma-udef90.3%
associate-*l/63.4%
associate-*r/92.5%
Applied egg-rr92.5%
Taylor expanded in t around 0 73.7%
Taylor expanded in x around inf 53.5%
mul-1-neg53.5%
unsub-neg53.5%
Simplified53.5%
if -1.2500000000000001e53 < a < 2.4000000000000001e-149 or 6.7999999999999995e-82 < a < 1.0999999999999999e65Initial program 59.5%
associate-/l*71.5%
Simplified71.5%
Taylor expanded in t around inf 75.8%
associate--l+75.8%
associate-*r/75.8%
associate-*r/75.8%
div-sub76.6%
distribute-lft-out--76.6%
associate-*r/76.6%
mul-1-neg76.6%
unsub-neg76.6%
distribute-rgt-out--76.6%
associate-/l*83.1%
Simplified83.1%
Taylor expanded in z around inf 74.7%
Taylor expanded in y around 0 61.5%
associate-*r/61.5%
mul-1-neg61.5%
distribute-rgt-neg-out61.5%
associate-*r/63.6%
Simplified63.6%
if 2.4000000000000001e-149 < a < 6.7999999999999995e-82 or 1.0999999999999999e65 < a < 1.22e216Initial program 62.1%
associate-/l*84.7%
Simplified84.7%
Taylor expanded in x around 0 46.6%
Taylor expanded in a around inf 39.5%
associate-/l*49.6%
Simplified49.6%
Final simplification58.0%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* x (- 1.0 (/ z a)))))
(if (<= a -5.2e+63)
t_1
(if (<= a 5.2e-254)
(+ y (* x (/ z t)))
(if (<= a 2e+43)
(/ (- y) (/ t (- z t)))
(if (<= a 1.05e+65)
(/ (- t) (/ (- a t) y))
(if (<= a 1.25e+216) (/ y (/ a (- z t))) t_1)))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double tmp;
if (a <= -5.2e+63) {
tmp = t_1;
} else if (a <= 5.2e-254) {
tmp = y + (x * (z / t));
} else if (a <= 2e+43) {
tmp = -y / (t / (z - t));
} else if (a <= 1.05e+65) {
tmp = -t / ((a - t) / y);
} else if (a <= 1.25e+216) {
tmp = y / (a / (z - t));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: t_1
real(8) :: tmp
t_1 = x * (1.0d0 - (z / a))
if (a <= (-5.2d+63)) then
tmp = t_1
else if (a <= 5.2d-254) then
tmp = y + (x * (z / t))
else if (a <= 2d+43) then
tmp = -y / (t / (z - t))
else if (a <= 1.05d+65) then
tmp = -t / ((a - t) / y)
else if (a <= 1.25d+216) then
tmp = y / (a / (z - t))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double tmp;
if (a <= -5.2e+63) {
tmp = t_1;
} else if (a <= 5.2e-254) {
tmp = y + (x * (z / t));
} else if (a <= 2e+43) {
tmp = -y / (t / (z - t));
} else if (a <= 1.05e+65) {
tmp = -t / ((a - t) / y);
} else if (a <= 1.25e+216) {
tmp = y / (a / (z - t));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x * (1.0 - (z / a)) tmp = 0 if a <= -5.2e+63: tmp = t_1 elif a <= 5.2e-254: tmp = y + (x * (z / t)) elif a <= 2e+43: tmp = -y / (t / (z - t)) elif a <= 1.05e+65: tmp = -t / ((a - t) / y) elif a <= 1.25e+216: tmp = y / (a / (z - t)) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(x * Float64(1.0 - Float64(z / a))) tmp = 0.0 if (a <= -5.2e+63) tmp = t_1; elseif (a <= 5.2e-254) tmp = Float64(y + Float64(x * Float64(z / t))); elseif (a <= 2e+43) tmp = Float64(Float64(-y) / Float64(t / Float64(z - t))); elseif (a <= 1.05e+65) tmp = Float64(Float64(-t) / Float64(Float64(a - t) / y)); elseif (a <= 1.25e+216) tmp = Float64(y / Float64(a / Float64(z - t))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x * (1.0 - (z / a)); tmp = 0.0; if (a <= -5.2e+63) tmp = t_1; elseif (a <= 5.2e-254) tmp = y + (x * (z / t)); elseif (a <= 2e+43) tmp = -y / (t / (z - t)); elseif (a <= 1.05e+65) tmp = -t / ((a - t) / y); elseif (a <= 1.25e+216) tmp = y / (a / (z - t)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -5.2e+63], t$95$1, If[LessEqual[a, 5.2e-254], N[(y + N[(x * N[(z / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 2e+43], N[((-y) / N[(t / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 1.05e+65], N[((-t) / N[(N[(a - t), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 1.25e+216], N[(y / N[(a / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(1 - \frac{z}{a}\right)\\
\mathbf{if}\;a \leq -5.2 \cdot 10^{+63}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;a \leq 5.2 \cdot 10^{-254}:\\
\;\;\;\;y + x \cdot \frac{z}{t}\\
\mathbf{elif}\;a \leq 2 \cdot 10^{+43}:\\
\;\;\;\;\frac{-y}{\frac{t}{z - t}}\\
\mathbf{elif}\;a \leq 1.05 \cdot 10^{+65}:\\
\;\;\;\;\frac{-t}{\frac{a - t}{y}}\\
\mathbf{elif}\;a \leq 1.25 \cdot 10^{+216}:\\
\;\;\;\;\frac{y}{\frac{a}{z - t}}\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if a < -5.2000000000000002e63 or 1.24999999999999995e216 < a Initial program 63.4%
+-commutative63.4%
associate-*l/90.3%
fma-def90.3%
Simplified90.3%
fma-udef90.3%
associate-*l/63.4%
associate-*r/92.5%
Applied egg-rr92.5%
Taylor expanded in t around 0 73.7%
Taylor expanded in x around inf 53.5%
mul-1-neg53.5%
unsub-neg53.5%
Simplified53.5%
if -5.2000000000000002e63 < a < 5.2e-254Initial program 65.3%
associate-/l*74.8%
Simplified74.8%
Taylor expanded in t around inf 82.7%
associate--l+82.7%
associate-*r/82.7%
associate-*r/82.7%
div-sub82.8%
distribute-lft-out--82.8%
associate-*r/82.8%
mul-1-neg82.8%
unsub-neg82.8%
distribute-rgt-out--82.8%
associate-/l*86.5%
Simplified86.5%
Taylor expanded in z around inf 78.1%
Taylor expanded in y around 0 63.3%
associate-*r/63.3%
mul-1-neg63.3%
distribute-rgt-neg-out63.3%
associate-*r/65.7%
Simplified65.7%
if 5.2e-254 < a < 2.00000000000000003e43Initial program 56.7%
associate-/l*71.0%
Simplified71.0%
Taylor expanded in x around 0 53.7%
Taylor expanded in a around 0 42.6%
mul-1-neg42.6%
associate-/l*59.8%
distribute-neg-frac59.8%
Simplified59.8%
if 2.00000000000000003e43 < a < 1.04999999999999996e65Initial program 69.0%
associate-/l*79.9%
Simplified79.9%
Taylor expanded in x around 0 48.9%
Taylor expanded in z around 0 46.2%
mul-1-neg46.2%
associate-/l*72.5%
distribute-neg-frac72.5%
Simplified72.5%
if 1.04999999999999996e65 < a < 1.24999999999999995e216Initial program 52.7%
associate-/l*81.5%
Simplified81.5%
Taylor expanded in x around 0 37.0%
Taylor expanded in a around inf 30.3%
associate-/l*44.5%
Simplified44.5%
Final simplification58.0%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (/ z (/ a (- y x))))))
(if (<= t -8.2e-9)
(* y (/ (- z t) (- a t)))
(if (<= t 6.5e-65)
t_1
(if (<= t 1.65e+40)
(* (- z t) (/ y (- a t)))
(if (<= t 1.12e+170) t_1 (+ y (* x (/ z t)))))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + (z / (a / (y - x)));
double tmp;
if (t <= -8.2e-9) {
tmp = y * ((z - t) / (a - t));
} else if (t <= 6.5e-65) {
tmp = t_1;
} else if (t <= 1.65e+40) {
tmp = (z - t) * (y / (a - t));
} else if (t <= 1.12e+170) {
tmp = t_1;
} else {
tmp = y + (x * (z / 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 / (a / (y - x)))
if (t <= (-8.2d-9)) then
tmp = y * ((z - t) / (a - t))
else if (t <= 6.5d-65) then
tmp = t_1
else if (t <= 1.65d+40) then
tmp = (z - t) * (y / (a - t))
else if (t <= 1.12d+170) then
tmp = t_1
else
tmp = y + (x * (z / 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 / (a / (y - x)));
double tmp;
if (t <= -8.2e-9) {
tmp = y * ((z - t) / (a - t));
} else if (t <= 6.5e-65) {
tmp = t_1;
} else if (t <= 1.65e+40) {
tmp = (z - t) * (y / (a - t));
} else if (t <= 1.12e+170) {
tmp = t_1;
} else {
tmp = y + (x * (z / t));
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + (z / (a / (y - x))) tmp = 0 if t <= -8.2e-9: tmp = y * ((z - t) / (a - t)) elif t <= 6.5e-65: tmp = t_1 elif t <= 1.65e+40: tmp = (z - t) * (y / (a - t)) elif t <= 1.12e+170: tmp = t_1 else: tmp = y + (x * (z / t)) return tmp
function code(x, y, z, t, a) t_1 = Float64(x + Float64(z / Float64(a / Float64(y - x)))) tmp = 0.0 if (t <= -8.2e-9) tmp = Float64(y * Float64(Float64(z - t) / Float64(a - t))); elseif (t <= 6.5e-65) tmp = t_1; elseif (t <= 1.65e+40) tmp = Float64(Float64(z - t) * Float64(y / Float64(a - t))); elseif (t <= 1.12e+170) tmp = t_1; else tmp = Float64(y + Float64(x * Float64(z / t))); end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x + (z / (a / (y - x))); tmp = 0.0; if (t <= -8.2e-9) tmp = y * ((z - t) / (a - t)); elseif (t <= 6.5e-65) tmp = t_1; elseif (t <= 1.65e+40) tmp = (z - t) * (y / (a - t)); elseif (t <= 1.12e+170) tmp = t_1; else tmp = y + (x * (z / t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(z / N[(a / N[(y - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -8.2e-9], N[(y * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 6.5e-65], t$95$1, If[LessEqual[t, 1.65e+40], N[(N[(z - t), $MachinePrecision] * N[(y / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.12e+170], t$95$1, N[(y + N[(x * N[(z / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z}{\frac{a}{y - x}}\\
\mathbf{if}\;t \leq -8.2 \cdot 10^{-9}:\\
\;\;\;\;y \cdot \frac{z - t}{a - t}\\
\mathbf{elif}\;t \leq 6.5 \cdot 10^{-65}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq 1.65 \cdot 10^{+40}:\\
\;\;\;\;\left(z - t\right) \cdot \frac{y}{a - t}\\
\mathbf{elif}\;t \leq 1.12 \cdot 10^{+170}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;y + x \cdot \frac{z}{t}\\
\end{array}
\end{array}
if t < -8.2000000000000006e-9Initial program 40.2%
associate-/l*70.0%
Simplified70.0%
Taylor expanded in x around 0 43.3%
associate-*r/66.8%
Simplified66.8%
if -8.2000000000000006e-9 < t < 6.5e-65 or 1.6499999999999999e40 < t < 1.1200000000000001e170Initial program 79.5%
associate-/l*92.6%
Simplified92.6%
Taylor expanded in t around 0 67.3%
associate-/l*76.5%
Simplified76.5%
if 6.5e-65 < t < 1.6499999999999999e40Initial program 77.7%
+-commutative77.7%
associate-*l/86.5%
fma-def86.3%
Simplified86.3%
fma-udef86.5%
associate-*l/77.7%
associate-*r/86.5%
Applied egg-rr86.5%
Taylor expanded in y around -inf 55.6%
associate-/l*64.3%
associate-/r/64.4%
Simplified64.4%
if 1.1200000000000001e170 < t Initial program 25.2%
associate-/l*52.9%
Simplified52.9%
Taylor expanded in t around inf 68.2%
associate--l+68.2%
associate-*r/68.2%
associate-*r/68.2%
div-sub68.2%
distribute-lft-out--68.2%
associate-*r/68.2%
mul-1-neg68.2%
unsub-neg68.2%
distribute-rgt-out--68.4%
associate-/l*89.3%
Simplified89.3%
Taylor expanded in z around inf 79.2%
Taylor expanded in y around 0 67.9%
associate-*r/67.9%
mul-1-neg67.9%
distribute-rgt-neg-out67.9%
associate-*r/72.8%
Simplified72.8%
Final simplification72.4%
(FPCore (x y z t a)
:precision binary64
(if (<= t -8.5e-9)
(* y (/ (- z t) (- a t)))
(if (<= t 6.5e-65)
(+ x (/ (- y x) (/ a z)))
(if (<= t 2.7e+41)
(* (- z t) (/ y (- a t)))
(if (<= t 1.8e+169) (+ x (/ z (/ a (- y x)))) (+ y (* x (/ z t))))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -8.5e-9) {
tmp = y * ((z - t) / (a - t));
} else if (t <= 6.5e-65) {
tmp = x + ((y - x) / (a / z));
} else if (t <= 2.7e+41) {
tmp = (z - t) * (y / (a - t));
} else if (t <= 1.8e+169) {
tmp = x + (z / (a / (y - x)));
} else {
tmp = y + (x * (z / 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 (t <= (-8.5d-9)) then
tmp = y * ((z - t) / (a - t))
else if (t <= 6.5d-65) then
tmp = x + ((y - x) / (a / z))
else if (t <= 2.7d+41) then
tmp = (z - t) * (y / (a - t))
else if (t <= 1.8d+169) then
tmp = x + (z / (a / (y - x)))
else
tmp = y + (x * (z / t))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -8.5e-9) {
tmp = y * ((z - t) / (a - t));
} else if (t <= 6.5e-65) {
tmp = x + ((y - x) / (a / z));
} else if (t <= 2.7e+41) {
tmp = (z - t) * (y / (a - t));
} else if (t <= 1.8e+169) {
tmp = x + (z / (a / (y - x)));
} else {
tmp = y + (x * (z / t));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if t <= -8.5e-9: tmp = y * ((z - t) / (a - t)) elif t <= 6.5e-65: tmp = x + ((y - x) / (a / z)) elif t <= 2.7e+41: tmp = (z - t) * (y / (a - t)) elif t <= 1.8e+169: tmp = x + (z / (a / (y - x))) else: tmp = y + (x * (z / t)) return tmp
function code(x, y, z, t, a) tmp = 0.0 if (t <= -8.5e-9) tmp = Float64(y * Float64(Float64(z - t) / Float64(a - t))); elseif (t <= 6.5e-65) tmp = Float64(x + Float64(Float64(y - x) / Float64(a / z))); elseif (t <= 2.7e+41) tmp = Float64(Float64(z - t) * Float64(y / Float64(a - t))); elseif (t <= 1.8e+169) tmp = Float64(x + Float64(z / Float64(a / Float64(y - x)))); else tmp = Float64(y + Float64(x * Float64(z / t))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (t <= -8.5e-9) tmp = y * ((z - t) / (a - t)); elseif (t <= 6.5e-65) tmp = x + ((y - x) / (a / z)); elseif (t <= 2.7e+41) tmp = (z - t) * (y / (a - t)); elseif (t <= 1.8e+169) tmp = x + (z / (a / (y - x))); else tmp = y + (x * (z / t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[t, -8.5e-9], N[(y * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 6.5e-65], N[(x + N[(N[(y - x), $MachinePrecision] / N[(a / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 2.7e+41], N[(N[(z - t), $MachinePrecision] * N[(y / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.8e+169], N[(x + N[(z / N[(a / N[(y - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y + N[(x * N[(z / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -8.5 \cdot 10^{-9}:\\
\;\;\;\;y \cdot \frac{z - t}{a - t}\\
\mathbf{elif}\;t \leq 6.5 \cdot 10^{-65}:\\
\;\;\;\;x + \frac{y - x}{\frac{a}{z}}\\
\mathbf{elif}\;t \leq 2.7 \cdot 10^{+41}:\\
\;\;\;\;\left(z - t\right) \cdot \frac{y}{a - t}\\
\mathbf{elif}\;t \leq 1.8 \cdot 10^{+169}:\\
\;\;\;\;x + \frac{z}{\frac{a}{y - x}}\\
\mathbf{else}:\\
\;\;\;\;y + x \cdot \frac{z}{t}\\
\end{array}
\end{array}
if t < -8.5e-9Initial program 40.2%
associate-/l*70.0%
Simplified70.0%
Taylor expanded in x around 0 43.3%
associate-*r/66.8%
Simplified66.8%
if -8.5e-9 < t < 6.5e-65Initial program 84.4%
associate-/l*93.5%
Simplified93.5%
Taylor expanded in t around 0 79.7%
if 6.5e-65 < t < 2.7e41Initial program 77.7%
+-commutative77.7%
associate-*l/86.5%
fma-def86.3%
Simplified86.3%
fma-udef86.5%
associate-*l/77.7%
associate-*r/86.5%
Applied egg-rr86.5%
Taylor expanded in y around -inf 55.6%
associate-/l*64.3%
associate-/r/64.4%
Simplified64.4%
if 2.7e41 < t < 1.80000000000000005e169Initial program 54.2%
associate-/l*88.3%
Simplified88.3%
Taylor expanded in t around 0 51.0%
associate-/l*68.8%
Simplified68.8%
if 1.80000000000000005e169 < t Initial program 25.2%
associate-/l*52.9%
Simplified52.9%
Taylor expanded in t around inf 68.2%
associate--l+68.2%
associate-*r/68.2%
associate-*r/68.2%
div-sub68.2%
distribute-lft-out--68.2%
associate-*r/68.2%
mul-1-neg68.2%
unsub-neg68.2%
distribute-rgt-out--68.4%
associate-/l*89.3%
Simplified89.3%
Taylor expanded in z around inf 79.2%
Taylor expanded in y around 0 67.9%
associate-*r/67.9%
mul-1-neg67.9%
distribute-rgt-neg-out67.9%
associate-*r/72.8%
Simplified72.8%
Final simplification73.1%
(FPCore (x y z t a)
:precision binary64
(if (<= t -1.32e+104)
(+ y (* (/ x t) (- z a)))
(if (<= t 4.1e+170)
(+ x (* (- z t) (/ (- y x) (- a t))))
(+ y (/ (- x y) (/ t (- z a)))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -1.32e+104) {
tmp = y + ((x / t) * (z - a));
} else if (t <= 4.1e+170) {
tmp = x + ((z - t) * ((y - x) / (a - t)));
} else {
tmp = y + ((x - y) / (t / (z - a)));
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: tmp
if (t <= (-1.32d+104)) then
tmp = y + ((x / t) * (z - a))
else if (t <= 4.1d+170) then
tmp = x + ((z - t) * ((y - x) / (a - t)))
else
tmp = y + ((x - y) / (t / (z - a)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -1.32e+104) {
tmp = y + ((x / t) * (z - a));
} else if (t <= 4.1e+170) {
tmp = x + ((z - t) * ((y - x) / (a - t)));
} else {
tmp = y + ((x - y) / (t / (z - a)));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if t <= -1.32e+104: tmp = y + ((x / t) * (z - a)) elif t <= 4.1e+170: tmp = x + ((z - t) * ((y - x) / (a - t))) else: tmp = y + ((x - y) / (t / (z - a))) return tmp
function code(x, y, z, t, a) tmp = 0.0 if (t <= -1.32e+104) tmp = Float64(y + Float64(Float64(x / t) * Float64(z - a))); elseif (t <= 4.1e+170) tmp = Float64(x + Float64(Float64(z - t) * Float64(Float64(y - x) / Float64(a - t)))); else tmp = Float64(y + Float64(Float64(x - y) / Float64(t / Float64(z - a)))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (t <= -1.32e+104) tmp = y + ((x / t) * (z - a)); elseif (t <= 4.1e+170) tmp = x + ((z - t) * ((y - x) / (a - t))); else tmp = y + ((x - y) / (t / (z - a))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[t, -1.32e+104], N[(y + N[(N[(x / t), $MachinePrecision] * N[(z - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 4.1e+170], N[(x + N[(N[(z - t), $MachinePrecision] * N[(N[(y - x), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y + N[(N[(x - y), $MachinePrecision] / N[(t / N[(z - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.32 \cdot 10^{+104}:\\
\;\;\;\;y + \frac{x}{t} \cdot \left(z - a\right)\\
\mathbf{elif}\;t \leq 4.1 \cdot 10^{+170}:\\
\;\;\;\;x + \left(z - t\right) \cdot \frac{y - x}{a - t}\\
\mathbf{else}:\\
\;\;\;\;y + \frac{x - y}{\frac{t}{z - a}}\\
\end{array}
\end{array}
if t < -1.32000000000000003e104Initial program 30.9%
associate-/l*62.0%
Simplified62.0%
Taylor expanded in t around inf 69.8%
associate--l+69.8%
associate-*r/69.8%
associate-*r/69.8%
div-sub69.8%
distribute-lft-out--69.8%
associate-*r/69.8%
mul-1-neg69.8%
unsub-neg69.8%
distribute-rgt-out--69.8%
associate-/l*86.0%
Simplified86.0%
Taylor expanded in y around 0 74.1%
mul-1-neg74.1%
associate-/l*84.2%
associate-/r/88.4%
distribute-rgt-neg-in88.4%
Simplified88.4%
if -1.32000000000000003e104 < t < 4.1e170Initial program 76.5%
associate-*l/87.9%
Simplified87.9%
if 4.1e170 < t Initial program 25.2%
associate-/l*52.9%
Simplified52.9%
Taylor expanded in t around inf 68.2%
associate--l+68.2%
associate-*r/68.2%
associate-*r/68.2%
div-sub68.2%
distribute-lft-out--68.2%
associate-*r/68.2%
mul-1-neg68.2%
unsub-neg68.2%
distribute-rgt-out--68.4%
associate-/l*89.3%
Simplified89.3%
Final simplification88.2%
(FPCore (x y z t a)
:precision binary64
(if (<= t -2.0)
y
(if (<= t -1.08e-88)
x
(if (<= t 3.8e-277)
(* y (/ z a))
(if (<= t 2.8e-63)
x
(if (<= t 5000000000000.0)
(* y (/ (- z) t))
(if (<= t 1.8e+169) x y)))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -2.0) {
tmp = y;
} else if (t <= -1.08e-88) {
tmp = x;
} else if (t <= 3.8e-277) {
tmp = y * (z / a);
} else if (t <= 2.8e-63) {
tmp = x;
} else if (t <= 5000000000000.0) {
tmp = y * (-z / t);
} else if (t <= 1.8e+169) {
tmp = x;
} else {
tmp = y;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: tmp
if (t <= (-2.0d0)) then
tmp = y
else if (t <= (-1.08d-88)) then
tmp = x
else if (t <= 3.8d-277) then
tmp = y * (z / a)
else if (t <= 2.8d-63) then
tmp = x
else if (t <= 5000000000000.0d0) then
tmp = y * (-z / t)
else if (t <= 1.8d+169) then
tmp = x
else
tmp = y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -2.0) {
tmp = y;
} else if (t <= -1.08e-88) {
tmp = x;
} else if (t <= 3.8e-277) {
tmp = y * (z / a);
} else if (t <= 2.8e-63) {
tmp = x;
} else if (t <= 5000000000000.0) {
tmp = y * (-z / t);
} else if (t <= 1.8e+169) {
tmp = x;
} else {
tmp = y;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if t <= -2.0: tmp = y elif t <= -1.08e-88: tmp = x elif t <= 3.8e-277: tmp = y * (z / a) elif t <= 2.8e-63: tmp = x elif t <= 5000000000000.0: tmp = y * (-z / t) elif t <= 1.8e+169: tmp = x else: tmp = y return tmp
function code(x, y, z, t, a) tmp = 0.0 if (t <= -2.0) tmp = y; elseif (t <= -1.08e-88) tmp = x; elseif (t <= 3.8e-277) tmp = Float64(y * Float64(z / a)); elseif (t <= 2.8e-63) tmp = x; elseif (t <= 5000000000000.0) tmp = Float64(y * Float64(Float64(-z) / t)); elseif (t <= 1.8e+169) tmp = x; else tmp = y; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (t <= -2.0) tmp = y; elseif (t <= -1.08e-88) tmp = x; elseif (t <= 3.8e-277) tmp = y * (z / a); elseif (t <= 2.8e-63) tmp = x; elseif (t <= 5000000000000.0) tmp = y * (-z / t); elseif (t <= 1.8e+169) tmp = x; else tmp = y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[t, -2.0], y, If[LessEqual[t, -1.08e-88], x, If[LessEqual[t, 3.8e-277], N[(y * N[(z / a), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 2.8e-63], x, If[LessEqual[t, 5000000000000.0], N[(y * N[((-z) / t), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.8e+169], x, y]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -2:\\
\;\;\;\;y\\
\mathbf{elif}\;t \leq -1.08 \cdot 10^{-88}:\\
\;\;\;\;x\\
\mathbf{elif}\;t \leq 3.8 \cdot 10^{-277}:\\
\;\;\;\;y \cdot \frac{z}{a}\\
\mathbf{elif}\;t \leq 2.8 \cdot 10^{-63}:\\
\;\;\;\;x\\
\mathbf{elif}\;t \leq 5000000000000:\\
\;\;\;\;y \cdot \frac{-z}{t}\\
\mathbf{elif}\;t \leq 1.8 \cdot 10^{+169}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}
\end{array}
if t < -2 or 1.80000000000000005e169 < t Initial program 34.2%
associate-/l*63.6%
Simplified63.6%
Taylor expanded in t around inf 54.1%
if -2 < t < -1.07999999999999995e-88 or 3.79999999999999986e-277 < t < 2.8000000000000002e-63 or 5e12 < t < 1.80000000000000005e169Initial program 77.8%
associate-/l*89.2%
Simplified89.2%
Taylor expanded in a around inf 37.5%
if -1.07999999999999995e-88 < t < 3.79999999999999986e-277Initial program 85.5%
associate-/l*99.4%
Simplified99.4%
Taylor expanded in x around 0 50.6%
Taylor expanded in t around 0 43.6%
associate-/l*57.8%
Simplified57.8%
div-inv59.5%
clear-num59.6%
Applied egg-rr59.6%
if 2.8000000000000002e-63 < t < 5e12Initial program 67.5%
associate-/l*80.3%
Simplified80.3%
Taylor expanded in x around 0 48.0%
Taylor expanded in a around 0 41.7%
mul-1-neg41.7%
associate-/l*41.6%
distribute-neg-frac41.6%
Simplified41.6%
Taylor expanded in t around 0 35.9%
mul-1-neg35.9%
associate-*r/35.9%
*-commutative35.9%
distribute-rgt-neg-in35.9%
Simplified35.9%
Final simplification48.6%
(FPCore (x y z t a)
:precision binary64
(if (<= t -0.24)
y
(if (<= t -1.92e-90)
x
(if (<= t 1.4e-277)
(* y (/ z a))
(if (<= t 5.6e-75)
x
(if (<= t 1.2e+44) (* x (/ z t)) (if (<= t 1.8e+169) x y)))))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -0.24) {
tmp = y;
} else if (t <= -1.92e-90) {
tmp = x;
} else if (t <= 1.4e-277) {
tmp = y * (z / a);
} else if (t <= 5.6e-75) {
tmp = x;
} else if (t <= 1.2e+44) {
tmp = x * (z / t);
} else if (t <= 1.8e+169) {
tmp = x;
} else {
tmp = y;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: tmp
if (t <= (-0.24d0)) then
tmp = y
else if (t <= (-1.92d-90)) then
tmp = x
else if (t <= 1.4d-277) then
tmp = y * (z / a)
else if (t <= 5.6d-75) then
tmp = x
else if (t <= 1.2d+44) then
tmp = x * (z / t)
else if (t <= 1.8d+169) then
tmp = x
else
tmp = y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -0.24) {
tmp = y;
} else if (t <= -1.92e-90) {
tmp = x;
} else if (t <= 1.4e-277) {
tmp = y * (z / a);
} else if (t <= 5.6e-75) {
tmp = x;
} else if (t <= 1.2e+44) {
tmp = x * (z / t);
} else if (t <= 1.8e+169) {
tmp = x;
} else {
tmp = y;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if t <= -0.24: tmp = y elif t <= -1.92e-90: tmp = x elif t <= 1.4e-277: tmp = y * (z / a) elif t <= 5.6e-75: tmp = x elif t <= 1.2e+44: tmp = x * (z / t) elif t <= 1.8e+169: tmp = x else: tmp = y return tmp
function code(x, y, z, t, a) tmp = 0.0 if (t <= -0.24) tmp = y; elseif (t <= -1.92e-90) tmp = x; elseif (t <= 1.4e-277) tmp = Float64(y * Float64(z / a)); elseif (t <= 5.6e-75) tmp = x; elseif (t <= 1.2e+44) tmp = Float64(x * Float64(z / t)); elseif (t <= 1.8e+169) tmp = x; else tmp = y; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (t <= -0.24) tmp = y; elseif (t <= -1.92e-90) tmp = x; elseif (t <= 1.4e-277) tmp = y * (z / a); elseif (t <= 5.6e-75) tmp = x; elseif (t <= 1.2e+44) tmp = x * (z / t); elseif (t <= 1.8e+169) tmp = x; else tmp = y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[t, -0.24], y, If[LessEqual[t, -1.92e-90], x, If[LessEqual[t, 1.4e-277], N[(y * N[(z / a), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 5.6e-75], x, If[LessEqual[t, 1.2e+44], N[(x * N[(z / t), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.8e+169], x, y]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -0.24:\\
\;\;\;\;y\\
\mathbf{elif}\;t \leq -1.92 \cdot 10^{-90}:\\
\;\;\;\;x\\
\mathbf{elif}\;t \leq 1.4 \cdot 10^{-277}:\\
\;\;\;\;y \cdot \frac{z}{a}\\
\mathbf{elif}\;t \leq 5.6 \cdot 10^{-75}:\\
\;\;\;\;x\\
\mathbf{elif}\;t \leq 1.2 \cdot 10^{+44}:\\
\;\;\;\;x \cdot \frac{z}{t}\\
\mathbf{elif}\;t \leq 1.8 \cdot 10^{+169}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}
\end{array}
if t < -0.23999999999999999 or 1.80000000000000005e169 < t Initial program 34.2%
associate-/l*63.6%
Simplified63.6%
Taylor expanded in t around inf 54.1%
if -0.23999999999999999 < t < -1.92000000000000009e-90 or 1.39999999999999988e-277 < t < 5.59999999999999996e-75 or 1.20000000000000007e44 < t < 1.80000000000000005e169Initial program 77.4%
associate-/l*87.8%
Simplified87.8%
Taylor expanded in a around inf 40.8%
if -1.92000000000000009e-90 < t < 1.39999999999999988e-277Initial program 85.5%
associate-/l*99.4%
Simplified99.4%
Taylor expanded in x around 0 50.6%
Taylor expanded in t around 0 43.6%
associate-/l*57.8%
Simplified57.8%
div-inv59.5%
clear-num59.6%
Applied egg-rr59.6%
if 5.59999999999999996e-75 < t < 1.20000000000000007e44Initial program 72.7%
associate-/l*88.1%
Simplified88.1%
Taylor expanded in t around inf 60.9%
associate--l+60.9%
associate-*r/60.9%
associate-*r/60.9%
div-sub61.1%
distribute-lft-out--61.1%
associate-*r/61.1%
mul-1-neg61.1%
unsub-neg61.1%
distribute-rgt-out--61.1%
associate-/l*64.8%
Simplified64.8%
Taylor expanded in y around 0 31.7%
associate-/l*35.4%
associate-/r/35.3%
Simplified35.3%
Taylor expanded in z around inf 23.0%
associate-*r/26.7%
Simplified26.7%
Final simplification48.6%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* x (- 1.0 (/ z a)))))
(if (<= t -6e-9)
y
(if (<= t -2.15e-235)
t_1
(if (<= t 1.75e-278) (/ y (/ a z)) (if (<= t 7.2e+170) t_1 y))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double tmp;
if (t <= -6e-9) {
tmp = y;
} else if (t <= -2.15e-235) {
tmp = t_1;
} else if (t <= 1.75e-278) {
tmp = y / (a / z);
} else if (t <= 7.2e+170) {
tmp = t_1;
} else {
tmp = y;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: t_1
real(8) :: tmp
t_1 = x * (1.0d0 - (z / a))
if (t <= (-6d-9)) then
tmp = y
else if (t <= (-2.15d-235)) then
tmp = t_1
else if (t <= 1.75d-278) then
tmp = y / (a / z)
else if (t <= 7.2d+170) then
tmp = t_1
else
tmp = y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double tmp;
if (t <= -6e-9) {
tmp = y;
} else if (t <= -2.15e-235) {
tmp = t_1;
} else if (t <= 1.75e-278) {
tmp = y / (a / z);
} else if (t <= 7.2e+170) {
tmp = t_1;
} else {
tmp = y;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x * (1.0 - (z / a)) tmp = 0 if t <= -6e-9: tmp = y elif t <= -2.15e-235: tmp = t_1 elif t <= 1.75e-278: tmp = y / (a / z) elif t <= 7.2e+170: tmp = t_1 else: tmp = y return tmp
function code(x, y, z, t, a) t_1 = Float64(x * Float64(1.0 - Float64(z / a))) tmp = 0.0 if (t <= -6e-9) tmp = y; elseif (t <= -2.15e-235) tmp = t_1; elseif (t <= 1.75e-278) tmp = Float64(y / Float64(a / z)); elseif (t <= 7.2e+170) tmp = t_1; else tmp = y; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x * (1.0 - (z / a)); tmp = 0.0; if (t <= -6e-9) tmp = y; elseif (t <= -2.15e-235) tmp = t_1; elseif (t <= 1.75e-278) tmp = y / (a / z); elseif (t <= 7.2e+170) tmp = t_1; else tmp = y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -6e-9], y, If[LessEqual[t, -2.15e-235], t$95$1, If[LessEqual[t, 1.75e-278], N[(y / N[(a / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 7.2e+170], t$95$1, y]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(1 - \frac{z}{a}\right)\\
\mathbf{if}\;t \leq -6 \cdot 10^{-9}:\\
\;\;\;\;y\\
\mathbf{elif}\;t \leq -2.15 \cdot 10^{-235}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq 1.75 \cdot 10^{-278}:\\
\;\;\;\;\frac{y}{\frac{a}{z}}\\
\mathbf{elif}\;t \leq 7.2 \cdot 10^{+170}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}
\end{array}
if t < -5.99999999999999996e-9 or 7.1999999999999999e170 < t Initial program 34.8%
associate-/l*63.9%
Simplified63.9%
Taylor expanded in t around inf 53.6%
if -5.99999999999999996e-9 < t < -2.15000000000000012e-235 or 1.74999999999999985e-278 < t < 7.1999999999999999e170Initial program 79.9%
+-commutative79.9%
associate-*l/88.7%
fma-def88.7%
Simplified88.7%
fma-udef88.7%
associate-*l/79.9%
associate-*r/90.7%
Applied egg-rr90.7%
Taylor expanded in t around 0 69.0%
Taylor expanded in x around inf 49.2%
mul-1-neg49.2%
unsub-neg49.2%
Simplified49.2%
if -2.15000000000000012e-235 < t < 1.74999999999999985e-278Initial program 75.1%
associate-/l*98.6%
Simplified98.6%
Taylor expanded in x around 0 66.3%
Taylor expanded in t around 0 57.1%
associate-/l*76.5%
Simplified76.5%
Final simplification53.0%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (* x (- 1.0 (/ z a)))) (t_2 (- y (* z (/ y t)))))
(if (<= t -5e-9)
t_2
(if (<= t -1.65e-224)
t_1
(if (<= t 6.6e-279) (/ y (/ a z)) (if (<= t 1.8e+169) t_1 t_2))))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double t_2 = y - (z * (y / t));
double tmp;
if (t <= -5e-9) {
tmp = t_2;
} else if (t <= -1.65e-224) {
tmp = t_1;
} else if (t <= 6.6e-279) {
tmp = y / (a / z);
} else if (t <= 1.8e+169) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = x * (1.0d0 - (z / a))
t_2 = y - (z * (y / t))
if (t <= (-5d-9)) then
tmp = t_2
else if (t <= (-1.65d-224)) then
tmp = t_1
else if (t <= 6.6d-279) then
tmp = y / (a / z)
else if (t <= 1.8d+169) then
tmp = t_1
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x * (1.0 - (z / a));
double t_2 = y - (z * (y / t));
double tmp;
if (t <= -5e-9) {
tmp = t_2;
} else if (t <= -1.65e-224) {
tmp = t_1;
} else if (t <= 6.6e-279) {
tmp = y / (a / z);
} else if (t <= 1.8e+169) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x * (1.0 - (z / a)) t_2 = y - (z * (y / t)) tmp = 0 if t <= -5e-9: tmp = t_2 elif t <= -1.65e-224: tmp = t_1 elif t <= 6.6e-279: tmp = y / (a / z) elif t <= 1.8e+169: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a) t_1 = Float64(x * Float64(1.0 - Float64(z / a))) t_2 = Float64(y - Float64(z * Float64(y / t))) tmp = 0.0 if (t <= -5e-9) tmp = t_2; elseif (t <= -1.65e-224) tmp = t_1; elseif (t <= 6.6e-279) tmp = Float64(y / Float64(a / z)); elseif (t <= 1.8e+169) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x * (1.0 - (z / a)); t_2 = y - (z * (y / t)); tmp = 0.0; if (t <= -5e-9) tmp = t_2; elseif (t <= -1.65e-224) tmp = t_1; elseif (t <= 6.6e-279) tmp = y / (a / z); elseif (t <= 1.8e+169) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(y - N[(z * N[(y / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -5e-9], t$95$2, If[LessEqual[t, -1.65e-224], t$95$1, If[LessEqual[t, 6.6e-279], N[(y / N[(a / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.8e+169], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(1 - \frac{z}{a}\right)\\
t_2 := y - z \cdot \frac{y}{t}\\
\mathbf{if}\;t \leq -5 \cdot 10^{-9}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;t \leq -1.65 \cdot 10^{-224}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;t \leq 6.6 \cdot 10^{-279}:\\
\;\;\;\;\frac{y}{\frac{a}{z}}\\
\mathbf{elif}\;t \leq 1.8 \cdot 10^{+169}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\end{array}
if t < -5.0000000000000001e-9 or 1.80000000000000005e169 < t Initial program 34.8%
associate-/l*63.9%
Simplified63.9%
Taylor expanded in t around inf 65.2%
associate--l+65.2%
associate-*r/65.2%
associate-*r/65.2%
div-sub65.2%
distribute-lft-out--65.2%
associate-*r/65.2%
mul-1-neg65.2%
unsub-neg65.2%
distribute-rgt-out--65.4%
associate-/l*81.4%
Simplified81.4%
Taylor expanded in z around inf 71.3%
Taylor expanded in y around inf 51.0%
associate-*l/59.8%
*-commutative59.8%
Simplified59.8%
if -5.0000000000000001e-9 < t < -1.6500000000000001e-224 or 6.6e-279 < t < 1.80000000000000005e169Initial program 79.9%
+-commutative79.9%
associate-*l/88.7%
fma-def88.7%
Simplified88.7%
fma-udef88.7%
associate-*l/79.9%
associate-*r/90.7%
Applied egg-rr90.7%
Taylor expanded in t around 0 69.0%
Taylor expanded in x around inf 49.2%
mul-1-neg49.2%
unsub-neg49.2%
Simplified49.2%
if -1.6500000000000001e-224 < t < 6.6e-279Initial program 75.1%
associate-/l*98.6%
Simplified98.6%
Taylor expanded in x around 0 66.3%
Taylor expanded in t around 0 57.1%
associate-/l*76.5%
Simplified76.5%
Final simplification55.5%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (/ z (/ a (- y x))))))
(if (<= a -4e+55)
t_1
(if (<= a 1.15e-215)
(+ y (/ (- x y) (/ t z)))
(if (<= a 3.7e+104) (* y (/ (- z t) (- a t))) t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + (z / (a / (y - x)));
double tmp;
if (a <= -4e+55) {
tmp = t_1;
} else if (a <= 1.15e-215) {
tmp = y + ((x - y) / (t / z));
} else if (a <= 3.7e+104) {
tmp = y * ((z - t) / (a - t));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: t_1
real(8) :: tmp
t_1 = x + (z / (a / (y - x)))
if (a <= (-4d+55)) then
tmp = t_1
else if (a <= 1.15d-215) then
tmp = y + ((x - y) / (t / z))
else if (a <= 3.7d+104) then
tmp = y * ((z - t) / (a - t))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x + (z / (a / (y - x)));
double tmp;
if (a <= -4e+55) {
tmp = t_1;
} else if (a <= 1.15e-215) {
tmp = y + ((x - y) / (t / z));
} else if (a <= 3.7e+104) {
tmp = y * ((z - t) / (a - t));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + (z / (a / (y - x))) tmp = 0 if a <= -4e+55: tmp = t_1 elif a <= 1.15e-215: tmp = y + ((x - y) / (t / z)) elif a <= 3.7e+104: tmp = y * ((z - t) / (a - t)) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(x + Float64(z / Float64(a / Float64(y - x)))) tmp = 0.0 if (a <= -4e+55) tmp = t_1; elseif (a <= 1.15e-215) tmp = Float64(y + Float64(Float64(x - y) / Float64(t / z))); elseif (a <= 3.7e+104) tmp = Float64(y * Float64(Float64(z - t) / Float64(a - t))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x + (z / (a / (y - x))); tmp = 0.0; if (a <= -4e+55) tmp = t_1; elseif (a <= 1.15e-215) tmp = y + ((x - y) / (t / z)); elseif (a <= 3.7e+104) tmp = y * ((z - t) / (a - t)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(z / N[(a / N[(y - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -4e+55], t$95$1, If[LessEqual[a, 1.15e-215], N[(y + N[(N[(x - y), $MachinePrecision] / N[(t / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 3.7e+104], N[(y * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z}{\frac{a}{y - x}}\\
\mathbf{if}\;a \leq -4 \cdot 10^{+55}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;a \leq 1.15 \cdot 10^{-215}:\\
\;\;\;\;y + \frac{x - y}{\frac{t}{z}}\\
\mathbf{elif}\;a \leq 3.7 \cdot 10^{+104}:\\
\;\;\;\;y \cdot \frac{z - t}{a - t}\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
if a < -4.00000000000000004e55 or 3.6999999999999998e104 < a Initial program 61.6%
associate-/l*89.6%
Simplified89.6%
Taylor expanded in t around 0 55.4%
associate-/l*71.1%
Simplified71.1%
if -4.00000000000000004e55 < a < 1.15e-215Initial program 63.9%
associate-/l*74.4%
Simplified74.4%
Taylor expanded in t around inf 82.6%
associate--l+82.6%
associate-*r/82.6%
associate-*r/82.6%
div-sub82.7%
distribute-lft-out--82.7%
associate-*r/82.7%
mul-1-neg82.7%
unsub-neg82.7%
distribute-rgt-out--82.7%
associate-/l*88.1%
Simplified88.1%
Taylor expanded in z around inf 80.6%
if 1.15e-215 < a < 3.6999999999999998e104Initial program 57.0%
associate-/l*73.1%
Simplified73.1%
Taylor expanded in x around 0 52.0%
associate-*r/71.8%
Simplified71.8%
Final simplification74.5%
(FPCore (x y z t a) :precision binary64 (if (or (<= x -7.8e+123) (not (<= x 2.4e+122))) (* x (- 1.0 (/ z a))) (* y (/ (- z t) (- a t)))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((x <= -7.8e+123) || !(x <= 2.4e+122)) {
tmp = x * (1.0 - (z / a));
} else {
tmp = y * ((z - t) / (a - t));
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: tmp
if ((x <= (-7.8d+123)) .or. (.not. (x <= 2.4d+122))) then
tmp = x * (1.0d0 - (z / a))
else
tmp = y * ((z - t) / (a - t))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if ((x <= -7.8e+123) || !(x <= 2.4e+122)) {
tmp = x * (1.0 - (z / a));
} else {
tmp = y * ((z - t) / (a - t));
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (x <= -7.8e+123) or not (x <= 2.4e+122): tmp = x * (1.0 - (z / a)) else: tmp = y * ((z - t) / (a - t)) return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((x <= -7.8e+123) || !(x <= 2.4e+122)) tmp = Float64(x * Float64(1.0 - Float64(z / a))); else tmp = Float64(y * Float64(Float64(z - t) / Float64(a - t))); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((x <= -7.8e+123) || ~((x <= 2.4e+122))) tmp = x * (1.0 - (z / a)); else tmp = y * ((z - t) / (a - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[x, -7.8e+123], N[Not[LessEqual[x, 2.4e+122]], $MachinePrecision]], N[(x * N[(1.0 - N[(z / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -7.8 \cdot 10^{+123} \lor \neg \left(x \leq 2.4 \cdot 10^{+122}\right):\\
\;\;\;\;x \cdot \left(1 - \frac{z}{a}\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \frac{z - t}{a - t}\\
\end{array}
\end{array}
if x < -7.79999999999999986e123 or 2.4000000000000002e122 < x Initial program 46.1%
+-commutative46.1%
associate-*l/71.9%
fma-def71.8%
Simplified71.8%
fma-udef71.9%
associate-*l/46.1%
associate-*r/72.9%
Applied egg-rr72.9%
Taylor expanded in t around 0 54.1%
Taylor expanded in x around inf 51.0%
mul-1-neg51.0%
unsub-neg51.0%
Simplified51.0%
if -7.79999999999999986e123 < x < 2.4000000000000002e122Initial program 69.0%
associate-/l*84.3%
Simplified84.3%
Taylor expanded in x around 0 54.4%
associate-*r/69.9%
Simplified69.9%
Final simplification63.5%
(FPCore (x y z t a)
:precision binary64
(if (<= t -2.7)
y
(if (<= t 6.8e-75)
x
(if (<= t 1.8e+45) (* x (/ z t)) (if (<= t 1.8e+169) x y)))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -2.7) {
tmp = y;
} else if (t <= 6.8e-75) {
tmp = x;
} else if (t <= 1.8e+45) {
tmp = x * (z / t);
} else if (t <= 1.8e+169) {
tmp = x;
} else {
tmp = y;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: tmp
if (t <= (-2.7d0)) then
tmp = y
else if (t <= 6.8d-75) then
tmp = x
else if (t <= 1.8d+45) then
tmp = x * (z / t)
else if (t <= 1.8d+169) then
tmp = x
else
tmp = y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -2.7) {
tmp = y;
} else if (t <= 6.8e-75) {
tmp = x;
} else if (t <= 1.8e+45) {
tmp = x * (z / t);
} else if (t <= 1.8e+169) {
tmp = x;
} else {
tmp = y;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if t <= -2.7: tmp = y elif t <= 6.8e-75: tmp = x elif t <= 1.8e+45: tmp = x * (z / t) elif t <= 1.8e+169: tmp = x else: tmp = y return tmp
function code(x, y, z, t, a) tmp = 0.0 if (t <= -2.7) tmp = y; elseif (t <= 6.8e-75) tmp = x; elseif (t <= 1.8e+45) tmp = Float64(x * Float64(z / t)); elseif (t <= 1.8e+169) tmp = x; else tmp = y; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (t <= -2.7) tmp = y; elseif (t <= 6.8e-75) tmp = x; elseif (t <= 1.8e+45) tmp = x * (z / t); elseif (t <= 1.8e+169) tmp = x; else tmp = y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[t, -2.7], y, If[LessEqual[t, 6.8e-75], x, If[LessEqual[t, 1.8e+45], N[(x * N[(z / t), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.8e+169], x, y]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -2.7:\\
\;\;\;\;y\\
\mathbf{elif}\;t \leq 6.8 \cdot 10^{-75}:\\
\;\;\;\;x\\
\mathbf{elif}\;t \leq 1.8 \cdot 10^{+45}:\\
\;\;\;\;x \cdot \frac{z}{t}\\
\mathbf{elif}\;t \leq 1.8 \cdot 10^{+169}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}
\end{array}
if t < -2.7000000000000002 or 1.80000000000000005e169 < t Initial program 34.2%
associate-/l*63.6%
Simplified63.6%
Taylor expanded in t around inf 54.1%
if -2.7000000000000002 < t < 6.8000000000000003e-75 or 1.8e45 < t < 1.80000000000000005e169Initial program 80.7%
associate-/l*92.5%
Simplified92.5%
Taylor expanded in a around inf 36.2%
if 6.8000000000000003e-75 < t < 1.8e45Initial program 72.7%
associate-/l*88.1%
Simplified88.1%
Taylor expanded in t around inf 60.9%
associate--l+60.9%
associate-*r/60.9%
associate-*r/60.9%
div-sub61.1%
distribute-lft-out--61.1%
associate-*r/61.1%
mul-1-neg61.1%
unsub-neg61.1%
distribute-rgt-out--61.1%
associate-/l*64.8%
Simplified64.8%
Taylor expanded in y around 0 31.7%
associate-/l*35.4%
associate-/r/35.3%
Simplified35.3%
Taylor expanded in z around inf 23.0%
associate-*r/26.7%
Simplified26.7%
Final simplification42.4%
(FPCore (x y z t a) :precision binary64 (if (<= t -0.62) y (if (<= t 2.8e+169) x y)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -0.62) {
tmp = y;
} else if (t <= 2.8e+169) {
tmp = x;
} else {
tmp = y;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: tmp
if (t <= (-0.62d0)) then
tmp = y
else if (t <= 2.8d+169) then
tmp = x
else
tmp = y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if (t <= -0.62) {
tmp = y;
} else if (t <= 2.8e+169) {
tmp = x;
} else {
tmp = y;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if t <= -0.62: tmp = y elif t <= 2.8e+169: tmp = x else: tmp = y return tmp
function code(x, y, z, t, a) tmp = 0.0 if (t <= -0.62) tmp = y; elseif (t <= 2.8e+169) tmp = x; else tmp = y; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if (t <= -0.62) tmp = y; elseif (t <= 2.8e+169) tmp = x; else tmp = y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[LessEqual[t, -0.62], y, If[LessEqual[t, 2.8e+169], x, y]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -0.62:\\
\;\;\;\;y\\
\mathbf{elif}\;t \leq 2.8 \cdot 10^{+169}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}
\end{array}
if t < -0.619999999999999996 or 2.8000000000000002e169 < t Initial program 34.2%
associate-/l*63.6%
Simplified63.6%
Taylor expanded in t around inf 54.1%
if -0.619999999999999996 < t < 2.8000000000000002e169Initial program 79.4%
associate-/l*91.8%
Simplified91.8%
Taylor expanded in a around inf 31.5%
Final simplification40.6%
(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 61.2%
associate-/l*80.4%
Simplified80.4%
Taylor expanded in a around inf 22.9%
Final simplification22.9%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (* (/ (- y x) 1.0) (/ (- z t) (- a t))))))
(if (< a -1.6153062845442575e-142)
t_1
(if (< a 3.774403170083174e-182) (- y (* (/ z t) (- y x))) t_1))))
double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - x) / 1.0) * ((z - t) / (a - t)));
double tmp;
if (a < -1.6153062845442575e-142) {
tmp = t_1;
} else if (a < 3.774403170083174e-182) {
tmp = y - ((z / t) * (y - x));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: t_1
real(8) :: tmp
t_1 = x + (((y - x) / 1.0d0) * ((z - t) / (a - t)))
if (a < (-1.6153062845442575d-142)) then
tmp = t_1
else if (a < 3.774403170083174d-182) then
tmp = y - ((z / t) * (y - x))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - x) / 1.0) * ((z - t) / (a - t)));
double tmp;
if (a < -1.6153062845442575e-142) {
tmp = t_1;
} else if (a < 3.774403170083174e-182) {
tmp = y - ((z / t) * (y - x));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = x + (((y - x) / 1.0) * ((z - t) / (a - t))) tmp = 0 if a < -1.6153062845442575e-142: tmp = t_1 elif a < 3.774403170083174e-182: tmp = y - ((z / t) * (y - x)) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(x + Float64(Float64(Float64(y - x) / 1.0) * Float64(Float64(z - t) / Float64(a - t)))) tmp = 0.0 if (a < -1.6153062845442575e-142) tmp = t_1; elseif (a < 3.774403170083174e-182) tmp = Float64(y - Float64(Float64(z / t) * Float64(y - x))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = x + (((y - x) / 1.0) * ((z - t) / (a - t))); tmp = 0.0; if (a < -1.6153062845442575e-142) tmp = t_1; elseif (a < 3.774403170083174e-182) tmp = y - ((z / t) * (y - x)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(N[(N[(y - x), $MachinePrecision] / 1.0), $MachinePrecision] * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Less[a, -1.6153062845442575e-142], t$95$1, If[Less[a, 3.774403170083174e-182], N[(y - N[(N[(z / t), $MachinePrecision] * N[(y - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{y - x}{1} \cdot \frac{z - t}{a - t}\\
\mathbf{if}\;a < -1.6153062845442575 \cdot 10^{-142}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;a < 3.774403170083174 \cdot 10^{-182}:\\
\;\;\;\;y - \frac{z}{t} \cdot \left(y - x\right)\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
herbie shell --seed 2023310
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.Axis.Types:linMap from Chart-1.5.3"
:precision binary64
:herbie-target
(if (< a -1.6153062845442575e-142) (+ x (* (/ (- y x) 1.0) (/ (- z t) (- a t)))) (if (< a 3.774403170083174e-182) (- y (* (/ z t) (- y x))) (+ x (* (/ (- y x) 1.0) (/ (- z t) (- a t))))))
(+ x (/ (* (- y x) (- z t)) (- a t))))