Average Error: 0.2 → 0.2
Time: 40.9s
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 \left(\sqrt[3]{{\left(\sin^{-1} \left(\mathsf{fma}\left(\sin \phi_1, \cos delta, \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)\right)}^{3}}\right) \cdot \sin \phi_1}\]
\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 \left(\sqrt[3]{{\left(\sin^{-1} \left(\mathsf{fma}\left(\sin \phi_1, \cos delta, \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)\right)}^{3}}\right) \cdot \sin \phi_1}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r85683 = lambda1;
        double r85684 = theta;
        double r85685 = sin(r85684);
        double r85686 = delta;
        double r85687 = sin(r85686);
        double r85688 = r85685 * r85687;
        double r85689 = phi1;
        double r85690 = cos(r85689);
        double r85691 = r85688 * r85690;
        double r85692 = cos(r85686);
        double r85693 = sin(r85689);
        double r85694 = r85693 * r85692;
        double r85695 = r85690 * r85687;
        double r85696 = cos(r85684);
        double r85697 = r85695 * r85696;
        double r85698 = r85694 + r85697;
        double r85699 = asin(r85698);
        double r85700 = sin(r85699);
        double r85701 = r85693 * r85700;
        double r85702 = r85692 - r85701;
        double r85703 = atan2(r85691, r85702);
        double r85704 = r85683 + r85703;
        return r85704;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r85705 = lambda1;
        double r85706 = theta;
        double r85707 = sin(r85706);
        double r85708 = delta;
        double r85709 = sin(r85708);
        double r85710 = r85707 * r85709;
        double r85711 = phi1;
        double r85712 = cos(r85711);
        double r85713 = r85710 * r85712;
        double r85714 = cos(r85708);
        double r85715 = sin(r85711);
        double r85716 = r85712 * r85709;
        double r85717 = cos(r85706);
        double r85718 = r85716 * r85717;
        double r85719 = fma(r85715, r85714, r85718);
        double r85720 = asin(r85719);
        double r85721 = 3.0;
        double r85722 = pow(r85720, r85721);
        double r85723 = cbrt(r85722);
        double r85724 = sin(r85723);
        double r85725 = r85724 * r85715;
        double r85726 = r85714 - r85725;
        double r85727 = atan2(r85713, r85726);
        double r85728 = r85705 + r85727;
        return r85728;
}

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}{\lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \sin \left(\sin^{-1} \left(\mathsf{fma}\left(\sin \phi_1, \cos delta, \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)\right) \cdot \sin \phi_1}}\]
  3. Using strategy rm
  4. 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 \color{blue}{\left(\sqrt[3]{\left(\sin^{-1} \left(\mathsf{fma}\left(\sin \phi_1, \cos delta, \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right) \cdot \sin^{-1} \left(\mathsf{fma}\left(\sin \phi_1, \cos delta, \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)\right) \cdot \sin^{-1} \left(\mathsf{fma}\left(\sin \phi_1, \cos delta, \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}\right)} \cdot \sin \phi_1}\]
  5. Simplified0.2

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

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

Reproduce

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