
Time bar (total: 2.8s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 4 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 5 |
| 50% | 49.9% | 49.9% | 0.2% | 0% | 0% | 0% | 6 |
| 50% | 49.9% | 49.9% | 0.2% | 0% | 0% | 0% | 7 |
| 50% | 49.9% | 49.9% | 0.2% | 0% | 0% | 0% | 8 |
| 50% | 49.9% | 49.9% | 0.2% | 0% | 0% | 0% | 9 |
| 50% | 49.9% | 49.9% | 0.2% | 0% | 0% | 0% | 10 |
| 75% | 74.8% | 24.9% | 0.2% | 0% | 0% | 0% | 11 |
| 75% | 74.8% | 24.9% | 0.2% | 0% | 0% | 0% | 12 |
Compiled 11 to 11 computations (0% saved)
| 560.0ms | 8 256× | 0 | valid |
ival-mult: 136.0ms (48.2% of total)ival-div: 103.0ms (36.5% of total)ival-sub: 38.0ms (13.5% of total)ival-assert: 3.0ms (1.1% of total)adjust: 2.0ms (0.7% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 16 | 0 | - | 0 | - | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| 3 | 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 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
/.f64 | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) | o/n | 15 | 0 |
| ↳ | (*.f64 x y) | overflow | 38 | |
| ↳ | (*.f64 z t) | overflow | 31 | |
| ↳ | (-.f64 (*.f64 x y) (*.f64 z t)) | overflow | 63 | |
-.f64 | (-.f64 (*.f64 x y) (*.f64 z t)) | nan-rescue | 3 | 0 |
| ↳ | (*.f64 x y) | overflow | 38 | |
| ↳ | (*.f64 z t) | overflow | 31 | |
/.f64 | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) | u/n | 1 | 0 |
| ↳ | (*.f64 x y) | underflow | 22 | |
| ↳ | (*.f64 z t) | underflow | 35 | |
| ↳ | (-.f64 (*.f64 x y) (*.f64 z t)) | underflow | 2 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 18 | 0 |
| - | 0 | 238 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 18 | 0 | 0 |
| - | 0 | 0 | 238 |
| number | freq |
|---|---|
| 0 | 238 |
| 1 | 17 |
| 2 | 1 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 35.0ms | 512× | 0 | valid |
Compiled 67 to 31 computations (53.7% saved)
ival-mult: 7.0ms (48.4% of total)ival-div: 4.0ms (27.7% of total)ival-sub: 2.0ms (13.8% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 64 | 194 |
| 1 | 162 | 194 |
| 2 | 363 | 194 |
| 3 | 749 | 193 |
| 4 | 1300 | 193 |
| 5 | 1662 | 193 |
| 6 | 1662 | 193 |
| 0 | 9 | 9 |
| 0 | 13 | 9 |
| 1 | 21 | 9 |
| 2 | 40 | 9 |
| 3 | 72 | 9 |
| 4 | 130 | 9 |
| 5 | 188 | 9 |
| 6 | 237 | 9 |
| 7 | 250 | 9 |
| 8 | 254 | 9 |
| 0 | 254 | 9 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| Outputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(/.f64 (fma.f64 (neg.f64 t) z (*.f64 y x)) a) |
(negabs a)
(sort x y)
(sort z t)
Compiled 9 to 9 computations (0% saved)
Compiled 0 to 5 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 93.1% | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
Compiled 9 to 9 computations (0% saved)
| Inputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
x |
y |
(*.f64 z t) |
z |
t |
a |
| Outputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* -1 (/ (* t z) a)))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (+ (* -1 (/ (* t z) a)) (/ (* x y) a)))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* -1 (* t z)))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (- (* x y) (* t z)))) |
#s(approx (* x y) #s(hole binary64 (* x y))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (/ (* x y) a))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* x y))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* x (+ y (* -1 (/ (* t z) x)))))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (* t z) x)))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* y (+ x (* -1 (/ (* t z) y)))))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (/ (* t z) y)))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (+ (* -1 (* t z)) (* 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) #s(hole binary64 (* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* z (- (/ (* x y) z) t)))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 t)))))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* t (- (/ (* x y) t) z)))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* -1 (* t (- (* -1 (/ (* x y) t)) (* -1 z)))))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (/ (- (* x y) (* t z)) a))) |
#s(approx a #s(hole binary64 a)) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | t | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) x y (* z t) z t a) |
| 1.0ms | y | @ | inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) x y (* z t) z t a) |
| 1.0ms | x | @ | inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) x y (* z t) z t a) |
| 1.0ms | x | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) x y (* z t) z t a) |
| 1.0ms | x | @ | 0 | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) x y (* z t) z t a) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 126 | 554 |
| 0 | 132 | 526 |
| 1 | 640 | 516 |
| 2 | 5462 | 514 |
| 0 | 8460 | 504 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
x |
y |
(*.f64 z t) |
z |
t |
a |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* -1 (/ (* t z) a)))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (+ (* -1 (/ (* t z) a)) (/ (* x y) a)))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* -1 (* t z)))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (- (* x y) (* t z)))) |
#s(approx (* x y) #s(hole binary64 (* x y))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (/ (* x y) a))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* x y))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* x (+ y (* -1 (/ (* t z) x)))))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (* t z) x)))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* y (+ x (* -1 (/ (* t z) y)))))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (/ (* t z) y)))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (+ (* -1 (* t z)) (* 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) #s(hole binary64 (* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* z (- (/ (* x y) z) t)))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 t)))))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* t (- (/ (* x y) t) z)))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))))) |
#s(approx (- (* x y) (* z t)) #s(hole binary64 (* -1 (* t (- (* -1 (/ (* x y) t)) (* -1 z)))))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(hole binary64 (/ (- (* x y) (* t z)) a))) |
#s(approx a #s(hole binary64 a)) |
| Outputs |
|---|
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 2 binary64))) (fma.f64 (/.f64 x a) y (/.f64 (*.f64 t z) a))) |
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 2 binary64))) (-.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 z) (/.f64 t a)))) |
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (+.f64 (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 2 binary64)) (*.f64 (/.f64 (*.f64 y x) a) (/.f64 (*.f64 t z) a))))) |
(/.f64 (neg.f64 (neg.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)))) (neg.f64 (neg.f64 a))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)))) (neg.f64 (/.f64 (fma.f64 (neg.f64 z) t (*.f64 (neg.f64 x) y)) a))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (/.f64 (*.f64 y x) a) (-.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 z) (/.f64 t a))) (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 2 binary64))))) |
(/.f64 (-.f64 (*.f64 (*.f64 (neg.f64 x) y) (neg.f64 a)) (*.f64 (neg.f64 a) (*.f64 (neg.f64 z) t))) (pow.f64 (neg.f64 a) #s(literal 2 binary64))) |
(/.f64 (-.f64 (*.f64 (*.f64 (neg.f64 x) y) a) (*.f64 (neg.f64 a) (*.f64 t z))) (*.f64 (neg.f64 a) a)) |
(/.f64 (-.f64 (*.f64 (*.f64 y x) (neg.f64 a)) (*.f64 a (*.f64 (neg.f64 z) t))) (*.f64 a (neg.f64 a))) |
(/.f64 (-.f64 (*.f64 (*.f64 y x) a) (*.f64 a (*.f64 t z))) (*.f64 a a)) |
(/.f64 (fma.f64 (*.f64 (neg.f64 x) y) a (*.f64 (neg.f64 a) (*.f64 (neg.f64 z) t))) (*.f64 (neg.f64 a) a)) |
(/.f64 (fma.f64 (*.f64 y x) a (*.f64 a (*.f64 (neg.f64 z) t))) (*.f64 a a)) |
(/.f64 (fma.f64 (*.f64 (neg.f64 z) t) (neg.f64 a) (*.f64 a (*.f64 (neg.f64 x) y))) (*.f64 a (neg.f64 a))) |
(/.f64 (fma.f64 (*.f64 (neg.f64 z) t) a (*.f64 a (*.f64 y x))) (*.f64 a a)) |
(/.f64 (-.f64 (*.f64 (neg.f64 x) y) (*.f64 (neg.f64 z) t)) (neg.f64 a)) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 t z) #s(literal 2 binary64))) (*.f64 (fma.f64 t z (*.f64 y x)) a)) |
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64))) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 (neg.f64 x) y)) a)) |
(/.f64 (-.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (*.f64 (fma.f64 (neg.f64 z) t (*.f64 (neg.f64 x) y)) a)) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64))) (*.f64 (fma.f64 (*.f64 t z) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) a)) |
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 2 binary64)) (*.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 z) (/.f64 t a)))))) |
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 3 binary64))) (fma.f64 (/.f64 (*.f64 y x) a) (-.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 z) (/.f64 t a))) (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 2 binary64)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64))) (*.f64 (fma.f64 (*.f64 y x) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 t z) #s(literal 2 binary64))) a)) |
(/.f64 (neg.f64 (fma.f64 (neg.f64 z) t (*.f64 y x))) (neg.f64 a)) |
(/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a) |
(neg.f64 (/.f64 (neg.f64 (fma.f64 (neg.f64 z) t (*.f64 y x))) a)) |
(neg.f64 (/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) (neg.f64 a))) |
(fma.f64 (neg.f64 z) (/.f64 t a) (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 (neg.f64 z) a) t (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 z a) (neg.f64 t) (/.f64 (*.f64 y x) a)) |
(fma.f64 (neg.f64 t) (/.f64 z a) (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 (neg.f64 t) a) z (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 t a) (neg.f64 z) (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 x a) y (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 (/.f64 y a) x (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 (/.f64 (*.f64 t z) a) #s(literal -1 binary64) (/.f64 (*.f64 y x) a)) |
(fma.f64 (*.f64 t z) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 y x) a)) |
(fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) a) (/.f64 (*.f64 y x) a)) |
(fma.f64 t (/.f64 (neg.f64 z) a) (/.f64 (*.f64 y x) a)) |
(fma.f64 z (/.f64 (neg.f64 t) a) (/.f64 (*.f64 y x) a)) |
(fma.f64 y (/.f64 x a) (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 x (/.f64 y a) (*.f64 (neg.f64 z) (/.f64 t a))) |
(-.f64 (/.f64 (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 2 binary64)) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 (neg.f64 x) y)) a)) (/.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 (neg.f64 x) y)) a))) |
(-.f64 (/.f64 (*.f64 y x) a) (*.f64 (*.f64 (neg.f64 z) (/.f64 t a)) #s(literal -1 binary64))) |
(-.f64 (/.f64 (*.f64 y x) a) (*.f64 #s(literal 1 binary64) (/.f64 (*.f64 t z) a))) |
(-.f64 (/.f64 (*.f64 y x) a) (/.f64 (*.f64 t z) a)) |
(-.f64 (*.f64 (neg.f64 z) (/.f64 t a)) (/.f64 (*.f64 (neg.f64 x) y) a)) |
(+.f64 (/.f64 (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 3 binary64)) (fma.f64 (/.f64 (*.f64 y x) a) (-.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 z) (/.f64 t a))) (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (fma.f64 (/.f64 (*.f64 y x) a) (-.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 z) (/.f64 t a))) (pow.f64 (/.f64 (*.f64 t z) a) #s(literal 2 binary64))))) |
(+.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 z) (/.f64 t a))) |
(+.f64 (*.f64 (neg.f64 z) (/.f64 t a)) (/.f64 (*.f64 y x) a)) |
(/.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 (neg.f64 z) t) (*.f64 (neg.f64 x) y))))) |
(/.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 t z (*.f64 y x)))) |
(/.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 (neg.f64 z) t (*.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 (fma.f64 (*.f64 t z) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 y x) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 t z) #s(literal 2 binary64))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 t z) #s(literal 2 binary64))) (fma.f64 t z (*.f64 y x))) |
(/.f64 (-.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (fma.f64 (neg.f64 z) t (*.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))) (fma.f64 (*.f64 t z) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) |
(/.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 (neg.f64 t) (*.f64 z (*.f64 y x)))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64))) (fma.f64 (*.f64 y x) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 t z) #s(literal 2 binary64)))) |
(fma.f64 (neg.f64 z) t (*.f64 (neg.f64 (neg.f64 x)) y)) |
(fma.f64 (neg.f64 z) t (*.f64 y x)) |
(fma.f64 (neg.f64 t) z (*.f64 (neg.f64 (neg.f64 x)) y)) |
(fma.f64 (neg.f64 t) z (*.f64 y x)) |
(fma.f64 (*.f64 t z) #s(literal -1 binary64) (*.f64 (neg.f64 (neg.f64 x)) y)) |
(fma.f64 (*.f64 t z) #s(literal -1 binary64) (*.f64 y x)) |
(fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 (neg.f64 (neg.f64 x)) y)) |
(fma.f64 #s(literal -1 binary64) (*.f64 t z) (*.f64 y x)) |
(fma.f64 t (neg.f64 z) (*.f64 (neg.f64 (neg.f64 x)) y)) |
(fma.f64 t (neg.f64 z) (*.f64 y x)) |
(fma.f64 z (neg.f64 t) (*.f64 (neg.f64 (neg.f64 x)) y)) |
(fma.f64 z (neg.f64 t) (*.f64 y x)) |
(fma.f64 y x (*.f64 (neg.f64 z) t)) |
(fma.f64 x y (*.f64 (neg.f64 z) t)) |
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (fma.f64 t z (*.f64 y x))) (/.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (fma.f64 t z (*.f64 y x)))) |
(-.f64 (/.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (fma.f64 (neg.f64 z) t (*.f64 (neg.f64 x) y))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (fma.f64 (neg.f64 z) t (*.f64 (neg.f64 x) y)))) |
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 (*.f64 t z) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 t z) #s(literal 3 binary64)) (fma.f64 (*.f64 t z) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))))) |
(-.f64 (*.f64 (neg.f64 z) t) (*.f64 (neg.f64 x) y)) |
(-.f64 (*.f64 y x) (*.f64 (*.f64 (neg.f64 z) t) #s(literal -1 binary64))) |
(-.f64 (*.f64 y x) (*.f64 #s(literal 1 binary64) (*.f64 t z))) |
(-.f64 (*.f64 y x) (*.f64 t z)) |
(+.f64 (/.f64 (pow.f64 (*.f64 t z) #s(literal 3 binary64)) (fma.f64 (*.f64 y x) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 t z) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 (*.f64 y x) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 t z) #s(literal 2 binary64))))) |
(+.f64 (*.f64 (neg.f64 z) t) (*.f64 (neg.f64 (neg.f64 x)) y)) |
(+.f64 (*.f64 (neg.f64 z) t) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 (neg.f64 z) t)) |
(*.f64 y x) |
(*.f64 x y) |
x |
y |
(*.f64 t z) |
(*.f64 z t) |
z |
t |
a |
#s(approx (/ (- (* x y) (* z t)) a) (*.f64 (neg.f64 z) (/.f64 t a))) |
#s(approx (/ (- (* x y) (* z t)) a) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a)) |
#s(approx (- (* x y) (* z t)) (*.f64 (neg.f64 z) t)) |
#s(approx (- (* x y) (* z t)) (fma.f64 (neg.f64 z) t (*.f64 y x))) |
#s(approx (* x y) (*.f64 y x)) |
#s(approx x x) |
#s(approx (/ (- (* x y) (* z t)) a) (/.f64 (*.f64 y x) a)) |
#s(approx (/ (- (* x y) (* z t)) a) (*.f64 (fma.f64 (/.f64 (neg.f64 t) x) (/.f64 z a) (/.f64 y a)) x)) |
#s(approx (- (* x y) (* z t)) (*.f64 y x)) |
#s(approx (- (* x y) (* z t)) (*.f64 (-.f64 y (/.f64 (*.f64 t z) x)) x)) |
#s(approx (/ (- (* x y) (* z t)) a) (*.f64 (fma.f64 (/.f64 (neg.f64 t) x) (/.f64 z a) (/.f64 y a)) x)) |
#s(approx (- (* x y) (* z t)) (*.f64 (neg.f64 x) (-.f64 y (/.f64 (*.f64 t z) x)))) |
#s(approx y y) |
#s(approx (/ (- (* x y) (* z t)) a) (*.f64 (fma.f64 (/.f64 t y) (/.f64 z a) (/.f64 (neg.f64 x) a)) y)) |
#s(approx (- (* x y) (* z t)) (*.f64 (-.f64 x (/.f64 (*.f64 t z) y)) y)) |
#s(approx (/ (- (* x y) (* z t)) a) (*.f64 (fma.f64 (/.f64 t y) (/.f64 z a) (/.f64 (neg.f64 x) a)) y)) |
#s(approx (- (* x y) (* z t)) (*.f64 (-.f64 x (/.f64 (*.f64 t z) y)) (neg.f64 y))) |
#s(approx (- (* x y) (* z t)) (fma.f64 (neg.f64 z) t (*.f64 y x))) |
#s(approx (* z t) (*.f64 t z)) |
#s(approx z z) |
#s(approx (/ (- (* x y) (* z t)) a) (*.f64 (fma.f64 (/.f64 x z) (/.f64 y a) (/.f64 (neg.f64 t) a)) z)) |
#s(approx (- (* x y) (* z t)) (*.f64 (-.f64 (/.f64 (*.f64 y x) z) t) z)) |
#s(approx (/ (- (* x y) (* z t)) a) (*.f64 (neg.f64 z) (fma.f64 (/.f64 x z) (/.f64 y a) (/.f64 (neg.f64 t) a)))) |
#s(approx (- (* x y) (* z t)) (*.f64 (neg.f64 z) (fma.f64 (neg.f64 x) (/.f64 y z) t))) |
#s(approx t t) |
#s(approx (/ (- (* x y) (* z t)) a) (*.f64 (fma.f64 (/.f64 x t) (/.f64 y a) (/.f64 (neg.f64 z) a)) t)) |
#s(approx (- (* x y) (* z t)) (*.f64 (-.f64 (/.f64 (*.f64 y x) t) z) t)) |
#s(approx (/ (- (* x y) (* z t)) a) (*.f64 (fma.f64 (/.f64 x t) (/.f64 y a) (/.f64 (neg.f64 z) a)) (neg.f64 t))) |
#s(approx (- (* x y) (* z t)) (*.f64 (fma.f64 (neg.f64 x) (/.f64 y t) z) (neg.f64 t))) |
#s(approx (/ (- (* x y) (* z t)) a) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a)) |
#s(approx a a) |
Compiled 2 124 to 349 computations (83.6% saved)
6 alts after pruning (6 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 114 | 6 | 120 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 115 | 6 | 121 |
| Status | Accuracy | Program |
|---|---|---|
| 89.3% | (fma.f64 (/.f64 y a) x (*.f64 (neg.f64 z) (/.f64 t a))) | |
| 91.8% | (fma.f64 (/.f64 x a) y (*.f64 (neg.f64 z) (/.f64 t a))) | |
| ▶ | 91.9% | (fma.f64 (*.f64 t z) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 y x) a)) |
| 30.9% | (/.f64 (/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64))) (fma.f64 (*.f64 t z) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) a) | |
| 87.7% | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 (neg.f64 z) (fma.f64 (neg.f64 x) (/.f64 y z) t))) a) | |
| 76.6% | #s(approx (/ (- (* x y) (* z t)) a) (*.f64 (fma.f64 (/.f64 (neg.f64 t) x) (/.f64 z a) (/.f64 y a)) x)) |
Compiled 212 to 158 computations (25.5% saved)
| Inputs |
|---|
(fma.f64 (*.f64 t z) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 y x) a)) |
(*.f64 t z) |
t |
z |
(/.f64 #s(literal -1 binary64) a) |
#s(literal -1 binary64) |
a |
(/.f64 (*.f64 y x) a) |
(*.f64 y x) |
y |
x |
| Outputs |
|---|
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* -1 (/ (* t z) a)))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (+ (* -1 (/ (* t z) a)) (/ (* x y) a)))) |
#s(approx (/ (* y x) a) #s(hole binary64 (/ (* x y) a))) |
#s(approx (* y x) #s(hole binary64 (* x y))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (/ (* x y) a))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))))) |
#s(approx (* t z) #s(hole binary64 (* t z))) |
#s(approx z #s(hole binary64 z)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (/ (+ (* -1 (* t z)) (* x y)) a))) |
#s(approx (/ -1 a) #s(hole binary64 (/ -1 a))) |
#s(approx a #s(hole binary64 a)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* -1 (/ (+ (* -1 (* x y)) (* t z)) a)))) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | y | @ | -inf | ((+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (* t z) t z (/ -1 a) -1 a (/ (* y x) a) (* y x) y x) |
| 1.0ms | a | @ | inf | ((+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (* t z) t z (/ -1 a) -1 a (/ (* y x) a) (* y x) y x) |
| 1.0ms | a | @ | 0 | ((+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (* t z) t z (/ -1 a) -1 a (/ (* y x) a) (* y x) y x) |
| 1.0ms | x | @ | -inf | ((+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (* t z) t z (/ -1 a) -1 a (/ (* y x) a) (* y x) y x) |
| 1.0ms | a | @ | -inf | ((+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (* t z) t z (/ -1 a) -1 a (/ (* y x) a) (* y x) y x) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 91 | 425 |
| 0 | 95 | 375 |
| 1 | 449 | 375 |
| 2 | 3949 | 375 |
| 0 | 8201 | 350 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(fma.f64 (*.f64 t z) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 y x) a)) |
(*.f64 t z) |
t |
z |
(/.f64 #s(literal -1 binary64) a) |
#s(literal -1 binary64) |
a |
(/.f64 (*.f64 y x) a) |
(*.f64 y x) |
y |
x |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* -1 (/ (* t z) a)))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (+ (* -1 (/ (* t z) a)) (/ (* x y) a)))) |
#s(approx (/ (* y x) a) #s(hole binary64 (/ (* x y) a))) |
#s(approx (* y x) #s(hole binary64 (* x y))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (/ (* x y) a))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))))) |
#s(approx (* t z) #s(hole binary64 (* t z))) |
#s(approx z #s(hole binary64 z)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (/ (+ (* -1 (* t z)) (* x y)) a))) |
#s(approx (/ -1 a) #s(hole binary64 (/ -1 a))) |
#s(approx a #s(hole binary64 a)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) #s(hole binary64 (* -1 (/ (+ (* -1 (* x y)) (* t z)) a)))) |
| Outputs |
|---|
(*.f64 (/.f64 (fma.f64 (neg.f64 x) y (*.f64 z t)) a) #s(literal -1 binary64)) |
(*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 (neg.f64 x) y (*.f64 z t)) a)) |
(/.f64 (*.f64 (neg.f64 (fma.f64 (neg.f64 x) y (*.f64 z t))) #s(literal -1 binary64)) (neg.f64 a)) |
(/.f64 (*.f64 #s(literal -1 binary64) (neg.f64 (fma.f64 (neg.f64 x) y (*.f64 z t)))) (neg.f64 a)) |
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 x y) a) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64))) (-.f64 (*.f64 (neg.f64 x) (/.f64 y a)) (/.f64 (*.f64 z t) a))) |
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 x y) a) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64))) (-.f64 (/.f64 (*.f64 x y) a) (*.f64 (neg.f64 z) (/.f64 t a)))) |
(/.f64 (neg.f64 (neg.f64 (fma.f64 (neg.f64 x) y (*.f64 z t)))) (neg.f64 (neg.f64 a))) |
(/.f64 (neg.f64 (neg.f64 (fma.f64 (neg.f64 x) y (*.f64 z t)))) (neg.f64 a)) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 x y) a) #s(literal 2 binary64)))) (neg.f64 (/.f64 (fma.f64 (neg.f64 z) t (*.f64 (neg.f64 x) y)) a))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 (*.f64 x y) a) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (/.f64 (*.f64 x y) a) (-.f64 (/.f64 (*.f64 x y) a) (*.f64 (neg.f64 z) (/.f64 t a))) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64))))) |
(/.f64 (fma.f64 (*.f64 (neg.f64 x) y) (neg.f64 a) (*.f64 a (*.f64 (neg.f64 z) t))) (*.f64 a (neg.f64 a))) |
(/.f64 (fma.f64 (*.f64 (neg.f64 x) y) a (*.f64 a (*.f64 z t))) (*.f64 a a)) |
(/.f64 (fma.f64 (*.f64 (neg.f64 x) y) a (*.f64 (neg.f64 a) (*.f64 (neg.f64 z) t))) (*.f64 (neg.f64 a) a)) |
(/.f64 (fma.f64 (*.f64 x y) a (*.f64 a (*.f64 (neg.f64 z) t))) (*.f64 a a)) |
(/.f64 (fma.f64 (*.f64 (neg.f64 z) t) (neg.f64 a) (*.f64 a (*.f64 (neg.f64 x) y))) (*.f64 a (neg.f64 a))) |
(/.f64 (fma.f64 (*.f64 (neg.f64 z) t) a (*.f64 a (*.f64 x y))) (*.f64 a a)) |
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 x y) a) #s(literal 2 binary64))) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 (neg.f64 x) y)) a)) |
(/.f64 (-.f64 (pow.f64 (*.f64 z t) #s(literal 2 binary64)) (pow.f64 (*.f64 x y) #s(literal 2 binary64))) (*.f64 (fma.f64 (neg.f64 z) t (*.f64 (neg.f64 x) y)) a)) |
(/.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 (*.f64 z t) #s(literal 2 binary64))) (*.f64 (fma.f64 (neg.f64 x) y (*.f64 (neg.f64 z) t)) a)) |
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 x y) a) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (*.f64 x y) a) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)) (*.f64 (*.f64 (neg.f64 x) (/.f64 y a)) (/.f64 (*.f64 z t) a))))) |
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 x y) a) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (*.f64 x y) a) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)) (*.f64 (/.f64 (*.f64 x y) a) (*.f64 (neg.f64 z) (/.f64 t a)))))) |
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 x y) a) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 3 binary64))) (fma.f64 (/.f64 (*.f64 x y) a) (-.f64 (/.f64 (*.f64 x y) a) (*.f64 (neg.f64 z) (/.f64 t a))) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (pow.f64 (*.f64 z t) #s(literal 3 binary64))) (*.f64 (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 (neg.f64 x) y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64))) a)) |
(/.f64 (+.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (pow.f64 (*.f64 z t) #s(literal 3 binary64))) (*.f64 (fma.f64 (*.f64 x y) (-.f64 (*.f64 x y) (*.f64 (neg.f64 z) t)) (pow.f64 (*.f64 z t) #s(literal 2 binary64))) a)) |
(/.f64 (neg.f64 (fma.f64 (neg.f64 x) y (*.f64 z t))) (neg.f64 (neg.f64 a))) |
(/.f64 (neg.f64 (fma.f64 (neg.f64 x) y (*.f64 z t))) (neg.f64 a)) |
(/.f64 (neg.f64 (fma.f64 (neg.f64 x) y (*.f64 z t))) a) |
(/.f64 (fma.f64 (neg.f64 x) y (*.f64 z t)) (neg.f64 a)) |
(/.f64 (fma.f64 (neg.f64 x) y (*.f64 z t)) a) |
(neg.f64 (/.f64 (fma.f64 (neg.f64 x) y (*.f64 z t)) a)) |
(fma.f64 (*.f64 (/.f64 #s(literal -1 binary64) a) t) z (/.f64 (*.f64 x y) a)) |
(fma.f64 (*.f64 (neg.f64 x) (/.f64 y a)) #s(literal -1 binary64) (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 (neg.f64 x) (/.f64 (neg.f64 y) a) (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 (neg.f64 x) (/.f64 y a) (/.f64 (*.f64 z t) a)) |
(fma.f64 (neg.f64 y) (/.f64 x a) (/.f64 (*.f64 z t) a)) |
(fma.f64 (neg.f64 z) (/.f64 t a) (/.f64 (*.f64 x y) a)) |
(fma.f64 (neg.f64 t) (/.f64 (neg.f64 z) a) (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 (neg.f64 t) (/.f64 z a) (/.f64 (*.f64 x y) a)) |
(fma.f64 (/.f64 (neg.f64 z) a) t (/.f64 (*.f64 x y) a)) |
(fma.f64 (/.f64 z a) (neg.f64 t) (/.f64 (*.f64 x y) a)) |
(fma.f64 (/.f64 z a) t (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 (/.f64 (neg.f64 t) a) z (/.f64 (*.f64 x y) a)) |
(fma.f64 (/.f64 t a) (neg.f64 z) (/.f64 (*.f64 x y) a)) |
(fma.f64 (/.f64 t a) z (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 (/.f64 (neg.f64 x) a) y (/.f64 (*.f64 z t) a)) |
(fma.f64 (/.f64 x a) (neg.f64 y) (/.f64 (*.f64 z t) a)) |
(fma.f64 (/.f64 x a) y (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 (/.f64 (neg.f64 y) a) x (/.f64 (*.f64 z t) a)) |
(fma.f64 (/.f64 y a) (neg.f64 x) (/.f64 (*.f64 z t) a)) |
(fma.f64 (/.f64 y a) x (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 (/.f64 (*.f64 x y) a) #s(literal -1 binary64) (/.f64 (*.f64 z t) a)) |
(fma.f64 (*.f64 x y) (/.f64 #s(literal -1 binary64) (neg.f64 a)) (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 (*.f64 x y) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 z t) a)) |
(fma.f64 (/.f64 (*.f64 z t) a) #s(literal -1 binary64) (/.f64 (*.f64 x y) a)) |
(fma.f64 (/.f64 #s(literal -1 binary64) a) (*.f64 z t) (/.f64 (*.f64 x y) a)) |
(fma.f64 (*.f64 z t) (/.f64 #s(literal -1 binary64) (neg.f64 a)) (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 (*.f64 z t) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 x y) a)) |
(fma.f64 x (/.f64 (neg.f64 y) a) (/.f64 (*.f64 z t) a)) |
(fma.f64 x (/.f64 y a) (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 y (/.f64 (neg.f64 x) a) (/.f64 (*.f64 z t) a)) |
(fma.f64 y (/.f64 x a) (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) (neg.f64 a)) (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 #s(literal -1 binary64) (*.f64 (neg.f64 x) (/.f64 y a)) (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) a) (/.f64 (*.f64 z t) a)) |
(fma.f64 #s(literal -1 binary64) (*.f64 (neg.f64 z) (/.f64 t a)) (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 z t) a) (/.f64 (*.f64 x y) a)) |
(fma.f64 z (*.f64 t (/.f64 #s(literal -1 binary64) a)) (/.f64 (*.f64 x y) a)) |
(fma.f64 z (/.f64 (neg.f64 t) a) (/.f64 (*.f64 x y) a)) |
(fma.f64 z (/.f64 t a) (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 t (/.f64 (neg.f64 z) a) (/.f64 (*.f64 x y) a)) |
(fma.f64 t (/.f64 z a) (*.f64 (neg.f64 x) (/.f64 y a))) |
(-.f64 (/.f64 (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 (neg.f64 x) y)) a)) (/.f64 (pow.f64 (/.f64 (*.f64 x y) a) #s(literal 2 binary64)) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 (neg.f64 x) y)) a))) |
(-.f64 (*.f64 (neg.f64 x) (/.f64 y a)) (*.f64 (neg.f64 z) (/.f64 t a))) |
(-.f64 (/.f64 (*.f64 x y) a) (*.f64 (*.f64 (neg.f64 z) (/.f64 t a)) #s(literal -1 binary64))) |
(-.f64 (/.f64 (*.f64 x y) a) (*.f64 (neg.f64 (/.f64 #s(literal -1 binary64) a)) (*.f64 z t))) |
(-.f64 (/.f64 (*.f64 x y) a) (*.f64 (*.f64 (neg.f64 z) t) (/.f64 #s(literal -1 binary64) a))) |
(-.f64 (/.f64 (*.f64 x y) a) (*.f64 #s(literal 1 binary64) (/.f64 (*.f64 z t) a))) |
(-.f64 (/.f64 (*.f64 x y) a) (/.f64 (*.f64 z t) a)) |
(-.f64 (*.f64 (neg.f64 z) (/.f64 t a)) (*.f64 (neg.f64 x) (/.f64 y a))) |
(+.f64 (*.f64 (*.f64 (neg.f64 x) (/.f64 y a)) #s(literal -1 binary64)) (*.f64 (neg.f64 z) (/.f64 t a))) |
(+.f64 (*.f64 #s(literal -1 binary64) (*.f64 (neg.f64 x) (/.f64 y a))) (*.f64 (neg.f64 z) (/.f64 t a))) |
(+.f64 (/.f64 (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 3 binary64)) (fma.f64 (/.f64 (*.f64 x y) a) (-.f64 (/.f64 (*.f64 x y) a) (*.f64 (neg.f64 z) (/.f64 t a))) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (/.f64 (*.f64 x y) a) #s(literal 3 binary64)) (fma.f64 (/.f64 (*.f64 x y) a) (-.f64 (/.f64 (*.f64 x y) a) (*.f64 (neg.f64 z) (/.f64 t a))) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64))))) |
(+.f64 (*.f64 (neg.f64 x) (/.f64 y a)) (/.f64 (*.f64 z t) a)) |
(+.f64 (/.f64 (*.f64 x y) a) (*.f64 (neg.f64 z) (/.f64 t a))) |
(+.f64 (*.f64 (neg.f64 z) (/.f64 t a)) (/.f64 (*.f64 x y) a)) |
(+.f64 (/.f64 (*.f64 z t) a) (*.f64 (neg.f64 x) (/.f64 y a))) |
(*.f64 z t) |
(*.f64 t z) |
t |
z |
(pow.f64 (neg.f64 a) #s(literal -1 binary64)) |
(/.f64 #s(literal 1 binary64) (pow.f64 (neg.f64 a) #s(literal 1 binary64))) |
(/.f64 #s(literal 1 binary64) (neg.f64 a)) |
(/.f64 #s(literal -1 binary64) (neg.f64 (neg.f64 a))) |
(/.f64 #s(literal -1 binary64) a) |
(neg.f64 (pow.f64 a #s(literal -1 binary64))) |
(neg.f64 (/.f64 #s(literal -1 binary64) (neg.f64 a))) |
(exp.f64 (*.f64 (log.f64 (neg.f64 a)) #s(literal -1 binary64))) |
#s(literal -1 binary64) |
a |
(*.f64 (neg.f64 x) (/.f64 (neg.f64 y) a)) |
(*.f64 (/.f64 x a) y) |
(*.f64 (/.f64 y a) x) |
(*.f64 (*.f64 x y) (/.f64 #s(literal -1 binary64) (neg.f64 a))) |
(*.f64 x (/.f64 y a)) |
(*.f64 y (/.f64 x a)) |
(*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) (neg.f64 a))) |
(/.f64 (neg.f64 (*.f64 (neg.f64 x) y)) (neg.f64 (neg.f64 a))) |
(/.f64 (*.f64 (neg.f64 x) y) (neg.f64 a)) |
(/.f64 (*.f64 x y) a) |
(neg.f64 (/.f64 (*.f64 x y) (neg.f64 a))) |
(neg.f64 (*.f64 (neg.f64 x) (/.f64 y a))) |
(*.f64 x y) |
(*.f64 y x) |
y |
x |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (*.f64 (neg.f64 z) (/.f64 t a))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (/.f64 (fma.f64 (neg.f64 x) y (*.f64 z t)) a)) |
#s(approx (/ (* y x) a) (/.f64 (*.f64 x y) a)) |
#s(approx (* y x) (*.f64 x y)) |
#s(approx x x) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (/.f64 (*.f64 x y) a)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (*.f64 (fma.f64 (/.f64 (neg.f64 t) x) (/.f64 z a) (/.f64 y a)) x)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (*.f64 (fma.f64 (/.f64 (neg.f64 t) x) (/.f64 z a) (/.f64 y a)) x)) |
#s(approx y y) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (*.f64 (fma.f64 (/.f64 t y) (/.f64 z a) (/.f64 (neg.f64 x) a)) y)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (*.f64 (fma.f64 (/.f64 t y) (/.f64 z a) (/.f64 (neg.f64 x) a)) y)) |
#s(approx (* t z) (*.f64 z t)) |
#s(approx z z) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (*.f64 (fma.f64 (/.f64 (neg.f64 x) z) (/.f64 y a) (/.f64 t a)) z)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (*.f64 (neg.f64 z) (fma.f64 (/.f64 (neg.f64 x) z) (/.f64 y a) (/.f64 t a)))) |
#s(approx t t) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (*.f64 (fma.f64 (/.f64 (neg.f64 x) t) (/.f64 y a) (/.f64 z a)) t)) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (*.f64 (neg.f64 t) (fma.f64 (/.f64 (neg.f64 x) t) (/.f64 y a) (/.f64 z a)))) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (/.f64 (fma.f64 (neg.f64 x) y (*.f64 z t)) a)) |
#s(approx (/ -1 a) (/.f64 #s(literal -1 binary64) a)) |
#s(approx a a) |
#s(approx (+ (* (* t z) (/ -1 a)) (/ (* y x) a)) (/.f64 (fma.f64 (neg.f64 x) y (*.f64 z t)) a)) |
Compiled 2 157 to 295 computations (86.3% saved)
7 alts after pruning (6 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 134 | 2 | 136 |
| Fresh | 1 | 4 | 5 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 135 | 7 | 142 |
| Status | Accuracy | Program |
|---|---|---|
| 89.3% | (fma.f64 (/.f64 y a) x (*.f64 (neg.f64 z) (/.f64 t a))) | |
| 91.8% | (fma.f64 (/.f64 x a) y (*.f64 (neg.f64 z) (/.f64 t a))) | |
| 93.3% | (fma.f64 (*.f64 (/.f64 #s(literal -1 binary64) a) t) z (/.f64 (*.f64 x y) a)) | |
| ▶ | 93.3% | (fma.f64 (*.f64 x y) (/.f64 #s(literal -1 binary64) (neg.f64 a)) (*.f64 (neg.f64 z) (/.f64 t a))) |
| ✓ | 91.9% | (fma.f64 (*.f64 t z) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 y x) a)) |
| 30.9% | (/.f64 (/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64))) (fma.f64 (*.f64 t z) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) a) | |
| 87.7% | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 (neg.f64 z) (fma.f64 (neg.f64 x) (/.f64 y z) t))) a) |
Compiled 206 to 163 computations (20.9% saved)
| Inputs |
|---|
(fma.f64 (*.f64 x y) (/.f64 #s(literal -1 binary64) (neg.f64 a)) (*.f64 (neg.f64 z) (/.f64 t a))) |
(*.f64 x y) |
x |
y |
(/.f64 #s(literal -1 binary64) (neg.f64 a)) |
#s(literal -1 binary64) |
(neg.f64 a) |
a |
(*.f64 (neg.f64 z) (/.f64 t a)) |
(neg.f64 z) |
z |
(/.f64 t a) |
t |
| Outputs |
|---|
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* -1 (/ (* t z) a)))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (+ (* -1 (/ (* t z) a)) (/ (* x y) a)))) |
#s(approx (* x y) #s(hole binary64 (* x y))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (/ (* x y) a))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))))) |
#s(approx (* (neg z) (/ t a)) #s(hole binary64 (* -1 (/ (* t z) a)))) |
#s(approx (neg z) #s(hole binary64 (* -1 z))) |
#s(approx z #s(hole binary64 z)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))))) |
#s(approx (/ t a) #s(hole binary64 (/ t a))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (/ (+ (* -1 (* t z)) (* x y)) a))) |
#s(approx (/ -1 (neg a)) #s(hole binary64 (/ 1 a))) |
#s(approx (neg a) #s(hole binary64 (* -1 a))) |
#s(approx a #s(hole binary64 a)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* -1 (/ (+ (* -1 (* x y)) (* t z)) a)))) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 4.0ms | t | @ | -inf | ((+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (* x y) x y (/ -1 (neg a)) -1 (neg a) a (* (neg z) (/ t a)) (neg z) z (/ t a) t) |
| 1.0ms | a | @ | -inf | ((+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (* x y) x y (/ -1 (neg a)) -1 (neg a) a (* (neg z) (/ t a)) (neg z) z (/ t a) t) |
| 1.0ms | a | @ | inf | ((+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (* x y) x y (/ -1 (neg a)) -1 (neg a) a (* (neg z) (/ t a)) (neg z) z (/ t a) t) |
| 1.0ms | a | @ | 0 | ((+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (* x y) x y (/ -1 (neg a)) -1 (neg a) a (* (neg z) (/ t a)) (neg z) z (/ t a) t) |
| 1.0ms | t | @ | inf | ((+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (* x y) x y (/ -1 (neg a)) -1 (neg a) a (* (neg z) (/ t a)) (neg z) z (/ t a) t) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 100 | 475 |
| 0 | 110 | 406 |
| 1 | 473 | 391 |
| 2 | 4331 | 390 |
| 0 | 8383 | 367 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(fma.f64 (*.f64 x y) (/.f64 #s(literal -1 binary64) (neg.f64 a)) (*.f64 (neg.f64 z) (/.f64 t a))) |
(*.f64 x y) |
x |
y |
(/.f64 #s(literal -1 binary64) (neg.f64 a)) |
#s(literal -1 binary64) |
(neg.f64 a) |
a |
(*.f64 (neg.f64 z) (/.f64 t a)) |
(neg.f64 z) |
z |
(/.f64 t a) |
t |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* -1 (/ (* t z) a)))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (+ (* -1 (/ (* t z) a)) (/ (* x y) a)))) |
#s(approx (* x y) #s(hole binary64 (* x y))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (/ (* x y) a))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))))) |
#s(approx (* (neg z) (/ t a)) #s(hole binary64 (* -1 (/ (* t z) a)))) |
#s(approx (neg z) #s(hole binary64 (* -1 z))) |
#s(approx z #s(hole binary64 z)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))))) |
#s(approx (/ t a) #s(hole binary64 (/ t a))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (/ (+ (* -1 (* t z)) (* x y)) a))) |
#s(approx (/ -1 (neg a)) #s(hole binary64 (/ 1 a))) |
#s(approx (neg a) #s(hole binary64 (* -1 a))) |
#s(approx a #s(hole binary64 a)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) #s(hole binary64 (* -1 (/ (+ (* -1 (* x y)) (* t z)) a)))) |
| Outputs |
|---|
(*.f64 (/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a) #s(literal -1 binary64)) |
(*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a)) |
(/.f64 (/.f64 (neg.f64 (fma.f64 (neg.f64 z) t (*.f64 y x))) #s(literal -1 binary64)) a) |
(/.f64 (*.f64 (neg.f64 (fma.f64 (neg.f64 z) t (*.f64 y x))) #s(literal -1 binary64)) (neg.f64 a)) |
(/.f64 (*.f64 #s(literal -1 binary64) (neg.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)))) (neg.f64 a)) |
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64)) (*.f64 (/.f64 (*.f64 y x) a) (*.f64 (/.f64 t a) z))))) |
(/.f64 (neg.f64 (neg.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)))) (neg.f64 a)) |
(/.f64 (neg.f64 (neg.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)))) a) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64)))) (neg.f64 (fma.f64 (/.f64 x a) y (*.f64 (/.f64 t a) z)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 (neg.f64 t) (/.f64 z a)) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (/.f64 (*.f64 y x) a) (fma.f64 (/.f64 x a) y (*.f64 (/.f64 t a) z)) (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)))) (neg.f64 (/.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a))) |
(/.f64 (fma.f64 (*.f64 (neg.f64 x) y) (neg.f64 a) (*.f64 a (*.f64 (neg.f64 z) t))) (*.f64 a (neg.f64 a))) |
(/.f64 (fma.f64 (*.f64 (neg.f64 x) y) a (*.f64 a (*.f64 t z))) (*.f64 a a)) |
(/.f64 (fma.f64 (*.f64 (neg.f64 x) y) a (*.f64 (neg.f64 a) (*.f64 (neg.f64 z) t))) (*.f64 (neg.f64 a) a)) |
(/.f64 (fma.f64 (*.f64 y x) a (*.f64 a (*.f64 (neg.f64 z) t))) (*.f64 a a)) |
(/.f64 (fma.f64 (*.f64 (neg.f64 z) t) (neg.f64 a) (*.f64 a (*.f64 (neg.f64 x) y))) (*.f64 a (neg.f64 a))) |
(/.f64 (fma.f64 (*.f64 (neg.f64 z) t) a (*.f64 a (*.f64 y x))) (*.f64 a a)) |
(/.f64 (-.f64 (pow.f64 (*.f64 t z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (*.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a)) |
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64))) (-.f64 (*.f64 (/.f64 x (neg.f64 a)) y) (*.f64 (/.f64 t a) z))) |
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64))) (fma.f64 (/.f64 x a) y (*.f64 (/.f64 t a) z))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64))) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a)) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 t z) #s(literal 2 binary64))) (*.f64 (fma.f64 (neg.f64 x) y (*.f64 (neg.f64 z) t)) a)) |
(/.f64 (+.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64)) (*.f64 (*.f64 (/.f64 x (neg.f64 a)) y) (*.f64 (/.f64 t a) z))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64))) (fma.f64 (*.f64 (neg.f64 t) (/.f64 z a)) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64))) (fma.f64 (/.f64 (*.f64 y x) a) (fma.f64 (/.f64 x a) y (*.f64 (/.f64 t a) z)) (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64))) (*.f64 (fma.f64 (*.f64 t z) (-.f64 (*.f64 t z) (*.f64 (neg.f64 x) y)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) a)) |
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64))) (*.f64 (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (*.f64 (neg.f64 z) t)) (pow.f64 (*.f64 t z) #s(literal 2 binary64))) a)) |
(/.f64 (neg.f64 (fma.f64 (neg.f64 z) t (*.f64 y x))) (neg.f64 a)) |
(/.f64 (neg.f64 (fma.f64 (neg.f64 z) t (*.f64 y x))) a) |
(/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) (neg.f64 a)) |
(/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a) |
(/.f64 (/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a) #s(literal -1 binary64)) |
(neg.f64 (*.f64 (/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a) #s(literal 1 binary64))) |
(neg.f64 (*.f64 #s(literal 1 binary64) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a))) |
(neg.f64 (/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a)) |
(fma.f64 (/.f64 (neg.f64 t) #s(literal -1 binary64)) (/.f64 z a) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 (/.f64 (neg.f64 x) #s(literal -1 binary64)) (/.f64 y a) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (*.f64 (pow.f64 a #s(literal -1 binary64)) x) y (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (/.f64 (*.f64 t z) #s(literal -1 binary64)) (/.f64 #s(literal -1 binary64) a) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 (/.f64 (*.f64 y x) #s(literal -1 binary64)) (/.f64 #s(literal -1 binary64) a) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (*.f64 (/.f64 x (neg.f64 a)) y) #s(literal -1 binary64) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 t z) #s(literal -1 binary64)) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 y x) #s(literal -1 binary64)) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (neg.f64 t) (/.f64 (neg.f64 z) a) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 (neg.f64 t) (/.f64 z a) (/.f64 (*.f64 y x) a)) |
(fma.f64 (neg.f64 x) (/.f64 y (neg.f64 a)) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (neg.f64 x) (/.f64 y a) (*.f64 (/.f64 t a) z)) |
(fma.f64 (neg.f64 y) (/.f64 x a) (*.f64 (/.f64 t a) z)) |
(fma.f64 #s(literal 1 binary64) (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 t a) z) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 (/.f64 (neg.f64 z) a) t (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 z a) (neg.f64 t) (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 z a) t (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 (/.f64 t (neg.f64 a)) (/.f64 z #s(literal -1 binary64)) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 (/.f64 t (neg.f64 a)) z (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 x (neg.f64 a)) (/.f64 y #s(literal -1 binary64)) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (/.f64 x (neg.f64 a)) y (*.f64 (/.f64 t a) z)) |
(fma.f64 (/.f64 x a) (neg.f64 y) (*.f64 (/.f64 t a) z)) |
(fma.f64 (/.f64 x a) y (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (/.f64 y (neg.f64 a)) x (*.f64 (/.f64 t a) z)) |
(fma.f64 (/.f64 y a) (neg.f64 x) (*.f64 (/.f64 t a) z)) |
(fma.f64 (/.f64 y a) x (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (/.f64 (*.f64 y x) a) #s(literal 1 binary64) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (/.f64 (*.f64 y x) a) #s(literal -1 binary64) (*.f64 (/.f64 t a) z)) |
(fma.f64 (*.f64 (/.f64 t a) z) #s(literal 1 binary64) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 (*.f64 (/.f64 t a) z) #s(literal -1 binary64) (/.f64 (*.f64 y x) a)) |
(fma.f64 (*.f64 t z) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 y x) a)) |
(fma.f64 (*.f64 t z) (pow.f64 a #s(literal -1 binary64)) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 (/.f64 t a) (neg.f64 z) (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 t a) z (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 (neg.f64 z) (/.f64 t a) (/.f64 (*.f64 y x) a)) |
(fma.f64 (*.f64 y x) (/.f64 #s(literal -1 binary64) a) (*.f64 (/.f64 t a) z)) |
(fma.f64 (*.f64 y x) (pow.f64 a #s(literal -1 binary64)) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 t (/.f64 (neg.f64 z) a) (/.f64 (*.f64 y x) a)) |
(fma.f64 t (/.f64 z a) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 z (/.f64 t (neg.f64 a)) (/.f64 (*.f64 y x) a)) |
(fma.f64 z (/.f64 t a) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 (pow.f64 a #s(literal -1 binary64)) (*.f64 y x) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 y x) (neg.f64 a)) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 #s(literal -1 binary64) (*.f64 (/.f64 x (neg.f64 a)) y) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 y x) a) (*.f64 (/.f64 t a) z)) |
(fma.f64 #s(literal -1 binary64) (*.f64 (/.f64 t a) z) (/.f64 (*.f64 y x) a)) |
(fma.f64 #s(literal -1 binary64) (*.f64 (neg.f64 t) (/.f64 z a)) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(fma.f64 y (*.f64 x (pow.f64 a #s(literal -1 binary64))) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 y (/.f64 x (neg.f64 a)) (*.f64 (/.f64 t a) z)) |
(fma.f64 y (/.f64 x a) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 x (/.f64 y (neg.f64 a)) (*.f64 (/.f64 t a) z)) |
(fma.f64 x (/.f64 y a) (*.f64 (neg.f64 t) (/.f64 z a))) |
(-.f64 (/.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (fma.f64 (/.f64 x a) y (*.f64 (/.f64 t a) z))) (/.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64)) (fma.f64 (/.f64 x a) y (*.f64 (/.f64 t a) z)))) |
(-.f64 (/.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64)) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a)) (/.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a))) |
(-.f64 (*.f64 (/.f64 x (neg.f64 a)) y) (*.f64 (neg.f64 t) (/.f64 z a))) |
(-.f64 (/.f64 (*.f64 y x) a) (*.f64 (/.f64 t (neg.f64 a)) (neg.f64 z))) |
(-.f64 (/.f64 (*.f64 y x) a) (*.f64 (*.f64 (neg.f64 t) (/.f64 z a)) #s(literal -1 binary64))) |
(-.f64 (/.f64 (*.f64 y x) a) (*.f64 (/.f64 t a) z)) |
(-.f64 (*.f64 (neg.f64 t) (/.f64 z a)) (*.f64 (/.f64 #s(literal -1 binary64) a) (*.f64 y x))) |
(-.f64 (*.f64 (neg.f64 t) (/.f64 z a)) (*.f64 (*.f64 (neg.f64 x) y) (pow.f64 a #s(literal -1 binary64)))) |
(-.f64 (*.f64 (neg.f64 t) (/.f64 z a)) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(+.f64 (*.f64 (*.f64 (/.f64 x (neg.f64 a)) y) #s(literal -1 binary64)) (*.f64 (neg.f64 t) (/.f64 z a))) |
(+.f64 (*.f64 #s(literal -1 binary64) (*.f64 (/.f64 x (neg.f64 a)) y)) (*.f64 (neg.f64 t) (/.f64 z a))) |
(+.f64 (/.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (fma.f64 (*.f64 (neg.f64 t) (/.f64 z a)) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 3 binary64)) (fma.f64 (*.f64 (neg.f64 t) (/.f64 z a)) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64))))) |
(+.f64 (/.f64 (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 3 binary64)) (fma.f64 (/.f64 (*.f64 y x) a) (fma.f64 (/.f64 x a) y (*.f64 (/.f64 t a) z)) (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64)))) (/.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (fma.f64 (/.f64 (*.f64 y x) a) (fma.f64 (/.f64 x a) y (*.f64 (/.f64 t a) z)) (pow.f64 (*.f64 (/.f64 t a) z) #s(literal 2 binary64))))) |
(+.f64 (*.f64 (/.f64 x (neg.f64 a)) y) (*.f64 (/.f64 t a) z)) |
(+.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 t) (/.f64 z a))) |
(+.f64 (*.f64 (/.f64 t a) z) (*.f64 (/.f64 x (neg.f64 a)) y)) |
(+.f64 (*.f64 (neg.f64 t) (/.f64 z a)) (/.f64 (*.f64 y x) a)) |
(*.f64 y x) |
(*.f64 x y) |
x |
y |
(*.f64 (pow.f64 a #s(literal -1/2 binary64)) (pow.f64 a #s(literal -1/2 binary64))) |
(*.f64 (/.f64 #s(literal -1 binary64) a) #s(literal -1 binary64)) |
(*.f64 #s(literal 1 binary64) (pow.f64 a #s(literal -1 binary64))) |
(*.f64 (pow.f64 a #s(literal -1 binary64)) #s(literal 1 binary64)) |
(*.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) a)) |
(pow.f64 (exp.f64 (log.f64 a)) #s(literal -1 binary64)) |
(pow.f64 (pow.f64 a #s(literal -1/2 binary64)) #s(literal 2 binary64)) |
(pow.f64 (*.f64 a a) #s(literal -1/2 binary64)) |
(pow.f64 a #s(literal -1 binary64)) |
(/.f64 (/.f64 #s(literal -1 binary64) a) #s(literal -1 binary64)) |
(/.f64 #s(literal 1 binary64) a) |
(/.f64 #s(literal -1 binary64) (neg.f64 a)) |
(neg.f64 (/.f64 #s(literal -1 binary64) a)) |
(exp.f64 (*.f64 (log.f64 a) #s(literal -1 binary64))) |
(+.f64 (cosh.f64 (*.f64 (log.f64 a) #s(literal -1 binary64))) (sinh.f64 (*.f64 (log.f64 a) #s(literal -1 binary64)))) |
#s(literal -1 binary64) |
(*.f64 a #s(literal -1 binary64)) |
(*.f64 #s(literal -1 binary64) a) |
(neg.f64 a) |
a |
(*.f64 (neg.f64 t) (/.f64 z a)) |
(*.f64 (/.f64 (neg.f64 z) a) t) |
(*.f64 (/.f64 z a) (neg.f64 t)) |
(*.f64 (/.f64 t (neg.f64 a)) z) |
(*.f64 (*.f64 (/.f64 t a) z) #s(literal -1 binary64)) |
(*.f64 (*.f64 t z) (/.f64 #s(literal -1 binary64) a)) |
(*.f64 (/.f64 t a) (neg.f64 z)) |
(*.f64 (neg.f64 z) (/.f64 t a)) |
(*.f64 t (/.f64 (neg.f64 z) a)) |
(*.f64 z (/.f64 t (neg.f64 a))) |
(*.f64 #s(literal -1 binary64) (*.f64 (/.f64 t a) z)) |
(/.f64 (*.f64 (neg.f64 t) (neg.f64 z)) (neg.f64 a)) |
(/.f64 (*.f64 (neg.f64 z) (neg.f64 t)) (neg.f64 a)) |
(/.f64 (*.f64 #s(literal -1 binary64) (*.f64 (neg.f64 z) t)) (neg.f64 a)) |
(/.f64 (*.f64 (*.f64 (neg.f64 z) t) #s(literal -1 binary64)) (neg.f64 a)) |
(/.f64 (neg.f64 (*.f64 (neg.f64 z) t)) (neg.f64 a)) |
(/.f64 (*.f64 (neg.f64 z) t) a) |
(/.f64 (*.f64 t z) (neg.f64 a)) |
(neg.f64 (*.f64 (/.f64 t a) z)) |
(*.f64 z #s(literal -1 binary64)) |
(*.f64 #s(literal -1 binary64) z) |
(neg.f64 z) |
z |
(/.f64 (/.f64 (neg.f64 t) #s(literal -1 binary64)) a) |
(/.f64 (neg.f64 (neg.f64 t)) a) |
(/.f64 (neg.f64 t) (neg.f64 a)) |
(/.f64 (/.f64 t (neg.f64 a)) #s(literal -1 binary64)) |
(/.f64 t a) |
(neg.f64 (/.f64 t (neg.f64 a))) |
t |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (*.f64 (neg.f64 t) (/.f64 z a))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a)) |
#s(approx (* x y) (*.f64 y x)) |
#s(approx x x) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (/.f64 (*.f64 y x) a)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (*.f64 (fma.f64 (/.f64 (neg.f64 t) x) (/.f64 z a) (/.f64 y a)) x)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (*.f64 (fma.f64 (/.f64 (neg.f64 t) x) (/.f64 z a) (/.f64 y a)) x)) |
#s(approx y y) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (*.f64 (fma.f64 (/.f64 t y) (/.f64 z a) (/.f64 x (neg.f64 a))) y)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (*.f64 (fma.f64 (/.f64 t y) (/.f64 z a) (/.f64 x (neg.f64 a))) y)) |
#s(approx (* (neg z) (/ t a)) (*.f64 (neg.f64 t) (/.f64 z a))) |
#s(approx (neg z) (neg.f64 z)) |
#s(approx z z) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (*.f64 (fma.f64 (/.f64 (neg.f64 x) z) (/.f64 y a) (/.f64 t a)) z)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (*.f64 (fma.f64 (/.f64 (neg.f64 x) z) (/.f64 y a) (/.f64 t a)) (neg.f64 z))) |
#s(approx (/ t a) (/.f64 t a)) |
#s(approx t t) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (*.f64 (fma.f64 (/.f64 x t) (/.f64 y a) (/.f64 (neg.f64 z) a)) t)) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (*.f64 (neg.f64 t) (fma.f64 (/.f64 x t) (/.f64 y a) (/.f64 (neg.f64 z) a)))) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a)) |
#s(approx (/ -1 (neg a)) (pow.f64 a #s(literal -1 binary64))) |
#s(approx (neg a) (neg.f64 a)) |
#s(approx a a) |
#s(approx (+ (* (* x y) (/ -1 (neg a))) (* (neg z) (/ t a))) (/.f64 (fma.f64 (neg.f64 z) t (*.f64 y x)) a)) |
Compiled 3 049 to 401 computations (86.8% saved)
7 alts after pruning (5 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 182 | 0 | 182 |
| Fresh | 0 | 5 | 5 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 182 | 7 | 189 |
| Status | Accuracy | Program |
|---|---|---|
| 89.3% | (fma.f64 (/.f64 y a) x (*.f64 (neg.f64 z) (/.f64 t a))) | |
| 91.8% | (fma.f64 (/.f64 x a) y (*.f64 (neg.f64 z) (/.f64 t a))) | |
| ▶ | 93.3% | (fma.f64 (*.f64 (/.f64 #s(literal -1 binary64) a) t) z (/.f64 (*.f64 x y) a)) |
| ✓ | 93.3% | (fma.f64 (*.f64 x y) (/.f64 #s(literal -1 binary64) (neg.f64 a)) (*.f64 (neg.f64 z) (/.f64 t a))) |
| ✓ | 91.9% | (fma.f64 (*.f64 t z) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 y x) a)) |
| 30.9% | (/.f64 (/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64))) (fma.f64 (*.f64 t z) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) a) | |
| 87.7% | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 (neg.f64 z) (fma.f64 (neg.f64 x) (/.f64 y z) t))) a) |
Compiled 192 to 150 computations (21.9% saved)
| Inputs |
|---|
(fma.f64 (*.f64 (/.f64 #s(literal -1 binary64) a) t) z (/.f64 (*.f64 x y) a)) |
(*.f64 (/.f64 #s(literal -1 binary64) a) t) |
(/.f64 #s(literal -1 binary64) a) |
#s(literal -1 binary64) |
a |
t |
z |
(/.f64 (*.f64 x y) a) |
(*.f64 x y) |
x |
y |
| Outputs |
|---|
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* -1 (/ (* t z) a)))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (+ (* -1 (/ (* t z) a)) (/ (* x y) a)))) |
#s(approx (/ (* x y) a) #s(hole binary64 (/ (* x y) a))) |
#s(approx (* x y) #s(hole binary64 (* x y))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (/ (* x y) a))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))))) |
#s(approx z #s(hole binary64 z)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))))) |
#s(approx (* (/ -1 a) t) #s(hole binary64 (* -1 (/ t a)))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (/ (+ (* -1 (* t z)) (* x y)) a))) |
#s(approx (/ -1 a) #s(hole binary64 (/ -1 a))) |
#s(approx a #s(hole binary64 a)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* -1 (/ (+ (* -1 (* x y)) (* t z)) a)))) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | a | @ | inf | ((+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (* (/ -1 a) t) (/ -1 a) -1 a t z (/ (* x y) a) (* x y) x y) |
| 1.0ms | a | @ | 0 | ((+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (* (/ -1 a) t) (/ -1 a) -1 a t z (/ (* x y) a) (* x y) x y) |
| 1.0ms | x | @ | -inf | ((+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (* (/ -1 a) t) (/ -1 a) -1 a t z (/ (* x y) a) (* x y) x y) |
| 1.0ms | y | @ | -inf | ((+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (* (/ -1 a) t) (/ -1 a) -1 a t z (/ (* x y) a) (* x y) x y) |
| 1.0ms | a | @ | -inf | ((+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (* (/ -1 a) t) (/ -1 a) -1 a t z (/ (* x y) a) (* x y) x y) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 90 | 431 |
| 0 | 98 | 392 |
| 1 | 436 | 378 |
| 2 | 4066 | 378 |
| 0 | 8278 | 353 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(fma.f64 (*.f64 (/.f64 #s(literal -1 binary64) a) t) z (/.f64 (*.f64 x y) a)) |
(*.f64 (/.f64 #s(literal -1 binary64) a) t) |
(/.f64 #s(literal -1 binary64) a) |
#s(literal -1 binary64) |
a |
t |
z |
(/.f64 (*.f64 x y) a) |
(*.f64 x y) |
x |
y |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* -1 (/ (* t z) a)))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (+ (* -1 (/ (* t z) a)) (/ (* x y) a)))) |
#s(approx (/ (* x y) a) #s(hole binary64 (/ (* x y) a))) |
#s(approx (* x y) #s(hole binary64 (* x y))) |
#s(approx x #s(hole binary64 x)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (/ (* x y) a))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))))) |
#s(approx y #s(hole binary64 y)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))))) |
#s(approx z #s(hole binary64 z)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))))) |
#s(approx (* (/ -1 a) t) #s(hole binary64 (* -1 (/ t a)))) |
#s(approx t #s(hole binary64 t)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (/ (+ (* -1 (* t z)) (* x y)) a))) |
#s(approx (/ -1 a) #s(hole binary64 (/ -1 a))) |
#s(approx a #s(hole binary64 a)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) #s(hole binary64 (* -1 (/ (+ (* -1 (* x y)) (* t z)) a)))) |
| Outputs |
|---|
(*.f64 (/.f64 (fma.f64 (neg.f64 t) z (*.f64 y x)) a) #s(literal -1 binary64)) |
(*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 y x)) a)) |
(/.f64 (*.f64 (neg.f64 (fma.f64 (neg.f64 t) z (*.f64 y x))) #s(literal -1 binary64)) (neg.f64 a)) |
(/.f64 (*.f64 #s(literal -1 binary64) (neg.f64 (fma.f64 (neg.f64 t) z (*.f64 y x)))) (neg.f64 a)) |
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64))) (-.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 t) (/.f64 z a)))) |
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64))) (-.f64 (*.f64 (neg.f64 x) (/.f64 y a)) (/.f64 (*.f64 z t) a))) |
(/.f64 (neg.f64 (neg.f64 (fma.f64 (neg.f64 t) z (*.f64 y x)))) (neg.f64 (neg.f64 a))) |
(/.f64 (neg.f64 (neg.f64 (fma.f64 (neg.f64 t) z (*.f64 y x)))) (neg.f64 a)) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)))) (neg.f64 (/.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (/.f64 (*.f64 y x) a) (-.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 t) (/.f64 z a))) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64))))) |
(/.f64 (fma.f64 (*.f64 (neg.f64 t) z) (neg.f64 a) (*.f64 a (*.f64 (neg.f64 x) y))) (*.f64 a (neg.f64 a))) |
(/.f64 (fma.f64 (*.f64 (neg.f64 t) z) a (*.f64 a (*.f64 y x))) (*.f64 a a)) |
(/.f64 (fma.f64 (*.f64 (neg.f64 x) y) a (*.f64 (neg.f64 a) (*.f64 (neg.f64 t) z))) (*.f64 (neg.f64 a) a)) |
(/.f64 (fma.f64 (*.f64 y x) a (*.f64 a (*.f64 (neg.f64 t) z))) (*.f64 a a)) |
(/.f64 (fma.f64 (*.f64 (neg.f64 x) y) (neg.f64 a) (*.f64 a (*.f64 (neg.f64 t) z))) (*.f64 a (neg.f64 a))) |
(/.f64 (fma.f64 (*.f64 (neg.f64 x) y) a (*.f64 a (*.f64 z t))) (*.f64 a a)) |
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 z t) #s(literal 2 binary64))) (*.f64 (fma.f64 (neg.f64 x) y (*.f64 (neg.f64 t) z)) a)) |
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)) (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64))) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a)) |
(/.f64 (-.f64 (pow.f64 (*.f64 z t) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (*.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a)) |
(/.f64 (+.f64 (pow.f64 (*.f64 z t) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (*.f64 (neg.f64 t) z)) (pow.f64 (*.f64 z t) #s(literal 2 binary64))) a)) |
(/.f64 (+.f64 (pow.f64 (*.f64 z t) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 (neg.f64 x) y)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) a)) |
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)) (*.f64 (/.f64 (neg.f64 t) a) (*.f64 z (/.f64 (*.f64 y x) a)))))) |
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)) (*.f64 (*.f64 (neg.f64 x) (/.f64 y a)) (/.f64 (*.f64 z t) a))))) |
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 3 binary64))) (fma.f64 (/.f64 (*.f64 y x) a) (-.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 t) (/.f64 z a))) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)))) |
(/.f64 (neg.f64 (fma.f64 (neg.f64 t) z (*.f64 y x))) (neg.f64 (neg.f64 a))) |
(/.f64 (neg.f64 (fma.f64 (neg.f64 t) z (*.f64 y x))) (neg.f64 a)) |
(/.f64 (neg.f64 (fma.f64 (neg.f64 t) z (*.f64 y x))) a) |
(/.f64 (fma.f64 (neg.f64 t) z (*.f64 y x)) (neg.f64 a)) |
(/.f64 (fma.f64 (neg.f64 t) z (*.f64 y x)) a) |
(neg.f64 (/.f64 (fma.f64 (neg.f64 t) z (*.f64 y x)) a)) |
(fma.f64 (*.f64 (/.f64 #s(literal -1 binary64) a) z) t (/.f64 (*.f64 y x) a)) |
(fma.f64 (*.f64 z (/.f64 #s(literal -1 binary64) a)) t (/.f64 (*.f64 y x) a)) |
(fma.f64 (*.f64 (neg.f64 x) (/.f64 y a)) #s(literal -1 binary64) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (neg.f64 t) (/.f64 (neg.f64 z) a) (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 (neg.f64 t) (/.f64 z a) (/.f64 (*.f64 y x) a)) |
(fma.f64 (neg.f64 x) (/.f64 (neg.f64 y) a) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (neg.f64 x) (/.f64 y a) (/.f64 (*.f64 z t) a)) |
(fma.f64 (neg.f64 y) (/.f64 x a) (/.f64 (*.f64 z t) a)) |
(fma.f64 (neg.f64 z) (/.f64 t a) (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 (neg.f64 z) a) t (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 z a) (neg.f64 t) (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 z a) t (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 (/.f64 (neg.f64 t) a) z (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 t a) (neg.f64 z) (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 t a) z (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 (/.f64 (neg.f64 x) a) y (/.f64 (*.f64 z t) a)) |
(fma.f64 (/.f64 x a) (neg.f64 y) (/.f64 (*.f64 z t) a)) |
(fma.f64 (/.f64 x a) y (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (/.f64 (neg.f64 y) a) x (/.f64 (*.f64 z t) a)) |
(fma.f64 (/.f64 y a) (neg.f64 x) (/.f64 (*.f64 z t) a)) |
(fma.f64 (/.f64 y a) x (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (/.f64 (*.f64 z t) a) #s(literal -1 binary64) (/.f64 (*.f64 y x) a)) |
(fma.f64 (*.f64 z t) (/.f64 #s(literal -1 binary64) (neg.f64 a)) (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 (*.f64 z t) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 y x) a)) |
(fma.f64 (/.f64 (*.f64 y x) a) #s(literal -1 binary64) (/.f64 (*.f64 z t) a)) |
(fma.f64 (*.f64 y x) (/.f64 #s(literal -1 binary64) (neg.f64 a)) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 (*.f64 y x) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 z t) a)) |
(fma.f64 (/.f64 #s(literal -1 binary64) a) (*.f64 z t) (/.f64 (*.f64 y x) a)) |
(fma.f64 y (/.f64 (neg.f64 x) a) (/.f64 (*.f64 z t) a)) |
(fma.f64 y (/.f64 x a) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 x (/.f64 (neg.f64 y) a) (/.f64 (*.f64 z t) a)) |
(fma.f64 x (/.f64 y a) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 z (/.f64 (neg.f64 t) a) (/.f64 (*.f64 y x) a)) |
(fma.f64 z (/.f64 t a) (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 t (*.f64 (/.f64 #s(literal -1 binary64) a) z) (/.f64 (*.f64 y x) a)) |
(fma.f64 t (/.f64 (neg.f64 z) a) (/.f64 (*.f64 y x) a)) |
(fma.f64 t (/.f64 z a) (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 y x) (neg.f64 a)) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 #s(literal -1 binary64) (*.f64 (neg.f64 x) (/.f64 y a)) (*.f64 (neg.f64 t) (/.f64 z a))) |
(fma.f64 #s(literal -1 binary64) (*.f64 (neg.f64 t) (/.f64 z a)) (*.f64 (neg.f64 x) (/.f64 y a))) |
(fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 z t) a) (/.f64 (*.f64 y x) a)) |
(fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 y x) a) (/.f64 (*.f64 z t) a)) |
(-.f64 (/.f64 (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a)) (/.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 2 binary64)) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 (neg.f64 x) y)) a))) |
(-.f64 (*.f64 (neg.f64 x) (/.f64 y a)) (*.f64 (neg.f64 t) (/.f64 z a))) |
(-.f64 (*.f64 (neg.f64 t) (/.f64 z a)) (*.f64 (neg.f64 x) (/.f64 y a))) |
(-.f64 (/.f64 (*.f64 y x) a) (*.f64 (*.f64 (neg.f64 t) (/.f64 z a)) #s(literal -1 binary64))) |
(-.f64 (/.f64 (*.f64 y x) a) (*.f64 #s(literal 1 binary64) (/.f64 (*.f64 z t) a))) |
(-.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 (/.f64 #s(literal -1 binary64) a)) (*.f64 z t))) |
(-.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 z) (/.f64 (neg.f64 t) a))) |
(-.f64 (/.f64 (*.f64 y x) a) (/.f64 (*.f64 z t) a)) |
(+.f64 (*.f64 (*.f64 (neg.f64 x) (/.f64 y a)) #s(literal -1 binary64)) (*.f64 (neg.f64 t) (/.f64 z a))) |
(+.f64 (*.f64 #s(literal -1 binary64) (*.f64 (neg.f64 x) (/.f64 y a))) (*.f64 (neg.f64 t) (/.f64 z a))) |
(+.f64 (/.f64 (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 3 binary64)) (fma.f64 (/.f64 (*.f64 y x) a) (-.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 t) (/.f64 z a))) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (/.f64 (*.f64 y x) a) #s(literal 3 binary64)) (fma.f64 (/.f64 (*.f64 y x) a) (-.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 t) (/.f64 z a))) (pow.f64 (/.f64 (*.f64 z t) a) #s(literal 2 binary64))))) |
(+.f64 (*.f64 (neg.f64 x) (/.f64 y a)) (/.f64 (*.f64 z t) a)) |
(+.f64 (*.f64 (neg.f64 t) (/.f64 z a)) (/.f64 (*.f64 y x) a)) |
(+.f64 (/.f64 (*.f64 z t) a) (*.f64 (neg.f64 x) (/.f64 y a))) |
(+.f64 (/.f64 (*.f64 y x) a) (*.f64 (neg.f64 t) (/.f64 z a))) |
(*.f64 (/.f64 t a) #s(literal -1 binary64)) |
(*.f64 (/.f64 #s(literal -1 binary64) a) t) |
(*.f64 t (/.f64 #s(literal -1 binary64) a)) |
(*.f64 #s(literal -1 binary64) (/.f64 t a)) |
(/.f64 (*.f64 (neg.f64 t) #s(literal -1 binary64)) (neg.f64 a)) |
(/.f64 (*.f64 #s(literal 1 binary64) t) (neg.f64 a)) |
(/.f64 (*.f64 t #s(literal 1 binary64)) (neg.f64 a)) |
(/.f64 (*.f64 #s(literal -1 binary64) (neg.f64 t)) (neg.f64 a)) |
(/.f64 (neg.f64 (neg.f64 t)) (neg.f64 a)) |
(/.f64 (neg.f64 t) (neg.f64 (neg.f64 a))) |
(/.f64 (neg.f64 t) a) |
(/.f64 t (neg.f64 a)) |
(neg.f64 (/.f64 t a)) |
(pow.f64 (neg.f64 a) #s(literal -1 binary64)) |
(/.f64 #s(literal 1 binary64) (pow.f64 (neg.f64 a) #s(literal 1 binary64))) |
(/.f64 #s(literal 1 binary64) (neg.f64 a)) |
(/.f64 #s(literal -1 binary64) (neg.f64 (neg.f64 a))) |
(/.f64 #s(literal -1 binary64) a) |
(neg.f64 (pow.f64 a #s(literal -1 binary64))) |
(neg.f64 (/.f64 #s(literal -1 binary64) (neg.f64 a))) |
(exp.f64 (*.f64 (log.f64 (neg.f64 a)) #s(literal -1 binary64))) |
#s(literal -1 binary64) |
a |
t |
z |
(*.f64 (neg.f64 x) (/.f64 (neg.f64 y) a)) |
(*.f64 (/.f64 x a) y) |
(*.f64 (/.f64 y a) x) |
(*.f64 (*.f64 y x) (/.f64 #s(literal -1 binary64) (neg.f64 a))) |
(*.f64 y (/.f64 x a)) |
(*.f64 x (/.f64 y a)) |
(*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y x) (neg.f64 a))) |
(/.f64 (neg.f64 (*.f64 (neg.f64 x) y)) (neg.f64 (neg.f64 a))) |
(/.f64 (*.f64 (neg.f64 x) y) (neg.f64 a)) |
(/.f64 (*.f64 y x) a) |
(neg.f64 (/.f64 (*.f64 y x) (neg.f64 a))) |
(neg.f64 (*.f64 (neg.f64 x) (/.f64 y a))) |
(*.f64 y x) |
(*.f64 x y) |
x |
y |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (*.f64 (neg.f64 t) (/.f64 z a))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 y x)) a)) |
#s(approx (/ (* x y) a) (/.f64 (*.f64 y x) a)) |
#s(approx (* x y) (*.f64 y x)) |
#s(approx x x) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (/.f64 (*.f64 y x) a)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (*.f64 (fma.f64 (/.f64 (neg.f64 t) x) (/.f64 z a) (/.f64 y a)) x)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (*.f64 (fma.f64 (/.f64 (neg.f64 t) x) (/.f64 z a) (/.f64 y a)) x)) |
#s(approx y y) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (*.f64 (fma.f64 (/.f64 (neg.f64 t) y) (/.f64 z a) (/.f64 x a)) y)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (*.f64 (fma.f64 (/.f64 (neg.f64 t) y) (/.f64 z a) (/.f64 x a)) y)) |
#s(approx z z) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (*.f64 (fma.f64 (/.f64 (neg.f64 x) z) (/.f64 y a) (/.f64 t a)) z)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (*.f64 (neg.f64 z) (fma.f64 (/.f64 (neg.f64 x) z) (/.f64 y a) (/.f64 t a)))) |
#s(approx (* (/ -1 a) t) (/.f64 (neg.f64 t) a)) |
#s(approx t t) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (*.f64 (fma.f64 (/.f64 x t) (/.f64 y a) (/.f64 (neg.f64 z) a)) t)) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (*.f64 (neg.f64 t) (fma.f64 (/.f64 x t) (/.f64 y a) (/.f64 (neg.f64 z) a)))) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 y x)) a)) |
#s(approx (/ -1 a) (/.f64 #s(literal -1 binary64) a)) |
#s(approx a a) |
#s(approx (+ (* (* (/ -1 a) t) z) (/ (* x y) a)) (/.f64 (fma.f64 (neg.f64 t) z (*.f64 y x)) a)) |
Compiled 2 306 to 332 computations (85.6% saved)
7 alts after pruning (4 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 148 | 0 | 148 |
| Fresh | 0 | 4 | 4 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 2 | 2 |
| Total | 148 | 7 | 155 |
| Status | Accuracy | Program |
|---|---|---|
| 89.3% | (fma.f64 (/.f64 y a) x (*.f64 (neg.f64 z) (/.f64 t a))) | |
| 91.8% | (fma.f64 (/.f64 x a) y (*.f64 (neg.f64 z) (/.f64 t a))) | |
| ✓ | 93.3% | (fma.f64 (*.f64 (/.f64 #s(literal -1 binary64) a) t) z (/.f64 (*.f64 x y) a)) |
| ✓ | 93.3% | (fma.f64 (*.f64 x y) (/.f64 #s(literal -1 binary64) (neg.f64 a)) (*.f64 (neg.f64 z) (/.f64 t a))) |
| ✓ | 91.9% | (fma.f64 (*.f64 t z) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 y x) a)) |
| 30.9% | (/.f64 (/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64))) (fma.f64 (*.f64 t z) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) a) | |
| 87.7% | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 (neg.f64 z) (fma.f64 (neg.f64 x) (/.f64 y z) t))) a) |
Compiled 250 to 141 computations (43.6% saved)
Total -51.8b remaining (-2705.7%)
Threshold costs -51.8b (-2705.7%)
| Inputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(fma.f64 (/.f64 x a) y (*.f64 (neg.f64 z) (/.f64 t a))) |
(fma.f64 (/.f64 y a) x (*.f64 (neg.f64 z) (/.f64 t a))) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 (neg.f64 z) (fma.f64 (neg.f64 x) (/.f64 y z) t))) a) |
(fma.f64 (*.f64 t z) (/.f64 #s(literal -1 binary64) a) (/.f64 (*.f64 y x) a)) |
(fma.f64 (*.f64 (/.f64 #s(literal -1 binary64) a) t) z (/.f64 (*.f64 x y) a)) |
(fma.f64 (*.f64 x y) (/.f64 #s(literal -1 binary64) (neg.f64 a)) (*.f64 (neg.f64 z) (/.f64 t a))) |
#s(approx (/ (- (* x y) (* z t)) a) (*.f64 (fma.f64 (/.f64 (neg.f64 t) x) (/.f64 z a) (/.f64 y a)) x)) |
(/.f64 (/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 t z) #s(literal 3 binary64))) (fma.f64 (*.f64 t z) (fma.f64 t z (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) a) |
| Outputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(fma.f64 (/.f64 x a) y (*.f64 (neg.f64 z) (/.f64 t a))) |
9 calls:
| 3.0ms | y |
| 3.0ms | x |
| 3.0ms | a |
| 3.0ms | t |
| 3.0ms | z |
| Accuracy | Segments | Branch |
|---|---|---|
| 96.1% | 2 | (*.f64 z t) |
| 95.6% | 2 | (*.f64 x y) |
| 98.3% | 3 | (-.f64 (*.f64 x y) (*.f64 z t)) |
| 97.8% | 3 | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| 94.9% | 2 | x |
| 95.2% | 2 | y |
| 95.2% | 2 | z |
| 95.3% | 2 | t |
| 97.0% | 2 | a |
Compiled 27 to 54 computations (-100% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 17.0ms | 2.519550007307197e-74 | 4.568515016350631e-73 |
| 12.0ms | 112× | 0 | valid |
Compiled 152 to 164 computations (-7.9% saved)
ival-mult: 8.0ms (88.5% of total)ival-div: 1.0ms (11.1% of total)ival-sub: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 24 |
| 1 | 28 | 24 |
| 2 | 39 | 24 |
| 3 | 50 | 24 |
| 4 | 55 | 24 |
| 5 | 56 | 24 |
| 1× | saturated |
| Inputs |
|---|
(if (<=.f64 a #s(literal 55948864096101/124330809102446660538845562036705210025114037699336929360115994223289874253133343883264 binary64)) (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) (fma.f64 (/.f64 x a) y (*.f64 (neg.f64 z) (/.f64 t a)))) |
| Outputs |
|---|
(if (<=.f64 a #s(literal 55948864096101/124330809102446660538845562036705210025114037699336929360115994223289874253133343883264 binary64)) (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) (fma.f64 (/.f64 x a) y (*.f64 (neg.f64 z) (/.f64 t a)))) |
| 1× | fuel |
Compiled 24 to 17 computations (29.2% saved)
Compiled 288 to 194 computations (32.6% saved)
Loading profile data...