Average Error: 16.6 → 3.9
Time: 34.2s
Precision: 64
\[\cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) \cdot R\]
\[\cos^{-1} \left(\sin \phi_2 \cdot \sin \phi_1 + \left(\sqrt[3]{\sqrt[3]{{\left({\left(\sin \lambda_1 \cdot \sin \lambda_2\right)}^{3}\right)}^{3}}} + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_1 \cdot \cos \phi_2\right)\right) \cdot R\]
\cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) \cdot R
\cos^{-1} \left(\sin \phi_2 \cdot \sin \phi_1 + \left(\sqrt[3]{\sqrt[3]{{\left({\left(\sin \lambda_1 \cdot \sin \lambda_2\right)}^{3}\right)}^{3}}} + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_1 \cdot \cos \phi_2\right)\right) \cdot R
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r23830 = phi1;
        double r23831 = sin(r23830);
        double r23832 = phi2;
        double r23833 = sin(r23832);
        double r23834 = r23831 * r23833;
        double r23835 = cos(r23830);
        double r23836 = cos(r23832);
        double r23837 = r23835 * r23836;
        double r23838 = lambda1;
        double r23839 = lambda2;
        double r23840 = r23838 - r23839;
        double r23841 = cos(r23840);
        double r23842 = r23837 * r23841;
        double r23843 = r23834 + r23842;
        double r23844 = acos(r23843);
        double r23845 = R;
        double r23846 = r23844 * r23845;
        return r23846;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r23847 = phi2;
        double r23848 = sin(r23847);
        double r23849 = phi1;
        double r23850 = sin(r23849);
        double r23851 = r23848 * r23850;
        double r23852 = lambda1;
        double r23853 = sin(r23852);
        double r23854 = lambda2;
        double r23855 = sin(r23854);
        double r23856 = r23853 * r23855;
        double r23857 = 3.0;
        double r23858 = pow(r23856, r23857);
        double r23859 = pow(r23858, r23857);
        double r23860 = cbrt(r23859);
        double r23861 = cbrt(r23860);
        double r23862 = cos(r23854);
        double r23863 = cos(r23852);
        double r23864 = r23862 * r23863;
        double r23865 = r23861 + r23864;
        double r23866 = cos(r23849);
        double r23867 = cos(r23847);
        double r23868 = r23866 * r23867;
        double r23869 = r23865 * r23868;
        double r23870 = r23851 + r23869;
        double r23871 = acos(r23870);
        double r23872 = R;
        double r23873 = r23871 * r23872;
        return r23873;
}

Error

Bits error versus R

Bits error versus lambda1

Bits error versus lambda2

Bits error versus phi1

Bits error versus phi2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 16.6

    \[\cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) \cdot R\]
  2. Using strategy rm
  3. Applied cos-diff3.9

    \[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \color{blue}{\left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}\right) \cdot R\]
  4. Simplified3.9

    \[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \color{blue}{\sin \lambda_2 \cdot \sin \lambda_1}\right)\right) \cdot R\]
  5. Using strategy rm
  6. Applied add-cbrt-cube3.9

    \[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_2 \cdot \color{blue}{\sqrt[3]{\left(\sin \lambda_1 \cdot \sin \lambda_1\right) \cdot \sin \lambda_1}}\right)\right) \cdot R\]
  7. Applied add-cbrt-cube3.9

    \[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \color{blue}{\sqrt[3]{\left(\sin \lambda_2 \cdot \sin \lambda_2\right) \cdot \sin \lambda_2}} \cdot \sqrt[3]{\left(\sin \lambda_1 \cdot \sin \lambda_1\right) \cdot \sin \lambda_1}\right)\right) \cdot R\]
  8. Applied cbrt-unprod3.9

    \[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \color{blue}{\sqrt[3]{\left(\left(\sin \lambda_2 \cdot \sin \lambda_2\right) \cdot \sin \lambda_2\right) \cdot \left(\left(\sin \lambda_1 \cdot \sin \lambda_1\right) \cdot \sin \lambda_1\right)}}\right)\right) \cdot R\]
  9. Simplified3.9

    \[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sqrt[3]{\color{blue}{{\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3}}}\right)\right) \cdot R\]
  10. Using strategy rm
  11. Applied add-cbrt-cube3.9

    \[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sqrt[3]{\color{blue}{\sqrt[3]{\left({\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3} \cdot {\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3}\right) \cdot {\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3}}}}\right)\right) \cdot R\]
  12. Simplified3.9

    \[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sqrt[3]{\sqrt[3]{\color{blue}{{\left({\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3}\right)}^{3}}}}\right)\right) \cdot R\]
  13. Final simplification3.9

    \[\leadsto \cos^{-1} \left(\sin \phi_2 \cdot \sin \phi_1 + \left(\sqrt[3]{\sqrt[3]{{\left({\left(\sin \lambda_1 \cdot \sin \lambda_2\right)}^{3}\right)}^{3}}} + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_1 \cdot \cos \phi_2\right)\right) \cdot R\]

Reproduce

herbie shell --seed 2019179 
(FPCore (R lambda1 lambda2 phi1 phi2)
  :name "Spherical law of cosines"
  (* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))