


Bits error versus x
Results
Initial program 0.2
Taylor expanded around inf 0.2
Final simplification0.2
herbie shell --seed 2019004 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
(fabs (* (/ 1 (sqrt PI)) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))
Time bar (total: 59.7s)Debug log
1 calls. Slowest were:
| 388.0ms | (fabs (* (/ 1 (sqrt PI)) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.2b
Found 4 expressions with local error:
| 1.0b | (sqrt PI) |
| 0.2b | (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x))) |
| 0.2b | (* (/ 1 (sqrt PI)) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x))))) |
| 0.1b | (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x))) |
4 calls. Slowest were:
| 1.2s | (* (/ 1 (sqrt PI)) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x))))) |
| 162.0ms | (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x))) |
| 21.0ms | (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x))) |
4 calls. Slowest were:
| 282.0ms | (* (/ 1 (sqrt PI)) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x))))) |
| 42.0ms | (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x))) |
| 37.0ms | (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x))) |
| 0.0ms | (sqrt PI) |
72 calls. Slowest were:
| 1.1s | (* (/ 1 (sqrt PI)) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) |
| 1.1s | (* (* (* (/ 1 (sqrt PI)) (/ 1 (sqrt PI))) (/ 1 (sqrt PI))) (* (* (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x))))) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))) |
| 834.0ms | (* 1 (+ (* (+ (pow (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) 3) (pow (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x))) 3)) 21) (* (+ (* (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x))))) (- (* (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))) (* 1 (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))) |
4 alts after pruning (3 fresh and 1 done)
Merged error: 0b
Found 4 expressions with local error:
| 0.2b | (* 2/3 (pow (fabs x) 3)) |
| 0.2b | (* (sqrt (/ 1 PI)) (+ (* 1/5 (pow (fabs x) 5)) (+ (* 2 (fabs x)) (+ (* 2/3 (pow (fabs x) 3)) (* 1/21 (pow (fabs x) 7)))))) |
| 0.1b | (* 1/5 (pow (fabs x) 5)) |
| 0.1b | (* 1/21 (pow (fabs x) 7)) |
4 calls. Slowest were:
| 78.0ms | (* (sqrt (/ 1 PI)) (+ (* 1/5 (pow (fabs x) 5)) (+ (* 2 (fabs x)) (+ (* 2/3 (pow (fabs x) 3)) (* 1/21 (pow (fabs x) 7)))))) |
| 5.0ms | (* 2/3 (pow (fabs x) 3)) |
| 4.0ms | (* 1/21 (pow (fabs x) 7)) |
4 calls. Slowest were:
| 288.0ms | (* (sqrt (/ 1 PI)) (+ (* 1/5 (pow (fabs x) 5)) (+ (* 2 (fabs x)) (+ (* 2/3 (pow (fabs x) 3)) (* 1/21 (pow (fabs x) 7)))))) |
| 49.0ms | (* 1/5 (pow (fabs x) 5)) |
| 46.0ms | (* 1/21 (pow (fabs x) 7)) |
| 35.0ms | (* 2/3 (pow (fabs x) 3)) |
56 calls. Slowest were:
| 440.0ms | (* (sqrt PI) (- (* 1/5 (pow (fabs x) 5)) (+ (* 2 (fabs x)) (+ (* 2/3 (pow (fabs x) 3)) (* 1/21 (pow (fabs x) 7)))))) |
| 397.0ms | (* (* (* (sqrt (/ 1 PI)) (sqrt (/ 1 PI))) (sqrt (/ 1 PI))) (* (* (+ (* 1/5 (pow (fabs x) 5)) (+ (* 2 (fabs x)) (+ (* 2/3 (pow (fabs x) 3)) (* 1/21 (pow (fabs x) 7))))) (+ (* 1/5 (pow (fabs x) 5)) (+ (* 2 (fabs x)) (+ (* 2/3 (pow (fabs x) 3)) (* 1/21 (pow (fabs x) 7)))))) (+ (* 1/5 (pow (fabs x) 5)) (+ (* 2 (fabs x)) (+ (* 2/3 (pow (fabs x) 3)) (* 1/21 (pow (fabs x) 7))))))) |
| 295.0ms | (* (sqrt (/ 1 PI)) (+ (* 2 (fabs x)) (+ (* 2/3 (pow (fabs x) 3)) (* 1/21 (pow (fabs x) 7))))) |
4 alts after pruning (2 fresh and 2 done)
Merged error: 0b
Found 4 expressions with local error:
| 1.0b | (sqrt PI) |
| 0.4b | (* (fabs x) 2/3) |
| 0.3b | (/ (fma (pow (fabs x) 5) 1/5 (fma (fabs x) (fma (* (fabs x) 2/3) (fabs x) 2) (* (pow (fabs x) 7) 1/21))) (sqrt PI)) |
| 0.1b | (* (pow (fabs x) 7) 1/21) |
4 calls. Slowest were:
| 3.0ms | (* (pow (fabs x) 7) 1/21) |
| 3.0ms | (/ (fma (pow (fabs x) 5) 1/5 (fma (fabs x) (fma (* (fabs x) 2/3) (fabs x) 2) (* (pow (fabs x) 7) 1/21))) (sqrt PI)) |
| 2.0ms | (* (fabs x) 2/3) |
4 calls. Slowest were:
| 268.0ms | (/ (fma (pow (fabs x) 5) 1/5 (fma (fabs x) (fma (* (fabs x) 2/3) (fabs x) 2) (* (pow (fabs x) 7) 1/21))) (sqrt PI)) |
| 58.0ms | (* (pow (fabs x) 7) 1/21) |
| 9.0ms | (* (fabs x) 2/3) |
| 0.0ms | (sqrt PI) |
42 calls. Slowest were:
| 311.0ms | (/ (* (* (fma (pow (fabs x) 5) 1/5 (fma (fabs x) (fma (* (fabs x) 2/3) (fabs x) 2) (* (pow (fabs x) 7) 1/21))) (fma (pow (fabs x) 5) 1/5 (fma (fabs x) (fma (* (fabs x) 2/3) (fabs x) 2) (* (pow (fabs x) 7) 1/21)))) (fma (pow (fabs x) 5) 1/5 (fma (fabs x) (fma (* (fabs x) 2/3) (fabs x) 2) (* (pow (fabs x) 7) 1/21)))) (* (* (sqrt PI) (sqrt PI)) (sqrt PI))) |
| 174.0ms | (* (sqrt (/ 1 PI)) (+ (* 1/5 (pow (fabs x) 5)) (+ (* 2 (fabs x)) (+ (* 2/3 (pow (fabs x) 3)) (* 1/21 (pow (fabs x) 7)))))) |
| 172.0ms | (* (sqrt (/ 1 PI)) (+ (* 1/5 (pow (fabs x) 5)) (+ (* 2 (fabs x)) (+ (* 2/3 (pow (fabs x) 3)) (* 1/21 (pow (fabs x) 7)))))) |
4 alts after pruning (1 fresh and 3 done)
Merged error: 0b
Found 4 expressions with local error:
| 1.0b | (sqrt PI) |
| 1.0b | (expm1 (log1p (sqrt PI))) |
| 0.2b | (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x))) |
| 0.2b | (* (/ 1 (expm1 (log1p (sqrt PI)))) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x))))) |
4 calls. Slowest were:
| 1.3s | (* (/ 1 (expm1 (log1p (sqrt PI)))) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x))))) |
| 49.0ms | (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x))) |
| 0.0ms | (sqrt PI) |
4 calls. Slowest were:
| 575.0ms | (* (/ 1 (expm1 (log1p (sqrt PI)))) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x))))) |
| 29.0ms | (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x))) |
| 0.0ms | (sqrt PI) |
| 0.0ms | (expm1 (log1p (sqrt PI))) |
49 calls. Slowest were:
| 916.0ms | (* (* (* (/ 1 (expm1 (log1p (sqrt PI)))) (/ 1 (expm1 (log1p (sqrt PI))))) (/ 1 (expm1 (log1p (sqrt PI))))) (* (* (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x))))) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))) |
| 786.0ms | (* (expm1 (log1p (sqrt PI))) (+ (* (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x))))) (- (* (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x))))))) |
| 773.0ms | (* 1 (+ (* (+ (pow (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) 3) (pow (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x))) 3)) 21) (* (+ (* (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x))))) (- (* (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))) (* 1 (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))) |
4 alts after pruning (0 fresh and 4 done)
Merged error: 0b
0% (0.1b remaining)
Error of 0.2b against oracle of 0.0b and baseline of 0.2b