\[R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r8226 = R;
        double r8227 = lambda1;
        double r8228 = lambda2;
        double r8229 = r8227 - r8228;
        double r8230 = phi1;
        double r8231 = phi2;
        double r8232 = r8230 + r8231;
        double r8233 = 2.0;
        double r8234 = r8232 / r8233;
        double r8235 = cos(r8234);
        double r8236 = r8229 * r8235;
        double r8237 = r8236 * r8236;
        double r8238 = r8230 - r8231;
        double r8239 = r8238 * r8238;
        double r8240 = r8237 + r8239;
        double r8241 = sqrt(r8240);
        double r8242 = r8226 * r8241;
        return r8242;
}

Reproduce

Please include this information when filing a bug report:

herbie shell --seed 2019173 
(FPCore (R lambda1 lambda2 phi1 phi2)
  :name "Equirectangular approximation to distance on a great circle"
  (* R (sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2.0))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2.0)))) (* (- phi1 phi2) (- phi1 phi2))))))

Backtrace

atab-pick-alt: contract violation expected: alt? given: '(#<alt (λ (R lambda1 lambda2 phi1 phi2) (* (sqrt (+ (* (- phi1 phi2) (- phi1 phi2)) (* (- lambda1 lambda2) (* (* (- lambda1 lambda2) (cos (/ (+ phi2 phi1) 2.0))) (cos (/ (+ phi2 phi1) 2.0)))))) R))>) in: the range of the #:picking-func argument of (-> alt-table? #:only-fresh boolean? #:picking-func (-> (listof alt?) alt?) (values alt? alt-table?)) contract from: /data/pavpan/nightlies/herbie/no-costs-2/src/core/alt-table.rkt blaming: /data/pavpan/nightlies/herbie/no-costs-2/src/mainloop.rkt (assuming the contract is correct) at: /data/pavpan/nightlies/herbie/no-costs-2/src/core/alt-table.rkt:13.3LC
raise-blame-error16/opt/racket-7.0/collects/racket/contract/private/blame.rkt3470
(unnamed)/data/pavpan/nightlies/herbie/no-costs-2/src/core/alt-table.rkt590
(unnamed)/opt/racket-7.0/collects/racket/contract/private/arrow-val-first.rkt38818
choose-best-alt!/data/pavpan/nightlies/herbie/no-costs-2/src/mainloop.rkt1100
run-iter!/data/pavpan/nightlies/herbie/no-costs-2/src/mainloop.rkt3190
for-loop/data/pavpan/nightlies/herbie/no-costs-2/src/mainloop.rkt3534
run-improve43/data/pavpan/nightlies/herbie/no-costs-2/src/mainloop.rkt3380
(unnamed)/opt/racket-7.0/collects/racket/private/more-scheme.rkt26128
run/opt/racket-7.0/share/pkgs/profile-lib/main.rkt392
profile-thunk16/opt/racket-7.0/share/pkgs/profile-lib/main.rkt90
(unnamed)/opt/racket-7.0/collects/racket/private/more-scheme.rkt26128