\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{{\left(\cos delta\right)}^{3} - {\left(\sin \left(\sqrt[3]{\log \left(e^{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right) \cdot \left(\log \left(e^{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right) \cdot \log \left(e^{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right)\right)}\right) \cdot \sin \phi_1\right)}^{3}}{\cos delta \cdot \cos delta + \left(\cos delta \cdot \left(\sin \left(\log \left(e^{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right)\right) \cdot \sin \phi_1\right) + \left(\sin \left(\log \left(e^{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right)\right) \cdot \sin \phi_1\right) \cdot \left(\sin \left(\log \left(e^{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right)\right) \cdot \sin \phi_1\right)\right)}} + \lambda_1double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r1676375 = lambda1;
double r1676376 = theta;
double r1676377 = sin(r1676376);
double r1676378 = delta;
double r1676379 = sin(r1676378);
double r1676380 = r1676377 * r1676379;
double r1676381 = phi1;
double r1676382 = cos(r1676381);
double r1676383 = r1676380 * r1676382;
double r1676384 = cos(r1676378);
double r1676385 = sin(r1676381);
double r1676386 = r1676385 * r1676384;
double r1676387 = r1676382 * r1676379;
double r1676388 = cos(r1676376);
double r1676389 = r1676387 * r1676388;
double r1676390 = r1676386 + r1676389;
double r1676391 = asin(r1676390);
double r1676392 = sin(r1676391);
double r1676393 = r1676385 * r1676392;
double r1676394 = r1676384 - r1676393;
double r1676395 = atan2(r1676383, r1676394);
double r1676396 = r1676375 + r1676395;
return r1676396;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r1676397 = phi1;
double r1676398 = cos(r1676397);
double r1676399 = delta;
double r1676400 = sin(r1676399);
double r1676401 = theta;
double r1676402 = sin(r1676401);
double r1676403 = r1676400 * r1676402;
double r1676404 = r1676398 * r1676403;
double r1676405 = cos(r1676399);
double r1676406 = 3.0;
double r1676407 = pow(r1676405, r1676406);
double r1676408 = sin(r1676397);
double r1676409 = r1676405 * r1676408;
double r1676410 = cos(r1676401);
double r1676411 = r1676398 * r1676400;
double r1676412 = r1676410 * r1676411;
double r1676413 = r1676409 + r1676412;
double r1676414 = asin(r1676413);
double r1676415 = exp(r1676414);
double r1676416 = log(r1676415);
double r1676417 = r1676416 * r1676416;
double r1676418 = r1676416 * r1676417;
double r1676419 = cbrt(r1676418);
double r1676420 = sin(r1676419);
double r1676421 = r1676420 * r1676408;
double r1676422 = pow(r1676421, r1676406);
double r1676423 = r1676407 - r1676422;
double r1676424 = r1676405 * r1676405;
double r1676425 = sin(r1676416);
double r1676426 = r1676425 * r1676408;
double r1676427 = r1676405 * r1676426;
double r1676428 = r1676426 * r1676426;
double r1676429 = r1676427 + r1676428;
double r1676430 = r1676424 + r1676429;
double r1676431 = r1676423 / r1676430;
double r1676432 = atan2(r1676404, r1676431);
double r1676433 = lambda1;
double r1676434 = r1676432 + r1676433;
return r1676434;
}



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 add-log-exp0.2
rmApplied flip3--0.2
rmApplied add-cbrt-cube0.2
Final simplification0.2
herbie shell --seed 2019153
(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))))))))))