\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{{\left(\cos delta\right)}^{3} - \left(\left(\sin \phi_1 \cdot \sin \phi_1\right) \cdot \sin \phi_1\right) \cdot \left(\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 \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) \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)}{\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) \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) + \cos delta\right) + \cos delta \cdot \cos delta}}double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r126065 = lambda1;
double r126066 = theta;
double r126067 = sin(r126066);
double r126068 = delta;
double r126069 = sin(r126068);
double r126070 = r126067 * r126069;
double r126071 = phi1;
double r126072 = cos(r126071);
double r126073 = r126070 * r126072;
double r126074 = cos(r126068);
double r126075 = sin(r126071);
double r126076 = r126075 * r126074;
double r126077 = r126072 * r126069;
double r126078 = cos(r126066);
double r126079 = r126077 * r126078;
double r126080 = r126076 + r126079;
double r126081 = asin(r126080);
double r126082 = sin(r126081);
double r126083 = r126075 * r126082;
double r126084 = r126074 - r126083;
double r126085 = atan2(r126073, r126084);
double r126086 = r126065 + r126085;
return r126086;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r126087 = lambda1;
double r126088 = theta;
double r126089 = sin(r126088);
double r126090 = delta;
double r126091 = sin(r126090);
double r126092 = r126089 * r126091;
double r126093 = phi1;
double r126094 = cos(r126093);
double r126095 = r126092 * r126094;
double r126096 = cos(r126090);
double r126097 = 3.0;
double r126098 = pow(r126096, r126097);
double r126099 = sin(r126093);
double r126100 = r126099 * r126099;
double r126101 = r126100 * r126099;
double r126102 = r126099 * r126096;
double r126103 = r126094 * r126091;
double r126104 = cos(r126088);
double r126105 = r126103 * r126104;
double r126106 = r126102 + r126105;
double r126107 = asin(r126106);
double r126108 = sin(r126107);
double r126109 = r126108 * r126108;
double r126110 = r126109 * r126108;
double r126111 = r126101 * r126110;
double r126112 = r126098 - r126111;
double r126113 = r126099 * r126108;
double r126114 = r126113 + r126096;
double r126115 = r126113 * r126114;
double r126116 = r126096 * r126096;
double r126117 = r126115 + r126116;
double r126118 = r126112 / r126117;
double r126119 = atan2(r126095, r126118);
double r126120 = r126087 + r126119;
return r126120;
}



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 flip3--0.2
Simplified0.2
rmApplied add-cbrt-cube0.2
Applied add-cbrt-cube0.2
Applied cbrt-unprod0.2
Applied rem-cube-cbrt0.2
Final simplification0.2
herbie shell --seed 2020025
(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))))))))))