Average Error: 0 → 0
Time: 6.7m
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 r1118227 = lambda1;
        double r1118228 = phi2;
        double r1118229 = cos(r1118228);
        double r1118230 = lambda2;
        double r1118231 = r1118227 - r1118230;
        double r1118232 = sin(r1118231);
        double r1118233 = r1118229 * r1118232;
        double r1118234 = phi1;
        double r1118235 = cos(r1118234);
        double r1118236 = cos(r1118231);
        double r1118237 = r1118229 * r1118236;
        double r1118238 = r1118235 + r1118237;
        double r1118239 = atan2(r1118233, r1118238);
        double r1118240 = r1118227 + r1118239;
        return r1118240;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r1118241 = phi2;
        double r1118242 = cos(r1118241);
        double r1118243 = lambda1;
        double r1118244 = lambda2;
        double r1118245 = r1118243 - r1118244;
        double r1118246 = sin(r1118245);
        double r1118247 = r1118242 * r1118246;
        double r1118248 = cos(r1118245);
        double r1118249 = r1118242 * r1118248;
        double r1118250 = phi1;
        double r1118251 = cos(r1118250);
        double r1118252 = r1118249 + r1118251;
        double r1118253 = atan2(r1118247, r1118252);
        double r1118254 = r1118253 + r1118243;
        return r1118254;
}

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