Average Error: 0.2 → 0.1
Time: 42.3s
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}{\left(\cos delta \cdot \cos \phi_1 - \sin \phi_1 \cdot \left(\sin delta \cdot \cos theta\right)\right) \cdot \cos \phi_1} + \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}{\left(\cos delta \cdot \cos \phi_1 - \sin \phi_1 \cdot \left(\sin delta \cdot \cos theta\right)\right) \cdot \cos \phi_1} + \lambda_1
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r3882442 = lambda1;
        double r3882443 = theta;
        double r3882444 = sin(r3882443);
        double r3882445 = delta;
        double r3882446 = sin(r3882445);
        double r3882447 = r3882444 * r3882446;
        double r3882448 = phi1;
        double r3882449 = cos(r3882448);
        double r3882450 = r3882447 * r3882449;
        double r3882451 = cos(r3882445);
        double r3882452 = sin(r3882448);
        double r3882453 = r3882452 * r3882451;
        double r3882454 = r3882449 * r3882446;
        double r3882455 = cos(r3882443);
        double r3882456 = r3882454 * r3882455;
        double r3882457 = r3882453 + r3882456;
        double r3882458 = asin(r3882457);
        double r3882459 = sin(r3882458);
        double r3882460 = r3882452 * r3882459;
        double r3882461 = r3882451 - r3882460;
        double r3882462 = atan2(r3882450, r3882461);
        double r3882463 = r3882442 + r3882462;
        return r3882463;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r3882464 = phi1;
        double r3882465 = cos(r3882464);
        double r3882466 = theta;
        double r3882467 = sin(r3882466);
        double r3882468 = r3882465 * r3882467;
        double r3882469 = delta;
        double r3882470 = sin(r3882469);
        double r3882471 = r3882468 * r3882470;
        double r3882472 = cos(r3882469);
        double r3882473 = r3882472 * r3882465;
        double r3882474 = sin(r3882464);
        double r3882475 = cos(r3882466);
        double r3882476 = r3882470 * r3882475;
        double r3882477 = r3882474 * r3882476;
        double r3882478 = r3882473 - r3882477;
        double r3882479 = r3882478 * r3882465;
        double r3882480 = atan2(r3882471, r3882479);
        double r3882481 = lambda1;
        double r3882482 = r3882480 + r3882481;
        return r3882482;
}

Error

Bits error versus lambda1

Bits error versus phi1

Bits error versus phi2

Bits error versus delta

Bits error versus theta

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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 add-log-exp0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \color{blue}{\log \left(e^{\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)}}\]
  4. Applied add-log-exp0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\color{blue}{\log \left(e^{\cos delta}\right)} - \log \left(e^{\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)}\]
  5. Applied diff-log0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\color{blue}{\log \left(\frac{e^{\cos delta}}{e^{\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)}}\]
  6. Simplified0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\log \color{blue}{\left(e^{\cos delta - \sin \left(\sin^{-1} \left(\sin delta \cdot \left(\cos theta \cdot \cos \phi_1\right) + \sin \phi_1 \cdot \cos delta\right)\right) \cdot \sin \phi_1}\right)}}\]
  7. Taylor expanded around inf 0.2

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

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\color{blue}{\cos delta \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right) - \left(\cos theta \cdot \sin \phi_1\right) \cdot \left(\sin delta \cdot \cos \phi_1\right)}}\]
  9. Taylor expanded around 0 0.1

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

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

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

Reproduce

herbie shell --seed 2019171 
(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))))))))))