Average Error: 0.1 → 0.2
Time: 13.8s
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{\cos \phi_1 \cdot \left(\sin theta \cdot \sin delta\right)}{\cos delta - \left(\sqrt[3]{\sin \phi_1} \cdot \sqrt[3]{\sin \phi_1}\right) \cdot \left(\sqrt[3]{\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{\cos \phi_1 \cdot \left(\sin theta \cdot \sin delta\right)}{\cos delta - \left(\sqrt[3]{\sin \phi_1} \cdot \sqrt[3]{\sin \phi_1}\right) \cdot \left(\sqrt[3]{\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 r116916 = lambda1;
        double r116917 = theta;
        double r116918 = sin(r116917);
        double r116919 = delta;
        double r116920 = sin(r116919);
        double r116921 = r116918 * r116920;
        double r116922 = phi1;
        double r116923 = cos(r116922);
        double r116924 = r116921 * r116923;
        double r116925 = cos(r116919);
        double r116926 = sin(r116922);
        double r116927 = r116926 * r116925;
        double r116928 = r116923 * r116920;
        double r116929 = cos(r116917);
        double r116930 = r116928 * r116929;
        double r116931 = r116927 + r116930;
        double r116932 = asin(r116931);
        double r116933 = sin(r116932);
        double r116934 = r116926 * r116933;
        double r116935 = r116925 - r116934;
        double r116936 = atan2(r116924, r116935);
        double r116937 = r116916 + r116936;
        return r116937;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r116938 = lambda1;
        double r116939 = phi1;
        double r116940 = cos(r116939);
        double r116941 = theta;
        double r116942 = sin(r116941);
        double r116943 = delta;
        double r116944 = sin(r116943);
        double r116945 = r116942 * r116944;
        double r116946 = r116940 * r116945;
        double r116947 = cos(r116943);
        double r116948 = sin(r116939);
        double r116949 = cbrt(r116948);
        double r116950 = r116949 * r116949;
        double r116951 = r116948 * r116947;
        double r116952 = r116940 * r116944;
        double r116953 = cos(r116941);
        double r116954 = r116952 * r116953;
        double r116955 = r116951 + r116954;
        double r116956 = asin(r116955);
        double r116957 = sin(r116956);
        double r116958 = r116949 * r116957;
        double r116959 = r116950 * r116958;
        double r116960 = r116947 - r116959;
        double r116961 = atan2(r116946, r116960);
        double r116962 = r116938 + r116961;
        return r116962;
}

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.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)}\]
  2. Using strategy rm
  3. Applied *-commutative0.1

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\color{blue}{\cos \phi_1 \cdot \left(\sin theta \cdot \sin delta\right)}}{\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)}\]
  4. Using strategy rm
  5. Applied add-cube-cbrt0.2

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

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

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