Average Error: 0.2 → 0.2
Time: 14.0s
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}{\log \left(e^{\cos delta - \sin \phi_1 \cdot \sin \left(\mathsf{log1p}\left(\mathsf{expm1}\left(\sin^{-1} \left(\sin delta \cdot \left(\cos \phi_1 \cdot \cos theta\right) + \sin \phi_1 \cdot \cos delta\right)\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}{\log \left(e^{\cos delta - \sin \phi_1 \cdot \sin \left(\mathsf{log1p}\left(\mathsf{expm1}\left(\sin^{-1} \left(\sin delta \cdot \left(\cos \phi_1 \cdot \cos theta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}\right)}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r105155 = lambda1;
        double r105156 = theta;
        double r105157 = sin(r105156);
        double r105158 = delta;
        double r105159 = sin(r105158);
        double r105160 = r105157 * r105159;
        double r105161 = phi1;
        double r105162 = cos(r105161);
        double r105163 = r105160 * r105162;
        double r105164 = cos(r105158);
        double r105165 = sin(r105161);
        double r105166 = r105165 * r105164;
        double r105167 = r105162 * r105159;
        double r105168 = cos(r105156);
        double r105169 = r105167 * r105168;
        double r105170 = r105166 + r105169;
        double r105171 = asin(r105170);
        double r105172 = sin(r105171);
        double r105173 = r105165 * r105172;
        double r105174 = r105164 - r105173;
        double r105175 = atan2(r105163, r105174);
        double r105176 = r105155 + r105175;
        return r105176;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r105177 = lambda1;
        double r105178 = theta;
        double r105179 = sin(r105178);
        double r105180 = delta;
        double r105181 = sin(r105180);
        double r105182 = r105179 * r105181;
        double r105183 = phi1;
        double r105184 = cos(r105183);
        double r105185 = r105182 * r105184;
        double r105186 = cos(r105180);
        double r105187 = sin(r105183);
        double r105188 = cos(r105178);
        double r105189 = r105184 * r105188;
        double r105190 = r105181 * r105189;
        double r105191 = r105187 * r105186;
        double r105192 = r105190 + r105191;
        double r105193 = asin(r105192);
        double r105194 = expm1(r105193);
        double r105195 = log1p(r105194);
        double r105196 = sin(r105195);
        double r105197 = r105187 * r105196;
        double r105198 = r105186 - r105197;
        double r105199 = exp(r105198);
        double r105200 = log(r105199);
        double r105201 = atan2(r105185, r105200);
        double r105202 = r105177 + r105201;
        return r105202;
}

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-cbrt-cube0.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(\sqrt[3]{\left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right) \cdot \sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right) \cdot \sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)}\right)}}\]
  4. Simplified0.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(\sqrt[3]{\color{blue}{{\left(\sin^{-1} \left(\sin delta \cdot \left(\cos \phi_1 \cdot \cos theta\right) + \sin \phi_1 \cdot \cos delta\right)\right)}^{3}}}\right)}\]
  5. Using strategy rm
  6. Applied log1p-expm1-u0.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(\mathsf{log1p}\left(\mathsf{expm1}\left(\sqrt[3]{{\left(\sin^{-1} \left(\sin delta \cdot \left(\cos \phi_1 \cdot \cos theta\right) + \sin \phi_1 \cdot \cos delta\right)\right)}^{3}}\right)\right)\right)}}\]
  7. Simplified0.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(\mathsf{log1p}\left(\color{blue}{\mathsf{expm1}\left(\sin^{-1} \left(\sin delta \cdot \left(\cos \phi_1 \cdot \cos theta\right) + \sin \phi_1 \cdot \cos delta\right)\right)}\right)\right)}\]
  8. Using strategy rm
  9. 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(\mathsf{log1p}\left(\mathsf{expm1}\left(\sin^{-1} \left(\sin delta \cdot \left(\cos \phi_1 \cdot \cos theta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}\right)}}\]
  10. Applied add-log-exp0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\color{blue}{\log \left(e^{\cos delta}\right)} - \log \left(e^{\sin \phi_1 \cdot \sin \left(\mathsf{log1p}\left(\mathsf{expm1}\left(\sin^{-1} \left(\sin delta \cdot \left(\cos \phi_1 \cdot \cos theta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}\right)}\]
  11. Applied diff-log0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\color{blue}{\log \left(\frac{e^{\cos delta}}{e^{\sin \phi_1 \cdot \sin \left(\mathsf{log1p}\left(\mathsf{expm1}\left(\sin^{-1} \left(\sin delta \cdot \left(\cos \phi_1 \cdot \cos theta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}}\right)}}\]
  12. Simplified0.2

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

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

Reproduce

herbie shell --seed 2020064 +o rules:numerics
(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))))))))))