Average Error: 0.2 → 0.2
Time: 45.4s
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)}{\cos delta - \left(\sin \phi_1 \cdot \left(\left(\sin delta \cdot \cos theta\right) \cdot \cos \phi_1\right) + \sin \phi_1 \cdot \left(\cos delta \cdot \sin \phi_1\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{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\cos delta - \left(\sin \phi_1 \cdot \left(\left(\sin delta \cdot \cos theta\right) \cdot \cos \phi_1\right) + \sin \phi_1 \cdot \left(\cos delta \cdot \sin \phi_1\right)\right)}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r1724772 = lambda1;
        double r1724773 = theta;
        double r1724774 = sin(r1724773);
        double r1724775 = delta;
        double r1724776 = sin(r1724775);
        double r1724777 = r1724774 * r1724776;
        double r1724778 = phi1;
        double r1724779 = cos(r1724778);
        double r1724780 = r1724777 * r1724779;
        double r1724781 = cos(r1724775);
        double r1724782 = sin(r1724778);
        double r1724783 = r1724782 * r1724781;
        double r1724784 = r1724779 * r1724776;
        double r1724785 = cos(r1724773);
        double r1724786 = r1724784 * r1724785;
        double r1724787 = r1724783 + r1724786;
        double r1724788 = asin(r1724787);
        double r1724789 = sin(r1724788);
        double r1724790 = r1724782 * r1724789;
        double r1724791 = r1724781 - r1724790;
        double r1724792 = atan2(r1724780, r1724791);
        double r1724793 = r1724772 + r1724792;
        return r1724793;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r1724794 = lambda1;
        double r1724795 = phi1;
        double r1724796 = cos(r1724795);
        double r1724797 = delta;
        double r1724798 = sin(r1724797);
        double r1724799 = theta;
        double r1724800 = sin(r1724799);
        double r1724801 = r1724798 * r1724800;
        double r1724802 = r1724796 * r1724801;
        double r1724803 = cos(r1724797);
        double r1724804 = sin(r1724795);
        double r1724805 = cos(r1724799);
        double r1724806 = r1724798 * r1724805;
        double r1724807 = r1724806 * r1724796;
        double r1724808 = r1724804 * r1724807;
        double r1724809 = r1724803 * r1724804;
        double r1724810 = r1724804 * r1724809;
        double r1724811 = r1724808 + r1724810;
        double r1724812 = r1724803 - r1724811;
        double r1724813 = atan2(r1724802, r1724812);
        double r1724814 = r1724794 + r1724813;
        return r1724814;
}

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

    \[\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 \left(\sin \phi_1 \cdot \cos delta\right) + \sin \phi_1 \cdot \left(\cos \phi_1 \cdot \left(\cos theta \cdot \sin delta\right)\right)\right)}}\]
  5. Final simplification0.2

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

Reproduce

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