Average Error: 29.8 → 1.8
Time: 52.6s
Precision: 64
\[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}\]
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;
}

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.8
Target1.0
Herbie1.8
\[\begin{array}{l} \mathbf{if}\;z \lt -6.499344996252632 \cdot 10^{+53}:\\ \;\;\;\;x + \left(\left(3.13060547623 - \frac{36.527041698806414}{z}\right) + \frac{t}{z \cdot z}\right) \cdot \frac{y}{1.0}\\ \mathbf{elif}\;z \lt 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}:\\ \;\;\;\;x + \left(\left(3.13060547623 - \frac{36.527041698806414}{z}\right) + \frac{t}{z \cdot z}\right) \cdot \frac{y}{1.0}\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if z < -8.121332546661932e+24

    1. Initial program 59.1

      \[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}\]
    2. Taylor expanded around inf 9.0

      \[\leadsto x + \color{blue}{\left(\left(\frac{t \cdot y}{{z}^{2}} + 3.13060547623 \cdot y\right) - 36.527041698806414 \cdot \frac{y}{z}\right)}\]
    3. Simplified2.3

      \[\leadsto x + \color{blue}{\left(\frac{t}{z} \cdot \frac{y}{z} + \left(y \cdot 3.13060547623 - \frac{y \cdot 36.527041698806414}{z}\right)\right)}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt2.3

      \[\leadsto x + \left(\color{blue}{\left(\sqrt[3]{\frac{t}{z} \cdot \frac{y}{z}} \cdot \sqrt[3]{\frac{t}{z} \cdot \frac{y}{z}}\right) \cdot \sqrt[3]{\frac{t}{z} \cdot \frac{y}{z}}} + \left(y \cdot 3.13060547623 - \frac{y \cdot 36.527041698806414}{z}\right)\right)\]

    if -8.121332546661932e+24 < z < 1.43696004741907e+17

    1. Initial program 0.6

      \[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}\]
    2. Taylor expanded around 0 0.6

      \[\leadsto x + \frac{y \cdot \left(\left(\left(\color{blue}{\left(11.1667541262 \cdot z + 3.13060547623 \cdot {z}^{2}\right)} + 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}\]
    3. Simplified0.6

      \[\leadsto x + \frac{y \cdot \left(\left(\left(\color{blue}{\left(z \cdot 11.1667541262 + \left(z \cdot z\right) \cdot 3.13060547623\right)} + 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}\]

    if 1.43696004741907e+17 < z

    1. Initial program 57.1

      \[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}\]
    2. Taylor expanded around inf 10.3

      \[\leadsto x + \color{blue}{\left(\left(\frac{t \cdot y}{{z}^{2}} + 3.13060547623 \cdot y\right) - 36.527041698806414 \cdot \frac{y}{z}\right)}\]
    3. Simplified3.1

      \[\leadsto x + \color{blue}{\left(\frac{t}{z} \cdot \frac{y}{z} + \left(y \cdot 3.13060547623 - \frac{y \cdot 36.527041698806414}{z}\right)\right)}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt3.1

      \[\leadsto x + \left(\frac{t}{\color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}}} \cdot \frac{y}{z} + \left(y \cdot 3.13060547623 - \frac{y \cdot 36.527041698806414}{z}\right)\right)\]
    6. Applied *-un-lft-identity3.1

      \[\leadsto x + \left(\frac{\color{blue}{1 \cdot t}}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}} \cdot \frac{y}{z} + \left(y \cdot 3.13060547623 - \frac{y \cdot 36.527041698806414}{z}\right)\right)\]
    7. Applied times-frac3.1

      \[\leadsto x + \left(\color{blue}{\left(\frac{1}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \frac{t}{\sqrt[3]{z}}\right)} \cdot \frac{y}{z} + \left(y \cdot 3.13060547623 - \frac{y \cdot 36.527041698806414}{z}\right)\right)\]
    8. Applied associate-*l*3.9

      \[\leadsto x + \left(\color{blue}{\frac{1}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \left(\frac{t}{\sqrt[3]{z}} \cdot \frac{y}{z}\right)} + \left(y \cdot 3.13060547623 - \frac{y \cdot 36.527041698806414}{z}\right)\right)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification1.8

    \[\leadsto \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}\]

Reproduce

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