Average Error: 0.2 → 0.1
Time: 1.2m
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{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\cos delta \cdot e^{\log \left(\cos \phi_1 \cdot \cos \phi_1\right)} - \left(\left(\sin \phi_1 \cdot \sin delta\right) \cdot \cos theta\right) \cdot \cos \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{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\cos delta \cdot e^{\log \left(\cos \phi_1 \cdot \cos \phi_1\right)} - \left(\left(\sin \phi_1 \cdot \sin delta\right) \cdot \cos theta\right) \cdot \cos \phi_1} + \lambda_1
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r3241138 = lambda1;
        double r3241139 = theta;
        double r3241140 = sin(r3241139);
        double r3241141 = delta;
        double r3241142 = sin(r3241141);
        double r3241143 = r3241140 * r3241142;
        double r3241144 = phi1;
        double r3241145 = cos(r3241144);
        double r3241146 = r3241143 * r3241145;
        double r3241147 = cos(r3241141);
        double r3241148 = sin(r3241144);
        double r3241149 = r3241148 * r3241147;
        double r3241150 = r3241145 * r3241142;
        double r3241151 = cos(r3241139);
        double r3241152 = r3241150 * r3241151;
        double r3241153 = r3241149 + r3241152;
        double r3241154 = asin(r3241153);
        double r3241155 = sin(r3241154);
        double r3241156 = r3241148 * r3241155;
        double r3241157 = r3241147 - r3241156;
        double r3241158 = atan2(r3241146, r3241157);
        double r3241159 = r3241138 + r3241158;
        return r3241159;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r3241160 = phi1;
        double r3241161 = cos(r3241160);
        double r3241162 = delta;
        double r3241163 = sin(r3241162);
        double r3241164 = theta;
        double r3241165 = sin(r3241164);
        double r3241166 = r3241163 * r3241165;
        double r3241167 = r3241161 * r3241166;
        double r3241168 = cos(r3241162);
        double r3241169 = r3241161 * r3241161;
        double r3241170 = log(r3241169);
        double r3241171 = exp(r3241170);
        double r3241172 = r3241168 * r3241171;
        double r3241173 = sin(r3241160);
        double r3241174 = r3241173 * r3241163;
        double r3241175 = cos(r3241164);
        double r3241176 = r3241174 * r3241175;
        double r3241177 = r3241176 * r3241161;
        double r3241178 = r3241172 - r3241177;
        double r3241179 = atan2(r3241167, r3241178);
        double r3241180 = lambda1;
        double r3241181 = r3241179 + r3241180;
        return r3241181;
}

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. 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(\cos \phi_1 \cdot \left(\cos theta \cdot \sin delta\right)\right)\right)}}\]
  5. Simplified0.1

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\color{blue}{\cos delta \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right) - \left(\left(\sin \phi_1 \cdot \sin delta\right) \cdot \cos theta\right) \cdot \cos \phi_1}}\]
  6. Using strategy rm
  7. Applied add-exp-log0.1

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

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

Reproduce

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