Average Error: 1.3 → 0.3
Time: 4.3s
Precision: 64
\[\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\]
\[\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{1}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)\]
\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)
\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{1}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)
double f(double x, double y, double z, double t) {
        double r767722 = 1.0;
        double r767723 = 3.0;
        double r767724 = r767722 / r767723;
        double r767725 = x;
        double r767726 = y;
        double r767727 = 27.0;
        double r767728 = r767726 * r767727;
        double r767729 = r767725 / r767728;
        double r767730 = r767723 * r767729;
        double r767731 = z;
        double r767732 = 2.0;
        double r767733 = r767731 * r767732;
        double r767734 = r767730 / r767733;
        double r767735 = t;
        double r767736 = sqrt(r767735);
        double r767737 = r767734 * r767736;
        double r767738 = acos(r767737);
        double r767739 = r767724 * r767738;
        return r767739;
}

double f(double x, double y, double z, double t) {
        double r767740 = 1.0;
        double r767741 = 3.0;
        double r767742 = cbrt(r767741);
        double r767743 = r767742 * r767742;
        double r767744 = r767740 / r767743;
        double r767745 = 1.0;
        double r767746 = r767745 / r767742;
        double r767747 = x;
        double r767748 = y;
        double r767749 = 27.0;
        double r767750 = r767748 * r767749;
        double r767751 = r767747 / r767750;
        double r767752 = r767741 * r767751;
        double r767753 = z;
        double r767754 = 2.0;
        double r767755 = r767753 * r767754;
        double r767756 = r767752 / r767755;
        double r767757 = t;
        double r767758 = sqrt(r767757);
        double r767759 = r767756 * r767758;
        double r767760 = acos(r767759);
        double r767761 = r767746 * r767760;
        double r767762 = r767744 * r767761;
        return r767762;
}

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.3
Target1.3
Herbie0.3
\[\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.3

    \[\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\]
  2. Using strategy rm
  3. Applied add-cube-cbrt1.3

    \[\leadsto \frac{1}{\color{blue}{\left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\]
  4. Applied *-un-lft-identity1.3

    \[\leadsto \frac{\color{blue}{1 \cdot 1}}{\left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\]
  5. Applied times-frac0.3

    \[\leadsto \color{blue}{\left(\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \frac{1}{\sqrt[3]{3}}\right)} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\]
  6. Applied associate-*l*0.3

    \[\leadsto \color{blue}{\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{1}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)}\]
  7. Final simplification0.3

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

Reproduce

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