
(FPCore (x y z t a b)
:precision binary64
(+
x
(/
(*
y
(+ (* (+ (* (+ (* (+ (* z 3.13060547623) 11.1667541262) z) t) z) a) z) b))
(+
(* (+ (* (+ (* (+ z 15.234687407) z) 31.4690115749) z) 11.9400905721) z)
0.607771387771))))
double code(double x, double y, double z, double t, double a, double b) {
return x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771));
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
code = x + ((y * ((((((((z * 3.13060547623d0) + 11.1667541262d0) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407d0) * z) + 31.4690115749d0) * z) + 11.9400905721d0) * z) + 0.607771387771d0))
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771));
}
def code(x, y, z, t, a, b): return x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771))
function code(x, y, z, t, a, b) return Float64(x + Float64(Float64(y * Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771))) end
function tmp = code(x, y, z, t, a, b) tmp = x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771)); end
code[x_, y_, z_, t_, a_, b_] := N[(x + N[(N[(y * N[(N[(N[(N[(N[(N[(N[(N[(z * 3.13060547623), $MachinePrecision] + 11.1667541262), $MachinePrecision] * z), $MachinePrecision] + t), $MachinePrecision] * z), $MachinePrecision] + a), $MachinePrecision] * z), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(z + 15.234687407), $MachinePrecision] * z), $MachinePrecision] + 31.4690115749), $MachinePrecision] * z), $MachinePrecision] + 11.9400905721), $MachinePrecision] * z), $MachinePrecision] + 0.607771387771), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 13 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b)
:precision binary64
(+
x
(/
(*
y
(+ (* (+ (* (+ (* (+ (* z 3.13060547623) 11.1667541262) z) t) z) a) z) b))
(+
(* (+ (* (+ (* (+ z 15.234687407) z) 31.4690115749) z) 11.9400905721) z)
0.607771387771))))
double code(double x, double y, double z, double t, double a, double b) {
return x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771));
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
code = x + ((y * ((((((((z * 3.13060547623d0) + 11.1667541262d0) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407d0) * z) + 31.4690115749d0) * z) + 11.9400905721d0) * z) + 0.607771387771d0))
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771));
}
def code(x, y, z, t, a, b): return x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771))
function code(x, y, z, t, a, b) return Float64(x + Float64(Float64(y * Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771))) end
function tmp = code(x, y, z, t, a, b) tmp = x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771)); end
code[x_, y_, z_, t_, a_, b_] := N[(x + N[(N[(y * N[(N[(N[(N[(N[(N[(N[(N[(z * 3.13060547623), $MachinePrecision] + 11.1667541262), $MachinePrecision] * z), $MachinePrecision] + t), $MachinePrecision] * z), $MachinePrecision] + a), $MachinePrecision] * z), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(z + 15.234687407), $MachinePrecision] * z), $MachinePrecision] + 31.4690115749), $MachinePrecision] * z), $MachinePrecision] + 11.9400905721), $MachinePrecision] * z), $MachinePrecision] + 0.607771387771), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771}
\end{array}
(FPCore (x y z t a b)
:precision binary64
(if (or (<= z -4.8e+52) (not (<= z 4e+40)))
(+
x
(-
(-
(fma y 3.13060547623 (/ y (/ (* z z) t)))
(/ (* y 36.52704169880642) z))
(fma
98.5170599679272
(/ y (* z z))
(/ (* (* y 36.52704169880642) -15.234687407) (* z z)))))
(+
x
(/
y
(/
(fma
(fma (fma (+ z 15.234687407) z 31.4690115749) z 11.9400905721)
z
0.607771387771)
(fma (fma (fma (fma z 3.13060547623 11.1667541262) z t) z a) z b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -4.8e+52) || !(z <= 4e+40)) {
tmp = x + ((fma(y, 3.13060547623, (y / ((z * z) / t))) - ((y * 36.52704169880642) / z)) - fma(98.5170599679272, (y / (z * z)), (((y * 36.52704169880642) * -15.234687407) / (z * z))));
} else {
tmp = x + (y / (fma(fma(fma((z + 15.234687407), z, 31.4690115749), z, 11.9400905721), z, 0.607771387771) / fma(fma(fma(fma(z, 3.13060547623, 11.1667541262), z, t), z, a), z, b)));
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -4.8e+52) || !(z <= 4e+40)) tmp = Float64(x + Float64(Float64(fma(y, 3.13060547623, Float64(y / Float64(Float64(z * z) / t))) - Float64(Float64(y * 36.52704169880642) / z)) - fma(98.5170599679272, Float64(y / Float64(z * z)), Float64(Float64(Float64(y * 36.52704169880642) * -15.234687407) / Float64(z * z))))); else tmp = Float64(x + Float64(y / Float64(fma(fma(fma(Float64(z + 15.234687407), z, 31.4690115749), z, 11.9400905721), z, 0.607771387771) / fma(fma(fma(fma(z, 3.13060547623, 11.1667541262), z, t), z, a), z, b)))); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -4.8e+52], N[Not[LessEqual[z, 4e+40]], $MachinePrecision]], N[(x + N[(N[(N[(y * 3.13060547623 + N[(y / N[(N[(z * z), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(y * 36.52704169880642), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision] - N[(98.5170599679272 * N[(y / N[(z * z), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(y * 36.52704169880642), $MachinePrecision] * -15.234687407), $MachinePrecision] / N[(z * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(y / N[(N[(N[(N[(N[(z + 15.234687407), $MachinePrecision] * z + 31.4690115749), $MachinePrecision] * z + 11.9400905721), $MachinePrecision] * z + 0.607771387771), $MachinePrecision] / N[(N[(N[(N[(z * 3.13060547623 + 11.1667541262), $MachinePrecision] * z + t), $MachinePrecision] * z + a), $MachinePrecision] * z + b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -4.8 \cdot 10^{+52} \lor \neg \left(z \leq 4 \cdot 10^{+40}\right):\\
\;\;\;\;x + \left(\left(\mathsf{fma}\left(y, 3.13060547623, \frac{y}{\frac{z \cdot z}{t}}\right) - \frac{y \cdot 36.52704169880642}{z}\right) - \mathsf{fma}\left(98.5170599679272, \frac{y}{z \cdot z}, \frac{\left(y \cdot 36.52704169880642\right) \cdot -15.234687407}{z \cdot z}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z + 15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z, 3.13060547623, 11.1667541262\right), z, t\right), z, a\right), z, b\right)}}\\
\end{array}
\end{array}
if z < -4.8e52 or 4.00000000000000012e40 < z Initial program 1.4%
associate-*l/4.8%
*-commutative4.8%
fma-def4.8%
*-commutative4.8%
fma-def4.8%
*-commutative4.8%
fma-def4.8%
*-commutative4.8%
fma-def4.8%
Simplified4.8%
Taylor expanded in z around -inf 94.0%
+-commutative94.0%
mul-1-neg94.0%
unsub-neg94.0%
+-commutative94.0%
*-commutative94.0%
fma-def94.0%
associate-/l*99.4%
unpow299.4%
distribute-rgt-out--99.4%
metadata-eval99.4%
+-commutative99.4%
fma-def99.4%
Simplified99.4%
if -4.8e52 < z < 4.00000000000000012e40Initial program 97.9%
associate-/l*99.1%
fma-def99.1%
fma-def99.1%
fma-def99.1%
fma-def99.1%
fma-def99.1%
fma-def99.1%
fma-def99.1%
Simplified99.1%
Final simplification99.2%
(FPCore (x y z t a b)
:precision binary64
(if (or (<= z -8.2e+18) (not (<= z 3e+49)))
(+
x
(-
(-
(fma y 3.13060547623 (/ y (/ (* z z) t)))
(/ (* y 36.52704169880642) z))
(fma
98.5170599679272
(/ y (* z z))
(/ (* (* y 36.52704169880642) -15.234687407) (* z z)))))
(+
x
(*
(/
y
(+
0.607771387771
(*
z
(+ 11.9400905721 (* z (+ 31.4690115749 (* z (+ z 15.234687407))))))))
(fma z (fma z (fma z (fma z 3.13060547623 11.1667541262) t) a) b)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -8.2e+18) || !(z <= 3e+49)) {
tmp = x + ((fma(y, 3.13060547623, (y / ((z * z) / t))) - ((y * 36.52704169880642) / z)) - fma(98.5170599679272, (y / (z * z)), (((y * 36.52704169880642) * -15.234687407) / (z * z))));
} else {
tmp = x + ((y / (0.607771387771 + (z * (11.9400905721 + (z * (31.4690115749 + (z * (z + 15.234687407)))))))) * fma(z, fma(z, fma(z, fma(z, 3.13060547623, 11.1667541262), t), a), b));
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -8.2e+18) || !(z <= 3e+49)) tmp = Float64(x + Float64(Float64(fma(y, 3.13060547623, Float64(y / Float64(Float64(z * z) / t))) - Float64(Float64(y * 36.52704169880642) / z)) - fma(98.5170599679272, Float64(y / Float64(z * z)), Float64(Float64(Float64(y * 36.52704169880642) * -15.234687407) / Float64(z * z))))); else tmp = Float64(x + Float64(Float64(y / Float64(0.607771387771 + Float64(z * Float64(11.9400905721 + Float64(z * Float64(31.4690115749 + Float64(z * Float64(z + 15.234687407)))))))) * fma(z, fma(z, fma(z, fma(z, 3.13060547623, 11.1667541262), t), a), b))); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -8.2e+18], N[Not[LessEqual[z, 3e+49]], $MachinePrecision]], N[(x + N[(N[(N[(y * 3.13060547623 + N[(y / N[(N[(z * z), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(y * 36.52704169880642), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision] - N[(98.5170599679272 * N[(y / N[(z * z), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(y * 36.52704169880642), $MachinePrecision] * -15.234687407), $MachinePrecision] / N[(z * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(y / N[(0.607771387771 + N[(z * N[(11.9400905721 + N[(z * N[(31.4690115749 + N[(z * N[(z + 15.234687407), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(z * N[(z * N[(z * N[(z * 3.13060547623 + 11.1667541262), $MachinePrecision] + t), $MachinePrecision] + a), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -8.2 \cdot 10^{+18} \lor \neg \left(z \leq 3 \cdot 10^{+49}\right):\\
\;\;\;\;x + \left(\left(\mathsf{fma}\left(y, 3.13060547623, \frac{y}{\frac{z \cdot z}{t}}\right) - \frac{y \cdot 36.52704169880642}{z}\right) - \mathsf{fma}\left(98.5170599679272, \frac{y}{z \cdot z}, \frac{\left(y \cdot 36.52704169880642\right) \cdot -15.234687407}{z \cdot z}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y}{0.607771387771 + z \cdot \left(11.9400905721 + z \cdot \left(31.4690115749 + z \cdot \left(z + 15.234687407\right)\right)\right)} \cdot \mathsf{fma}\left(z, \mathsf{fma}\left(z, \mathsf{fma}\left(z, \mathsf{fma}\left(z, 3.13060547623, 11.1667541262\right), t\right), a\right), b\right)\\
\end{array}
\end{array}
if z < -8.2e18 or 3.0000000000000002e49 < z Initial program 3.1%
associate-*l/3.1%
*-commutative3.1%
fma-def3.1%
*-commutative3.1%
fma-def3.1%
*-commutative3.1%
fma-def3.1%
*-commutative3.1%
fma-def3.1%
Simplified3.1%
Taylor expanded in z around -inf 93.1%
+-commutative93.1%
mul-1-neg93.1%
unsub-neg93.1%
+-commutative93.1%
*-commutative93.1%
fma-def93.1%
associate-/l*98.5%
unpow298.5%
distribute-rgt-out--98.5%
metadata-eval98.5%
+-commutative98.5%
fma-def98.5%
Simplified98.5%
if -8.2e18 < z < 3.0000000000000002e49Initial program 96.0%
associate-*l/99.1%
*-commutative99.1%
fma-def99.1%
*-commutative99.1%
fma-def99.1%
*-commutative99.1%
fma-def99.1%
*-commutative99.1%
fma-def99.1%
Simplified99.2%
Taylor expanded in y around 0 99.2%
Final simplification98.9%
(FPCore (x y z t a b)
:precision binary64
(if (or (<= z -1.9e+43) (not (<= z 4.9e+14)))
(+
x
(-
(-
(fma y 3.13060547623 (/ y (/ (* z z) t)))
(/ (* y 36.52704169880642) z))
(fma
98.5170599679272
(/ y (* z z))
(/ (* (* y 36.52704169880642) -15.234687407) (* z z)))))
(+
x
(/
(*
y
(+
b
(* z (+ a (* z (+ t (* z (+ 11.1667541262 (* z 3.13060547623)))))))))
(+
0.607771387771
(*
z
(+ 11.9400905721 (* z (+ 31.4690115749 (* z (+ z 15.234687407)))))))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -1.9e+43) || !(z <= 4.9e+14)) {
tmp = x + ((fma(y, 3.13060547623, (y / ((z * z) / t))) - ((y * 36.52704169880642) / z)) - fma(98.5170599679272, (y / (z * z)), (((y * 36.52704169880642) * -15.234687407) / (z * z))));
} else {
tmp = x + ((y * (b + (z * (a + (z * (t + (z * (11.1667541262 + (z * 3.13060547623))))))))) / (0.607771387771 + (z * (11.9400905721 + (z * (31.4690115749 + (z * (z + 15.234687407))))))));
}
return tmp;
}
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -1.9e+43) || !(z <= 4.9e+14)) tmp = Float64(x + Float64(Float64(fma(y, 3.13060547623, Float64(y / Float64(Float64(z * z) / t))) - Float64(Float64(y * 36.52704169880642) / z)) - fma(98.5170599679272, Float64(y / Float64(z * z)), Float64(Float64(Float64(y * 36.52704169880642) * -15.234687407) / Float64(z * z))))); else tmp = Float64(x + Float64(Float64(y * Float64(b + Float64(z * Float64(a + Float64(z * Float64(t + Float64(z * Float64(11.1667541262 + Float64(z * 3.13060547623))))))))) / Float64(0.607771387771 + Float64(z * Float64(11.9400905721 + Float64(z * Float64(31.4690115749 + Float64(z * Float64(z + 15.234687407))))))))); end return tmp end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -1.9e+43], N[Not[LessEqual[z, 4.9e+14]], $MachinePrecision]], N[(x + N[(N[(N[(y * 3.13060547623 + N[(y / N[(N[(z * z), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(y * 36.52704169880642), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision] - N[(98.5170599679272 * N[(y / N[(z * z), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(y * 36.52704169880642), $MachinePrecision] * -15.234687407), $MachinePrecision] / N[(z * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(y * N[(b + N[(z * N[(a + N[(z * N[(t + N[(z * N[(11.1667541262 + N[(z * 3.13060547623), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(0.607771387771 + N[(z * N[(11.9400905721 + N[(z * N[(31.4690115749 + N[(z * N[(z + 15.234687407), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1.9 \cdot 10^{+43} \lor \neg \left(z \leq 4.9 \cdot 10^{+14}\right):\\
\;\;\;\;x + \left(\left(\mathsf{fma}\left(y, 3.13060547623, \frac{y}{\frac{z \cdot z}{t}}\right) - \frac{y \cdot 36.52704169880642}{z}\right) - \mathsf{fma}\left(98.5170599679272, \frac{y}{z \cdot z}, \frac{\left(y \cdot 36.52704169880642\right) \cdot -15.234687407}{z \cdot z}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y \cdot \left(b + z \cdot \left(a + z \cdot \left(t + z \cdot \left(11.1667541262 + z \cdot 3.13060547623\right)\right)\right)\right)}{0.607771387771 + z \cdot \left(11.9400905721 + z \cdot \left(31.4690115749 + z \cdot \left(z + 15.234687407\right)\right)\right)}\\
\end{array}
\end{array}
if z < -1.90000000000000004e43 or 4.9e14 < z Initial program 4.1%
associate-*l/9.0%
*-commutative9.0%
fma-def9.0%
*-commutative9.0%
fma-def9.0%
*-commutative9.0%
fma-def9.0%
*-commutative9.0%
fma-def9.0%
Simplified9.0%
Taylor expanded in z around -inf 93.4%
+-commutative93.4%
mul-1-neg93.4%
unsub-neg93.4%
+-commutative93.4%
*-commutative93.4%
fma-def93.4%
associate-/l*98.6%
unpow298.6%
distribute-rgt-out--98.6%
metadata-eval98.6%
+-commutative98.6%
fma-def98.6%
Simplified98.6%
if -1.90000000000000004e43 < z < 4.9e14Initial program 99.1%
Final simplification98.9%
(FPCore (x y z t a b)
:precision binary64
(if (or (<= z -8.4e+46) (not (<= z 2.6e+34)))
(+ x (* y 3.13060547623))
(+
x
(/
(*
y
(+
b
(* z (+ a (* z (+ t (* z (+ 11.1667541262 (* z 3.13060547623)))))))))
(+
0.607771387771
(*
z
(+ 11.9400905721 (* z (+ 31.4690115749 (* z (+ z 15.234687407)))))))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -8.4e+46) || !(z <= 2.6e+34)) {
tmp = x + (y * 3.13060547623);
} else {
tmp = x + ((y * (b + (z * (a + (z * (t + (z * (11.1667541262 + (z * 3.13060547623))))))))) / (0.607771387771 + (z * (11.9400905721 + (z * (31.4690115749 + (z * (z + 15.234687407))))))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((z <= (-8.4d+46)) .or. (.not. (z <= 2.6d+34))) then
tmp = x + (y * 3.13060547623d0)
else
tmp = x + ((y * (b + (z * (a + (z * (t + (z * (11.1667541262d0 + (z * 3.13060547623d0))))))))) / (0.607771387771d0 + (z * (11.9400905721d0 + (z * (31.4690115749d0 + (z * (z + 15.234687407d0))))))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -8.4e+46) || !(z <= 2.6e+34)) {
tmp = x + (y * 3.13060547623);
} else {
tmp = x + ((y * (b + (z * (a + (z * (t + (z * (11.1667541262 + (z * 3.13060547623))))))))) / (0.607771387771 + (z * (11.9400905721 + (z * (31.4690115749 + (z * (z + 15.234687407))))))));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -8.4e+46) or not (z <= 2.6e+34): tmp = x + (y * 3.13060547623) else: tmp = x + ((y * (b + (z * (a + (z * (t + (z * (11.1667541262 + (z * 3.13060547623))))))))) / (0.607771387771 + (z * (11.9400905721 + (z * (31.4690115749 + (z * (z + 15.234687407)))))))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -8.4e+46) || !(z <= 2.6e+34)) tmp = Float64(x + Float64(y * 3.13060547623)); else tmp = Float64(x + Float64(Float64(y * Float64(b + Float64(z * Float64(a + Float64(z * Float64(t + Float64(z * Float64(11.1667541262 + Float64(z * 3.13060547623))))))))) / Float64(0.607771387771 + Float64(z * Float64(11.9400905721 + Float64(z * Float64(31.4690115749 + Float64(z * Float64(z + 15.234687407))))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -8.4e+46) || ~((z <= 2.6e+34))) tmp = x + (y * 3.13060547623); else tmp = x + ((y * (b + (z * (a + (z * (t + (z * (11.1667541262 + (z * 3.13060547623))))))))) / (0.607771387771 + (z * (11.9400905721 + (z * (31.4690115749 + (z * (z + 15.234687407)))))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -8.4e+46], N[Not[LessEqual[z, 2.6e+34]], $MachinePrecision]], N[(x + N[(y * 3.13060547623), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(y * N[(b + N[(z * N[(a + N[(z * N[(t + N[(z * N[(11.1667541262 + N[(z * 3.13060547623), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(0.607771387771 + N[(z * N[(11.9400905721 + N[(z * N[(31.4690115749 + N[(z * N[(z + 15.234687407), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -8.4 \cdot 10^{+46} \lor \neg \left(z \leq 2.6 \cdot 10^{+34}\right):\\
\;\;\;\;x + y \cdot 3.13060547623\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y \cdot \left(b + z \cdot \left(a + z \cdot \left(t + z \cdot \left(11.1667541262 + z \cdot 3.13060547623\right)\right)\right)\right)}{0.607771387771 + z \cdot \left(11.9400905721 + z \cdot \left(31.4690115749 + z \cdot \left(z + 15.234687407\right)\right)\right)}\\
\end{array}
\end{array}
if z < -8.4e46 or 2.59999999999999997e34 < z Initial program 1.4%
associate-*l/4.8%
*-commutative4.8%
fma-def4.8%
*-commutative4.8%
fma-def4.8%
*-commutative4.8%
fma-def4.8%
*-commutative4.8%
fma-def4.8%
Simplified4.8%
Taylor expanded in z around inf 96.4%
*-commutative96.4%
Simplified96.4%
if -8.4e46 < z < 2.59999999999999997e34Initial program 97.9%
Final simplification97.3%
(FPCore (x y z t a b)
:precision binary64
(if (<= z -0.42)
(+ x (/ y (+ 0.31942702700572795 (/ 3.7269864963038164 z))))
(if (<= z 4e+14)
(+
x
(/
(*
y
(+
b
(* z (+ a (* z (+ t (* z (+ 11.1667541262 (* z 3.13060547623)))))))))
(+ 0.607771387771 (* z 11.9400905721))))
(- x (* y (+ (* 36.52704169880642 (/ 1.0 z)) -3.13060547623))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -0.42) {
tmp = x + (y / (0.31942702700572795 + (3.7269864963038164 / z)));
} else if (z <= 4e+14) {
tmp = x + ((y * (b + (z * (a + (z * (t + (z * (11.1667541262 + (z * 3.13060547623))))))))) / (0.607771387771 + (z * 11.9400905721)));
} else {
tmp = x - (y * ((36.52704169880642 * (1.0 / z)) + -3.13060547623));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (z <= (-0.42d0)) then
tmp = x + (y / (0.31942702700572795d0 + (3.7269864963038164d0 / z)))
else if (z <= 4d+14) then
tmp = x + ((y * (b + (z * (a + (z * (t + (z * (11.1667541262d0 + (z * 3.13060547623d0))))))))) / (0.607771387771d0 + (z * 11.9400905721d0)))
else
tmp = x - (y * ((36.52704169880642d0 * (1.0d0 / z)) + (-3.13060547623d0)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -0.42) {
tmp = x + (y / (0.31942702700572795 + (3.7269864963038164 / z)));
} else if (z <= 4e+14) {
tmp = x + ((y * (b + (z * (a + (z * (t + (z * (11.1667541262 + (z * 3.13060547623))))))))) / (0.607771387771 + (z * 11.9400905721)));
} else {
tmp = x - (y * ((36.52704169880642 * (1.0 / z)) + -3.13060547623));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if z <= -0.42: tmp = x + (y / (0.31942702700572795 + (3.7269864963038164 / z))) elif z <= 4e+14: tmp = x + ((y * (b + (z * (a + (z * (t + (z * (11.1667541262 + (z * 3.13060547623))))))))) / (0.607771387771 + (z * 11.9400905721))) else: tmp = x - (y * ((36.52704169880642 * (1.0 / z)) + -3.13060547623)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (z <= -0.42) tmp = Float64(x + Float64(y / Float64(0.31942702700572795 + Float64(3.7269864963038164 / z)))); elseif (z <= 4e+14) tmp = Float64(x + Float64(Float64(y * Float64(b + Float64(z * Float64(a + Float64(z * Float64(t + Float64(z * Float64(11.1667541262 + Float64(z * 3.13060547623))))))))) / Float64(0.607771387771 + Float64(z * 11.9400905721)))); else tmp = Float64(x - Float64(y * Float64(Float64(36.52704169880642 * Float64(1.0 / z)) + -3.13060547623))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (z <= -0.42) tmp = x + (y / (0.31942702700572795 + (3.7269864963038164 / z))); elseif (z <= 4e+14) tmp = x + ((y * (b + (z * (a + (z * (t + (z * (11.1667541262 + (z * 3.13060547623))))))))) / (0.607771387771 + (z * 11.9400905721))); else tmp = x - (y * ((36.52704169880642 * (1.0 / z)) + -3.13060547623)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -0.42], N[(x + N[(y / N[(0.31942702700572795 + N[(3.7269864963038164 / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 4e+14], N[(x + N[(N[(y * N[(b + N[(z * N[(a + N[(z * N[(t + N[(z * N[(11.1667541262 + N[(z * 3.13060547623), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(0.607771387771 + N[(z * 11.9400905721), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x - N[(y * N[(N[(36.52704169880642 * N[(1.0 / z), $MachinePrecision]), $MachinePrecision] + -3.13060547623), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -0.42:\\
\;\;\;\;x + \frac{y}{0.31942702700572795 + \frac{3.7269864963038164}{z}}\\
\mathbf{elif}\;z \leq 4 \cdot 10^{+14}:\\
\;\;\;\;x + \frac{y \cdot \left(b + z \cdot \left(a + z \cdot \left(t + z \cdot \left(11.1667541262 + z \cdot 3.13060547623\right)\right)\right)\right)}{0.607771387771 + z \cdot 11.9400905721}\\
\mathbf{else}:\\
\;\;\;\;x - y \cdot \left(36.52704169880642 \cdot \frac{1}{z} + -3.13060547623\right)\\
\end{array}
\end{array}
if z < -0.419999999999999984Initial program 10.2%
associate-/l*12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
Simplified12.0%
Taylor expanded in z around inf 94.3%
associate-*r/94.3%
metadata-eval94.3%
Simplified94.3%
if -0.419999999999999984 < z < 4e14Initial program 99.1%
Taylor expanded in z around 0 98.0%
*-commutative90.3%
Simplified98.0%
if 4e14 < z Initial program 5.3%
associate-*l/13.5%
*-commutative13.5%
fma-def13.5%
*-commutative13.5%
fma-def13.5%
*-commutative13.5%
fma-def13.5%
*-commutative13.5%
fma-def13.5%
Simplified13.5%
Taylor expanded in z around inf 92.7%
Taylor expanded in y around -inf 92.7%
mul-1-neg92.7%
*-commutative92.7%
distribute-rgt-neg-in92.7%
associate--r+92.7%
sub-neg92.7%
distribute-rgt-out--92.7%
metadata-eval92.7%
metadata-eval92.7%
Simplified92.7%
Final simplification95.9%
(FPCore (x y z t a b)
:precision binary64
(if (or (<= z -7.8e+48) (not (<= z 1.26e+33)))
(+ x (* y 3.13060547623))
(+
x
(/
(* y (+ b (* z a)))
(+
0.607771387771
(*
z
(+ 11.9400905721 (* z (+ 31.4690115749 (* z (+ z 15.234687407)))))))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -7.8e+48) || !(z <= 1.26e+33)) {
tmp = x + (y * 3.13060547623);
} else {
tmp = x + ((y * (b + (z * a))) / (0.607771387771 + (z * (11.9400905721 + (z * (31.4690115749 + (z * (z + 15.234687407))))))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((z <= (-7.8d+48)) .or. (.not. (z <= 1.26d+33))) then
tmp = x + (y * 3.13060547623d0)
else
tmp = x + ((y * (b + (z * a))) / (0.607771387771d0 + (z * (11.9400905721d0 + (z * (31.4690115749d0 + (z * (z + 15.234687407d0))))))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -7.8e+48) || !(z <= 1.26e+33)) {
tmp = x + (y * 3.13060547623);
} else {
tmp = x + ((y * (b + (z * a))) / (0.607771387771 + (z * (11.9400905721 + (z * (31.4690115749 + (z * (z + 15.234687407))))))));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -7.8e+48) or not (z <= 1.26e+33): tmp = x + (y * 3.13060547623) else: tmp = x + ((y * (b + (z * a))) / (0.607771387771 + (z * (11.9400905721 + (z * (31.4690115749 + (z * (z + 15.234687407)))))))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -7.8e+48) || !(z <= 1.26e+33)) tmp = Float64(x + Float64(y * 3.13060547623)); else tmp = Float64(x + Float64(Float64(y * Float64(b + Float64(z * a))) / Float64(0.607771387771 + Float64(z * Float64(11.9400905721 + Float64(z * Float64(31.4690115749 + Float64(z * Float64(z + 15.234687407))))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -7.8e+48) || ~((z <= 1.26e+33))) tmp = x + (y * 3.13060547623); else tmp = x + ((y * (b + (z * a))) / (0.607771387771 + (z * (11.9400905721 + (z * (31.4690115749 + (z * (z + 15.234687407)))))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -7.8e+48], N[Not[LessEqual[z, 1.26e+33]], $MachinePrecision]], N[(x + N[(y * 3.13060547623), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(y * N[(b + N[(z * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(0.607771387771 + N[(z * N[(11.9400905721 + N[(z * N[(31.4690115749 + N[(z * N[(z + 15.234687407), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -7.8 \cdot 10^{+48} \lor \neg \left(z \leq 1.26 \cdot 10^{+33}\right):\\
\;\;\;\;x + y \cdot 3.13060547623\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y \cdot \left(b + z \cdot a\right)}{0.607771387771 + z \cdot \left(11.9400905721 + z \cdot \left(31.4690115749 + z \cdot \left(z + 15.234687407\right)\right)\right)}\\
\end{array}
\end{array}
if z < -7.8000000000000002e48 or 1.26e33 < z Initial program 1.4%
associate-*l/4.8%
*-commutative4.8%
fma-def4.8%
*-commutative4.8%
fma-def4.8%
*-commutative4.8%
fma-def4.8%
*-commutative4.8%
fma-def4.8%
Simplified4.8%
Taylor expanded in z around inf 96.4%
*-commutative96.4%
Simplified96.4%
if -7.8000000000000002e48 < z < 1.26e33Initial program 97.9%
Taylor expanded in z around 0 90.6%
associate-*r*84.8%
*-commutative84.8%
associate-*r*91.3%
distribute-lft-out92.6%
*-commutative92.6%
Simplified92.6%
Final simplification94.2%
(FPCore (x y z t a b)
:precision binary64
(if (<= z -13.0)
(+ x (* y 3.13060547623))
(if (<= z 34000000000000.0)
(+ x (/ (+ (* y b) (* a (* z y))) (+ 0.607771387771 (* z 11.9400905721))))
(- x (* y (+ (* 36.52704169880642 (/ 1.0 z)) -3.13060547623))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -13.0) {
tmp = x + (y * 3.13060547623);
} else if (z <= 34000000000000.0) {
tmp = x + (((y * b) + (a * (z * y))) / (0.607771387771 + (z * 11.9400905721)));
} else {
tmp = x - (y * ((36.52704169880642 * (1.0 / z)) + -3.13060547623));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (z <= (-13.0d0)) then
tmp = x + (y * 3.13060547623d0)
else if (z <= 34000000000000.0d0) then
tmp = x + (((y * b) + (a * (z * y))) / (0.607771387771d0 + (z * 11.9400905721d0)))
else
tmp = x - (y * ((36.52704169880642d0 * (1.0d0 / z)) + (-3.13060547623d0)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -13.0) {
tmp = x + (y * 3.13060547623);
} else if (z <= 34000000000000.0) {
tmp = x + (((y * b) + (a * (z * y))) / (0.607771387771 + (z * 11.9400905721)));
} else {
tmp = x - (y * ((36.52704169880642 * (1.0 / z)) + -3.13060547623));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if z <= -13.0: tmp = x + (y * 3.13060547623) elif z <= 34000000000000.0: tmp = x + (((y * b) + (a * (z * y))) / (0.607771387771 + (z * 11.9400905721))) else: tmp = x - (y * ((36.52704169880642 * (1.0 / z)) + -3.13060547623)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (z <= -13.0) tmp = Float64(x + Float64(y * 3.13060547623)); elseif (z <= 34000000000000.0) tmp = Float64(x + Float64(Float64(Float64(y * b) + Float64(a * Float64(z * y))) / Float64(0.607771387771 + Float64(z * 11.9400905721)))); else tmp = Float64(x - Float64(y * Float64(Float64(36.52704169880642 * Float64(1.0 / z)) + -3.13060547623))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (z <= -13.0) tmp = x + (y * 3.13060547623); elseif (z <= 34000000000000.0) tmp = x + (((y * b) + (a * (z * y))) / (0.607771387771 + (z * 11.9400905721))); else tmp = x - (y * ((36.52704169880642 * (1.0 / z)) + -3.13060547623)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -13.0], N[(x + N[(y * 3.13060547623), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 34000000000000.0], N[(x + N[(N[(N[(y * b), $MachinePrecision] + N[(a * N[(z * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(0.607771387771 + N[(z * 11.9400905721), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x - N[(y * N[(N[(36.52704169880642 * N[(1.0 / z), $MachinePrecision]), $MachinePrecision] + -3.13060547623), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -13:\\
\;\;\;\;x + y \cdot 3.13060547623\\
\mathbf{elif}\;z \leq 34000000000000:\\
\;\;\;\;x + \frac{y \cdot b + a \cdot \left(z \cdot y\right)}{0.607771387771 + z \cdot 11.9400905721}\\
\mathbf{else}:\\
\;\;\;\;x - y \cdot \left(36.52704169880642 \cdot \frac{1}{z} + -3.13060547623\right)\\
\end{array}
\end{array}
if z < -13Initial program 8.3%
associate-*l/6.4%
*-commutative6.4%
fma-def6.4%
*-commutative6.4%
fma-def6.4%
*-commutative6.4%
fma-def6.4%
*-commutative6.4%
fma-def6.4%
Simplified6.4%
Taylor expanded in z around inf 96.2%
*-commutative96.2%
Simplified96.2%
if -13 < z < 3.4e13Initial program 99.1%
Taylor expanded in z around 0 91.4%
Taylor expanded in z around 0 89.7%
*-commutative89.7%
Simplified89.7%
if 3.4e13 < z Initial program 5.3%
associate-*l/13.5%
*-commutative13.5%
fma-def13.5%
*-commutative13.5%
fma-def13.5%
*-commutative13.5%
fma-def13.5%
*-commutative13.5%
fma-def13.5%
Simplified13.5%
Taylor expanded in z around inf 92.7%
Taylor expanded in y around -inf 92.7%
mul-1-neg92.7%
*-commutative92.7%
distribute-rgt-neg-in92.7%
associate--r+92.7%
sub-neg92.7%
distribute-rgt-out--92.7%
metadata-eval92.7%
metadata-eval92.7%
Simplified92.7%
Final simplification91.7%
(FPCore (x y z t a b)
:precision binary64
(if (<= z -0.75)
(+ x (/ y (+ 0.31942702700572795 (/ 3.7269864963038164 z))))
(if (<= z 9.5e+29)
(+
x
(/
(* y b)
(+ 0.607771387771 (* z (+ 11.9400905721 (* z 31.4690115749))))))
(+ x (* y 3.13060547623)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -0.75) {
tmp = x + (y / (0.31942702700572795 + (3.7269864963038164 / z)));
} else if (z <= 9.5e+29) {
tmp = x + ((y * b) / (0.607771387771 + (z * (11.9400905721 + (z * 31.4690115749)))));
} else {
tmp = x + (y * 3.13060547623);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (z <= (-0.75d0)) then
tmp = x + (y / (0.31942702700572795d0 + (3.7269864963038164d0 / z)))
else if (z <= 9.5d+29) then
tmp = x + ((y * b) / (0.607771387771d0 + (z * (11.9400905721d0 + (z * 31.4690115749d0)))))
else
tmp = x + (y * 3.13060547623d0)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -0.75) {
tmp = x + (y / (0.31942702700572795 + (3.7269864963038164 / z)));
} else if (z <= 9.5e+29) {
tmp = x + ((y * b) / (0.607771387771 + (z * (11.9400905721 + (z * 31.4690115749)))));
} else {
tmp = x + (y * 3.13060547623);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if z <= -0.75: tmp = x + (y / (0.31942702700572795 + (3.7269864963038164 / z))) elif z <= 9.5e+29: tmp = x + ((y * b) / (0.607771387771 + (z * (11.9400905721 + (z * 31.4690115749))))) else: tmp = x + (y * 3.13060547623) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (z <= -0.75) tmp = Float64(x + Float64(y / Float64(0.31942702700572795 + Float64(3.7269864963038164 / z)))); elseif (z <= 9.5e+29) tmp = Float64(x + Float64(Float64(y * b) / Float64(0.607771387771 + Float64(z * Float64(11.9400905721 + Float64(z * 31.4690115749)))))); else tmp = Float64(x + Float64(y * 3.13060547623)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (z <= -0.75) tmp = x + (y / (0.31942702700572795 + (3.7269864963038164 / z))); elseif (z <= 9.5e+29) tmp = x + ((y * b) / (0.607771387771 + (z * (11.9400905721 + (z * 31.4690115749))))); else tmp = x + (y * 3.13060547623); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -0.75], N[(x + N[(y / N[(0.31942702700572795 + N[(3.7269864963038164 / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 9.5e+29], N[(x + N[(N[(y * b), $MachinePrecision] / N[(0.607771387771 + N[(z * N[(11.9400905721 + N[(z * 31.4690115749), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(y * 3.13060547623), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -0.75:\\
\;\;\;\;x + \frac{y}{0.31942702700572795 + \frac{3.7269864963038164}{z}}\\
\mathbf{elif}\;z \leq 9.5 \cdot 10^{+29}:\\
\;\;\;\;x + \frac{y \cdot b}{0.607771387771 + z \cdot \left(11.9400905721 + z \cdot 31.4690115749\right)}\\
\mathbf{else}:\\
\;\;\;\;x + y \cdot 3.13060547623\\
\end{array}
\end{array}
if z < -0.75Initial program 10.2%
associate-/l*12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
Simplified12.0%
Taylor expanded in z around inf 94.3%
associate-*r/94.3%
metadata-eval94.3%
Simplified94.3%
if -0.75 < z < 9.5000000000000003e29Initial program 97.8%
Taylor expanded in z around 0 82.7%
Taylor expanded in z around 0 82.3%
*-commutative82.3%
Simplified82.3%
if 9.5000000000000003e29 < z Initial program 0.7%
associate-*l/6.6%
*-commutative6.6%
fma-def6.6%
*-commutative6.6%
fma-def6.6%
*-commutative6.6%
fma-def6.6%
*-commutative6.6%
fma-def6.6%
Simplified6.6%
Taylor expanded in z around inf 95.3%
*-commutative95.3%
Simplified95.3%
Final simplification87.9%
(FPCore (x y z t a b) :precision binary64 (if (or (<= z -0.75) (not (<= z 2.1e+39))) (+ x (* y 3.13060547623)) (+ x (* (* y b) 1.6453555072203998))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -0.75) || !(z <= 2.1e+39)) {
tmp = x + (y * 3.13060547623);
} else {
tmp = x + ((y * b) * 1.6453555072203998);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((z <= (-0.75d0)) .or. (.not. (z <= 2.1d+39))) then
tmp = x + (y * 3.13060547623d0)
else
tmp = x + ((y * b) * 1.6453555072203998d0)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((z <= -0.75) || !(z <= 2.1e+39)) {
tmp = x + (y * 3.13060547623);
} else {
tmp = x + ((y * b) * 1.6453555072203998);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (z <= -0.75) or not (z <= 2.1e+39): tmp = x + (y * 3.13060547623) else: tmp = x + ((y * b) * 1.6453555072203998) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((z <= -0.75) || !(z <= 2.1e+39)) tmp = Float64(x + Float64(y * 3.13060547623)); else tmp = Float64(x + Float64(Float64(y * b) * 1.6453555072203998)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((z <= -0.75) || ~((z <= 2.1e+39))) tmp = x + (y * 3.13060547623); else tmp = x + ((y * b) * 1.6453555072203998); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[z, -0.75], N[Not[LessEqual[z, 2.1e+39]], $MachinePrecision]], N[(x + N[(y * 3.13060547623), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(y * b), $MachinePrecision] * 1.6453555072203998), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -0.75 \lor \neg \left(z \leq 2.1 \cdot 10^{+39}\right):\\
\;\;\;\;x + y \cdot 3.13060547623\\
\mathbf{else}:\\
\;\;\;\;x + \left(y \cdot b\right) \cdot 1.6453555072203998\\
\end{array}
\end{array}
if z < -0.75 or 2.0999999999999999e39 < z Initial program 4.9%
associate-*l/7.4%
*-commutative7.4%
fma-def7.4%
*-commutative7.4%
fma-def7.4%
*-commutative7.4%
fma-def7.4%
*-commutative7.4%
fma-def7.4%
Simplified7.4%
Taylor expanded in z around inf 94.9%
*-commutative94.9%
Simplified94.9%
if -0.75 < z < 2.0999999999999999e39Initial program 97.8%
associate-*l/99.1%
*-commutative99.1%
fma-def99.1%
*-commutative99.1%
fma-def99.1%
*-commutative99.1%
fma-def99.1%
*-commutative99.1%
fma-def99.1%
Simplified99.1%
Taylor expanded in z around 0 82.2%
Final simplification87.8%
(FPCore (x y z t a b)
:precision binary64
(if (<= z -0.165)
(+ x (/ y (+ 0.31942702700572795 (/ 3.7269864963038164 z))))
(if (<= z 4.2e+28)
(+ x (* (* y b) 1.6453555072203998))
(+ x (* y 3.13060547623)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -0.165) {
tmp = x + (y / (0.31942702700572795 + (3.7269864963038164 / z)));
} else if (z <= 4.2e+28) {
tmp = x + ((y * b) * 1.6453555072203998);
} else {
tmp = x + (y * 3.13060547623);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (z <= (-0.165d0)) then
tmp = x + (y / (0.31942702700572795d0 + (3.7269864963038164d0 / z)))
else if (z <= 4.2d+28) then
tmp = x + ((y * b) * 1.6453555072203998d0)
else
tmp = x + (y * 3.13060547623d0)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (z <= -0.165) {
tmp = x + (y / (0.31942702700572795 + (3.7269864963038164 / z)));
} else if (z <= 4.2e+28) {
tmp = x + ((y * b) * 1.6453555072203998);
} else {
tmp = x + (y * 3.13060547623);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if z <= -0.165: tmp = x + (y / (0.31942702700572795 + (3.7269864963038164 / z))) elif z <= 4.2e+28: tmp = x + ((y * b) * 1.6453555072203998) else: tmp = x + (y * 3.13060547623) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (z <= -0.165) tmp = Float64(x + Float64(y / Float64(0.31942702700572795 + Float64(3.7269864963038164 / z)))); elseif (z <= 4.2e+28) tmp = Float64(x + Float64(Float64(y * b) * 1.6453555072203998)); else tmp = Float64(x + Float64(y * 3.13060547623)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (z <= -0.165) tmp = x + (y / (0.31942702700572795 + (3.7269864963038164 / z))); elseif (z <= 4.2e+28) tmp = x + ((y * b) * 1.6453555072203998); else tmp = x + (y * 3.13060547623); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -0.165], N[(x + N[(y / N[(0.31942702700572795 + N[(3.7269864963038164 / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 4.2e+28], N[(x + N[(N[(y * b), $MachinePrecision] * 1.6453555072203998), $MachinePrecision]), $MachinePrecision], N[(x + N[(y * 3.13060547623), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -0.165:\\
\;\;\;\;x + \frac{y}{0.31942702700572795 + \frac{3.7269864963038164}{z}}\\
\mathbf{elif}\;z \leq 4.2 \cdot 10^{+28}:\\
\;\;\;\;x + \left(y \cdot b\right) \cdot 1.6453555072203998\\
\mathbf{else}:\\
\;\;\;\;x + y \cdot 3.13060547623\\
\end{array}
\end{array}
if z < -0.165000000000000008Initial program 10.2%
associate-/l*12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
fma-def12.0%
Simplified12.0%
Taylor expanded in z around inf 94.3%
associate-*r/94.3%
metadata-eval94.3%
Simplified94.3%
if -0.165000000000000008 < z < 4.19999999999999978e28Initial program 97.8%
associate-*l/99.1%
*-commutative99.1%
fma-def99.1%
*-commutative99.1%
fma-def99.1%
*-commutative99.1%
fma-def99.1%
*-commutative99.1%
fma-def99.1%
Simplified99.1%
Taylor expanded in z around 0 82.2%
if 4.19999999999999978e28 < z Initial program 0.7%
associate-*l/6.6%
*-commutative6.6%
fma-def6.6%
*-commutative6.6%
fma-def6.6%
*-commutative6.6%
fma-def6.6%
*-commutative6.6%
fma-def6.6%
Simplified6.6%
Taylor expanded in z around inf 95.3%
*-commutative95.3%
Simplified95.3%
Final simplification87.8%
(FPCore (x y z t a b) :precision binary64 (if (<= y -7.2e+112) (* y 3.13060547623) (if (<= y 2.1e+175) x (* y 3.13060547623))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -7.2e+112) {
tmp = y * 3.13060547623;
} else if (y <= 2.1e+175) {
tmp = x;
} else {
tmp = y * 3.13060547623;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (y <= (-7.2d+112)) then
tmp = y * 3.13060547623d0
else if (y <= 2.1d+175) then
tmp = x
else
tmp = y * 3.13060547623d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -7.2e+112) {
tmp = y * 3.13060547623;
} else if (y <= 2.1e+175) {
tmp = x;
} else {
tmp = y * 3.13060547623;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -7.2e+112: tmp = y * 3.13060547623 elif y <= 2.1e+175: tmp = x else: tmp = y * 3.13060547623 return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -7.2e+112) tmp = Float64(y * 3.13060547623); elseif (y <= 2.1e+175) tmp = x; else tmp = Float64(y * 3.13060547623); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -7.2e+112) tmp = y * 3.13060547623; elseif (y <= 2.1e+175) tmp = x; else tmp = y * 3.13060547623; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -7.2e+112], N[(y * 3.13060547623), $MachinePrecision], If[LessEqual[y, 2.1e+175], x, N[(y * 3.13060547623), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -7.2 \cdot 10^{+112}:\\
\;\;\;\;y \cdot 3.13060547623\\
\mathbf{elif}\;y \leq 2.1 \cdot 10^{+175}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;y \cdot 3.13060547623\\
\end{array}
\end{array}
if y < -7.20000000000000001e112 or 2.0999999999999999e175 < y Initial program 69.0%
associate-*l/75.8%
*-commutative75.8%
fma-def75.8%
*-commutative75.8%
fma-def75.8%
*-commutative75.8%
fma-def75.8%
*-commutative75.8%
fma-def75.9%
Simplified75.9%
Taylor expanded in z around inf 37.7%
*-commutative37.7%
Simplified37.7%
flip-+20.1%
Applied egg-rr20.1%
swap-sqr20.1%
metadata-eval20.1%
Simplified20.1%
Taylor expanded in x around 0 33.3%
*-commutative33.3%
Simplified33.3%
if -7.20000000000000001e112 < y < 2.0999999999999999e175Initial program 52.5%
associate-*l/52.5%
*-commutative52.5%
fma-def52.5%
*-commutative52.5%
fma-def52.5%
*-commutative52.5%
fma-def52.5%
*-commutative52.5%
fma-def52.5%
Simplified52.5%
Taylor expanded in z around inf 70.8%
*-commutative70.8%
Simplified70.8%
Taylor expanded in x around inf 62.6%
Final simplification54.9%
(FPCore (x y z t a b) :precision binary64 (+ x (* y 3.13060547623)))
double code(double x, double y, double z, double t, double a, double b) {
return x + (y * 3.13060547623);
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
code = x + (y * 3.13060547623d0)
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return x + (y * 3.13060547623);
}
def code(x, y, z, t, a, b): return x + (y * 3.13060547623)
function code(x, y, z, t, a, b) return Float64(x + Float64(y * 3.13060547623)) end
function tmp = code(x, y, z, t, a, b) tmp = x + (y * 3.13060547623); end
code[x_, y_, z_, t_, a_, b_] := N[(x + N[(y * 3.13060547623), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x + y \cdot 3.13060547623
\end{array}
Initial program 56.8%
associate-*l/58.6%
*-commutative58.6%
fma-def58.6%
*-commutative58.6%
fma-def58.6%
*-commutative58.6%
fma-def58.6%
*-commutative58.6%
fma-def58.6%
Simplified58.6%
Taylor expanded in z around inf 62.2%
*-commutative62.2%
Simplified62.2%
Final simplification62.2%
(FPCore (x y z t a b) :precision binary64 x)
double code(double x, double y, double z, double t, double a, double b) {
return x;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
code = x
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return x;
}
def code(x, y, z, t, a, b): return x
function code(x, y, z, t, a, b) return x end
function tmp = code(x, y, z, t, a, b) tmp = x; end
code[x_, y_, z_, t_, a_, b_] := x
\begin{array}{l}
\\
x
\end{array}
Initial program 56.8%
associate-*l/58.6%
*-commutative58.6%
fma-def58.6%
*-commutative58.6%
fma-def58.6%
*-commutative58.6%
fma-def58.6%
*-commutative58.6%
fma-def58.6%
Simplified58.6%
Taylor expanded in z around inf 62.2%
*-commutative62.2%
Simplified62.2%
Taylor expanded in x around inf 48.8%
Final simplification48.8%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1
(+
x
(*
(+ (- 3.13060547623 (/ 36.527041698806414 z)) (/ t (* z z)))
(/ y 1.0)))))
(if (< z -6.499344996252632e+53)
t_1
(if (< z 7.066965436914287e+59)
(+
x
(/
y
(/
(+
(*
(+ (* (+ (* (+ z 15.234687407) z) 31.4690115749) z) 11.9400905721)
z)
0.607771387771)
(+
(* (+ (* (+ (* (+ (* z 3.13060547623) 11.1667541262) z) t) z) a) z)
b))))
t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x + (((3.13060547623 - (36.527041698806414 / z)) + (t / (z * z))) * (y / 1.0));
double tmp;
if (z < -6.499344996252632e+53) {
tmp = t_1;
} else if (z < 7.066965436914287e+59) {
tmp = x + (y / ((((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771) / ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = x + (((3.13060547623d0 - (36.527041698806414d0 / z)) + (t / (z * z))) * (y / 1.0d0))
if (z < (-6.499344996252632d+53)) then
tmp = t_1
else if (z < 7.066965436914287d+59) then
tmp = x + (y / ((((((((z + 15.234687407d0) * z) + 31.4690115749d0) * z) + 11.9400905721d0) * z) + 0.607771387771d0) / ((((((((z * 3.13060547623d0) + 11.1667541262d0) * z) + t) * z) + a) * z) + b)))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x + (((3.13060547623 - (36.527041698806414 / z)) + (t / (z * z))) * (y / 1.0));
double tmp;
if (z < -6.499344996252632e+53) {
tmp = t_1;
} else if (z < 7.066965436914287e+59) {
tmp = x + (y / ((((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771) / ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x + (((3.13060547623 - (36.527041698806414 / z)) + (t / (z * z))) * (y / 1.0)) tmp = 0 if z < -6.499344996252632e+53: tmp = t_1 elif z < 7.066965436914287e+59: tmp = x + (y / ((((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771) / ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b))) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x + Float64(Float64(Float64(3.13060547623 - Float64(36.527041698806414 / z)) + Float64(t / Float64(z * z))) * Float64(y / 1.0))) tmp = 0.0 if (z < -6.499344996252632e+53) tmp = t_1; elseif (z < 7.066965436914287e+59) tmp = Float64(x + Float64(y / Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x + (((3.13060547623 - (36.527041698806414 / z)) + (t / (z * z))) * (y / 1.0)); tmp = 0.0; if (z < -6.499344996252632e+53) tmp = t_1; elseif (z < 7.066965436914287e+59) tmp = x + (y / ((((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771) / ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b))); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x + N[(N[(N[(3.13060547623 - N[(36.527041698806414 / z), $MachinePrecision]), $MachinePrecision] + N[(t / N[(z * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(y / 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Less[z, -6.499344996252632e+53], t$95$1, If[Less[z, 7.066965436914287e+59], N[(x + N[(y / N[(N[(N[(N[(N[(N[(N[(N[(z + 15.234687407), $MachinePrecision] * z), $MachinePrecision] + 31.4690115749), $MachinePrecision] * z), $MachinePrecision] + 11.9400905721), $MachinePrecision] * z), $MachinePrecision] + 0.607771387771), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(N[(z * 3.13060547623), $MachinePrecision] + 11.1667541262), $MachinePrecision] * z), $MachinePrecision] + t), $MachinePrecision] * z), $MachinePrecision] + a), $MachinePrecision] * z), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \left(\left(3.13060547623 - \frac{36.527041698806414}{z}\right) + \frac{t}{z \cdot z}\right) \cdot \frac{y}{1}\\
\mathbf{if}\;z < -6.499344996252632 \cdot 10^{+53}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z < 7.066965436914287 \cdot 10^{+59}:\\
\;\;\;\;x + \frac{y}{\frac{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771}{\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b}}\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\end{array}
herbie shell --seed 2023171
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2, D"
:precision binary64
:herbie-target
(if (< z -6.499344996252632e+53) (+ x (* (+ (- 3.13060547623 (/ 36.527041698806414 z)) (/ t (* z z))) (/ y 1.0))) (if (< z 7.066965436914287e+59) (+ x (/ y (/ (+ (* (+ (* (+ (* (+ z 15.234687407) z) 31.4690115749) z) 11.9400905721) z) 0.607771387771) (+ (* (+ (* (+ (* (+ (* z 3.13060547623) 11.1667541262) z) t) z) a) z) b)))) (+ x (* (+ (- 3.13060547623 (/ 36.527041698806414 z)) (/ t (* z z))) (/ y 1.0)))))
(+ x (/ (* y (+ (* (+ (* (+ (* (+ (* z 3.13060547623) 11.1667541262) z) t) z) a) z) b)) (+ (* (+ (* (+ (* (+ z 15.234687407) z) 31.4690115749) z) 11.9400905721) z) 0.607771387771))))