Average Error: 1.0 → 0.0
Time: 34.1s
Precision: 64
\[2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\]
\[\left(\left(\left(\cos \left(\frac{2}{3} \cdot \pi\right)\right)\right) \cdot \cos \left(\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right) - \sin \left(\frac{2}{3} \cdot \pi\right) \cdot \sin \left(\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right) \cdot 2\]
2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)
\left(\left(\left(\cos \left(\frac{2}{3} \cdot \pi\right)\right)\right) \cdot \cos \left(\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right) - \sin \left(\frac{2}{3} \cdot \pi\right) \cdot \sin \left(\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right) \cdot 2
double f(double g, double h) {
        double r4665250 = 2.0;
        double r4665251 = atan2(1.0, 0.0);
        double r4665252 = r4665250 * r4665251;
        double r4665253 = 3.0;
        double r4665254 = r4665252 / r4665253;
        double r4665255 = g;
        double r4665256 = -r4665255;
        double r4665257 = h;
        double r4665258 = r4665256 / r4665257;
        double r4665259 = acos(r4665258);
        double r4665260 = r4665259 / r4665253;
        double r4665261 = r4665254 + r4665260;
        double r4665262 = cos(r4665261);
        double r4665263 = r4665250 * r4665262;
        return r4665263;
}

double f(double g, double h) {
        double r4665264 = 0.6666666666666666;
        double r4665265 = atan2(1.0, 0.0);
        double r4665266 = r4665264 * r4665265;
        double r4665267 = cos(r4665266);
        double r4665268 = /* ERROR: no posit support in C */;
        double r4665269 = /* ERROR: no posit support in C */;
        double r4665270 = g;
        double r4665271 = -r4665270;
        double r4665272 = h;
        double r4665273 = r4665271 / r4665272;
        double r4665274 = acos(r4665273);
        double r4665275 = 3.0;
        double r4665276 = r4665274 / r4665275;
        double r4665277 = cos(r4665276);
        double r4665278 = r4665269 * r4665277;
        double r4665279 = sin(r4665266);
        double r4665280 = sin(r4665276);
        double r4665281 = r4665279 * r4665280;
        double r4665282 = r4665278 - r4665281;
        double r4665283 = 2.0;
        double r4665284 = r4665282 * r4665283;
        return r4665284;
}

Error

Bits error versus g

Bits error versus h

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. Simplified1.0

    \[\leadsto \color{blue}{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right) \cdot 2}\]
  3. Using strategy rm
  4. Applied fma-udef1.0

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

    \[\leadsto \color{blue}{\left(\cos \left(\frac{2}{3} \cdot \pi\right) \cdot \cos \left(\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right) - \sin \left(\frac{2}{3} \cdot \pi\right) \cdot \sin \left(\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)} \cdot 2\]
  6. Using strategy rm
  7. Applied insert-posit160.0

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

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

Reproduce

herbie shell --seed 2019146 +o rules:numerics
(FPCore (g h)
  :name "2-ancestry mixing, negative discriminant"
  (* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))