Average Error: 0.2 → 0.2
Time: 57.8s
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{\left(\cos \phi_1 \cdot \sin delta\right) \cdot \sin theta}{\cos delta - \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \cos delta \cdot \sin \phi_1\right) \cdot \sin \phi_1} + \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{\left(\cos \phi_1 \cdot \sin delta\right) \cdot \sin theta}{\cos delta - \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \cos delta \cdot \sin \phi_1\right) \cdot \sin \phi_1} + \lambda_1
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r4708952 = lambda1;
        double r4708953 = theta;
        double r4708954 = sin(r4708953);
        double r4708955 = delta;
        double r4708956 = sin(r4708955);
        double r4708957 = r4708954 * r4708956;
        double r4708958 = phi1;
        double r4708959 = cos(r4708958);
        double r4708960 = r4708957 * r4708959;
        double r4708961 = cos(r4708955);
        double r4708962 = sin(r4708958);
        double r4708963 = r4708962 * r4708961;
        double r4708964 = r4708959 * r4708956;
        double r4708965 = cos(r4708953);
        double r4708966 = r4708964 * r4708965;
        double r4708967 = r4708963 + r4708966;
        double r4708968 = asin(r4708967);
        double r4708969 = sin(r4708968);
        double r4708970 = r4708962 * r4708969;
        double r4708971 = r4708961 - r4708970;
        double r4708972 = atan2(r4708960, r4708971);
        double r4708973 = r4708952 + r4708972;
        return r4708973;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r4708974 = phi1;
        double r4708975 = cos(r4708974);
        double r4708976 = delta;
        double r4708977 = sin(r4708976);
        double r4708978 = r4708975 * r4708977;
        double r4708979 = theta;
        double r4708980 = sin(r4708979);
        double r4708981 = r4708978 * r4708980;
        double r4708982 = cos(r4708976);
        double r4708983 = cos(r4708979);
        double r4708984 = r4708983 * r4708978;
        double r4708985 = sin(r4708974);
        double r4708986 = r4708982 * r4708985;
        double r4708987 = r4708984 + r4708986;
        double r4708988 = r4708987 * r4708985;
        double r4708989 = r4708982 - r4708988;
        double r4708990 = atan2(r4708981, r4708989);
        double r4708991 = lambda1;
        double r4708992 = r4708990 + r4708991;
        return r4708992;
}

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}{\color{blue}{\cos delta - \left({\left(\sin \phi_1\right)}^{2} \cdot \cos delta + \sin \phi_1 \cdot \left(\sin delta \cdot \left(\cos theta \cdot \cos \phi_1\right)\right)\right)}}\]
  3. Simplified0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\color{blue}{\cos delta - \sin \phi_1 \cdot \left(\cos delta \cdot \sin \phi_1 + \left(\sin delta \cdot \cos \phi_1\right) \cdot \cos theta\right)}}\]
  4. Using strategy rm
  5. Applied associate-*l*0.2

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

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

Reproduce

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