Average Error: 13.3 → 0.2
Time: 38.3s
Precision: 64
\[\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
\[\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \left(-\sin \lambda_2\right) + \cos \lambda_2 \cdot \sin \lambda_1\right)}{\sin \phi_2 \cdot \cos \phi_1 - \frac{\frac{\left(\left(\left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1 - \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)\right)\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}{\left(\sin \lambda_2 \cdot \sin \lambda_1 - \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_2 \cdot \cos \lambda_1\right)}}{\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_2 \cdot \sin \lambda_1}}\]
\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}
\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \left(-\sin \lambda_2\right) + \cos \lambda_2 \cdot \sin \lambda_1\right)}{\sin \phi_2 \cdot \cos \phi_1 - \frac{\frac{\left(\left(\left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1 - \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)\right)\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}{\left(\sin \lambda_2 \cdot \sin \lambda_1 - \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_2 \cdot \cos \lambda_1\right)}}{\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_2 \cdot \sin \lambda_1}}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r140027 = lambda1;
        double r140028 = lambda2;
        double r140029 = r140027 - r140028;
        double r140030 = sin(r140029);
        double r140031 = phi2;
        double r140032 = cos(r140031);
        double r140033 = r140030 * r140032;
        double r140034 = phi1;
        double r140035 = cos(r140034);
        double r140036 = sin(r140031);
        double r140037 = r140035 * r140036;
        double r140038 = sin(r140034);
        double r140039 = r140038 * r140032;
        double r140040 = cos(r140029);
        double r140041 = r140039 * r140040;
        double r140042 = r140037 - r140041;
        double r140043 = atan2(r140033, r140042);
        return r140043;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r140044 = phi2;
        double r140045 = cos(r140044);
        double r140046 = lambda1;
        double r140047 = cos(r140046);
        double r140048 = lambda2;
        double r140049 = sin(r140048);
        double r140050 = -r140049;
        double r140051 = r140047 * r140050;
        double r140052 = cos(r140048);
        double r140053 = sin(r140046);
        double r140054 = r140052 * r140053;
        double r140055 = r140051 + r140054;
        double r140056 = r140045 * r140055;
        double r140057 = sin(r140044);
        double r140058 = phi1;
        double r140059 = cos(r140058);
        double r140060 = r140057 * r140059;
        double r140061 = r140052 * r140047;
        double r140062 = r140049 * r140053;
        double r140063 = r140061 - r140062;
        double r140064 = r140062 + r140061;
        double r140065 = r140062 - r140061;
        double r140066 = r140065 * r140064;
        double r140067 = r140064 * r140066;
        double r140068 = r140063 * r140067;
        double r140069 = sin(r140058);
        double r140070 = r140068 * r140069;
        double r140071 = r140070 * r140045;
        double r140072 = r140071 / r140066;
        double r140073 = r140072 / r140063;
        double r140074 = r140060 - r140073;
        double r140075 = atan2(r140056, r140074);
        return r140075;
}

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 13.3

    \[\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  2. Using strategy rm
  3. Applied sub-neg13.3

    \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  4. Applied sin-sum6.8

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

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

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \color{blue}{\sin \lambda_2 \cdot \left(-\cos \lambda_1\right)}\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  7. Using strategy rm
  8. Applied cos-diff0.2

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

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_2 \cdot \left(-\cos \lambda_1\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \color{blue}{\sin \lambda_2 \cdot \sin \lambda_1}\right)}\]
  10. Using strategy rm
  11. Applied flip-+0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_2 \cdot \left(-\cos \lambda_1\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \color{blue}{\frac{\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right) - \left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)}{\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_2 \cdot \sin \lambda_1}}}\]
  12. Applied associate-*r/0.2

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

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_2 \cdot \left(-\cos \lambda_1\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \frac{\color{blue}{\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}}{\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_2 \cdot \sin \lambda_1}}\]
  14. Using strategy rm
  15. Applied flip--0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_2 \cdot \left(-\cos \lambda_1\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \frac{\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\color{blue}{\frac{\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right) - \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}{\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2}} \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}{\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_2 \cdot \sin \lambda_1}}\]
  16. Applied associate-*l/0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_2 \cdot \left(-\cos \lambda_1\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \frac{\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \color{blue}{\frac{\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right) - \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}{\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2}}}{\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_2 \cdot \sin \lambda_1}}\]
  17. Applied flip-+0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_2 \cdot \left(-\cos \lambda_1\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \frac{\color{blue}{\frac{\left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right) - \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)}{\sin \lambda_1 \cdot \sin \lambda_2 - \cos \lambda_1 \cdot \cos \lambda_2}} \cdot \frac{\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right) - \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}{\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2}}{\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_2 \cdot \sin \lambda_1}}\]
  18. Applied frac-times0.2

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

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

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

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

Reproduce

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