Average Error: 0.2 → 0.2
Time: 1.4m
Precision: 64
\[\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(\cos \phi_1 \cdot \sin theta\right) \cdot \sin delta}{\frac{\mathsf{fma}\left(1, {\left(\cos delta\right)}^{3}, \left(-{\left(\sin \phi_1\right)}^{3}\right) \cdot {\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}^{3}\right) + \mathsf{fma}\left(-{\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}^{3}, {\left(\sin \phi_1\right)}^{3}, {\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}^{3} \cdot {\left(\sin \phi_1\right)}^{3}\right)}{\left(\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) + \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) \cdot \cos delta\right) + \cos delta \cdot \cos delta}}\]
\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(\cos \phi_1 \cdot \sin theta\right) \cdot \sin delta}{\frac{\mathsf{fma}\left(1, {\left(\cos delta\right)}^{3}, \left(-{\left(\sin \phi_1\right)}^{3}\right) \cdot {\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}^{3}\right) + \mathsf{fma}\left(-{\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}^{3}, {\left(\sin \phi_1\right)}^{3}, {\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}^{3} \cdot {\left(\sin \phi_1\right)}^{3}\right)}{\left(\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) + \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) \cdot \cos delta\right) + \cos delta \cdot \cos delta}}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r5094241 = lambda1;
        double r5094242 = theta;
        double r5094243 = sin(r5094242);
        double r5094244 = delta;
        double r5094245 = sin(r5094244);
        double r5094246 = r5094243 * r5094245;
        double r5094247 = phi1;
        double r5094248 = cos(r5094247);
        double r5094249 = r5094246 * r5094248;
        double r5094250 = cos(r5094244);
        double r5094251 = sin(r5094247);
        double r5094252 = r5094251 * r5094250;
        double r5094253 = r5094248 * r5094245;
        double r5094254 = cos(r5094242);
        double r5094255 = r5094253 * r5094254;
        double r5094256 = r5094252 + r5094255;
        double r5094257 = asin(r5094256);
        double r5094258 = sin(r5094257);
        double r5094259 = r5094251 * r5094258;
        double r5094260 = r5094250 - r5094259;
        double r5094261 = atan2(r5094249, r5094260);
        double r5094262 = r5094241 + r5094261;
        return r5094262;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r5094263 = lambda1;
        double r5094264 = phi1;
        double r5094265 = cos(r5094264);
        double r5094266 = theta;
        double r5094267 = sin(r5094266);
        double r5094268 = r5094265 * r5094267;
        double r5094269 = delta;
        double r5094270 = sin(r5094269);
        double r5094271 = r5094268 * r5094270;
        double r5094272 = 1.0;
        double r5094273 = cos(r5094269);
        double r5094274 = 3.0;
        double r5094275 = pow(r5094273, r5094274);
        double r5094276 = sin(r5094264);
        double r5094277 = pow(r5094276, r5094274);
        double r5094278 = -r5094277;
        double r5094279 = cos(r5094266);
        double r5094280 = r5094265 * r5094270;
        double r5094281 = r5094276 * r5094273;
        double r5094282 = fma(r5094279, r5094280, r5094281);
        double r5094283 = asin(r5094282);
        double r5094284 = sin(r5094283);
        double r5094285 = pow(r5094284, r5094274);
        double r5094286 = r5094278 * r5094285;
        double r5094287 = fma(r5094272, r5094275, r5094286);
        double r5094288 = -r5094285;
        double r5094289 = r5094285 * r5094277;
        double r5094290 = fma(r5094288, r5094277, r5094289);
        double r5094291 = r5094287 + r5094290;
        double r5094292 = r5094276 * r5094284;
        double r5094293 = r5094292 * r5094292;
        double r5094294 = r5094292 * r5094273;
        double r5094295 = r5094293 + r5094294;
        double r5094296 = r5094273 * r5094273;
        double r5094297 = r5094295 + r5094296;
        double r5094298 = r5094291 / r5094297;
        double r5094299 = atan2(r5094271, r5094298);
        double r5094300 = r5094263 + r5094299;
        return r5094300;
}

Error

Bits error versus lambda1

Bits error versus phi1

Bits error versus phi2

Bits error versus delta

Bits error versus theta

Derivation

  1. Initial program 0.2

    \[\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)}\]
  2. Simplified0.2

    \[\leadsto \color{blue}{\tan^{-1}_* \frac{\sin delta \cdot \left(\cos \phi_1 \cdot \sin theta\right)}{\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)} + \lambda_1}\]
  3. Using strategy rm
  4. Applied flip3--0.2

    \[\leadsto \tan^{-1}_* \frac{\sin delta \cdot \left(\cos \phi_1 \cdot \sin theta\right)}{\color{blue}{\frac{{\left(\cos delta\right)}^{3} - {\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right)}^{3}}{\cos delta \cdot \cos delta + \left(\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right) + \cos delta \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right)\right)}}} + \lambda_1\]
  5. Using strategy rm
  6. Applied unpow-prod-down0.2

    \[\leadsto \tan^{-1}_* \frac{\sin delta \cdot \left(\cos \phi_1 \cdot \sin theta\right)}{\frac{{\left(\cos delta\right)}^{3} - \color{blue}{{\left(\sin \phi_1\right)}^{3} \cdot {\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right)}^{3}}}{\cos delta \cdot \cos delta + \left(\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right) + \cos delta \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right)\right)}} + \lambda_1\]
  7. Applied *-un-lft-identity0.2

    \[\leadsto \tan^{-1}_* \frac{\sin delta \cdot \left(\cos \phi_1 \cdot \sin theta\right)}{\frac{\color{blue}{1 \cdot {\left(\cos delta\right)}^{3}} - {\left(\sin \phi_1\right)}^{3} \cdot {\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right)}^{3}}{\cos delta \cdot \cos delta + \left(\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right) + \cos delta \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right)\right)}} + \lambda_1\]
  8. Applied prod-diff0.2

    \[\leadsto \tan^{-1}_* \frac{\sin delta \cdot \left(\cos \phi_1 \cdot \sin theta\right)}{\frac{\color{blue}{\mathsf{fma}\left(1, {\left(\cos delta\right)}^{3}, -{\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right)}^{3} \cdot {\left(\sin \phi_1\right)}^{3}\right) + \mathsf{fma}\left(-{\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right)}^{3}, {\left(\sin \phi_1\right)}^{3}, {\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right)}^{3} \cdot {\left(\sin \phi_1\right)}^{3}\right)}}{\cos delta \cdot \cos delta + \left(\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right) + \cos delta \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \cos delta \cdot \sin \phi_1\right)\right)\right)\right)\right)}} + \lambda_1\]
  9. Final simplification0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\cos \phi_1 \cdot \sin theta\right) \cdot \sin delta}{\frac{\mathsf{fma}\left(1, {\left(\cos delta\right)}^{3}, \left(-{\left(\sin \phi_1\right)}^{3}\right) \cdot {\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}^{3}\right) + \mathsf{fma}\left(-{\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}^{3}, {\left(\sin \phi_1\right)}^{3}, {\left(\sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}^{3} \cdot {\left(\sin \phi_1\right)}^{3}\right)}{\left(\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) + \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\cos theta, \cos \phi_1 \cdot \sin delta, \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) \cdot \cos delta\right) + \cos delta \cdot \cos delta}}\]

Reproduce

herbie shell --seed 2019168 +o rules:numerics
(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))))))))))