Average Error: 0.2 → 0.2
Time: 54.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 - \sin \phi_1 \cdot \sin \left(\frac{\pi}{2} - \cos^{-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 - \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 - \sin \phi_1 \cdot \sin \left(\frac{\pi}{2} - \cos^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r65214 = lambda1;
        double r65215 = theta;
        double r65216 = sin(r65215);
        double r65217 = delta;
        double r65218 = sin(r65217);
        double r65219 = r65216 * r65218;
        double r65220 = phi1;
        double r65221 = cos(r65220);
        double r65222 = r65219 * r65221;
        double r65223 = cos(r65217);
        double r65224 = sin(r65220);
        double r65225 = r65224 * r65223;
        double r65226 = r65221 * r65218;
        double r65227 = cos(r65215);
        double r65228 = r65226 * r65227;
        double r65229 = r65225 + r65228;
        double r65230 = asin(r65229);
        double r65231 = sin(r65230);
        double r65232 = r65224 * r65231;
        double r65233 = r65223 - r65232;
        double r65234 = atan2(r65222, r65233);
        double r65235 = r65214 + r65234;
        return r65235;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r65236 = lambda1;
        double r65237 = theta;
        double r65238 = sin(r65237);
        double r65239 = delta;
        double r65240 = sin(r65239);
        double r65241 = r65238 * r65240;
        double r65242 = phi1;
        double r65243 = cos(r65242);
        double r65244 = r65241 * r65243;
        double r65245 = cos(r65239);
        double r65246 = sin(r65242);
        double r65247 = atan2(1.0, 0.0);
        double r65248 = 2.0;
        double r65249 = r65247 / r65248;
        double r65250 = r65246 * r65245;
        double r65251 = r65243 * r65240;
        double r65252 = cos(r65237);
        double r65253 = r65251 * r65252;
        double r65254 = r65250 + r65253;
        double r65255 = acos(r65254);
        double r65256 = r65249 - r65255;
        double r65257 = sin(r65256);
        double r65258 = r65246 * r65257;
        double r65259 = r65245 - r65258;
        double r65260 = atan2(r65244, r65259);
        double r65261 = r65236 + r65260;
        return r65261;
}

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 asin-acos0.2

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

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

Reproduce

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