Average Error: 29.2 → 1.1
Time: 26.4s
Precision: 64
\[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}\]
\[\begin{array}{l} \mathbf{if}\;z \le -87077245091641527145418274318303940308890000:\\ \;\;\;\;x + \left(\frac{y}{z} \cdot \left(\frac{t}{z} - 36.52704169880641416057187598198652267456\right) + 3.130605476229999961645944495103321969509 \cdot y\right)\\ \mathbf{elif}\;z \le 177470294739602374656:\\ \;\;\;\;x + y \cdot \frac{\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b}{\left(\frac{\left({\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right)}^{3} + {31.46901157490000144889563671313226222992}^{3}\right) \cdot z}{\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) \cdot \left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) + \left(31.46901157490000144889563671313226222992 \cdot 31.46901157490000144889563671313226222992 - \left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) \cdot 31.46901157490000144889563671313226222992\right)} + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}\\ \mathbf{else}:\\ \;\;\;\;x + y \cdot \left(\frac{t}{{z}^{2}} + \left(3.130605476229999961645944495103321969509 - \frac{36.52704169880641416057187598198652267456}{z}\right)\right)\\ \end{array}\]
x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}
\begin{array}{l}
\mathbf{if}\;z \le -87077245091641527145418274318303940308890000:\\
\;\;\;\;x + \left(\frac{y}{z} \cdot \left(\frac{t}{z} - 36.52704169880641416057187598198652267456\right) + 3.130605476229999961645944495103321969509 \cdot y\right)\\

\mathbf{elif}\;z \le 177470294739602374656:\\
\;\;\;\;x + y \cdot \frac{\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b}{\left(\frac{\left({\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right)}^{3} + {31.46901157490000144889563671313226222992}^{3}\right) \cdot z}{\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) \cdot \left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) + \left(31.46901157490000144889563671313226222992 \cdot 31.46901157490000144889563671313226222992 - \left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) \cdot 31.46901157490000144889563671313226222992\right)} + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}\\

\mathbf{else}:\\
\;\;\;\;x + y \cdot \left(\frac{t}{{z}^{2}} + \left(3.130605476229999961645944495103321969509 - \frac{36.52704169880641416057187598198652267456}{z}\right)\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r239190 = x;
        double r239191 = y;
        double r239192 = z;
        double r239193 = 3.13060547623;
        double r239194 = r239192 * r239193;
        double r239195 = 11.1667541262;
        double r239196 = r239194 + r239195;
        double r239197 = r239196 * r239192;
        double r239198 = t;
        double r239199 = r239197 + r239198;
        double r239200 = r239199 * r239192;
        double r239201 = a;
        double r239202 = r239200 + r239201;
        double r239203 = r239202 * r239192;
        double r239204 = b;
        double r239205 = r239203 + r239204;
        double r239206 = r239191 * r239205;
        double r239207 = 15.234687407;
        double r239208 = r239192 + r239207;
        double r239209 = r239208 * r239192;
        double r239210 = 31.4690115749;
        double r239211 = r239209 + r239210;
        double r239212 = r239211 * r239192;
        double r239213 = 11.9400905721;
        double r239214 = r239212 + r239213;
        double r239215 = r239214 * r239192;
        double r239216 = 0.607771387771;
        double r239217 = r239215 + r239216;
        double r239218 = r239206 / r239217;
        double r239219 = r239190 + r239218;
        return r239219;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r239220 = z;
        double r239221 = -8.707724509164153e+43;
        bool r239222 = r239220 <= r239221;
        double r239223 = x;
        double r239224 = y;
        double r239225 = r239224 / r239220;
        double r239226 = t;
        double r239227 = r239226 / r239220;
        double r239228 = 36.527041698806414;
        double r239229 = r239227 - r239228;
        double r239230 = r239225 * r239229;
        double r239231 = 3.13060547623;
        double r239232 = r239231 * r239224;
        double r239233 = r239230 + r239232;
        double r239234 = r239223 + r239233;
        double r239235 = 1.7747029473960237e+20;
        bool r239236 = r239220 <= r239235;
        double r239237 = r239220 * r239231;
        double r239238 = 11.1667541262;
        double r239239 = r239237 + r239238;
        double r239240 = r239239 * r239220;
        double r239241 = r239240 + r239226;
        double r239242 = r239241 * r239220;
        double r239243 = a;
        double r239244 = r239242 + r239243;
        double r239245 = r239244 * r239220;
        double r239246 = b;
        double r239247 = r239245 + r239246;
        double r239248 = 15.234687407;
        double r239249 = r239220 + r239248;
        double r239250 = r239249 * r239220;
        double r239251 = 3.0;
        double r239252 = pow(r239250, r239251);
        double r239253 = 31.4690115749;
        double r239254 = pow(r239253, r239251);
        double r239255 = r239252 + r239254;
        double r239256 = r239255 * r239220;
        double r239257 = r239250 * r239250;
        double r239258 = r239253 * r239253;
        double r239259 = r239250 * r239253;
        double r239260 = r239258 - r239259;
        double r239261 = r239257 + r239260;
        double r239262 = r239256 / r239261;
        double r239263 = 11.9400905721;
        double r239264 = r239262 + r239263;
        double r239265 = r239264 * r239220;
        double r239266 = 0.607771387771;
        double r239267 = r239265 + r239266;
        double r239268 = r239247 / r239267;
        double r239269 = r239224 * r239268;
        double r239270 = r239223 + r239269;
        double r239271 = 2.0;
        double r239272 = pow(r239220, r239271);
        double r239273 = r239226 / r239272;
        double r239274 = r239228 / r239220;
        double r239275 = r239231 - r239274;
        double r239276 = r239273 + r239275;
        double r239277 = r239224 * r239276;
        double r239278 = r239223 + r239277;
        double r239279 = r239236 ? r239270 : r239278;
        double r239280 = r239222 ? r239234 : r239279;
        return r239280;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original29.2
Target0.9
Herbie1.1
\[\begin{array}{l} \mathbf{if}\;z \lt -6.499344996252631754123144978817242590467 \cdot 10^{53}:\\ \;\;\;\;x + \left(\left(3.130605476229999961645944495103321969509 - \frac{36.52704169880641416057187598198652267456}{z}\right) + \frac{t}{z \cdot z}\right) \cdot \frac{y}{1}\\ \mathbf{elif}\;z \lt 7.066965436914286795694558389038333165002 \cdot 10^{59}:\\ \;\;\;\;x + \frac{y}{\frac{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}{\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b}}\\ \mathbf{else}:\\ \;\;\;\;x + \left(\left(3.130605476229999961645944495103321969509 - \frac{36.52704169880641416057187598198652267456}{z}\right) + \frac{t}{z \cdot z}\right) \cdot \frac{y}{1}\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if z < -8.707724509164153e+43

    1. Initial program 60.5

      \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt60.5

      \[\leadsto x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\color{blue}{\left(\sqrt[3]{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227} \cdot \sqrt[3]{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}\right) \cdot \sqrt[3]{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}}}\]
    4. Applied times-frac58.5

      \[\leadsto x + \color{blue}{\frac{y}{\sqrt[3]{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227} \cdot \sqrt[3]{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}} \cdot \frac{\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b}{\sqrt[3]{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}}}\]
    5. Taylor expanded around inf 9.0

      \[\leadsto x + \color{blue}{\left(\left(3.130605476229999961645944495103321969509 \cdot y + \frac{t \cdot y}{{z}^{2}}\right) - 36.52704169880641416057187598198652267456 \cdot \frac{y}{z}\right)}\]
    6. Simplified1.3

      \[\leadsto x + \color{blue}{\left(\frac{y}{z} \cdot \left(\frac{t}{z} - 36.52704169880641416057187598198652267456\right) + 3.130605476229999961645944495103321969509 \cdot y\right)}\]

    if -8.707724509164153e+43 < z < 1.7747029473960237e+20

    1. Initial program 1.1

      \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity1.1

      \[\leadsto x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\color{blue}{1 \cdot \left(\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227\right)}}\]
    4. Applied times-frac0.5

      \[\leadsto x + \color{blue}{\frac{y}{1} \cdot \frac{\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b}{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}}\]
    5. Simplified0.5

      \[\leadsto x + \color{blue}{y} \cdot \frac{\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b}{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}\]
    6. Using strategy rm
    7. Applied flip3-+0.5

      \[\leadsto x + y \cdot \frac{\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b}{\left(\color{blue}{\frac{{\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right)}^{3} + {31.46901157490000144889563671313226222992}^{3}}{\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) \cdot \left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) + \left(31.46901157490000144889563671313226222992 \cdot 31.46901157490000144889563671313226222992 - \left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) \cdot 31.46901157490000144889563671313226222992\right)}} \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}\]
    8. Applied associate-*l/0.5

      \[\leadsto x + y \cdot \frac{\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b}{\left(\color{blue}{\frac{\left({\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right)}^{3} + {31.46901157490000144889563671313226222992}^{3}\right) \cdot z}{\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) \cdot \left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) + \left(31.46901157490000144889563671313226222992 \cdot 31.46901157490000144889563671313226222992 - \left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) \cdot 31.46901157490000144889563671313226222992\right)}} + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}\]

    if 1.7747029473960237e+20 < z

    1. Initial program 58.1

      \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity58.1

      \[\leadsto x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\color{blue}{1 \cdot \left(\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227\right)}}\]
    4. Applied times-frac55.3

      \[\leadsto x + \color{blue}{\frac{y}{1} \cdot \frac{\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b}{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}}\]
    5. Simplified55.3

      \[\leadsto x + \color{blue}{y} \cdot \frac{\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b}{\left(\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z + 31.46901157490000144889563671313226222992\right) \cdot z + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}\]
    6. Taylor expanded around inf 2.1

      \[\leadsto x + y \cdot \color{blue}{\left(\left(\frac{t}{{z}^{2}} + 3.130605476229999961645944495103321969509\right) - 36.52704169880641416057187598198652267456 \cdot \frac{1}{z}\right)}\]
    7. Simplified2.1

      \[\leadsto x + y \cdot \color{blue}{\left(\frac{t}{{z}^{2}} + \left(3.130605476229999961645944495103321969509 - \frac{36.52704169880641416057187598198652267456}{z}\right)\right)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification1.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -87077245091641527145418274318303940308890000:\\ \;\;\;\;x + \left(\frac{y}{z} \cdot \left(\frac{t}{z} - 36.52704169880641416057187598198652267456\right) + 3.130605476229999961645944495103321969509 \cdot y\right)\\ \mathbf{elif}\;z \le 177470294739602374656:\\ \;\;\;\;x + y \cdot \frac{\left(\left(\left(z \cdot 3.130605476229999961645944495103321969509 + 11.16675412620000074070958362426608800888\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b}{\left(\frac{\left({\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right)}^{3} + {31.46901157490000144889563671313226222992}^{3}\right) \cdot z}{\left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) \cdot \left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) + \left(31.46901157490000144889563671313226222992 \cdot 31.46901157490000144889563671313226222992 - \left(\left(z + 15.2346874069999991263557603815570473671\right) \cdot z\right) \cdot 31.46901157490000144889563671313226222992\right)} + 11.94009057210000079862766142468899488449\right) \cdot z + 0.6077713877710000378584709324059076607227}\\ \mathbf{else}:\\ \;\;\;\;x + y \cdot \left(\frac{t}{{z}^{2}} + \left(3.130605476229999961645944495103321969509 - \frac{36.52704169880641416057187598198652267456}{z}\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019326 
(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))) (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)))))

  (+ 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))))