\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 r3281299 = lambda1;
double r3281300 = theta;
double r3281301 = sin(r3281300);
double r3281302 = delta;
double r3281303 = sin(r3281302);
double r3281304 = r3281301 * r3281303;
double r3281305 = phi1;
double r3281306 = cos(r3281305);
double r3281307 = r3281304 * r3281306;
double r3281308 = cos(r3281302);
double r3281309 = sin(r3281305);
double r3281310 = r3281309 * r3281308;
double r3281311 = r3281306 * r3281303;
double r3281312 = cos(r3281300);
double r3281313 = r3281311 * r3281312;
double r3281314 = r3281310 + r3281313;
double r3281315 = asin(r3281314);
double r3281316 = sin(r3281315);
double r3281317 = r3281309 * r3281316;
double r3281318 = r3281308 - r3281317;
double r3281319 = atan2(r3281307, r3281318);
double r3281320 = r3281299 + r3281319;
return r3281320;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r3281321 = phi1;
double r3281322 = cos(r3281321);
double r3281323 = delta;
double r3281324 = sin(r3281323);
double r3281325 = theta;
double r3281326 = sin(r3281325);
double r3281327 = r3281324 * r3281326;
double r3281328 = r3281322 * r3281327;
double r3281329 = 1.0;
double r3281330 = sin(r3281321);
double r3281331 = cos(r3281325);
double r3281332 = r3281322 * r3281324;
double r3281333 = r3281331 * r3281332;
double r3281334 = cos(r3281323);
double r3281335 = r3281330 * r3281334;
double r3281336 = r3281333 + r3281335;
double r3281337 = asin(r3281336);
double r3281338 = sin(r3281337);
double r3281339 = r3281330 * r3281338;
double r3281340 = r3281339 + r3281334;
double r3281341 = r3281329 / r3281340;
double r3281342 = r3281334 * r3281334;
double r3281343 = r3281338 * r3281339;
double r3281344 = r3281330 * r3281343;
double r3281345 = r3281342 - r3281344;
double r3281346 = r3281341 * r3281345;
double r3281347 = atan2(r3281328, r3281346);
double r3281348 = lambda1;
double r3281349 = r3281347 + r3281348;
return r3281349;
}



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))))))))))