(FPCore (lambda1 lambda2 phi1 phi2) :precision binary64 (+ lambda1 (atan2 (* (cos phi2) (sin (- lambda1 lambda2))) (+ (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2)))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
return lambda1 + atan2((cos(phi2) * sin((lambda1 - lambda2))), (cos(phi1) + (cos(phi2) * cos((lambda1 - lambda2)))));
}
real(8) function code(lambda1, lambda2, phi1, phi2)
real(8), intent (in) :: lambda1
real(8), intent (in) :: lambda2
real(8), intent (in) :: phi1
real(8), intent (in) :: phi2
code = lambda1 + atan2((cos(phi2) * sin((lambda1 - lambda2))), (cos(phi1) + (cos(phi2) * cos((lambda1 - lambda2)))))
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
return lambda1 + Math.atan2((Math.cos(phi2) * Math.sin((lambda1 - lambda2))), (Math.cos(phi1) + (Math.cos(phi2) * Math.cos((lambda1 - lambda2)))));
}
def code(lambda1, lambda2, phi1, phi2): return lambda1 + math.atan2((math.cos(phi2) * math.sin((lambda1 - lambda2))), (math.cos(phi1) + (math.cos(phi2) * math.cos((lambda1 - lambda2)))))
function code(lambda1, lambda2, phi1, phi2) return Float64(lambda1 + atan(Float64(cos(phi2) * sin(Float64(lambda1 - lambda2))), Float64(cos(phi1) + Float64(cos(phi2) * cos(Float64(lambda1 - lambda2)))))) end
function tmp = code(lambda1, lambda2, phi1, phi2) tmp = lambda1 + atan2((cos(phi2) * sin((lambda1 - lambda2))), (cos(phi1) + (cos(phi2) * cos((lambda1 - lambda2))))); end
code[lambda1_, lambda2_, phi1_, phi2_] := N[(lambda1 + N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(N[Cos[phi1], $MachinePrecision] + N[(N[Cos[phi2], $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
\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)}
Please include this information when filing a bug report:
herbie shell --seed 2022193
(FPCore (lambda1 lambda2 phi1 phi2)
:name "Midpoint on a great circle"
:precision binary64
(+ lambda1 (atan2 (* (cos phi2) (sin (- lambda1 lambda2))) (+ (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2)))))))
| hash-ref: no value found for key key: '~ | L | C | |
|---|---|---|---|
| (unnamed) | /data/pavpan/nightlies/herbie/ruler-arith/src/syntax/syntax.rkt | 202 | 2 |
| f337 | .../match/compiler.rkt | 548 | 40 |
| f337 | .../match/compiler.rkt | 548 | 40 |
| expand-parametric | /data/pavpan/nightlies/herbie/ruler-arith/src/syntax/sugar.rkt | 62 | 0 |
| (unnamed) | /data/pavpan/nightlies/herbie/ruler-arith/src/syntax/rules.rkt | 175 | 8 |
| generate-rules-for | /data/pavpan/nightlies/herbie/ruler-arith/src/syntax/rules.rkt | 160 | 0 |
| generate-missing-rules | /data/pavpan/nightlies/herbie/ruler-arith/src/syntax/rules.rkt | 186 | 0 |
| (unnamed) | /data/pavpan/nightlies/herbie/ruler-arith/src/syntax/rules.rkt | 30 | 26 |
| get-swaps | /data/pavpan/nightlies/herbie/ruler-arith/src/symmetry.rkt | 6 | 0 |
| connected-components | /data/pavpan/nightlies/herbie/ruler-arith/src/symmetry.rkt | 17 | 0 |
| run-improve! | /data/pavpan/nightlies/herbie/ruler-arith/src/mainloop.rkt | 317 | 0 |
| (unnamed) | /data/pavpan/nightlies/herbie/ruler-arith/src/sandbox.rkt | 56 | 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 |