Average Error: 0.2 → 0.2
Time: 50.3s
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)}{\cos delta - \log \left(e^{\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)}\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)}{\cos delta - \log \left(e^{\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)}\right)} + \lambda_1
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r4648882 = lambda1;
        double r4648883 = theta;
        double r4648884 = sin(r4648883);
        double r4648885 = delta;
        double r4648886 = sin(r4648885);
        double r4648887 = r4648884 * r4648886;
        double r4648888 = phi1;
        double r4648889 = cos(r4648888);
        double r4648890 = r4648887 * r4648889;
        double r4648891 = cos(r4648885);
        double r4648892 = sin(r4648888);
        double r4648893 = r4648892 * r4648891;
        double r4648894 = r4648889 * r4648886;
        double r4648895 = cos(r4648883);
        double r4648896 = r4648894 * r4648895;
        double r4648897 = r4648893 + r4648896;
        double r4648898 = asin(r4648897);
        double r4648899 = sin(r4648898);
        double r4648900 = r4648892 * r4648899;
        double r4648901 = r4648891 - r4648900;
        double r4648902 = atan2(r4648890, r4648901);
        double r4648903 = r4648882 + r4648902;
        return r4648903;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r4648904 = phi1;
        double r4648905 = cos(r4648904);
        double r4648906 = delta;
        double r4648907 = sin(r4648906);
        double r4648908 = theta;
        double r4648909 = sin(r4648908);
        double r4648910 = r4648907 * r4648909;
        double r4648911 = r4648905 * r4648910;
        double r4648912 = cos(r4648906);
        double r4648913 = sin(r4648904);
        double r4648914 = r4648912 * r4648913;
        double r4648915 = cos(r4648908);
        double r4648916 = r4648905 * r4648907;
        double r4648917 = r4648915 * r4648916;
        double r4648918 = r4648914 + r4648917;
        double r4648919 = asin(r4648918);
        double r4648920 = sin(r4648919);
        double r4648921 = r4648913 * r4648920;
        double r4648922 = exp(r4648921);
        double r4648923 = log(r4648922);
        double r4648924 = r4648912 - r4648923;
        double r4648925 = atan2(r4648911, r4648924);
        double r4648926 = lambda1;
        double r4648927 = r4648925 + r4648926;
        return r4648927;
}

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. Final simplification0.2

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

Reproduce

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