
Time bar (total: 5.8s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 0 |
| 100% | 100% | 0% | 0% | 0% | 0% | 0% | 1 |
Compiled 9 to 8 computations (11.1% saved)
| 545.0ms | 8 256× | 0 | valid |
ival-mult: 107.0ms (31% of total)ival-exp: 100.0ms (29% of total)ival-neg: 79.0ms (22.9% of total)ival-sub: 46.0ms (13.3% of total)ival-true: 6.0ms (1.7% of total)exact: 4.0ms (1.2% of total)ival-assert: 3.0ms (0.9% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 1 | 0 | - | 0 | - | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| 0 | 0 | - | 0 | - | #s(literal 1 binary64) |
| 0 | 0 | - | 0 | - | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 0 | 0 | - | 0 | - | (*.f64 x x) |
| 0 | 0 | - | 0 | - | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 0 | 0 | - | 0 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
exp.f64 | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) | sensitivity | 1 | 0 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 1 | 0 |
| - | 0 | 255 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 255 |
| number | freq |
|---|---|
| 0 | 255 |
| 1 | 1 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 27.0ms | 512× | 0 | valid |
Compiled 57 to 22 computations (61.4% saved)
ival-exp: 6.0ms (38% of total)ival-mult: 4.0ms (25.3% of total)ival-sub: 2.0ms (12.7% of total)ival-neg: 2.0ms (12.7% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
| 7 302× | lower-fma.f64 |
| 7 302× | lower-fma.f32 |
| 2 712× | lower-*.f32 |
| 2 710× | lower-*.f64 |
| 2 292× | exp-sum |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 15 |
| 1 | 30 | 13 |
| 2 | 74 | 13 |
| 3 | 156 | 13 |
| 4 | 282 | 13 |
| 5 | 410 | 13 |
| 6 | 635 | 13 |
| 7 | 968 | 13 |
| 8 | 1625 | 13 |
| 9 | 3013 | 13 |
| 10 | 6135 | 13 |
| 0 | 6 | 7 |
| 0 | 10 | 7 |
| 1 | 22 | 6 |
| 2 | 51 | 6 |
| 3 | 106 | 6 |
| 4 | 192 | 6 |
| 5 | 293 | 6 |
| 6 | 468 | 6 |
| 7 | 776 | 6 |
| 8 | 1277 | 6 |
| 9 | 2109 | 6 |
| 10 | 4291 | 6 |
| 11 | 7386 | 6 |
| 0 | 8073 | 5 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| Outputs |
|---|
(exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(abs x)
Compiled 7 to 6 computations (14.3% saved)
Compiled 0 to 1 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.9% | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
Compiled 7 to 6 computations (14.3% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | (-.f64 #s(literal 1 binary64) (*.f64 x x)) | |
| cost-diff | 0 | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) | |
| cost-diff | 256 | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 7 302× | lower-fma.f64 |
| 7 302× | lower-fma.f32 |
| 2 712× | lower-*.f32 |
| 2 710× | lower-*.f64 |
| 2 292× | exp-sum |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 23 |
| 0 | 10 | 23 |
| 1 | 22 | 21 |
| 2 | 51 | 21 |
| 3 | 106 | 21 |
| 4 | 192 | 21 |
| 5 | 293 | 21 |
| 6 | 468 | 21 |
| 7 | 776 | 21 |
| 8 | 1277 | 21 |
| 9 | 2109 | 21 |
| 10 | 4291 | 21 |
| 11 | 7386 | 21 |
| 0 | 8073 | 19 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
(neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
(-.f64 #s(literal 1 binary64) (*.f64 x x)) |
#s(literal 1 binary64) |
(*.f64 x x) |
x |
| Outputs |
|---|
(exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
(fma.f64 x x #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 x x)) |
#s(literal 1 binary64) |
(*.f64 x x) |
x |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0 | (-.f64 #s(literal 1 binary64) (*.f64 x x)) | |
| accuracy | 0 | (*.f64 x x) | |
| accuracy | 0 | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) | |
| accuracy | 0.03236485241743066 | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| 12.0ms | 256× | 0 | valid |
Compiled 25 to 8 computations (68% saved)
ival-exp: 2.0ms (30.2% of total)ival-mult: 2.0ms (30.2% of total)ival-sub: 1.0ms (15.1% of total)ival-neg: 1.0ms (15.1% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ()) |
#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ()) |
#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ()) |
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ()) |
| Outputs |
|---|
#s(alt -1 (taylor 0 x) (#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (exp -1) (taylor 0 x) (#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (exp -1))) (taylor 0 x) (#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) (taylor 0 x) (#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) (taylor 0 x) (#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ())) ()) |
#s(alt 1 (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (+ 1 (* -1 (pow x 2))) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (+ 1 (* -1 (pow x 2))) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (+ 1 (* -1 (pow x 2))) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (pow x 2)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) (patch (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (pow x 2)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | 0 | ((neg (- 1 (* x x))) (exp (neg (- 1 (* x x)))) (- 1 (* x x)) (* x x)) |
| 1.0ms | x | @ | inf | ((neg (- 1 (* x x))) (exp (neg (- 1 (* x x)))) (- 1 (* x x)) (* x x)) |
| 0.0ms | x | @ | -inf | ((neg (- 1 (* x x))) (exp (neg (- 1 (* x x)))) (- 1 (* x x)) (* x x)) |
| 1× | egg-herbie |
| 9 734× | lower-fma.f64 |
| 9 734× | lower-fma.f32 |
| 3 654× | lower-*.f64 |
| 3 654× | lower-*.f32 |
| 1 572× | lower-/.f32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 30 | 254 |
| 1 | 81 | 241 |
| 2 | 247 | 237 |
| 3 | 605 | 234 |
| 4 | 1328 | 234 |
| 5 | 2025 | 234 |
| 6 | 3122 | 234 |
| 7 | 5538 | 234 |
| 0 | 8219 | 211 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
-1 |
(- (pow x 2) 1) |
(- (pow x 2) 1) |
(- (pow x 2) 1) |
(exp -1) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
1 |
(+ 1 (* -1 (pow x 2))) |
(+ 1 (* -1 (pow x 2))) |
(+ 1 (* -1 (pow x 2))) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(* -1 (pow x 2)) |
(* (pow x 2) (- (/ 1 (pow x 2)) 1)) |
(* (pow x 2) (- (/ 1 (pow x 2)) 1)) |
(* (pow x 2) (- (/ 1 (pow x 2)) 1)) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(* -1 (pow x 2)) |
(* (pow x 2) (- (/ 1 (pow x 2)) 1)) |
(* (pow x 2) (- (/ 1 (pow x 2)) 1)) |
(* (pow x 2) (- (/ 1 (pow x 2)) 1)) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
| Outputs |
|---|
-1 |
#s(literal -1 binary64) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(exp -1) |
(exp.f64 #s(literal -1 binary64)) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/2 binary64) (fma.f64 x x #s(literal 1 binary64))) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
(*.f64 (fma.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
1 |
#s(literal 1 binary64) |
(+ 1 (* -1 (pow x 2))) |
(fma.f64 (neg.f64 x) x #s(literal 1 binary64)) |
(+ 1 (* -1 (pow x 2))) |
(fma.f64 (neg.f64 x) x #s(literal 1 binary64)) |
(+ 1 (* -1 (pow x 2))) |
(fma.f64 (neg.f64 x) x #s(literal 1 binary64)) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(* -1 (pow x 2)) |
(*.f64 (neg.f64 x) x) |
(* (pow x 2) (- (/ 1 (pow x 2)) 1)) |
(fma.f64 (neg.f64 x) x #s(literal 1 binary64)) |
(* (pow x 2) (- (/ 1 (pow x 2)) 1)) |
(fma.f64 (neg.f64 x) x #s(literal 1 binary64)) |
(* (pow x 2) (- (/ 1 (pow x 2)) 1)) |
(fma.f64 (neg.f64 x) x #s(literal 1 binary64)) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(* -1 (pow x 2)) |
(*.f64 (neg.f64 x) x) |
(* (pow x 2) (- (/ 1 (pow x 2)) 1)) |
(fma.f64 (neg.f64 x) x #s(literal 1 binary64)) |
(* (pow x 2) (- (/ 1 (pow x 2)) 1)) |
(fma.f64 (neg.f64 x) x #s(literal 1 binary64)) |
(* (pow x 2) (- (/ 1 (pow x 2)) 1)) |
(fma.f64 (neg.f64 x) x #s(literal 1 binary64)) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
| 5 524× | lower-fma.f64 |
| 5 524× | lower-fma.f32 |
| 3 714× | lower-/.f64 |
| 3 714× | lower-/.f32 |
| 2 654× | lower-*.f32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 21 |
| 0 | 10 | 21 |
| 1 | 37 | 19 |
| 2 | 227 | 19 |
| 3 | 1923 | 19 |
| 0 | 9304 | 16 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
(exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
(-.f64 #s(literal 1 binary64) (*.f64 x x)) |
(*.f64 x x) |
| Outputs |
|---|
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
Compiled 10 865 to 1 802 computations (83.4% saved)
6 alts after pruning (6 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 542 | 6 | 548 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 543 | 6 | 549 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) |
| 100.0% | (/.f64 (pow.f64 (exp.f64 x) x) (E.f64)) | |
| ▶ | 99.9% | (exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
| ▶ | 56.0% | (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
| ▶ | 53.2% | (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) |
| ▶ | 75.4% | #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) |
Compiled 78 to 64 computations (17.9% saved)
| 1× | egg-herbie |
Found 15 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (exp.f64 #s(literal -1 binary64)) | |
| cost-diff | 0 | (fma.f64 x x #s(literal 1 binary64)) | |
| cost-diff | 0 | #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) | |
| cost-diff | 6016 | (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) | |
| cost-diff | 0 | (fma.f64 x x #s(literal -1 binary64)) | |
| cost-diff | 0 | (exp.f64 (fma.f64 x x #s(literal -1 binary64))) | |
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | #s(approx (neg (- 1 (* x x))) (*.f64 x x)) | |
| cost-diff | 0 | (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) | |
| cost-diff | 0 | #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) | |
| cost-diff | 0 | (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) | |
| cost-diff | 0 | (exp.f64 #s(literal -1 binary64)) | |
| cost-diff | 0 | (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) | |
| cost-diff | 384 | (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) | |
| cost-diff | 6720 | (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) |
| 4 848× | lower-fma.f32 |
| 4 844× | lower-fma.f64 |
| 2 928× | lower-*.f32 |
| 2 922× | lower-*.f64 |
| 1 772× | lower-/.f32 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 22 | 117 |
| 0 | 33 | 111 |
| 1 | 54 | 101 |
| 2 | 101 | 101 |
| 3 | 198 | 101 |
| 4 | 420 | 99 |
| 5 | 1042 | 99 |
| 6 | 2880 | 99 |
| 7 | 4348 | 99 |
| 8 | 6651 | 99 |
| 0 | 8212 | 99 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) |
(*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(exp.f64 #s(literal -1 binary64)) |
#s(literal -1 binary64) |
(/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) |
(fma.f64 x x #s(literal -1 binary64)) |
x |
#s(literal -2 binary64) |
(exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) |
#s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) |
#s(literal -1 binary64) |
(exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
#s(approx (neg (- 1 (* x x))) (*.f64 x x)) |
(*.f64 x x) |
x |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(fma.f64 x x #s(literal -1 binary64)) |
x |
#s(literal -1 binary64) |
#s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(fma.f64 x x #s(literal 1 binary64)) |
x |
#s(literal 1 binary64) |
(exp.f64 #s(literal -1 binary64)) |
#s(literal -1 binary64) |
| Outputs |
|---|
(pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) |
(pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(exp.f64 #s(literal -2 binary64)) |
(exp.f64 #s(literal -1 binary64)) |
#s(literal -1 binary64) |
(/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) |
(*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) |
(fma.f64 x x #s(literal -1 binary64)) |
x |
#s(literal -2 binary64) |
(exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) |
#s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) |
#s(literal -1 binary64) |
(exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
#s(approx (neg (- 1 (* x x))) (*.f64 x x)) |
(*.f64 x x) |
x |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(fma.f64 x x #s(literal -1 binary64)) |
x |
#s(literal -1 binary64) |
#s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) |
#s(approx (exp (neg (- 1 (* x x)))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64)) |
(fma.f64 x x #s(literal 1 binary64)) |
x |
#s(literal 1 binary64) |
(exp.f64 #s(literal -1 binary64)) |
#s(literal -1 binary64) |
Found 15 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0 | (fma.f64 x x #s(literal 1 binary64)) | |
| accuracy | 0 | (exp.f64 #s(literal -1 binary64)) | |
| accuracy | 0.08203125 | (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) | |
| accuracy | 15.749480307460875 | #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) | |
| accuracy | 0 | (fma.f64 x x #s(literal -1 binary64)) | |
| accuracy | 0.03236485241743066 | (exp.f64 (fma.f64 x x #s(literal -1 binary64))) | |
| accuracy | 0 | (*.f64 x x) | |
| accuracy | 0.03236485241743066 | (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) | |
| accuracy | 33.503467368885254 | #s(approx (neg (- 1 (* x x))) (*.f64 x x)) | |
| accuracy | 0.03236485241743066 | (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) | |
| accuracy | 30.642800304566002 | #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) | |
| accuracy | 0 | (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) | |
| accuracy | 0 | (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) | |
| accuracy | 0 | (exp.f64 #s(literal -1 binary64)) | |
| accuracy | 0.01171875 | (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) |
| 56.0ms | 256× | 0 | valid |
Compiled 106 to 18 computations (83% saved)
exact: 14.0ms (34.2% of total)ival-exp: 10.0ms (24.5% of total)ival-pow: 5.0ms (12.2% of total)ival-mult: 4.0ms (9.8% of total)ival-div: 2.0ms (4.9% of total)ival-add: 2.0ms (4.9% of total)ival-sub: 1.0ms (2.4% of total)ival-neg: 1.0ms (2.4% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Inputs |
|---|
#s(alt (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ()) |
#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ()) |
#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ()) |
#s(alt (exp.f64 #s(literal -1 binary64)) (patch (exp.f64 #s(literal -1 binary64)) #<representation binary64>) () ()) |
#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ()) |
#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ()) |
#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ()) |
#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ()) |
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ()) |
#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ()) |
#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ()) |
#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ()) |
#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ()) |
#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ()) |
| Outputs |
|---|
#s(alt 1/2 (taylor 0 x) (#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (+ 1/2 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (+ 1/2 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (+ 1/2 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (exp -1) (taylor 0 x) (#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* -1/2 (* (pow x 2) (* (exp -1) (log (pow (exp -1) 2)))))) (taylor 0 x) (#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (* -1/2 (* (exp -1) (log (pow (exp -1) 2)))) (* 1/8 (* (pow x 2) (* (exp -1) (pow (log (pow (exp -1) 2)) 2))))))) (taylor 0 x) (#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (* -1/2 (* (exp -1) (log (pow (exp -1) 2)))) (* (pow x 2) (+ (* -1/48 (* (pow x 2) (* (exp -1) (pow (log (pow (exp -1) 2)) 3)))) (* 1/8 (* (exp -1) (pow (log (pow (exp -1) 2)) 2)))))))) (taylor 0 x) (#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp -1) (taylor 0 x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (exp -1))) (taylor 0 x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) (taylor 0 x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) (taylor 0 x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt -1 (taylor 0 x) (#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (exp -1) (taylor 0 x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (exp -1))) (taylor 0 x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) (taylor 0 x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) (taylor 0 x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt -1 (taylor 0 x) (#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (exp -1) (taylor 0 x) (#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (exp -1))) (taylor 0 x) (#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) (taylor 0 x) (#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) (taylor 0 x) (#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt -1 (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (exp -1) (taylor 0 x) (#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (exp -1))) (taylor 0 x) (#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (exp -1))) (taylor 0 x) (#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (exp -1))) (taylor 0 x) (#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp -1) (taylor 0 x) (#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (exp -1))) (taylor 0 x) (#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) (taylor 0 x) (#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) (taylor 0 x) (#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt 1 (taylor 0 x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* -1/2 (pow x 2)) (taylor inf x) (#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) (taylor inf x) (#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) (taylor inf x) (#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) (taylor inf x) (#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) (taylor inf x) (#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) (taylor inf x) (#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) (taylor inf x) (#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) (taylor inf x) (#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (exp -1)) (taylor inf x) (#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) (taylor inf x) (#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) (taylor inf x) (#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) (taylor inf x) (#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* -1/2 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) (taylor -inf x) (#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) (taylor -inf x) (#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) (taylor -inf x) (#s(alt (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) (patch (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) (taylor -inf x) (#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) (taylor -inf x) (#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) (taylor -inf x) (#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) (taylor -inf x) (#s(alt (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) (patch (pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) (patch #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) (patch (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt #s(approx (neg (- 1 (* x x))) (*.f64 x x)) (patch #s(approx (neg (- 1 (* x x))) (*.f64 x x)) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (exp.f64 (fma.f64 x x #s(literal -1 binary64))) (patch (exp.f64 (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (exp -1)) (taylor -inf x) (#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) (patch (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) (patch #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | x | @ | 0 | ((* (exp -1) (exp -1)) (/ (+ (* x x) -1) -2) (pow (* (exp -1) (exp -1)) (/ (+ (* x x) -1) -2)) (exp -1) (exp (neg (- 1 (* x x)))) (neg (- 1 (* x x))) (exp (neg (- 1 (* x x)))) (neg (- 1 (* x x))) (* x x) (exp (+ (* x x) -1)) (+ (* x x) -1) (* (+ (* x x) 1) (exp -1)) (exp (neg (- 1 (* x x)))) (+ (* x x) 1)) |
| 1.0ms | x | @ | inf | ((* (exp -1) (exp -1)) (/ (+ (* x x) -1) -2) (pow (* (exp -1) (exp -1)) (/ (+ (* x x) -1) -2)) (exp -1) (exp (neg (- 1 (* x x)))) (neg (- 1 (* x x))) (exp (neg (- 1 (* x x)))) (neg (- 1 (* x x))) (* x x) (exp (+ (* x x) -1)) (+ (* x x) -1) (* (+ (* x x) 1) (exp -1)) (exp (neg (- 1 (* x x)))) (+ (* x x) 1)) |
| 1.0ms | x | @ | -inf | ((* (exp -1) (exp -1)) (/ (+ (* x x) -1) -2) (pow (* (exp -1) (exp -1)) (/ (+ (* x x) -1) -2)) (exp -1) (exp (neg (- 1 (* x x)))) (neg (- 1 (* x x))) (exp (neg (- 1 (* x x)))) (neg (- 1 (* x x))) (* x x) (exp (+ (* x x) -1)) (+ (* x x) -1) (* (+ (* x x) 1) (exp -1)) (exp (neg (- 1 (* x x)))) (+ (* x x) 1)) |
| 1× | egg-herbie |
| 34 434× | lower-fma.f64 |
| 34 434× | lower-fma.f32 |
| 5 796× | lower-*.f64 |
| 5 796× | lower-*.f32 |
| 2 798× | lower-+.f64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 68 | 1565 |
| 1 | 195 | 1407 |
| 2 | 618 | 879 |
| 3 | 2144 | 864 |
| 4 | 4032 | 864 |
| 5 | 6084 | 864 |
| 0 | 8064 | 740 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
1/2 |
(+ 1/2 (* -1/2 (pow x 2))) |
(+ 1/2 (* -1/2 (pow x 2))) |
(+ 1/2 (* -1/2 (pow x 2))) |
(exp -1) |
(+ (exp -1) (* -1/2 (* (pow x 2) (* (exp -1) (log (pow (exp -1) 2)))))) |
(+ (exp -1) (* (pow x 2) (+ (* -1/2 (* (exp -1) (log (pow (exp -1) 2)))) (* 1/8 (* (pow x 2) (* (exp -1) (pow (log (pow (exp -1) 2)) 2))))))) |
(+ (exp -1) (* (pow x 2) (+ (* -1/2 (* (exp -1) (log (pow (exp -1) 2)))) (* (pow x 2) (+ (* -1/48 (* (pow x 2) (* (exp -1) (pow (log (pow (exp -1) 2)) 3)))) (* 1/8 (* (exp -1) (pow (log (pow (exp -1) 2)) 2)))))))) |
(exp -1) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
-1 |
(- (pow x 2) 1) |
(- (pow x 2) 1) |
(- (pow x 2) 1) |
(exp -1) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
-1 |
(- (pow x 2) 1) |
(- (pow x 2) 1) |
(- (pow x 2) 1) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(exp -1) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
-1 |
(- (pow x 2) 1) |
(- (pow x 2) 1) |
(- (pow x 2) 1) |
(exp -1) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(exp -1) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
1 |
(+ 1 (pow x 2)) |
(+ 1 (pow x 2)) |
(+ 1 (pow x 2)) |
(* -1/2 (pow x 2)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(pow x 2) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(pow x 2) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(pow x 2) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (exp -1)) |
(* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) |
(* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) |
(* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(pow x 2) |
(* (pow x 2) (+ 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (+ 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (+ 1 (/ 1 (pow x 2)))) |
(* -1/2 (pow x 2)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(pow x 2) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(pow x 2) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(pow x 2) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(pow x 2) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (exp -1)) |
(* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) |
(* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) |
(* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(pow x 2) |
(* (pow x 2) (+ 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (+ 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (+ 1 (/ 1 (pow x 2)))) |
| Outputs |
|---|
1/2 |
#s(literal 1/2 binary64) |
(+ 1/2 (* -1/2 (pow x 2))) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1/2 binary64)) |
(+ 1/2 (* -1/2 (pow x 2))) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1/2 binary64)) |
(+ 1/2 (* -1/2 (pow x 2))) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1/2 binary64)) |
(exp -1) |
(exp.f64 #s(literal -1 binary64)) |
(+ (exp -1) (* -1/2 (* (pow x 2) (* (exp -1) (log (pow (exp -1) 2)))))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (* -1/2 (* (exp -1) (log (pow (exp -1) 2)))) (* 1/8 (* (pow x 2) (* (exp -1) (pow (log (pow (exp -1) 2)) 2))))))) |
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/2 binary64) (fma.f64 x x #s(literal 1 binary64))) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (* -1/2 (* (exp -1) (log (pow (exp -1) 2)))) (* (pow x 2) (+ (* -1/48 (* (pow x 2) (* (exp -1) (pow (log (pow (exp -1) 2)) 3)))) (* 1/8 (* (exp -1) (pow (log (pow (exp -1) 2)) 2)))))))) |
(*.f64 (exp.f64 #s(literal -1 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (fma.f64 x x #s(literal 1 binary64)))) |
(exp -1) |
(exp.f64 #s(literal -1 binary64)) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/2 binary64) (fma.f64 x x #s(literal 1 binary64))) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
(*.f64 (exp.f64 #s(literal -1 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (fma.f64 x x #s(literal 1 binary64)))) |
-1 |
#s(literal -1 binary64) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(exp -1) |
(exp.f64 #s(literal -1 binary64)) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/2 binary64) (fma.f64 x x #s(literal 1 binary64))) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
(*.f64 (exp.f64 #s(literal -1 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (fma.f64 x x #s(literal 1 binary64)))) |
-1 |
#s(literal -1 binary64) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(exp -1) |
(exp.f64 #s(literal -1 binary64)) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/2 binary64) (fma.f64 x x #s(literal 1 binary64))) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
(*.f64 (exp.f64 #s(literal -1 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (fma.f64 x x #s(literal 1 binary64)))) |
-1 |
#s(literal -1 binary64) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(exp -1) |
(exp.f64 #s(literal -1 binary64)) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(exp -1) |
(exp.f64 #s(literal -1 binary64)) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/2 binary64) (fma.f64 x x #s(literal 1 binary64))) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
(*.f64 (exp.f64 #s(literal -1 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (fma.f64 x x #s(literal 1 binary64)))) |
1 |
#s(literal 1 binary64) |
(+ 1 (pow x 2)) |
(fma.f64 x x #s(literal 1 binary64)) |
(+ 1 (pow x 2)) |
(fma.f64 x x #s(literal 1 binary64)) |
(+ 1 (pow x 2)) |
(fma.f64 x x #s(literal 1 binary64)) |
(* -1/2 (pow x 2)) |
(*.f64 (*.f64 x x) #s(literal -1/2 binary64)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1/2 binary64)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1/2 binary64)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1/2 binary64)) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (exp -1)) |
(*.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) x) x) |
(* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (+ 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal 1 binary64)) |
(* (pow x 2) (+ 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal 1 binary64)) |
(* (pow x 2) (+ 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal 1 binary64)) |
(* -1/2 (pow x 2)) |
(*.f64 (*.f64 x x) #s(literal -1/2 binary64)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1/2 binary64)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1/2 binary64)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1/2 binary64)) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* -1/2 (* (log (pow (exp -1) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(pow x 2) |
(*.f64 x x) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (exp -1)) |
(*.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) x) x) |
(* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(* (pow x 2) (+ (exp -1) (/ (exp -1) (pow x 2)))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (+ 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal 1 binary64)) |
(* (pow x 2) (+ 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal 1 binary64)) |
(* (pow x 2) (+ 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal 1 binary64)) |
| 4 434× | lower-fma.f32 |
| 4 430× | lower-fma.f64 |
| 3 164× | lower-*.f32 |
| 3 158× | lower-*.f64 |
| 2 930× | lower-/.f32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 22 | 101 |
| 0 | 33 | 99 |
| 1 | 103 | 89 |
| 2 | 598 | 81 |
| 3 | 7165 | 81 |
| 0 | 8073 | 81 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64)) |
(pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) |
(exp.f64 #s(literal -1 binary64)) |
(exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) |
#s(approx (neg (- 1 (* x x))) #s(literal -1 binary64)) |
(exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
#s(approx (neg (- 1 (* x x))) (*.f64 x x)) |
(*.f64 x x) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(fma.f64 x x #s(literal -1 binary64)) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
#s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) |
(fma.f64 x x #s(literal 1 binary64)) |
| Outputs |
|---|
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
Compiled 20 710 to 2 707 computations (86.9% saved)
6 alts after pruning (2 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 1 177 | 2 | 1 179 |
| Fresh | 1 | 0 | 1 |
| Picked | 1 | 4 | 5 |
| Done | 0 | 0 | 0 |
| Total | 1 179 | 6 | 1 185 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.9% | (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) |
| ▶ | 100.0% | (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
| ✓ | 99.9% | (exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
| ✓ | 56.0% | (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
| ✓ | 53.2% | (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) |
| ✓ | 75.4% | #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) |
Compiled 38 to 33 computations (13.2% saved)
| 1× | egg-herbie |
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | -512 | (exp.f64 (-.f64 x #s(literal 1 binary64))) | |
| cost-diff | 0 | (+.f64 #s(literal 1 binary64) x) | |
| cost-diff | 0 | (-.f64 x #s(literal 1 binary64)) | |
| cost-diff | 0 | (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) | |
| cost-diff | 0 | (fma.f64 x x #s(literal -1 binary64)) | |
| cost-diff | 0 | (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) | |
| cost-diff | 0 | (exp.f64 #s(literal -2 binary64)) | |
| cost-diff | 0 | (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
| 13 686× | lower-fma.f32 |
| 13 684× | lower-fma.f64 |
| 3 072× | lower-*.f32 |
| 3 070× | lower-*.f64 |
| 2 120× | lower-+.f32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 45 |
| 0 | 22 | 45 |
| 1 | 41 | 45 |
| 2 | 62 | 45 |
| 3 | 124 | 45 |
| 4 | 225 | 45 |
| 5 | 441 | 45 |
| 6 | 856 | 45 |
| 7 | 2892 | 45 |
| 8 | 4206 | 45 |
| 9 | 5894 | 45 |
| 0 | 8148 | 45 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(exp.f64 #s(literal -2 binary64)) |
#s(literal -2 binary64) |
(*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) |
#s(literal -1/2 binary64) |
(fma.f64 x x #s(literal -1 binary64)) |
x |
#s(literal -1 binary64) |
(pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) |
(exp.f64 (-.f64 x #s(literal 1 binary64))) |
(-.f64 x #s(literal 1 binary64)) |
x |
#s(literal 1 binary64) |
(+.f64 #s(literal 1 binary64) x) |
| Outputs |
|---|
(pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1/2 binary64))) |
(exp.f64 #s(literal -2 binary64)) |
#s(literal -2 binary64) |
(*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1/2 binary64)) |
#s(literal -1/2 binary64) |
(fma.f64 x x #s(literal -1 binary64)) |
x |
#s(literal -1 binary64) |
(pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) |
(pow.f64 (/.f64 (exp.f64 x) (E.f64)) (-.f64 x #s(literal -1 binary64))) |
(exp.f64 (-.f64 x #s(literal 1 binary64))) |
(/.f64 (exp.f64 x) (E.f64)) |
(-.f64 x #s(literal 1 binary64)) |
x |
#s(literal 1 binary64) |
(+.f64 #s(literal 1 binary64) x) |
(-.f64 x #s(literal -1 binary64)) |
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0 | (-.f64 x #s(literal 1 binary64)) | |
| accuracy | 0 | (+.f64 #s(literal 1 binary64) x) | |
| accuracy | 0.01171875 | (exp.f64 (-.f64 x #s(literal 1 binary64))) | |
| accuracy | 0.028601281620653757 | (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) | |
| accuracy | 0 | (fma.f64 x x #s(literal -1 binary64)) | |
| accuracy | 0 | (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) | |
| accuracy | 0 | (exp.f64 #s(literal -2 binary64)) | |
| accuracy | 0.01171875 | (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
| 35.0ms | 256× | 0 | valid |
Compiled 50 to 16 computations (68% saved)
ival-pow: 10.0ms (37.5% of total)ival-exp: 7.0ms (26.2% of total)ival-sub: 3.0ms (11.2% of total)ival-mult: 3.0ms (11.2% of total)ival-add: 2.0ms (7.5% of total)exact: 1.0ms (3.7% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ()) |
#s(alt (exp.f64 #s(literal -2 binary64)) (patch (exp.f64 #s(literal -2 binary64)) #<representation binary64>) () ()) |
#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ()) |
#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ()) |
#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ()) |
#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ()) |
#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ()) |
#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ()) |
| Outputs |
|---|
#s(alt (exp -1) (taylor 0 x) (#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (exp -1))) (taylor 0 x) (#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) (taylor 0 x) (#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) (taylor 0 x) (#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt 1/2 (taylor 0 x) (#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ 1/2 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ 1/2 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ 1/2 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt -1 (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (exp -1) (taylor 0 x) (#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (exp -1))) (taylor 0 x) (#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) (taylor 0 x) (#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) (taylor 0 x) (#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ()) |
#s(alt -1 (taylor 0 x) (#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- x 1) (taylor 0 x) (#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- x 1) (taylor 0 x) (#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- x 1) (taylor 0 x) (#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt 1 (taylor 0 x) (#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ()) |
#s(alt (+ 1 x) (taylor 0 x) (#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ()) |
#s(alt (+ 1 x) (taylor 0 x) (#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ()) |
#s(alt (+ 1 x) (taylor 0 x) (#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ()) |
#s(alt (exp -1) (taylor 0 x) (#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* x (exp -1))) (taylor 0 x) (#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* x (+ (exp -1) (* 1/2 (* x (exp -1)))))) (taylor 0 x) (#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (exp -1) (* x (+ (exp -1) (* x (+ (* 1/6 (* x (exp -1))) (* 1/2 (exp -1))))))) (taylor 0 x) (#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor inf x) (#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (* -1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) (taylor inf x) (#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) (taylor inf x) (#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) (taylor inf x) (#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (exp (* (+ 1 x) (- x 1))) (taylor inf x) (#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ()) |
#s(alt (exp (* (+ 1 x) (- x 1))) (taylor inf x) (#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ()) |
#s(alt (exp (* (+ 1 x) (- x 1))) (taylor inf x) (#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ()) |
#s(alt (exp (* (+ 1 x) (- x 1))) (taylor inf x) (#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ()) |
#s(alt x (taylor inf x) (#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* x (- 1 (/ 1 x))) (taylor inf x) (#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* x (- 1 (/ 1 x))) (taylor inf x) (#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* x (- 1 (/ 1 x))) (taylor inf x) (#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt x (taylor inf x) (#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ()) |
#s(alt (* x (+ 1 (/ 1 x))) (taylor inf x) (#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ()) |
#s(alt (* x (+ 1 (/ 1 x))) (taylor inf x) (#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ()) |
#s(alt (* x (+ 1 (/ 1 x))) (taylor inf x) (#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ()) |
#s(alt (exp (- x 1)) (taylor inf x) (#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- x 1)) (taylor inf x) (#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- x 1)) (taylor inf x) (#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- x 1)) (taylor inf x) (#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (- (pow x 2) 1)) (taylor -inf x) (#s(alt (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (* -1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) (taylor -inf x) (#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) (taylor -inf x) (#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) (taylor -inf x) (#s(alt (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (exp (* -1 (* (+ 1 (* -1 x)) (- 1 (* -1 x))))) (taylor -inf x) (#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ()) |
#s(alt (exp (* -1 (* (+ 1 (* -1 x)) (- 1 (* -1 x))))) (taylor -inf x) (#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ()) |
#s(alt (exp (* -1 (* (+ 1 (* -1 x)) (- 1 (* -1 x))))) (taylor -inf x) (#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ()) |
#s(alt (exp (* -1 (* (+ 1 (* -1 x)) (- 1 (* -1 x))))) (taylor -inf x) (#s(alt (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) (patch (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ()) |
#s(alt x (taylor -inf x) (#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* x (- (/ 1 x) 1))) (taylor -inf x) (#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* x (- (/ 1 x) 1))) (taylor -inf x) (#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* x (- (/ 1 x) 1))) (taylor -inf x) (#s(alt (-.f64 x #s(literal 1 binary64)) (patch (-.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt x (taylor -inf x) (#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ()) |
#s(alt (* x (+ 1 (/ 1 x))) (taylor -inf x) (#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ()) |
#s(alt (* x (+ 1 (/ 1 x))) (taylor -inf x) (#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ()) |
#s(alt (* x (+ 1 (/ 1 x))) (taylor -inf x) (#s(alt (+.f64 #s(literal 1 binary64) x) (patch (+.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ()) |
#s(alt (exp (neg (+ 1 (* -1 x)))) (taylor -inf x) (#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (neg (+ 1 (* -1 x)))) (taylor -inf x) (#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (neg (+ 1 (* -1 x)))) (taylor -inf x) (#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (neg (+ 1 (* -1 x)))) (taylor -inf x) (#s(alt (exp.f64 (-.f64 x #s(literal 1 binary64))) (patch (exp.f64 (-.f64 x #s(literal 1 binary64))) #<representation binary64>) () ())) ()) |
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | 0 | ((pow (exp -2) (* -1/2 (+ (* x x) -1))) (exp -2) (* -1/2 (+ (* x x) -1)) (+ (* x x) -1) (pow (exp (- x 1)) (+ 1 x)) (- x 1) (+ 1 x) (exp (- x 1))) |
| 1.0ms | x | @ | inf | ((pow (exp -2) (* -1/2 (+ (* x x) -1))) (exp -2) (* -1/2 (+ (* x x) -1)) (+ (* x x) -1) (pow (exp (- x 1)) (+ 1 x)) (- x 1) (+ 1 x) (exp (- x 1))) |
| 1.0ms | x | @ | -inf | ((pow (exp -2) (* -1/2 (+ (* x x) -1))) (exp -2) (* -1/2 (+ (* x x) -1)) (+ (* x x) -1) (pow (exp (- x 1)) (+ 1 x)) (- x 1) (+ 1 x) (exp (- x 1))) |
| 1× | egg-herbie |
| 10 342× | lower-fma.f64 |
| 10 342× | lower-fma.f32 |
| 3 850× | lower-*.f64 |
| 3 850× | lower-*.f32 |
| 2 024× | lower--.f64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 65 | 467 |
| 1 | 193 | 455 |
| 2 | 537 | 446 |
| 3 | 1837 | 438 |
| 4 | 5582 | 438 |
| 0 | 8384 | 388 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(exp -1) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
1/2 |
(+ 1/2 (* -1/2 (pow x 2))) |
(+ 1/2 (* -1/2 (pow x 2))) |
(+ 1/2 (* -1/2 (pow x 2))) |
-1 |
(- (pow x 2) 1) |
(- (pow x 2) 1) |
(- (pow x 2) 1) |
(exp -1) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
-1 |
(- x 1) |
(- x 1) |
(- x 1) |
1 |
(+ 1 x) |
(+ 1 x) |
(+ 1 x) |
(exp -1) |
(+ (exp -1) (* x (exp -1))) |
(+ (exp -1) (* x (+ (exp -1) (* 1/2 (* x (exp -1)))))) |
(+ (exp -1) (* x (+ (exp -1) (* x (+ (* 1/6 (* x (exp -1))) (* 1/2 (exp -1))))))) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(* -1/2 (pow x 2)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(pow x 2) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(exp (* (+ 1 x) (- x 1))) |
(exp (* (+ 1 x) (- x 1))) |
(exp (* (+ 1 x) (- x 1))) |
(exp (* (+ 1 x) (- x 1))) |
x |
(* x (- 1 (/ 1 x))) |
(* x (- 1 (/ 1 x))) |
(* x (- 1 (/ 1 x))) |
x |
(* x (+ 1 (/ 1 x))) |
(* x (+ 1 (/ 1 x))) |
(* x (+ 1 (/ 1 x))) |
(exp (- x 1)) |
(exp (- x 1)) |
(exp (- x 1)) |
(exp (- x 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(exp (- (pow x 2) 1)) |
(* -1/2 (pow x 2)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(pow x 2) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(exp (* -1 (* (+ 1 (* -1 x)) (- 1 (* -1 x))))) |
(exp (* -1 (* (+ 1 (* -1 x)) (- 1 (* -1 x))))) |
(exp (* -1 (* (+ 1 (* -1 x)) (- 1 (* -1 x))))) |
(exp (* -1 (* (+ 1 (* -1 x)) (- 1 (* -1 x))))) |
x |
(* -1 (* x (- (/ 1 x) 1))) |
(* -1 (* x (- (/ 1 x) 1))) |
(* -1 (* x (- (/ 1 x) 1))) |
x |
(* x (+ 1 (/ 1 x))) |
(* x (+ 1 (/ 1 x))) |
(* x (+ 1 (/ 1 x))) |
(exp (neg (+ 1 (* -1 x)))) |
(exp (neg (+ 1 (* -1 x)))) |
(exp (neg (+ 1 (* -1 x)))) |
(exp (neg (+ 1 (* -1 x)))) |
| Outputs |
|---|
(exp -1) |
(exp.f64 #s(literal -1 binary64)) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/2 binary64) (fma.f64 x x #s(literal 1 binary64))) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
(*.f64 (exp.f64 #s(literal -1 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/6 binary64) x) x #s(literal 1/2 binary64)) (fma.f64 x x #s(literal 1 binary64)))) |
1/2 |
#s(literal 1/2 binary64) |
(+ 1/2 (* -1/2 (pow x 2))) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1/2 binary64)) |
(+ 1/2 (* -1/2 (pow x 2))) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1/2 binary64)) |
(+ 1/2 (* -1/2 (pow x 2))) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1/2 binary64)) |
-1 |
#s(literal -1 binary64) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(exp -1) |
(exp.f64 #s(literal -1 binary64)) |
(+ (exp -1) (* (pow x 2) (exp -1))) |
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* 1/2 (* (pow x 2) (exp -1)))))) |
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/2 binary64) (fma.f64 x x #s(literal 1 binary64))) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* (pow x 2) (+ (exp -1) (* (pow x 2) (+ (* 1/6 (* (pow x 2) (exp -1))) (* 1/2 (exp -1))))))) |
(*.f64 (exp.f64 #s(literal -1 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/6 binary64) x) x #s(literal 1/2 binary64)) (fma.f64 x x #s(literal 1 binary64)))) |
-1 |
#s(literal -1 binary64) |
(- x 1) |
(-.f64 x #s(literal 1 binary64)) |
(- x 1) |
(-.f64 x #s(literal 1 binary64)) |
(- x 1) |
(-.f64 x #s(literal 1 binary64)) |
1 |
#s(literal 1 binary64) |
(+ 1 x) |
(-.f64 x #s(literal -1 binary64)) |
(+ 1 x) |
(-.f64 x #s(literal -1 binary64)) |
(+ 1 x) |
(-.f64 x #s(literal -1 binary64)) |
(exp -1) |
(exp.f64 #s(literal -1 binary64)) |
(+ (exp -1) (* x (exp -1))) |
(fma.f64 x (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* x (+ (exp -1) (* 1/2 (* x (exp -1)))))) |
(*.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) |
(+ (exp -1) (* x (+ (exp -1) (* x (+ (* 1/6 (* x (exp -1))) (* 1/2 (exp -1))))))) |
(fma.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64))) x (exp.f64 #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(* -1/2 (pow x 2)) |
(*.f64 #s(literal -1/2 binary64) (*.f64 x x)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1/2 binary64)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1/2 binary64)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1/2 binary64)) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(exp (* (+ 1 x) (- x 1))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* (+ 1 x) (- x 1))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* (+ 1 x) (- x 1))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* (+ 1 x) (- x 1))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
x |
(* x (- 1 (/ 1 x))) |
(-.f64 x #s(literal 1 binary64)) |
(* x (- 1 (/ 1 x))) |
(-.f64 x #s(literal 1 binary64)) |
(* x (- 1 (/ 1 x))) |
(-.f64 x #s(literal 1 binary64)) |
x |
(* x (+ 1 (/ 1 x))) |
(-.f64 x #s(literal -1 binary64)) |
(* x (+ 1 (/ 1 x))) |
(-.f64 x #s(literal -1 binary64)) |
(* x (+ 1 (/ 1 x))) |
(-.f64 x #s(literal -1 binary64)) |
(exp (- x 1)) |
(/.f64 (exp.f64 x) (E.f64)) |
(exp (- x 1)) |
(/.f64 (exp.f64 x) (E.f64)) |
(exp (- x 1)) |
(/.f64 (exp.f64 x) (E.f64)) |
(exp (- x 1)) |
(/.f64 (exp.f64 x) (E.f64)) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (- (pow x 2) 1)) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(* -1/2 (pow x 2)) |
(*.f64 #s(literal -1/2 binary64) (*.f64 x x)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1/2 binary64)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1/2 binary64)) |
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/2)) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1/2 binary64)) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(exp (* -1 (* (+ 1 (* -1 x)) (- 1 (* -1 x))))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* -1 (* (+ 1 (* -1 x)) (- 1 (* -1 x))))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* -1 (* (+ 1 (* -1 x)) (- 1 (* -1 x))))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* -1 (* (+ 1 (* -1 x)) (- 1 (* -1 x))))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
x |
(* -1 (* x (- (/ 1 x) 1))) |
(-.f64 x #s(literal 1 binary64)) |
(* -1 (* x (- (/ 1 x) 1))) |
(-.f64 x #s(literal 1 binary64)) |
(* -1 (* x (- (/ 1 x) 1))) |
(-.f64 x #s(literal 1 binary64)) |
x |
(* x (+ 1 (/ 1 x))) |
(-.f64 x #s(literal -1 binary64)) |
(* x (+ 1 (/ 1 x))) |
(-.f64 x #s(literal -1 binary64)) |
(* x (+ 1 (/ 1 x))) |
(-.f64 x #s(literal -1 binary64)) |
(exp (neg (+ 1 (* -1 x)))) |
(/.f64 (exp.f64 x) (E.f64)) |
(exp (neg (+ 1 (* -1 x)))) |
(/.f64 (exp.f64 x) (E.f64)) |
(exp (neg (+ 1 (* -1 x)))) |
(/.f64 (exp.f64 x) (E.f64)) |
(exp (neg (+ 1 (* -1 x)))) |
(/.f64 (exp.f64 x) (E.f64)) |
| 6 824× | lower-fma.f32 |
| 6 822× | lower-fma.f64 |
| 3 838× | lower-*.f32 |
| 3 836× | lower-*.f64 |
| 3 276× | lower-/.f64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 39 |
| 0 | 22 | 40 |
| 1 | 96 | 34 |
| 2 | 590 | 32 |
| 3 | 6703 | 32 |
| 0 | 8521 | 32 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(exp.f64 #s(literal -2 binary64)) |
(*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) |
(fma.f64 x x #s(literal -1 binary64)) |
(pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) |
(-.f64 x #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) x) |
(exp.f64 (-.f64 x #s(literal 1 binary64))) |
| Outputs |
|---|
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
Compiled 22 750 to 3 341 computations (85.3% saved)
8 alts after pruning (2 fresh and 6 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 1 157 | 2 | 1 159 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 2 | 2 |
| Done | 0 | 4 | 4 |
| Total | 1 157 | 8 | 1 165 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.9% | (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
| ✓ | 99.9% | (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) |
| ✓ | 100.0% | (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
| ▶ | 99.9% | (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) |
| ✓ | 99.9% | (exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
| ✓ | 56.0% | (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
| ✓ | 53.2% | (exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) |
| ✓ | 75.4% | #s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) |
Compiled 54 to 46 computations (14.8% saved)
| 1× | egg-herbie |
Found 7 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (fma.f64 x x #s(literal -1 binary64)) | |
| cost-diff | 0 | (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) | |
| cost-diff | 0 | (E.f64) | |
| cost-diff | 0 | (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) | |
| cost-diff | 0 | (fma.f64 x x #s(literal -1 binary64)) | |
| cost-diff | 0 | (E.f64) | |
| cost-diff | 0 | (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) |
| 17 640× | lower-fma.f32 |
| 17 638× | lower-fma.f64 |
| 2 642× | lower-+.f64 |
| 2 642× | lower-+.f32 |
| 2 444× | lower--.f64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 40 |
| 0 | 16 | 40 |
| 1 | 30 | 38 |
| 2 | 49 | 38 |
| 3 | 83 | 38 |
| 4 | 175 | 38 |
| 5 | 361 | 38 |
| 6 | 736 | 38 |
| 7 | 1358 | 38 |
| 8 | 4039 | 38 |
| 9 | 6021 | 38 |
| 10 | 7897 | 38 |
| 0 | 8095 | 38 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) |
(E.f64) |
(fma.f64 x x #s(literal -1 binary64)) |
x |
#s(literal -1 binary64) |
(pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(*.f64 (E.f64) (E.f64)) |
(E.f64) |
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) |
#s(literal 1/2 binary64) |
(fma.f64 x x #s(literal -1 binary64)) |
x |
#s(literal -1 binary64) |
| Outputs |
|---|
(pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) |
(E.f64) |
(fma.f64 x x #s(literal -1 binary64)) |
x |
#s(literal -1 binary64) |
(pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(pow.f64 (exp.f64 #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(*.f64 (E.f64) (E.f64)) |
(exp.f64 #s(literal 2 binary64)) |
(E.f64) |
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) |
#s(literal 1/2 binary64) |
(fma.f64 x x #s(literal -1 binary64)) |
x |
#s(literal -1 binary64) |
Found 7 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0 | (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) | |
| accuracy | 0 | (E.f64) | |
| accuracy | 0.02999796913869315 | (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) | |
| accuracy | 1.0 | (*.f64 (E.f64) (E.f64)) | |
| accuracy | 0 | (fma.f64 x x #s(literal -1 binary64)) | |
| accuracy | 0 | (E.f64) | |
| accuracy | 0.0386040744115697 | (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) |
| 47.0ms | 256× | 0 | valid |
Compiled 47 to 12 computations (74.5% saved)
ival-mult: 26.0ms (66.4% of total)ival-pow: 9.0ms (23% of total)ival-e: 2.0ms (5.1% of total)ival-add: 1.0ms (2.6% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ()) |
#s(alt (E.f64) (patch (E.f64) #<representation binary64>) () ()) |
#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ()) |
#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ()) |
#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ()) |
#s(alt (*.f64 (E.f64) (E.f64)) (patch (*.f64 (E.f64) (E.f64)) #<representation binary64>) () ()) |
| Outputs |
|---|
#s(alt (/ 1 (E)) (taylor 0 x) (#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (/ 1 (E)) (/ (* (pow x 2) (log (E))) (E))) (taylor 0 x) (#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* (pow x 2) (+ (* 1/2 (/ (* (pow x 2) (pow (log (E)) 2)) (E))) (/ (log (E)) (E)))) (/ 1 (E))) (taylor 0 x) (#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* (pow x 2) (+ (* (pow x 2) (+ (* 1/6 (/ (* (pow x 2) (pow (log (E)) 3)) (E))) (* 1/2 (/ (pow (log (E)) 2) (E))))) (/ (log (E)) (E)))) (/ 1 (E))) (taylor 0 x) (#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt -1 (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (/ 1 (E)) (taylor 0 x) (#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 1/2 (/ (* (pow x 2) (log (pow (E) 2))) (E))) (/ 1 (E))) (taylor 0 x) (#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* (pow x 2) (+ (* 1/8 (/ (* (pow x 2) (pow (log (pow (E) 2)) 2)) (E))) (* 1/2 (/ (log (pow (E) 2)) (E))))) (/ 1 (E))) (taylor 0 x) (#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* (pow x 2) (+ (* 1/2 (/ (log (pow (E) 2)) (E))) (* (pow x 2) (+ (* 1/48 (/ (* (pow x 2) (pow (log (pow (E) 2)) 3)) (E))) (* 1/8 (/ (pow (log (pow (E) 2)) 2) (E))))))) (/ 1 (E))) (taylor 0 x) (#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt -1/2 (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (- (* 1/2 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (- (* 1/2 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (- (* 1/2 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* (log (E)) (- (pow x 2) 1))) (taylor inf x) (#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* (log (E)) (- (pow x 2) 1))) (taylor inf x) (#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* (log (E)) (- (pow x 2) 1))) (taylor inf x) (#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* (log (E)) (- (pow x 2) 1))) (taylor inf x) (#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) (taylor inf x) (#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) (taylor inf x) (#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) (taylor inf x) (#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) (taylor inf x) (#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* (log (E)) (- (pow x 2) 1))) (taylor -inf x) (#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* (log (E)) (- (pow x 2) 1))) (taylor -inf x) (#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* (log (E)) (- (pow x 2) 1))) (taylor -inf x) (#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* (log (E)) (- (pow x 2) 1))) (taylor -inf x) (#s(alt (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) (patch (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (pow x 2) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -1 binary64)) (patch (fma.f64 x x #s(literal -1 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) (taylor -inf x) (#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) (taylor -inf x) (#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) (taylor -inf x) (#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) (taylor -inf x) (#s(alt (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) (patch (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) #<representation binary64>) () ())) ()) |
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) #<representation binary64>) () ())) ()) |
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | 0 | ((pow (E) (+ (* x x) -1)) (E) (+ (* x x) -1) (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (* 1/2 (+ (* x x) -1)) (* (E) (E))) |
| 0.0ms | x | @ | inf | ((pow (E) (+ (* x x) -1)) (E) (+ (* x x) -1) (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (* 1/2 (+ (* x x) -1)) (* (E) (E))) |
| 0.0ms | x | @ | -inf | ((pow (E) (+ (* x x) -1)) (E) (+ (* x x) -1) (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (* 1/2 (+ (* x x) -1)) (* (E) (E))) |
| 1× | egg-herbie |
| 10 766× | lower-fma.f64 |
| 10 766× | lower-fma.f32 |
| 5 100× | lower-*.f64 |
| 5 100× | lower-*.f32 |
| 1 964× | lower-+.f64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 76 | 366 |
| 1 | 210 | 326 |
| 2 | 604 | 314 |
| 3 | 1840 | 310 |
| 4 | 3622 | 308 |
| 5 | 5790 | 308 |
| 0 | 8188 | 262 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(/ 1 (E)) |
(+ (/ 1 (E)) (/ (* (pow x 2) (log (E))) (E))) |
(+ (* (pow x 2) (+ (* 1/2 (/ (* (pow x 2) (pow (log (E)) 2)) (E))) (/ (log (E)) (E)))) (/ 1 (E))) |
(+ (* (pow x 2) (+ (* (pow x 2) (+ (* 1/6 (/ (* (pow x 2) (pow (log (E)) 3)) (E))) (* 1/2 (/ (pow (log (E)) 2) (E))))) (/ (log (E)) (E)))) (/ 1 (E))) |
-1 |
(- (pow x 2) 1) |
(- (pow x 2) 1) |
(- (pow x 2) 1) |
(/ 1 (E)) |
(+ (* 1/2 (/ (* (pow x 2) (log (pow (E) 2))) (E))) (/ 1 (E))) |
(+ (* (pow x 2) (+ (* 1/8 (/ (* (pow x 2) (pow (log (pow (E) 2)) 2)) (E))) (* 1/2 (/ (log (pow (E) 2)) (E))))) (/ 1 (E))) |
(+ (* (pow x 2) (+ (* 1/2 (/ (log (pow (E) 2)) (E))) (* (pow x 2) (+ (* 1/48 (/ (* (pow x 2) (pow (log (pow (E) 2)) 3)) (E))) (* 1/8 (/ (pow (log (pow (E) 2)) 2) (E))))))) (/ 1 (E))) |
-1/2 |
(- (* 1/2 (pow x 2)) 1/2) |
(- (* 1/2 (pow x 2)) 1/2) |
(- (* 1/2 (pow x 2)) 1/2) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(pow x 2) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(* 1/2 (pow x 2)) |
(* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) |
(* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) |
(* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(pow x 2) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(* 1/2 (pow x 2)) |
(* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) |
(* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) |
(* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) |
| Outputs |
|---|
(/ 1 (E)) |
(exp.f64 #s(literal -1 binary64)) |
(+ (/ 1 (E)) (/ (* (pow x 2) (log (E))) (E))) |
(/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64)) |
(+ (* (pow x 2) (+ (* 1/2 (/ (* (pow x 2) (pow (log (E)) 2)) (E))) (/ (log (E)) (E)))) (/ 1 (E))) |
(/.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/2 binary64) (fma.f64 x x #s(literal 1 binary64))) (E.f64)) |
(+ (* (pow x 2) (+ (* (pow x 2) (+ (* 1/6 (/ (* (pow x 2) (pow (log (E)) 3)) (E))) (* 1/2 (/ (pow (log (E)) 2) (E))))) (/ (log (E)) (E)))) (/ 1 (E))) |
(fma.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (E.f64)) (fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
-1 |
#s(literal -1 binary64) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(- (pow x 2) 1) |
(fma.f64 x x #s(literal -1 binary64)) |
(/ 1 (E)) |
(exp.f64 #s(literal -1 binary64)) |
(+ (* 1/2 (/ (* (pow x 2) (log (pow (E) 2))) (E))) (/ 1 (E))) |
(/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64)) |
(+ (* (pow x 2) (+ (* 1/8 (/ (* (pow x 2) (pow (log (pow (E) 2)) 2)) (E))) (* 1/2 (/ (log (pow (E) 2)) (E))))) (/ 1 (E))) |
(/.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/2 binary64) (fma.f64 x x #s(literal 1 binary64))) (E.f64)) |
(+ (* (pow x 2) (+ (* 1/2 (/ (log (pow (E) 2)) (E))) (* (pow x 2) (+ (* 1/48 (/ (* (pow x 2) (pow (log (pow (E) 2)) 3)) (E))) (* 1/8 (/ (pow (log (pow (E) 2)) 2) (E))))))) (/ 1 (E))) |
(fma.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (E.f64)) (fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
-1/2 |
#s(literal -1/2 binary64) |
(- (* 1/2 (pow x 2)) 1/2) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal 1/2 binary64)) |
(- (* 1/2 (pow x 2)) 1/2) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal 1/2 binary64)) |
(- (* 1/2 (pow x 2)) 1/2) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal 1/2 binary64)) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(* 1/2 (pow x 2)) |
(*.f64 #s(literal 1/2 binary64) (*.f64 x x)) |
(* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal 1/2 binary64)) |
(* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal 1/2 binary64)) |
(* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal 1/2 binary64)) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* (log (E)) (- (pow x 2) 1))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow x 2) |
(*.f64 x x) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(* (pow x 2) (- 1 (/ 1 (pow x 2)))) |
(fma.f64 x x #s(literal -1 binary64)) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(exp (* 1/2 (* (log (pow (E) 2)) (- (pow x 2) 1)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(* 1/2 (pow x 2)) |
(*.f64 #s(literal 1/2 binary64) (*.f64 x x)) |
(* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal 1/2 binary64)) |
(* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal 1/2 binary64)) |
(* (pow x 2) (- 1/2 (* 1/2 (/ 1 (pow x 2))))) |
(*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal 1/2 binary64)) |
| 4 142× | lower-*.f32 |
| 4 138× | lower-*.f64 |
| 3 980× | lower-fma.f32 |
| 3 978× | lower-fma.f64 |
| 3 502× | lower-pow.f32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 30 |
| 0 | 16 | 26 |
| 1 | 77 | 25 |
| 2 | 506 | 23 |
| 3 | 4618 | 23 |
| 0 | 8501 | 23 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) |
(E.f64) |
(fma.f64 x x #s(literal -1 binary64)) |
(pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64))) |
(*.f64 (E.f64) (E.f64)) |
| Outputs |
|---|
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
Compiled 28 637 to 3 342 computations (88.3% saved)
7 alts after pruning (1 fresh and 6 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 1 489 | 1 | 1 490 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 2 | 2 |
| Done | 2 | 4 | 6 |
| Total | 1 491 | 7 | 1 498 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 99.9% | (pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
| ✓ | 99.9% | (pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) |
| ✓ | 100.0% | (pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
| ✓ | 99.9% | (pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) |
| ✓ | 99.9% | (exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
| ✓ | 56.0% | (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
| 75.4% | #s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
Compiled 136 to 81 computations (40.4% saved)
| Inputs |
|---|
#s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
(exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) |
(exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) |
(exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
#s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) |
(pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) |
(/.f64 (pow.f64 (exp.f64 x) x) (E.f64)) |
(pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(pow.f64 (*.f64 (exp.f64 #s(literal -1 binary64)) (exp.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -2 binary64))) |
| Outputs |
|---|
(pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
5 calls:
| 4.0ms | x |
| 4.0ms | (*.f64 x x) |
| 3.0ms | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 3.0ms | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 3.0ms | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 100.0% | 1 | x |
| 100.0% | 1 | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| 100.0% | 1 | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 100.0% | 1 | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 100.0% | 1 | (*.f64 x x) |
Compiled 22 to 18 computations (18.2% saved)
| Inputs |
|---|
#s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
(exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) |
(exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) |
(exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
#s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) |
(pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) |
(/.f64 (pow.f64 (exp.f64 x) x) (E.f64)) |
| Outputs |
|---|
(/.f64 (pow.f64 (exp.f64 x) x) (E.f64)) |
5 calls:
| 41.0ms | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| 3.0ms | x |
| 3.0ms | (*.f64 x x) |
| 3.0ms | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 3.0ms | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 100.0% | 1 | x |
| 100.0% | 1 | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| 100.0% | 1 | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 100.0% | 1 | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 100.0% | 1 | (*.f64 x x) |
Compiled 22 to 18 computations (18.2% saved)
| Inputs |
|---|
#s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
(exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) |
(exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) |
(exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
#s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) |
(pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(pow.f64 (exp.f64 (-.f64 x #s(literal 1 binary64))) (+.f64 #s(literal 1 binary64) x)) |
| Outputs |
|---|
(pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
5 calls:
| 3.0ms | x |
| 3.0ms | (*.f64 x x) |
| 3.0ms | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 2.0ms | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 2.0ms | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.9% | 1 | x |
| 99.9% | 1 | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| 99.9% | 1 | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 99.9% | 1 | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 99.9% | 1 | (*.f64 x x) |
Compiled 22 to 18 computations (18.2% saved)
| Inputs |
|---|
#s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
(exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) |
(exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(pow.f64 (E.f64) (fma.f64 x x #s(literal -1 binary64))) |
(exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
#s(approx (exp (neg (- 1 (* x x)))) (*.f64 (fma.f64 x x #s(literal 1 binary64)) (exp.f64 #s(literal -1 binary64)))) |
| Outputs |
|---|
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
5 calls:
| 3.0ms | x |
| 2.0ms | (*.f64 x x) |
| 2.0ms | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 2.0ms | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 2.0ms | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.9% | 1 | x |
| 99.9% | 1 | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| 99.9% | 1 | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 99.9% | 1 | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 99.9% | 1 | (*.f64 x x) |
Compiled 22 to 18 computations (18.2% saved)
| Inputs |
|---|
#s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
(exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) |
(exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
| Outputs |
|---|
#s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
(exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x))) |
5 calls:
| 2.0ms | x |
| 1.0ms | (*.f64 x x) |
| 1.0ms | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 1.0ms | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 1.0ms | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.1% | 2 | x |
| 99.1% | 2 | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| 99.1% | 2 | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 99.1% | 2 | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 99.1% | 2 | (*.f64 x x) |
Compiled 22 to 18 computations (18.2% saved)
Total -14.2b remaining (-90.2%)
Threshold costs -14.2b (-90.2%)
| Inputs |
|---|
#s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
(exp.f64 #s(approx (neg (- 1 (* x x))) #s(literal -1 binary64))) |
| Outputs |
|---|
#s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
5 calls:
| 1.0ms | x |
| 1.0ms | (*.f64 x x) |
| 1.0ms | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 1.0ms | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 1.0ms | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 75.4% | 1 | x |
| 75.4% | 1 | (exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))) |
| 75.4% | 1 | (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) |
| 75.4% | 1 | (-.f64 #s(literal 1 binary64) (*.f64 x x)) |
| 75.4% | 1 | (*.f64 x x) |
Compiled 22 to 18 computations (18.2% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.0035891072538425427 | 690.9357297908474 |
Compiled 10 to 10 computations (0% saved)
| 1× | egg-herbie |
| 4× | *-commutative-binary64-*.f64 |
| 2× | 1-exp-binary32-exp.f32 |
| 2× | e-exp-1-binary64-exp.f64-E.f64 |
| 2× | 1-exp-binary64-exp.f64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 35 | 83 |
| 1 | 41 | 83 |
| 1× | saturated |
| Inputs |
|---|
(pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(/.f64 (pow.f64 (exp.f64 x) x) (E.f64)) |
(pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(if (<=.f64 (*.f64 x x) #s(literal 5764607523034235/1152921504606846976 binary64)) #s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x)))) |
#s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
| Outputs |
|---|
(pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 #s(literal -1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(pow.f64 (exp.f64 #s(literal -2 binary64)) (*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1/2 binary64))) |
(/.f64 (pow.f64 (exp.f64 x) x) (E.f64)) |
(pow.f64 (*.f64 (E.f64) (E.f64)) (*.f64 #s(literal 1/2 binary64) (fma.f64 x x #s(literal -1 binary64)))) |
(exp.f64 (fma.f64 x x #s(literal -1 binary64))) |
(if (<=.f64 (*.f64 x x) #s(literal 5764607523034235/1152921504606846976 binary64)) #s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) (exp.f64 #s(approx (neg (- 1 (* x x))) (*.f64 x x)))) |
#s(approx (pow (* (E) (E)) (* 1/2 (+ (* x x) -1))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (E.f64))) |
| 10 766× | lower-fma.f64 |
| 10 766× | lower-fma.f32 |
| 9 734× | lower-fma.f64 |
| 9 734× | lower-fma.f32 |
| 6 824× | lower-fma.f32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 30 | 254 |
| 1 | 81 | 241 |
| 2 | 247 | 237 |
| 3 | 605 | 234 |
| 4 | 1328 | 234 |
| 5 | 2025 | 234 |
| 6 | 3122 | 234 |
| 7 | 5538 | 234 |
| 0 | 8219 | 211 |
| 0 | 76 | 366 |
| 1 | 210 | 326 |
| 2 | 604 | 314 |
| 3 | 1840 | 310 |
| 4 | 3622 | 308 |
| 5 | 5790 | 308 |
| 0 | 8188 | 262 |
| 0 | 6 | 21 |
| 0 | 10 | 21 |
| 1 | 37 | 19 |
| 2 | 227 | 19 |
| 3 | 1923 | 19 |
| 0 | 9304 | 16 |
| 0 | 22 | 101 |
| 0 | 33 | 99 |
| 1 | 103 | 89 |
| 2 | 598 | 81 |
| 3 | 7165 | 81 |
| 0 | 8073 | 81 |
| 0 | 13 | 39 |
| 0 | 22 | 40 |
| 1 | 96 | 34 |
| 2 | 590 | 32 |
| 3 | 6703 | 32 |
| 0 | 8521 | 32 |
| 1× | fuel |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
Compiled 231 to 127 computations (45% saved)
(abs x)
Compiled 160 to 98 computations (38.8% saved)
Loading profile data...