Average Error: 1.0 → 0.1
Time: 18.0s
Precision: 64
\[2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\]
\[2 \cdot \left(\cos \left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) \cdot \cos \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right) + \sin \left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) \cdot \sin \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right)\right)\]
2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)
2 \cdot \left(\cos \left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) \cdot \cos \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right) + \sin \left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) \cdot \sin \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right)\right)
double f(double g, double h) {
        double r74911 = 2.0;
        double r74912 = atan2(1.0, 0.0);
        double r74913 = r74911 * r74912;
        double r74914 = 3.0;
        double r74915 = r74913 / r74914;
        double r74916 = g;
        double r74917 = -r74916;
        double r74918 = h;
        double r74919 = r74917 / r74918;
        double r74920 = acos(r74919);
        double r74921 = r74920 / r74914;
        double r74922 = r74915 + r74921;
        double r74923 = cos(r74922);
        double r74924 = r74911 * r74923;
        return r74924;
}

double f(double g, double h) {
        double r74925 = 2.0;
        double r74926 = atan2(1.0, 0.0);
        double r74927 = r74925 * r74926;
        double r74928 = 3.0;
        double r74929 = r74927 / r74928;
        double r74930 = r74926 / r74928;
        double r74931 = r74929 + r74930;
        double r74932 = cos(r74931);
        double r74933 = g;
        double r74934 = h;
        double r74935 = r74933 / r74934;
        double r74936 = acos(r74935);
        double r74937 = r74936 / r74928;
        double r74938 = cos(r74937);
        double r74939 = r74932 * r74938;
        double r74940 = sin(r74931);
        double r74941 = sin(r74937);
        double r74942 = r74940 * r74941;
        double r74943 = r74939 + r74942;
        double r74944 = r74925 * r74943;
        return r74944;
}

Error

Bits error versus g

Bits error versus h

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 1.0

    \[2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\]
  2. Using strategy rm
  3. Applied distribute-frac-neg1.0

    \[\leadsto 2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \color{blue}{\left(-\frac{g}{h}\right)}}{3}\right)\]
  4. Applied acos-neg1.0

    \[\leadsto 2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\color{blue}{\pi - \cos^{-1} \left(\frac{g}{h}\right)}}{3}\right)\]
  5. Applied div-sub1.0

    \[\leadsto 2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \color{blue}{\left(\frac{\pi}{3} - \frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right)}\right)\]
  6. Applied associate-+r-1.0

    \[\leadsto 2 \cdot \cos \color{blue}{\left(\left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) - \frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right)}\]
  7. Applied cos-diff0.1

    \[\leadsto 2 \cdot \color{blue}{\left(\cos \left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) \cdot \cos \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right) + \sin \left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) \cdot \sin \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right)\right)}\]
  8. Final simplification0.1

    \[\leadsto 2 \cdot \left(\cos \left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) \cdot \cos \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right) + \sin \left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) \cdot \sin \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right)\right)\]

Reproduce

herbie shell --seed 2019326 
(FPCore (g h)
  :name "2-ancestry mixing, negative discriminant"
  :precision binary64
  (* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))