Average Error: 16.7 → 3.6
Time: 36.9s
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\]
\[R \cdot \cos^{-1} \left(\sin \lambda_1 \cdot \sqrt[3]{{\left(\cos \phi_1 \cdot \left(\cos \phi_2 \cdot \sin \lambda_2\right)\right)}^{3}} + \left(\cos \lambda_1 \cdot \left(\cos \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \lambda_2\right)\right) + \sin \phi_1 \cdot \sin \phi_2\right)\right)\]
\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
R \cdot \cos^{-1} \left(\sin \lambda_1 \cdot \sqrt[3]{{\left(\cos \phi_1 \cdot \left(\cos \phi_2 \cdot \sin \lambda_2\right)\right)}^{3}} + \left(\cos \lambda_1 \cdot \left(\cos \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \lambda_2\right)\right) + \sin \phi_1 \cdot \sin \phi_2\right)\right)
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r22980 = phi1;
        double r22981 = sin(r22980);
        double r22982 = phi2;
        double r22983 = sin(r22982);
        double r22984 = r22981 * r22983;
        double r22985 = cos(r22980);
        double r22986 = cos(r22982);
        double r22987 = r22985 * r22986;
        double r22988 = lambda1;
        double r22989 = lambda2;
        double r22990 = r22988 - r22989;
        double r22991 = cos(r22990);
        double r22992 = r22987 * r22991;
        double r22993 = r22984 + r22992;
        double r22994 = acos(r22993);
        double r22995 = R;
        double r22996 = r22994 * r22995;
        return r22996;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r22997 = R;
        double r22998 = lambda1;
        double r22999 = sin(r22998);
        double r23000 = phi1;
        double r23001 = cos(r23000);
        double r23002 = phi2;
        double r23003 = cos(r23002);
        double r23004 = lambda2;
        double r23005 = sin(r23004);
        double r23006 = r23003 * r23005;
        double r23007 = r23001 * r23006;
        double r23008 = 3.0;
        double r23009 = pow(r23007, r23008);
        double r23010 = cbrt(r23009);
        double r23011 = r22999 * r23010;
        double r23012 = cos(r22998);
        double r23013 = cos(r23004);
        double r23014 = r23003 * r23013;
        double r23015 = r23001 * r23014;
        double r23016 = r23012 * r23015;
        double r23017 = sin(r23000);
        double r23018 = sin(r23002);
        double r23019 = r23017 * r23018;
        double r23020 = r23016 + r23019;
        double r23021 = r23011 + r23020;
        double r23022 = acos(r23021);
        double r23023 = r22997 * r23022;
        return r23023;
}

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.7

    \[\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.6

    \[\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. Applied distribute-lft-in3.6

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

    \[\leadsto \color{blue}{\log \left(e^{\cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)\right)}\right)} \cdot R\]
  7. Using strategy rm
  8. Applied pow13.6

    \[\leadsto \log \color{blue}{\left({\left(e^{\cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)\right)}\right)}^{1}\right)} \cdot R\]
  9. Applied log-pow3.6

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

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

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

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

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

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

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

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

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

Reproduce

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