Average Error: 0.2 → 0.2
Time: 44.6s
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)}\]
\[\tan^{-1}_* \frac{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\log \left(e^{\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \sin delta \cdot \left(\cos theta \cdot \cos \phi_1\right)\right)\right)}\right)} + \lambda_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)}
\tan^{-1}_* \frac{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\log \left(e^{\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \sin delta \cdot \left(\cos theta \cdot \cos \phi_1\right)\right)\right)}\right)} + \lambda_1
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r1663747 = lambda1;
        double r1663748 = theta;
        double r1663749 = sin(r1663748);
        double r1663750 = delta;
        double r1663751 = sin(r1663750);
        double r1663752 = r1663749 * r1663751;
        double r1663753 = phi1;
        double r1663754 = cos(r1663753);
        double r1663755 = r1663752 * r1663754;
        double r1663756 = cos(r1663750);
        double r1663757 = sin(r1663753);
        double r1663758 = r1663757 * r1663756;
        double r1663759 = r1663754 * r1663751;
        double r1663760 = cos(r1663748);
        double r1663761 = r1663759 * r1663760;
        double r1663762 = r1663758 + r1663761;
        double r1663763 = asin(r1663762);
        double r1663764 = sin(r1663763);
        double r1663765 = r1663757 * r1663764;
        double r1663766 = r1663756 - r1663765;
        double r1663767 = atan2(r1663755, r1663766);
        double r1663768 = r1663747 + r1663767;
        return r1663768;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r1663769 = phi1;
        double r1663770 = cos(r1663769);
        double r1663771 = delta;
        double r1663772 = sin(r1663771);
        double r1663773 = theta;
        double r1663774 = sin(r1663773);
        double r1663775 = r1663772 * r1663774;
        double r1663776 = r1663770 * r1663775;
        double r1663777 = cos(r1663771);
        double r1663778 = sin(r1663769);
        double r1663779 = r1663777 * r1663778;
        double r1663780 = cos(r1663773);
        double r1663781 = r1663780 * r1663770;
        double r1663782 = r1663772 * r1663781;
        double r1663783 = r1663779 + r1663782;
        double r1663784 = asin(r1663783);
        double r1663785 = sin(r1663784);
        double r1663786 = r1663778 * r1663785;
        double r1663787 = r1663777 - r1663786;
        double r1663788 = exp(r1663787);
        double r1663789 = log(r1663788);
        double r1663790 = atan2(r1663776, r1663789);
        double r1663791 = lambda1;
        double r1663792 = r1663790 + r1663791;
        return r1663792;
}

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-log-exp0.2

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

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

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

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

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

Reproduce

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