Average Error: 0.2 → 0.2
Time: 48.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 - \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 r69208 = lambda1;
        double r69209 = theta;
        double r69210 = sin(r69209);
        double r69211 = delta;
        double r69212 = sin(r69211);
        double r69213 = r69210 * r69212;
        double r69214 = phi1;
        double r69215 = cos(r69214);
        double r69216 = r69213 * r69215;
        double r69217 = cos(r69211);
        double r69218 = sin(r69214);
        double r69219 = r69218 * r69217;
        double r69220 = r69215 * r69212;
        double r69221 = cos(r69209);
        double r69222 = r69220 * r69221;
        double r69223 = r69219 + r69222;
        double r69224 = asin(r69223);
        double r69225 = sin(r69224);
        double r69226 = r69218 * r69225;
        double r69227 = r69217 - r69226;
        double r69228 = atan2(r69216, r69227);
        double r69229 = r69208 + r69228;
        return r69229;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r69230 = lambda1;
        double r69231 = theta;
        double r69232 = sin(r69231);
        double r69233 = delta;
        double r69234 = sin(r69233);
        double r69235 = r69232 * r69234;
        double r69236 = phi1;
        double r69237 = cos(r69236);
        double r69238 = r69235 * r69237;
        double r69239 = cos(r69233);
        double r69240 = sin(r69236);
        double r69241 = r69240 * r69239;
        double r69242 = r69237 * r69234;
        double r69243 = cos(r69231);
        double r69244 = r69242 * r69243;
        double r69245 = r69241 + r69244;
        double r69246 = asin(r69245);
        double r69247 = sin(r69246);
        double r69248 = r69240 * r69247;
        double r69249 = exp(r69248);
        double r69250 = log(r69249);
        double r69251 = r69239 - r69250;
        double r69252 = atan2(r69238, r69251);
        double r69253 = r69230 + r69252;
        return r69253;
}

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))))))))))