
Time bar (total: 2.2min)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 100% | 99.9% | 0% | 0.1% | 0% | 0% | 0% | 1 |
Compiled 13 to 11 computations (15.4% saved)
| 2.1min | 8 133× | 0 | valid |
| 8.0ms | 54× | 2 | valid |
| 7.0ms | 69× | 1 | valid |
ival-mult: 1.3min (85.1% of total)ival-add: 14.0s (14.9% of total)exact: 9.0ms (0% of total)ival-true: 6.0ms (0% of total)adjust: 4.0ms (0% of total)ival-assert: 3.0ms (0% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 0 | 0 | - | 0 | - | (*.f64 d1 #s(literal 10 binary64)) |
| 0 | 0 | - | 0 | - | (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
| 0 | 0 | - | 0 | - | (*.f64 d1 d2) |
| 0 | 0 | - | 0 | - | (*.f64 d1 #s(literal 20 binary64)) |
| 0 | 0 | - | 0 | - | d2 |
| 0 | 0 | - | 0 | - | (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) |
| 0 | 0 | - | 0 | - | d1 |
| 0 | 0 | - | 0 | - | #s(literal 20 binary64) |
| 0 | 0 | - | 0 | - | #s(literal 10 binary64) |
| Predicted + | Predicted - | |
|---|---|---|
| + | 0 | 0 |
| - | 0 | 256 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 0 | 0 | 0 |
| - | 0 | 0 | 256 |
| number | freq |
|---|---|
| 0 | 256 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 0 | 0 | 0 |
| - | 0 | 0 | 1 |
| 43.0ms | 472× | 0 | valid |
| 12.0ms | 24× | 1 | valid |
| 3.0ms | 16× | 2 | valid |
Compiled 77 to 31 computations (59.7% saved)
ival-mult: 24.0ms (75.8% of total)ival-add: 6.0ms (19% of total)adjust: 1.0ms (3.2% of total)exact: 1.0ms (3.2% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| 1× | egg-herbie |
| 318× | unsub-neg |
| 312× | sub-neg |
| 222× | cancel-sign-sub-inv |
| 220× | distribute-rgt-in |
| 216× | cancel-sign-sub |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 53 |
| 1 | 71 | 39 |
| 2 | 217 | 27 |
| 3 | 667 | 25 |
| 4 | 1503 | 25 |
| 5 | 1905 | 25 |
| 6 | 2368 | 25 |
| 7 | 2398 | 25 |
| 8 | 2398 | 25 |
| 0 | 9 | 11 |
| 0 | 14 | 9 |
| 1 | 23 | 7 |
| 2 | 39 | 5 |
| 3 | 55 | 5 |
| 4 | 58 | 5 |
| 0 | 58 | 5 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
| Outputs |
|---|
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
(*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
(negabs d1)
Compiled 11 to 9 computations (18.2% saved)
Compiled 0 to 2 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.7% | (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
Compiled 11 to 9 computations (18.2% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 d1 d2) | |
| cost-diff | 0 | (*.f64 d1 #s(literal 10 binary64)) | |
| cost-diff | 320 | (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) | |
| cost-diff | 512 | (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
| 48× | lower-fma.f64 |
| 48× | lower-fma.f32 |
| 44× | lower-+.f32 |
| 40× | lower-+.f64 |
| 28× | lower-*.f32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 31 |
| 0 | 14 | 27 |
| 1 | 23 | 25 |
| 2 | 39 | 23 |
| 3 | 55 | 23 |
| 4 | 58 | 23 |
| 0 | 58 | 23 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| Inputs |
|---|
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
(+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) |
(*.f64 d1 #s(literal 10 binary64)) |
d1 |
#s(literal 10 binary64) |
(*.f64 d1 d2) |
d2 |
(*.f64 d1 #s(literal 20 binary64)) |
#s(literal 20 binary64) |
| Outputs |
|---|
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
(*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
(+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) |
(*.f64 (+.f64 d2 #s(literal 10 binary64)) d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(*.f64 #s(literal 10 binary64) d1) |
d1 |
#s(literal 10 binary64) |
(*.f64 d1 d2) |
(*.f64 d2 d1) |
d2 |
(*.f64 d1 #s(literal 20 binary64)) |
(*.f64 #s(literal 20 binary64) d1) |
#s(literal 20 binary64) |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0 | (*.f64 d1 #s(literal 20 binary64)) | |
| accuracy | 0 | (*.f64 d1 #s(literal 10 binary64)) | |
| accuracy | 0.0703125 | (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) | |
| accuracy | 0.14453125 | (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
| 29.0ms | 236× | 0 | valid |
| 2.0ms | 12× | 1 | valid |
| 2.0ms | 8× | 2 | valid |
Compiled 33 to 11 computations (66.7% saved)
ival-mult: 14.0ms (71.9% of total)ival-add: 4.0ms (20.5% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| Inputs |
|---|
#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ()) |
#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ()) |
#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ()) |
#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ()) |
#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ()) |
| Outputs |
|---|
#s(alt (+ (* 10 d1) (* 20 d1)) (taylor 0 d2) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) (taylor 0 d2) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) (taylor 0 d2) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) (taylor 0 d2) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor 0 d2) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d2) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d2) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d2) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d2) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) (taylor inf d2) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) (taylor inf d2) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) (taylor inf d2) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 10 (/ d1 d2)))) (taylor inf d2) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 10 (/ d1 d2)))) (taylor inf d2) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 10 (/ d1 d2)))) (taylor inf d2) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) (taylor -inf d2) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) (taylor -inf d2) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) (taylor -inf d2) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -10 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -10 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -10 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 10 d2)) (taylor 0 d1) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 10 d2)) (taylor 0 d1) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 10 d2)) (taylor 0 d1) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 10 d2)) (taylor 0 d1) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor 0 d1) (#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor 0 d1) (#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor 0 d1) (#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor 0 d1) (#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d1) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d1) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d1) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d1) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* 20 d1) (taylor 0 d1) (#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 20 d1) (taylor 0 d1) (#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 20 d1) (taylor 0 d1) (#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 20 d1) (taylor 0 d1) (#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 10 d2)) (taylor inf d1) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 10 d2)) (taylor inf d1) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 10 d2)) (taylor inf d1) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 10 d2)) (taylor inf d1) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor inf d1) (#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor inf d1) (#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor inf d1) (#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor inf d1) (#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d1) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d1) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d1) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d1) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* 20 d1) (taylor inf d1) (#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 20 d1) (taylor inf d1) (#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 20 d1) (taylor inf d1) (#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 20 d1) (taylor inf d1) (#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) (patch (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 10))) (taylor -inf d1) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 10))) (taylor -inf d1) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 10))) (taylor -inf d1) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 10))) (taylor -inf d1) (#s(alt (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (patch (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor -inf d1) (#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor -inf d1) (#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor -inf d1) (#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 10 d1) (taylor -inf d1) (#s(alt (*.f64 d1 #s(literal 10 binary64)) (patch (*.f64 d1 #s(literal 10 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d1) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d1) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d1) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d1) (#s(alt (*.f64 d1 d2) (patch (*.f64 d1 d2) #<representation binary64>) () ())) ()) |
#s(alt (* 20 d1) (taylor -inf d1) (#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 20 d1) (taylor -inf d1) (#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 20 d1) (taylor -inf d1) (#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* 20 d1) (taylor -inf d1) (#s(alt (*.f64 d1 #s(literal 20 binary64)) (patch (*.f64 d1 #s(literal 20 binary64)) #<representation binary64>) () ())) ()) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | d1 | @ | inf | ((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 10) (* d1 d2)) (* d1 10) (* d1 d2) (* d1 20)) |
| 2.0ms | d1 | @ | -inf | ((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 10) (* d1 d2)) (* d1 10) (* d1 d2) (* d1 20)) |
| 2.0ms | d1 | @ | 0 | ((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 10) (* d1 d2)) (* d1 10) (* d1 d2) (* d1 20)) |
| 1.0ms | d2 | @ | 0 | ((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 10) (* d1 d2)) (* d1 10) (* d1 d2) (* d1 20)) |
| 1.0ms | d2 | @ | inf | ((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 10) (* d1 d2)) (* d1 10) (* d1 d2) (* d1 20)) |
| 1× | egg-herbie |
| 5 096× | lower-fma.f64 |
| 5 096× | lower-fma.f32 |
| 2 336× | lower-*.f64 |
| 2 336× | lower-*.f32 |
| 1 168× | lower-/.f32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 43 | 372 |
| 1 | 130 | 372 |
| 2 | 354 | 372 |
| 3 | 903 | 372 |
| 4 | 2853 | 372 |
| 5 | 5104 | 372 |
| 6 | 6391 | 372 |
| 7 | 6971 | 372 |
| 8 | 7138 | 372 |
| 9 | 7201 | 372 |
| 10 | 7321 | 372 |
| 0 | 8074 | 372 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(+ (* 10 d1) (* 20 d1)) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(* 10 d1) |
(+ (* 10 d1) (* d1 d2)) |
(+ (* 10 d1) (* d1 d2)) |
(+ (* 10 d1) (* d1 d2)) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(* d1 d2) |
(* d2 (+ d1 (* 10 (/ d1 d2)))) |
(* d2 (+ d1 (* 10 (/ d1 d2)))) |
(* d2 (+ d1 (* 10 (/ d1 d2)))) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(* d1 d2) |
(* -1 (* d2 (+ (* -10 (/ d1 d2)) (* -1 d1)))) |
(* -1 (* d2 (+ (* -10 (/ d1 d2)) (* -1 d1)))) |
(* -1 (* d2 (+ (* -10 (/ d1 d2)) (* -1 d1)))) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 10 d2)) |
(* d1 (+ 10 d2)) |
(* d1 (+ 10 d2)) |
(* d1 (+ 10 d2)) |
(* 10 d1) |
(* 10 d1) |
(* 10 d1) |
(* 10 d1) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* 20 d1) |
(* 20 d1) |
(* 20 d1) |
(* 20 d1) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 10 d2)) |
(* d1 (+ 10 d2)) |
(* d1 (+ 10 d2)) |
(* d1 (+ 10 d2)) |
(* 10 d1) |
(* 10 d1) |
(* 10 d1) |
(* 10 d1) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* 20 d1) |
(* 20 d1) |
(* 20 d1) |
(* 20 d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 10))) |
(* -1 (* d1 (- (* -1 d2) 10))) |
(* -1 (* d1 (- (* -1 d2) 10))) |
(* -1 (* d1 (- (* -1 d2) 10))) |
(* 10 d1) |
(* 10 d1) |
(* 10 d1) |
(* 10 d1) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* 20 d1) |
(* 20 d1) |
(* 20 d1) |
(* 20 d1) |
| Outputs |
|---|
(+ (* 10 d1) (* 20 d1)) |
(*.f64 #s(literal 30 binary64) d1) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(+ (* 10 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(+ (* 10 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(+ (* 10 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d2 (+ d1 (* 10 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* d2 (+ d1 (* 10 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* d2 (+ d1 (* 10 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* -1 (* d2 (+ (* -10 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* -1 (* d2 (+ (* -10 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* -1 (* d2 (+ (* -10 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 10 d2)) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* d1 (+ 10 d2)) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* d1 (+ 10 d2)) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* d1 (+ 10 d2)) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* 20 d1) |
(*.f64 #s(literal 20 binary64) d1) |
(* 20 d1) |
(*.f64 #s(literal 20 binary64) d1) |
(* 20 d1) |
(*.f64 #s(literal 20 binary64) d1) |
(* 20 d1) |
(*.f64 #s(literal 20 binary64) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 10 d2)) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* d1 (+ 10 d2)) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* d1 (+ 10 d2)) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* d1 (+ 10 d2)) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* 20 d1) |
(*.f64 #s(literal 20 binary64) d1) |
(* 20 d1) |
(*.f64 #s(literal 20 binary64) d1) |
(* 20 d1) |
(*.f64 #s(literal 20 binary64) d1) |
(* 20 d1) |
(*.f64 #s(literal 20 binary64) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 10))) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 10))) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 10))) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 10))) |
(*.f64 (-.f64 d2 #s(literal -10 binary64)) d1) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(* 10 d1) |
(*.f64 d1 #s(literal 10 binary64)) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* 20 d1) |
(*.f64 #s(literal 20 binary64) d1) |
(* 20 d1) |
(*.f64 #s(literal 20 binary64) d1) |
(* 20 d1) |
(*.f64 #s(literal 20 binary64) d1) |
(* 20 d1) |
(*.f64 #s(literal 20 binary64) d1) |
| 8 600× | lower-fma.f64 |
| 8 600× | lower-fma.f32 |
| 4 926× | lower-*.f32 |
| 4 920× | lower-*.f64 |
| 2 754× | lower-/.f64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 27 |
| 0 | 14 | 23 |
| 1 | 48 | 21 |
| 2 | 429 | 19 |
| 3 | 6673 | 19 |
| 0 | 8034 | 19 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
(+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) |
(*.f64 d1 #s(literal 10 binary64)) |
(*.f64 d1 d2) |
(*.f64 d1 #s(literal 20 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> |
Compiled 6 536 to 662 computations (89.9% saved)
4 alts after pruning (4 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 300 | 4 | 304 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 301 | 4 | 305 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) |
| ▶ | 100.0% | (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
| ▶ | 48.4% | #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) |
| ▶ | 53.2% | #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
Compiled 19 to 19 computations (0% saved)
| 1× | egg-herbie |
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 d2 d1) | |
| cost-diff | 192 | (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) | |
| cost-diff | 0 | (+.f64 #s(literal 30 binary64) d2) | |
| cost-diff | 0 | (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) | |
| cost-diff | 0 | (*.f64 d2 d1) | |
| cost-diff | 0 | #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) | |
| cost-diff | 0 | (*.f64 #s(literal 30 binary64) d1) | |
| cost-diff | 0 | #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
| 48× | lower-fma.f32 |
| 46× | lower-fma.f64 |
| 44× | lower-+.f32 |
| 42× | lower-+.f64 |
| 28× | lower-*.f32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 63 |
| 0 | 23 | 58 |
| 1 | 38 | 54 |
| 2 | 54 | 50 |
| 3 | 64 | 50 |
| 0 | 64 | 50 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
(*.f64 #s(literal 30 binary64) d1) |
#s(literal 30 binary64) |
d1 |
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) |
(*.f64 d2 d1) |
d2 |
d1 |
(*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
(+.f64 #s(literal 30 binary64) d2) |
#s(literal 30 binary64) |
d2 |
d1 |
(fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) |
d1 |
#s(literal 30 binary64) |
(*.f64 d2 d1) |
d2 |
| Outputs |
|---|
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
(*.f64 #s(literal 30 binary64) d1) |
#s(literal 30 binary64) |
d1 |
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) |
(*.f64 d2 d1) |
d2 |
d1 |
(*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
(+.f64 #s(literal 30 binary64) d2) |
#s(literal 30 binary64) |
d2 |
d1 |
(fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) |
(*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
d1 |
#s(literal 30 binary64) |
(*.f64 d2 d1) |
d2 |
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0 | (*.f64 d2 d1) | |
| accuracy | 0.00390625 | (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) | |
| accuracy | 0 | (+.f64 #s(literal 30 binary64) d2) | |
| accuracy | 0.02734375 | (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) | |
| accuracy | 0 | (*.f64 d2 d1) | |
| accuracy | 33.02732655261418 | #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) | |
| accuracy | 0 | (*.f64 #s(literal 30 binary64) d1) | |
| accuracy | 29.945313500693576 | #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
| 33.0ms | 251× | 0 | valid |
| 1.0ms | 4× | 1 | valid |
| 0.0ms | 1× | 2 | valid |
Compiled 58 to 18 computations (69% saved)
ival-mult: 14.0ms (62.9% of total)ival-add: 7.0ms (31.5% of total)exact: 1.0ms (4.5% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Inputs |
|---|
#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ()) |
#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ()) |
#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ()) |
#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ()) |
#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ()) |
#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ()) |
#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ()) |
| Outputs |
|---|
#s(alt (+ (* 10 d1) (* 20 d1)) (taylor 0 d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) (taylor 0 d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) (taylor 0 d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) (taylor 0 d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (* 20 d1)) (taylor 0 d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) (taylor 0 d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) (taylor 0 d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) (taylor 0 d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d2) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d2) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d2) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d2) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor 0 d2) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 30 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 30 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 30 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt 30 (taylor 0 d2) (#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ())) ()) |
#s(alt (+ 30 d2) (taylor 0 d2) (#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ())) ()) |
#s(alt (+ 30 d2) (taylor 0 d2) (#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ())) ()) |
#s(alt (+ 30 d2) (taylor 0 d2) (#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor 0 d2) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 30 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 30 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 30 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) (taylor inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) (taylor inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) (taylor inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) (taylor inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) (taylor inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) (taylor inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 30 (/ d1 d2)))) (taylor inf d2) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 30 (/ d1 d2)))) (taylor inf d2) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 30 (/ d1 d2)))) (taylor inf d2) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt d2 (taylor inf d2) (#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ 1 (* 30 (/ 1 d2)))) (taylor inf d2) (#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ 1 (* 30 (/ 1 d2)))) (taylor inf d2) (#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ 1 (* 30 (/ 1 d2)))) (taylor inf d2) (#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 30 (/ d1 d2)))) (taylor inf d2) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 30 (/ d1 d2)))) (taylor inf d2) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 30 (/ d1 d2)))) (taylor inf d2) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) (taylor -inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) (taylor -inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) (taylor -inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) (taylor -inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) (taylor -inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) (taylor -inf d2) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt d2 (taylor -inf d2) (#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ 1 (* 30 (/ 1 d2)))) (taylor -inf d2) (#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ 1 (* 30 (/ 1 d2)))) (taylor -inf d2) (#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ 1 (* 30 (/ 1 d2)))) (taylor -inf d2) (#s(alt (+.f64 #s(literal 30 binary64) d2) (patch (+.f64 #s(literal 30 binary64) d2) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor 0 d1) (#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor 0 d1) (#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor 0 d1) (#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor 0 d1) (#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d1) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d1) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d1) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor 0 d1) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor 0 d1) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor inf d1) (#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor inf d1) (#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor inf d1) (#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor inf d1) (#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d1) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d1) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d1) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d1) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor inf d1) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor -inf d1) (#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor -inf d1) (#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor -inf d1) (#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ())) ()) |
#s(alt (* 30 d1) (taylor -inf d1) (#s(alt (*.f64 #s(literal 30 binary64) d1) (patch (*.f64 #s(literal 30 binary64) d1) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (patch #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d1) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d1) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d1) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d1) (#s(alt (*.f64 d2 d1) (patch (*.f64 d2 d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor -inf d1) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor -inf d1) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor -inf d1) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (+ 30 d2)) (taylor -inf d1) (#s(alt (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) (patch (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d1 (- (* -1 d2) 30))) (taylor -inf d1) (#s(alt (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) (patch (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) #<representation binary64>) () ())) ()) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | d1 | @ | -inf | ((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* 30 d1) (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d2 d1) (* (+ 30 d2) d1) (+ 30 d2) (+ (* d1 30) (* d2 d1))) |
| 2.0ms | d2 | @ | -inf | ((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* 30 d1) (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d2 d1) (* (+ 30 d2) d1) (+ 30 d2) (+ (* d1 30) (* d2 d1))) |
| 2.0ms | d1 | @ | inf | ((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* 30 d1) (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d2 d1) (* (+ 30 d2) d1) (+ 30 d2) (+ (* d1 30) (* d2 d1))) |
| 1.0ms | d1 | @ | 0 | ((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* 30 d1) (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d2 d1) (* (+ 30 d2) d1) (+ 30 d2) (+ (* d1 30) (* d2 d1))) |
| 1.0ms | d2 | @ | 0 | ((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* 30 d1) (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d2 d1) (* (+ 30 d2) d1) (+ 30 d2) (+ (* d1 30) (* d2 d1))) |
| 1× | egg-herbie |
| 4 684× | lower-fma.f64 |
| 4 684× | lower-fma.f32 |
| 2 064× | lower-*.f64 |
| 2 064× | lower-*.f32 |
| 1 424× | times-frac |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 45 | 594 |
| 1 | 139 | 594 |
| 2 | 361 | 594 |
| 3 | 1191 | 594 |
| 4 | 3793 | 594 |
| 5 | 5758 | 594 |
| 6 | 7548 | 594 |
| 0 | 8014 | 594 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(+ (* 10 d1) (* 20 d1)) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(+ (* 10 d1) (* 20 d1)) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* 30 d1) |
(+ (* 30 d1) (* d1 d2)) |
(+ (* 30 d1) (* d1 d2)) |
(+ (* 30 d1) (* d1 d2)) |
30 |
(+ 30 d2) |
(+ 30 d2) |
(+ 30 d2) |
(* 30 d1) |
(+ (* 30 d1) (* d1 d2)) |
(+ (* 30 d1) (* d1 d2)) |
(+ (* 30 d1) (* d1 d2)) |
(* d1 d2) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(* d1 d2) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
d2 |
(* d2 (+ 1 (* 30 (/ 1 d2)))) |
(* d2 (+ 1 (* 30 (/ 1 d2)))) |
(* d2 (+ 1 (* 30 (/ 1 d2)))) |
(* d1 d2) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(* d1 d2) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(* d1 d2) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
d2 |
(* d2 (+ 1 (* 30 (/ 1 d2)))) |
(* d2 (+ 1 (* 30 (/ 1 d2)))) |
(* d2 (+ 1 (* 30 (/ 1 d2)))) |
(* d1 d2) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* 30 d1) |
(* 30 d1) |
(* 30 d1) |
(* 30 d1) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* 30 d1) |
(* 30 d1) |
(* 30 d1) |
(* 30 d1) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* 30 d1) |
(* 30 d1) |
(* 30 d1) |
(* 30 d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 d2) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* d1 (+ 30 d2)) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(* -1 (* d1 (- (* -1 d2) 30))) |
| Outputs |
|---|
(+ (* 10 d1) (* 20 d1)) |
(*.f64 #s(literal 30 binary64) d1) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 10 d1) (* 20 d1)) |
(*.f64 #s(literal 30 binary64) d1) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 10 d1) (+ (* 20 d1) (* d1 d2))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(+ (* 30 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 30 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 30 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
30 |
#s(literal 30 binary64) |
(+ 30 d2) |
(-.f64 d2 #s(literal -30 binary64)) |
(+ 30 d2) |
(-.f64 d2 #s(literal -30 binary64)) |
(+ 30 d2) |
(-.f64 d2 #s(literal -30 binary64)) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(+ (* 30 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 30 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 30 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (+ (* 10 (/ d1 d2)) (* 20 (/ d1 d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
d2 |
(* d2 (+ 1 (* 30 (/ 1 d2)))) |
(-.f64 d2 #s(literal -30 binary64)) |
(* d2 (+ 1 (* 30 (/ 1 d2)))) |
(-.f64 d2 #s(literal -30 binary64)) |
(* d2 (+ 1 (* 30 (/ 1 d2)))) |
(-.f64 d2 #s(literal -30 binary64)) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 10 d1) (* 20 d1)) d2))))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
d2 |
(* d2 (+ 1 (* 30 (/ 1 d2)))) |
(-.f64 d2 #s(literal -30 binary64)) |
(* d2 (+ 1 (* 30 (/ 1 d2)))) |
(-.f64 d2 #s(literal -30 binary64)) |
(* d2 (+ 1 (* 30 (/ 1 d2)))) |
(-.f64 d2 #s(literal -30 binary64)) |
(* d1 d2) |
(*.f64 d2 d1) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(* 30 d1) |
(*.f64 #s(literal 30 binary64) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (+ 30 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d1 (- (* -1 d2) 30))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
| 11 176× | lower-fma.f32 |
| 11 174× | lower-fma.f64 |
| 6 484× | lower-*.f32 |
| 6 478× | lower-*.f64 |
| 3 654× | lower-/.f64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 50 |
| 0 | 23 | 45 |
| 1 | 94 | 41 |
| 2 | 692 | 37 |
| 0 | 8363 | 37 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
(*.f64 #s(literal 30 binary64) d1) |
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) |
(*.f64 d2 d1) |
(*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
(+.f64 #s(literal 30 binary64) d2) |
(fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) |
| 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> |
Compiled 9 379 to 746 computations (92% saved)
5 alts after pruning (1 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 559 | 1 | 560 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 4 | 4 |
| Done | 0 | 0 | 0 |
| Total | 559 | 5 | 564 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) |
| ▶ | 83.5% | (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
| ✓ | 100.0% | (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
| ✓ | 48.4% | #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) |
| ✓ | 53.2% | #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
Compiled 29 to 27 computations (6.9% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (-.f64 d2 #s(literal 30 binary64)) | |
| cost-diff | 0 | (fma.f64 d2 d2 #s(literal -900 binary64)) | |
| cost-diff | 0 | (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) | |
| cost-diff | 0 | (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
| 70× | lower-*.f32 |
| 68× | lower-*.f64 |
| 42× | lower-fma.f32 |
| 40× | lower-fma.f64 |
| 26× | *-commutative |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 27 |
| 0 | 13 | 27 |
| 1 | 26 | 27 |
| 2 | 36 | 27 |
| 3 | 38 | 27 |
| 4 | 46 | 27 |
| 5 | 52 | 27 |
| 6 | 60 | 27 |
| 7 | 71 | 27 |
| 8 | 78 | 27 |
| 0 | 78 | 27 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| Inputs |
|---|
(/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
(*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) |
d1 |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
d2 |
#s(literal -900 binary64) |
(-.f64 d2 #s(literal 30 binary64)) |
#s(literal 30 binary64) |
| Outputs |
|---|
(/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
d1 |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
d2 |
#s(literal -900 binary64) |
(-.f64 d2 #s(literal 30 binary64)) |
#s(literal 30 binary64) |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0 | (fma.f64 d2 d2 #s(literal -900 binary64)) | |
| accuracy | 0 | (-.f64 d2 #s(literal 30 binary64)) | |
| accuracy | 2.881705463416142 | (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) | |
| accuracy | 7.6611986319487215 | (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
| 15.0ms | 246× | 0 | valid |
| 1.0ms | 6× | 1 | valid |
| 1.0ms | 3× | 2 | valid |
| 0.0ms | 1× | 3 | valid |
Compiled 32 to 11 computations (65.6% saved)
ival-mult: 4.0ms (44.2% of total)ival-div: 2.0ms (22.1% of total)ival-sub: 1.0ms (11.1% of total)ival-add: 1.0ms (11.1% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| Inputs |
|---|
#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ()) |
#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ()) |
#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ()) |
#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ()) |
| Outputs |
|---|
#s(alt (* 30 d1) (taylor 0 d2) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 30 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 30 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 30 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -900 d1) (taylor 0 d2) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* -900 d1) (* d1 (pow d2 2))) (taylor 0 d2) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* -900 d1) (* d1 (pow d2 2))) (taylor 0 d2) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* -900 d1) (* d1 (pow d2 2))) (taylor 0 d2) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt -900 (taylor 0 d2) (#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow d2 2) 900) (taylor 0 d2) (#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow d2 2) 900) (taylor 0 d2) (#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow d2 2) 900) (taylor 0 d2) (#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt -30 (taylor 0 d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- d2 30) (taylor 0 d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- d2 30) (taylor 0 d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- d2 30) (taylor 0 d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 30 (/ d1 d2)))) (taylor inf d2) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 30 (/ d1 d2)))) (taylor inf d2) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 30 (/ d1 d2)))) (taylor inf d2) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (pow d2 2)) (taylor inf d2) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) (taylor inf d2) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) (taylor inf d2) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) (taylor inf d2) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (pow d2 2) (taylor inf d2) (#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) (taylor inf d2) (#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) (taylor inf d2) (#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) (taylor inf d2) (#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt d2 (taylor inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (- 1 (* 30 (/ 1 d2)))) (taylor inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (- 1 (* 30 (/ 1 d2)))) (taylor inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (- 1 (* 30 (/ 1 d2)))) (taylor inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (pow d2 2)) (taylor -inf d2) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) (taylor -inf d2) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) (taylor -inf d2) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) (taylor -inf d2) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (pow d2 2) (taylor -inf d2) (#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) (taylor -inf d2) (#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) (taylor -inf d2) (#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) (taylor -inf d2) (#s(alt (fma.f64 d2 d2 #s(literal -900 binary64)) (patch (fma.f64 d2 d2 #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt d2 (taylor -inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) (taylor -inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) (taylor -inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) (taylor -inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor 0 d1) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor 0 d1) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor 0 d1) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor 0 d1) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor 0 d1) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor 0 d1) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor 0 d1) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor 0 d1) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor inf d1) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor inf d1) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor inf d1) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor inf d1) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor inf d1) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor inf d1) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor inf d1) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor inf d1) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor -inf d1) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor -inf d1) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor -inf d1) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor -inf d1) (#s(alt (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor -inf d1) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor -inf d1) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor -inf d1) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor -inf d1) (#s(alt (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (patch (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | d2 | @ | 0 | ((/ (* d1 (+ (* d2 d2) -900)) (- d2 30)) (* d1 (+ (* d2 d2) -900)) (+ (* d2 d2) -900) (- d2 30)) |
| 1.0ms | d1 | @ | -inf | ((/ (* d1 (+ (* d2 d2) -900)) (- d2 30)) (* d1 (+ (* d2 d2) -900)) (+ (* d2 d2) -900) (- d2 30)) |
| 1.0ms | d1 | @ | inf | ((/ (* d1 (+ (* d2 d2) -900)) (- d2 30)) (* d1 (+ (* d2 d2) -900)) (+ (* d2 d2) -900) (- d2 30)) |
| 1.0ms | d1 | @ | 0 | ((/ (* d1 (+ (* d2 d2) -900)) (- d2 30)) (* d1 (+ (* d2 d2) -900)) (+ (* d2 d2) -900) (- d2 30)) |
| 1.0ms | d2 | @ | -inf | ((/ (* d1 (+ (* d2 d2) -900)) (- d2 30)) (* d1 (+ (* d2 d2) -900)) (+ (* d2 d2) -900) (- d2 30)) |
| 1× | egg-herbie |
| 4 048× | lower-fma.f64 |
| 4 048× | lower-fma.f32 |
| 2 442× | lower-*.f64 |
| 2 442× | lower-*.f32 |
| 986× | div-sub |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 44 | 488 |
| 1 | 117 | 428 |
| 2 | 302 | 428 |
| 3 | 685 | 428 |
| 4 | 2667 | 428 |
| 5 | 5385 | 428 |
| 6 | 7133 | 428 |
| 0 | 8052 | 386 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* 30 d1) |
(+ (* 30 d1) (* d1 d2)) |
(+ (* 30 d1) (* d1 d2)) |
(+ (* 30 d1) (* d1 d2)) |
(* -900 d1) |
(+ (* -900 d1) (* d1 (pow d2 2))) |
(+ (* -900 d1) (* d1 (pow d2 2))) |
(+ (* -900 d1) (* d1 (pow d2 2))) |
-900 |
(- (pow d2 2) 900) |
(- (pow d2 2) 900) |
(- (pow d2 2) 900) |
-30 |
(- d2 30) |
(- d2 30) |
(- d2 30) |
(* d1 d2) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(* d1 (pow d2 2)) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(pow d2 2) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
d2 |
(* d2 (- 1 (* 30 (/ 1 d2)))) |
(* d2 (- 1 (* 30 (/ 1 d2)))) |
(* d2 (- 1 (* 30 (/ 1 d2)))) |
(* d1 d2) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(* d1 (pow d2 2)) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(pow d2 2) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
d2 |
(* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) |
(* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) |
(* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
| Outputs |
|---|
(* 30 d1) |
(*.f64 d1 #s(literal 30 binary64)) |
(+ (* 30 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 30 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 30 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -900 d1) |
(*.f64 #s(literal -900 binary64) d1) |
(+ (* -900 d1) (* d1 (pow d2 2))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(+ (* -900 d1) (* d1 (pow d2 2))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(+ (* -900 d1) (* d1 (pow d2 2))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
-900 |
#s(literal -900 binary64) |
(- (pow d2 2) 900) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(- (pow d2 2) 900) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(- (pow d2 2) 900) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
-30 |
#s(literal -30 binary64) |
(- d2 30) |
(-.f64 d2 #s(literal 30 binary64)) |
(- d2 30) |
(-.f64 d2 #s(literal 30 binary64)) |
(- d2 30) |
(-.f64 d2 #s(literal 30 binary64)) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (pow d2 2)) |
(*.f64 (*.f64 d2 d2) d1) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(pow d2 2) |
(*.f64 d2 d2) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
d2 |
(* d2 (- 1 (* 30 (/ 1 d2)))) |
(-.f64 d2 #s(literal 30 binary64)) |
(* d2 (- 1 (* 30 (/ 1 d2)))) |
(-.f64 d2 #s(literal 30 binary64)) |
(* d2 (- 1 (* 30 (/ 1 d2)))) |
(-.f64 d2 #s(literal 30 binary64)) |
(* d1 d2) |
(*.f64 d2 d1) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (pow d2 2)) |
(*.f64 (*.f64 d2 d2) d1) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(pow d2 2) |
(*.f64 d2 d2) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
d2 |
(* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) |
(-.f64 d2 #s(literal 30 binary64)) |
(* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) |
(-.f64 d2 #s(literal 30 binary64)) |
(* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) |
(-.f64 d2 #s(literal 30 binary64)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
| 4 874× | lower-*.f32 |
| 4 872× | lower-*.f64 |
| 3 254× | lower-fma.f32 |
| 3 252× | lower-fma.f64 |
| 3 130× | lower-/.f32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 23 |
| 0 | 13 | 23 |
| 1 | 64 | 18 |
| 2 | 406 | 18 |
| 3 | 4377 | 18 |
| 0 | 8300 | 18 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
(*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(-.f64 d2 #s(literal 30 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> |
Compiled 11 313 to 1 519 computations (86.6% saved)
5 alts after pruning (1 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 556 | 1 | 557 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 4 | 4 |
| Total | 557 | 5 | 562 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) |
| ▶ | 52.7% | (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
| ✓ | 100.0% | (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
| ✓ | 48.4% | #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) |
| ✓ | 53.2% | #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
Compiled 27 to 27 computations (0% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (-.f64 d2 #s(literal 30 binary64)) | |
| cost-diff | 0 | #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) | |
| cost-diff | 0 | (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) | |
| cost-diff | 0 | (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
| 14× | lower-*.f32 |
| 12× | lower-*.f64 |
| 8× | lower-+.f64 |
| 8× | lower-+.f32 |
| 6× | *-commutative |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 36 |
| 0 | 13 | 36 |
| 1 | 20 | 36 |
| 2 | 24 | 36 |
| 3 | 25 | 36 |
| 0 | 25 | 33 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| Inputs |
|---|
(/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
(*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) |
d1 |
#s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) |
#s(literal -900 binary64) |
(-.f64 d2 #s(literal 30 binary64)) |
d2 |
#s(literal 30 binary64) |
| Outputs |
|---|
(/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) |
(*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) |
(*.f64 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) d1) |
d1 |
#s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) |
#s(literal -900 binary64) |
(-.f64 d2 #s(literal 30 binary64)) |
d2 |
#s(literal 30 binary64) |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0 | (-.f64 d2 #s(literal 30 binary64)) | |
| accuracy | 2.881705463416142 | (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) | |
| accuracy | 7.6611986319487215 | (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) | |
| accuracy | 30.387312306531268 | #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) |
| 124.0ms | 246× | 0 | valid |
| 1.0ms | 6× | 1 | valid |
| 1.0ms | 3× | 2 | valid |
| 0.0ms | 1× | 3 | valid |
Compiled 32 to 11 computations (65.6% saved)
ival-add: 42.0ms (50.5% of total)ival-sub: 34.0ms (40.9% of total)ival-mult: 4.0ms (4.8% of total)ival-div: 2.0ms (2.4% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| Inputs |
|---|
#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ()) |
#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ()) |
#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ()) |
#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ()) |
| Outputs |
|---|
#s(alt (* 30 d1) (taylor 0 d2) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 30 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 30 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* 30 d1) (* d1 d2)) (taylor 0 d2) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -900 d1) (taylor 0 d2) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* -900 d1) (* d1 (pow d2 2))) (taylor 0 d2) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* -900 d1) (* d1 (pow d2 2))) (taylor 0 d2) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* -900 d1) (* d1 (pow d2 2))) (taylor 0 d2) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt -900 (taylor 0 d2) (#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow d2 2) 900) (taylor 0 d2) (#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow d2 2) 900) (taylor 0 d2) (#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- (pow d2 2) 900) (taylor 0 d2) (#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt -30 (taylor 0 d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- d2 30) (taylor 0 d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- d2 30) (taylor 0 d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (- d2 30) (taylor 0 d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor inf d2) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 30 (/ d1 d2)))) (taylor inf d2) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 30 (/ d1 d2)))) (taylor inf d2) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (+ d1 (* 30 (/ d1 d2)))) (taylor inf d2) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (pow d2 2)) (taylor inf d2) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) (taylor inf d2) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) (taylor inf d2) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) (taylor inf d2) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (pow d2 2) (taylor inf d2) (#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) (taylor inf d2) (#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) (taylor inf d2) (#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) (taylor inf d2) (#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt d2 (taylor inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (- 1 (* 30 (/ 1 d2)))) (taylor inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (- 1 (* 30 (/ 1 d2)))) (taylor inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d2 (- 1 (* 30 (/ 1 d2)))) (taylor inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* d1 d2) (taylor -inf d2) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) (taylor -inf d2) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (pow d2 2)) (taylor -inf d2) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) (taylor -inf d2) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) (taylor -inf d2) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) (taylor -inf d2) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (pow d2 2) (taylor -inf d2) (#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) (taylor -inf d2) (#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) (taylor -inf d2) (#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) (taylor -inf d2) (#s(alt #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) (patch #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) #<representation binary64>) () ())) ()) |
#s(alt d2 (taylor -inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) (taylor -inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) (taylor -inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) (taylor -inf d2) (#s(alt (-.f64 d2 #s(literal 30 binary64)) (patch (-.f64 d2 #s(literal 30 binary64)) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor 0 d1) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor 0 d1) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor 0 d1) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor 0 d1) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor 0 d1) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor 0 d1) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor 0 d1) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor 0 d1) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor inf d1) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor inf d1) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor inf d1) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor inf d1) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor inf d1) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor inf d1) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor inf d1) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor inf d1) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor -inf d1) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor -inf d1) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor -inf d1) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (/ (* d1 (- (pow d2 2) 900)) (- d2 30)) (taylor -inf d1) (#s(alt (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) (patch (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor -inf d1) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor -inf d1) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor -inf d1) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
#s(alt (* d1 (- (pow d2 2) 900)) (taylor -inf d1) (#s(alt (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (patch (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #<representation binary64>) () ())) ()) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | d1 | @ | -inf | ((/ (* d1 (+ (* d2 d2) -900)) (- d2 30)) (* d1 (+ (* d2 d2) -900)) (+ (* d2 d2) -900) (- d2 30)) |
| 1.0ms | d1 | @ | inf | ((/ (* d1 (+ (* d2 d2) -900)) (- d2 30)) (* d1 (+ (* d2 d2) -900)) (+ (* d2 d2) -900) (- d2 30)) |
| 1.0ms | d2 | @ | -inf | ((/ (* d1 (+ (* d2 d2) -900)) (- d2 30)) (* d1 (+ (* d2 d2) -900)) (+ (* d2 d2) -900) (- d2 30)) |
| 1.0ms | d2 | @ | inf | ((/ (* d1 (+ (* d2 d2) -900)) (- d2 30)) (* d1 (+ (* d2 d2) -900)) (+ (* d2 d2) -900) (- d2 30)) |
| 1.0ms | d1 | @ | 0 | ((/ (* d1 (+ (* d2 d2) -900)) (- d2 30)) (* d1 (+ (* d2 d2) -900)) (+ (* d2 d2) -900) (- d2 30)) |
| 1× | egg-herbie |
| 4 048× | lower-fma.f64 |
| 4 048× | lower-fma.f32 |
| 2 442× | lower-*.f64 |
| 2 442× | lower-*.f32 |
| 986× | div-sub |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 44 | 488 |
| 1 | 117 | 428 |
| 2 | 302 | 428 |
| 3 | 685 | 428 |
| 4 | 2667 | 428 |
| 5 | 5385 | 428 |
| 6 | 7133 | 428 |
| 0 | 8052 | 386 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* 30 d1) |
(+ (* 30 d1) (* d1 d2)) |
(+ (* 30 d1) (* d1 d2)) |
(+ (* 30 d1) (* d1 d2)) |
(* -900 d1) |
(+ (* -900 d1) (* d1 (pow d2 2))) |
(+ (* -900 d1) (* d1 (pow d2 2))) |
(+ (* -900 d1) (* d1 (pow d2 2))) |
-900 |
(- (pow d2 2) 900) |
(- (pow d2 2) 900) |
(- (pow d2 2) 900) |
-30 |
(- d2 30) |
(- d2 30) |
(- d2 30) |
(* d1 d2) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(* d1 (pow d2 2)) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(pow d2 2) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
d2 |
(* d2 (- 1 (* 30 (/ 1 d2)))) |
(* d2 (- 1 (* 30 (/ 1 d2)))) |
(* d2 (- 1 (* 30 (/ 1 d2)))) |
(* d1 d2) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(* d1 (pow d2 2)) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(pow d2 2) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
d2 |
(* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) |
(* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) |
(* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
(* d1 (- (pow d2 2) 900)) |
| Outputs |
|---|
(* 30 d1) |
(*.f64 d1 #s(literal 30 binary64)) |
(+ (* 30 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 30 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(+ (* 30 d1) (* d1 d2)) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -900 d1) |
(*.f64 #s(literal -900 binary64) d1) |
(+ (* -900 d1) (* d1 (pow d2 2))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(+ (* -900 d1) (* d1 (pow d2 2))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(+ (* -900 d1) (* d1 (pow d2 2))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
-900 |
#s(literal -900 binary64) |
(- (pow d2 2) 900) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(- (pow d2 2) 900) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(- (pow d2 2) 900) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
-30 |
#s(literal -30 binary64) |
(- d2 30) |
(-.f64 d2 #s(literal 30 binary64)) |
(- d2 30) |
(-.f64 d2 #s(literal 30 binary64)) |
(- d2 30) |
(-.f64 d2 #s(literal 30 binary64)) |
(* d1 d2) |
(*.f64 d2 d1) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d2 (+ d1 (* 30 (/ d1 d2)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (pow d2 2)) |
(*.f64 (*.f64 d2 d2) d1) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(pow d2 2) |
(*.f64 d2 d2) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
d2 |
(* d2 (- 1 (* 30 (/ 1 d2)))) |
(-.f64 d2 #s(literal 30 binary64)) |
(* d2 (- 1 (* 30 (/ 1 d2)))) |
(-.f64 d2 #s(literal 30 binary64)) |
(* d2 (- 1 (* 30 (/ 1 d2)))) |
(-.f64 d2 #s(literal 30 binary64)) |
(* d1 d2) |
(*.f64 d2 d1) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* -1 (* d2 (+ (* -30 (/ d1 d2)) (* -1 d1)))) |
(*.f64 (-.f64 d2 #s(literal -30 binary64)) d1) |
(* d1 (pow d2 2)) |
(*.f64 (*.f64 d2 d2) d1) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* (pow d2 2) (+ d1 (* -900 (/ d1 (pow d2 2))))) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(pow d2 2) |
(*.f64 d2 d2) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
(* (pow d2 2) (- 1 (* 900 (/ 1 (pow d2 2))))) |
(fma.f64 d2 d2 #s(literal -900 binary64)) |
d2 |
(* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) |
(-.f64 d2 #s(literal 30 binary64)) |
(* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) |
(-.f64 d2 #s(literal 30 binary64)) |
(* -1 (* d2 (- (* 30 (/ 1 d2)) 1))) |
(-.f64 d2 #s(literal 30 binary64)) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(/ (* d1 (- (pow d2 2) 900)) (- d2 30)) |
(*.f64 (/.f64 d1 (-.f64 d2 #s(literal 30 binary64))) (fma.f64 d2 d2 #s(literal -900 binary64))) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
(* d1 (- (pow d2 2) 900)) |
(*.f64 (fma.f64 d2 d2 #s(literal -900 binary64)) d1) |
| 4 166× | lower-/.f32 |
| 4 164× | lower-/.f64 |
| 3 764× | lower-*.f32 |
| 3 762× | lower-*.f64 |
| 2 466× | lower-fma.f64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 32 |
| 0 | 13 | 32 |
| 1 | 58 | 32 |
| 2 | 342 | 32 |
| 3 | 3086 | 32 |
| 0 | 8159 | 29 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
(*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) |
#s(approx (+ (* d2 d2) -900) #s(literal -900 binary64)) |
(-.f64 d2 #s(literal 30 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> |
Compiled 8 158 to 1 122 computations (86.2% saved)
5 alts after pruning (1 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 417 | 1 | 418 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 4 | 4 |
| Total | 418 | 5 | 423 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) |
| 53.0% | (/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #s(approx (- d2 30) #s(literal -30 binary64))) | |
| ✓ | 100.0% | (*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
| ✓ | 48.4% | #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) |
| ✓ | 53.2% | #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
Compiled 81 to 55 computations (32.1% saved)
| Inputs |
|---|
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) |
(*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
(fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) |
(/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) #s(approx (- d2 30) #s(literal -30 binary64))) |
(/.f64 (*.f64 d1 #s(approx (+ (* d2 d2) -900) #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
(/.f64 (*.f64 d1 (fma.f64 d2 d2 #s(literal -900 binary64))) (-.f64 d2 #s(literal 30 binary64))) |
| Outputs |
|---|
(fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) |
3 calls:
| 4.0ms | d1 |
| 4.0ms | (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
| 4.0ms | d2 |
| Accuracy | Segments | Branch |
|---|---|---|
| 100.0% | 1 | d1 |
| 100.0% | 1 | d2 |
| 100.0% | 1 | (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
Compiled 13 to 13 computations (0% saved)
| Inputs |
|---|
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) |
(*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
| Outputs |
|---|
(*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
3 calls:
| 3.0ms | d2 |
| 3.0ms | d1 |
| 3.0ms | (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 100.0% | 1 | d1 |
| 100.0% | 1 | d2 |
| 100.0% | 1 | (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
Compiled 13 to 13 computations (0% saved)
| Inputs |
|---|
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) |
| Outputs |
|---|
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) |
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) |
3 calls:
| 4.0ms | d2 |
| 3.0ms | (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
| 3.0ms | d1 |
| Accuracy | Segments | Branch |
|---|---|---|
| 62.8% | 5 | d1 |
| 97.7% | 3 | d2 |
| 79.9% | 3 | (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
Compiled 13 to 13 computations (0% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
| Outputs |
|---|
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
3 calls:
| 3.0ms | (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
| 2.0ms | d2 |
| 2.0ms | d1 |
| Accuracy | Segments | Branch |
|---|---|---|
| 53.2% | 1 | d1 |
| 53.2% | 1 | (+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64))) |
| 53.2% | 1 | d2 |
Compiled 13 to 13 computations (0% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 20.0ms | 0.9824173618145615 | 1.2495571554999126e+27 |
| 27.0ms | -532.6416129294325 | -0.26952924940940565 |
| 24.0ms | 304× | 0 | valid |
Compiled 166 to 223 computations (-34.3% saved)
ival-mult: 11.0ms (72.2% of total)ival-add: 3.0ms (19.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 |
| 6× | *-commutative-binary64-*.f64 |
| 2× | +-commutative-binary64-+.f64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 22 | 79 |
| 1 | 26 | 79 |
| 1× | saturated |
| Inputs |
|---|
(fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) |
(*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
(if (<=.f64 d2 #s(literal -30 binary64)) #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (if (<=.f64 d2 #s(literal 30 binary64)) #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)))) |
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
| Outputs |
|---|
(fma.f64 d1 #s(literal 30 binary64) (*.f64 d2 d1)) |
(*.f64 (+.f64 #s(literal 30 binary64) d2) d1) |
(*.f64 (+.f64 d2 #s(literal 30 binary64)) d1) |
(if (<=.f64 d2 #s(literal -30 binary64)) #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)) (if (<=.f64 d2 #s(literal 30 binary64)) #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) #s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 d1)))) |
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal 30 binary64) d1)) |
| 8 600× | lower-fma.f64 |
| 8 600× | lower-fma.f32 |
| 5 096× | lower-fma.f64 |
| 5 096× | lower-fma.f32 |
| 4 926× | lower-*.f32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 27 |
| 0 | 14 | 23 |
| 1 | 48 | 21 |
| 2 | 429 | 19 |
| 3 | 6673 | 19 |
| 0 | 8034 | 19 |
| 0 | 43 | 372 |
| 1 | 130 | 372 |
| 2 | 354 | 372 |
| 3 | 903 | 372 |
| 4 | 2853 | 372 |
| 5 | 5104 | 372 |
| 6 | 6391 | 372 |
| 7 | 6971 | 372 |
| 8 | 7138 | 372 |
| 9 | 7201 | 372 |
| 10 | 7321 | 372 |
| 0 | 8074 | 372 |
| 1× | fuel |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
Compiled 83 to 51 computations (38.6% saved)
(negabs d1)
Compiled 126 to 78 computations (38.1% saved)
Loading profile data...