Average Error: 0 → 0
Time: 8.0m
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 r5160244 = lambda1;
        double r5160245 = phi2;
        double r5160246 = cos(r5160245);
        double r5160247 = lambda2;
        double r5160248 = r5160244 - r5160247;
        double r5160249 = sin(r5160248);
        double r5160250 = r5160246 * r5160249;
        double r5160251 = phi1;
        double r5160252 = cos(r5160251);
        double r5160253 = cos(r5160248);
        double r5160254 = r5160246 * r5160253;
        double r5160255 = r5160252 + r5160254;
        double r5160256 = atan2(r5160250, r5160255);
        double r5160257 = r5160244 + r5160256;
        return r5160257;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r5160258 = phi2;
        double r5160259 = cos(r5160258);
        double r5160260 = lambda1;
        double r5160261 = lambda2;
        double r5160262 = r5160260 - r5160261;
        double r5160263 = sin(r5160262);
        double r5160264 = r5160259 * r5160263;
        double r5160265 = cos(r5160262);
        double r5160266 = r5160259 * r5160265;
        double r5160267 = phi1;
        double r5160268 = cos(r5160267);
        double r5160269 = r5160266 + r5160268;
        double r5160270 = atan2(r5160264, r5160269);
        double r5160271 = r5160270 + r5160260;
        return r5160271;
}

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