Average Error: 0.2 → 0.2
Time: 45.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)}\]
\[\tan^{-1}_* \frac{\left(\cos \phi_1 \cdot \sin theta\right) \cdot \sin delta}{\frac{\left(\cos delta \cdot \cos delta\right) \cdot \cos delta - \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos \phi_1 \cdot \sin delta, \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) \cdot \left(\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos \phi_1 \cdot \sin delta, \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos \phi_1 \cdot \sin delta, \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)\right)}{\mathsf{fma}\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos \phi_1 \cdot \sin delta, \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right), \sin \phi_1 \cdot \cos delta, \mathsf{fma}\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos \phi_1 \cdot \sin delta, \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right), \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos \phi_1 \cdot \sin delta, \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right), \cos delta \cdot \cos delta\right)\right)}} + \lambda_1\]
\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)}
\tan^{-1}_* \frac{\left(\cos \phi_1 \cdot \sin theta\right) \cdot \sin delta}{\frac{\left(\cos delta \cdot \cos delta\right) \cdot \cos delta - \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos \phi_1 \cdot \sin delta, \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) \cdot \left(\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos \phi_1 \cdot \sin delta, \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos \phi_1 \cdot \sin delta, \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)\right)}{\mathsf{fma}\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos \phi_1 \cdot \sin delta, \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right), \sin \phi_1 \cdot \cos delta, \mathsf{fma}\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos \phi_1 \cdot \sin delta, \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right), \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos \phi_1 \cdot \sin delta, \cos theta, \sin \phi_1 \cdot \cos delta\right)\right)\right), \cos delta \cdot \cos delta\right)\right)}} + \lambda_1
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r4356381 = lambda1;
        double r4356382 = theta;
        double r4356383 = sin(r4356382);
        double r4356384 = delta;
        double r4356385 = sin(r4356384);
        double r4356386 = r4356383 * r4356385;
        double r4356387 = phi1;
        double r4356388 = cos(r4356387);
        double r4356389 = r4356386 * r4356388;
        double r4356390 = cos(r4356384);
        double r4356391 = sin(r4356387);
        double r4356392 = r4356391 * r4356390;
        double r4356393 = r4356388 * r4356385;
        double r4356394 = cos(r4356382);
        double r4356395 = r4356393 * r4356394;
        double r4356396 = r4356392 + r4356395;
        double r4356397 = asin(r4356396);
        double r4356398 = sin(r4356397);
        double r4356399 = r4356391 * r4356398;
        double r4356400 = r4356390 - r4356399;
        double r4356401 = atan2(r4356389, r4356400);
        double r4356402 = r4356381 + r4356401;
        return r4356402;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r4356403 = phi1;
        double r4356404 = cos(r4356403);
        double r4356405 = theta;
        double r4356406 = sin(r4356405);
        double r4356407 = r4356404 * r4356406;
        double r4356408 = delta;
        double r4356409 = sin(r4356408);
        double r4356410 = r4356407 * r4356409;
        double r4356411 = cos(r4356408);
        double r4356412 = r4356411 * r4356411;
        double r4356413 = r4356412 * r4356411;
        double r4356414 = sin(r4356403);
        double r4356415 = r4356404 * r4356409;
        double r4356416 = cos(r4356405);
        double r4356417 = r4356414 * r4356411;
        double r4356418 = fma(r4356415, r4356416, r4356417);
        double r4356419 = asin(r4356418);
        double r4356420 = sin(r4356419);
        double r4356421 = r4356414 * r4356420;
        double r4356422 = r4356421 * r4356421;
        double r4356423 = r4356421 * r4356422;
        double r4356424 = r4356413 - r4356423;
        double r4356425 = fma(r4356421, r4356421, r4356412);
        double r4356426 = fma(r4356420, r4356417, r4356425);
        double r4356427 = r4356424 / r4356426;
        double r4356428 = atan2(r4356410, r4356427);
        double r4356429 = lambda1;
        double r4356430 = r4356428 + r4356429;
        return r4356430;
}

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. Simplified0.2

    \[\leadsto \color{blue}{\tan^{-1}_* \frac{\sin delta \cdot \left(\cos \phi_1 \cdot \sin theta\right)}{\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)} + \lambda_1}\]
  3. Using strategy rm
  4. Applied flip3--0.2

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

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

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

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

Reproduce

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