Average Error: 16.5 → 3.7
Time: 37.8s
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(\cos \lambda_2 \cdot \cos \lambda_1 + \sqrt[3]{\sin \lambda_2 \cdot \sin \lambda_1} \cdot \left(\sqrt[3]{\sin \lambda_2 \cdot \sin \lambda_1} \cdot \sqrt[3]{\sin \lambda_2 \cdot \sin \lambda_1}\right)\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(\cos \lambda_2 \cdot \cos \lambda_1 + \sqrt[3]{\sin \lambda_2 \cdot \sin \lambda_1} \cdot \left(\sqrt[3]{\sin \lambda_2 \cdot \sin \lambda_1} \cdot \sqrt[3]{\sin \lambda_2 \cdot \sin \lambda_1}\right)\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 r21801 = phi1;
        double r21802 = sin(r21801);
        double r21803 = phi2;
        double r21804 = sin(r21803);
        double r21805 = r21802 * r21804;
        double r21806 = cos(r21801);
        double r21807 = cos(r21803);
        double r21808 = r21806 * r21807;
        double r21809 = lambda1;
        double r21810 = lambda2;
        double r21811 = r21809 - r21810;
        double r21812 = cos(r21811);
        double r21813 = r21808 * r21812;
        double r21814 = r21805 + r21813;
        double r21815 = acos(r21814);
        double r21816 = R;
        double r21817 = r21815 * r21816;
        return r21817;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r21818 = phi2;
        double r21819 = sin(r21818);
        double r21820 = phi1;
        double r21821 = sin(r21820);
        double r21822 = r21819 * r21821;
        double r21823 = lambda2;
        double r21824 = cos(r21823);
        double r21825 = lambda1;
        double r21826 = cos(r21825);
        double r21827 = r21824 * r21826;
        double r21828 = sin(r21823);
        double r21829 = sin(r21825);
        double r21830 = r21828 * r21829;
        double r21831 = cbrt(r21830);
        double r21832 = r21831 * r21831;
        double r21833 = r21831 * r21832;
        double r21834 = r21827 + r21833;
        double r21835 = cos(r21820);
        double r21836 = cos(r21818);
        double r21837 = r21835 * r21836;
        double r21838 = r21834 * r21837;
        double r21839 = r21822 + r21838;
        double r21840 = acos(r21839);
        double r21841 = R;
        double r21842 = r21840 * r21841;
        return r21842;
}

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

    \[\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. Simplified16.5

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

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

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

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

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

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

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

Reproduce

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