\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{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\frac{\sqrt[3]{\left(\left(\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)\right) \cdot \left(\cos delta \cdot \cos delta - \left(\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)\right) \cdot \left(\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)\right)\right)\right) \cdot \left(\cos delta \cdot \cos delta - \left(\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)\right) \cdot \left(\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)\right)\right)}}{\sqrt[3]{\left(\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)\right) \cdot \left(\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)\right)}}}double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r6287026 = lambda1;
double r6287027 = theta;
double r6287028 = sin(r6287027);
double r6287029 = delta;
double r6287030 = sin(r6287029);
double r6287031 = r6287028 * r6287030;
double r6287032 = phi1;
double r6287033 = cos(r6287032);
double r6287034 = r6287031 * r6287033;
double r6287035 = cos(r6287029);
double r6287036 = sin(r6287032);
double r6287037 = r6287036 * r6287035;
double r6287038 = r6287033 * r6287030;
double r6287039 = cos(r6287027);
double r6287040 = r6287038 * r6287039;
double r6287041 = r6287037 + r6287040;
double r6287042 = asin(r6287041);
double r6287043 = sin(r6287042);
double r6287044 = r6287036 * r6287043;
double r6287045 = r6287035 - r6287044;
double r6287046 = atan2(r6287034, r6287045);
double r6287047 = r6287026 + r6287046;
return r6287047;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r6287048 = lambda1;
double r6287049 = phi1;
double r6287050 = cos(r6287049);
double r6287051 = delta;
double r6287052 = sin(r6287051);
double r6287053 = theta;
double r6287054 = sin(r6287053);
double r6287055 = r6287052 * r6287054;
double r6287056 = r6287050 * r6287055;
double r6287057 = cos(r6287051);
double r6287058 = sin(r6287049);
double r6287059 = r6287057 * r6287058;
double r6287060 = cos(r6287053);
double r6287061 = r6287050 * r6287052;
double r6287062 = r6287060 * r6287061;
double r6287063 = r6287059 + r6287062;
double r6287064 = asin(r6287063);
double r6287065 = sin(r6287064);
double r6287066 = r6287058 * r6287065;
double r6287067 = r6287057 - r6287066;
double r6287068 = r6287057 * r6287057;
double r6287069 = r6287066 * r6287066;
double r6287070 = r6287068 - r6287069;
double r6287071 = r6287067 * r6287070;
double r6287072 = r6287071 * r6287070;
double r6287073 = cbrt(r6287072);
double r6287074 = r6287057 + r6287066;
double r6287075 = r6287074 * r6287074;
double r6287076 = cbrt(r6287075);
double r6287077 = r6287073 / r6287076;
double r6287078 = atan2(r6287056, r6287077);
double r6287079 = r6287048 + r6287078;
return r6287079;
}



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-cbrt-cube0.2
rmApplied flip--0.2
Applied flip--0.2
Applied associate-*r/0.2
Applied frac-times0.2
Applied cbrt-div0.2
Final simplification0.2
herbie shell --seed 2019168
(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))))))))))