
Time bar (total: 2.5s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 100% | 99.9% | 0% | 0.1% | 0% | 0% | 0% | 1 |
Compiled 11 to 10 computations (9.1% saved)
| 811.0ms | 8 256× | 0 | valid |
ival-mult: 225.0ms (80.9% of total)ival-sub: 36.0ms (12.9% of total)ival-true: 6.0ms (2.2% of total)exact: 6.0ms (2.2% of total)ival-assert: 3.0ms (1.1% of total)adjust: 2.0ms (0.7% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 4 | 0 | - | 0 | - | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
| 1 | 0 | - | 0 | - | (*.f64 (*.f64 y #s(literal 4 binary64)) z) |
| 0 | 0 | - | 0 | - | y |
| 0 | 0 | - | 0 | - | (*.f64 y #s(literal 4 binary64)) |
| 0 | 0 | - | 0 | - | #s(literal 4 binary64) |
| 0 | 0 | - | 0 | - | z |
| 0 | 0 | - | 0 | - | (*.f64 x x) |
| 0 | 0 | - | 0 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
-.f64 | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) | nan-rescue | 4 | 0 |
| ↳ | (*.f64 x x) | overflow | 71 | |
| ↳ | (*.f64 y #s(literal 4 binary64)) | overflow | 1 | |
| ↳ | (*.f64 (*.f64 y #s(literal 4 binary64)) z) | overflow | 31 | |
*.f64 | (*.f64 (*.f64 y #s(literal 4 binary64)) z) | n*o | 1 | 0 |
| 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 |
| 43.0ms | 512× | 0 | valid |
Compiled 61 to 28 computations (54.1% saved)
ival-mult: 10.0ms (78.4% of total)ival-sub: 2.0ms (15.7% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 31 | 97 |
| 1 | 88 | 93 |
| 2 | 227 | 93 |
| 3 | 498 | 90 |
| 4 | 632 | 90 |
| 0 | 8 | 9 |
| 0 | 12 | 9 |
| 1 | 23 | 9 |
| 2 | 61 | 9 |
| 3 | 143 | 9 |
| 4 | 227 | 9 |
| 5 | 253 | 9 |
| 0 | 253 | 8 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
| Outputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
(fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x)) |
(abs x)
(sort y z)
Compiled 9 to 8 computations (11.1% saved)
Compiled 0 to 3 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 98.1% | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
Compiled 9 to 8 computations (11.1% saved)
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 y #s(literal 4 binary64)) | |
| cost-diff | 0 | (*.f64 (*.f64 y #s(literal 4 binary64)) z) | |
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 1 | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 24 |
| 0 | 12 | 24 |
| 1 | 23 | 24 |
| 2 | 61 | 24 |
| 3 | 143 | 24 |
| 4 | 227 | 24 |
| 5 | 253 | 24 |
| 0 | 253 | 23 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| Inputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
(*.f64 x x) |
x |
(*.f64 (*.f64 y #s(literal 4 binary64)) z) |
(*.f64 y #s(literal 4 binary64)) |
y |
#s(literal 4 binary64) |
z |
| Outputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
(fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x)) |
(*.f64 x x) |
x |
(*.f64 (*.f64 y #s(literal 4 binary64)) z) |
(*.f64 z (*.f64 #s(literal 4 binary64) y)) |
(*.f64 y #s(literal 4 binary64)) |
(*.f64 #s(literal 4 binary64) y) |
y |
#s(literal 4 binary64) |
z |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 y #s(literal 4 binary64)) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 0.23966004503963415 | (*.f64 (*.f64 y #s(literal 4 binary64)) z) | |
| accuracy | 0.8984333716604117 | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
| 25.0ms | 256× | 0 | valid |
Compiled 26 to 10 computations (61.5% saved)
ival-mult: 15.0ms (91.8% of total)ival-sub: 1.0ms (6.1% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
(*.f64 x x) |
(*.f64 (*.f64 y #s(literal 4 binary64)) z) |
(*.f64 y #s(literal 4 binary64)) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z))))) |
#s(approx (* x x) #s(hole binary64 (pow x 2))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2))))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2)))) |
#s(approx (* (* y 4) z) #s(hole binary64 (* 4 (* y z)))) |
#s(approx (* y 4) #s(hole binary64 (* 4 y))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z)))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y)))))) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y | @ | 0 | ((- (* x x) (* (* y 4) z)) (* x x) (* (* y 4) z) (* y 4)) |
| 1.0ms | z | @ | 0 | ((- (* x x) (* (* y 4) z)) (* x x) (* (* y 4) z) (* y 4)) |
| 1.0ms | y | @ | inf | ((- (* x x) (* (* y 4) z)) (* x x) (* (* y 4) z) (* y 4)) |
| 1.0ms | y | @ | -inf | ((- (* x x) (* (* y 4) z)) (* x x) (* (* y 4) z) (* y 4)) |
| 1.0ms | x | @ | inf | ((- (* x x) (* (* y 4) z)) (* x x) (* (* y 4) z) (* y 4)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 52 | 194 |
| 1 | 118 | 194 |
| 2 | 393 | 194 |
| 3 | 2324 | 194 |
| 0 | 8364 | 178 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z))))) |
#s(approx (* x x) #s(hole binary64 (pow x 2))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2))))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2)))) |
#s(approx (* (* y 4) z) #s(hole binary64 (* 4 (* y z)))) |
#s(approx (* y 4) #s(hole binary64 (* 4 y))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z)))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y)))))) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z))))) |
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x))) |
#s(approx (* x x) #s(hole binary64 (pow x 2))) |
#s(approx (* x x) (*.f64 x x)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2))))))) |
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2)))) |
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x))) |
#s(approx (* (* y 4) z) #s(hole binary64 (* 4 (* y z)))) |
#s(approx (* (* y 4) z) (*.f64 (*.f64 #s(literal 4 binary64) z) y)) |
#s(approx (* y 4) #s(hole binary64 (* 4 y))) |
#s(approx (* y 4) (*.f64 #s(literal 4 binary64) y)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z)))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y)))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 20 |
| 0 | 12 | 20 |
| 1 | 38 | 20 |
| 0 | 268 | 19 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | unsound |
| 1× | iter limit |
| Inputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
(*.f64 x x) |
(*.f64 (*.f64 y #s(literal 4 binary64)) z) |
(*.f64 y #s(literal 4 binary64)) |
| Outputs |
|---|
(/.f64 (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 3 binary64))) (+.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 2 binary64)) (*.f64 (*.f64 x x) (*.f64 (*.f64 #s(literal -4 binary64) y) z))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 2 binary64)))) (neg.f64 (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))) |
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 2 binary64))) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x))) |
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 3 binary64))) (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) |
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(fma.f64 z (*.f64 #s(literal -4 binary64) y) (*.f64 x x)) |
(fma.f64 x x (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 x x (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 x x (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x))) (/.f64 (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 2 binary64)) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x)))) |
(-.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 3 binary64)) (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))) |
(-.f64 (*.f64 x x) (*.f64 (neg.f64 (*.f64 #s(literal -4 binary64) y)) z)) |
(-.f64 (*.f64 x x) (*.f64 z (*.f64 #s(literal 4 binary64) y))) |
(+.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 x x)) |
(+.f64 (*.f64 x x) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(+.f64 (*.f64 x x) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64))) |
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x))) |
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x))) |
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x))) |
(*.f64 (neg.f64 x) (neg.f64 x)) |
(*.f64 (fabs.f64 x) (fabs.f64 x)) |
(*.f64 x x) |
(pow.f64 (neg.f64 x) #s(literal 2 binary64)) |
(pow.f64 (fabs.f64 x) #s(literal 2 binary64)) |
(pow.f64 x #s(literal 2 binary64)) |
(neg.f64 (*.f64 (neg.f64 x) x)) |
(neg.f64 (*.f64 x (neg.f64 x))) |
(fabs.f64 (*.f64 x x)) |
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64))) |
(*.f64 (*.f64 z y) #s(literal 4 binary64)) |
(*.f64 (*.f64 z #s(literal 4 binary64)) y) |
(*.f64 z (*.f64 #s(literal 4 binary64) y)) |
(*.f64 (*.f64 #s(literal 4 binary64) y) z) |
(*.f64 #s(literal 4 binary64) (*.f64 y z)) |
(*.f64 y (*.f64 z #s(literal 4 binary64))) |
(*.f64 #s(literal 4 binary64) y) |
(*.f64 y #s(literal 4 binary64)) |
Compiled 880 to 156 computations (82.3% saved)
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 63 | 3 | 66 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 64 | 3 | 67 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 98.8% | (fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
| ▶ | 52.4% | #s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
| ▶ | 56.0% | #s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
Compiled 36 to 29 computations (19.4% saved)
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | (*.f64 #s(literal -4 binary64) y) | |
| cost-diff | 0 | (fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) | |
| cost-diff | 0 | (*.f64 z y) | |
| cost-diff | 0 | (*.f64 (*.f64 z y) #s(literal -4 binary64)) | |
| cost-diff | 0 | #s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) | |
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | #s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 16 | 61 |
| 0 | 22 | 61 |
| 1 | 43 | 59 |
| 2 | 98 | 59 |
| 3 | 179 | 59 |
| 4 | 255 | 59 |
| 0 | 255 | 59 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
(*.f64 x x) |
x |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
(*.f64 (*.f64 z y) #s(literal -4 binary64)) |
(*.f64 z y) |
z |
y |
#s(literal -4 binary64) |
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
(*.f64 #s(literal -4 binary64) y) |
#s(literal -4 binary64) |
y |
z |
(*.f64 x x) |
x |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
(*.f64 x x) |
x |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(*.f64 (*.f64 z y) #s(literal -4 binary64)) |
(*.f64 (*.f64 #s(literal -4 binary64) y) z) |
(*.f64 z y) |
z |
y |
#s(literal -4 binary64) |
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
(fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x)) |
(*.f64 #s(literal -4 binary64) y) |
#s(literal -4 binary64) |
y |
z |
(*.f64 x x) |
x |
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 0.0 | (*.f64 #s(literal -4 binary64) y) | |
| accuracy | 0.7396545402507546 | (fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) | |
| accuracy | 0.0 | (*.f64 z y) | |
| accuracy | 0.01953125 | (*.f64 (*.f64 z y) #s(literal -4 binary64)) | |
| accuracy | 30.435358540081353 | #s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 28.16744290505805 | #s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
| 32.0ms | 256× | 0 | valid |
Compiled 54 to 16 computations (70.4% saved)
ival-mult: 20.0ms (89.5% of total)ival-sub: 1.0ms (4.5% of total)ival-add: 1.0ms (4.5% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
(*.f64 x x) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
(*.f64 (*.f64 z y) #s(literal -4 binary64)) |
(*.f64 z y) |
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
(*.f64 #s(literal -4 binary64) y) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z))))) |
#s(approx (* x x) #s(hole binary64 (pow x 2))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2)))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2))))))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (pow x 2))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2))))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2)))) |
#s(approx (* (* z y) -4) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (* z y) #s(hole binary64 (* y z))) |
#s(approx (* -4 y) #s(hole binary64 (* -4 y))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z))))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* y (+ (* -4 z) (/ (pow x 2) y))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z)))))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -1 (* y (+ (* -1 (/ (pow x 2) y)) (* 4 z)))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y))))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* z (+ (* -4 y) (/ (pow x 2) z))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y)))))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (pow x 2) z)) (* 4 y)))))) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 22.0ms | x | @ | -inf | ((- (* x x) (* (* y 4) z)) (* x x) (- (* x x) (* (* y 4) z)) (* (* z y) -4) (* z y) (+ (* (* -4 y) z) (* x x)) (* -4 y)) |
| 1.0ms | y | @ | -inf | ((- (* x x) (* (* y 4) z)) (* x x) (- (* x x) (* (* y 4) z)) (* (* z y) -4) (* z y) (+ (* (* -4 y) z) (* x x)) (* -4 y)) |
| 1.0ms | y | @ | 0 | ((- (* x x) (* (* y 4) z)) (* x x) (- (* x x) (* (* y 4) z)) (* (* z y) -4) (* z y) (+ (* (* -4 y) z) (* x x)) (* -4 y)) |
| 1.0ms | y | @ | inf | ((- (* x x) (* (* y 4) z)) (* x x) (- (* x x) (* (* y 4) z)) (* (* z y) -4) (* z y) (+ (* (* -4 y) z) (* x x)) (* -4 y)) |
| 1.0ms | z | @ | -inf | ((- (* x x) (* (* y 4) z)) (* x x) (- (* x x) (* (* y 4) z)) (* (* z y) -4) (* z y) (+ (* (* -4 y) z) (* x x)) (* -4 y)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 75 | 363 |
| 1 | 178 | 363 |
| 2 | 549 | 363 |
| 3 | 2789 | 363 |
| 0 | 8871 | 333 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z))))) |
#s(approx (* x x) #s(hole binary64 (pow x 2))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2)))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2))))))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (pow x 2))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2))))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2)))) |
#s(approx (* (* z y) -4) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (* z y) #s(hole binary64 (* y z))) |
#s(approx (* -4 y) #s(hole binary64 (* -4 y))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z))))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* y (+ (* -4 z) (/ (pow x 2) y))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z)))))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -1 (* y (+ (* -1 (/ (pow x 2) y)) (* 4 z)))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y))))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* z (+ (* -4 y) (/ (pow x 2) z))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y)))))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (pow x 2) z)) (* 4 y)))))) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z))))) |
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 x x))) |
#s(approx (* x x) #s(hole binary64 (pow x 2))) |
#s(approx (* x x) (*.f64 x x)) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2)))) |
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 x x))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2))))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 (*.f64 #s(literal -4 binary64) (/.f64 z x)) (/.f64 y x) #s(literal 1 binary64)) (*.f64 x x))) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (pow x 2))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2))))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 (*.f64 #s(literal -4 binary64) (/.f64 z x)) (/.f64 y x) #s(literal 1 binary64)) (*.f64 x x))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2)))) |
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 x x))) |
#s(approx (* (* z y) -4) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (* (* z y) -4) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
#s(approx (* z y) #s(hole binary64 (* y z))) |
#s(approx (* z y) (*.f64 z y)) |
#s(approx (* -4 y) #s(hole binary64 (* -4 y))) |
#s(approx (* -4 y) (*.f64 #s(literal -4 binary64) y)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y)) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* y (+ (* -4 z) (/ (pow x 2) y))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z)))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y)) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -1 (* y (+ (* -1 (/ (pow x 2) y)) (* 4 z)))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z)) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* z (+ (* -4 y) (/ (pow x 2) z))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y)))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z)) |
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (pow x 2) z)) (* 4 y)))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z)) |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 16 | 50 |
| 0 | 22 | 50 |
| 1 | 68 | 48 |
| 0 | 487 | 48 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | unsound |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
(*.f64 x x) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
(*.f64 (*.f64 z y) #s(literal -4 binary64)) |
(*.f64 z y) |
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
(*.f64 #s(literal -4 binary64) y) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64))) |
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x))) |
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x))) |
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x))) |
(*.f64 (neg.f64 x) (neg.f64 x)) |
(*.f64 (fabs.f64 x) (fabs.f64 x)) |
(*.f64 x x) |
(pow.f64 (neg.f64 x) #s(literal 2 binary64)) |
(pow.f64 (fabs.f64 x) #s(literal 2 binary64)) |
(pow.f64 x #s(literal 2 binary64)) |
(neg.f64 (*.f64 (neg.f64 x) x)) |
(fabs.f64 (*.f64 x x)) |
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(*.f64 (*.f64 #s(literal -4 binary64) z) y) |
(*.f64 (*.f64 z #s(literal -4 binary64)) y) |
(*.f64 (*.f64 #s(literal -4 binary64) y) z) |
(*.f64 #s(literal -4 binary64) (*.f64 z y)) |
(*.f64 (*.f64 z y) #s(literal -4 binary64)) |
(*.f64 z (*.f64 #s(literal -4 binary64) y)) |
(*.f64 y (*.f64 #s(literal -4 binary64) z)) |
(*.f64 y (*.f64 z #s(literal -4 binary64))) |
(neg.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y))) |
(*.f64 z y) |
(*.f64 y z) |
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 x) x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)) (+.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 (neg.f64 x) x))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)))) (neg.f64 (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)) (pow.f64 x #s(literal 4 binary64)))) (neg.f64 (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 (neg.f64 x) x)))) |
(/.f64 (neg.f64 (fma.f64 #s(literal -64 binary64) (pow.f64 (*.f64 z y) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (fma.f64 (*.f64 x x) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64))))) |
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64))) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)) (pow.f64 x #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 (neg.f64 x) x))) |
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 3 binary64))) (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) |
(/.f64 (fma.f64 #s(literal -64 binary64) (pow.f64 (*.f64 z y) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (+.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) x) x)))) |
(/.f64 (fma.f64 #s(literal -64 binary64) (pow.f64 (*.f64 z y) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (fma.f64 (*.f64 x x) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)))) |
(fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 (neg.f64 (neg.f64 x)) x)) |
(fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 x x)) |
(fma.f64 (*.f64 z #s(literal -4 binary64)) y (*.f64 (neg.f64 (neg.f64 x)) x)) |
(fma.f64 (*.f64 z #s(literal -4 binary64)) y (*.f64 x x)) |
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 (neg.f64 (neg.f64 x)) x)) |
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
(fma.f64 #s(literal -4 binary64) (*.f64 z y) (*.f64 (neg.f64 (neg.f64 x)) x)) |
(fma.f64 #s(literal -4 binary64) (*.f64 z y) (*.f64 x x)) |
(fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 (neg.f64 (neg.f64 x)) x)) |
(fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x)) |
(fma.f64 z (*.f64 #s(literal -4 binary64) y) (*.f64 (neg.f64 (neg.f64 x)) x)) |
(fma.f64 z (*.f64 #s(literal -4 binary64) y) (*.f64 x x)) |
(fma.f64 y (*.f64 #s(literal -4 binary64) z) (*.f64 (neg.f64 (neg.f64 x)) x)) |
(fma.f64 y (*.f64 #s(literal -4 binary64) z) (*.f64 x x)) |
(fma.f64 y (*.f64 z #s(literal -4 binary64)) (*.f64 (neg.f64 (neg.f64 x)) x)) |
(fma.f64 y (*.f64 z #s(literal -4 binary64)) (*.f64 x x)) |
(fma.f64 x x (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(fma.f64 x x (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(fma.f64 x x (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x))) (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)))) |
(-.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 3 binary64)) (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))) |
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)) (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 (neg.f64 x) x))) (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 (neg.f64 x) x)))) |
(-.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x))) |
(-.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x))) |
(-.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 (neg.f64 x) x)) |
(-.f64 (*.f64 x x) (*.f64 (neg.f64 (*.f64 #s(literal -4 binary64) y)) z)) |
(-.f64 (*.f64 x x) (*.f64 (neg.f64 (*.f64 z y)) #s(literal -4 binary64))) |
(-.f64 (*.f64 x x) (*.f64 (neg.f64 z) (*.f64 #s(literal -4 binary64) y))) |
(-.f64 (*.f64 x x) (*.f64 z (*.f64 #s(literal 4 binary64) y))) |
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 3 binary64)) (fma.f64 (*.f64 x x) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 (*.f64 x x) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64))))) |
(+.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 (neg.f64 (neg.f64 x)) x)) |
(+.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 x x)) |
(+.f64 (*.f64 x x) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y))) |
(+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64)))) |
(+.f64 (*.f64 x x) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(*.f64 (neg.f64 y) #s(literal 4 binary64)) |
(*.f64 #s(literal -4 binary64) y) |
(*.f64 #s(literal 4 binary64) (neg.f64 y)) |
(*.f64 y #s(literal -4 binary64)) |
(neg.f64 (*.f64 #s(literal 4 binary64) y)) |
Compiled 1 685 to 241 computations (85.7% saved)
3 alts after pruning (1 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 116 | 1 | 117 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 2 | 3 |
| Done | 0 | 0 | 0 |
| Total | 117 | 3 | 120 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 98.8% | (fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
| ▶ | 52.4% | #s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) |
| ✓ | 56.0% | #s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
Compiled 36 to 29 computations (19.4% saved)
Found 3 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 z #s(literal -4 binary64)) | |
| cost-diff | 0 | (*.f64 (*.f64 z #s(literal -4 binary64)) y) | |
| cost-diff | 0 | #s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 26 |
| 0 | 14 | 26 |
| 1 | 29 | 26 |
| 2 | 68 | 26 |
| 3 | 154 | 26 |
| 4 | 229 | 26 |
| 5 | 251 | 26 |
| 0 | 251 | 25 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) |
(*.f64 (*.f64 z #s(literal -4 binary64)) y) |
(*.f64 z #s(literal -4 binary64)) |
z |
#s(literal -4 binary64) |
y |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 #s(literal -4 binary64) z) y)) |
(*.f64 (*.f64 z #s(literal -4 binary64)) y) |
(*.f64 (*.f64 #s(literal -4 binary64) z) y) |
(*.f64 z #s(literal -4 binary64)) |
(*.f64 #s(literal -4 binary64) z) |
z |
#s(literal -4 binary64) |
y |
Found 3 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 (*.f64 z #s(literal -4 binary64)) y) | |
| accuracy | 0.0 | (*.f64 z #s(literal -4 binary64)) | |
| accuracy | 30.435358540081353 | #s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) |
| 21.0ms | 256× | 0 | valid |
Compiled 22 to 13 computations (40.9% saved)
ival-mult: 11.0ms (85.4% of total)ival-sub: 1.0ms (7.8% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) |
(*.f64 (*.f64 z #s(literal -4 binary64)) y) |
(*.f64 z #s(literal -4 binary64)) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2))))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2)))) |
#s(approx (* (* z -4) y) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z)))))) |
#s(approx (* z -4) #s(hole binary64 (* -4 z))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y)))))) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 12.0ms | z | @ | inf | ((- (* x x) (* (* y 4) z)) (* (* z -4) y) (* z -4)) |
| 1.0ms | z | @ | -inf | ((- (* x x) (* (* y 4) z)) (* (* z -4) y) (* z -4)) |
| 1.0ms | z | @ | 0 | ((- (* x x) (* (* y 4) z)) (* (* z -4) y) (* z -4)) |
| 1.0ms | y | @ | inf | ((- (* x x) (* (* y 4) z)) (* (* z -4) y) (* z -4)) |
| 1.0ms | y | @ | -inf | ((- (* x x) (* (* y 4) z)) (* (* z -4) y) (* z -4)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 53 | 187 |
| 1 | 120 | 187 |
| 2 | 393 | 187 |
| 3 | 2316 | 187 |
| 0 | 8372 | 171 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2))))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2)))) |
#s(approx (* (* z -4) y) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z)))))) |
#s(approx (* z -4) #s(hole binary64 (* -4 z))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y))))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y)))))) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z))))) |
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2))))))) |
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2)))) |
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x))) |
#s(approx (* (* z -4) y) #s(hole binary64 (* -4 (* y z)))) |
#s(approx (* (* z -4) y) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z)))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y)) |
#s(approx (* z -4) #s(hole binary64 (* -4 z))) |
#s(approx (* z -4) (*.f64 #s(literal -4 binary64) z)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z)) |
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y)))))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 23 |
| 0 | 14 | 23 |
| 1 | 44 | 23 |
| 0 | 275 | 22 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | unsound |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) |
(*.f64 (*.f64 z #s(literal -4 binary64)) y) |
(*.f64 z #s(literal -4 binary64)) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 #s(literal -4 binary64) y) z)) |
(*.f64 (*.f64 y z) #s(literal -4 binary64)) |
(*.f64 (*.f64 #s(literal -4 binary64) y) z) |
(*.f64 (*.f64 #s(literal -4 binary64) z) y) |
(*.f64 #s(literal -4 binary64) (*.f64 z y)) |
(*.f64 z (*.f64 #s(literal -4 binary64) y)) |
(*.f64 y (*.f64 #s(literal -4 binary64) z)) |
(neg.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y))) |
(*.f64 #s(literal -4 binary64) z) |
(*.f64 z #s(literal -4 binary64)) |
Compiled 277 to 55 computations (80.1% saved)
3 alts after pruning (0 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 17 | 0 | 17 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 2 | 2 |
| Total | 17 | 3 | 20 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 98.8% | (fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
| ✓ | 52.4% | #s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) |
| ✓ | 56.0% | #s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
Compiled 96 to 52 computations (45.8% saved)
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
| Outputs |
|---|
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
7 calls:
| 2.0ms | (*.f64 y #s(literal 4 binary64)) |
| 2.0ms | y |
| 2.0ms | z |
| 2.0ms | x |
| 2.0ms | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 98.8% | 1 | (*.f64 y #s(literal 4 binary64)) |
| 98.8% | 1 | (*.f64 (*.f64 y #s(literal 4 binary64)) z) |
| 98.8% | 1 | (*.f64 x x) |
| 98.8% | 1 | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
| 98.8% | 1 | x |
| 98.8% | 1 | y |
| 98.8% | 1 | z |
Compiled 23 to 32 computations (-39.1% saved)
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64))) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
7 calls:
| 87.0ms | (*.f64 y #s(literal 4 binary64)) |
| 1.0ms | z |
| 1.0ms | x |
| 1.0ms | y |
| 1.0ms | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 69.7% | 3 | (*.f64 y #s(literal 4 binary64)) |
| 74.9% | 3 | (*.f64 (*.f64 y #s(literal 4 binary64)) z) |
| 86.5% | 2 | (*.f64 x x) |
| 79.7% | 2 | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
| 86.5% | 2 | x |
| 69.7% | 3 | y |
| 69.0% | 3 | z |
Compiled 23 to 32 computations (-39.1% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
7 calls:
| 1.0ms | x |
| 1.0ms | (*.f64 y #s(literal 4 binary64)) |
| 1.0ms | y |
| 1.0ms | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
| 1.0ms | z |
| Accuracy | Segments | Branch |
|---|---|---|
| 56.0% | 1 | z |
| 56.0% | 1 | (*.f64 y #s(literal 4 binary64)) |
| 56.0% | 1 | y |
| 56.0% | 1 | (*.f64 (*.f64 y #s(literal 4 binary64)) z) |
| 56.0% | 1 | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z)) |
| 56.0% | 1 | (*.f64 x x) |
| 56.0% | 1 | x |
Compiled 23 to 32 computations (-39.1% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 9.0ms | 8191.509523022472 | 194251.57476272885 |
| 5.0ms | 112× | 0 | valid |
Compiled 208 to 182 computations (12.5% saved)
ival-mult: 2.0ms (74.4% of total)ival-sub: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 19 | 53 |
| 1 | 30 | 53 |
| 2 | 67 | 53 |
| 3 | 151 | 53 |
| 4 | 242 | 53 |
| 5 | 288 | 53 |
| 1× | saturated |
| Inputs |
|---|
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
(if (<=.f64 x #s(literal 130000 binary64)) #s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) #s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
| Outputs |
|---|
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x)) |
(if (<=.f64 x #s(literal 130000 binary64)) #s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) #s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))) |
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)) |
| 1× | done |
Compiled 53 to 19 computations (64.2% saved)
(sort y z)
(abs x)
Compiled 156 to 82 computations (47.4% saved)
Loading profile data...