Average Error: 0 → 0
Time: 6.8m
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 r1217123 = lambda1;
        double r1217124 = phi2;
        double r1217125 = cos(r1217124);
        double r1217126 = lambda2;
        double r1217127 = r1217123 - r1217126;
        double r1217128 = sin(r1217127);
        double r1217129 = r1217125 * r1217128;
        double r1217130 = phi1;
        double r1217131 = cos(r1217130);
        double r1217132 = cos(r1217127);
        double r1217133 = r1217125 * r1217132;
        double r1217134 = r1217131 + r1217133;
        double r1217135 = atan2(r1217129, r1217134);
        double r1217136 = r1217123 + r1217135;
        return r1217136;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r1217137 = phi2;
        double r1217138 = cos(r1217137);
        double r1217139 = lambda1;
        double r1217140 = lambda2;
        double r1217141 = r1217139 - r1217140;
        double r1217142 = sin(r1217141);
        double r1217143 = r1217138 * r1217142;
        double r1217144 = cos(r1217141);
        double r1217145 = r1217138 * r1217144;
        double r1217146 = phi1;
        double r1217147 = cos(r1217146);
        double r1217148 = r1217145 + r1217147;
        double r1217149 = atan2(r1217143, r1217148);
        double r1217150 = r1217149 + r1217139;
        return r1217150;
}

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