\frac{a1 \cdot a2}{b1 \cdot b2}(FPCore (a1 a2 b1 b2) :precision binary64 (/ (* a1 a2) (* b1 b2)))
double code(double a1, double a2, double b1, double b2) {
return (a1 * a2) / (b1 * b2);
}
Please include this information when filing a bug report:
herbie shell --seed 2021067
(FPCore (a1 a2 b1 b2)
:name "Quotient of products"
:precision binary64
:herbie-target
(* (/ a1 b1) (/ a2 b2))
(/ (* a1 a2) (* b1 b2)))
| simplify-batch: contract violation expected keyword argument #:precompute in: (-> (listof (or/c (listof any/c) symbol? value? real?)) #:precompute boolean? #:rules (listof rule?) (listof (listof (or/c (listof any/c) symbol? value? real?)))) contract from: (function simplify-batch) blaming: <pkgs>/herbie/core/simplify.rkt (assuming the contract is correct) at: <pkgs>/herbie/core/simplify.rkt:68.18 | L | C | |
|---|---|---|---|
| raise-blame-error | /opt/racket-7.9/collects/racket/contract/private/blame.rkt | 347 | 0 |
| for-loop | /opt/racket-7.9/collects/racket/contract/private/arrow-higher-order.rkt | 508 | 13 |
| kwd-checker | /opt/racket-7.9/collects/racket/contract/private/arrow-higher-order.rkt | 496 | 11 |
| connected-components | /data/pavpan/nightlies/herbie/egg-interface-fixes/src/symmetry.rkt | 17 | 0 |
| run-improve | /data/pavpan/nightlies/herbie/egg-interface-fixes/src/mainloop.rkt | 387 | 0 |
| (unnamed) | /data/pavpan/nightlies/herbie/egg-interface-fixes/src/sandbox.rkt | 54 | 6 |
| run | /opt/racket-7.9/share/pkgs/profile-lib/main.rkt | 39 | 2 |
| profile-thunk | /opt/racket-7.9/share/pkgs/profile-lib/main.rkt | 9 | 0 |
| (unnamed) | /opt/racket-7.9/collects/racket/engine.rkt | 42 | 24 |