\[\left(\frac{\pi}{2.0} \cdot \frac{1.0}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1.0}{a} - \frac{1.0}{b}\right)\]
\left(\frac{\pi}{2.0} \cdot \frac{1.0}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1.0}{a} - \frac{1.0}{b}\right)
double f(double a, double b) {
        double r1174433 = atan2(1.0, 0.0);
        double r1174434 = 2.0;
        double r1174435 = r1174433 / r1174434;
        double r1174436 = 1.0;
        double r1174437 = b;
        double r1174438 = r1174437 * r1174437;
        double r1174439 = a;
        double r1174440 = r1174439 * r1174439;
        double r1174441 = r1174438 - r1174440;
        double r1174442 = r1174436 / r1174441;
        double r1174443 = r1174435 * r1174442;
        double r1174444 = r1174436 / r1174439;
        double r1174445 = r1174436 / r1174437;
        double r1174446 = r1174444 - r1174445;
        double r1174447 = r1174443 * r1174446;
        return r1174447;
}

Reproduce

Please include this information when filing a bug report:

herbie shell --seed 2019165 +o rules:numerics
(FPCore (a b)
  :name "NMSE Section 6.1 mentioned, B"
  (* (* (/ PI 2.0) (/ 1.0 (- (* b b) (* a a)))) (- (/ 1.0 a) (/ 1.0 b))))

Backtrace

->bf: contract violation expected: value? given: 'PI in: the 1st argument of (-> value? bigvalue?) contract from: (function ->bf) blaming: /data/pavpan/nightlies/herbie/optional-posits/src/float.rkt (assuming the contract is correct) at: /data/pavpan/nightlies/herbie/optional-posits/src/float.rkt:163.18LC
raise-blame-error16/opt/racket-7.0/collects/racket/contract/private/blame.rkt3470
(unnamed)/opt/racket-7.0/collects/racket/contract/private/arrow-higher-order.rkt35733
(unnamed)/data/pavpan/nightlies/herbie/optional-posits/src/core/localize.rkt2213
hash-ref!/opt/racket-7.0/collects/racket/private/more-scheme.rkt3762
loop/opt/racket-7.0/collects/racket/private/map.rkt4019
parse-loop15/opt/racket-7.0/collects/racket/match/compiler.rkt41815
hash-ref!/opt/racket-7.0/collects/racket/private/more-scheme.rkt3762
loop/opt/racket-7.0/collects/racket/private/map.rkt4019
parse-loop15/opt/racket-7.0/collects/racket/match/compiler.rkt41815
hash-ref!/opt/racket-7.0/collects/racket/private/more-scheme.rkt3762
loop/opt/racket-7.0/collects/racket/private/map.rkt4019
parse-loop15/opt/racket-7.0/collects/racket/match/compiler.rkt41815
hash-ref!/opt/racket-7.0/collects/racket/private/more-scheme.rkt3762
localize-error/data/pavpan/nightlies/herbie/optional-posits/src/core/localize.rkt520
localize!/data/pavpan/nightlies/herbie/optional-posits/src/mainloop.rkt1160
run-iter!/data/pavpan/nightlies/herbie/optional-posits/src/mainloop.rkt3170
for-loop/data/pavpan/nightlies/herbie/optional-posits/src/mainloop.rkt3514
run-improve40/data/pavpan/nightlies/herbie/optional-posits/src/mainloop.rkt3360
(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