Average Error: 13.0 → 0.5
Time: 38.3s
Precision: 64
\[\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
\[\tan^{-1}_* \frac{\left(\sqrt[3]{\left(\sin \lambda_2 \cdot \left(-\cos \lambda_1\right) + \cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2} \cdot \sqrt[3]{\left(\sin \lambda_2 \cdot \left(-\cos \lambda_1\right) + \cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2}\right) \cdot \sqrt[3]{\left(\sin \lambda_2 \cdot \left(-\cos \lambda_1\right) + \cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2}}{\sin \phi_2 \cdot \cos \phi_1 - \left(\left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right) + \cos \phi_2 \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \sin \phi_1\right)\right)}\]
\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}
\tan^{-1}_* \frac{\left(\sqrt[3]{\left(\sin \lambda_2 \cdot \left(-\cos \lambda_1\right) + \cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2} \cdot \sqrt[3]{\left(\sin \lambda_2 \cdot \left(-\cos \lambda_1\right) + \cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2}\right) \cdot \sqrt[3]{\left(\sin \lambda_2 \cdot \left(-\cos \lambda_1\right) + \cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2}}{\sin \phi_2 \cdot \cos \phi_1 - \left(\left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right) + \cos \phi_2 \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \sin \phi_1\right)\right)}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r141334 = lambda1;
        double r141335 = lambda2;
        double r141336 = r141334 - r141335;
        double r141337 = sin(r141336);
        double r141338 = phi2;
        double r141339 = cos(r141338);
        double r141340 = r141337 * r141339;
        double r141341 = phi1;
        double r141342 = cos(r141341);
        double r141343 = sin(r141338);
        double r141344 = r141342 * r141343;
        double r141345 = sin(r141341);
        double r141346 = r141345 * r141339;
        double r141347 = cos(r141336);
        double r141348 = r141346 * r141347;
        double r141349 = r141344 - r141348;
        double r141350 = atan2(r141340, r141349);
        return r141350;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r141351 = lambda2;
        double r141352 = sin(r141351);
        double r141353 = lambda1;
        double r141354 = cos(r141353);
        double r141355 = -r141354;
        double r141356 = r141352 * r141355;
        double r141357 = cos(r141351);
        double r141358 = sin(r141353);
        double r141359 = r141357 * r141358;
        double r141360 = r141356 + r141359;
        double r141361 = phi2;
        double r141362 = cos(r141361);
        double r141363 = r141360 * r141362;
        double r141364 = cbrt(r141363);
        double r141365 = r141364 * r141364;
        double r141366 = r141365 * r141364;
        double r141367 = sin(r141361);
        double r141368 = phi1;
        double r141369 = cos(r141368);
        double r141370 = r141367 * r141369;
        double r141371 = r141358 * r141352;
        double r141372 = sin(r141368);
        double r141373 = r141372 * r141362;
        double r141374 = r141371 * r141373;
        double r141375 = r141354 * r141357;
        double r141376 = r141375 * r141372;
        double r141377 = r141362 * r141376;
        double r141378 = r141374 + r141377;
        double r141379 = r141370 - r141378;
        double r141380 = atan2(r141366, r141379);
        return r141380;
}

Error

Bits error versus lambda1

Bits error versus lambda2

Bits error versus phi1

Bits error versus phi2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 13.0

    \[\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  2. Using strategy rm
  3. Applied sub-neg13.0

    \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  4. Applied sin-sum6.4

    \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \left(-\lambda_2\right) + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)} \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  5. Simplified6.4

    \[\leadsto \tan^{-1}_* \frac{\left(\color{blue}{\sin \lambda_1 \cdot \cos \lambda_2} + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  6. Using strategy rm
  7. Applied cos-diff0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \color{blue}{\left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}}\]
  8. Applied distribute-lft-in0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}}\]
  9. Simplified0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\color{blue}{\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2} + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}\]
  10. Simplified0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2 + \color{blue}{\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}\right)}\]
  11. Using strategy rm
  12. Applied add-cube-cbrt0.5

    \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sqrt[3]{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2} \cdot \sqrt[3]{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}\right) \cdot \sqrt[3]{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}}}{\cos \phi_1 \cdot \sin \phi_2 - \left(\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2 + \left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}\]
  13. Simplified0.5

    \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sqrt[3]{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \left(-\sin \lambda_2\right) + \sin \lambda_1 \cdot \cos \lambda_2\right)} \cdot \sqrt[3]{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \left(-\sin \lambda_2\right) + \sin \lambda_1 \cdot \cos \lambda_2\right)}\right)} \cdot \sqrt[3]{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}}{\cos \phi_1 \cdot \sin \phi_2 - \left(\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2 + \left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}\]
  14. Simplified0.5

    \[\leadsto \tan^{-1}_* \frac{\left(\sqrt[3]{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \left(-\sin \lambda_2\right) + \sin \lambda_1 \cdot \cos \lambda_2\right)} \cdot \sqrt[3]{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \left(-\sin \lambda_2\right) + \sin \lambda_1 \cdot \cos \lambda_2\right)}\right) \cdot \color{blue}{\sqrt[3]{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \left(-\sin \lambda_2\right) + \sin \lambda_1 \cdot \cos \lambda_2\right)}}}{\cos \phi_1 \cdot \sin \phi_2 - \left(\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2 + \left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}\]
  15. Final simplification0.5

    \[\leadsto \tan^{-1}_* \frac{\left(\sqrt[3]{\left(\sin \lambda_2 \cdot \left(-\cos \lambda_1\right) + \cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2} \cdot \sqrt[3]{\left(\sin \lambda_2 \cdot \left(-\cos \lambda_1\right) + \cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2}\right) \cdot \sqrt[3]{\left(\sin \lambda_2 \cdot \left(-\cos \lambda_1\right) + \cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2}}{\sin \phi_2 \cdot \cos \phi_1 - \left(\left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right) + \cos \phi_2 \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \sin \phi_1\right)\right)}\]

Reproduce

herbie shell --seed 2019195 
(FPCore (lambda1 lambda2 phi1 phi2)
  :name "Bearing on a great circle"
  (atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 lambda2))))))