Average Error: 0 → 0
Time: 7.4m
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 r6316219 = lambda1;
        double r6316220 = phi2;
        double r6316221 = cos(r6316220);
        double r6316222 = lambda2;
        double r6316223 = r6316219 - r6316222;
        double r6316224 = sin(r6316223);
        double r6316225 = r6316221 * r6316224;
        double r6316226 = phi1;
        double r6316227 = cos(r6316226);
        double r6316228 = cos(r6316223);
        double r6316229 = r6316221 * r6316228;
        double r6316230 = r6316227 + r6316229;
        double r6316231 = atan2(r6316225, r6316230);
        double r6316232 = r6316219 + r6316231;
        return r6316232;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r6316233 = phi2;
        double r6316234 = cos(r6316233);
        double r6316235 = lambda1;
        double r6316236 = lambda2;
        double r6316237 = r6316235 - r6316236;
        double r6316238 = sin(r6316237);
        double r6316239 = r6316234 * r6316238;
        double r6316240 = cos(r6316237);
        double r6316241 = r6316234 * r6316240;
        double r6316242 = phi1;
        double r6316243 = cos(r6316242);
        double r6316244 = r6316241 + r6316243;
        double r6316245 = atan2(r6316239, r6316244);
        double r6316246 = r6316245 + r6316235;
        return r6316246;
}

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