
Time bar (total: 2.8s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.7% | 0.3% | 0% | 0% | 0% | 0 |
| 100% | 99.7% | 0% | 0.3% | 0% | 0% | 0% | 1 |
Compiled 13 to 13 computations (0% saved)
| 656.0ms | 8 256× | 0 | valid |
ival-mult: 219.0ms (64.9% of total)ival-add: 113.0ms (33.5% of total)ival-assert: 3.0ms (0.9% of total)adjust: 2.0ms (0.6% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 4 | 0 | - | 0 | - | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 1 | 0 | - | 0 | - | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 0 | 0 | - | 0 | - | a |
| 0 | 0 | - | 0 | - | t |
| 0 | 0 | - | 0 | - | (*.f64 z t) |
| 0 | 0 | - | 0 | - | z |
| 0 | 0 | - | 0 | - | (*.f64 x y) |
| 0 | 0 | - | 0 | - | y |
| 0 | 0 | - | 0 | - | b |
| 0 | 0 | - | 0 | - | (*.f64 a b) |
| 0 | 0 | - | 0 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
+.f64 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) | nan-rescue | 4 | 0 |
| ↳ | (*.f64 x y) | overflow | 30 | |
| ↳ | (+.f64 (*.f64 x y) (*.f64 z t)) | overflow | 59 | |
| ↳ | (*.f64 z t) | overflow | 31 | |
| ↳ | (*.f64 a b) | overflow | 36 | |
+.f64 | (+.f64 (*.f64 x y) (*.f64 z t)) | nan-rescue | 1 | 0 |
| ↳ | (*.f64 x y) | overflow | 30 | |
| ↳ | (*.f64 z t) | overflow | 31 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 5 | 0 |
| - | 0 | 251 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 5 | 0 | 0 |
| - | 0 | 0 | 251 |
| number | freq |
|---|---|
| 0 | 251 |
| 1 | 5 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 123.0ms | 512× | 0 | valid |
Compiled 81 to 37 computations (54.3% saved)
ival-mult: 65.0ms (63.6% of total)ival-add: 37.0ms (36.2% of total)ival-true: 1.0ms (1% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 89 | 318 |
| 1 | 260 | 312 |
| 2 | 649 | 310 |
| 3 | 1161 | 308 |
| 4 | 1319 | 308 |
| 5 | 1411 | 308 |
| 6 | 1454 | 308 |
| 0 | 11 | 11 |
| 0 | 16 | 11 |
| 1 | 29 | 11 |
| 2 | 67 | 11 |
| 3 | 134 | 11 |
| 4 | 209 | 11 |
| 5 | 220 | 11 |
| 6 | 234 | 11 |
| 7 | 235 | 11 |
| 0 | 235 | 9 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| Outputs |
|---|
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(fma.f64 b a (fma.f64 t z (*.f64 y x))) |
(sort x y)
(sort z t)
(sort a b)
Compiled 11 to 11 computations (0% saved)
Compiled 0 to 6 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 98.0% | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
Compiled 11 to 11 computations (0% saved)
| Inputs |
|---|
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
x |
y |
(*.f64 z t) |
z |
t |
(*.f64 a b) |
a |
b |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (+ (* t z) (* x y))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* t z))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx (* x y) #s(hole binary64 (* x y))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* x y))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* x (+ y (/ (* t z) x))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* y (+ x (/ (* t z) y))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (* x y)))) |
#s(approx (* z t) #s(hole binary64 (* t z))) |
#s(approx z #s(hole binary64 z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* z (+ t (/ (* x y) z))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z))))))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* t (+ z (/ (* x y) t))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx (* a b) #s(hole binary64 (* a b))) |
#s(approx a #s(hole binary64 a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))))) |
#s(approx b #s(hole binary64 b)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))))) |
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 8.0ms | t | @ | inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) x y (* z t) z t (* a b) a b) |
| 1.0ms | z | @ | inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) x y (* z t) z t (* a b) a b) |
| 1.0ms | x | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) x y (* z t) z t (* a b) a b) |
| 1.0ms | t | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) x y (* z t) z t (* a b) a b) |
| 1.0ms | z | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) x y (* z t) z t (* a b) a b) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 151 | 742 |
| 0 | 159 | 700 |
| 1 | 924 | 690 |
| 0 | 8496 | 612 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
x |
y |
(*.f64 z t) |
z |
t |
(*.f64 a b) |
a |
b |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (+ (* t z) (* x y))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* t z))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx (* x y) #s(hole binary64 (* x y))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* x y))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* x (+ y (/ (* t z) x))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* y (+ x (/ (* t z) y))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (* x y)))) |
#s(approx (* z t) #s(hole binary64 (* t z))) |
#s(approx z #s(hole binary64 z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* z (+ t (/ (* x y) z))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z))))))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* t (+ z (/ (* x y) t))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))))) |
#s(approx (+ (* x y) (* z t)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx (* a b) #s(hole binary64 (* a b))) |
#s(approx a #s(hole binary64 a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))))) |
#s(approx b #s(hole binary64 b)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))))) |
| Outputs |
|---|
(/.f64 (-.f64 (*.f64 (fma.f64 b a (*.f64 t z)) (fma.f64 b a (*.f64 t z))) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (-.f64 (fma.f64 b a (*.f64 t z)) (*.f64 y x))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (fma.f64 b a (*.f64 t z)) (fma.f64 b a (*.f64 t z)))) (-.f64 (*.f64 y x) (fma.f64 b a (*.f64 t z)))) |
(/.f64 (-.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 a) b) #s(literal 3 binary64))) (+.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (*.f64 (fma.f64 t z (*.f64 y x)) (*.f64 (neg.f64 a) b))))) |
(/.f64 (+.f64 (pow.f64 (fma.f64 b a (*.f64 t z)) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (fma.f64 (fma.f64 b a (*.f64 t z)) (fma.f64 b a (*.f64 t z)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (fma.f64 b a (*.f64 t z)) (*.f64 y x))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (fma.f64 b a (*.f64 t z)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (*.f64 (fma.f64 b a (*.f64 t z)) (fma.f64 b a (*.f64 t z))) (*.f64 (*.f64 y x) (fma.f64 b a (*.f64 t z)))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 2 binary64)) (pow.f64 (*.f64 b a) #s(literal 2 binary64)))) (neg.f64 (-.f64 (fma.f64 t z (*.f64 y x)) (*.f64 b a)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 b a) (fma.f64 t z (*.f64 y x))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 (*.f64 b a) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 2 binary64)) (*.f64 (*.f64 b a) (-.f64 (*.f64 b a) (fma.f64 t z (*.f64 y x))))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 b a) #s(literal 3 binary64)) (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (*.f64 (fma.f64 t z (*.f64 y x)) (-.f64 (fma.f64 t z (*.f64 y x)) (*.f64 b a)))))) |
(/.f64 (-.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 2 binary64)) (pow.f64 (*.f64 b a) #s(literal 2 binary64))) (-.f64 (fma.f64 t z (*.f64 y x)) (*.f64 b a))) |
(/.f64 (-.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 2 binary64))) (-.f64 (*.f64 b a) (fma.f64 t z (*.f64 y x)))) |
(/.f64 (+.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 (*.f64 b a) #s(literal 3 binary64))) (+.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 2 binary64)) (*.f64 (*.f64 b a) (-.f64 (*.f64 b a) (fma.f64 t z (*.f64 y x)))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 b a) #s(literal 3 binary64)) (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (*.f64 (fma.f64 t z (*.f64 y x)) (-.f64 (fma.f64 t z (*.f64 y x)) (*.f64 b a))))) |
(fma.f64 b a (fma.f64 t z (*.f64 y x))) |
(fma.f64 a b (fma.f64 t z (*.f64 y x))) |
(fma.f64 t z (fma.f64 b a (*.f64 y x))) |
(fma.f64 z t (fma.f64 b a (*.f64 y x))) |
(fma.f64 y x (fma.f64 b a (*.f64 t z))) |
(fma.f64 x y (fma.f64 b a (*.f64 t z))) |
(-.f64 (/.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 2 binary64)) (-.f64 (fma.f64 t z (*.f64 y x)) (*.f64 b a))) (/.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (-.f64 (fma.f64 t z (*.f64 y x)) (*.f64 b a)))) |
(-.f64 (/.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (-.f64 (*.f64 b a) (fma.f64 t z (*.f64 y x)))) (/.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 2 binary64)) (-.f64 (*.f64 b a) (fma.f64 t z (*.f64 y x))))) |
(-.f64 (fma.f64 b a (*.f64 y x)) (*.f64 (neg.f64 z) t)) |
(-.f64 (fma.f64 b a (*.f64 t z)) (*.f64 (neg.f64 x) y)) |
(-.f64 (*.f64 t z) (-.f64 (*.f64 (neg.f64 x) y) (*.f64 b a))) |
(-.f64 (*.f64 t z) (neg.f64 (fma.f64 b a (*.f64 y x)))) |
(-.f64 (*.f64 b a) (-.f64 (*.f64 (neg.f64 z) t) (*.f64 y x))) |
(-.f64 (fma.f64 t z (*.f64 y x)) (*.f64 (neg.f64 a) b)) |
(-.f64 (*.f64 y x) (-.f64 (*.f64 (neg.f64 z) t) (*.f64 b a))) |
(-.f64 (*.f64 y x) (neg.f64 (fma.f64 b a (*.f64 t z)))) |
(+.f64 (/.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 3 binary64)) (+.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 2 binary64)) (*.f64 (*.f64 b a) (-.f64 (*.f64 b a) (fma.f64 t z (*.f64 y x)))))) (/.f64 (pow.f64 (*.f64 b a) #s(literal 3 binary64)) (+.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 2 binary64)) (*.f64 (*.f64 b a) (-.f64 (*.f64 b a) (fma.f64 t z (*.f64 y x))))))) |
(+.f64 (/.f64 (pow.f64 (*.f64 b a) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (*.f64 (fma.f64 t z (*.f64 y x)) (-.f64 (fma.f64 t z (*.f64 y x)) (*.f64 b a))))) (/.f64 (pow.f64 (fma.f64 t z (*.f64 y x)) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (*.f64 (fma.f64 t z (*.f64 y x)) (-.f64 (fma.f64 t z (*.f64 y x)) (*.f64 b a)))))) |
(+.f64 (fma.f64 b a (*.f64 y x)) (*.f64 t z)) |
(+.f64 (fma.f64 b a (*.f64 t z)) (*.f64 y x)) |
(+.f64 (*.f64 t z) (fma.f64 b a (*.f64 y x))) |
(+.f64 (*.f64 b a) (fma.f64 t z (*.f64 y x))) |
(+.f64 (fma.f64 t z (*.f64 y x)) (*.f64 (neg.f64 (neg.f64 a)) b)) |
(+.f64 (fma.f64 t z (*.f64 y x)) (*.f64 b a)) |
(+.f64 (*.f64 y x) (fma.f64 b a (*.f64 t z))) |
(/.f64 (-.f64 (pow.f64 (*.f64 t z) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 x) y) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 t z) (*.f64 (neg.f64 x) y))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 z) t) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (*.f64 (neg.f64 z) t))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 t z) #s(literal 2 binary64)))) (neg.f64 (fma.f64 y x (*.f64 (neg.f64 z) t)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (neg.f64 (fma.f64 t z (*.f64 (neg.f64 x) y)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 t z) (fma.f64 t z (*.f64 (neg.f64 x) y)))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 t z) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (fma.f64 y x (*.f64 (neg.f64 z) t)))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 t z) #s(literal 2 binary64))) (fma.f64 y x (*.f64 (neg.f64 z) t))) |
(/.f64 (-.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (fma.f64 t z (*.f64 (neg.f64 x) y))) |
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 t z) (fma.f64 t z (*.f64 (neg.f64 x) y))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 t z) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (fma.f64 y x (*.f64 (neg.f64 z) t))))) |
(fma.f64 t z (*.f64 (neg.f64 (neg.f64 x)) y)) |
(fma.f64 t z (*.f64 y x)) |
(fma.f64 z t (*.f64 (neg.f64 (neg.f64 x)) y)) |
(fma.f64 z t (*.f64 y x)) |
(fma.f64 y x (*.f64 (neg.f64 (neg.f64 z)) t)) |
(fma.f64 y x (*.f64 t z)) |
(fma.f64 x y (*.f64 (neg.f64 (neg.f64 z)) t)) |
(fma.f64 x y (*.f64 t z)) |
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (fma.f64 y x (*.f64 (neg.f64 z) t))) (/.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (fma.f64 y x (*.f64 (neg.f64 z) t)))) |
(-.f64 (/.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (fma.f64 t z (*.f64 (neg.f64 x) y))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (fma.f64 t z (*.f64 (neg.f64 x) y)))) |
(-.f64 (*.f64 t z) (*.f64 (neg.f64 x) y)) |
(-.f64 (*.f64 y x) (*.f64 (neg.f64 z) t)) |
(+.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 t z) (fma.f64 t z (*.f64 (neg.f64 x) y))))) (/.f64 (pow.f64 (*.f64 t z) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 t z) (fma.f64 t z (*.f64 (neg.f64 x) y)))))) |
(+.f64 (/.f64 (pow.f64 (*.f64 t z) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (fma.f64 y x (*.f64 (neg.f64 z) t))))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (fma.f64 y x (*.f64 (neg.f64 z) t)))))) |
(+.f64 (*.f64 t z) (*.f64 (neg.f64 (neg.f64 x)) y)) |
(+.f64 (*.f64 t z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 (neg.f64 (neg.f64 z)) t)) |
(+.f64 (*.f64 y x) (*.f64 t z)) |
(*.f64 y x) |
(*.f64 x y) |
x |
y |
(*.f64 t z) |
(*.f64 z t) |
z |
t |
(*.f64 b a) |
(*.f64 a b) |
a |
b |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (fma.f64 t z (*.f64 y x)))) |
#s(approx (+ (* x y) (* z t)) (*.f64 t z)) |
#s(approx (+ (* x y) (* z t)) (fma.f64 t z (*.f64 y x))) |
#s(approx (* x y) (*.f64 y x)) |
#s(approx x x) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 t z)) x) y) x)) |
#s(approx (+ (* x y) (* z t)) (*.f64 y x)) |
#s(approx (+ (* x y) (* z t)) (*.f64 (fma.f64 t (/.f64 z x) y) x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 x) (neg.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 t z)) x) y)))) |
#s(approx (+ (* x y) (* z t)) (*.f64 (neg.f64 x) (neg.f64 (fma.f64 t (/.f64 z x) y)))) |
#s(approx y y) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 t z)) y) x) y)) |
#s(approx (+ (* x y) (* z t)) (*.f64 (fma.f64 t (/.f64 z y) x) y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 t z)) y) x)) (neg.f64 y))) |
#s(approx (+ (* x y) (* z t)) (*.f64 (neg.f64 (fma.f64 t (/.f64 z y) x)) (neg.f64 y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) |
#s(approx (* z t) (*.f64 t z)) |
#s(approx z z) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 y x)) z) t) z)) |
#s(approx (+ (* x y) (* z t)) (*.f64 (fma.f64 x (/.f64 y z) t) z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 z) (neg.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 y x)) z) t)))) |
#s(approx (+ (* x y) (* z t)) (*.f64 (neg.f64 z) (neg.f64 (fma.f64 x (/.f64 y z) t)))) |
#s(approx t t) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 y x)) t) z) t)) |
#s(approx (+ (* x y) (* z t)) (*.f64 (fma.f64 x (/.f64 y t) z) t)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 y x)) t) z)) (neg.f64 t))) |
#s(approx (+ (* x y) (* z t)) (*.f64 (neg.f64 (fma.f64 x (/.f64 y t) z)) (neg.f64 t))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 y x))) |
#s(approx (* a b) (*.f64 b a)) |
#s(approx a a) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 t z (*.f64 y x)) a) b) a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 a) (neg.f64 (+.f64 (/.f64 (fma.f64 t z (*.f64 y x)) a) b)))) |
#s(approx b b) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 t z (*.f64 y x)) b) a) b)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 (+.f64 (/.f64 (fma.f64 t z (*.f64 y x)) b) a)) (neg.f64 b))) |
Compiled 2 385 to 352 computations (85.2% saved)
7 alts after pruning (7 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 110 | 7 | 117 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 111 | 7 | 118 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.2% | (fma.f64 y x (fma.f64 b a (*.f64 t z))) |
| 68.4% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 y x))) | |
| 68.0% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) | |
| ▶ | 66.8% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
| ▶ | 35.9% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
| ▶ | 35.5% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
| ▶ | 35.5% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
Compiled 216 to 180 computations (16.7% saved)
| Inputs |
|---|
(fma.f64 y x (fma.f64 b a (*.f64 t z))) |
y |
x |
(fma.f64 b a (*.f64 t z)) |
b |
a |
(*.f64 t z) |
t |
z |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
(*.f64 b a) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
(*.f64 y x) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
| Outputs |
|---|
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* a b) (+ (* t z) (* x y))))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (+ (* t z) (* x y))))) |
#s(approx (* y x) #s(hole binary64 (* x y))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* x y))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* a b) (* x y)))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* a b))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (* t z) #s(hole binary64 (* t z))) |
#s(approx z #s(hole binary64 z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (* x y)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* t z))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* t z))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* z (+ t (/ (* a b) z))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (* a b) z))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* t (+ z (/ (* a b) t))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (* a b) t))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx a #s(hole binary64 a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx (* b a) #s(hole binary64 (* a b))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* a b))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* a (+ b (/ (* t z) a))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (* t z) a))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))))) |
#s(approx b #s(hole binary64 b)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* b (+ a (/ (* t z) b))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (* t z) b))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))))) |
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 10.0ms | b | @ | -inf | ((+ (* y x) (+ (* b a) (* t z))) y x (+ (* b a) (* t z)) b a (* t z) t z (+ (+ (* x y) (* z t)) (* a b)) (* b a) (+ (+ (* x y) (* z t)) (* a b)) (+ (+ (* x y) (* z t)) (* a b)) (* y x) (+ (+ (* x y) (* z t)) (* a b))) |
| 3.0ms | a | @ | inf | ((+ (* y x) (+ (* b a) (* t z))) y x (+ (* b a) (* t z)) b a (* t z) t z (+ (+ (* x y) (* z t)) (* a b)) (* b a) (+ (+ (* x y) (* z t)) (* a b)) (+ (+ (* x y) (* z t)) (* a b)) (* y x) (+ (+ (* x y) (* z t)) (* a b))) |
| 3.0ms | z | @ | 0 | ((+ (* y x) (+ (* b a) (* t z))) y x (+ (* b a) (* t z)) b a (* t z) t z (+ (+ (* x y) (* z t)) (* a b)) (* b a) (+ (+ (* x y) (* z t)) (* a b)) (+ (+ (* x y) (* z t)) (* a b)) (* y x) (+ (+ (* x y) (* z t)) (* a b))) |
| 2.0ms | z | @ | -inf | ((+ (* y x) (+ (* b a) (* t z))) y x (+ (* b a) (* t z)) b a (* t z) t z (+ (+ (* x y) (* z t)) (* a b)) (* b a) (+ (+ (* x y) (* z t)) (* a b)) (+ (+ (* x y) (* z t)) (* a b)) (* y x) (+ (+ (* x y) (* z t)) (* a b))) |
| 2.0ms | t | @ | -inf | ((+ (* y x) (+ (* b a) (* t z))) y x (+ (* b a) (* t z)) b a (* t z) t z (+ (+ (* x y) (* z t)) (* a b)) (* b a) (+ (+ (* x y) (* z t)) (* a b)) (+ (+ (* x y) (* z t)) (* a b)) (* y x) (+ (+ (* x y) (* z t)) (* a b))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 178 | 1226 |
| 0 | 184 | 1093 |
| 1 | 982 | 1077 |
| 0 | 8322 | 1049 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(fma.f64 y x (fma.f64 b a (*.f64 t z))) |
y |
x |
(fma.f64 b a (*.f64 t z)) |
b |
a |
(*.f64 t z) |
t |
z |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
(*.f64 b a) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
(*.f64 y x) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* a b) (+ (* t z) (* x y))))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (+ (* t z) (* x y))))) |
#s(approx (* y x) #s(hole binary64 (* x y))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* x y))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* a b) (* x y)))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* a b))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (* t z) #s(hole binary64 (* t z))) |
#s(approx z #s(hole binary64 z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (* x y)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* t z))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* t z))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* z (+ t (/ (* a b) z))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (* a b) z))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* t (+ z (/ (* a b) t))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (* a b) t))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx a #s(hole binary64 a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx (* b a) #s(hole binary64 (* a b))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* a b))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* a (+ b (/ (* t z) a))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (* t z) a))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))))) |
#s(approx b #s(hole binary64 b)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* b (+ a (/ (* t z) b))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (* t z) b))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))))) |
| Outputs |
|---|
(/.f64 (-.f64 (*.f64 (fma.f64 a b (*.f64 x y)) (fma.f64 a b (*.f64 x y))) (pow.f64 (*.f64 z t) #s(literal 2 binary64))) (-.f64 (fma.f64 a b (*.f64 x y)) (*.f64 z t))) |
(/.f64 (-.f64 (pow.f64 (fma.f64 z t (*.f64 a b)) #s(literal 2 binary64)) (pow.f64 (*.f64 x y) #s(literal 2 binary64))) (-.f64 (fma.f64 z t (*.f64 a b)) (*.f64 x y))) |
(/.f64 (-.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 a) b) #s(literal 3 binary64))) (+.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (*.f64 (fma.f64 z t (*.f64 x y)) (*.f64 (neg.f64 a) b))))) |
(/.f64 (+.f64 (pow.f64 (fma.f64 a b (*.f64 x y)) #s(literal 3 binary64)) (pow.f64 (*.f64 z t) #s(literal 3 binary64))) (fma.f64 (fma.f64 a b (*.f64 x y)) (fma.f64 a b (*.f64 x y)) (-.f64 (pow.f64 (*.f64 z t) #s(literal 2 binary64)) (*.f64 (fma.f64 a b (*.f64 x y)) (*.f64 z t))))) |
(/.f64 (+.f64 (pow.f64 (fma.f64 z t (*.f64 a b)) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64))) (+.f64 (pow.f64 (fma.f64 z t (*.f64 a b)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (*.f64 (fma.f64 z t (*.f64 a b)) (*.f64 x y))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 (fma.f64 z t (*.f64 a b)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 x y) (fma.f64 z t (*.f64 a b))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 2 binary64)) (pow.f64 (*.f64 a b) #s(literal 2 binary64)))) (neg.f64 (-.f64 (fma.f64 z t (*.f64 x y)) (*.f64 a b)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 a b) (fma.f64 z t (*.f64 x y))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (pow.f64 (fma.f64 z t (*.f64 a b)) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (*.f64 (fma.f64 z t (*.f64 a b)) (-.f64 (fma.f64 z t (*.f64 a b)) (*.f64 x y)))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 3 binary64)) (pow.f64 (*.f64 a b) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 2 binary64)) (*.f64 (*.f64 a b) (-.f64 (*.f64 a b) (fma.f64 z t (*.f64 x y))))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a b) #s(literal 3 binary64)) (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (*.f64 (fma.f64 z t (*.f64 x y)) (-.f64 (fma.f64 z t (*.f64 x y)) (*.f64 a b)))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 (fma.f64 z t (*.f64 a b)) #s(literal 2 binary64))) (-.f64 (*.f64 x y) (fma.f64 z t (*.f64 a b)))) |
(/.f64 (-.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 2 binary64)) (pow.f64 (*.f64 a b) #s(literal 2 binary64))) (-.f64 (fma.f64 z t (*.f64 x y)) (*.f64 a b))) |
(/.f64 (-.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 2 binary64))) (-.f64 (*.f64 a b) (fma.f64 z t (*.f64 x y)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (pow.f64 (fma.f64 z t (*.f64 a b)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (*.f64 (fma.f64 z t (*.f64 a b)) (-.f64 (fma.f64 z t (*.f64 a b)) (*.f64 x y))))) |
(/.f64 (+.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 3 binary64)) (pow.f64 (*.f64 a b) #s(literal 3 binary64))) (+.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 2 binary64)) (*.f64 (*.f64 a b) (-.f64 (*.f64 a b) (fma.f64 z t (*.f64 x y)))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 a b) #s(literal 3 binary64)) (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (*.f64 (fma.f64 z t (*.f64 x y)) (-.f64 (fma.f64 z t (*.f64 x y)) (*.f64 a b))))) |
(fma.f64 z t (fma.f64 a b (*.f64 x y))) |
(fma.f64 t z (fma.f64 a b (*.f64 x y))) |
(fma.f64 a b (fma.f64 z t (*.f64 x y))) |
(fma.f64 b a (fma.f64 z t (*.f64 x y))) |
(fma.f64 x y (fma.f64 z t (*.f64 a b))) |
(fma.f64 y x (fma.f64 z t (*.f64 a b))) |
(-.f64 (/.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (-.f64 (*.f64 x y) (fma.f64 z t (*.f64 a b)))) (/.f64 (pow.f64 (fma.f64 z t (*.f64 a b)) #s(literal 2 binary64)) (-.f64 (*.f64 x y) (fma.f64 z t (*.f64 a b))))) |
(-.f64 (/.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 2 binary64)) (-.f64 (fma.f64 z t (*.f64 x y)) (*.f64 a b))) (/.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (-.f64 (fma.f64 z t (*.f64 x y)) (*.f64 a b)))) |
(-.f64 (/.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (-.f64 (*.f64 a b) (fma.f64 z t (*.f64 x y)))) (/.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 2 binary64)) (-.f64 (*.f64 a b) (fma.f64 z t (*.f64 x y))))) |
(-.f64 (fma.f64 a b (*.f64 x y)) (*.f64 (neg.f64 z) t)) |
(-.f64 (fma.f64 z t (*.f64 x y)) (*.f64 (neg.f64 a) b)) |
(-.f64 (fma.f64 z t (*.f64 a b)) (*.f64 (neg.f64 x) y)) |
(-.f64 (*.f64 z t) (-.f64 (*.f64 (neg.f64 x) y) (*.f64 a b))) |
(-.f64 (*.f64 z t) (neg.f64 (fma.f64 a b (*.f64 x y)))) |
(-.f64 (*.f64 a b) (-.f64 (*.f64 (neg.f64 x) y) (*.f64 z t))) |
(-.f64 (*.f64 a b) (-.f64 (*.f64 (neg.f64 z) t) (*.f64 x y))) |
(-.f64 (*.f64 x y) (-.f64 (*.f64 (neg.f64 z) t) (*.f64 a b))) |
(-.f64 (*.f64 x y) (neg.f64 (fma.f64 z t (*.f64 a b)))) |
(+.f64 (/.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (*.f64 (fma.f64 z t (*.f64 a b)) (-.f64 (fma.f64 z t (*.f64 a b)) (*.f64 x y))))) (/.f64 (pow.f64 (fma.f64 z t (*.f64 a b)) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (*.f64 (fma.f64 z t (*.f64 a b)) (-.f64 (fma.f64 z t (*.f64 a b)) (*.f64 x y)))))) |
(+.f64 (/.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 3 binary64)) (+.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 2 binary64)) (*.f64 (*.f64 a b) (-.f64 (*.f64 a b) (fma.f64 z t (*.f64 x y)))))) (/.f64 (pow.f64 (*.f64 a b) #s(literal 3 binary64)) (+.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 2 binary64)) (*.f64 (*.f64 a b) (-.f64 (*.f64 a b) (fma.f64 z t (*.f64 x y))))))) |
(+.f64 (/.f64 (pow.f64 (*.f64 a b) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (*.f64 (fma.f64 z t (*.f64 x y)) (-.f64 (fma.f64 z t (*.f64 x y)) (*.f64 a b))))) (/.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (*.f64 (fma.f64 z t (*.f64 x y)) (-.f64 (fma.f64 z t (*.f64 x y)) (*.f64 a b)))))) |
(+.f64 (fma.f64 a b (*.f64 x y)) (*.f64 z t)) |
(+.f64 (fma.f64 z t (*.f64 x y)) (*.f64 (neg.f64 (neg.f64 a)) b)) |
(+.f64 (fma.f64 z t (*.f64 x y)) (*.f64 a b)) |
(+.f64 (fma.f64 z t (*.f64 a b)) (*.f64 x y)) |
(+.f64 (*.f64 z t) (fma.f64 a b (*.f64 x y))) |
(+.f64 (*.f64 a b) (fma.f64 z t (*.f64 x y))) |
(+.f64 (*.f64 x y) (fma.f64 z t (*.f64 a b))) |
y |
x |
(/.f64 (-.f64 (pow.f64 (*.f64 z t) #s(literal 2 binary64)) (pow.f64 (*.f64 a b) #s(literal 2 binary64))) (-.f64 (*.f64 z t) (*.f64 a b))) |
(/.f64 (-.f64 (pow.f64 (*.f64 a b) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 z) t) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 z t) #s(literal 2 binary64)) (*.f64 (*.f64 a b) (*.f64 (neg.f64 z) t))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 z t) #s(literal 3 binary64)) (pow.f64 (*.f64 a b) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 z t) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (*.f64 (*.f64 z t) (*.f64 a b))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (pow.f64 (*.f64 z t) #s(literal 2 binary64)))) (neg.f64 (fma.f64 a b (*.f64 (neg.f64 z) t)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a b) #s(literal 3 binary64)) (pow.f64 (*.f64 z t) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (*.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 a b)))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (pow.f64 (*.f64 z t) #s(literal 2 binary64))) (fma.f64 a b (*.f64 (neg.f64 z) t))) |
(/.f64 (+.f64 (pow.f64 (*.f64 a b) #s(literal 3 binary64)) (pow.f64 (*.f64 z t) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (*.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 a b))))) |
(fma.f64 z t (*.f64 a b)) |
(fma.f64 t z (*.f64 a b)) |
(fma.f64 a b (*.f64 (neg.f64 (neg.f64 t)) z)) |
(fma.f64 a b (*.f64 z t)) |
(fma.f64 b a (*.f64 (neg.f64 (neg.f64 t)) z)) |
(fma.f64 b a (*.f64 z t)) |
(-.f64 (/.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (fma.f64 a b (*.f64 (neg.f64 z) t))) (/.f64 (pow.f64 (*.f64 z t) #s(literal 2 binary64)) (fma.f64 a b (*.f64 (neg.f64 z) t)))) |
(-.f64 (*.f64 z t) (*.f64 (neg.f64 a) b)) |
(-.f64 (*.f64 a b) (*.f64 (neg.f64 z) t)) |
(+.f64 (/.f64 (pow.f64 (*.f64 a b) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (*.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 a b))))) (/.f64 (pow.f64 (*.f64 z t) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 a b) #s(literal 2 binary64)) (*.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 a b)))))) |
(+.f64 (*.f64 z t) (*.f64 a b)) |
(+.f64 (*.f64 a b) (*.f64 (neg.f64 (neg.f64 t)) z)) |
(+.f64 (*.f64 a b) (*.f64 z t)) |
b |
a |
(*.f64 z t) |
(*.f64 t z) |
t |
z |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 a b)) |
(*.f64 a b) |
(*.f64 b a) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 z t)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(*.f64 x y) |
(*.f64 y x) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (fma.f64 a b (*.f64 x y)))) |
#s(approx x x) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (fma.f64 a b (*.f64 x y)))) |
#s(approx (* y x) (*.f64 x y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 a b)) x) y) x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 a b)) x) y) x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 x) (neg.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 a b)) x) y)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 x) (neg.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 a b)) x) y)))) |
#s(approx y y) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 a b)) y) x) y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 a b)) y) x) y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 a b)) y) x)) (neg.f64 y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 a b)) y) x)) (neg.f64 y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y))) |
#s(approx (+ (* b a) (* t z)) (*.f64 a b)) |
#s(approx (+ (* b a) (* t z)) (fma.f64 z t (*.f64 a b))) |
#s(approx (* t z) (*.f64 z t)) |
#s(approx z z) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 z t)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 a b (*.f64 x y)) z) t) z)) |
#s(approx (+ (* b a) (* t z)) (*.f64 z t)) |
#s(approx (+ (* b a) (* t z)) (*.f64 (fma.f64 a (/.f64 b z) t) z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 z t)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 a b (*.f64 x y)) z) t) z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 z) (neg.f64 (+.f64 (/.f64 (fma.f64 a b (*.f64 x y)) z) t)))) |
#s(approx (+ (* b a) (* t z)) (*.f64 (neg.f64 z) (neg.f64 (fma.f64 a (/.f64 b z) t)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 z) (neg.f64 (+.f64 (/.f64 (fma.f64 a b (*.f64 x y)) z) t)))) |
#s(approx t t) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 a b (*.f64 x y)) t) z) t)) |
#s(approx (+ (* b a) (* t z)) (*.f64 (fma.f64 a (/.f64 b t) z) t)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 a b (*.f64 x y)) t) z) t)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 (+.f64 (/.f64 (fma.f64 a b (*.f64 x y)) t) z)) (neg.f64 t))) |
#s(approx (+ (* b a) (* t z)) (*.f64 (neg.f64 (fma.f64 a (/.f64 b t) z)) (neg.f64 t))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 (+.f64 (/.f64 (fma.f64 a b (*.f64 x y)) t) z)) (neg.f64 t))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 x y))) |
#s(approx a a) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 x y))) |
#s(approx (* b a) (*.f64 a b)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 a b)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 x y)) a) b) a)) |
#s(approx (+ (* b a) (* t z)) (*.f64 (fma.f64 t (/.f64 z a) b) a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 a b)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 x y)) a) b) a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 a) (neg.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 x y)) a) b)))) |
#s(approx (+ (* b a) (* t z)) (*.f64 (neg.f64 a) (neg.f64 (fma.f64 t (/.f64 z a) b)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 a) (neg.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 x y)) a) b)))) |
#s(approx b b) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 x y)) b) a) b)) |
#s(approx (+ (* b a) (* t z)) (*.f64 (fma.f64 t (/.f64 z b) a) b)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 x y)) b) a) b)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 x y)) b) a)) (neg.f64 b))) |
#s(approx (+ (* b a) (* t z)) (*.f64 (neg.f64 (fma.f64 t (/.f64 z b) a)) (neg.f64 b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 (neg.f64 (+.f64 (/.f64 (fma.f64 z t (*.f64 x y)) b) a)) (neg.f64 b))) |
Compiled 3 695 to 388 computations (89.5% saved)
8 alts after pruning (4 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 170 | 3 | 173 |
| Fresh | 1 | 1 | 2 |
| Picked | 1 | 4 | 5 |
| Done | 0 | 0 | 0 |
| Total | 172 | 8 | 180 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 68.8% | (fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 z t))) |
| ▶ | 67.6% | (fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 a b))) |
| ▶ | 68.4% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 x y))) |
| ▶ | 68.0% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) |
| ✓ | 66.8% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
| ✓ | 35.9% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
| ✓ | 35.5% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
| ✓ | 35.5% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
Compiled 127 to 105 computations (17.3% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) |
(fma.f64 b a (*.f64 y x)) |
b |
a |
(*.f64 y x) |
y |
x |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 x y))) |
(fma.f64 z t (*.f64 x y)) |
z |
t |
(*.f64 x y) |
(fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 a b))) |
#s(approx (+ (* b a) (* t z)) (*.f64 a b)) |
(*.f64 a b) |
(fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 z t))) |
#s(approx (+ (* b a) (* t z)) (*.f64 z t)) |
(*.f64 z t) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (+ (* t z) (* x y))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* a b))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (+ (* a b) (* x y)))) |
#s(approx (* y x) #s(hole binary64 (* x y))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* t z))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx (* x y) #s(hole binary64 (* x y))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* a b) (+ (* t z) (* x y))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* x y))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* x (+ y (/ (* a b) x))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* x y))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* x (+ y (/ (* t z) x))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* x y))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (* a b) x))))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* y (+ x (/ (* a b) y))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* y (+ x (/ (* t z) y))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (* a b) y))))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (* x y)))) |
#s(approx z #s(hole binary64 z)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* a b) (* x y)))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* a b))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (* z t) #s(hole binary64 (* t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* z (+ t (/ (* x y) z))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* t z))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* t z))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* z (+ t (/ (* a b) z))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (* a b) z))))))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* t (+ z (/ (* x y) t))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* t (+ z (/ (* a b) t))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (* a b) t))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx a #s(hole binary64 a)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx (* a b) #s(hole binary64 (* a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* a (+ b (/ (* x y) a))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* a b))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* a (+ b (/ (* t z) a))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (* x y) a))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (* t z) a))))))) |
#s(approx b #s(hole binary64 b)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* b (+ a (/ (* x y) b))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* b (+ a (/ (* t z) b))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (* x y) b))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (* t z) b))))))) |
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 15.0ms | a | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* b a) (* y x)) b a (* y x) y x (+ (+ (* x y) (* z t)) (* a b)) (+ (* z t) (* x y)) z t (* x y) (+ (* y x) (+ (* b a) (* t z))) (+ (* b a) (* t z)) (* a b) (+ (* y x) (+ (* b a) (* t z))) (+ (* b a) (* t z)) (* z t)) |
| 1.0ms | x | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* b a) (* y x)) b a (* y x) y x (+ (+ (* x y) (* z t)) (* a b)) (+ (* z t) (* x y)) z t (* x y) (+ (* y x) (+ (* b a) (* t z))) (+ (* b a) (* t z)) (* a b) (+ (* y x) (+ (* b a) (* t z))) (+ (* b a) (* t z)) (* z t)) |
| 1.0ms | y | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* b a) (* y x)) b a (* y x) y x (+ (+ (* x y) (* z t)) (* a b)) (+ (* z t) (* x y)) z t (* x y) (+ (* y x) (+ (* b a) (* t z))) (+ (* b a) (* t z)) (* a b) (+ (* y x) (+ (* b a) (* t z))) (+ (* b a) (* t z)) (* z t)) |
| 1.0ms | b | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* b a) (* y x)) b a (* y x) y x (+ (+ (* x y) (* z t)) (* a b)) (+ (* z t) (* x y)) z t (* x y) (+ (* y x) (+ (* b a) (* t z))) (+ (* b a) (* t z)) (* a b) (+ (* y x) (+ (* b a) (* t z))) (+ (* b a) (* t z)) (* z t)) |
| 1.0ms | t | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* b a) (* y x)) b a (* y x) y x (+ (+ (* x y) (* z t)) (* a b)) (+ (* z t) (* x y)) z t (* x y) (+ (* y x) (+ (* b a) (* t z))) (+ (* b a) (* t z)) (* a b) (+ (* y x) (+ (* b a) (* t z))) (+ (* b a) (* t z)) (* z t)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 254 | 1677 |
| 0 | 261 | 1517 |
| 1 | 1463 | 1517 |
| 0 | 8360 | 1425 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) |
(fma.f64 b a (*.f64 y x)) |
b |
a |
(*.f64 y x) |
y |
x |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 x y))) |
(fma.f64 z t (*.f64 x y)) |
z |
t |
(*.f64 x y) |
(fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 a b))) |
#s(approx (+ (* b a) (* t z)) (*.f64 a b)) |
(*.f64 a b) |
(fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 z t))) |
#s(approx (+ (* b a) (* t z)) (*.f64 z t)) |
(*.f64 z t) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (+ (* t z) (* x y))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* a b))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (+ (* a b) (* x y)))) |
#s(approx (* y x) #s(hole binary64 (* x y))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* t z))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx (* x y) #s(hole binary64 (* x y))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* a b) (+ (* t z) (* x y))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* x y))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* x (+ y (/ (* a b) x))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* x y))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* x (+ y (/ (* t z) x))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* x y))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (* a b) x))))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* y (+ x (/ (* a b) y))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* y (+ x (/ (* t z) y))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (* a b) y))))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* a b) (* x y)))) |
#s(approx z #s(hole binary64 z)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* a b) (* x y)))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* a b))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (+ (* a b) (* t z)))) |
#s(approx (* z t) #s(hole binary64 (* t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* z (+ t (/ (* x y) z))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* t z))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* t z))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* z (+ t (/ (* a b) z))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* z (+ (* -1 t) (* -1 (/ (* a b) z))))))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* t (+ z (/ (* x y) t))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* t (+ z (/ (* a b) t))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))))) |
#s(approx (+ (* z t) (* x y)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* t (+ (* -1 z) (* -1 (/ (* a b) t))))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx a #s(hole binary64 a)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (+ (* t z) (* x y)))) |
#s(approx (* a b) #s(hole binary64 (* a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* a (+ b (/ (* x y) a))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* a b))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* a (+ b (/ (* t z) a))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (* x y) a))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* a (+ (* -1 b) (* -1 (/ (* t z) a))))))) |
#s(approx b #s(hole binary64 b)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* b (+ a (/ (* x y) b))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* b (+ a (/ (* t z) b))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))))) |
#s(approx (+ (* b a) (* y x)) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (* x y) b))))))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))))) |
#s(approx (+ (* b a) (* t z)) #s(hole binary64 (* -1 (* b (+ (* -1 a) (* -1 (/ (* t z) b))))))) |
| Outputs |
|---|
#s(approx (+ (* y x) (+ (* b a) (* t z))) (fma.f64 b a (*.f64 y x))) |
(/.f64 (-.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (*.f64 (*.f64 (neg.f64 y) x) (*.f64 (neg.f64 y) x))) (fma.f64 b a (*.f64 (neg.f64 y) x))) |
(/.f64 (-.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (*.f64 (*.f64 (neg.f64 x) y) (*.f64 (neg.f64 x) y))) (fma.f64 b a (*.f64 (neg.f64 y) x))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 b a) #s(literal 2 binary64))) (-.f64 (*.f64 y x) (*.f64 b a))) |
(/.f64 (-.f64 (pow.f64 (*.f64 b a) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 y) x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (fma.f64 (*.f64 (neg.f64 y) x) (*.f64 (neg.f64 y) x) (*.f64 (*.f64 b a) (*.f64 (neg.f64 y) x))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 b a) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 x) y) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (fma.f64 (*.f64 (neg.f64 x) y) (*.f64 (neg.f64 x) y) (*.f64 (*.f64 b a) (*.f64 (neg.f64 x) y))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 b a) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (*.f64 b a))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (neg.f64 (fma.f64 b a (*.f64 (neg.f64 y) x)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 b a) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 b a) (*.f64 y x)))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (fma.f64 b a (*.f64 (neg.f64 y) x))) |
(/.f64 (+.f64 (pow.f64 (*.f64 b a) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 b a) (*.f64 y x))))) |
(fma.f64 b a (*.f64 (neg.f64 (neg.f64 y)) x)) |
(fma.f64 b a (*.f64 (neg.f64 (neg.f64 x)) y)) |
(fma.f64 b a (*.f64 y x)) |
(fma.f64 a b (*.f64 (neg.f64 (neg.f64 y)) x)) |
(fma.f64 a b (*.f64 (neg.f64 (neg.f64 x)) y)) |
(fma.f64 a b (*.f64 y x)) |
(fma.f64 y x (*.f64 b a)) |
(fma.f64 x y (*.f64 b a)) |
(-.f64 (/.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (fma.f64 b a (*.f64 (neg.f64 y) x))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (fma.f64 b a (*.f64 (neg.f64 y) x)))) |
(-.f64 (*.f64 b a) (*.f64 (neg.f64 y) x)) |
(-.f64 (*.f64 b a) (*.f64 (neg.f64 x) y)) |
(-.f64 (*.f64 y x) (*.f64 (neg.f64 a) b)) |
(-.f64 (*.f64 y x) (*.f64 (neg.f64 b) a)) |
(+.f64 (/.f64 (pow.f64 (*.f64 b a) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 b a) (*.f64 y x))))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 b a) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 b a) (*.f64 y x)))))) |
(+.f64 (*.f64 b a) (*.f64 (neg.f64 (neg.f64 y)) x)) |
(+.f64 (*.f64 b a) (*.f64 (neg.f64 (neg.f64 x)) y)) |
(+.f64 (*.f64 b a) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 b a)) |
b |
a |
(*.f64 y x) |
(*.f64 x y) |
y |
x |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (fma.f64 t z (*.f64 y x))) |
(/.f64 (-.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (*.f64 (*.f64 (neg.f64 x) y) (*.f64 (neg.f64 x) y))) (fma.f64 t z (*.f64 (neg.f64 y) x))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 (neg.f64 z) t) (*.f64 (neg.f64 z) t))) (fma.f64 y x (*.f64 (neg.f64 t) z))) |
(/.f64 (-.f64 (pow.f64 (*.f64 t z) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 x) y) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (fma.f64 (*.f64 (neg.f64 x) y) (*.f64 (neg.f64 x) y) (*.f64 (*.f64 t z) (*.f64 (neg.f64 x) y))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 z) t) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (fma.f64 (*.f64 (neg.f64 z) t) (*.f64 (neg.f64 z) t) (*.f64 (*.f64 y x) (*.f64 (neg.f64 z) t))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 t z) #s(literal 2 binary64)))) (neg.f64 (fma.f64 y x (*.f64 (neg.f64 t) z)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (neg.f64 (fma.f64 t z (*.f64 (neg.f64 y) x)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (*.f64 t z)))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 t z) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 t z) (*.f64 y x)))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 t z) #s(literal 2 binary64))) (fma.f64 y x (*.f64 (neg.f64 t) z))) |
(/.f64 (-.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (fma.f64 t z (*.f64 (neg.f64 y) x))) |
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (*.f64 t z))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 t z) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 t z) (*.f64 y x))))) |
(fma.f64 t z (*.f64 (neg.f64 (neg.f64 x)) y)) |
(fma.f64 t z (*.f64 y x)) |
(fma.f64 z t (*.f64 (neg.f64 (neg.f64 x)) y)) |
(fma.f64 z t (*.f64 y x)) |
(fma.f64 y x (*.f64 (neg.f64 (neg.f64 z)) t)) |
(fma.f64 y x (*.f64 t z)) |
(fma.f64 x y (*.f64 (neg.f64 (neg.f64 z)) t)) |
(fma.f64 x y (*.f64 t z)) |
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (fma.f64 y x (*.f64 (neg.f64 t) z))) (/.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (fma.f64 y x (*.f64 (neg.f64 t) z)))) |
(-.f64 (/.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (fma.f64 t z (*.f64 (neg.f64 y) x))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (fma.f64 t z (*.f64 (neg.f64 y) x)))) |
(-.f64 (*.f64 t z) (*.f64 (neg.f64 y) x)) |
(-.f64 (*.f64 t z) (*.f64 (neg.f64 x) y)) |
(-.f64 (*.f64 y x) (*.f64 (neg.f64 t) z)) |
(-.f64 (*.f64 y x) (*.f64 (neg.f64 z) t)) |
(+.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (*.f64 t z))))) (/.f64 (pow.f64 (*.f64 t z) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (*.f64 t z)))))) |
(+.f64 (/.f64 (pow.f64 (*.f64 t z) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 t z) (*.f64 y x))))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 t z) (*.f64 y x)))))) |
(+.f64 (*.f64 t z) (*.f64 (neg.f64 (neg.f64 x)) y)) |
(+.f64 (*.f64 t z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 (neg.f64 (neg.f64 z)) t)) |
(+.f64 (*.f64 y x) (*.f64 t z)) |
z |
t |
(*.f64 y x) |
(*.f64 x y) |
(/.f64 (-.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (-.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) (*.f64 y x))) |
(/.f64 (+.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (+.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) (*.f64 y x))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 b a))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 2 binary64)) (*.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 b a))))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 2 binary64))) (-.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 b a)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 2 binary64)) (*.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 b a)))))) |
(fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 b a))) |
(fma.f64 x y #s(approx (+ (* b a) (* t z)) (*.f64 b a))) |
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 b a)))) (/.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 2 binary64)) (-.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 b a))))) |
(-.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) (*.f64 (neg.f64 y) x)) |
(-.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) (*.f64 (neg.f64 x) y)) |
(+.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 2 binary64)) (*.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 b a)))))) (/.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) #s(literal 2 binary64)) (*.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 b a))))))) |
(+.f64 #s(approx (+ (* b a) (* t z)) (*.f64 b a)) (*.f64 y x)) |
(+.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 b a))) |
#s(approx (+ (* b a) (* t z)) (*.f64 b a)) |
(*.f64 b a) |
(*.f64 a b) |
(/.f64 (-.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (-.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) (*.f64 y x))) |
(/.f64 (+.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (+.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) (*.f64 y x))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 t z))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 2 binary64)) (*.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 t z))))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 2 binary64))) (-.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 t z)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 2 binary64)) (*.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 t z)))))) |
(fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 t z))) |
(fma.f64 x y #s(approx (+ (* b a) (* t z)) (*.f64 t z))) |
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 t z)))) (/.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 2 binary64)) (-.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 t z))))) |
(-.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) (*.f64 (neg.f64 y) x)) |
(-.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) (*.f64 (neg.f64 x) y)) |
(+.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 2 binary64)) (*.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 t z)))))) (/.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) #s(literal 2 binary64)) (*.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 t z))))))) |
(+.f64 #s(approx (+ (* b a) (* t z)) (*.f64 t z)) (*.f64 y x)) |
(+.f64 (*.f64 y x) #s(approx (+ (* b a) (* t z)) (*.f64 t z))) |
#s(approx (+ (* b a) (* t z)) (*.f64 t z)) |
(*.f64 t z) |
(*.f64 z t) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (fma.f64 b a (*.f64 t z))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (fma.f64 b a (fma.f64 t z (*.f64 y x)))) |
#s(approx (+ (* b a) (* y x)) (*.f64 b a)) |
#s(approx (+ (* b a) (* y x)) (fma.f64 b a (*.f64 y x))) |
#s(approx (* y x) (*.f64 y x)) |
#s(approx x x) |
#s(approx (+ (* z t) (* x y)) (*.f64 t z)) |
#s(approx (+ (* z t) (* x y)) (fma.f64 t z (*.f64 y x))) |
#s(approx (* y x) (*.f64 y x)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (fma.f64 b a (*.f64 t z))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (fma.f64 b a (fma.f64 t z (*.f64 y x)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 y x)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 t z)) x) y) x)) |
#s(approx (+ (* b a) (* y x)) (*.f64 y x)) |
#s(approx (+ (* b a) (* y x)) (*.f64 (fma.f64 a (/.f64 b x) y) x)) |
#s(approx (+ (* z t) (* x y)) (*.f64 y x)) |
#s(approx (+ (* z t) (* x y)) (*.f64 (fma.f64 t (/.f64 z x) y) x)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 y x)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 t z)) x) y) x)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (neg.f64 x) (*.f64 #s(literal -1 binary64) (+.f64 (/.f64 (fma.f64 b a (*.f64 t z)) x) y)))) |
#s(approx (+ (* b a) (* y x)) (*.f64 (neg.f64 x) (*.f64 #s(literal -1 binary64) (fma.f64 a (/.f64 b x) y)))) |
#s(approx (+ (* z t) (* x y)) (*.f64 (neg.f64 x) (*.f64 #s(literal -1 binary64) (fma.f64 t (/.f64 z x) y)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (neg.f64 x) (*.f64 #s(literal -1 binary64) (+.f64 (/.f64 (fma.f64 b a (*.f64 t z)) x) y)))) |
#s(approx y y) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 t z)) y) x) y)) |
#s(approx (+ (* b a) (* y x)) (*.f64 (fma.f64 a (/.f64 b y) x) y)) |
#s(approx (+ (* z t) (* x y)) (*.f64 (fma.f64 t (/.f64 z y) x) y)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 t z)) y) x) y)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (neg.f64 y) (*.f64 #s(literal -1 binary64) (+.f64 (/.f64 (fma.f64 b a (*.f64 t z)) y) x)))) |
#s(approx (+ (* b a) (* y x)) (*.f64 (neg.f64 y) (*.f64 #s(literal -1 binary64) (fma.f64 a (/.f64 b y) x)))) |
#s(approx (+ (* z t) (* x y)) (*.f64 (neg.f64 y) (*.f64 #s(literal -1 binary64) (fma.f64 t (/.f64 z y) x)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (neg.f64 y) (*.f64 #s(literal -1 binary64) (+.f64 (/.f64 (fma.f64 b a (*.f64 t z)) y) x)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (fma.f64 b a (*.f64 y x))) |
#s(approx z z) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (fma.f64 b a (*.f64 y x))) |
#s(approx (+ (* b a) (* t z)) (*.f64 b a)) |
#s(approx (+ (* b a) (* t z)) (fma.f64 b a (*.f64 t z))) |
#s(approx (* z t) (*.f64 t z)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 t z)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 y x)) z) t) z)) |
#s(approx (+ (* z t) (* x y)) (*.f64 (fma.f64 x (/.f64 y z) t) z)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 t z)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 y x)) z) t) z)) |
#s(approx (+ (* b a) (* t z)) (*.f64 t z)) |
#s(approx (+ (* b a) (* t z)) (*.f64 (fma.f64 a (/.f64 b z) t) z)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (neg.f64 z) (*.f64 #s(literal -1 binary64) (+.f64 (/.f64 (fma.f64 b a (*.f64 y x)) z) t)))) |
#s(approx (+ (* z t) (* x y)) (*.f64 (neg.f64 z) (*.f64 #s(literal -1 binary64) (fma.f64 x (/.f64 y z) t)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (neg.f64 z) (*.f64 #s(literal -1 binary64) (+.f64 (/.f64 (fma.f64 b a (*.f64 y x)) z) t)))) |
#s(approx (+ (* b a) (* t z)) (*.f64 (neg.f64 z) (*.f64 #s(literal -1 binary64) (fma.f64 a (/.f64 b z) t)))) |
#s(approx t t) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 y x)) t) z) t)) |
#s(approx (+ (* z t) (* x y)) (*.f64 (fma.f64 x (/.f64 y t) z) t)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (+.f64 (/.f64 (fma.f64 b a (*.f64 y x)) t) z) t)) |
#s(approx (+ (* b a) (* t z)) (*.f64 (fma.f64 a (/.f64 b t) z) t)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (neg.f64 t) (*.f64 #s(literal -1 binary64) (+.f64 (/.f64 (fma.f64 b a (*.f64 y x)) t) z)))) |
#s(approx (+ (* z t) (* x y)) (*.f64 (neg.f64 t) (*.f64 #s(literal -1 binary64) (fma.f64 x (/.f64 y t) z)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (neg.f64 t) (*.f64 #s(literal -1 binary64) (+.f64 (/.f64 (fma.f64 b a (*.f64 y x)) t) z)))) |
#s(approx (+ (* b a) (* t z)) (*.f64 (neg.f64 t) (*.f64 #s(literal -1 binary64) (fma.f64 a (/.f64 b t) z)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (fma.f64 t z (*.f64 y x))) |
#s(approx a a) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (fma.f64 t z (*.f64 y x))) |
#s(approx (* a b) (*.f64 b a)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 b a)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (+.f64 (/.f64 (fma.f64 t z (*.f64 y x)) a) b) a)) |
#s(approx (+ (* b a) (* y x)) (*.f64 (fma.f64 x (/.f64 y a) b) a)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 b a)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (+.f64 (/.f64 (fma.f64 t z (*.f64 y x)) a) b) a)) |
#s(approx (+ (* b a) (* t z)) (*.f64 (fma.f64 t (/.f64 z a) b) a)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (neg.f64 a) (*.f64 #s(literal -1 binary64) (+.f64 (/.f64 (fma.f64 t z (*.f64 y x)) a) b)))) |
#s(approx (+ (* b a) (* y x)) (*.f64 (neg.f64 a) (*.f64 #s(literal -1 binary64) (fma.f64 x (/.f64 y a) b)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (neg.f64 a) (*.f64 #s(literal -1 binary64) (+.f64 (/.f64 (fma.f64 t z (*.f64 y x)) a) b)))) |
#s(approx (+ (* b a) (* t z)) (*.f64 (neg.f64 a) (*.f64 #s(literal -1 binary64) (fma.f64 t (/.f64 z a) b)))) |
#s(approx b b) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (+.f64 (/.f64 (fma.f64 t z (*.f64 y x)) b) a) b)) |
#s(approx (+ (* b a) (* y x)) (*.f64 (fma.f64 x (/.f64 y b) a) b)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (+.f64 (/.f64 (fma.f64 t z (*.f64 y x)) b) a) b)) |
#s(approx (+ (* b a) (* t z)) (*.f64 (fma.f64 t (/.f64 z b) a) b)) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (neg.f64 b) (*.f64 #s(literal -1 binary64) (+.f64 (/.f64 (fma.f64 t z (*.f64 y x)) b) a)))) |
#s(approx (+ (* b a) (* y x)) (*.f64 (neg.f64 b) (*.f64 #s(literal -1 binary64) (fma.f64 x (/.f64 y b) a)))) |
#s(approx (+ (* y x) (+ (* b a) (* t z))) (*.f64 (neg.f64 b) (*.f64 #s(literal -1 binary64) (+.f64 (/.f64 (fma.f64 t z (*.f64 y x)) b) a)))) |
#s(approx (+ (* b a) (* t z)) (*.f64 (neg.f64 b) (*.f64 #s(literal -1 binary64) (fma.f64 t (/.f64 z b) a)))) |
Compiled 4 749 to 551 computations (88.4% saved)
8 alts after pruning (0 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 181 | 0 | 181 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 4 | 4 |
| Done | 0 | 4 | 4 |
| Total | 181 | 8 | 189 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 68.8% | (fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 z t))) |
| ✓ | 67.6% | (fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 a b))) |
| ✓ | 68.4% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 x y))) |
| ✓ | 68.0% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) |
| ✓ | 66.8% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
| ✓ | 35.9% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
| ✓ | 35.5% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
| ✓ | 35.5% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
Compiled 292 to 143 computations (51% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 y x))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 x y))) |
(fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 a b))) |
(fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 z t))) |
(fma.f64 y x (fma.f64 b a (*.f64 t z))) |
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| Outputs |
|---|
(fma.f64 y x (fma.f64 b a (*.f64 t z))) |
11 calls:
| 10.0ms | z |
| 6.0ms | (*.f64 z t) |
| 4.0ms | b |
| 4.0ms | a |
| 4.0ms | t |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.2% | 1 | (*.f64 a b) |
| 99.2% | 1 | (*.f64 z t) |
| 99.2% | 1 | (*.f64 x y) |
| 99.2% | 1 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 99.2% | 1 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 99.2% | 1 | x |
| 99.2% | 1 | y |
| 99.2% | 1 | z |
| 99.2% | 1 | t |
| 99.2% | 1 | a |
| 99.2% | 1 | b |
Compiled 33 to 77 computations (-133.3% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 y x))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 x y))) |
(fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 a b))) |
(fma.f64 y x #s(approx (+ (* b a) (* t z)) (*.f64 z t))) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 y x))) |
11 calls:
| 9.0ms | (*.f64 a b) |
| 6.0ms | z |
| 3.0ms | y |
| 3.0ms | b |
| 3.0ms | a |
| Accuracy | Segments | Branch |
|---|---|---|
| 89.3% | 3 | (*.f64 a b) |
| 92.4% | 3 | (*.f64 z t) |
| 90.7% | 3 | (*.f64 x y) |
| 88.6% | 5 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 79.2% | 5 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 84.9% | 3 | x |
| 83.9% | 3 | y |
| 84.2% | 3 | z |
| 86.7% | 3 | t |
| 86.1% | 3 | a |
| 86.5% | 3 | b |
Compiled 33 to 77 computations (-133.3% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
2 calls:
| 2.0ms | (*.f64 z t) |
| 2.0ms | (*.f64 x y) |
| Accuracy | Segments | Branch |
|---|---|---|
| 85.2% | 3 | (*.f64 x y) |
| 89.5% | 3 | (*.f64 z t) |
Compiled 6 to 14 computations (-133.3% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
10 calls:
| 4.0ms | t |
| 2.0ms | b |
| 2.0ms | z |
| 2.0ms | y |
| 2.0ms | x |
| Accuracy | Segments | Branch |
|---|---|---|
| 77.3% | 3 | y |
| 70.3% | 3 | z |
| 77.7% | 3 | x |
| 80.2% | 3 | (*.f64 x y) |
| 66.8% | 1 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 70.5% | 3 | a |
| 71.7% | 3 | b |
| 66.8% | 1 | t |
| 70.7% | 3 | (*.f64 a b) |
| 72.9% | 3 | (*.f64 z t) |
Compiled 22 to 66 computations (-200% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
11 calls:
| 5.0ms | t |
| 5.0ms | x |
| 3.0ms | y |
| 3.0ms | b |
| 3.0ms | z |
| Accuracy | Segments | Branch |
|---|---|---|
| 56.0% | 5 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 59.9% | 5 | t |
| 54.3% | 4 | z |
| 56.9% | 5 | a |
| 60.7% | 4 | (*.f64 a b) |
| 59.1% | 6 | b |
| 63.5% | 5 | (*.f64 z t) |
| 48.1% | 5 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 60.6% | 6 | y |
| 58.5% | 4 | x |
| 60.8% | 4 | (*.f64 x y) |
Compiled 33 to 77 computations (-133.3% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) |
5 calls:
| 2.0ms | x |
| 2.0ms | (*.f64 a b) |
| 2.0ms | t |
| 2.0ms | (*.f64 x y) |
| 2.0ms | (*.f64 z t) |
| Accuracy | Segments | Branch |
|---|---|---|
| 54.0% | 3 | t |
| 43.5% | 2 | x |
| 56.1% | 3 | (*.f64 a b) |
| 42.8% | 3 | (*.f64 x y) |
| 56.3% | 3 | (*.f64 z t) |
Compiled 11 to 33 computations (-200% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
11 calls:
| 4.0ms | b |
| 2.0ms | (*.f64 a b) |
| 2.0ms | t |
| 2.0ms | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 2.0ms | z |
| Accuracy | Segments | Branch |
|---|---|---|
| 35.5% | 1 | (*.f64 x y) |
| 35.5% | 1 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 35.5% | 1 | x |
| 35.5% | 1 | z |
| 35.5% | 1 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 35.5% | 1 | a |
| 35.5% | 1 | t |
| 35.5% | 1 | b |
| 35.5% | 1 | y |
| 35.5% | 1 | (*.f64 a b) |
| 35.5% | 1 | (*.f64 z t) |
Compiled 33 to 77 computations (-133.3% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 7.655762206837031e-82 | 4.395068923826456e-78 |
| 0.0ms | -1.306940564495181e+84 | -2.0293344832556677e+74 |
Compiled 14 to 20 computations (-42.9% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 4.395068923826456e-78 | 7.674081584919921e-75 |
| 0.0ms | -1.306940564495181e+84 | -2.0293344832556677e+74 |
Compiled 14 to 20 computations (-42.9% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.0588783983137148e+85 | 1.0937756718626219e+86 |
| 0.0ms | -2.3382086554924117e+135 | -3.895893910768155e+133 |
Compiled 14 to 20 computations (-42.9% saved)
| 4× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 4.395068923826456e-78 | 7.674081584919921e-75 |
| 0.0ms | -4.979581032092775e-150 | -1.2394937882818517e-160 |
| 0.0ms | -1.3497891953818084e+37 | -9419016615361118.0 |
| 0.0ms | -1.9495041692932724e+114 | -5.999401204638075e+110 |
Compiled 14 to 20 computations (-42.9% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 4.395068923826456e-78 | 7.674081584919921e-75 |
| 0.0ms | -1.9495041692932724e+114 | -5.999401204638075e+110 |
Compiled 14 to 20 computations (-42.9% saved)
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 53 | 327 |
| 1 | 74 | 327 |
| 2 | 112 | 327 |
| 3 | 179 | 327 |
| 4 | 254 | 327 |
| 5 | 265 | 327 |
| 6 | 279 | 327 |
| 7 | 280 | 327 |
| 1× | saturated |
| Inputs |
|---|
(fma.f64 y x (fma.f64 b a (*.f64 t z))) |
(if (<=.f64 (*.f64 z t) #s(literal -1000000000000000057766609898115896702437267127096064137098041863234712334016924614656 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) (if (<=.f64 (*.f64 z t) #s(literal 1067993517960455/1067993517960455041197510853084776057301352261178326384973520803911109862890320275011481043468288 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 y x))))) |
(if (<=.f64 (*.f64 z t) #s(literal -1000000000000000057766609898115896702437267127096064137098041863234712334016924614656 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) (if (<=.f64 (*.f64 z t) #s(literal 1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))))) |
(if (<=.f64 (*.f64 x y) #s(literal -1999999999999999923659381683629879726898470672553570302890808246910200808111311381352383420329189120737404579161064142182622522767310848 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) (if (<=.f64 (*.f64 x y) #s(literal 20000000000000000292613904613497460619400859757293101185572215743395927285022964318208 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)))) |
(if (<=.f64 (*.f64 z t) #s(literal -1000000000000000015559416129466843024268201396921061433369770580430833781164755703264985389915047447676206280867840 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) (if (<=.f64 (*.f64 z t) #s(literal -9999999999999999538762658202121142272 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) (if (<=.f64 (*.f64 z t) #s(literal -7371020360979573/1842755090244893238399196572748178169393027939656465052918069482541808673043041431682679065028153695088607604995490158642466105776330465152617887818082371115063181312 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) (if (<=.f64 (*.f64 z t) #s(literal 1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)))))) |
(if (<=.f64 (*.f64 z t) #s(literal -1000000000000000015559416129466843024268201396921061433369770580430833781164755703264985389915047447676206280867840 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) (if (<=.f64 (*.f64 z t) #s(literal 1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
| Outputs |
|---|
(fma.f64 y x (fma.f64 b a (*.f64 t z))) |
(if (<=.f64 (*.f64 z t) #s(literal -1000000000000000057766609898115896702437267127096064137098041863234712334016924614656 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) (if (<=.f64 (*.f64 z t) #s(literal 1067993517960455/1067993517960455041197510853084776057301352261178326384973520803911109862890320275011481043468288 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 y x))))) |
(if (<=.f64 (*.f64 z t) #s(literal -1000000000000000057766609898115896702437267127096064137098041863234712334016924614656 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) (if (<=.f64 (*.f64 z t) #s(literal 1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))))) |
(if (or (<=.f64 (*.f64 z t) #s(literal -1000000000000000057766609898115896702437267127096064137098041863234712334016924614656 binary64)) (not (<=.f64 (*.f64 z t) #s(literal 1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 binary64)))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x)))) |
(if (<=.f64 (*.f64 x y) #s(literal -1999999999999999923659381683629879726898470672553570302890808246910200808111311381352383420329189120737404579161064142182622522767310848 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) (if (<=.f64 (*.f64 x y) #s(literal 20000000000000000292613904613497460619400859757293101185572215743395927285022964318208 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)))) |
(if (or (<=.f64 (*.f64 x y) #s(literal -1999999999999999923659381683629879726898470672553570302890808246910200808111311381352383420329189120737404579161064142182622522767310848 binary64)) (not (<=.f64 (*.f64 x y) #s(literal 20000000000000000292613904613497460619400859757293101185572215743395927285022964318208 binary64)))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z)))) |
(if (<=.f64 (*.f64 z t) #s(literal -1000000000000000015559416129466843024268201396921061433369770580430833781164755703264985389915047447676206280867840 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) (if (<=.f64 (*.f64 z t) #s(literal -9999999999999999538762658202121142272 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) (if (<=.f64 (*.f64 z t) #s(literal -7371020360979573/1842755090244893238399196572748178169393027939656465052918069482541808673043041431682679065028153695088607604995490158642466105776330465152617887818082371115063181312 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y x)) (if (<=.f64 (*.f64 z t) #s(literal 1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)))))) |
(if (<=.f64 (*.f64 z t) #s(literal -1000000000000000015559416129466843024268201396921061433369770580430833781164755703264985389915047447676206280867840 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) (if (<=.f64 (*.f64 z t) #s(literal 1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)))) |
(if (or (<=.f64 (*.f64 z t) #s(literal -1000000000000000015559416129466843024268201396921061433369770580430833781164755703264985389915047447676206280867840 binary64)) (not (<=.f64 (*.f64 z t) #s(literal 1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 binary64)))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t z)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b a)) |
| 1× | done |
Compiled 327 to 56 computations (82.9% saved)
(sort a b)
(sort z t)
(sort x y)
Compiled 730 to 188 computations (74.2% saved)
Loading profile data...