Average Error: 0.2 → 0.1
Time: 39.7s
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(\cos \phi_1 \cdot \sin theta\right) \cdot \sin delta}{\left(\cos delta - {\left(\sin \phi_1\right)}^{2} \cdot \cos delta\right) - \left(\sin \phi_1 \cdot \left(\cos theta \cdot \cos \phi_1\right)\right) \cdot \sin delta}\]
\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(\cos \phi_1 \cdot \sin theta\right) \cdot \sin delta}{\left(\cos delta - {\left(\sin \phi_1\right)}^{2} \cdot \cos delta\right) - \left(\sin \phi_1 \cdot \left(\cos theta \cdot \cos \phi_1\right)\right) \cdot \sin delta}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r110473 = lambda1;
        double r110474 = theta;
        double r110475 = sin(r110474);
        double r110476 = delta;
        double r110477 = sin(r110476);
        double r110478 = r110475 * r110477;
        double r110479 = phi1;
        double r110480 = cos(r110479);
        double r110481 = r110478 * r110480;
        double r110482 = cos(r110476);
        double r110483 = sin(r110479);
        double r110484 = r110483 * r110482;
        double r110485 = r110480 * r110477;
        double r110486 = cos(r110474);
        double r110487 = r110485 * r110486;
        double r110488 = r110484 + r110487;
        double r110489 = asin(r110488);
        double r110490 = sin(r110489);
        double r110491 = r110483 * r110490;
        double r110492 = r110482 - r110491;
        double r110493 = atan2(r110481, r110492);
        double r110494 = r110473 + r110493;
        return r110494;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r110495 = lambda1;
        double r110496 = phi1;
        double r110497 = cos(r110496);
        double r110498 = theta;
        double r110499 = sin(r110498);
        double r110500 = r110497 * r110499;
        double r110501 = delta;
        double r110502 = sin(r110501);
        double r110503 = r110500 * r110502;
        double r110504 = cos(r110501);
        double r110505 = sin(r110496);
        double r110506 = 2.0;
        double r110507 = pow(r110505, r110506);
        double r110508 = r110507 * r110504;
        double r110509 = r110504 - r110508;
        double r110510 = cos(r110498);
        double r110511 = r110510 * r110497;
        double r110512 = r110505 * r110511;
        double r110513 = r110512 * r110502;
        double r110514 = r110509 - r110513;
        double r110515 = atan2(r110503, r110514);
        double r110516 = r110495 + r110515;
        return r110516;
}

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. 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(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)\right)} + \lambda_1}\]
  3. Taylor expanded around inf 0.1

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

    \[\leadsto \tan^{-1}_* \frac{\sin delta \cdot \left(\cos \phi_1 \cdot \sin theta\right)}{\color{blue}{\cos delta - \left(\left(\cos theta \cdot \cos \phi_1\right) \cdot \sin delta + \cos delta \cdot \sin \phi_1\right) \cdot \sin \phi_1}} + \lambda_1\]
  5. Using strategy rm
  6. Applied add-log-exp0.2

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

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

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

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

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

Reproduce

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