Average Error: 0.2 → 0.2
Time: 23.2s
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 \log \left(e^{\sin \left(\log \left(e^{\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)}\right)\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 \log \left(e^{\sin \left(\log \left(e^{\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)}\right)\right)}\right)}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r84285 = lambda1;
        double r84286 = theta;
        double r84287 = sin(r84286);
        double r84288 = delta;
        double r84289 = sin(r84288);
        double r84290 = r84287 * r84289;
        double r84291 = phi1;
        double r84292 = cos(r84291);
        double r84293 = r84290 * r84292;
        double r84294 = cos(r84288);
        double r84295 = sin(r84291);
        double r84296 = r84295 * r84294;
        double r84297 = r84292 * r84289;
        double r84298 = cos(r84286);
        double r84299 = r84297 * r84298;
        double r84300 = r84296 + r84299;
        double r84301 = asin(r84300);
        double r84302 = sin(r84301);
        double r84303 = r84295 * r84302;
        double r84304 = r84294 - r84303;
        double r84305 = atan2(r84293, r84304);
        double r84306 = r84285 + r84305;
        return r84306;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r84307 = lambda1;
        double r84308 = theta;
        double r84309 = sin(r84308);
        double r84310 = delta;
        double r84311 = sin(r84310);
        double r84312 = r84309 * r84311;
        double r84313 = phi1;
        double r84314 = cos(r84313);
        double r84315 = r84312 * r84314;
        double r84316 = cos(r84310);
        double r84317 = sin(r84313);
        double r84318 = r84317 * r84316;
        double r84319 = r84314 * r84311;
        double r84320 = cos(r84308);
        double r84321 = r84319 * r84320;
        double r84322 = r84318 + r84321;
        double r84323 = asin(r84322);
        double r84324 = exp(r84323);
        double r84325 = log(r84324);
        double r84326 = sin(r84325);
        double r84327 = exp(r84326);
        double r84328 = log(r84327);
        double r84329 = r84317 * r84328;
        double r84330 = r84316 - r84329;
        double r84331 = atan2(r84315, r84330);
        double r84332 = r84307 + r84331;
        return r84332;
}

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 - \sin \phi_1 \cdot \color{blue}{\log \left(e^{\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. Using strategy rm
  5. Applied add-log-exp0.2

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

Reproduce

herbie shell --seed 2019350 
(FPCore (lambda1 phi1 phi2 delta theta)
  :name "Destination given bearing on a great circle"
  :precision binary64
  (+ lambda1 (atan2 (* (* (sin theta) (sin delta)) (cos phi1)) (- (cos delta) (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta))))))))))