


Bits error versus x
if x < -2.0009669879910695e-17 or 2.2459177707888453e-10 < x Initial program 0.8
Simplified0.8
Taylor expanded around -inf 0.8
Simplified0.8
rmApplied associate-+l+0.8
rmApplied associate-+r+0.8
if -2.0009669879910695e-17 < x < 2.2459177707888453e-10Initial program 28.0
Simplified28.0
Taylor expanded around -inf 28.0
Simplified28.0
rmApplied flip--28.0
Applied flip3-+28.0
Applied frac-add25.6
Final simplification12.6
herbie shell --seed 2019008 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.erf"
(- 1 (* (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 0.254829592 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -0.284496736 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 1.421413741 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -1.453152027 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) 1.061405429))))))))) (exp (- (* (fabs x) (fabs x)))))))
Time bar (total: 3.3m)Debug log
1 calls. Slowest were:
| 238.0ms | (- 1 (* (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 0.254829592 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -0.284496736 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 1.421413741 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -1.453152027 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) 1.061405429))))))))) (exp (- (* (fabs x) (fabs x)))))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 14.9b
Found 4 expressions with local error:
| 14.8b | (fma (/ -1 (exp (* (fabs x) (fabs x)))) (fma (* (/ 1 (fma 0.3275911 (fabs x) 1)) (/ 1 (fma 0.3275911 (fabs x) 1))) (fma (/ 1 (fma 0.3275911 (fabs x) 1)) (fma (/ 1 (fma 0.3275911 (fabs x) 1)) (+ (/ 1.061405429 (fma 0.3275911 (fabs x) 1)) -1.453152027) 1.421413741) -0.284496736) (/ 0.254829592 (fma 0.3275911 (fabs x) 1))) 1) |
| 0.5b | (fma (* (/ 1 (fma 0.3275911 (fabs x) 1)) (/ 1 (fma 0.3275911 (fabs x) 1))) (fma (/ 1 (fma 0.3275911 (fabs x) 1)) (fma (/ 1 (fma 0.3275911 (fabs x) 1)) (+ (/ 1.061405429 (fma 0.3275911 (fabs x) 1)) -1.453152027) 1.421413741) -0.284496736) (/ 0.254829592 (fma 0.3275911 (fabs x) 1))) |
| 0.2b | (/ 1 (fma 0.3275911 (fabs x) 1)) |
| 0.2b | (/ 1 (fma 0.3275911 (fabs x) 1)) |
4 calls. Slowest were:
| 1.0ms | (/ 1 (fma 0.3275911 (fabs x) 1)) |
| 1.0ms | (/ 1 (fma 0.3275911 (fabs x) 1)) |
| 0.0ms | (fma (/ -1 (exp (* (fabs x) (fabs x)))) (fma (* (/ 1 (fma 0.3275911 (fabs x) 1)) (/ 1 (fma 0.3275911 (fabs x) 1))) (fma (/ 1 (fma 0.3275911 (fabs x) 1)) (fma (/ 1 (fma 0.3275911 (fabs x) 1)) (+ (/ 1.061405429 (fma 0.3275911 (fabs x) 1)) -1.453152027) 1.421413741) -0.284496736) (/ 0.254829592 (fma 0.3275911 (fabs x) 1))) 1) |
4 calls. Slowest were:
| 360.0ms | (fma (/ -1 (exp (* (fabs x) (fabs x)))) (fma (* (/ 1 (fma 0.3275911 (fabs x) 1)) (/ 1 (fma 0.3275911 (fabs x) 1))) (fma (/ 1 (fma 0.3275911 (fabs x) 1)) (fma (/ 1 (fma 0.3275911 (fabs x) 1)) (+ (/ 1.061405429 (fma 0.3275911 (fabs x) 1)) -1.453152027) 1.421413741) -0.284496736) (/ 0.254829592 (fma 0.3275911 (fabs x) 1))) 1) |
| 174.0ms | (fma (* (/ 1 (fma 0.3275911 (fabs x) 1)) (/ 1 (fma 0.3275911 (fabs x) 1))) (fma (/ 1 (fma 0.3275911 (fabs x) 1)) (fma (/ 1 (fma 0.3275911 (fabs x) 1)) (+ (/ 1.061405429 (fma 0.3275911 (fabs x) 1)) -1.453152027) 1.421413741) -0.284496736) (/ 0.254829592 (fma 0.3275911 (fabs x) 1))) |
| 23.0ms | (/ 1 (fma 0.3275911 (fabs x) 1)) |
| 22.0ms | (/ 1 (fma 0.3275911 (fabs x) 1)) |
20 calls. Slowest were:
| 398.0ms | (- (+ (* 0.254829592 (/ 1 (+ (* 0.3275911 (fabs x)) 1))) (+ (* 1.061405429 (/ 1 (pow (+ (* 0.3275911 (fabs x)) 1) 5))) (* 1.421413741 (/ 1 (pow (+ (* 0.3275911 (fabs x)) 1) 3))))) (+ (* 0.284496736 (/ 1 (pow (+ (* 0.3275911 (fabs x)) 1) 2))) (* 1.453152027 (/ 1 (pow (+ (* 0.3275911 (fabs x)) 1) 4))))) |
| 311.0ms | (- (+ (* 0.254829592 (/ 1 (+ (* 0.3275911 (fabs x)) 1))) (+ (* 1.061405429 (/ 1 (pow (+ (* 0.3275911 (fabs x)) 1) 5))) (* 1.421413741 (/ 1 (pow (+ (* 0.3275911 (fabs x)) 1) 3))))) (+ (* 0.284496736 (/ 1 (pow (+ (* 0.3275911 (fabs x)) 1) 2))) (* 1.453152027 (/ 1 (pow (+ (* 0.3275911 (fabs x)) 1) 4))))) |
| 295.0ms | (- (+ (* 0.254829592 (/ 1 (+ (* 0.3275911 (fabs x)) 1))) (+ (* 1.061405429 (/ 1 (pow (+ (* 0.3275911 (fabs x)) 1) 5))) (* 1.421413741 (/ 1 (pow (+ (* 0.3275911 (fabs x)) 1) 3))))) (+ (* 0.284496736 (/ 1 (pow (+ (* 0.3275911 (fabs x)) 1) 2))) (* 1.453152027 (/ 1 (pow (+ (* 0.3275911 (fabs x)) 1) 4))))) |
5 alts after pruning (5 fresh and 0 done)
Merged error: 14.8b
Found 4 expressions with local error:
| 14.8b | (+ (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1) (- (* (exp (* (- (fabs x)) (fabs x))) (- (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) (/ (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)))))) |
| 0.2b | (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)) |
| 0.2b | (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) |
| 0.1b | (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) |
4 calls. Slowest were:
| 577.0ms | (+ (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1) (- (* (exp (* (- (fabs x)) (fabs x))) (- (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) (/ (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)))))) |
| 2.0ms | (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)) |
| 2.0ms | (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) |
4 calls. Slowest were:
| 787.0ms | (+ (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1) (- (* (exp (* (- (fabs x)) (fabs x))) (- (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) (/ (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)))))) |
| 46.0ms | (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)) |
| 38.0ms | (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) |
| 19.0ms | (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) |
313 calls. Slowest were:
| 955.0ms | (* (cbrt (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1)) (cbrt (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1))) |
| 904.0ms | (* (+ (* (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1)))) (- (* 1 1) (* (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1))) (exp (* (fabs x) (fabs x)))) |
| 830.0ms | (* (- (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1) (* (* (exp (* (fabs x) (fabs x))) (* (pow (fma 0.3275911 (fabs x) 1) 4) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1)))) (exp (* (fabs x) (fabs x))))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 13.5b
Found 4 expressions with local error:
| 14.8b | (+ (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1) (- (* (exp (* (- (fabs x)) (fabs x))) (- (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) (/ (* (* (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1))) (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1)))) (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)))))) |
| 0.3b | (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1))) |
| 0.3b | (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1))) |
| 0.3b | (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1))) |
4 calls. Slowest were:
| 167.0ms | (+ (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1) (- (* (exp (* (- (fabs x)) (fabs x))) (- (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) (/ (* (* (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1))) (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1)))) (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)))))) |
| 1.0ms | (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1))) |
| 1.0ms | (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1))) |
4 calls. Slowest were:
| 1.0s | (+ (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1) (- (* (exp (* (- (fabs x)) (fabs x))) (- (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) (/ (* (* (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1))) (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1)))) (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)))))) |
| 232.0ms | (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1))) |
| 229.0ms | (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1))) |
| 204.0ms | (cbrt (/ 1.421413741 (fma 0.3275911 (fabs x) 1))) |
289 calls. Slowest were:
| 1.1s | (* (cbrt (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1)) (cbrt (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1))) |
| 1.1s | (* (- (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1) (* (exp (* (fabs x) (fabs x))) (* (exp (* (fabs x) (fabs x))) (* (fma 0.3275911 (fabs x) 1) (pow (fma 0.3275911 (fabs x) 1) 5))))) |
| 888.0ms | (* (+ (* (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1)))) (- (* 1 1) (* (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) 1))) (exp (* (fabs x) (fabs x)))) |
10 alts after pruning (10 fresh and 0 done)
Merged error: 13.4b
Found 4 expressions with local error:
| 0.9b | (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) (+ 1 (- (* (exp (* (- (fabs x)) (fabs x))) (- (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) (/ (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5))))))) |
| 0.8b | (+ 1 (- (* (exp (* (- (fabs x)) (fabs x))) (- (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) (/ (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)))))) |
| 0.2b | (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)) |
| 0.2b | (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) |
4 calls. Slowest were:
| 96.0ms | (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) (+ 1 (- (* (exp (* (- (fabs x)) (fabs x))) (- (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) (/ (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5))))))) |
| 36.0ms | (+ 1 (- (* (exp (* (- (fabs x)) (fabs x))) (- (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) (/ (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)))))) |
| 2.0ms | (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)) |
4 calls. Slowest were:
| 843.0ms | (+ (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))) (+ 1 (- (* (exp (* (- (fabs x)) (fabs x))) (- (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) (/ (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5))))))) |
| 651.0ms | (+ 1 (- (* (exp (* (- (fabs x)) (fabs x))) (- (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) (/ (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)))))) |
| 67.0ms | (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5)) |
| 48.0ms | (/ 1.453152027 (pow (fma 0.3275911 (fabs x) 1) 4)) |
111 calls. Slowest were:
| 994.0ms | (sqrt (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1)))) |
| 809.0ms | (* (cbrt (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1)))) (cbrt (/ (/ 0.284496736 (exp (* (fabs x) (fabs x)))) (* (fma 0.3275911 (fabs x) 1) (fma 0.3275911 (fabs x) 1))))) |
| 519.0ms | (- (* (exp (* (- (fabs x)) (fabs x))) (fma (- (/ (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) (fma 0.3275911 (fabs x) 1))) (/ 1 (fma 0.3275911 (fabs x) 1)) (* (/ (/ 1.421413741 (fma 0.3275911 (fabs x) 1)) (fma 0.3275911 (fabs x) 1)) (/ 1 (fma 0.3275911 (fabs x) 1))))) (* (exp (* (- (fabs x)) (fabs x))) (+ (/ 0.254829592 (fma 0.3275911 (fabs x) 1)) (/ 1.061405429 (pow (fma 0.3275911 (fabs x) 1) 5))))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 13.4b
93.4% (0.1b remaining)
Error of 12.6b against oracle of 12.5b and baseline of 13.7b