Average Error: 0.2 → 0.1
Time: 41.1s
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 - \left(\sin \phi_1 \cdot \cos delta + \cos \phi_1 \cdot \left(\cos theta \cdot \sin delta\right)\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 - \left(\sin \phi_1 \cdot \cos delta + \cos \phi_1 \cdot \left(\cos theta \cdot \sin delta\right)\right) \cdot \sin \phi_1}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r59753 = lambda1;
        double r59754 = theta;
        double r59755 = sin(r59754);
        double r59756 = delta;
        double r59757 = sin(r59756);
        double r59758 = r59755 * r59757;
        double r59759 = phi1;
        double r59760 = cos(r59759);
        double r59761 = r59758 * r59760;
        double r59762 = cos(r59756);
        double r59763 = sin(r59759);
        double r59764 = r59763 * r59762;
        double r59765 = r59760 * r59757;
        double r59766 = cos(r59754);
        double r59767 = r59765 * r59766;
        double r59768 = r59764 + r59767;
        double r59769 = asin(r59768);
        double r59770 = sin(r59769);
        double r59771 = r59763 * r59770;
        double r59772 = r59762 - r59771;
        double r59773 = atan2(r59761, r59772);
        double r59774 = r59753 + r59773;
        return r59774;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r59775 = lambda1;
        double r59776 = theta;
        double r59777 = sin(r59776);
        double r59778 = delta;
        double r59779 = sin(r59778);
        double r59780 = r59777 * r59779;
        double r59781 = phi1;
        double r59782 = cos(r59781);
        double r59783 = r59780 * r59782;
        double r59784 = cos(r59778);
        double r59785 = sin(r59781);
        double r59786 = r59785 * r59784;
        double r59787 = cos(r59776);
        double r59788 = r59787 * r59779;
        double r59789 = r59782 * r59788;
        double r59790 = r59786 + r59789;
        double r59791 = r59790 * r59785;
        double r59792 = r59784 - r59791;
        double r59793 = atan2(r59783, r59792);
        double r59794 = r59775 + r59793;
        return r59794;
}

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 \color{blue}{\sqrt[3]{\left(\sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right) \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 \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. Applied add-cbrt-cube0.2

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

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

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \sqrt[3]{\color{blue}{{\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)}^{3}}}}\]
  7. Taylor expanded around inf 0.2

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

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

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

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

Reproduce

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