Average Error: 1.4 → 1.2
Time: 11.6s
Precision: 64
\[\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\]
\[0.333333333333333315 \cdot \cos^{-1} \left(\log \left(e^{0.055555555555555552 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)}\right)\right)\]
\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)
0.333333333333333315 \cdot \cos^{-1} \left(\log \left(e^{0.055555555555555552 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)}\right)\right)
double f(double x, double y, double z, double t) {
        double r3754 = 1.0;
        double r3755 = 3.0;
        double r3756 = r3754 / r3755;
        double r3757 = x;
        double r3758 = y;
        double r3759 = 27.0;
        double r3760 = r3758 * r3759;
        double r3761 = r3757 / r3760;
        double r3762 = r3755 * r3761;
        double r3763 = z;
        double r3764 = 2.0;
        double r3765 = r3763 * r3764;
        double r3766 = r3762 / r3765;
        double r3767 = t;
        double r3768 = sqrt(r3767);
        double r3769 = r3766 * r3768;
        double r3770 = acos(r3769);
        double r3771 = r3756 * r3770;
        return r3771;
}

double f(double x, double y, double z, double t) {
        double r3772 = 0.3333333333333333;
        double r3773 = 0.05555555555555555;
        double r3774 = t;
        double r3775 = sqrt(r3774);
        double r3776 = x;
        double r3777 = z;
        double r3778 = y;
        double r3779 = r3777 * r3778;
        double r3780 = r3776 / r3779;
        double r3781 = r3775 * r3780;
        double r3782 = r3773 * r3781;
        double r3783 = exp(r3782);
        double r3784 = log(r3783);
        double r3785 = acos(r3784);
        double r3786 = r3772 * r3785;
        return r3786;
}

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

Original1.4
Target1.2
Herbie1.2
\[\frac{\cos^{-1} \left(\frac{\frac{x}{27}}{y \cdot z} \cdot \frac{\sqrt{t}}{\frac{2}{3}}\right)}{3}\]

Derivation

  1. Initial program 1.4

    \[\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\]
  2. Taylor expanded around 0 1.2

    \[\leadsto \color{blue}{0.333333333333333315 \cdot \cos^{-1} \left(0.055555555555555552 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right)}\]
  3. Using strategy rm
  4. Applied add-log-exp1.2

    \[\leadsto 0.333333333333333315 \cdot \cos^{-1} \color{blue}{\left(\log \left(e^{0.055555555555555552 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)}\right)\right)}\]
  5. Final simplification1.2

    \[\leadsto 0.333333333333333315 \cdot \cos^{-1} \left(\log \left(e^{0.055555555555555552 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)}\right)\right)\]

Reproduce

herbie shell --seed 2020025 +o rules:numerics
(FPCore (x y z t)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, D"
  :precision binary64

  :herbie-target
  (/ (acos (* (/ (/ x 27) (* y z)) (/ (sqrt t) (/ 2 3)))) 3)

  (* (/ 1 3) (acos (* (/ (* 3 (/ x (* y 27))) (* z 2)) (sqrt t)))))