Average Error: 0.2 → 0.2
Time: 24.2s
Precision: 64
\[\lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}\]
\[\lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\frac{\mathsf{fma}\left(\cos delta, \cos delta, -{\left(\sin \phi_1\right)}^{2} \cdot \left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right) \cdot \sin \left(\left(\sqrt[3]{\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)} \cdot \sqrt[3]{\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)}\right) \cdot \sqrt[3]{\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)}\right)\right)\right)}{\mathsf{fma}\left(\sin \phi_1, \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right), \cos delta\right)}}\]
\lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}
\lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\frac{\mathsf{fma}\left(\cos delta, \cos delta, -{\left(\sin \phi_1\right)}^{2} \cdot \left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right) \cdot \sin \left(\left(\sqrt[3]{\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)} \cdot \sqrt[3]{\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)}\right) \cdot \sqrt[3]{\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)}\right)\right)\right)}{\mathsf{fma}\left(\sin \phi_1, \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right), \cos delta\right)}}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r73406 = lambda1;
        double r73407 = theta;
        double r73408 = sin(r73407);
        double r73409 = delta;
        double r73410 = sin(r73409);
        double r73411 = r73408 * r73410;
        double r73412 = phi1;
        double r73413 = cos(r73412);
        double r73414 = r73411 * r73413;
        double r73415 = cos(r73409);
        double r73416 = sin(r73412);
        double r73417 = r73416 * r73415;
        double r73418 = r73413 * r73410;
        double r73419 = cos(r73407);
        double r73420 = r73418 * r73419;
        double r73421 = r73417 + r73420;
        double r73422 = asin(r73421);
        double r73423 = sin(r73422);
        double r73424 = r73416 * r73423;
        double r73425 = r73415 - r73424;
        double r73426 = atan2(r73414, r73425);
        double r73427 = r73406 + r73426;
        return r73427;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r73428 = lambda1;
        double r73429 = theta;
        double r73430 = sin(r73429);
        double r73431 = delta;
        double r73432 = sin(r73431);
        double r73433 = r73430 * r73432;
        double r73434 = phi1;
        double r73435 = cos(r73434);
        double r73436 = r73433 * r73435;
        double r73437 = cos(r73431);
        double r73438 = sin(r73434);
        double r73439 = 2.0;
        double r73440 = pow(r73438, r73439);
        double r73441 = cos(r73429);
        double r73442 = r73435 * r73441;
        double r73443 = r73438 * r73437;
        double r73444 = fma(r73432, r73442, r73443);
        double r73445 = asin(r73444);
        double r73446 = sin(r73445);
        double r73447 = cbrt(r73445);
        double r73448 = r73447 * r73447;
        double r73449 = r73448 * r73447;
        double r73450 = sin(r73449);
        double r73451 = r73446 * r73450;
        double r73452 = r73440 * r73451;
        double r73453 = -r73452;
        double r73454 = fma(r73437, r73437, r73453);
        double r73455 = fma(r73438, r73446, r73437);
        double r73456 = r73454 / r73455;
        double r73457 = atan2(r73436, r73456);
        double r73458 = r73428 + r73457;
        return r73458;
}

Error

Bits error versus lambda1

Bits error versus phi1

Bits error versus phi2

Bits error versus delta

Bits error versus theta

Derivation

  1. Initial program 0.2

    \[\lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}\]
  2. Using strategy rm
  3. Applied flip--0.2

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

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\frac{\color{blue}{\mathsf{fma}\left(\cos delta, \cos delta, -{\left(\sin \phi_1\right)}^{2} \cdot \left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right) \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)\right)}}{\cos delta + \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}}\]
  5. Simplified0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\frac{\mathsf{fma}\left(\cos delta, \cos delta, -{\left(\sin \phi_1\right)}^{2} \cdot \left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right) \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)\right)}{\color{blue}{\mathsf{fma}\left(\sin \phi_1, \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right), \cos delta\right)}}}\]
  6. Using strategy rm
  7. Applied add-cube-cbrt0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\frac{\mathsf{fma}\left(\cos delta, \cos delta, -{\left(\sin \phi_1\right)}^{2} \cdot \left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right) \cdot \sin \color{blue}{\left(\left(\sqrt[3]{\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)} \cdot \sqrt[3]{\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)}\right) \cdot \sqrt[3]{\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)}\right)}\right)\right)}{\mathsf{fma}\left(\sin \phi_1, \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right), \cos delta\right)}}\]
  8. Final simplification0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\frac{\mathsf{fma}\left(\cos delta, \cos delta, -{\left(\sin \phi_1\right)}^{2} \cdot \left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right) \cdot \sin \left(\left(\sqrt[3]{\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)} \cdot \sqrt[3]{\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)}\right) \cdot \sqrt[3]{\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)}\right)\right)\right)}{\mathsf{fma}\left(\sin \phi_1, \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin delta, \cos \phi_1 \cdot \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right), \cos delta\right)}}\]

Reproduce

herbie shell --seed 2019350 +o rules:numerics
(FPCore (lambda1 phi1 phi2 delta theta)
  :name "Destination given bearing on a great circle"
  :precision binary64
  (+ lambda1 (atan2 (* (* (sin theta) (sin delta)) (cos phi1)) (- (cos delta) (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta))))))))))