Average Error: 0 → 0
Time: 8.1m
Precision: 64
\[\lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 + \cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
\[\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right) + \cos \phi_1} + \lambda_1\]
\lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 + \cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)}
\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right) + \cos \phi_1} + \lambda_1
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2566356 = lambda1;
        double r2566357 = phi2;
        double r2566358 = cos(r2566357);
        double r2566359 = lambda2;
        double r2566360 = r2566356 - r2566359;
        double r2566361 = sin(r2566360);
        double r2566362 = r2566358 * r2566361;
        double r2566363 = phi1;
        double r2566364 = cos(r2566363);
        double r2566365 = cos(r2566360);
        double r2566366 = r2566358 * r2566365;
        double r2566367 = r2566364 + r2566366;
        double r2566368 = atan2(r2566362, r2566367);
        double r2566369 = r2566356 + r2566368;
        return r2566369;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2566370 = phi2;
        double r2566371 = cos(r2566370);
        double r2566372 = lambda1;
        double r2566373 = lambda2;
        double r2566374 = r2566372 - r2566373;
        double r2566375 = sin(r2566374);
        double r2566376 = r2566371 * r2566375;
        double r2566377 = cos(r2566374);
        double r2566378 = r2566371 * r2566377;
        double r2566379 = phi1;
        double r2566380 = cos(r2566379);
        double r2566381 = r2566378 + r2566380;
        double r2566382 = atan2(r2566376, r2566381);
        double r2566383 = r2566382 + r2566372;
        return r2566383;
}

Error

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 0

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

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

Reproduce

herbie shell --seed 2019124 
(FPCore (lambda1 lambda2 phi1 phi2)
  :name "Midpoint on a great circle"
  (+ lambda1 (atan2 (* (cos phi2) (sin (- lambda1 lambda2))) (+ (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2)))))))