Average Error: 0.2 → 0.2
Time: 38.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(\cos \phi_1 \cdot \sin theta\right) \cdot \sin delta}{\cos delta - \sin \phi_1 \cdot \sin \left(\log \left(e^{\sin^{-1} \left(\left(\cos theta \cdot \sin delta\right) \cdot \cos \phi_1 + \sin \phi_1 \cdot \cos delta\right)}\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(\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}{\cos delta - \sin \phi_1 \cdot \sin \left(\log \left(e^{\sin^{-1} \left(\left(\cos theta \cdot \sin delta\right) \cdot \cos \phi_1 + \sin \phi_1 \cdot \cos delta\right)}\right)\right)}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r60451 = lambda1;
        double r60452 = theta;
        double r60453 = sin(r60452);
        double r60454 = delta;
        double r60455 = sin(r60454);
        double r60456 = r60453 * r60455;
        double r60457 = phi1;
        double r60458 = cos(r60457);
        double r60459 = r60456 * r60458;
        double r60460 = cos(r60454);
        double r60461 = sin(r60457);
        double r60462 = r60461 * r60460;
        double r60463 = r60458 * r60455;
        double r60464 = cos(r60452);
        double r60465 = r60463 * r60464;
        double r60466 = r60462 + r60465;
        double r60467 = asin(r60466);
        double r60468 = sin(r60467);
        double r60469 = r60461 * r60468;
        double r60470 = r60460 - r60469;
        double r60471 = atan2(r60459, r60470);
        double r60472 = r60451 + r60471;
        return r60472;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r60473 = lambda1;
        double r60474 = phi1;
        double r60475 = cos(r60474);
        double r60476 = theta;
        double r60477 = sin(r60476);
        double r60478 = r60475 * r60477;
        double r60479 = delta;
        double r60480 = sin(r60479);
        double r60481 = r60478 * r60480;
        double r60482 = cos(r60479);
        double r60483 = sin(r60474);
        double r60484 = cos(r60476);
        double r60485 = r60484 * r60480;
        double r60486 = r60485 * r60475;
        double r60487 = r60483 * r60482;
        double r60488 = r60486 + r60487;
        double r60489 = asin(r60488);
        double r60490 = exp(r60489);
        double r60491 = log(r60490);
        double r60492 = sin(r60491);
        double r60493 = r60483 * r60492;
        double r60494 = r60482 - r60493;
        double r60495 = atan2(r60481, r60494);
        double r60496 = r60473 + r60495;
        return r60496;
}

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. 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(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)\right)} + \lambda_1}\]
  3. Using strategy rm
  4. Applied add-log-exp0.2

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

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

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

Reproduce

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