Average Error: 0.2 → 0.2
Time: 45.9s
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 - \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)}\]
\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 - \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)}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r57213 = lambda1;
        double r57214 = theta;
        double r57215 = sin(r57214);
        double r57216 = delta;
        double r57217 = sin(r57216);
        double r57218 = r57215 * r57217;
        double r57219 = phi1;
        double r57220 = cos(r57219);
        double r57221 = r57218 * r57220;
        double r57222 = cos(r57216);
        double r57223 = sin(r57219);
        double r57224 = r57223 * r57222;
        double r57225 = r57220 * r57217;
        double r57226 = cos(r57214);
        double r57227 = r57225 * r57226;
        double r57228 = r57224 + r57227;
        double r57229 = asin(r57228);
        double r57230 = sin(r57229);
        double r57231 = r57223 * r57230;
        double r57232 = r57222 - r57231;
        double r57233 = atan2(r57221, r57232);
        double r57234 = r57213 + r57233;
        return r57234;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r57235 = lambda1;
        double r57236 = theta;
        double r57237 = sin(r57236);
        double r57238 = delta;
        double r57239 = sin(r57238);
        double r57240 = r57237 * r57239;
        double r57241 = phi1;
        double r57242 = cos(r57241);
        double r57243 = r57240 * r57242;
        double r57244 = cos(r57238);
        double r57245 = sin(r57241);
        double r57246 = r57245 * r57244;
        double r57247 = r57242 * r57239;
        double r57248 = cos(r57236);
        double r57249 = r57247 * r57248;
        double r57250 = r57246 + r57249;
        double r57251 = asin(r57250);
        double r57252 = sin(r57251);
        double r57253 = r57245 * r57252;
        double r57254 = exp(r57253);
        double r57255 = log(r57254);
        double r57256 = r57244 - r57255;
        double r57257 = atan2(r57243, r57256);
        double r57258 = r57235 + r57257;
        return r57258;
}

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

Reproduce

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