\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(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\frac{1}{\frac{\cos delta + \sin \phi_1 \cdot \sin \left(\frac{\pi}{2} - \cos^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}{\cos delta \cdot \cos delta - \sin \phi_1 \cdot \left(\sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right) \cdot \left(\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)\right)}}}double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r159202 = lambda1;
double r159203 = theta;
double r159204 = sin(r159203);
double r159205 = delta;
double r159206 = sin(r159205);
double r159207 = r159204 * r159206;
double r159208 = phi1;
double r159209 = cos(r159208);
double r159210 = r159207 * r159209;
double r159211 = cos(r159205);
double r159212 = sin(r159208);
double r159213 = r159212 * r159211;
double r159214 = r159209 * r159206;
double r159215 = cos(r159203);
double r159216 = r159214 * r159215;
double r159217 = r159213 + r159216;
double r159218 = asin(r159217);
double r159219 = sin(r159218);
double r159220 = r159212 * r159219;
double r159221 = r159211 - r159220;
double r159222 = atan2(r159210, r159221);
double r159223 = r159202 + r159222;
return r159223;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r159224 = lambda1;
double r159225 = theta;
double r159226 = sin(r159225);
double r159227 = delta;
double r159228 = sin(r159227);
double r159229 = r159226 * r159228;
double r159230 = phi1;
double r159231 = cos(r159230);
double r159232 = r159229 * r159231;
double r159233 = 1.0;
double r159234 = cos(r159227);
double r159235 = sin(r159230);
double r159236 = atan2(1.0, 0.0);
double r159237 = 2.0;
double r159238 = r159236 / r159237;
double r159239 = r159235 * r159234;
double r159240 = r159231 * r159228;
double r159241 = cos(r159225);
double r159242 = r159240 * r159241;
double r159243 = r159239 + r159242;
double r159244 = acos(r159243);
double r159245 = r159238 - r159244;
double r159246 = sin(r159245);
double r159247 = r159235 * r159246;
double r159248 = r159234 + r159247;
double r159249 = r159234 * r159234;
double r159250 = asin(r159243);
double r159251 = sin(r159250);
double r159252 = r159235 * r159251;
double r159253 = r159251 * r159252;
double r159254 = r159235 * r159253;
double r159255 = r159249 - r159254;
double r159256 = r159248 / r159255;
double r159257 = r159233 / r159256;
double r159258 = atan2(r159232, r159257);
double r159259 = r159224 + r159258;
return r159259;
}



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 asin-acos0.2
rmApplied associate-*l*0.2
rmApplied clear-num0.2
Final simplification0.2
herbie shell --seed 2020024
(FPCore (lambda1 phi1 phi2 delta theta)
:name "Destination given bearing on a great circle"
:precision binary64
(+ lambda1 (atan2 (* (* (sin theta) (sin delta)) (cos phi1)) (- (cos delta) (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta))))))))))