\left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\left(2 \cdot \left|x\right| + \frac{2}{3} \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{5} \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{21} \cdot \left(\left(\left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|double f(double x) {
double r8575 = 1.0;
double r8576 = atan2(1.0, 0.0);
double r8577 = sqrt(r8576);
double r8578 = r8575 / r8577;
double r8579 = 2.0;
double r8580 = x;
double r8581 = fabs(r8580);
double r8582 = r8579 * r8581;
double r8583 = 3.0;
double r8584 = r8579 / r8583;
double r8585 = r8581 * r8581;
double r8586 = r8585 * r8581;
double r8587 = r8584 * r8586;
double r8588 = r8582 + r8587;
double r8589 = 5.0;
double r8590 = r8575 / r8589;
double r8591 = r8586 * r8581;
double r8592 = r8591 * r8581;
double r8593 = r8590 * r8592;
double r8594 = r8588 + r8593;
double r8595 = 21.0;
double r8596 = r8575 / r8595;
double r8597 = r8592 * r8581;
double r8598 = r8597 * r8581;
double r8599 = r8596 * r8598;
double r8600 = r8594 + r8599;
double r8601 = r8578 * r8600;
double r8602 = fabs(r8601);
return r8602;
}
Please include this information when filing a bug report:
herbie shell --seed 2019173 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
(fabs (* (/ 1.0 (sqrt PI)) (+ (+ (+ (* 2.0 (fabs x)) (* (/ 2.0 3.0) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1.0 5.0) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1.0 21.0) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))
| atab-pick-alt: contract violation expected: alt? given: '(#<alt (λ (x) (fabs (* (/ 1.0 (sqrt PI)) (fma (pow (fabs x) 3) (fma (/ 1.0 5.0) (* (fabs x) (fabs x)) (/ 2.0 3.0)) (* (fabs x) (fma (pow (fabs x) 6) (/ 1.0 21.0) 2.0))))))>) in: the range of the #:picking-func argument of (-> alt-table? #:only-fresh boolean? #:picking-func (-> (listof alt?) alt?) (values alt? alt-table?)) contract from: /data/pavpan/nightlies/herbie/no-costs-2/src/core/alt-table.rkt blaming: /data/pavpan/nightlies/herbie/no-costs-2/src/mainloop.rkt (assuming the contract is correct) at: /data/pavpan/nightlies/herbie/no-costs-2/src/core/alt-table.rkt:13.3 | L | C | |
|---|---|---|---|
| raise-blame-error16 | /opt/racket-7.0/collects/racket/contract/private/blame.rkt | 347 | 0 |
| (unnamed) | /data/pavpan/nightlies/herbie/no-costs-2/src/core/alt-table.rkt | 59 | 0 |
| (unnamed) | /opt/racket-7.0/collects/racket/contract/private/arrow-val-first.rkt | 388 | 18 |
| choose-best-alt! | /data/pavpan/nightlies/herbie/no-costs-2/src/mainloop.rkt | 110 | 0 |
| run-iter! | /data/pavpan/nightlies/herbie/no-costs-2/src/mainloop.rkt | 319 | 0 |
| for-loop | /data/pavpan/nightlies/herbie/no-costs-2/src/mainloop.rkt | 353 | 4 |
| run-improve43 | /data/pavpan/nightlies/herbie/no-costs-2/src/mainloop.rkt | 338 | 0 |
| (unnamed) | /opt/racket-7.0/collects/racket/private/more-scheme.rkt | 261 | 28 |
| run | /opt/racket-7.0/share/pkgs/profile-lib/main.rkt | 39 | 2 |
| profile-thunk16 | /opt/racket-7.0/share/pkgs/profile-lib/main.rkt | 9 | 0 |
| (unnamed) | /opt/racket-7.0/collects/racket/private/more-scheme.rkt | 261 | 28 |