Average Error: 24.2 → 24.2
Time: 54.6s
Precision: 64
\[R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}{\sqrt{1 - \left({\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)\]
\[2 \cdot \left(R \cdot \tan^{-1}_* \frac{\sqrt{\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right) + \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_2\right) \cdot \left(\cos \phi_1 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\log \left(e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \cos \phi_1\right) \cdot \left(\left(\left(\sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \cos \phi_2\right)}}\right)\]
R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}{\sqrt{1 - \left({\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)
2 \cdot \left(R \cdot \tan^{-1}_* \frac{\sqrt{\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right) + \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_2\right) \cdot \left(\cos \phi_1 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\log \left(e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \cos \phi_1\right) \cdot \left(\left(\left(\sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \cos \phi_2\right)}}\right)
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r3510329 = R;
        double r3510330 = 2.0;
        double r3510331 = phi1;
        double r3510332 = phi2;
        double r3510333 = r3510331 - r3510332;
        double r3510334 = r3510333 / r3510330;
        double r3510335 = sin(r3510334);
        double r3510336 = pow(r3510335, r3510330);
        double r3510337 = cos(r3510331);
        double r3510338 = cos(r3510332);
        double r3510339 = r3510337 * r3510338;
        double r3510340 = lambda1;
        double r3510341 = lambda2;
        double r3510342 = r3510340 - r3510341;
        double r3510343 = r3510342 / r3510330;
        double r3510344 = sin(r3510343);
        double r3510345 = r3510339 * r3510344;
        double r3510346 = r3510345 * r3510344;
        double r3510347 = r3510336 + r3510346;
        double r3510348 = sqrt(r3510347);
        double r3510349 = 1.0;
        double r3510350 = r3510349 - r3510347;
        double r3510351 = sqrt(r3510350);
        double r3510352 = atan2(r3510348, r3510351);
        double r3510353 = r3510330 * r3510352;
        double r3510354 = r3510329 * r3510353;
        return r3510354;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r3510355 = 2.0;
        double r3510356 = R;
        double r3510357 = phi1;
        double r3510358 = phi2;
        double r3510359 = r3510357 - r3510358;
        double r3510360 = r3510359 / r3510355;
        double r3510361 = sin(r3510360);
        double r3510362 = r3510361 * r3510361;
        double r3510363 = lambda1;
        double r3510364 = lambda2;
        double r3510365 = r3510363 - r3510364;
        double r3510366 = r3510365 / r3510355;
        double r3510367 = sin(r3510366);
        double r3510368 = cos(r3510358);
        double r3510369 = r3510367 * r3510368;
        double r3510370 = cos(r3510357);
        double r3510371 = r3510370 * r3510367;
        double r3510372 = r3510369 * r3510371;
        double r3510373 = r3510362 + r3510372;
        double r3510374 = sqrt(r3510373);
        double r3510375 = cos(r3510360);
        double r3510376 = r3510375 * r3510375;
        double r3510377 = exp(r3510367);
        double r3510378 = log(r3510377);
        double r3510379 = r3510378 * r3510370;
        double r3510380 = cbrt(r3510367);
        double r3510381 = r3510380 * r3510380;
        double r3510382 = r3510381 * r3510380;
        double r3510383 = r3510382 * r3510368;
        double r3510384 = r3510379 * r3510383;
        double r3510385 = r3510376 - r3510384;
        double r3510386 = sqrt(r3510385);
        double r3510387 = atan2(r3510374, r3510386);
        double r3510388 = r3510356 * r3510387;
        double r3510389 = r3510355 * r3510388;
        return r3510389;
}

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 24.2

    \[R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}{\sqrt{1 - \left({\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)\]
  2. Simplified24.1

    \[\leadsto \color{blue}{2 \cdot \left(R \cdot \tan^{-1}_* \frac{\sqrt{\left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right) + \sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right)}}\right)}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt24.2

    \[\leadsto 2 \cdot \left(R \cdot \tan^{-1}_* \frac{\sqrt{\left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right) + \sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_2 \cdot \color{blue}{\left(\left(\sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)}\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right)}}\right)\]
  5. Using strategy rm
  6. Applied add-log-exp24.2

    \[\leadsto 2 \cdot \left(R \cdot \tan^{-1}_* \frac{\sqrt{\left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right) + \sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_2 \cdot \left(\left(\sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)\right) \cdot \left(\color{blue}{\log \left(e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)} \cdot \cos \phi_1\right)}}\right)\]
  7. Final simplification24.2

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

Reproduce

herbie shell --seed 2019162 
(FPCore (R lambda1 lambda2 phi1 phi2)
  :name "Distance on a great circle"
  (* R (* 2 (atan2 (sqrt (+ (pow (sin (/ (- phi1 phi2) 2)) 2) (* (* (* (cos phi1) (cos phi2)) (sin (/ (- lambda1 lambda2) 2))) (sin (/ (- lambda1 lambda2) 2))))) (sqrt (- 1 (+ (pow (sin (/ (- phi1 phi2) 2)) 2) (* (* (* (cos phi1) (cos phi2)) (sin (/ (- lambda1 lambda2) 2))) (sin (/ (- lambda1 lambda2) 2))))))))))