Average Error: 17.3 → 4.1
Time: 18.4s
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 r24681 = phi1;
        double r24682 = sin(r24681);
        double r24683 = phi2;
        double r24684 = sin(r24683);
        double r24685 = r24682 * r24684;
        double r24686 = cos(r24681);
        double r24687 = cos(r24683);
        double r24688 = r24686 * r24687;
        double r24689 = lambda1;
        double r24690 = lambda2;
        double r24691 = r24689 - r24690;
        double r24692 = cos(r24691);
        double r24693 = r24688 * r24692;
        double r24694 = r24685 + r24693;
        double r24695 = acos(r24694);
        double r24696 = R;
        double r24697 = r24695 * r24696;
        return r24697;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r24698 = phi1;
        double r24699 = sin(r24698);
        double r24700 = phi2;
        double r24701 = sin(r24700);
        double r24702 = r24699 * r24701;
        double r24703 = 3.0;
        double r24704 = pow(r24702, r24703);
        double r24705 = cbrt(r24704);
        double r24706 = cos(r24698);
        double r24707 = cos(r24700);
        double r24708 = r24706 * r24707;
        double r24709 = lambda1;
        double r24710 = cos(r24709);
        double r24711 = lambda2;
        double r24712 = cos(r24711);
        double r24713 = r24710 * r24712;
        double r24714 = sin(r24709);
        double r24715 = -r24711;
        double r24716 = sin(r24715);
        double r24717 = r24714 * r24716;
        double r24718 = pow(r24717, r24703);
        double r24719 = cbrt(r24718);
        double r24720 = r24713 - r24719;
        double r24721 = r24708 * r24720;
        double r24722 = r24705 + r24721;
        double r24723 = acos(r24722);
        double r24724 = R;
        double r24725 = r24723 * r24724;
        return r24725;
}

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))