Average Error: 17.3 → 4.1
Time: 21.6s
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 \left(-\lambda_2\right)\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 \left(-\lambda_2\right)\right)}^{3}}\right)\right) \cdot R
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r27219 = phi1;
        double r27220 = sin(r27219);
        double r27221 = phi2;
        double r27222 = sin(r27221);
        double r27223 = r27220 * r27222;
        double r27224 = cos(r27219);
        double r27225 = cos(r27221);
        double r27226 = r27224 * r27225;
        double r27227 = lambda1;
        double r27228 = lambda2;
        double r27229 = r27227 - r27228;
        double r27230 = cos(r27229);
        double r27231 = r27226 * r27230;
        double r27232 = r27223 + r27231;
        double r27233 = acos(r27232);
        double r27234 = R;
        double r27235 = r27233 * r27234;
        return r27235;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r27236 = phi1;
        double r27237 = sin(r27236);
        double r27238 = phi2;
        double r27239 = sin(r27238);
        double r27240 = r27237 * r27239;
        double r27241 = 3.0;
        double r27242 = pow(r27240, r27241);
        double r27243 = cbrt(r27242);
        double r27244 = cos(r27236);
        double r27245 = cos(r27238);
        double r27246 = r27244 * r27245;
        double r27247 = lambda1;
        double r27248 = cos(r27247);
        double r27249 = lambda2;
        double r27250 = cos(r27249);
        double r27251 = r27248 * r27250;
        double r27252 = sin(r27247);
        double r27253 = -r27249;
        double r27254 = sin(r27253);
        double r27255 = r27252 * r27254;
        double r27256 = pow(r27255, r27241);
        double r27257 = cbrt(r27256);
        double r27258 = r27251 - r27257;
        double r27259 = r27246 * r27258;
        double r27260 = r27243 + r27259;
        double r27261 = acos(r27260);
        double r27262 = R;
        double r27263 = r27261 * r27262;
        return r27263;
}

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 sub-neg17.3

    \[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)}\right) \cdot R\]
  4. Applied cos-sum4.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 \left(-\lambda_2\right) - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)}\right) \cdot R\]
  5. Simplified4.1

    \[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\color{blue}{\cos \lambda_1 \cdot \cos \lambda_2} - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot R\]
  6. Using strategy rm
  7. 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 \left(-\lambda_2\right) \cdot \sin \left(-\lambda_2\right)\right) \cdot \sin \left(-\lambda_2\right)}}\right)\right) \cdot R\]
  8. 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 \left(-\lambda_2\right) \cdot \sin \left(-\lambda_2\right)\right) \cdot \sin \left(-\lambda_2\right)}\right)\right) \cdot R\]
  9. 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 \left(-\lambda_2\right) \cdot \sin \left(-\lambda_2\right)\right) \cdot \sin \left(-\lambda_2\right)\right)}}\right)\right) \cdot R\]
  10. 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 \left(-\lambda_2\right)\right)}^{3}}}\right)\right) \cdot R\]
  11. Using strategy rm
  12. 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 \left(-\lambda_2\right)\right)}^{3}}\right)\right) \cdot R\]
  13. 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 \left(-\lambda_2\right)\right)}^{3}}\right)\right) \cdot R\]
  14. 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 \left(-\lambda_2\right)\right)}^{3}}\right)\right) \cdot R\]
  15. 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 \left(-\lambda_2\right)\right)}^{3}}\right)\right) \cdot R\]
  16. 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 \left(-\lambda_2\right)\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))