
(FPCore (R lambda1 lambda2 phi1 phi2) :precision binary64 (let* ((t_0 (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2.0))))) (* R (sqrt (+ (* t_0 t_0) (* (- phi1 phi2) (- phi1 phi2)))))))
double code(double R, double lambda1, double lambda2, double phi1, double phi2) {
double t_0 = (lambda1 - lambda2) * cos(((phi1 + phi2) / 2.0));
return R * sqrt(((t_0 * t_0) + ((phi1 - phi2) * (phi1 - phi2))));
}
real(8) function code(r, lambda1, lambda2, phi1, phi2)
real(8), intent (in) :: r
real(8), intent (in) :: lambda1
real(8), intent (in) :: lambda2
real(8), intent (in) :: phi1
real(8), intent (in) :: phi2
real(8) :: t_0
t_0 = (lambda1 - lambda2) * cos(((phi1 + phi2) / 2.0d0))
code = r * sqrt(((t_0 * t_0) + ((phi1 - phi2) * (phi1 - phi2))))
end function
public static double code(double R, double lambda1, double lambda2, double phi1, double phi2) {
double t_0 = (lambda1 - lambda2) * Math.cos(((phi1 + phi2) / 2.0));
return R * Math.sqrt(((t_0 * t_0) + ((phi1 - phi2) * (phi1 - phi2))));
}
def code(R, lambda1, lambda2, phi1, phi2): t_0 = (lambda1 - lambda2) * math.cos(((phi1 + phi2) / 2.0)) return R * math.sqrt(((t_0 * t_0) + ((phi1 - phi2) * (phi1 - phi2))))
function code(R, lambda1, lambda2, phi1, phi2) t_0 = Float64(Float64(lambda1 - lambda2) * cos(Float64(Float64(phi1 + phi2) / 2.0))) return Float64(R * sqrt(Float64(Float64(t_0 * t_0) + Float64(Float64(phi1 - phi2) * Float64(phi1 - phi2))))) end
function tmp = code(R, lambda1, lambda2, phi1, phi2) t_0 = (lambda1 - lambda2) * cos(((phi1 + phi2) / 2.0)); tmp = R * sqrt(((t_0 * t_0) + ((phi1 - phi2) * (phi1 - phi2)))); end
code[R_, lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[(lambda1 - lambda2), $MachinePrecision] * N[Cos[N[(N[(phi1 + phi2), $MachinePrecision] / 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, N[(R * N[Sqrt[N[(N[(t$95$0 * t$95$0), $MachinePrecision] + N[(N[(phi1 - phi2), $MachinePrecision] * N[(phi1 - phi2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\\
R \cdot \sqrt{t\_0 \cdot t\_0 + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}
\end{array}
\end{array}
herbie shell --seed 2024277
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Equirectangular approximation to distance on a great circle"
:precision binary64
(* R (sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2.0))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2.0)))) (* (- phi1 phi2) (- phi1 phi2))))))
Please file a bug report with this information.
| rival-apply: contract violation expected: (or/c ^TYPE? boolean?) given: 0 in: an element of the 2nd argument of (-> rival-machine? (vectorof (or/c ^TYPE? boolean?)) (vectorof any/c)) contract from: <pkgs>/rival/main.rkt blaming: <pkgs>/herbie/core/rival.rkt (assuming the contract is correct) at: <pkgs>/rival/main.rkt:95:24 | L | C | |
|---|---|---|---|
| raise-blame-error | /usr/share/racket/collects/racket/contract/private/blame.rkt | 346 | 0 |
| loop | .../private/map.rkt | 40 | 19 |
| vector-map/update | /usr/share/racket/collects/racket/vector.rkt | 62 | 0 |
| vector-map | /usr/share/racket/collects/racket/vector.rkt | 106 | 0 |
| rival-apply | /home/nightlies/.local/share/racket/8.10/pkgs/rival/eval/main.rkt | 65 | 0 |
| (unnamed) | /usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt | 486 | 18 |
| (unnamed) | /home/nightlies/herbie/zane-concrete-values/src/core/rival.rkt | 76 | 4 |
| real-apply | /home/nightlies/herbie/zane-concrete-values/src/core/rival.rkt | 67 | 0 |
| (unnamed) | .../private/arrow-val-first.rkt | 486 | 18 |
| <eval-prog-real> | /home/nightlies/herbie/zane-concrete-values/src/core/sampling.rkt | 136 | 2 |
| compute-local-errors | /home/nightlies/herbie/zane-concrete-values/src/core/localize.rkt | 216 | 0 |
| actual-errors | /home/nightlies/herbie/zane-concrete-values/src/core/explain.rkt | 35 | 0 |
| generate-timelines | /home/nightlies/herbie/zane-concrete-values/src/core/explain.rkt | 498 | 0 |
| explain! | /home/nightlies/herbie/zane-concrete-values/src/core/mainloop.rkt | 323 | 0 |
| run-improve! | /home/nightlies/herbie/zane-concrete-values/src/core/mainloop.rkt | 45 | 0 |
| get-alternatives/report | /home/nightlies/herbie/zane-concrete-values/src/api/sandbox.rkt | 186 | 0 |
| (unnamed) | /home/nightlies/herbie/zane-concrete-values/src/api/sandbox.rkt | 282 | 6 |
| (unnamed) | /usr/share/racket/pkgs/profile-lib/main.rkt | 40 | 10 |
| profile-thunk | /usr/share/racket/pkgs/profile-lib/main.rkt | 9 | 0 |
| (unnamed) | /usr/share/racket/collects/racket/engine.rkt | 42 | 24 |