Average Error: 0.2 → 0.2
Time: 14.5s
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(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \sin \phi_1 \cdot \sin \left(\sqrt[3]{{\left(\sin^{-1} \left(\sin delta \cdot \left(\cos \phi_1 \cdot \cos theta\right) + \sin \phi_1 \cdot \cos delta\right)\right)}^{3}}\right)}\]
\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}{\cos delta - \sin \phi_1 \cdot \sin \left(\sqrt[3]{{\left(\sin^{-1} \left(\sin delta \cdot \left(\cos \phi_1 \cdot \cos theta\right) + \sin \phi_1 \cdot \cos delta\right)\right)}^{3}}\right)}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r72248 = lambda1;
        double r72249 = theta;
        double r72250 = sin(r72249);
        double r72251 = delta;
        double r72252 = sin(r72251);
        double r72253 = r72250 * r72252;
        double r72254 = phi1;
        double r72255 = cos(r72254);
        double r72256 = r72253 * r72255;
        double r72257 = cos(r72251);
        double r72258 = sin(r72254);
        double r72259 = r72258 * r72257;
        double r72260 = r72255 * r72252;
        double r72261 = cos(r72249);
        double r72262 = r72260 * r72261;
        double r72263 = r72259 + r72262;
        double r72264 = asin(r72263);
        double r72265 = sin(r72264);
        double r72266 = r72258 * r72265;
        double r72267 = r72257 - r72266;
        double r72268 = atan2(r72256, r72267);
        double r72269 = r72248 + r72268;
        return r72269;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r72270 = lambda1;
        double r72271 = theta;
        double r72272 = sin(r72271);
        double r72273 = delta;
        double r72274 = sin(r72273);
        double r72275 = r72272 * r72274;
        double r72276 = phi1;
        double r72277 = cos(r72276);
        double r72278 = r72275 * r72277;
        double r72279 = cos(r72273);
        double r72280 = sin(r72276);
        double r72281 = cos(r72271);
        double r72282 = r72277 * r72281;
        double r72283 = r72274 * r72282;
        double r72284 = r72280 * r72279;
        double r72285 = r72283 + r72284;
        double r72286 = asin(r72285);
        double r72287 = 3.0;
        double r72288 = pow(r72286, r72287);
        double r72289 = cbrt(r72288);
        double r72290 = sin(r72289);
        double r72291 = r72280 * r72290;
        double r72292 = r72279 - r72291;
        double r72293 = atan2(r72278, r72292);
        double r72294 = r72270 + r72293;
        return r72294;
}

Error

Bits error versus lambda1

Bits error versus phi1

Bits error versus phi2

Bits error versus delta

Bits error versus theta

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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. Using strategy rm
  3. Applied add-cbrt-cube0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \sin \phi_1 \cdot \sin \color{blue}{\left(\sqrt[3]{\left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right) \cdot \sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right) \cdot \sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)}\right)}}\]
  4. Simplified0.2

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

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

Reproduce

herbie shell --seed 2019356 
(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))))))))))