Average Error: 0.2 → 0.2
Time: 50.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{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\frac{\sqrt[3]{{\left({\left(\cos delta\right)}^{2} - \left(\sin \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)\right) \cdot {\left(\sin \phi_1\right)}^{2}\right) \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)}^{3}}}{\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \left(\cos \phi_1 \cdot \cos theta\right) \cdot \sin delta\right)\right) + \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{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\frac{\sqrt[3]{{\left({\left(\cos delta\right)}^{2} - \left(\sin \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)\right) \cdot {\left(\sin \phi_1\right)}^{2}\right) \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)}^{3}}}{\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \left(\cos \phi_1 \cdot \cos theta\right) \cdot \sin delta\right)\right) + \cos delta}}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r96378 = lambda1;
        double r96379 = theta;
        double r96380 = sin(r96379);
        double r96381 = delta;
        double r96382 = sin(r96381);
        double r96383 = r96380 * r96382;
        double r96384 = phi1;
        double r96385 = cos(r96384);
        double r96386 = r96383 * r96385;
        double r96387 = cos(r96381);
        double r96388 = sin(r96384);
        double r96389 = r96388 * r96387;
        double r96390 = r96385 * r96382;
        double r96391 = cos(r96379);
        double r96392 = r96390 * r96391;
        double r96393 = r96389 + r96392;
        double r96394 = asin(r96393);
        double r96395 = sin(r96394);
        double r96396 = r96388 * r96395;
        double r96397 = r96387 - r96396;
        double r96398 = atan2(r96386, r96397);
        double r96399 = r96378 + r96398;
        return r96399;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r96400 = lambda1;
        double r96401 = phi1;
        double r96402 = cos(r96401);
        double r96403 = delta;
        double r96404 = sin(r96403);
        double r96405 = theta;
        double r96406 = sin(r96405);
        double r96407 = r96404 * r96406;
        double r96408 = r96402 * r96407;
        double r96409 = cos(r96403);
        double r96410 = 2.0;
        double r96411 = pow(r96409, r96410);
        double r96412 = sin(r96401);
        double r96413 = r96409 * r96412;
        double r96414 = cos(r96405);
        double r96415 = r96402 * r96404;
        double r96416 = r96414 * r96415;
        double r96417 = r96413 + r96416;
        double r96418 = asin(r96417);
        double r96419 = sin(r96418);
        double r96420 = pow(r96412, r96410);
        double r96421 = r96419 * r96420;
        double r96422 = r96421 * r96419;
        double r96423 = r96411 - r96422;
        double r96424 = 3.0;
        double r96425 = pow(r96423, r96424);
        double r96426 = cbrt(r96425);
        double r96427 = r96402 * r96414;
        double r96428 = r96427 * r96404;
        double r96429 = r96413 + r96428;
        double r96430 = asin(r96429);
        double r96431 = sin(r96430);
        double r96432 = r96412 * r96431;
        double r96433 = r96432 + r96409;
        double r96434 = r96426 / r96433;
        double r96435 = atan2(r96408, r96434);
        double r96436 = r96400 + r96435;
        return r96436;
}

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 flip--0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\color{blue}{\frac{\cos delta \cdot \cos delta - \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)\right)}{\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)}}}\]
  4. Simplified0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\frac{\color{blue}{\cos delta \cdot \cos delta - \left({\left(\sin \phi_1\right)}^{2} \cdot \sin \left(\sin^{-1} \left(\left(\cos theta \cdot \cos \phi_1\right) \cdot \sin delta + \sin \phi_1 \cdot \cos delta\right)\right)\right) \cdot \sin \left(\sin^{-1} \left(\left(\cos theta \cdot \cos \phi_1\right) \cdot \sin delta + \sin \phi_1 \cdot \cos delta\right)\right)}}{\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)}}\]
  5. Simplified0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\frac{\cos delta \cdot \cos delta - \left({\left(\sin \phi_1\right)}^{2} \cdot \sin \left(\sin^{-1} \left(\left(\cos theta \cdot \cos \phi_1\right) \cdot \sin delta + \sin \phi_1 \cdot \cos delta\right)\right)\right) \cdot \sin \left(\sin^{-1} \left(\left(\cos theta \cdot \cos \phi_1\right) \cdot \sin delta + \sin \phi_1 \cdot \cos delta\right)\right)}{\color{blue}{\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\left(\cos theta \cdot \cos \phi_1\right) \cdot \sin delta + \sin \phi_1 \cdot \cos delta\right)\right) + \cos delta}}}\]
  6. Using strategy rm
  7. Applied add-cbrt-cube0.2

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

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

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\frac{\sqrt[3]{{\left({\left(\cos delta\right)}^{2} - \left(\sin \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)\right) \cdot {\left(\sin \phi_1\right)}^{2}\right) \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)}^{3}}}{\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \left(\cos \phi_1 \cdot \cos theta\right) \cdot \sin delta\right)\right) + \cos delta}}\]

Reproduce

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