
Time bar (total: 18.2s)
| 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 9 to 9 computations (0% saved)
| 748.0ms | 8 256× | 0 | valid |
ival-mult!: 199.0ms (71.9% of total)ival-sub!: 76.0ms (27.5% of total)adjust: 2.0ms (0.7% of total)Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 37 | 109 |
| 1 | 106 | 109 |
| 2 | 216 | 109 |
| 3 | 355 | 109 |
| 4 | 356 | 109 |
| 1× | saturated |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 98.4% | (-.f64 (*.f64 x y) (*.f64 z t)) |
(sort x y)
(sort z t)
Compiled 14 to 14 computations (0% saved)
| Inputs |
|---|
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
x |
y |
(*.f64 z t) |
z |
t |
| Outputs |
|---|
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
#s(approx (- (* x y) (* z t)) (-.f64 (*.f64 x y) (*.f64 t z))) |
#s(approx (* x y) (*.f64 x y)) |
#s(approx x x) |
#s(approx (- (* x y) (* z t)) (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) x))))) |
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 t z) x))))) |
#s(approx y y) |
#s(approx (- (* x y) (* z t)) (*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) y))))) |
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (/.f64 (*.f64 t z) y))))) |
#s(approx (- (* x y) (* z t)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 x y))) |
#s(approx (* z t) (*.f64 t z)) |
#s(approx z z) |
#s(approx (- (* x y) (* z t)) (*.f64 z (-.f64 (/.f64 (*.f64 x y) z) t))) |
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z)) (*.f64 #s(literal -1 binary64) t))))) |
#s(approx t t) |
#s(approx (- (* x y) (* z t)) (*.f64 t (-.f64 (/.f64 (*.f64 x y) t) z))) |
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t)) (*.f64 #s(literal -1 binary64) z))))) |
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 31.0ms | z | @ | inf | ((- (* x y) (* z t)) (* x y) x y (* z t) z t) |
| 2.0ms | z | @ | -inf | ((- (* x y) (* z t)) (* x y) x y (* z t) z t) |
| 2.0ms | x | @ | -inf | ((- (* x y) (* z t)) (* x y) x y (* z t) z t) |
| 2.0ms | x | @ | inf | ((- (* x y) (* z t)) (* x y) x y (* z t) z t) |
| 1.0ms | y | @ | -inf | ((- (* x y) (* z t)) (* x y) x y (* z t) z t) |
| Inputs |
|---|
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
x |
y |
(*.f64 z t) |
z |
t |
| Outputs |
|---|
(+.f64 (neg.f64 (*.f64 z t)) (*.f64 x y)) |
(+.f64 (*.f64 x y) (neg.f64 (*.f64 z t))) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(-.f64 (neg.f64 (*.f64 z t)) (neg.f64 (*.f64 x y))) |
(fma.f64 (neg.f64 z) t (*.f64 x y)) |
(fma.f64 (neg.f64 t) z (*.f64 x y)) |
(fma.f64 z (neg.f64 t) (*.f64 x y)) |
(fma.f64 t (neg.f64 z) (*.f64 x y)) |
(fma.f64 y x (neg.f64 (*.f64 z t))) |
(fma.f64 x y (neg.f64 (*.f64 z t))) |
(fma.f64 (neg.f64 y) (neg.f64 x) (neg.f64 (*.f64 z t))) |
(fma.f64 (neg.f64 x) (neg.f64 y) (neg.f64 (*.f64 z t))) |
(neg.f64 (-.f64 (*.f64 z t) (*.f64 x y))) |
(*.f64 x y) |
(*.f64 y x) |
(*.f64 (neg.f64 x) (neg.f64 y)) |
(*.f64 (neg.f64 y) (neg.f64 x)) |
(neg.f64 (neg.f64 (*.f64 x y))) |
x |
(neg.f64 (neg.f64 x)) |
y |
(neg.f64 (neg.f64 y)) |
(*.f64 z t) |
(*.f64 t z) |
(*.f64 (neg.f64 z) (neg.f64 t)) |
(*.f64 (neg.f64 t) (neg.f64 z)) |
(neg.f64 (neg.f64 (*.f64 z t))) |
z |
(neg.f64 (neg.f64 z)) |
t |
(neg.f64 (neg.f64 t)) |
Compiled 210 to 116 computations (44.8% saved)
4 alts after pruning (3 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 38 | 3 | 41 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 38 | 4 | 42 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 98.8% | (fma.f64 (neg.f64 z) t (*.f64 x y)) |
| ▶ | 99.6% | (fma.f64 y x (neg.f64 (*.f64 z t))) |
| ✓ | 98.4% | (-.f64 (*.f64 x y) (*.f64 z t)) |
| ▶ | 52.0% | #s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
Compiled 32 to 32 computations (0% saved)
| Inputs |
|---|
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
(*.f64 #s(literal -1 binary64) (*.f64 t z)) |
#s(literal -1 binary64) |
(*.f64 t z) |
t |
z |
(fma.f64 y x (neg.f64 (*.f64 z t))) |
y |
x |
(neg.f64 (*.f64 z t)) |
(*.f64 z t) |
(fma.f64 (neg.f64 z) t (*.f64 x y)) |
(neg.f64 z) |
(*.f64 x y) |
| Outputs |
|---|
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
#s(approx (- (* x y) (* z t)) (-.f64 (*.f64 x y) (*.f64 t z))) |
#s(approx x x) |
#s(approx (+ (* (neg z) t) (* x y)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 x y))) |
#s(approx (* x y) (*.f64 x y)) |
#s(approx (- (* x y) (* z t)) (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) x))))) |
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 t z) x))))) |
#s(approx y y) |
#s(approx (- (* x y) (* z t)) (*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) y))))) |
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (/.f64 (*.f64 t z) y))))) |
#s(approx (* t z) (*.f64 t z)) |
#s(approx z z) |
#s(approx (neg z) (*.f64 #s(literal -1 binary64) z)) |
#s(approx (- (* x y) (* z t)) (*.f64 z (-.f64 (/.f64 (*.f64 x y) z) t))) |
#s(approx (+ (* (neg z) t) (* x y)) (*.f64 z (fma.f64 #s(literal -1 binary64) t (/.f64 (*.f64 x y) z)))) |
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z)) (*.f64 #s(literal -1 binary64) t))))) |
#s(approx (+ (* (neg z) t) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z)))))) |
#s(approx t t) |
#s(approx (- (* x y) (* z t)) (*.f64 t (-.f64 (/.f64 (*.f64 x y) t) z))) |
#s(approx (+ (* (neg z) t) (* x y)) (*.f64 t (fma.f64 #s(literal -1 binary64) z (/.f64 (*.f64 x y) t)))) |
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t)) (*.f64 #s(literal -1 binary64) z))))) |
#s(approx (+ (* (neg z) t) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 t (+.f64 z (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t)))))) |
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | -inf | ((- (* x y) (* z t)) (* -1 (* t z)) -1 (* t z) t z (+ (* y x) (neg (* z t))) y x (neg (* z t)) (* z t) (+ (* (neg z) t) (* x y)) (neg z) (* x y)) |
| 1.0ms | z | @ | inf | ((- (* x y) (* z t)) (* -1 (* t z)) -1 (* t z) t z (+ (* y x) (neg (* z t))) y x (neg (* z t)) (* z t) (+ (* (neg z) t) (* x y)) (neg z) (* x y)) |
| 1.0ms | t | @ | -inf | ((- (* x y) (* z t)) (* -1 (* t z)) -1 (* t z) t z (+ (* y x) (neg (* z t))) y x (neg (* z t)) (* z t) (+ (* (neg z) t) (* x y)) (neg z) (* x y)) |
| 1.0ms | t | @ | inf | ((- (* x y) (* z t)) (* -1 (* t z)) -1 (* t z) t z (+ (* y x) (neg (* z t))) y x (neg (* z t)) (* z t) (+ (* (neg z) t) (* x y)) (neg z) (* x y)) |
| 1.0ms | x | @ | -inf | ((- (* x y) (* z t)) (* -1 (* t z)) -1 (* t z) t z (+ (* y x) (neg (* z t))) y x (neg (* z t)) (* z t) (+ (* (neg z) t) (* x y)) (neg z) (* x y)) |
| Inputs |
|---|
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
(*.f64 #s(literal -1 binary64) (*.f64 t z)) |
#s(literal -1 binary64) |
(*.f64 t z) |
t |
z |
(fma.f64 y x (neg.f64 (*.f64 z t))) |
y |
x |
(neg.f64 (*.f64 z t)) |
(*.f64 z t) |
(fma.f64 (neg.f64 z) t (*.f64 x y)) |
(neg.f64 z) |
(*.f64 x y) |
| Outputs |
|---|
#s(approx (- (* y x) (* z t)) (neg.f64 (*.f64 t z))) |
(*.f64 #s(literal -1 binary64) (*.f64 t z)) |
(*.f64 (neg.f64 z) t) |
(*.f64 (neg.f64 t) z) |
(*.f64 (*.f64 t z) #s(literal -1 binary64)) |
(*.f64 z (neg.f64 t)) |
(*.f64 t (neg.f64 z)) |
(*.f64 (neg.f64 (*.f64 t z)) (neg.f64 #s(literal -1 binary64))) |
(*.f64 (neg.f64 #s(literal -1 binary64)) (neg.f64 (*.f64 t z))) |
(neg.f64 (*.f64 t z)) |
#s(literal -1 binary64) |
(*.f64 (neg.f64 #s(literal -1 binary64)) #s(literal -1 binary64)) |
(*.f64 #s(literal -1 binary64) (neg.f64 #s(literal -1 binary64))) |
(neg.f64 (neg.f64 #s(literal -1 binary64))) |
(pow.f64 #s(literal -1 binary64) #s(literal 3 binary64)) |
(pow.f64 #s(literal -1 binary64) (+.f64 #s(literal 2 binary64) #s(literal 1 binary64))) |
(pow.f64 #s(literal -1 binary64) (+.f64 #s(literal 3 binary64) #s(literal 2 binary64))) |
(pow.f64 #s(literal -1 binary64) (fma.f64 #s(literal 2 binary64) #s(literal 2 binary64) #s(literal 3 binary64))) |
(pow.f64 #s(literal -1 binary64) (+.f64 #s(literal 2 binary64) #s(literal 3 binary64))) |
(pow.f64 #s(literal -1 binary64) (fma.f64 #s(literal 2 binary64) #s(literal 2 binary64) #s(literal 1 binary64))) |
(pow.f64 #s(literal -1 binary64) (fma.f64 #s(literal 2 binary64) #s(literal 2 binary64) (+.f64 #s(literal 2 binary64) #s(literal 1 binary64)))) |
(pow.f64 #s(literal -1 binary64) (+.f64 (+.f64 #s(literal 2 binary64) #s(literal 1 binary64)) (+.f64 #s(literal 2 binary64) #s(literal 2 binary64)))) |
(pow.f64 #s(literal -1 binary64) (+.f64 (+.f64 #s(literal 2 binary64) #s(literal 1 binary64)) #s(literal 2 binary64))) |
(pow.f64 #s(literal -1 binary64) (+.f64 #s(literal 3 binary64) (+.f64 #s(literal 2 binary64) #s(literal 2 binary64)))) |
(pow.f64 #s(literal -1 binary64) (+.f64 #s(literal 2 binary64) (+.f64 #s(literal 2 binary64) #s(literal 1 binary64)))) |
(*.f64 t z) |
(*.f64 z t) |
(*.f64 (neg.f64 #s(literal -1 binary64)) (*.f64 t z)) |
(*.f64 (neg.f64 z) (neg.f64 t)) |
(*.f64 (neg.f64 t) (neg.f64 z)) |
(*.f64 (*.f64 t z) (neg.f64 #s(literal -1 binary64))) |
(*.f64 (neg.f64 (*.f64 t z)) #s(literal -1 binary64)) |
(*.f64 #s(literal -1 binary64) (neg.f64 (*.f64 t z))) |
(neg.f64 (neg.f64 (*.f64 t z))) |
t |
(*.f64 (neg.f64 #s(literal -1 binary64)) t) |
(*.f64 (neg.f64 t) #s(literal -1 binary64)) |
(*.f64 #s(literal -1 binary64) (neg.f64 t)) |
(*.f64 t (neg.f64 #s(literal -1 binary64))) |
(neg.f64 (neg.f64 t)) |
z |
(*.f64 (neg.f64 #s(literal -1 binary64)) z) |
(*.f64 (neg.f64 z) #s(literal -1 binary64)) |
(*.f64 #s(literal -1 binary64) (neg.f64 z)) |
(*.f64 z (neg.f64 #s(literal -1 binary64))) |
(neg.f64 (neg.f64 z)) |
(+.f64 (neg.f64 (*.f64 t z)) (*.f64 x y)) |
(+.f64 (*.f64 x y) (neg.f64 (*.f64 t z))) |
(-.f64 (*.f64 x y) (*.f64 t z)) |
(-.f64 (neg.f64 (*.f64 t z)) (neg.f64 (*.f64 x y))) |
(fma.f64 (neg.f64 z) t (*.f64 x y)) |
(fma.f64 (neg.f64 t) z (*.f64 x y)) |
(fma.f64 (*.f64 t z) #s(literal -1 binary64) (*.f64 x y)) |
(fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 x y)) |
(fma.f64 z (neg.f64 t) (*.f64 x y)) |
(fma.f64 t (neg.f64 z) (*.f64 x y)) |
(fma.f64 y x (neg.f64 (*.f64 t z))) |
(fma.f64 (neg.f64 (*.f64 t z)) (neg.f64 #s(literal -1 binary64)) (*.f64 x y)) |
(fma.f64 (neg.f64 #s(literal -1 binary64)) (neg.f64 (*.f64 t z)) (*.f64 x y)) |
(fma.f64 x y (neg.f64 (*.f64 t z))) |
(fma.f64 (neg.f64 y) (neg.f64 x) (neg.f64 (*.f64 t z))) |
(fma.f64 (neg.f64 x) (neg.f64 y) (neg.f64 (*.f64 t z))) |
(neg.f64 (-.f64 (*.f64 t z) (*.f64 x y))) |
y |
(neg.f64 (neg.f64 y)) |
x |
(neg.f64 (neg.f64 x)) |
(*.f64 #s(literal -1 binary64) (*.f64 t z)) |
(*.f64 (neg.f64 z) t) |
(*.f64 (neg.f64 t) z) |
(*.f64 (*.f64 t z) #s(literal -1 binary64)) |
(*.f64 z (neg.f64 t)) |
(*.f64 t (neg.f64 z)) |
(*.f64 (neg.f64 (*.f64 t z)) (neg.f64 #s(literal -1 binary64))) |
(*.f64 (neg.f64 #s(literal -1 binary64)) (neg.f64 (*.f64 t z))) |
(neg.f64 (*.f64 t z)) |
(*.f64 t z) |
(*.f64 z t) |
(*.f64 (neg.f64 #s(literal -1 binary64)) (*.f64 t z)) |
(*.f64 (neg.f64 z) (neg.f64 t)) |
(*.f64 (neg.f64 t) (neg.f64 z)) |
(*.f64 (*.f64 t z) (neg.f64 #s(literal -1 binary64))) |
(*.f64 (neg.f64 (*.f64 t z)) #s(literal -1 binary64)) |
(*.f64 #s(literal -1 binary64) (neg.f64 (*.f64 t z))) |
(neg.f64 (neg.f64 (*.f64 t z))) |
(+.f64 (neg.f64 (*.f64 t z)) (*.f64 x y)) |
(+.f64 (*.f64 x y) (neg.f64 (*.f64 t z))) |
(-.f64 (*.f64 x y) (*.f64 t z)) |
(-.f64 (neg.f64 (*.f64 t z)) (neg.f64 (*.f64 x y))) |
(fma.f64 (neg.f64 z) t (*.f64 x y)) |
(fma.f64 (neg.f64 t) z (*.f64 x y)) |
(fma.f64 (*.f64 t z) #s(literal -1 binary64) (*.f64 x y)) |
(fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 x y)) |
(fma.f64 z (neg.f64 t) (*.f64 x y)) |
(fma.f64 t (neg.f64 z) (*.f64 x y)) |
(fma.f64 y x (neg.f64 (*.f64 t z))) |
(fma.f64 (neg.f64 (*.f64 t z)) (neg.f64 #s(literal -1 binary64)) (*.f64 x y)) |
(fma.f64 (neg.f64 #s(literal -1 binary64)) (neg.f64 (*.f64 t z)) (*.f64 x y)) |
(fma.f64 x y (neg.f64 (*.f64 t z))) |
(fma.f64 (neg.f64 y) (neg.f64 x) (neg.f64 (*.f64 t z))) |
(fma.f64 (neg.f64 x) (neg.f64 y) (neg.f64 (*.f64 t z))) |
(neg.f64 (-.f64 (*.f64 t z) (*.f64 x y))) |
(*.f64 z #s(literal -1 binary64)) |
(*.f64 #s(literal -1 binary64) z) |
(*.f64 (neg.f64 #s(literal -1 binary64)) (neg.f64 z)) |
(*.f64 (neg.f64 z) (neg.f64 #s(literal -1 binary64))) |
(neg.f64 z) |
(*.f64 x y) |
(*.f64 y x) |
(*.f64 (neg.f64 x) (neg.f64 y)) |
(*.f64 (neg.f64 y) (neg.f64 x)) |
(neg.f64 (neg.f64 (*.f64 x y))) |
Compiled 558 to 331 computations (40.7% saved)
4 alts after pruning (1 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 115 | 1 | 116 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 2 | 3 |
| Done | 0 | 1 | 1 |
| Total | 116 | 4 | 120 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 98.8% | (fma.f64 (neg.f64 z) t (*.f64 x y)) |
| ✓ | 99.6% | (fma.f64 y x (neg.f64 (*.f64 z t))) |
| ✓ | 98.4% | (-.f64 (*.f64 x y) (*.f64 z t)) |
| ▶ | 52.0% | #s(approx (- (* y x) (* z t)) (neg.f64 (*.f64 t z))) |
Compiled 31 to 31 computations (0% saved)
| Inputs |
|---|
#s(approx (- (* y x) (* z t)) (neg.f64 (*.f64 t z))) |
(neg.f64 (*.f64 t z)) |
(*.f64 t z) |
t |
z |
| Outputs |
|---|
#s(approx (- (* y x) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
#s(approx (- (* y x) (* z t)) (-.f64 (*.f64 x y) (*.f64 t z))) |
#s(approx (- (* y x) (* z t)) (*.f64 x y)) |
#s(approx (- (* y x) (* z t)) (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) x))))) |
#s(approx (- (* y x) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 t z) x))))) |
#s(approx (- (* y x) (* z t)) (*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) y))))) |
#s(approx (- (* y x) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (/.f64 (*.f64 t z) y))))) |
#s(approx (- (* y x) (* z t)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 x y))) |
#s(approx (* t z) (*.f64 t z)) |
#s(approx z z) |
#s(approx (- (* y x) (* z t)) (*.f64 z (-.f64 (/.f64 (*.f64 x y) z) t))) |
#s(approx (- (* y x) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z)) (*.f64 #s(literal -1 binary64) t))))) |
#s(approx t t) |
#s(approx (- (* y x) (* z t)) (*.f64 t (-.f64 (/.f64 (*.f64 x y) t) z))) |
#s(approx (- (* y x) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t)) (*.f64 #s(literal -1 binary64) z))))) |
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 6.0ms | y | @ | inf | ((- (* y x) (* z t)) (neg (* t z)) (* t z) t z) |
| 1.0ms | t | @ | -inf | ((- (* y x) (* z t)) (neg (* t z)) (* t z) t z) |
| 1.0ms | t | @ | inf | ((- (* y x) (* z t)) (neg (* t z)) (* t z) t z) |
| 1.0ms | z | @ | -inf | ((- (* y x) (* z t)) (neg (* t z)) (* t z) t z) |
| 0.0ms | x | @ | 0 | ((- (* y x) (* z t)) (neg (* t z)) (* t z) t z) |
| Inputs |
|---|
#s(approx (- (* y x) (* z t)) (neg.f64 (*.f64 t z))) |
(neg.f64 (*.f64 t z)) |
(*.f64 t z) |
t |
z |
| Outputs |
|---|
#s(approx (- (* y x) (* z t)) (neg.f64 (*.f64 t z))) |
(*.f64 (neg.f64 z) t) |
(*.f64 (neg.f64 t) z) |
(*.f64 z (neg.f64 t)) |
(*.f64 t (neg.f64 z)) |
(neg.f64 (*.f64 t z)) |
(*.f64 t z) |
(*.f64 z t) |
(*.f64 (neg.f64 z) (neg.f64 t)) |
(*.f64 (neg.f64 t) (neg.f64 z)) |
(neg.f64 (neg.f64 (*.f64 t z))) |
t |
(neg.f64 (neg.f64 t)) |
z |
(neg.f64 (neg.f64 z)) |
Compiled 160 to 98 computations (38.8% saved)
5 alts after pruning (1 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 24 | 1 | 25 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 3 | 3 |
| Total | 24 | 5 | 29 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 98.8% | (fma.f64 (neg.f64 z) t (*.f64 x y)) |
| ✓ | 99.6% | (fma.f64 y x (neg.f64 (*.f64 z t))) |
| ✓ | 98.4% | (-.f64 (*.f64 x y) (*.f64 z t)) |
| ▶ | 50.2% | #s(approx (- (* y x) (* z t)) (*.f64 x y)) |
| ✓ | 52.0% | #s(approx (- (* y x) (* z t)) (neg.f64 (*.f64 t z))) |
Compiled 40 to 40 computations (0% saved)
| Inputs |
|---|
#s(approx (- (* y x) (* z t)) (*.f64 x y)) |
(*.f64 x y) |
x |
y |
| Outputs |
|---|
#s(approx (- (* y x) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
#s(approx (- (* y x) (* z t)) (-.f64 (*.f64 x y) (*.f64 t z))) |
#s(approx (* x y) (*.f64 x y)) |
#s(approx x x) |
#s(approx (- (* y x) (* z t)) (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) x))))) |
#s(approx (- (* y x) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 t z) x))))) |
#s(approx y y) |
#s(approx (- (* y x) (* z t)) (*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) y))))) |
#s(approx (- (* y x) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (/.f64 (*.f64 t z) y))))) |
#s(approx (- (* y x) (* z t)) (fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 x y))) |
#s(approx (- (* y x) (* z t)) (*.f64 z (-.f64 (/.f64 (*.f64 x y) z) t))) |
#s(approx (- (* y x) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z)) (*.f64 #s(literal -1 binary64) t))))) |
#s(approx (- (* y x) (* z t)) (*.f64 t (-.f64 (/.f64 (*.f64 x y) t) z))) |
#s(approx (- (* y x) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t)) (*.f64 #s(literal -1 binary64) z))))) |
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | -inf | ((- (* y x) (* z t)) (* x y) x y) |
| 2.0ms | y | @ | -inf | ((- (* y x) (* z t)) (* x y) x y) |
| 1.0ms | x | @ | inf | ((- (* y x) (* z t)) (* x y) x y) |
| 1.0ms | y | @ | inf | ((- (* y x) (* z t)) (* x y) x y) |
| 1.0ms | x | @ | 0 | ((- (* y x) (* z t)) (* x y) x y) |
| Inputs |
|---|
#s(approx (- (* y x) (* z t)) (*.f64 x y)) |
(*.f64 x y) |
x |
y |
| Outputs |
|---|
#s(approx (- (* y x) (* t z)) (*.f64 x y)) |
(*.f64 x y) |
(*.f64 y x) |
(*.f64 (neg.f64 x) (neg.f64 y)) |
(*.f64 (neg.f64 y) (neg.f64 x)) |
(neg.f64 (neg.f64 (*.f64 x y))) |
x |
(neg.f64 (neg.f64 x)) |
y |
(neg.f64 (neg.f64 y)) |
Compiled 139 to 83 computations (40.3% saved)
5 alts after pruning (0 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 21 | 0 | 21 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 4 | 4 |
| Total | 21 | 5 | 26 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 98.8% | (fma.f64 (neg.f64 z) t (*.f64 x y)) |
| ✓ | 99.6% | (fma.f64 y x (neg.f64 (*.f64 z t))) |
| ✓ | 98.4% | (-.f64 (*.f64 x y) (*.f64 z t)) |
| ✓ | 50.2% | #s(approx (- (* y x) (* z t)) (*.f64 x y)) |
| ✓ | 52.0% | #s(approx (- (* y x) (* z t)) (neg.f64 (*.f64 t z))) |
Compiled 71 to 63 computations (11.3% saved)
| Inputs |
|---|
#s(approx (- (* y x) (* z t)) (*.f64 x y)) |
#s(approx (- (* y x) (* z t)) (neg.f64 (*.f64 t z))) |
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(fma.f64 y x (neg.f64 (*.f64 z t))) |
(fma.f64 (neg.f64 z) t (*.f64 x y)) |
| Outputs |
|---|
(fma.f64 y x (neg.f64 (*.f64 z t))) |
7 calls:
| 3.0ms | y |
| 2.0ms | x |
| 2.0ms | z |
| 2.0ms | t |
| 2.0ms | (-.f64 (*.f64 x y) (*.f64 z t)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.6% | 1 | (*.f64 z t) |
| 99.6% | 1 | (*.f64 x y) |
| 99.6% | 1 | (-.f64 (*.f64 x y) (*.f64 z t)) |
| 99.6% | 1 | x |
| 99.6% | 1 | y |
| 99.6% | 1 | z |
| 99.6% | 1 | t |
Compiled 17 to 33 computations (-94.1% saved)
| Inputs |
|---|
#s(approx (- (* y x) (* z t)) (*.f64 x y)) |
#s(approx (- (* y x) (* z t)) (neg.f64 (*.f64 t z))) |
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
| Outputs |
|---|
(-.f64 (*.f64 x y) (*.f64 z t)) |
7 calls:
| 6.0ms | (-.f64 (*.f64 x y) (*.f64 z t)) |
| 2.0ms | t |
| 2.0ms | x |
| 2.0ms | y |
| 2.0ms | z |
| Accuracy | Segments | Branch |
|---|---|---|
| 98.4% | 1 | (*.f64 z t) |
| 98.4% | 1 | (*.f64 x y) |
| 98.4% | 1 | (-.f64 (*.f64 x y) (*.f64 z t)) |
| 98.4% | 1 | x |
| 98.4% | 1 | y |
| 98.4% | 1 | z |
| 98.4% | 1 | t |
Compiled 17 to 33 computations (-94.1% saved)
| Inputs |
|---|
#s(approx (- (* y x) (* z t)) (*.f64 x y)) |
#s(approx (- (* y x) (* z t)) (neg.f64 (*.f64 t z))) |
#s(approx (- (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t z))) |
| Outputs |
|---|
#s(approx (- (* y x) (* z t)) (neg.f64 (*.f64 t z))) |
#s(approx (- (* y x) (* z t)) (*.f64 x y)) |
#s(approx (- (* y x) (* z t)) (neg.f64 (*.f64 t z))) |
7 calls:
| 2.0ms | y |
| 2.0ms | (-.f64 (*.f64 x y) (*.f64 z t)) |
| 2.0ms | (*.f64 z t) |
| 2.0ms | x |
| 2.0ms | t |
| Accuracy | Segments | Branch |
|---|---|---|
| 80.5% | 3 | (*.f64 z t) |
| 74.4% | 3 | (*.f64 x y) |
| 55.6% | 3 | (-.f64 (*.f64 x y) (*.f64 z t)) |
| 69.3% | 3 | x |
| 72.4% | 3 | y |
| 73.6% | 3 | z |
| 76.2% | 3 | t |
Compiled 17 to 33 computations (-94.1% saved)
Total 0.0b remaining (0%)
Threshold costs 0b (0%)
| Inputs |
|---|
#s(approx (- (* y x) (* z t)) (*.f64 x y)) |
| Outputs |
|---|
#s(approx (- (* y x) (* z t)) (*.f64 x y)) |
7 calls:
| 1.0ms | (*.f64 z t) |
| 1.0ms | t |
| 1.0ms | z |
| 1.0ms | y |
| 1.0ms | x |
| Accuracy | Segments | Branch |
|---|---|---|
| 50.2% | 1 | (-.f64 (*.f64 x y) (*.f64 z t)) |
| 50.2% | 1 | x |
| 50.2% | 1 | y |
| 50.2% | 1 | z |
| 50.2% | 1 | (*.f64 x y) |
| 50.2% | 1 | t |
| 50.2% | 1 | (*.f64 z t) |
Compiled 17 to 33 computations (-94.1% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.5601988475097195e-39 | 7.91920832542005e-37 |
| 0.0ms | -116.09467034998835 | -2.9653585530168875e-9 |
Compiled 10 to 14 computations (-40% saved)
| 1× | done |
Compiled 27 to 22 computations (18.5% saved)
(sort z t)
(sort x y)
Compiled 214 to 197 computations (7.9% saved)
Loading profile data...