Average Error: 16.6 → 3.6
Time: 40.2s
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(\left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \left(-\lambda_2\right) \cdot \sin \lambda_1\right) \cdot \left(\cos \phi_1 \cdot \cos \phi_2\right) + \left(\log \left(\sqrt{e^{\sin \phi_2 \cdot \sin \phi_1}}\right) + \log \left(\sqrt{e^{\sin \phi_2 \cdot \sin \phi_1}}\right)\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(\left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \left(-\lambda_2\right) \cdot \sin \lambda_1\right) \cdot \left(\cos \phi_1 \cdot \cos \phi_2\right) + \left(\log \left(\sqrt{e^{\sin \phi_2 \cdot \sin \phi_1}}\right) + \log \left(\sqrt{e^{\sin \phi_2 \cdot \sin \phi_1}}\right)\right)\right)
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r22084 = phi1;
        double r22085 = sin(r22084);
        double r22086 = phi2;
        double r22087 = sin(r22086);
        double r22088 = r22085 * r22087;
        double r22089 = cos(r22084);
        double r22090 = cos(r22086);
        double r22091 = r22089 * r22090;
        double r22092 = lambda1;
        double r22093 = lambda2;
        double r22094 = r22092 - r22093;
        double r22095 = cos(r22094);
        double r22096 = r22091 * r22095;
        double r22097 = r22088 + r22096;
        double r22098 = acos(r22097);
        double r22099 = R;
        double r22100 = r22098 * r22099;
        return r22100;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r22101 = R;
        double r22102 = lambda2;
        double r22103 = cos(r22102);
        double r22104 = lambda1;
        double r22105 = cos(r22104);
        double r22106 = r22103 * r22105;
        double r22107 = -r22102;
        double r22108 = sin(r22107);
        double r22109 = sin(r22104);
        double r22110 = r22108 * r22109;
        double r22111 = r22106 - r22110;
        double r22112 = phi1;
        double r22113 = cos(r22112);
        double r22114 = phi2;
        double r22115 = cos(r22114);
        double r22116 = r22113 * r22115;
        double r22117 = r22111 * r22116;
        double r22118 = sin(r22114);
        double r22119 = sin(r22112);
        double r22120 = r22118 * r22119;
        double r22121 = exp(r22120);
        double r22122 = sqrt(r22121);
        double r22123 = log(r22122);
        double r22124 = r22123 + r22123;
        double r22125 = r22117 + r22124;
        double r22126 = acos(r22125);
        double r22127 = r22101 * r22126;
        return r22127;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

Reproduce

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