Average Error: 17.0 → 3.7
Time: 1.3m
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 \phi_2 \cdot \left(\cos \phi_1 \cdot \sqrt[3]{\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right)}\right) + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \phi_1 \cdot \cos \phi_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(\sin \phi_2 \cdot \sin \phi_1 + \left(\cos \phi_2 \cdot \left(\cos \phi_1 \cdot \sqrt[3]{\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right)}\right) + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \phi_1 \cdot \cos \phi_2\right)\right)\right) \cdot R
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r1346132 = phi1;
        double r1346133 = sin(r1346132);
        double r1346134 = phi2;
        double r1346135 = sin(r1346134);
        double r1346136 = r1346133 * r1346135;
        double r1346137 = cos(r1346132);
        double r1346138 = cos(r1346134);
        double r1346139 = r1346137 * r1346138;
        double r1346140 = lambda1;
        double r1346141 = lambda2;
        double r1346142 = r1346140 - r1346141;
        double r1346143 = cos(r1346142);
        double r1346144 = r1346139 * r1346143;
        double r1346145 = r1346136 + r1346144;
        double r1346146 = acos(r1346145);
        double r1346147 = R;
        double r1346148 = r1346146 * r1346147;
        return r1346148;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r1346149 = phi2;
        double r1346150 = sin(r1346149);
        double r1346151 = phi1;
        double r1346152 = sin(r1346151);
        double r1346153 = r1346150 * r1346152;
        double r1346154 = cos(r1346149);
        double r1346155 = cos(r1346151);
        double r1346156 = lambda2;
        double r1346157 = sin(r1346156);
        double r1346158 = lambda1;
        double r1346159 = sin(r1346158);
        double r1346160 = r1346157 * r1346159;
        double r1346161 = r1346160 * r1346160;
        double r1346162 = r1346160 * r1346161;
        double r1346163 = cbrt(r1346162);
        double r1346164 = r1346155 * r1346163;
        double r1346165 = r1346154 * r1346164;
        double r1346166 = cos(r1346158);
        double r1346167 = cos(r1346156);
        double r1346168 = r1346166 * r1346167;
        double r1346169 = r1346155 * r1346154;
        double r1346170 = r1346168 * r1346169;
        double r1346171 = r1346165 + r1346170;
        double r1346172 = r1346153 + r1346171;
        double r1346173 = acos(r1346172);
        double r1346174 = R;
        double r1346175 = r1346173 * r1346174;
        return r1346175;
}

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

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

    \[\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. Applied distribute-rgt-in3.7

    \[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \color{blue}{\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \phi_1 \cdot \cos \phi_2\right) + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\cos \phi_1 \cdot \cos \phi_2\right)\right)}\right) \cdot R\]
  5. Using strategy rm
  6. Applied associate-*r*3.7

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

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

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

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

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

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

Reproduce

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