\[0.0 \le u1 \le 1.0 \land 0.0 \le u2 \le 1.0\]
\[\left(\frac{1.0}{6.0} \cdot {\left(-2.0 \cdot \log u1\right)}^{0.5}\right) \cdot \cos \left(\left(2.0 \cdot \pi\right) \cdot u2\right) + 0.5\]
\left(\frac{1.0}{6.0} \cdot {\left(-2.0 \cdot \log u1\right)}^{0.5}\right) \cdot \cos \left(\left(2.0 \cdot \pi\right) \cdot u2\right) + 0.5
double f(double u1, double u2) {
        double r375728 = 1.0;
        double r375729 = 6.0;
        double r375730 = r375728 / r375729;
        double r375731 = -2.0;
        double r375732 = u1;
        double r375733 = log(r375732);
        double r375734 = r375731 * r375733;
        double r375735 = 0.5;
        double r375736 = pow(r375734, r375735);
        double r375737 = r375730 * r375736;
        double r375738 = 2.0;
        double r375739 = atan2(1.0, 0.0);
        double r375740 = r375738 * r375739;
        double r375741 = u2;
        double r375742 = r375740 * r375741;
        double r375743 = cos(r375742);
        double r375744 = r375737 * r375743;
        double r375745 = r375744 + r375735;
        return r375745;
}

Reproduce

Please include this information when filing a bug report:

herbie shell --seed 2019165 +o rules:numerics
(FPCore (u1 u2)
  :name "normal distribution"
  :pre (and (<= 0.0 u1 1.0) (<= 0.0 u2 1.0))
  (+ (* (* (/ 1.0 6.0) (pow (* -2.0 (log u1)) 0.5)) (cos (* (* 2.0 PI) u2))) 0.5))

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
map/opt/racket-7.0/collects/racket/private/map.rkt3513
f9/opt/racket-7.0/collects/racket/match/compiler.rkt50740
hash-ref!/opt/racket-7.0/collects/racket/private/more-scheme.rkt3762
map/opt/racket-7.0/collects/racket/private/map.rkt3513
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