Average Error: 9.3 → 0.4
Time: 28.1s
Precision: 64
\[\left(x \cdot \log y + z \cdot \log \left(1 - y\right)\right) - t\]
\[\left(\left(3 \cdot x\right) \cdot \log \left(\sqrt[3]{-y} \cdot \sqrt[3]{-1}\right) + z \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
\left(x \cdot \log y + z \cdot \log \left(1 - y\right)\right) - t
\left(\left(3 \cdot x\right) \cdot \log \left(\sqrt[3]{-y} \cdot \sqrt[3]{-1}\right) + z \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t
double f(double x, double y, double z, double t) {
        double r258236 = x;
        double r258237 = y;
        double r258238 = log(r258237);
        double r258239 = r258236 * r258238;
        double r258240 = z;
        double r258241 = 1.0;
        double r258242 = r258241 - r258237;
        double r258243 = log(r258242);
        double r258244 = r258240 * r258243;
        double r258245 = r258239 + r258244;
        double r258246 = t;
        double r258247 = r258245 - r258246;
        return r258247;
}

double f(double x, double y, double z, double t) {
        double r258248 = 3.0;
        double r258249 = x;
        double r258250 = r258248 * r258249;
        double r258251 = y;
        double r258252 = -r258251;
        double r258253 = cbrt(r258252);
        double r258254 = -1.0;
        double r258255 = cbrt(r258254);
        double r258256 = r258253 * r258255;
        double r258257 = log(r258256);
        double r258258 = r258250 * r258257;
        double r258259 = z;
        double r258260 = 1.0;
        double r258261 = log(r258260);
        double r258262 = r258260 * r258251;
        double r258263 = 0.5;
        double r258264 = 2.0;
        double r258265 = pow(r258251, r258264);
        double r258266 = pow(r258260, r258264);
        double r258267 = r258265 / r258266;
        double r258268 = r258263 * r258267;
        double r258269 = r258262 + r258268;
        double r258270 = r258261 - r258269;
        double r258271 = r258259 * r258270;
        double r258272 = r258258 + r258271;
        double r258273 = t;
        double r258274 = r258272 - r258273;
        return r258274;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original9.3
Target0.2
Herbie0.4
\[\left(-z\right) \cdot \left(\left(0.5 \cdot \left(y \cdot y\right) + y\right) + \frac{0.333333333333333315}{1 \cdot \left(1 \cdot 1\right)} \cdot \left(y \cdot \left(y \cdot y\right)\right)\right) - \left(t - x \cdot \log y\right)\]

Derivation

  1. Initial program 9.3

    \[\left(x \cdot \log y + z \cdot \log \left(1 - y\right)\right) - t\]
  2. Taylor expanded around 0 0.3

    \[\leadsto \left(x \cdot \log y + z \cdot \color{blue}{\left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)}\right) - t\]
  3. Using strategy rm
  4. Applied add-cube-cbrt0.3

    \[\leadsto \left(x \cdot \log \color{blue}{\left(\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right)} + z \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  5. Applied log-prod0.4

    \[\leadsto \left(x \cdot \color{blue}{\left(\log \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) + \log \left(\sqrt[3]{y}\right)\right)} + z \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  6. Applied distribute-lft-in0.4

    \[\leadsto \left(\color{blue}{\left(x \cdot \log \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) + x \cdot \log \left(\sqrt[3]{y}\right)\right)} + z \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  7. Simplified0.4

    \[\leadsto \left(\left(\color{blue}{\left(2 \cdot \log \left(\sqrt[3]{y}\right)\right) \cdot x} + x \cdot \log \left(\sqrt[3]{y}\right)\right) + z \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  8. Taylor expanded around -inf 64.0

    \[\leadsto \left(\color{blue}{3 \cdot \left(x \cdot \log \left({\left(-1 \cdot y\right)}^{\frac{1}{3}} \cdot \sqrt[3]{-1}\right)\right)} + z \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  9. Simplified0.4

    \[\leadsto \left(\color{blue}{\left(3 \cdot x\right) \cdot \log \left(\sqrt[3]{-y} \cdot \sqrt[3]{-1}\right)} + z \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  10. Final simplification0.4

    \[\leadsto \left(\left(3 \cdot x\right) \cdot \log \left(\sqrt[3]{-y} \cdot \sqrt[3]{-1}\right) + z \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]

Reproduce

herbie shell --seed 2019199 
(FPCore (x y z t)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, B"

  :herbie-target
  (- (* (- z) (+ (+ (* 0.5 (* y y)) y) (* (/ 0.3333333333333333 (* 1.0 (* 1.0 1.0))) (* y (* y y))))) (- t (* x (log y))))

  (- (+ (* x (log y)) (* z (log (- 1.0 y)))) t))