Average Error: 17.3 → 4.1
Time: 12.5s
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(\sqrt[3]{{\left(\sin \phi_1 \cdot \sin \phi_2\right)}^{3}} + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sqrt[3]{{\left(\sin \lambda_1 \cdot \sin \lambda_2\right)}^{3}}\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(\sqrt[3]{{\left(\sin \phi_1 \cdot \sin \phi_2\right)}^{3}} + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sqrt[3]{{\left(\sin \lambda_1 \cdot \sin \lambda_2\right)}^{3}}\right)\right) \cdot R
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r23833 = phi1;
        double r23834 = sin(r23833);
        double r23835 = phi2;
        double r23836 = sin(r23835);
        double r23837 = r23834 * r23836;
        double r23838 = cos(r23833);
        double r23839 = cos(r23835);
        double r23840 = r23838 * r23839;
        double r23841 = lambda1;
        double r23842 = lambda2;
        double r23843 = r23841 - r23842;
        double r23844 = cos(r23843);
        double r23845 = r23840 * r23844;
        double r23846 = r23837 + r23845;
        double r23847 = acos(r23846);
        double r23848 = R;
        double r23849 = r23847 * r23848;
        return r23849;
}

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

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 17.3

    \[\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-diff4.1

    \[\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. Using strategy rm
  5. Applied add-cbrt-cube4.1

    \[\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_1 \cdot \color{blue}{\sqrt[3]{\left(\sin \lambda_2 \cdot \sin \lambda_2\right) \cdot \sin \lambda_2}}\right)\right) \cdot R\]
  6. Applied add-cbrt-cube4.1

    \[\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_1 \cdot \sin \lambda_1\right) \cdot \sin \lambda_1}} \cdot \sqrt[3]{\left(\sin \lambda_2 \cdot \sin \lambda_2\right) \cdot \sin \lambda_2}\right)\right) \cdot R\]
  7. Applied cbrt-unprod4.1

    \[\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_1 \cdot \sin \lambda_1\right) \cdot \sin \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_2\right) \cdot \sin \lambda_2\right)}}\right)\right) \cdot R\]
  8. Simplified4.1

    \[\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_1 \cdot \sin \lambda_2\right)}^{3}}}\right)\right) \cdot R\]
  9. Using strategy rm
  10. Applied add-cbrt-cube4.1

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

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

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

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

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

Reproduce

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