Average Error: 16.8 → 3.7
Time: 20.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\]
\[\cos^{-1} \left(\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 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\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(\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 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot R
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r33130 = phi1;
        double r33131 = sin(r33130);
        double r33132 = phi2;
        double r33133 = sin(r33132);
        double r33134 = r33131 * r33133;
        double r33135 = cos(r33130);
        double r33136 = cos(r33132);
        double r33137 = r33135 * r33136;
        double r33138 = lambda1;
        double r33139 = lambda2;
        double r33140 = r33138 - r33139;
        double r33141 = cos(r33140);
        double r33142 = r33137 * r33141;
        double r33143 = r33134 + r33142;
        double r33144 = acos(r33143);
        double r33145 = R;
        double r33146 = r33144 * r33145;
        return r33146;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r33147 = phi1;
        double r33148 = sin(r33147);
        double r33149 = r33148 * r33148;
        double r33150 = r33149 * r33148;
        double r33151 = phi2;
        double r33152 = sin(r33151);
        double r33153 = r33152 * r33152;
        double r33154 = r33153 * r33152;
        double r33155 = r33150 * r33154;
        double r33156 = cbrt(r33155);
        double r33157 = cos(r33147);
        double r33158 = cos(r33151);
        double r33159 = r33157 * r33158;
        double r33160 = lambda1;
        double r33161 = cos(r33160);
        double r33162 = lambda2;
        double r33163 = cos(r33162);
        double r33164 = r33161 * r33163;
        double r33165 = sin(r33160);
        double r33166 = -r33162;
        double r33167 = sin(r33166);
        double r33168 = r33165 * r33167;
        double r33169 = r33164 - r33168;
        double r33170 = r33159 * r33169;
        double r33171 = r33156 + r33170;
        double r33172 = acos(r33171);
        double r33173 = R;
        double r33174 = r33172 * r33173;
        return r33174;
}

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

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

    \[\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-sum3.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 \left(-\lambda_2\right) - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)}\right) \cdot R\]
  5. Simplified3.6

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

    \[\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 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot R\]
  8. Applied add-cbrt-cube3.7

    \[\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 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot R\]
  9. Applied cbrt-unprod3.7

    \[\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 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot R\]
  10. Simplified3.7

    \[\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 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot R\]
  11. Using strategy rm
  12. Applied add-cbrt-cube3.7

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

    \[\leadsto \cos^{-1} \left(\sqrt[3]{{\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}\right)}^{3}} + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot R\]
  14. Applied cbrt-unprod3.7

    \[\leadsto \cos^{-1} \left(\sqrt[3]{{\color{blue}{\left(\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)}\right)}}^{3}} + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot R\]
  15. Applied rem-cube-cbrt3.7

    \[\leadsto \cos^{-1} \left(\sqrt[3]{\color{blue}{\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 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot R\]
  16. Final simplification3.7

    \[\leadsto \cos^{-1} \left(\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 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot R\]

Reproduce

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