
Time bar (total: 3.5s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 0 |
| 100% | 99.8% | 0% | 0.2% | 0% | 0% | 0% | 1 |
Compiled 11 to 10 computations (9.1% saved)
| 670.0ms | 8 256× | 0 | valid |
ival-sub!: 118.0ms (45.2% of total)ival-mult!: 75.0ms (28.7% of total)adjust: 34.0ms (13% of total)ival-add!: 34.0ms (13% of total)Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 48 | 145 |
| 1 | 158 | 139 |
| 1× | node-limit |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | (+.f64 x (*.f64 (-.f64 y z) (-.f64 t x))) |
Compiled 18 to 16 computations (11.1% saved)
| Inputs |
|---|
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x))) |
x |
(*.f64 (-.f64 y z) (-.f64 t x)) |
(-.f64 y z) |
y |
z |
(-.f64 t x) |
t |
| Outputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
#s(approx (+ x (* (- y z) (- t x))) (fma.f64 t (-.f64 y z) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (-.f64 y z)))))) |
#s(approx x x) |
#s(approx (* (- y z) (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) (*.f64 t (-.f64 y z)))) |
#s(approx (- t x) t) |
#s(approx (- t x) (+.f64 t (*.f64 #s(literal -1 binary64) x))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (-.f64 y z))))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) (-.f64 y z) (/.f64 (*.f64 t (-.f64 y z)) x))))) |
#s(approx (* (- y z) (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)))) |
#s(approx (* (- y z) (- t x)) (*.f64 x (fma.f64 #s(literal -1 binary64) (-.f64 y z) (/.f64 (*.f64 t (-.f64 y z)) x)))) |
#s(approx (- t x) (*.f64 #s(literal -1 binary64) x)) |
#s(approx (- t x) (*.f64 x (-.f64 (/.f64 t x) #s(literal 1 binary64)))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y (+.f64 #s(literal 1 binary64) z))))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t (-.f64 y z)) x))) (+.f64 #s(literal 1 binary64) z))))) |
#s(approx (* (- y z) (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t (-.f64 y z)) x))) z)))) |
#s(approx (- t x) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 t x)))))) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x))))) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)) (*.f64 y (-.f64 t x))))) |
#s(approx (* (- y z) (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) |
#s(approx (* (- y z) (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)) (*.f64 y (-.f64 t x)))) |
#s(approx (- y z) (*.f64 #s(literal -1 binary64) z)) |
#s(approx (- y z) (-.f64 y z)) |
#s(approx y y) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 (+.f64 t (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 z (-.f64 t x)) y) (/.f64 x y))) x))) |
#s(approx (* (- y z) (- t x)) (*.f64 y (-.f64 (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 z (-.f64 t x)) y))) x))) |
#s(approx (- y z) (*.f64 y (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 z y))))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 t x) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) y)))))) |
#s(approx (* (- y z) (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 t x) (/.f64 (*.f64 z (-.f64 t x)) y))))) |
#s(approx (- y z) (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (/.f64 z y) #s(literal 1 binary64))))) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x (*.f64 y (-.f64 t x)))) |
#s(approx (- y z) (+.f64 y (*.f64 #s(literal -1 binary64) z))) |
#s(approx z z) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 z (fma.f64 #s(literal -1 binary64) (-.f64 t x) (+.f64 (/.f64 x z) (/.f64 (*.f64 y (-.f64 t x)) z))))) |
#s(approx (* (- y z) (- t x)) (*.f64 z (fma.f64 #s(literal -1 binary64) (-.f64 t x) (/.f64 (*.f64 y (-.f64 t x)) z)))) |
#s(approx (- y z) (*.f64 z (-.f64 (/.f64 y z) #s(literal 1 binary64)))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 y (-.f64 t x))) z))) x)))) |
#s(approx (* (- y z) (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y (-.f64 t x)) z))) x)))) |
#s(approx (- y z) (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 y z)))))) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z))))) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) (*.f64 t (-.f64 y z))))) |
#s(approx (- t x) (-.f64 t x)) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 (+.f64 y (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x (-.f64 y z)) t) (/.f64 x t))) z))) |
#s(approx (* (- y z) (- t x)) (*.f64 t (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x (-.f64 y z)) t))) z))) |
#s(approx (- t x) (*.f64 t (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 x t))))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) (-.f64 y z) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)))) t)))))) |
#s(approx (* (- y z) (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) (-.f64 y z) (/.f64 (*.f64 x (-.f64 y z)) t))))) |
#s(approx (- t x) (*.f64 #s(literal -1 binary64) (*.f64 t (-.f64 (/.f64 x t) #s(literal 1 binary64))))) |
12 calls:
| Time | Variable | Point |
|---|---|---|
| 8.0ms | y | inf |
| 2.0ms | y | -inf |
| 1.0ms | z | -inf |
| 1.0ms | x | -inf |
| 1.0ms | x | inf |
| Inputs |
|---|
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x))) |
x |
(*.f64 (-.f64 y z) (-.f64 t x)) |
(-.f64 y z) |
y |
z |
(-.f64 t x) |
t |
| Outputs |
|---|
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x))) |
(+.f64 (*.f64 (-.f64 y z) (-.f64 t x)) x) |
(-.f64 x (*.f64 (neg.f64 (-.f64 y z)) (-.f64 t x))) |
(-.f64 x (neg.f64 (*.f64 (-.f64 y z) (-.f64 t x)))) |
(fma.f64 (-.f64 y z) (-.f64 t x) x) |
(fma.f64 (-.f64 t x) (-.f64 y z) x) |
x |
(*.f64 (-.f64 y z) (-.f64 t x)) |
(*.f64 (-.f64 t x) (-.f64 y z)) |
(+.f64 y (neg.f64 z)) |
(-.f64 y z) |
(neg.f64 (-.f64 z y)) |
y |
z |
(+.f64 t (neg.f64 x)) |
(-.f64 t x) |
(neg.f64 (-.f64 x t)) |
t |
Compiled 1 083 to 257 computations (76.3% saved)
7 alts after pruning (7 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 51 | 7 | 58 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 52 | 7 | 59 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | (fma.f64 (-.f64 y z) (-.f64 t x) x) |
| ▶ | 65.0% | (+.f64 x (*.f64 (-.f64 y z) #s(approx (- t x) t))) |
| 94.5% | (+.f64 x #s(approx (* (- y z) (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)) (*.f64 y (-.f64 t x))))) | |
| 95.7% | (+.f64 x #s(approx (* (- y z) (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) (*.f64 t (-.f64 y z))))) | |
| ▶ | 67.6% | #s(approx (+ x (* (- y z) (- t x))) (+.f64 x (*.f64 y (-.f64 t x)))) |
| ▶ | 51.1% | #s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
| ▶ | 49.1% | #s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
Compiled 220 to 156 computations (29.1% saved)
| Inputs |
|---|
(fma.f64 (-.f64 y z) (-.f64 t x) x) |
(-.f64 y z) |
y |
z |
(-.f64 t x) |
t |
x |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
(*.f64 t (-.f64 y z)) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
(*.f64 y (-.f64 t x)) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x (*.f64 y (-.f64 t x)))) |
(+.f64 x (*.f64 y (-.f64 t x))) |
(+.f64 x (*.f64 (-.f64 y z) #s(approx (- t x) t))) |
(*.f64 (-.f64 y z) #s(approx (- t x) t)) |
#s(approx (- t x) t) |
| Outputs |
|---|
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 t (-.f64 y z))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 t (-.f64 y z) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (-.f64 y z)))))) |
#s(approx (- t x) t) |
#s(approx (- t x) (+.f64 t (*.f64 #s(literal -1 binary64) x))) |
#s(approx x x) |
#s(approx (* y (- t x)) (*.f64 t y)) |
#s(approx (* y (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y))) |
#s(approx (+ x (* y (- t x))) (fma.f64 t y (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y))))) |
#s(approx (* (- y z) (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) (*.f64 t (-.f64 y z)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (-.f64 y z))))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) (-.f64 y z) (/.f64 (*.f64 t (-.f64 y z)) x))))) |
#s(approx (- t x) (*.f64 #s(literal -1 binary64) x)) |
#s(approx (- t x) (*.f64 x (-.f64 (/.f64 t x) #s(literal 1 binary64)))) |
#s(approx (* y (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 x y))) |
#s(approx (* y (- t x)) (*.f64 x (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 t y) x)))) |
#s(approx (+ x (* y (- t x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y)))) |
#s(approx (+ x (* y (- t x))) (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 t y) x))))) |
#s(approx (* (- y z) (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)))) |
#s(approx (* (- y z) (- t x)) (*.f64 x (fma.f64 #s(literal -1 binary64) (-.f64 y z) (/.f64 (*.f64 t (-.f64 y z)) x)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y (+.f64 #s(literal 1 binary64) z))))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t (-.f64 y z)) x))) (+.f64 #s(literal 1 binary64) z))))) |
#s(approx (- t x) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 t x)))))) |
#s(approx (* y (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t y) x)))))) |
#s(approx (+ x (* y (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y #s(literal 1 binary64))))) |
#s(approx (+ x (* y (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t y) x))) #s(literal 1 binary64))))) |
#s(approx (* (- y z) (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t (-.f64 y z)) x))) z)))) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x))))) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)) (*.f64 y (-.f64 t x))))) |
#s(approx (- y z) (*.f64 #s(literal -1 binary64) z)) |
#s(approx (- y z) (-.f64 y z)) |
#s(approx y y) |
#s(approx (* t (- y z)) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
#s(approx (* t (- y z)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 t y))) |
#s(approx (* y (- t x)) (*.f64 y (-.f64 t x))) |
#s(approx (+ x (* y (- t x))) (+.f64 x (*.f64 y (-.f64 t x)))) |
#s(approx (* (- y z) (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) |
#s(approx (* (- y z) (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)) (*.f64 y (-.f64 t x)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 y (-.f64 (+.f64 t (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 z (-.f64 t x)) y) (/.f64 x y))) x))) |
#s(approx (- y z) (*.f64 y (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 z y))))) |
#s(approx (* t (- y z)) (*.f64 y (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) y))))) |
#s(approx (+ x (* y (- t x))) (*.f64 y (-.f64 (+.f64 t (/.f64 x y)) x))) |
#s(approx (* (- y z) (- t x)) (*.f64 y (-.f64 (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 z (-.f64 t x)) y))) x))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 t x) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) y)))))) |
#s(approx (- y z) (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (/.f64 z y) #s(literal 1 binary64))))) |
#s(approx (* t (- y z)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) t (/.f64 (*.f64 t z) y))))) |
#s(approx (+ x (* y (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 t x) (*.f64 #s(literal -1 binary64) (/.f64 x y)))))) |
#s(approx (* (- y z) (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 t x) (/.f64 (*.f64 z (-.f64 t x)) y))))) |
#s(approx (- y z) (+.f64 y (*.f64 #s(literal -1 binary64) z))) |
#s(approx z z) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 z (fma.f64 #s(literal -1 binary64) (-.f64 t x) (+.f64 (/.f64 x z) (/.f64 (*.f64 y (-.f64 t x)) z))))) |
#s(approx (- y z) (*.f64 z (-.f64 (/.f64 y z) #s(literal 1 binary64)))) |
#s(approx (* t (- y z)) (*.f64 z (fma.f64 #s(literal -1 binary64) t (/.f64 (*.f64 t y) z)))) |
#s(approx (* (- y z) (- t x)) (*.f64 z (fma.f64 #s(literal -1 binary64) (-.f64 t x) (/.f64 (*.f64 y (-.f64 t x)) z)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 y (-.f64 t x))) z))) x)))) |
#s(approx (- y z) (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 y z)))))) |
#s(approx (* t (- y z)) (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t y) z)))))) |
#s(approx (* (- y z) (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y (-.f64 t x)) z))) x)))) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z))))) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) (*.f64 t (-.f64 y z))))) |
#s(approx (- t x) (-.f64 t x)) |
#s(approx (+ x (* y (- t x))) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y)))) |
#s(approx (+ x (* y (- t x))) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 t (-.f64 (+.f64 y (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x (-.f64 y z)) t) (/.f64 x t))) z))) |
#s(approx (- t x) (*.f64 t (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 x t))))) |
#s(approx (* y (- t x)) (*.f64 t (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t))))) |
#s(approx (+ x (* y (- t x))) (*.f64 t (+.f64 y (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t) (/.f64 x t))))) |
#s(approx (* (- y z) (- t x)) (*.f64 t (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x (-.f64 y z)) t))) z))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) (-.f64 y z) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)))) t)))))) |
#s(approx (- t x) (*.f64 #s(literal -1 binary64) (*.f64 t (-.f64 (/.f64 x t) #s(literal 1 binary64))))) |
#s(approx (* y (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 x y) t))))) |
#s(approx (+ x (* y (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y))) t)))))) |
#s(approx (* (- y z) (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) (-.f64 y z) (/.f64 (*.f64 x (-.f64 y z)) t))))) |
12 calls:
| Time | Variable | Point |
|---|---|---|
| 2.0ms | y | -inf |
| 1.0ms | t | -inf |
| 1.0ms | y | inf |
| 1.0ms | t | inf |
| 1.0ms | x | 0 |
| Inputs |
|---|
(fma.f64 (-.f64 y z) (-.f64 t x) x) |
(-.f64 y z) |
y |
z |
(-.f64 t x) |
t |
x |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
(*.f64 t (-.f64 y z)) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
(*.f64 y (-.f64 t x)) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x (*.f64 y (-.f64 t x)))) |
(+.f64 x (*.f64 y (-.f64 t x))) |
(+.f64 x (*.f64 (-.f64 y z) #s(approx (- t x) t))) |
(*.f64 (-.f64 y z) #s(approx (- t x) t)) |
#s(approx (- t x) t) |
| Outputs |
|---|
(+.f64 (*.f64 (-.f64 y z) (-.f64 t x)) x) |
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x))) |
(-.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (neg.f64 x)) |
(-.f64 x (*.f64 (neg.f64 (-.f64 y z)) (-.f64 t x))) |
(-.f64 x (neg.f64 (*.f64 (-.f64 y z) (-.f64 t x)))) |
(fma.f64 (-.f64 y z) (-.f64 t x) x) |
(fma.f64 (-.f64 t x) (-.f64 y z) x) |
(+.f64 y (neg.f64 z)) |
(-.f64 y z) |
(neg.f64 (-.f64 z y)) |
y |
z |
(+.f64 t (neg.f64 x)) |
(-.f64 t x) |
(neg.f64 (-.f64 x t)) |
t |
x |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 t (-.f64 y z))) |
(*.f64 t (-.f64 y z)) |
(*.f64 (-.f64 y z) t) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 y (-.f64 t x))) |
(*.f64 y (-.f64 t x)) |
(*.f64 (-.f64 t x) y) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 (-.f64 t x) y x)) |
(+.f64 x (*.f64 y (-.f64 t x))) |
(+.f64 (*.f64 y (-.f64 t x)) x) |
(-.f64 x (*.f64 (neg.f64 y) (-.f64 t x))) |
(-.f64 x (neg.f64 (*.f64 y (-.f64 t x)))) |
(fma.f64 (-.f64 t x) y x) |
(fma.f64 y (-.f64 t x) x) |
(+.f64 x (*.f64 (-.f64 y z) #s(approx (- t x) t))) |
(*.f64 (-.f64 y z) #s(approx (- t x) t)) |
#s(approx (- t x) t) |
Compiled 2 940 to 474 computations (83.9% saved)
9 alts after pruning (5 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 137 | 5 | 142 |
| Fresh | 2 | 0 | 2 |
| Picked | 1 | 4 | 5 |
| Done | 0 | 0 | 0 |
| Total | 140 | 9 | 149 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (fma.f64 (-.f64 y z) (-.f64 t x) x) |
| ✓ | 65.0% | (+.f64 x (*.f64 (-.f64 y z) #s(approx (- t x) t))) |
| ▶ | 67.6% | #s(approx (+ (* (- y z) (- t x)) x) (fma.f64 (-.f64 t x) y x)) |
| ▶ | 47.3% | #s(approx (+ x (* (- y z) (- t x))) (+.f64 x #s(approx (* y (- t x)) (*.f64 t y)))) |
| ✓ | 51.1% | #s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
| ✓ | 49.1% | #s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
| ▶ | 49.1% | #s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y)))) |
| ▶ | 31.3% | #s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
| ▶ | 46.4% | #s(approx (+ x (* (- y z) (- t x))) #s(approx (* t (- y z)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 t y)))) |
Compiled 257 to 170 computations (33.9% saved)
| Inputs |
|---|
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 (-.f64 t x) y x)) |
(fma.f64 (-.f64 t x) y x) |
(-.f64 t x) |
t |
x |
y |
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (* y (- t x)) (*.f64 t y)) |
(*.f64 t y) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x #s(approx (* y (- t x)) (*.f64 t y)))) |
(+.f64 x #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* t (- y z)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 t y)))) |
#s(approx (* t (- y z)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 t y))) |
(fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 t y)) |
#s(literal -1 binary64) |
(*.f64 t z) |
z |
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y)))) |
#s(approx (* y (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y))) |
(fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y)) |
(*.f64 x y) |
| Outputs |
|---|
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 t (-.f64 y z))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 t (-.f64 y z) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (-.f64 y z)))))) |
#s(approx (+ (* (- t x) y) x) (*.f64 t y)) |
#s(approx (+ (* (- t x) y) x) (fma.f64 t y (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y))))) |
#s(approx (- t x) t) |
#s(approx (- t x) (+.f64 t (*.f64 #s(literal -1 binary64) x))) |
#s(approx x x) |
#s(approx (* y (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y))) |
#s(approx (* x y) (*.f64 x y)) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (-.f64 y z))))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) (-.f64 y z) (/.f64 (*.f64 t (-.f64 y z)) x))))) |
#s(approx (+ (* (- t x) y) x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y)))) |
#s(approx (+ (* (- t x) y) x) (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 t y) x))))) |
#s(approx (- t x) (*.f64 #s(literal -1 binary64) x)) |
#s(approx (- t x) (*.f64 x (-.f64 (/.f64 t x) #s(literal 1 binary64)))) |
#s(approx (* y (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 x y))) |
#s(approx (* y (- t x)) (*.f64 x (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 t y) x)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y (+.f64 #s(literal 1 binary64) z))))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t (-.f64 y z)) x))) (+.f64 #s(literal 1 binary64) z))))) |
#s(approx (+ (* (- t x) y) x) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y #s(literal 1 binary64))))) |
#s(approx (+ (* (- t x) y) x) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t y) x))) #s(literal 1 binary64))))) |
#s(approx (- t x) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 t x)))))) |
#s(approx (* y (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t y) x)))))) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x))))) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)) (*.f64 y (-.f64 t x))))) |
#s(approx (+ (* (- t x) y) x) (+.f64 x (*.f64 y (-.f64 t x)))) |
#s(approx y y) |
#s(approx (* y (- t x)) (*.f64 y (-.f64 t x))) |
#s(approx (* t (- y z)) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
#s(approx (* t (- y z)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 t y))) |
#s(approx (+ (* -1 (* x y)) (* t y)) (*.f64 y (+.f64 t (*.f64 #s(literal -1 binary64) x)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 y (-.f64 (+.f64 t (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 z (-.f64 t x)) y) (/.f64 x y))) x))) |
#s(approx (+ (* (- t x) y) x) (*.f64 y (-.f64 (+.f64 t (/.f64 x y)) x))) |
#s(approx (* t (- y z)) (*.f64 y (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) y))))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 t x) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) y)))))) |
#s(approx (+ (* (- t x) y) x) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 t x) (*.f64 #s(literal -1 binary64) (/.f64 x y)))))) |
#s(approx (* t (- y z)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) t (/.f64 (*.f64 t z) y))))) |
#s(approx (+ (* -1 (* x y)) (* t y)) (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) t))))) |
#s(approx (* t z) (*.f64 t z)) |
#s(approx z z) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 z (fma.f64 #s(literal -1 binary64) (-.f64 t x) (+.f64 (/.f64 x z) (/.f64 (*.f64 y (-.f64 t x)) z))))) |
#s(approx (* t (- y z)) (*.f64 z (fma.f64 #s(literal -1 binary64) t (/.f64 (*.f64 t y) z)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 y (-.f64 t x))) z))) x)))) |
#s(approx (* t (- y z)) (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t y) z)))))) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z))))) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) (*.f64 t (-.f64 y z))))) |
#s(approx (+ (* (- t x) y) x) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y)))) |
#s(approx (+ (* (- t x) y) x) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y)))) |
#s(approx (- t x) (-.f64 t x)) |
#s(approx (+ (* -1 (* t z)) (* t y)) (*.f64 t (+.f64 y (*.f64 #s(literal -1 binary64) z)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 t (-.f64 (+.f64 y (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x (-.f64 y z)) t) (/.f64 x t))) z))) |
#s(approx (+ (* (- t x) y) x) (*.f64 t (+.f64 y (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t) (/.f64 x t))))) |
#s(approx (- t x) (*.f64 t (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 x t))))) |
#s(approx (* y (- t x)) (*.f64 t (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t))))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) (-.f64 y z) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)))) t)))))) |
#s(approx (+ (* (- t x) y) x) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y))) t)))))) |
#s(approx (- t x) (*.f64 #s(literal -1 binary64) (*.f64 t (-.f64 (/.f64 x t) #s(literal 1 binary64))))) |
#s(approx (* y (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 x y) t))))) |
#s(approx (+ (* -1 (* t z)) (* t y)) (*.f64 #s(literal -1 binary64) (*.f64 t (+.f64 z (*.f64 #s(literal -1 binary64) y))))) |
12 calls:
| Time | Variable | Point |
|---|---|---|
| 4.0ms | t | -inf |
| 2.0ms | y | -inf |
| 2.0ms | y | inf |
| 2.0ms | t | inf |
| 2.0ms | t | 0 |
| Inputs |
|---|
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 (-.f64 t x) y x)) |
(fma.f64 (-.f64 t x) y x) |
(-.f64 t x) |
t |
x |
y |
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (* y (- t x)) (*.f64 t y)) |
(*.f64 t y) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x #s(approx (* y (- t x)) (*.f64 t y)))) |
(+.f64 x #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* t (- y z)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 t y)))) |
#s(approx (* t (- y z)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 t y))) |
(fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 t y)) |
#s(literal -1 binary64) |
(*.f64 t z) |
z |
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y)))) |
#s(approx (* y (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y))) |
(fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y)) |
(*.f64 x y) |
| Outputs |
|---|
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 (-.f64 t x) y x)) |
(+.f64 (*.f64 (-.f64 t x) y) x) |
(+.f64 x (*.f64 (-.f64 t x) y)) |
(-.f64 (*.f64 (-.f64 t x) y) (neg.f64 x)) |
(-.f64 x (*.f64 (neg.f64 y) (-.f64 t x))) |
(-.f64 x (neg.f64 (*.f64 (-.f64 t x) y))) |
(fma.f64 (-.f64 t x) y x) |
(fma.f64 y (-.f64 t x) x) |
(+.f64 t (neg.f64 x)) |
(-.f64 t x) |
(neg.f64 (-.f64 x t)) |
t |
x |
y |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (* y (- t x)) (*.f64 t y)) |
(*.f64 t y) |
(*.f64 y t) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x #s(approx (* y (- t x)) (*.f64 t y)))) |
(+.f64 x #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* t (- y z)) (fma.f64 t y (neg.f64 (*.f64 t z))))) |
#s(approx (* t (- y z)) (fma.f64 t y (neg.f64 (*.f64 t z)))) |
(+.f64 (neg.f64 (*.f64 t z)) (*.f64 t y)) |
(+.f64 (*.f64 t y) (neg.f64 (*.f64 t z))) |
(-.f64 (neg.f64 (*.f64 t z)) (neg.f64 (*.f64 t y))) |
(-.f64 (neg.f64 (*.f64 t z)) (*.f64 (neg.f64 t) y)) |
(fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 t y)) |
(fma.f64 (*.f64 #s(literal -1 binary64) t) z (*.f64 t y)) |
(fma.f64 (*.f64 t z) #s(literal -1 binary64) (*.f64 t y)) |
(fma.f64 t y (neg.f64 (*.f64 t z))) |
(fma.f64 y t (neg.f64 (*.f64 t z))) |
#s(literal -1 binary64) |
(*.f64 t z) |
(*.f64 z t) |
z |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* y (- t x)) (fma.f64 t y (neg.f64 (*.f64 x y))))) |
#s(approx (* y (- t x)) (fma.f64 t y (neg.f64 (*.f64 x y)))) |
(+.f64 (neg.f64 (*.f64 x y)) (*.f64 t y)) |
(+.f64 (*.f64 t y) (neg.f64 (*.f64 x y))) |
(-.f64 (neg.f64 (*.f64 x y)) (neg.f64 (*.f64 t y))) |
(-.f64 (neg.f64 (*.f64 x y)) (*.f64 (neg.f64 t) y)) |
(fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y)) |
(fma.f64 (*.f64 #s(literal -1 binary64) x) y (*.f64 t y)) |
(fma.f64 (*.f64 x y) #s(literal -1 binary64) (*.f64 t y)) |
(fma.f64 t y (neg.f64 (*.f64 x y))) |
(fma.f64 y t (neg.f64 (*.f64 x y))) |
(*.f64 x y) |
(*.f64 y x) |
Compiled 2 629 to 433 computations (83.5% saved)
10 alts after pruning (4 fresh and 6 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 103 | 4 | 107 |
| Fresh | 0 | 0 | 0 |
| Picked | 3 | 2 | 5 |
| Done | 0 | 4 | 4 |
| Total | 106 | 10 | 116 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (fma.f64 (-.f64 y z) (-.f64 t x) x) |
| ✓ | 65.0% | (+.f64 x (*.f64 (-.f64 y z) #s(approx (- t x) t))) |
| ✓ | 67.6% | #s(approx (+ (* (- y z) (- t x)) x) (fma.f64 (-.f64 t x) y x)) |
| ▶ | 47.3% | #s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
| ▶ | 35.5% | #s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) |
| ▶ | 50.3% | #s(approx (+ (* (- y z) (- t x)) x) #s(approx (* y (- t x)) (fma.f64 t y (neg.f64 (*.f64 x y))))) |
| ▶ | 48.4% | #s(approx (+ (* (- y z) (- t x)) x) #s(approx (* t (- y z)) (fma.f64 t y (neg.f64 (*.f64 t z))))) |
| ✓ | 51.1% | #s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
| ✓ | 49.1% | #s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
| ✓ | 31.3% | #s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
Compiled 165 to 113 computations (31.5% saved)
| Inputs |
|---|
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* t (- y z)) (fma.f64 t y (neg.f64 (*.f64 t z))))) |
#s(approx (* t (- y z)) (fma.f64 t y (neg.f64 (*.f64 t z)))) |
(fma.f64 t y (neg.f64 (*.f64 t z))) |
t |
y |
(neg.f64 (*.f64 t z)) |
(*.f64 t z) |
z |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* y (- t x)) (fma.f64 t y (neg.f64 (*.f64 x y))))) |
#s(approx (* y (- t x)) (fma.f64 t y (neg.f64 (*.f64 x y)))) |
(fma.f64 t y (neg.f64 (*.f64 x y))) |
(neg.f64 (*.f64 x y)) |
(*.f64 x y) |
x |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) |
(*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x))) |
#s(literal -1 binary64) |
(*.f64 z (-.f64 t x)) |
(-.f64 t x) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
(fma.f64 #s(approx (- t x) t) y x) |
#s(approx (- t x) t) |
| Outputs |
|---|
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 t (-.f64 y z))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 t (-.f64 y z) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (-.f64 y z)))))) |
#s(approx (* y (- t x)) (*.f64 t y)) |
#s(approx (* y (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y))) |
#s(approx (neg (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 x y))) |
#s(approx (* x y) (*.f64 x y)) |
#s(approx x x) |
#s(approx (* -1 (* z (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
#s(approx (* -1 (* z (- t x))) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 x z))) |
#s(approx (* z (- t x)) (*.f64 t z)) |
#s(approx (* z (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x z) (*.f64 t z))) |
#s(approx (- t x) t) |
#s(approx (- t x) (+.f64 t (*.f64 #s(literal -1 binary64) x))) |
#s(approx (+ (* (- t x) y) x) (fma.f64 t y (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y))))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (-.f64 y z))))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) (-.f64 y z) (/.f64 (*.f64 t (-.f64 y z)) x))))) |
#s(approx (* y (- t x)) (*.f64 x (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 t y) x)))) |
#s(approx (+ (* t y) (neg (* x y))) (*.f64 x (-.f64 (/.f64 (*.f64 t y) x) y))) |
#s(approx (* -1 (* z (- t x))) (*.f64 x z)) |
#s(approx (* -1 (* z (- t x))) (*.f64 x (+.f64 z (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) x))))) |
#s(approx (* z (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 x z))) |
#s(approx (* z (- t x)) (*.f64 x (fma.f64 #s(literal -1 binary64) z (/.f64 (*.f64 t z) x)))) |
#s(approx (- t x) (*.f64 #s(literal -1 binary64) x)) |
#s(approx (- t x) (*.f64 x (-.f64 (/.f64 t x) #s(literal 1 binary64)))) |
#s(approx (+ (* (- t x) y) x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y)))) |
#s(approx (+ (* (- t x) y) x) (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 t y) x))))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y (+.f64 #s(literal 1 binary64) z))))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t (-.f64 y z)) x))) (+.f64 #s(literal 1 binary64) z))))) |
#s(approx (* y (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t y) x)))))) |
#s(approx (+ (* t y) (neg (* x y))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t y) x)) (*.f64 #s(literal -1 binary64) y))))) |
#s(approx (* -1 (* z (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) z (/.f64 (*.f64 t z) x))))) |
#s(approx (* z (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 z (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) x)))))) |
#s(approx (- t x) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 t x)))))) |
#s(approx (+ (* (- t x) y) x) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y #s(literal 1 binary64))))) |
#s(approx (+ (* (- t x) y) x) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t y) x))) #s(literal 1 binary64))))) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x))))) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)) (*.f64 y (-.f64 t x))))) |
#s(approx (* t (- y z)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 t y))) |
#s(approx (+ (* t y) (neg (* t z))) (-.f64 (*.f64 t y) (*.f64 t z))) |
#s(approx y y) |
#s(approx (* y (- t x)) (*.f64 y (-.f64 t x))) |
#s(approx (+ (* (- t x) y) x) (+.f64 x (*.f64 y (-.f64 t x)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 y (-.f64 (+.f64 t (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 z (-.f64 t x)) y) (/.f64 x y))) x))) |
#s(approx (* t (- y z)) (*.f64 y (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) y))))) |
#s(approx (+ (* (- t x) y) x) (*.f64 y (-.f64 (+.f64 t (/.f64 x y)) x))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 t x) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) y)))))) |
#s(approx (* t (- y z)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) t (/.f64 (*.f64 t z) y))))) |
#s(approx (+ (* t y) (neg (* x y))) (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) t) (*.f64 #s(literal -1 binary64) x))))) |
#s(approx (+ (* (- t x) y) x) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 t x) (*.f64 #s(literal -1 binary64) (/.f64 x y)))))) |
#s(approx z z) |
#s(approx (* -1 (* z (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) |
#s(approx (* z (- t x)) (*.f64 z (-.f64 t x))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 z (fma.f64 #s(literal -1 binary64) (-.f64 t x) (+.f64 (/.f64 x z) (/.f64 (*.f64 y (-.f64 t x)) z))))) |
#s(approx (* t (- y z)) (*.f64 z (fma.f64 #s(literal -1 binary64) t (/.f64 (*.f64 t y) z)))) |
#s(approx (+ (* t y) (neg (* t z))) (*.f64 z (-.f64 (/.f64 (*.f64 t y) z) t))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 y (-.f64 t x))) z))) x)))) |
#s(approx (* t (- y z)) (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t y) z)))))) |
#s(approx (+ (* t y) (neg (* t z))) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t y) z)) (*.f64 #s(literal -1 binary64) t))))) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z))))) |
#s(approx (+ (* (- y z) (- t x)) x) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) (*.f64 t (-.f64 y z))))) |
#s(approx (+ (* t y) (neg (* x y))) (-.f64 (*.f64 t y) (*.f64 x y))) |
#s(approx (- t x) (-.f64 t x)) |
#s(approx (+ (* (- t x) y) x) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y)))) |
#s(approx (+ (* (- t x) y) x) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 t (-.f64 (+.f64 y (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x (-.f64 y z)) t) (/.f64 x t))) z))) |
#s(approx (* y (- t x)) (*.f64 t (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t))))) |
#s(approx (* -1 (* z (- t x))) (*.f64 t (fma.f64 #s(literal -1 binary64) z (/.f64 (*.f64 x z) t)))) |
#s(approx (* z (- t x)) (*.f64 t (+.f64 z (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x z) t))))) |
#s(approx (- t x) (*.f64 t (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 x t))))) |
#s(approx (+ (* (- t x) y) x) (*.f64 t (+.f64 y (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t) (/.f64 x t))))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) (-.f64 y z) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)))) t)))))) |
#s(approx (+ (* t y) (neg (* t z))) (*.f64 #s(literal -1 binary64) (*.f64 t (-.f64 (*.f64 #s(literal -1 binary64) y) (*.f64 #s(literal -1 binary64) z))))) |
#s(approx (* y (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 x y) t))))) |
#s(approx (* -1 (* z (- t x))) (*.f64 #s(literal -1 binary64) (*.f64 t (+.f64 z (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x z) t)))))) |
#s(approx (* z (- t x)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (/.f64 (*.f64 x z) t))))) |
#s(approx (- t x) (*.f64 #s(literal -1 binary64) (*.f64 t (-.f64 (/.f64 x t) #s(literal 1 binary64))))) |
#s(approx (+ (* (- t x) y) x) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y))) t)))))) |
12 calls:
| Time | Variable | Point |
|---|---|---|
| 4.0ms | x | inf |
| 3.0ms | z | 0 |
| 2.0ms | y | -inf |
| 2.0ms | t | -inf |
| 2.0ms | x | -inf |
| Inputs |
|---|
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* t (- y z)) (fma.f64 t y (neg.f64 (*.f64 t z))))) |
#s(approx (* t (- y z)) (fma.f64 t y (neg.f64 (*.f64 t z)))) |
(fma.f64 t y (neg.f64 (*.f64 t z))) |
t |
y |
(neg.f64 (*.f64 t z)) |
(*.f64 t z) |
z |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* y (- t x)) (fma.f64 t y (neg.f64 (*.f64 x y))))) |
#s(approx (* y (- t x)) (fma.f64 t y (neg.f64 (*.f64 x y)))) |
(fma.f64 t y (neg.f64 (*.f64 x y))) |
(neg.f64 (*.f64 x y)) |
(*.f64 x y) |
x |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) |
(*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x))) |
#s(literal -1 binary64) |
(*.f64 z (-.f64 t x)) |
(-.f64 t x) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
(fma.f64 #s(approx (- t x) t) y x) |
#s(approx (- t x) t) |
| Outputs |
|---|
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* t (- y z)) (-.f64 (*.f64 t y) (*.f64 t z)))) |
#s(approx (* t (- y z)) (-.f64 (*.f64 t y) (*.f64 t z))) |
(+.f64 (neg.f64 (*.f64 t z)) (*.f64 t y)) |
(+.f64 (*.f64 t y) (neg.f64 (*.f64 t z))) |
(-.f64 (*.f64 t y) (*.f64 t z)) |
(-.f64 (*.f64 t y) (neg.f64 (neg.f64 (*.f64 t z)))) |
(fma.f64 (neg.f64 t) z (*.f64 t y)) |
(fma.f64 t (neg.f64 z) (*.f64 t y)) |
(fma.f64 t y (neg.f64 (*.f64 t z))) |
(fma.f64 y t (neg.f64 (*.f64 t z))) |
t |
y |
(*.f64 (neg.f64 t) z) |
(*.f64 t (neg.f64 z)) |
(neg.f64 (*.f64 t z)) |
(*.f64 t z) |
(*.f64 z t) |
z |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* (- t x) y) (-.f64 (*.f64 t y) (*.f64 x y)))) |
#s(approx (* (- t x) y) (-.f64 (*.f64 t y) (*.f64 x y))) |
(+.f64 (neg.f64 (*.f64 x y)) (*.f64 t y)) |
(+.f64 (*.f64 t y) (neg.f64 (*.f64 x y))) |
(-.f64 (*.f64 t y) (*.f64 x y)) |
(-.f64 (*.f64 t y) (neg.f64 (neg.f64 (*.f64 x y)))) |
(fma.f64 (neg.f64 x) y (*.f64 t y)) |
(fma.f64 x (neg.f64 y) (*.f64 t y)) |
(fma.f64 t y (neg.f64 (*.f64 x y))) |
(fma.f64 y t (neg.f64 (*.f64 x y))) |
(*.f64 (neg.f64 x) y) |
(*.f64 x (neg.f64 y)) |
(neg.f64 (*.f64 x y)) |
(*.f64 x y) |
(*.f64 y x) |
x |
#s(approx (+ (* (- y z) (- t x)) x) (neg.f64 (*.f64 z (-.f64 t x)))) |
(*.f64 (*.f64 #s(literal -1 binary64) z) (-.f64 t x)) |
(*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x))) |
(*.f64 (*.f64 z (-.f64 t x)) #s(literal -1 binary64)) |
(neg.f64 (*.f64 z (-.f64 t x))) |
#s(literal -1 binary64) |
(*.f64 z (-.f64 t x)) |
(*.f64 (-.f64 t x) z) |
(+.f64 t (neg.f64 x)) |
(-.f64 t x) |
(neg.f64 (-.f64 x t)) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
(fma.f64 #s(approx (- t x) t) y x) |
#s(approx (- t x) t) |
Compiled 2 845 to 500 computations (82.4% saved)
11 alts after pruning (4 fresh and 7 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 108 | 4 | 112 |
| Fresh | 0 | 0 | 0 |
| Picked | 3 | 1 | 4 |
| Done | 0 | 6 | 6 |
| Total | 111 | 11 | 122 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (fma.f64 (-.f64 y z) (-.f64 t x) x) |
| ✓ | 65.0% | (+.f64 x (*.f64 (-.f64 y z) #s(approx (- t x) t))) |
| ✓ | 67.6% | #s(approx (+ (* (- y z) (- t x)) x) (fma.f64 (-.f64 t x) y x)) |
| ✓ | 47.3% | #s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
| 35.5% | #s(approx (+ (* (- y z) (- t x)) x) (neg.f64 (*.f64 z (-.f64 t x)))) | |
| 49.1% | #s(approx (+ (* (- y z) (- t x)) x) #s(approx (* (- t x) y) (-.f64 (*.f64 t y) (*.f64 x y)))) | |
| 46.4% | #s(approx (+ (* (- y z) (- t x)) x) #s(approx (* t (- y z)) (-.f64 (*.f64 t y) (*.f64 t z)))) | |
| 18.0% | #s(approx (+ (* (- y z) (- t x)) x) #s(approx (* -1 (* z (- t x))) (*.f64 x z))) | |
| ✓ | 51.1% | #s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
| ✓ | 49.1% | #s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
| ✓ | 31.3% | #s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
Compiled 185 to 126 computations (31.9% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
| Outputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
| Inputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* -1 (* z (- t x))) (*.f64 x z))) |
| Outputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* -1 (* z (- t x))) (*.f64 x z))) |
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
| Inputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* -1 (* z (- t x))) (*.f64 x z))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
| Outputs |
|---|
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* -1 (* z (- t x))) (*.f64 x z))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* -1 (* z (- t x))) (*.f64 x z))) |
| Inputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* -1 (* z (- t x))) (*.f64 x z))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
| Outputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* -1 (* z (- t x))) (*.f64 x z))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
| Inputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* -1 (* z (- t x))) (*.f64 x z))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x #s(approx (* y (- t x)) (*.f64 t y)))) |
| Outputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
| Inputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* -1 (* z (- t x))) (*.f64 x z))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x #s(approx (* y (- t x)) (*.f64 t y)))) |
#s(approx (+ (* (- y z) (- t x)) x) (neg.f64 (*.f64 z (-.f64 t x)))) |
| Outputs |
|---|
#s(approx (+ (* (- y z) (- t x)) x) (neg.f64 (*.f64 z (-.f64 t x)))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
#s(approx (+ (* (- y z) (- t x)) x) (neg.f64 (*.f64 z (-.f64 t x)))) |
| Inputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* -1 (* z (- t x))) (*.f64 x z))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x #s(approx (* y (- t x)) (*.f64 t y)))) |
#s(approx (+ (* (- y z) (- t x)) x) (neg.f64 (*.f64 z (-.f64 t x)))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 (-.f64 t x) y x)) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x (*.f64 y (-.f64 t x)))) |
(+.f64 x (*.f64 (-.f64 y z) #s(approx (- t x) t))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* t (- y z)) (-.f64 (*.f64 t y) (*.f64 t z)))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* (- t x) y) (-.f64 (*.f64 t y) (*.f64 x y)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* t (- y z)) (fma.f64 t y (neg.f64 (*.f64 t z))))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* y (- t x)) (fma.f64 t y (neg.f64 (*.f64 x y))))) |
| Outputs |
|---|
#s(approx (+ (* (- y z) (- t x)) x) (neg.f64 (*.f64 z (-.f64 t x)))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 (-.f64 t x) y x)) |
#s(approx (+ (* (- y z) (- t x)) x) (neg.f64 (*.f64 z (-.f64 t x)))) |
| Inputs |
|---|
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (*.f64 t y))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* -1 (* z (- t x))) (*.f64 x z))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 #s(approx (- t x) t) y x)) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 t (-.f64 y z))) |
#s(approx (+ x (* (- y z) (- t x))) (*.f64 y (-.f64 t x))) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x #s(approx (* y (- t x)) (*.f64 t y)))) |
#s(approx (+ (* (- y z) (- t x)) x) (neg.f64 (*.f64 z (-.f64 t x)))) |
#s(approx (+ (* (- y z) (- t x)) x) (fma.f64 (-.f64 t x) y x)) |
#s(approx (+ x (* (- y z) (- t x))) (+.f64 x (*.f64 y (-.f64 t x)))) |
(+.f64 x (*.f64 (-.f64 y z) #s(approx (- t x) t))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* t (- y z)) (-.f64 (*.f64 t y) (*.f64 t z)))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* (- t x) y) (-.f64 (*.f64 t y) (*.f64 x y)))) |
#s(approx (+ (* (- y z) (- t x)) x) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* t (- y z)) (fma.f64 t y (neg.f64 (*.f64 t z))))) |
#s(approx (+ (* (- y z) (- t x)) x) #s(approx (* y (- t x)) (fma.f64 t y (neg.f64 (*.f64 x y))))) |
(fma.f64 (-.f64 y z) (-.f64 t x) x) |
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* t (- y z)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 t y)))) |
#s(approx (+ x (* (- y z) (- t x))) #s(approx (* y (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 t y)))) |
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x))) |
(+.f64 x #s(approx (* (- y z) (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) (*.f64 t (-.f64 y z))))) |
(+.f64 x #s(approx (* (- y z) (- t x)) (fma.f64 #s(literal -1 binary64) (*.f64 z (-.f64 t x)) (*.f64 y (-.f64 t x))))) |
| Outputs |
|---|
(fma.f64 (-.f64 y z) (-.f64 t x) x) |
41 calls:
| 52.0ms | x |
| 45.0ms | (-.f64 y z) |
| 13.0ms | y |
| 12.0ms | (+.f64 x (*.f64 (-.f64 y z) (-.f64 t x))) |
| 12.0ms | t |
| Accuracy | Segments | Branch |
|---|---|---|
| 31.3% | 1 | (-.f64 y z) |
| 31.3% | 1 | t |
| 31.3% | 1 | x |
| 31.3% | 1 | z |
| 31.3% | 1 | y |
| 31.3% | 1 | (-.f64 y z) |
| 31.3% | 1 | (+.f64 x (*.f64 (-.f64 y z) (-.f64 t x))) |
| 37.2% | 3 | t |
| 37.5% | 2 | x |
| 40.4% | 3 | y |
| 39.6% | 3 | z |
| 47.3% | 1 | t |
| 47.3% | 1 | (+.f64 x (*.f64 (-.f64 y z) (-.f64 t x))) |
| 51.2% | 2 | x |
| 47.3% | 1 | (-.f64 y z) |
| 55.6% | 3 | z |
| 57.5% | 3 | t |
| 61.1% | 4 | x |
| 63.9% | 4 | z |
| 61.3% | 3 | (-.f64 y z) |
| 53.3% | 2 | y |
| 59.4% | 3 | (+.f64 x (*.f64 (-.f64 y z) (-.f64 t x))) |
| 71.9% | 5 | y |
| 71.4% | 6 | z |
| 71.4% | 5 | (-.f64 y z) |
| 66.5% | 5 | x |
| 62.4% | 3 | t |
| 73.4% | 3 | y |
| 76.7% | 5 | z |
| 75.4% | 4 | (-.f64 y z) |
| 69.3% | 2 | (+.f64 x (*.f64 (-.f64 y z) (-.f64 t x))) |
| 80.2% | 4 | x |
| 82.0% | 3 | y |
| 85.0% | 3 | z |
| 79.0% | 3 | t |
| 100.0% | 1 | (-.f64 y z) |
| 100.0% | 1 | (+.f64 x (*.f64 (-.f64 y z) (-.f64 t x))) |
| 100.0% | 1 | x |
| 100.0% | 1 | y |
| 100.0% | 1 | z |
| 100.0% | 1 | t |
Compiled 482 to 267 computations (44.6% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 90.0ms | 1.3664279689782154e-8 | 0.08813073223729923 |
| 8.0ms | -2.1790262476251366e+60 | -7.238735948852829e+58 |
| 89.0ms | 256× | 0 | valid |
Compiled 524 to 415 computations (20.8% saved)
ival-sub!: 1.0ms (31.1% of total)ival-add!: 1.0ms (31.1% of total)ival-mult!: 1.0ms (31.1% of total)adjust: 0.0ms (0% of total)| 4× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 1.0ms | 1.3664279689782154e-8 | 0.08813073223729923 |
| 10.0ms | 9.17588663295966e-233 | 1.0948299138860739e-229 |
| 8.0ms | -6.248318106023208e-100 | -9.054427900620871e-102 |
| 1.0ms | -2.1790262476251366e+60 | -7.238735948852829e+58 |
| 9.0ms | 240× | 0 | valid |
Compiled 1 003 to 775 computations (22.7% saved)
ival-sub!: 1.0ms (32.9% of total)ival-add!: 1.0ms (32.9% of total)ival-mult!: 1.0ms (32.9% of total)adjust: 0.0ms (0% of total)| 4× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 57.0ms | 3.004660848627727e-12 | 1.32594575287058 |
| 6.0ms | -2.738703498387765e-284 | -1.3361387790632026e-284 |
| 12.0ms | -9.624298035512239e-166 | -1.1742616829842143e-166 |
| 23.0ms | -2.881391893201234 | -0.1933019953716945 |
| 56.0ms | 432× | 0 | valid |
Compiled 903 to 663 computations (26.6% saved)
ival-sub!: 4.0ms (49.3% of total)ival-mult!: 3.0ms (36.9% of total)ival-add!: 2.0ms (24.6% of total)adjust: 0.0ms (0% of total)| 3× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 13.0ms | 2.3409333181674568e-27 | 3.9704768648445595e-19 |
| 12.0ms | -7.860666149130995e+69 | -9.263129807620255e+68 |
| 40.0ms | -7.420954637442197e+237 | -2.355395400609932e+237 |
| 48.0ms | 320× | 0 | valid |
Compiled 723 to 528 computations (27% saved)
ival-mult!: 32.0ms (90.5% of total)ival-sub!: 2.0ms (5.7% of total)ival-add!: 1.0ms (2.8% of total)adjust: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 16.0ms | 1.4087593630182383e+61 | 1.6485357708871242e+62 |
| 1.0ms | -7.860666149130995e+69 | -9.263129807620255e+68 |
| 10.0ms | 96× | 0 | valid |
Compiled 480 to 339 computations (29.4% saved)
ival-sub!: 1.0ms (43.2% of total)ival-mult!: 1.0ms (43.2% of total)adjust: 0.0ms (0% of total)ival-add!: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 52.0ms | 7.729629075863818e+25 | 1.6938417297117987e+27 |
| 16.0ms | -1.9180343011681953e-19 | -4.526777525777246e-21 |
| 50.0ms | 224× | 0 | valid |
Compiled 572 to 407 computations (28.8% saved)
ival-sub!: 33.0ms (90.3% of total)ival-mult!: 2.0ms (5.5% of total)ival-add!: 1.0ms (2.7% of total)adjust: 0.0ms (0% of total)| 1× | fuel |
Compiled 492 to 79 computations (83.9% saved)
Compiled 501 to 87 computations (82.6% saved)
Loading profile data...