\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{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\frac{1}{\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right) + \cos delta} \cdot \left(\cos delta \cdot \cos delta - \sin \phi_1 \cdot \left(\sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)\right)} + \lambda_1double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r1652462 = lambda1;
double r1652463 = theta;
double r1652464 = sin(r1652463);
double r1652465 = delta;
double r1652466 = sin(r1652465);
double r1652467 = r1652464 * r1652466;
double r1652468 = phi1;
double r1652469 = cos(r1652468);
double r1652470 = r1652467 * r1652469;
double r1652471 = cos(r1652465);
double r1652472 = sin(r1652468);
double r1652473 = r1652472 * r1652471;
double r1652474 = r1652469 * r1652466;
double r1652475 = cos(r1652463);
double r1652476 = r1652474 * r1652475;
double r1652477 = r1652473 + r1652476;
double r1652478 = asin(r1652477);
double r1652479 = sin(r1652478);
double r1652480 = r1652472 * r1652479;
double r1652481 = r1652471 - r1652480;
double r1652482 = atan2(r1652470, r1652481);
double r1652483 = r1652462 + r1652482;
return r1652483;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r1652484 = phi1;
double r1652485 = cos(r1652484);
double r1652486 = delta;
double r1652487 = sin(r1652486);
double r1652488 = theta;
double r1652489 = sin(r1652488);
double r1652490 = r1652487 * r1652489;
double r1652491 = r1652485 * r1652490;
double r1652492 = 1.0;
double r1652493 = sin(r1652484);
double r1652494 = cos(r1652488);
double r1652495 = r1652485 * r1652487;
double r1652496 = r1652494 * r1652495;
double r1652497 = cos(r1652486);
double r1652498 = r1652493 * r1652497;
double r1652499 = r1652496 + r1652498;
double r1652500 = asin(r1652499);
double r1652501 = sin(r1652500);
double r1652502 = r1652493 * r1652501;
double r1652503 = r1652502 + r1652497;
double r1652504 = r1652492 / r1652503;
double r1652505 = r1652497 * r1652497;
double r1652506 = r1652501 * r1652502;
double r1652507 = r1652493 * r1652506;
double r1652508 = r1652505 - r1652507;
double r1652509 = r1652504 * r1652508;
double r1652510 = atan2(r1652491, r1652509);
double r1652511 = lambda1;
double r1652512 = r1652510 + r1652511;
return r1652512;
}



Bits error versus lambda1



Bits error versus phi1



Bits error versus phi2



Bits error versus delta



Bits error versus theta
Results
Initial program 0.2
rmApplied flip--0.2
rmApplied div-inv0.2
rmApplied associate-*l*0.2
Final simplification0.2
herbie shell --seed 2019152
(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))))))))))