Average Error: 16.7 → 3.8
Time: 44.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(\cos \phi_2 \cdot \left(\left(\sqrt[3]{\sin \lambda_1} \cdot \left(\left(\sqrt[3]{\sin \lambda_1} \cdot \sqrt[3]{\sin \lambda_1}\right) \cdot \sin \lambda_2\right) + \cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_1\right) + \sin \phi_2 \cdot \sin \phi_1\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(\cos \phi_2 \cdot \left(\left(\sqrt[3]{\sin \lambda_1} \cdot \left(\left(\sqrt[3]{\sin \lambda_1} \cdot \sqrt[3]{\sin \lambda_1}\right) \cdot \sin \lambda_2\right) + \cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_1\right) + \sin \phi_2 \cdot \sin \phi_1\right)
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r1229838 = phi1;
        double r1229839 = sin(r1229838);
        double r1229840 = phi2;
        double r1229841 = sin(r1229840);
        double r1229842 = r1229839 * r1229841;
        double r1229843 = cos(r1229838);
        double r1229844 = cos(r1229840);
        double r1229845 = r1229843 * r1229844;
        double r1229846 = lambda1;
        double r1229847 = lambda2;
        double r1229848 = r1229846 - r1229847;
        double r1229849 = cos(r1229848);
        double r1229850 = r1229845 * r1229849;
        double r1229851 = r1229842 + r1229850;
        double r1229852 = acos(r1229851);
        double r1229853 = R;
        double r1229854 = r1229852 * r1229853;
        return r1229854;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r1229855 = R;
        double r1229856 = phi2;
        double r1229857 = cos(r1229856);
        double r1229858 = lambda1;
        double r1229859 = sin(r1229858);
        double r1229860 = cbrt(r1229859);
        double r1229861 = r1229860 * r1229860;
        double r1229862 = lambda2;
        double r1229863 = sin(r1229862);
        double r1229864 = r1229861 * r1229863;
        double r1229865 = r1229860 * r1229864;
        double r1229866 = cos(r1229858);
        double r1229867 = cos(r1229862);
        double r1229868 = r1229866 * r1229867;
        double r1229869 = r1229865 + r1229868;
        double r1229870 = phi1;
        double r1229871 = cos(r1229870);
        double r1229872 = r1229869 * r1229871;
        double r1229873 = r1229857 * r1229872;
        double r1229874 = sin(r1229856);
        double r1229875 = sin(r1229870);
        double r1229876 = r1229874 * r1229875;
        double r1229877 = r1229873 + r1229876;
        double r1229878 = acos(r1229877);
        double r1229879 = r1229855 * r1229878;
        return r1229879;
}

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

    \[\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 *-un-lft-identity3.8

    \[\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 \sin \lambda_2\right)\right) \cdot \color{blue}{\left(1 \cdot R\right)}\]
  6. Applied associate-*r*3.8

    \[\leadsto \color{blue}{\left(\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 \sin \lambda_2\right)\right) \cdot 1\right) \cdot R}\]
  7. Simplified3.8

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

    \[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \cos \phi_2 \cdot \left(\cos \phi_1 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_2 \cdot \color{blue}{\left(\left(\sqrt[3]{\sin \lambda_1} \cdot \sqrt[3]{\sin \lambda_1}\right) \cdot \sqrt[3]{\sin \lambda_1}\right)}\right)\right)\right) \cdot R\]
  10. Applied associate-*r*3.8

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

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

Reproduce

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