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}\begin{array}{l}
\mathbf{if}\;z \le -8.121332546661932 \cdot 10^{+24}:\\
\;\;\;\;\left(\left(3.13060547623 \cdot y - \frac{36.527041698806414 \cdot y}{z}\right) + \sqrt[3]{\frac{y}{z} \cdot \frac{t}{z}} \cdot \left(\sqrt[3]{\frac{y}{z} \cdot \frac{t}{z}} \cdot \sqrt[3]{\frac{y}{z} \cdot \frac{t}{z}}\right)\right) + x\\
\mathbf{elif}\;z \le 1.43696004741907 \cdot 10^{+17}:\\
\;\;\;\;x + \frac{\left(b + z \cdot \left(a + \left(\left(z \cdot 11.1667541262 + \left(z \cdot z\right) \cdot 3.13060547623\right) + t\right) \cdot z\right)\right) \cdot y}{0.607771387771 + z \cdot \left(11.9400905721 + z \cdot \left(31.4690115749 + \left(z + 15.234687407\right) \cdot z\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;x + \left(\left(3.13060547623 \cdot y - \frac{36.527041698806414 \cdot y}{z}\right) + \frac{1}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \left(\frac{t}{\sqrt[3]{z}} \cdot \frac{y}{z}\right)\right)\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r18615099 = x;
double r18615100 = y;
double r18615101 = z;
double r18615102 = 3.13060547623;
double r18615103 = r18615101 * r18615102;
double r18615104 = 11.1667541262;
double r18615105 = r18615103 + r18615104;
double r18615106 = r18615105 * r18615101;
double r18615107 = t;
double r18615108 = r18615106 + r18615107;
double r18615109 = r18615108 * r18615101;
double r18615110 = a;
double r18615111 = r18615109 + r18615110;
double r18615112 = r18615111 * r18615101;
double r18615113 = b;
double r18615114 = r18615112 + r18615113;
double r18615115 = r18615100 * r18615114;
double r18615116 = 15.234687407;
double r18615117 = r18615101 + r18615116;
double r18615118 = r18615117 * r18615101;
double r18615119 = 31.4690115749;
double r18615120 = r18615118 + r18615119;
double r18615121 = r18615120 * r18615101;
double r18615122 = 11.9400905721;
double r18615123 = r18615121 + r18615122;
double r18615124 = r18615123 * r18615101;
double r18615125 = 0.607771387771;
double r18615126 = r18615124 + r18615125;
double r18615127 = r18615115 / r18615126;
double r18615128 = r18615099 + r18615127;
return r18615128;
}
double f(double x, double y, double z, double t, double a, double b) {
double r18615129 = z;
double r18615130 = -8.121332546661932e+24;
bool r18615131 = r18615129 <= r18615130;
double r18615132 = 3.13060547623;
double r18615133 = y;
double r18615134 = r18615132 * r18615133;
double r18615135 = 36.527041698806414;
double r18615136 = r18615135 * r18615133;
double r18615137 = r18615136 / r18615129;
double r18615138 = r18615134 - r18615137;
double r18615139 = r18615133 / r18615129;
double r18615140 = t;
double r18615141 = r18615140 / r18615129;
double r18615142 = r18615139 * r18615141;
double r18615143 = cbrt(r18615142);
double r18615144 = r18615143 * r18615143;
double r18615145 = r18615143 * r18615144;
double r18615146 = r18615138 + r18615145;
double r18615147 = x;
double r18615148 = r18615146 + r18615147;
double r18615149 = 1.43696004741907e+17;
bool r18615150 = r18615129 <= r18615149;
double r18615151 = b;
double r18615152 = a;
double r18615153 = 11.1667541262;
double r18615154 = r18615129 * r18615153;
double r18615155 = r18615129 * r18615129;
double r18615156 = r18615155 * r18615132;
double r18615157 = r18615154 + r18615156;
double r18615158 = r18615157 + r18615140;
double r18615159 = r18615158 * r18615129;
double r18615160 = r18615152 + r18615159;
double r18615161 = r18615129 * r18615160;
double r18615162 = r18615151 + r18615161;
double r18615163 = r18615162 * r18615133;
double r18615164 = 0.607771387771;
double r18615165 = 11.9400905721;
double r18615166 = 31.4690115749;
double r18615167 = 15.234687407;
double r18615168 = r18615129 + r18615167;
double r18615169 = r18615168 * r18615129;
double r18615170 = r18615166 + r18615169;
double r18615171 = r18615129 * r18615170;
double r18615172 = r18615165 + r18615171;
double r18615173 = r18615129 * r18615172;
double r18615174 = r18615164 + r18615173;
double r18615175 = r18615163 / r18615174;
double r18615176 = r18615147 + r18615175;
double r18615177 = 1.0;
double r18615178 = cbrt(r18615129);
double r18615179 = r18615178 * r18615178;
double r18615180 = r18615177 / r18615179;
double r18615181 = r18615140 / r18615178;
double r18615182 = r18615181 * r18615139;
double r18615183 = r18615180 * r18615182;
double r18615184 = r18615138 + r18615183;
double r18615185 = r18615147 + r18615184;
double r18615186 = r18615150 ? r18615176 : r18615185;
double r18615187 = r18615131 ? r18615148 : r18615186;
return r18615187;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 29.8 |
|---|---|
| Target | 1.0 |
| Herbie | 1.8 |
if z < -8.121332546661932e+24Initial program 59.1
Taylor expanded around inf 9.0
Simplified2.3
rmApplied add-cube-cbrt2.3
if -8.121332546661932e+24 < z < 1.43696004741907e+17Initial program 0.6
Taylor expanded around 0 0.6
Simplified0.6
if 1.43696004741907e+17 < z Initial program 57.1
Taylor expanded around inf 10.3
Simplified3.1
rmApplied add-cube-cbrt3.1
Applied *-un-lft-identity3.1
Applied times-frac3.1
Applied associate-*l*3.9
Final simplification1.8
herbie shell --seed 2019165
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2, D"
: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))))