(FPCore (a b) :precision binary64 (sqrt (- (* a a) (* b b))))
double code(double a, double b) {
return sqrt(((a * a) - (b * b)));
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
code = sqrt(((a * a) - (b * b)))
end function
public static double code(double a, double b) {
return Math.sqrt(((a * a) - (b * b)));
}
def code(a, b): return math.sqrt(((a * a) - (b * b)))
function code(a, b) return sqrt(Float64(Float64(a * a) - Float64(b * b))) end
function tmp = code(a, b) tmp = sqrt(((a * a) - (b * b))); end
code[a_, b_] := N[Sqrt[N[(N[(a * a), $MachinePrecision] - N[(b * b), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\sqrt{a \cdot a - b \cdot b}
Please include this information when filing a bug report:
herbie shell --seed 2022349
(FPCore (a b)
:name "bug366, discussion (missed optimization)"
:precision binary64
:herbie-target
(* (sqrt (+ (fabs a) (fabs b))) (sqrt (- (fabs a) (fabs b))))
(sqrt (- (* a a) (* b b))))
| error writing to stream port system error: Broken pipe; errno=32 | L | C | |
|---|---|---|---|
| writeln | /usr/share/racket/collects/racket/private/misc.rkt | 156 | 4 |
| run-egglog | /home/nightlies/nightlies/herbie/oflatt-egglog-ctx/src/egglog/run-egglog.rkt | 1301 | 0 |
| run-simplify-input | /home/nightlies/nightlies/herbie/oflatt-egglog-ctx/src/core/simplify.rkt | 74 | 0 |
| simplify-batch | /home/nightlies/nightlies/herbie/oflatt-egglog-ctx/src/core/simplify.rkt | 51 | 0 |
| (unnamed) | /usr/share/racket/collects/racket/contract/private/arrow-higher-order.rkt | 379 | 33 |
| get-swaps | /home/nightlies/nightlies/herbie/oflatt-egglog-ctx/src/symmetry.rkt | 6 | 0 |
| connected-components | /home/nightlies/nightlies/herbie/oflatt-egglog-ctx/src/symmetry.rkt | 20 | 0 |
| run-improve! | /home/nightlies/nightlies/herbie/oflatt-egglog-ctx/src/mainloop.rkt | 320 | 0 |
| (unnamed) | /home/nightlies/nightlies/herbie/oflatt-egglog-ctx/src/sandbox.rkt | 55 | 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 |