
Time bar (total: 1.1s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0.0% | 0.0% | 99.9% | 0.1% | 0.0% | 0.0% | 0.0% | 0 |
| 100.0% | 99.9% | 0.0% | 0.1% | 0.0% | 0.0% | 0.0% | 1 |
Compiled 9 to 6 computations (33.3% saved)
| 189.0ms | 8 256× | 0 | valid |
Mul: 3.0ms (54.9% of total, 0.0 MiB)Add: 3.0ms (54.9% of total, 0.0 MiB)Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 36 |
| 1 | 90 | 32 |
| 2 | 333 | 32 |
| 3 | 1122 | 32 |
| 4 | 2816 | 32 |
| 1× | node-limit |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | %2 = (+.f64 x y) (*.f64 %2 %2) |
(sort x y)
Compiled 2 to 8 computations (-300.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 87 | 306 |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (+.f64 x y) x y %2 (*.f64 %2 %2) |
| Outputs |
|---|
%5 = (+ x y) %9 = (* %5 %5) %11 = (pow.f64 y #s(literal 2 binary64)) %13 = (*.f64 x y) %21 = (/.f64 y x) %25 = (pow.f64 x #s(literal 2 binary64)) %57 = (/.f64 x y) (approx x #s(literal 0 binary64)) (approx x x) (approx %5 y) (approx %5 (+.f64 x y)) (approx %9 %11) (approx %9 (fma.f64 #s(literal 2 binary64) %13 %11)) (approx %9 (fma.f64 x (+.f64 x (*.f64 #s(literal 2 binary64) y)) %11)) (approx %5 (*.f64 x (+.f64 #s(literal 1 binary64) %21))) (approx %9 %25) (approx %9 (*.f64 %25 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %21)))) (approx %9 (*.f64 %25 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %21 (/.f64 %11 %25))))) (approx %5 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1 binary64) %21) #s(literal 1 binary64))))) (approx %9 (*.f64 %25 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -2 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 %11 x))) x))))) (approx %9 (fma.f64 #s(literal 2 binary64) %13 %25)) (approx %9 (fma.f64 y (+.f64 y (*.f64 #s(literal 2 binary64) x)) %25)) (approx %5 (*.f64 y (+.f64 #s(literal 1 binary64) %57))) (approx %9 (*.f64 %11 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %57)))) (approx %9 (*.f64 %11 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %57 (/.f64 %25 %11))))) (approx %5 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %57) #s(literal 1 binary64))))) (approx %9 (*.f64 %11 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -2 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %25 y))) y))))) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 1.0ms | x | -inf |
| 1.0ms | x | inf |
| 1.0ms | y | -inf |
| 1.0ms | y | inf |
| 0.0ms | y | 0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 4 | 12 |
| 0 | 6 | 10 |
| 1 | 26 | 10 |
| 2 | 103 | 10 |
| 3 | 429 | 10 |
| 4 | 1518 | 10 |
| 0 | 4044 | 10 |
| 0 | 4279 | 10 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (+.f64 x y) x y %2 (*.f64 %2 %2) |
| Outputs |
|---|
%3 = (+.f64 y x) %9 = (neg.f64 %3) %11 = (neg.f64 x) %13 = (neg.f64 y) %16 = (fabs.f64 %3) %17 = (sqrt.f64 %16) %18 = (*.f64 %17 %16) %21 = (neg.f64 %16) %25 = (*.f64 %3 %3) %31 = (*.f64 %25 %25) %42 = (*.f64 x x) %43 = (fma.f64 %3 y %42) %44 = (+.f64 x x) %45 = (*.f64 %44 y) %51 = (*.f64 (*.f64 #s(literal -2 binary64) y) x) %64 = (*.f64 %9 %3) %66 = (fabs.f64 y) %67 = (neg.f64 %66) %68 = (neg.f64 %67) %69 = (fma.f64 #s(literal 2 binary64) y x) %70 = (*.f64 x %69) %72 = (fabs.f64 x) %73 = (neg.f64 %72) %74 = (neg.f64 %73) %75 = (fma.f64 #s(literal 2 binary64) x y) %76 = (*.f64 y %75) %78 = (*.f64 y x) %79 = (*.f64 %78 #s(literal 4 binary64)) %80 = (*.f64 y y) %81 = (fma.f64 x x %80) %83 = (fma.f64 y y %42) %85 = (*.f64 %11 x) %86 = (-.f64 %80 %85) %88 = (*.f64 %13 y) %89 = (-.f64 %42 %88) %91 = (*.f64 #s(literal 2 binary64) %11) %96 = (*.f64 #s(literal -2 binary64) %13) %101 = (*.f64 #s(literal -2 binary64) x) %106 = (*.f64 #s(literal 1/2 binary64) %78) %111 = (*.f64 #s(literal 2 binary64) %13) %116 = (neg.f64 %44) %127 = (+.f64 y y) %136 = (*.f64 %11 y) %147 = (*.f64 #s(literal 4 binary64) %78) %155 = (*.f64 %3 y) %171 = (*.f64 %3 x) %227 = (-.f64 %136 %155) %231 = (-.f64 %136 %171) %233 = (neg.f64 %70) %236 = (-.f64 %85 %155) %238 = (-.f64 %88 %171) %240 = (*.f64 %11 %3) %241 = (fma.f64 %13 y %240) %243 = (*.f64 %13 %3) %244 = (fma.f64 %11 x %243) %246 = (neg.f64 %43) %280 = (*.f64 %9 %21) %283 = (*.f64 %3 %21) %286 = (*.f64 %9 %16) %289 = (*.f64 %3 %16) %292 = (*.f64 %21 %9) %295 = (*.f64 %16 %9) %298 = (*.f64 %21 %3) %301 = (*.f64 %16 %3) x y (*.f64 #s(literal 1 binary64) %3) (pow.f64 %3 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64))) (neg.f64 %9) (-.f64 y %11) (-.f64 x %13) %3 (+.f64 x y) (*.f64 %18 %17) (*.f64 %17 %18) (*.f64 %21 %21) (*.f64 %16 %16) (*.f64 %9 %9) (*.f64 #s(literal 1 binary64) %25) %25 (pow.f64 (pow.f64 %3 #s(literal 8 binary64)) #s(literal 1/4 binary64)) (pow.f64 %31 #s(literal 1/2 binary64)) (pow.f64 %17 #s(literal 4 binary64)) (pow.f64 %21 #s(literal 2 binary64)) (pow.f64 %16 #s(literal 2 binary64)) (pow.f64 %9 #s(literal 2 binary64)) (pow.f64 %25 #s(literal 1 binary64)) (pow.f64 %3 #s(literal 2 binary64)) (/.f64 (fma.f64 %43 #s(literal 2 binary64) %45) #s(literal 2 binary64)) (/.f64 (-.f64 (*.f64 %43 #s(literal 2 binary64)) %51) #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %16 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %9 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %25 #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -2 binary64))) (neg.f64 %64) (fma.f64 %68 %68 %70) (fma.f64 %74 %74 %76) (fma.f64 %79 #s(literal 1/2 binary64) %81) (fma.f64 %79 #s(literal 1/2 binary64) %83) (fma.f64 %79 #s(literal 1/2 binary64) %86) (fma.f64 %79 #s(literal 1/2 binary64) %89) (fma.f64 %91 %13 %81) (fma.f64 %91 %13 %83) (fma.f64 %91 %13 %86) (fma.f64 %91 %13 %89) (fma.f64 %96 x %81) (fma.f64 %96 x %83) (fma.f64 %96 x %86) (fma.f64 %96 x %89) (fma.f64 %101 %13 %81) (fma.f64 %101 %13 %83) (fma.f64 %101 %13 %86) (fma.f64 %101 %13 %89) (fma.f64 %106 #s(literal 4 binary64) %81) (fma.f64 %106 #s(literal 4 binary64) %83) (fma.f64 %106 #s(literal 4 binary64) %86) (fma.f64 %106 #s(literal 4 binary64) %89) (fma.f64 %111 %11 %81) (fma.f64 %111 %11 %83) (fma.f64 %111 %11 %86) (fma.f64 %111 %11 %89) (fma.f64 %116 %13 %81) (fma.f64 %116 %13 %83) (fma.f64 %116 %13 %86) (fma.f64 %116 %13 %89) (fma.f64 %67 %67 %70) (fma.f64 %73 %73 %76) (fma.f64 %44 y %81) (fma.f64 %44 y %83) (fma.f64 %44 y %86) (fma.f64 %44 y %89) (fma.f64 %127 x %81) (fma.f64 %127 x %83) (fma.f64 %127 x %86) (fma.f64 %127 x %89) (fma.f64 #s(literal 4 binary64) %106 %81) (fma.f64 #s(literal 4 binary64) %106 %83) (fma.f64 #s(literal 4 binary64) %106 %86) (fma.f64 #s(literal 4 binary64) %106 %89) (fma.f64 #s(literal -2 binary64) %136 %81) (fma.f64 #s(literal -2 binary64) %136 %83) (fma.f64 #s(literal -2 binary64) %136 %86) (fma.f64 #s(literal -2 binary64) %136 %89) (fma.f64 %136 #s(literal -2 binary64) %81) (fma.f64 %136 #s(literal -2 binary64) %83) (fma.f64 %136 #s(literal -2 binary64) %86) (fma.f64 %136 #s(literal -2 binary64) %89) (fma.f64 %72 %72 %76) (fma.f64 %66 %66 %70) (fma.f64 #s(literal 1/2 binary64) %147 %81) (fma.f64 #s(literal 1/2 binary64) %147 %83) (fma.f64 #s(literal 1/2 binary64) %147 %86) (fma.f64 #s(literal 1/2 binary64) %147 %89) (fma.f64 #s(literal 1/2 binary64) %45 %43) (fma.f64 %11 %11 %76) (fma.f64 %11 %13 %43) (fma.f64 %11 %9 %155) (fma.f64 %45 #s(literal 1/2 binary64) %43) (fma.f64 %45 #s(literal 1 binary64) %81) (fma.f64 %45 #s(literal 1 binary64) %83) (fma.f64 %45 #s(literal 1 binary64) %86) (fma.f64 %45 #s(literal 1 binary64) %89) (fma.f64 %78 #s(literal 1 binary64) %43) (fma.f64 %78 #s(literal 2 binary64) %81) (fma.f64 %78 #s(literal 2 binary64) %83) (fma.f64 %78 #s(literal 2 binary64) %86) (fma.f64 %78 #s(literal 2 binary64) %89) (fma.f64 %13 (-.f64 %13 %44) %42) (fma.f64 %13 %11 %43) (fma.f64 %13 %13 %70) (fma.f64 %13 %9 %171) (fma.f64 %9 %11 %155) (fma.f64 %9 %13 %171) (fma.f64 #s(literal 1 binary64) %43 %78) (fma.f64 #s(literal 1 binary64) %42 %76) (fma.f64 #s(literal 1 binary64) %80 %70) (fma.f64 #s(literal 1 binary64) %76 %42) (fma.f64 #s(literal 1 binary64) %45 %81) (fma.f64 #s(literal 1 binary64) %45 %83) (fma.f64 #s(literal 1 binary64) %45 %86) (fma.f64 #s(literal 1 binary64) %45 %89) (fma.f64 #s(literal 1 binary64) %78 %43) (fma.f64 #s(literal 1 binary64) %70 %80) (fma.f64 #s(literal 1 binary64) %155 %171) (fma.f64 #s(literal 1 binary64) %171 %155) (fma.f64 #s(literal 2 binary64) %106 %43) (fma.f64 #s(literal 2 binary64) %78 %81) (fma.f64 #s(literal 2 binary64) %78 %83) (fma.f64 #s(literal 2 binary64) %78 %86) (fma.f64 #s(literal 2 binary64) %78 %89) (fma.f64 %3 y %171) (fma.f64 %3 x %155) (fma.f64 y (+.f64 %3 x) %42) (fma.f64 y (+.f64 x %3) %42) (fma.f64 y (+.f64 y %44) %42) (fma.f64 y %75 %42) (fma.f64 y (-.f64 x %9) %42) (fma.f64 y %44 %81) (fma.f64 y %44 %83) (fma.f64 y %44 %86) (fma.f64 y %44 %89) (fma.f64 y %3 %171) (fma.f64 y y %70) (fma.f64 y x %43) (fma.f64 x (+.f64 x %127) %80) (fma.f64 x %69 %80) (fma.f64 x (+.f64 y %3) %80) (fma.f64 x (+.f64 %3 y) %80) (fma.f64 x %127 %81) (fma.f64 x %127 %83) (fma.f64 x %127 %86) (fma.f64 x %127 %89) (fma.f64 x %3 %155) (fma.f64 x y %43) (fma.f64 x x %76) (-.f64 %81 %51) (-.f64 %83 %51) (-.f64 %43 %136) (-.f64 %42 %227) (-.f64 %42 (neg.f64 %76)) (-.f64 %80 %231) (-.f64 %80 %233) (-.f64 %76 %85) (-.f64 %78 %236) (-.f64 %78 %238) (-.f64 %78 %241) (-.f64 %78 %244) (-.f64 %78 %246) (-.f64 %70 %88) (-.f64 %155 %240) (-.f64 %171 %243) (sqrt.f64 %31) (fabs.f64 (-.f64 %42 (-.f64 %243 %78))) (fabs.f64 (-.f64 %78 (-.f64 %243 %42))) (fabs.f64 (-.f64 %51 %81)) (fabs.f64 (-.f64 %51 %83)) (fabs.f64 (-.f64 %136 %43)) (fabs.f64 (-.f64 %227 %42)) (fabs.f64 (-.f64 %231 %80)) (fabs.f64 (-.f64 %233 %80)) (fabs.f64 (-.f64 %236 %78)) (fabs.f64 (-.f64 %238 %78)) (fabs.f64 (-.f64 %241 %78)) (fabs.f64 (-.f64 %244 %78)) (fabs.f64 (-.f64 %246 %78)) (fabs.f64 (neg.f64 %280)) (fabs.f64 (neg.f64 %283)) (fabs.f64 (neg.f64 %286)) (fabs.f64 (neg.f64 %289)) (fabs.f64 (neg.f64 %292)) (fabs.f64 (neg.f64 %295)) (fabs.f64 (neg.f64 %298)) (fabs.f64 (neg.f64 %301)) (fabs.f64 %280) (fabs.f64 %283) (fabs.f64 %286) (fabs.f64 %289) (fabs.f64 %292) (fabs.f64 %295) (fabs.f64 %298) (fabs.f64 %301) (fabs.f64 %64) (fabs.f64 %25) (+.f64 %81 %45) (+.f64 %83 %45) (+.f64 %43 %78) (+.f64 %42 %76) (+.f64 %80 %70) (+.f64 %76 %42) (+.f64 %45 %81) (+.f64 %45 %83) (+.f64 %45 %86) (+.f64 %45 %89) (+.f64 %78 %43) (+.f64 %70 %80) (+.f64 %155 %171) (+.f64 %171 %155) |
Compiled 235 to 382 computations (-62.6% saved)
Compiled 51 to 135 computations (-164.7% saved)
3 alts after pruning (2 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 49 | 2 | 51 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 49 | 3 | 52 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 96.9% | (fma.f64 x x (*.f64 y (fma.f64 #s(literal 2 binary64) x y))) |
| ✓ | 100.0% | %5 = (+.f64 x y) (*.f64 %5 %5) |
| ▶ | 57.4% | %3 = (approx (+ x y) y) (*.f64 %3 %3) |
Compiled 3 to 9 computations (-200.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 114 | 461 |
| 1× | iter-limit |
| Inputs |
|---|
%3 = (approx (+ x y) y) %5 = (fma.f64 #s(literal 2 binary64) x y) %6 = (*.f64 y %5) x y %3 #s(literal 2 binary64) %5 %6 (fma.f64 x x %6) (*.f64 %3 %3) |
| Outputs |
|---|
%5 = (+ x y) %11 = (+ (* 2 x) y) %13 = (*.f64 #s(literal 2 binary64) x) %14 = (+.f64 y %13) %16 = (* y %11) %17 = (pow.f64 y #s(literal 2 binary64)) %19 = (*.f64 x y) %23 = (+ (* x x) %16) %29 = (/.f64 y x) %39 = (/.f64 %17 x) %43 = (pow.f64 x #s(literal 2 binary64)) %55 = (*.f64 #s(literal -1 binary64) %29) %66 = (fma.f64 #s(literal -2 binary64) y (*.f64 #s(literal -1 binary64) %39)) %81 = (/.f64 x y) %86 = (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %81)) (approx x #s(literal 0 binary64)) (approx x x) (approx %5 y) (approx %5 (+.f64 x y)) (approx %11 %14) (approx %16 %17) (approx %16 (fma.f64 #s(literal 2 binary64) %19 %17)) (approx %23 (fma.f64 x (+.f64 x (*.f64 #s(literal 2 binary64) y)) %17)) (approx %5 (*.f64 x (+.f64 #s(literal 1 binary64) %29))) (approx %11 %13) (approx %11 (*.f64 x (+.f64 #s(literal 2 binary64) %29))) (approx %16 (*.f64 #s(literal 2 binary64) %19)) (approx %16 (*.f64 x (fma.f64 #s(literal 2 binary64) y %39))) (approx %23 %43) (approx %23 (*.f64 %43 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %29)))) (approx %23 (*.f64 %43 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %29 (/.f64 %17 %43))))) (approx %5 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %55 #s(literal 1 binary64))))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %55 #s(literal 2 binary64))))) (approx %16 (*.f64 #s(literal -1 binary64) (*.f64 x %66))) (approx %23 (*.f64 %43 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 %66 x))))) (approx %16 (*.f64 y %14)) (approx %23 (fma.f64 #s(literal 2 binary64) %19 %43)) (approx %23 (fma.f64 y %14 %43)) (approx %5 (*.f64 y (+.f64 #s(literal 1 binary64) %81))) (approx %11 (*.f64 y %86)) (approx %16 (*.f64 %17 %86)) (approx %23 (*.f64 %17 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %81 (/.f64 %43 %17))))) (approx %5 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %81) #s(literal 1 binary64))))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -2 binary64) %81) #s(literal 1 binary64))))) (approx %23 (*.f64 %17 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -2 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %43 y))) y))))) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 2.0ms | y | inf |
| 2.0ms | y | -inf |
| 1.0ms | x | -inf |
| 1.0ms | x | inf |
| 0.0ms | x | 0 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 38 |
| 0 | 15 | 34 |
| 1 | 56 | 34 |
| 2 | 196 | 30 |
| 3 | 740 | 30 |
| 4 | 2345 | 30 |
| 0 | 5068 | 30 |
| 0 | 5397 | 30 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%3 = (approx (+ x y) y) %5 = (fma.f64 #s(literal 2 binary64) x y) %6 = (*.f64 y %5) x y %3 #s(literal 2 binary64) %5 %6 (fma.f64 x x %6) (*.f64 %3 %3) |
| Outputs |
|---|
%4 = (approx (+ y x) y) %10 = (neg.f64 %4) %13 = (fma.f64 #s(literal 2 binary64) x y) %19 = (*.f64 #s(literal -2 binary64) x) %20 = (-.f64 %19 y) %26 = (+.f64 x x) %29 = (*.f64 #s(literal 2 binary64) %26) %31 = (*.f64 #s(literal 1/2 binary64) x) %39 = (neg.f64 x) %44 = (+.f64 y x) %48 = (neg.f64 y) %52 = (neg.f64 %44) %60 = (*.f64 %13 y) %66 = (*.f64 %20 y) %68 = (+.f64 y y) %69 = (*.f64 %68 %26) %70 = (*.f64 y y) %72 = (*.f64 y x) %73 = (*.f64 %72 #s(literal 4 binary64)) %75 = (*.f64 %68 #s(literal 2 binary64)) %77 = (*.f64 %26 y) %78 = (*.f64 %77 #s(literal 2 binary64)) %80 = (*.f64 %72 #s(literal 1/2 binary64)) %82 = (*.f64 %44 y) %84 = (fabs.f64 y) %85 = (neg.f64 %84) %86 = (neg.f64 %85) %89 = (*.f64 #s(literal 1/2 binary64) %72) %91 = (*.f64 #s(literal -2 binary64) y) %93 = (*.f64 %48 x) %98 = (*.f64 #s(literal 4 binary64) %72) %104 = (*.f64 %39 %48) %111 = (*.f64 %48 %39) %115 = (*.f64 %48 %52) %118 = (*.f64 %52 %48) %124 = (*.f64 #s(literal 1/2 binary64) y) %127 = (*.f64 %31 y) %129 = (*.f64 %31 %68) %139 = (*.f64 #s(literal -2 binary64) %48) %148 = (*.f64 %48 %44) %150 = (*.f64 %48 y) %152 = (*.f64 %91 x) %162 = (*.f64 %44 %44) %174 = (*.f64 x x) %175 = (fma.f64 y y %174) %178 = (fabs.f64 x) %179 = (sqrt.f64 %178) %180 = (*.f64 %179 %178) %185 = (fma.f64 %44 y %174) %190 = (fma.f64 #s(literal 2 binary64) y x) %191 = (*.f64 %190 x) %213 = (neg.f64 %178) %225 = (*.f64 x %44) %228 = (*.f64 %39 x) %229 = (-.f64 %72 %228) %281 = (neg.f64 %175) %311 = (fabs.f64 %4) %312 = (sqrt.f64 %311) %313 = (*.f64 %312 %311) %316 = (neg.f64 %311) %320 = (*.f64 %4 %4) %325 = (*.f64 %320 %320) %346 = (*.f64 %10 %4) x y (*.f64 #s(literal 1 binary64) %4) (pow.f64 %4 #s(literal 1 binary64)) %4 (/.f64 #s(literal 1 binary64) (pow.f64 %4 #s(literal -1 binary64))) (neg.f64 %10) #s(literal 2 binary64) (*.f64 #s(literal 1 binary64) %13) (pow.f64 %13 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %13 #s(literal -1 binary64))) (neg.f64 %20) (fma.f64 (*.f64 x #s(literal 4 binary64)) #s(literal 1/2 binary64) y) (fma.f64 (*.f64 %26 #s(literal 2 binary64)) #s(literal 1/2 binary64) y) (fma.f64 %29 #s(literal 1/2 binary64) y) (fma.f64 %31 #s(literal 4 binary64) y) (fma.f64 #s(literal 4 binary64) %31 y) (fma.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 4 binary64) x) y) (fma.f64 #s(literal 1/2 binary64) %29 y) (fma.f64 #s(literal 1/2 binary64) (fma.f64 #s(literal 2 binary64) x %26) y) (fma.f64 #s(literal -2 binary64) %39 y) (fma.f64 %19 #s(literal -1 binary64) y) (fma.f64 %39 #s(literal -2 binary64) y) (fma.f64 #s(literal 1 binary64) %26 y) (fma.f64 #s(literal 1 binary64) %44 x) (fma.f64 %26 #s(literal 1 binary64) y) %13 (fma.f64 x #s(literal 2 binary64) y) (-.f64 %26 %48) (-.f64 %44 %39) (-.f64 y %19) (-.f64 x %52) (+.f64 %26 y) (+.f64 %44 x) (+.f64 y %26) (+.f64 x %44) (*.f64 %20 %48) (*.f64 %48 %20) (*.f64 #s(literal 1 binary64) %60) %60 (*.f64 y %13) (pow.f64 %60 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %60 #s(literal -1 binary64))) (neg.f64 %66) (fma.f64 %69 #s(literal 1/2 binary64) %70) (fma.f64 %73 #s(literal 1/2 binary64) %70) (fma.f64 %75 %31 %70) (fma.f64 %78 #s(literal 1/2 binary64) %70) (fma.f64 %80 #s(literal 4 binary64) %70) (fma.f64 %80 #s(literal 2 binary64) %82) (fma.f64 %86 %86 %77) (fma.f64 %86 %84 %77) (fma.f64 #s(literal 4 binary64) %89 %70) (fma.f64 %91 %39 %70) (fma.f64 %93 #s(literal -2 binary64) %70) (fma.f64 %85 %85 %77) (fma.f64 %68 %31 %82) (fma.f64 %68 x %70) (fma.f64 #s(literal 1/2 binary64) %98 %70) (fma.f64 #s(literal 1/2 binary64) %77 %82) (fma.f64 %72 #s(literal 1 binary64) %82) (fma.f64 %72 #s(literal 2 binary64) %70) (fma.f64 #s(literal -2 binary64) %93 %70) (fma.f64 %52 %48 %104) (fma.f64 %19 %48 %70) (fma.f64 %84 %86 %77) (fma.f64 %84 %84 %77) (fma.f64 %77 #s(literal 1/2 binary64) %82) (fma.f64 %77 #s(literal 1 binary64) %70) (fma.f64 %48 %52 %111) (fma.f64 %48 %19 %70) (fma.f64 %48 %48 %77) (fma.f64 %48 %39 %115) (fma.f64 %39 %91 %70) (fma.f64 %39 %48 %118) (fma.f64 #s(literal 1 binary64) %82 %72) (fma.f64 #s(literal 1 binary64) %72 %82) (fma.f64 #s(literal 1 binary64) %77 %70) (fma.f64 #s(literal 1 binary64) %70 %77) (fma.f64 %26 %124 %82) (fma.f64 %26 y %70) (fma.f64 #s(literal 2 binary64) %127 %82) (fma.f64 #s(literal 2 binary64) %129 %70) (fma.f64 #s(literal 2 binary64) %89 %82) (fma.f64 #s(literal 2 binary64) %104 %70) (fma.f64 #s(literal 2 binary64) %72 %70) (fma.f64 %44 y %72) (fma.f64 y %26 %70) (fma.f64 y %44 %72) (fma.f64 y y %77) (fma.f64 y x %82) (fma.f64 x %139 %70) (fma.f64 x %68 %70) (fma.f64 x y %82) (-.f64 %82 %93) (-.f64 %72 (-.f64 %93 %70)) (-.f64 %72 (*.f64 %52 y)) (-.f64 %72 %148) (-.f64 %77 %150) (-.f64 %70 %152) (+.f64 %115 %111) (+.f64 %111 %115) (+.f64 %104 %118) (+.f64 %118 %104) (+.f64 %82 %72) (+.f64 %72 %82) (+.f64 %77 %70) (+.f64 %70 %77) (*.f64 #s(literal 1 binary64) %162) %162 (pow.f64 %162 #s(literal 1 binary64)) (pow.f64 %44 #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %162 #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %44 #s(literal -2 binary64))) (neg.f64 (neg.f64 %162)) (fma.f64 (*.f64 x %26) #s(literal 1/2 binary64) %60) (fma.f64 %69 #s(literal 1/2 binary64) %175) (fma.f64 %73 #s(literal 1/2 binary64) %175) (fma.f64 %180 %179 %60) (fma.f64 %75 %31 %175) (fma.f64 %78 #s(literal 1/2 binary64) %175) (fma.f64 %80 #s(literal 4 binary64) %175) (fma.f64 %80 #s(literal 2 binary64) %185) (fma.f64 (*.f64 %26 %26) #s(literal 1/4 binary64) %60) (fma.f64 %86 %86 %191) (fma.f64 %86 %84 %191) (fma.f64 #s(literal 4 binary64) %89 %175) (fma.f64 #s(literal 4 binary64) (*.f64 %31 %31) %60) (fma.f64 %190 x %70) (fma.f64 %91 %39 %175) (fma.f64 %93 #s(literal -2 binary64) %175) (fma.f64 %85 %85 %191) (fma.f64 %179 %180 %60) (fma.f64 %68 %31 %185) (fma.f64 %68 x %175) (fma.f64 #s(literal 1/2 binary64) %98 %175) (fma.f64 #s(literal 1/2 binary64) %77 %185) (fma.f64 %72 #s(literal 1 binary64) %185) (fma.f64 %72 #s(literal 2 binary64) %175) (fma.f64 %20 %48 %174) (fma.f64 #s(literal -2 binary64) %93 %175) (fma.f64 %19 %48 %175) (fma.f64 %84 %86 %191) (fma.f64 %84 %84 %191) (fma.f64 %213 %213 %60) (fma.f64 %77 #s(literal 1/2 binary64) %185) (fma.f64 %77 #s(literal 1 binary64) %175) (fma.f64 %48 %20 %174) (fma.f64 %48 %19 %175) (fma.f64 %48 %48 %191) (fma.f64 %178 %178 %60) (fma.f64 %39 (-.f64 %39 %68) %70) (fma.f64 %39 %91 %175) (fma.f64 %39 %39 %60) (fma.f64 #s(literal 1 binary64) %225 %82) (fma.f64 #s(literal 1 binary64) %185 %72) (fma.f64 #s(literal 1 binary64) %82 %229) (fma.f64 #s(literal 1 binary64) %82 %225) (fma.f64 #s(literal 1 binary64) %191 %70) (fma.f64 #s(literal 1 binary64) %175 %77) (fma.f64 #s(literal 1 binary64) %72 %185) (fma.f64 #s(literal 1 binary64) %77 %175) (fma.f64 #s(literal 1 binary64) %70 %191) (fma.f64 #s(literal 1 binary64) %174 %60) (fma.f64 #s(literal 1 binary64) %60 %174) (fma.f64 %174 #s(literal 1 binary64) %60) (fma.f64 %26 (*.f64 #s(literal 1/2 binary64) %190) %70) (fma.f64 %26 %124 %185) (fma.f64 %26 %31 %60) (fma.f64 %26 y %175) (fma.f64 %13 y %174) (fma.f64 #s(literal 2 binary64) (*.f64 %31 x) %60) (fma.f64 #s(literal 2 binary64) %127 %185) (fma.f64 #s(literal 2 binary64) %129 %175) (fma.f64 #s(literal 2 binary64) (*.f64 %31 %190) %70) (fma.f64 #s(literal 2 binary64) %89 %185) (fma.f64 #s(literal 2 binary64) %104 %175) (fma.f64 #s(literal 2 binary64) %72 %175) (fma.f64 %44 y %229) (fma.f64 %44 y %225) (fma.f64 y %26 %175) (fma.f64 y %13 %174) (fma.f64 y %44 %229) (fma.f64 y %44 %225) (fma.f64 y y %191) (fma.f64 y x %185) (fma.f64 x (-.f64 %68 %39) %70) (fma.f64 x %139 %175) (fma.f64 x %190 %70) (fma.f64 x %68 %175) (fma.f64 x %44 %82) (fma.f64 x y %185) (fma.f64 x x %60) (-.f64 (-.f64 %175 %93) %93) (-.f64 (-.f64 %174 %148) %93) (-.f64 %225 %148) (-.f64 %185 %93) (-.f64 %191 %150) (-.f64 %175 %152) (-.f64 %72 (-.f64 %93 %175)) (-.f64 %72 (fma.f64 %48 x %281)) (-.f64 %72 (neg.f64 %185)) (-.f64 %77 %281) (-.f64 %70 (*.f64 %39 %190)) (-.f64 %70 (-.f64 %228 %77)) (-.f64 %70 (*.f64 x (-.f64 %91 x))) (-.f64 %174 %66) (-.f64 %60 %228) (+.f64 (fma.f64 y y %225) %72) (+.f64 (fma.f64 x x %82) %72) (+.f64 %225 %82) (+.f64 %185 %72) (+.f64 %82 %229) (+.f64 %82 %225) (+.f64 %191 %70) (+.f64 %175 %77) (+.f64 %72 %185) (+.f64 %77 %175) (+.f64 %70 %191) (+.f64 %174 %60) (+.f64 %60 %174) (*.f64 %313 %312) (*.f64 %312 %313) (*.f64 %316 %316) (*.f64 %311 %311) (*.f64 %10 %10) (*.f64 #s(literal 1 binary64) %320) %320 (pow.f64 (pow.f64 %4 #s(literal 8 binary64)) #s(literal 1/4 binary64)) (pow.f64 %325 #s(literal 1/2 binary64)) (pow.f64 %312 #s(literal 4 binary64)) (pow.f64 %316 #s(literal 2 binary64)) (pow.f64 %311 #s(literal 2 binary64)) (pow.f64 %10 #s(literal 2 binary64)) (pow.f64 %320 #s(literal 1 binary64)) (pow.f64 %4 #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %325 #s(literal -1/2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %316 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %311 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %10 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %320 #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %4 #s(literal -2 binary64))) (neg.f64 %346) (sqrt.f64 %325) (fabs.f64 (*.f64 %10 %316)) (fabs.f64 (*.f64 %4 %316)) (fabs.f64 (*.f64 %10 %311)) (fabs.f64 (*.f64 %4 %311)) (fabs.f64 (*.f64 %316 %10)) (fabs.f64 (*.f64 %311 %10)) (fabs.f64 (*.f64 %316 %4)) (fabs.f64 (*.f64 %311 %4)) (fabs.f64 %346) (fabs.f64 %320) |
Compiled 284 to 436 computations (-53.5% saved)
Compiled 64 to 177 computations (-176.6% saved)
4 alts after pruning (1 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 63 | 1 | 64 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 2 | 2 |
| Done | 0 | 1 | 1 |
| Total | 63 | 4 | 67 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 96.9% | (fma.f64 x x (*.f64 y (fma.f64 #s(literal 2 binary64) x y))) |
| ▶ | 53.0% | (fma.f64 x x (*.f64 y (approx (+ (* 2 x) y) (*.f64 #s(literal 2 binary64) x)))) |
| ✓ | 100.0% | %5 = (+.f64 x y) (*.f64 %5 %5) |
| ✓ | 57.4% | %3 = (approx (+ x y) y) (*.f64 %3 %3) |
Compiled 4 to 12 computations (-200.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 97 | 402 |
| 1× | iter-limit |
| Inputs |
|---|
%3 = (*.f64 #s(literal 2 binary64) x) %7 = (approx (+ (* 2 x) y) %3) %8 = (*.f64 y %7) x y #s(literal 2 binary64) %3 %7 %8 (fma.f64 x x %8) |
| Outputs |
|---|
%5 = (* 2 x) %7 = (*.f64 #s(literal 2 binary64) x) %10 = (+ %5 y) %12 = (+.f64 y %7) %14 = (* y %10) %15 = (pow.f64 y #s(literal 2 binary64)) %17 = (*.f64 x y) %21 = (+ (* x x) %14) %26 = (/.f64 y x) %32 = (/.f64 %15 x) %36 = (pow.f64 x #s(literal 2 binary64)) %56 = (fma.f64 #s(literal -2 binary64) y (*.f64 #s(literal -1 binary64) %32)) %71 = (/.f64 x y) %73 = (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %71)) (approx x #s(literal 0 binary64)) (approx x x) (approx %5 %7) (approx %10 y) (approx %10 %12) (approx %14 %15) (approx %14 (fma.f64 #s(literal 2 binary64) %17 %15)) (approx %21 (fma.f64 x (+.f64 x (*.f64 #s(literal 2 binary64) y)) %15)) (approx %10 (*.f64 x (+.f64 #s(literal 2 binary64) %26))) (approx %14 (*.f64 #s(literal 2 binary64) %17)) (approx %14 (*.f64 x (fma.f64 #s(literal 2 binary64) y %32))) (approx %21 %36) (approx %21 (*.f64 %36 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %26)))) (approx %21 (*.f64 %36 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %26 (/.f64 %15 %36))))) (approx %10 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1 binary64) %26) #s(literal 2 binary64))))) (approx %14 (*.f64 #s(literal -1 binary64) (*.f64 x %56))) (approx %21 (*.f64 %36 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 %56 x))))) (approx %14 (*.f64 y %12)) (approx %21 (fma.f64 #s(literal 2 binary64) %17 %36)) (approx %21 (fma.f64 y %12 %36)) (approx %10 (*.f64 y %73)) (approx %14 (*.f64 %15 %73)) (approx %21 (*.f64 %15 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %71 (/.f64 %36 %15))))) (approx %10 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -2 binary64) %71) #s(literal 1 binary64))))) (approx %21 (*.f64 %15 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -2 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %36 y))) y))))) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 5.0ms | x | -inf |
| 1.0ms | x | inf |
| 1.0ms | y | inf |
| 1.0ms | y | -inf |
| 0.0ms | y | 0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 40 |
| 0 | 13 | 40 |
| 1 | 40 | 40 |
| 2 | 118 | 40 |
| 3 | 348 | 40 |
| 4 | 1003 | 40 |
| 0 | 4105 | 40 |
| 0 | 4284 | 37 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%3 = (*.f64 #s(literal 2 binary64) x) %7 = (approx (+ (* 2 x) y) %3) %8 = (*.f64 y %7) x y #s(literal 2 binary64) %3 %7 %8 (fma.f64 x x %8) |
| Outputs |
|---|
%4 = (*.f64 x #s(literal 4 binary64)) %7 = (+.f64 x x) %8 = (*.f64 %7 #s(literal 2 binary64)) %10 = (*.f64 #s(literal 2 binary64) %7) %12 = (*.f64 #s(literal 1/2 binary64) x) %15 = (*.f64 #s(literal 4 binary64) x) %18 = (fma.f64 #s(literal 2 binary64) x %7) %21 = (neg.f64 x) %23 = (*.f64 #s(literal -2 binary64) x) %43 = (*.f64 %23 #s(literal 2 binary64)) %112 = (*.f64 %7 #s(literal 0 binary64)) %114 = (*.f64 #s(literal 0 binary64) %7) %144 = (*.f64 #s(literal -1 binary64) %21) %153 = (neg.f64 %12) %156 = (/.f64 x #s(literal 4 binary64)) %171 = (*.f64 #s(literal -1/2 binary64) x) %174 = (*.f64 %21 #s(literal -1 binary64)) %180 = (approx (+ (* 2 x) y) %7) %185 = (neg.f64 %180) %187 = (neg.f64 y) %190 = (*.f64 %180 y) %196 = (*.f64 %187 %180) %198 = (fma.f64 x x %190) %205 = (*.f64 %21 %7) %208 = (fabs.f64 x) %209 = (neg.f64 %208) %210 = (*.f64 %209 #s(literal -1 binary64)) %212 = (*.f64 %208 #s(literal -1 binary64)) %214 = (*.f64 #s(literal -1 binary64) %209) %216 = (*.f64 #s(literal -1 binary64) %208) %218 = (*.f64 x %7) %221 = (*.f64 x x) %222 = (*.f64 #s(literal 4 binary64) %221) %226 = (*.f64 %209 #s(literal 1 binary64)) %229 = (sqrt.f64 %208) %230 = (*.f64 %229 %208) %235 = (*.f64 #s(literal 1/4 binary64) %221) %250 = (*.f64 (neg.f64 (*.f64 %209 %229)) %229) %253 = (*.f64 (neg.f64 %205) #s(literal 1/2 binary64)) %255 = (neg.f64 %229) %257 = (*.f64 %255 (*.f64 %229 %209)) %259 = (*.f64 %23 %171) %261 = (*.f64 %12 %21) %262 = (*.f64 #s(literal -2 binary64) %261) %264 = (*.f64 %21 x) %265 = (*.f64 #s(literal -1 binary64) %264) %297 = (*.f64 %12 x) x y #s(literal 2 binary64) (*.f64 %4 #s(literal 1/2 binary64)) (*.f64 %8 #s(literal 1/2 binary64)) (*.f64 %10 #s(literal 1/2 binary64)) (*.f64 %12 #s(literal 4 binary64)) (*.f64 #s(literal 4 binary64) %12) (*.f64 #s(literal 1/2 binary64) %15) (*.f64 #s(literal 1/2 binary64) %10) (*.f64 #s(literal 1/2 binary64) %18) (*.f64 #s(literal -2 binary64) %21) (*.f64 %23 #s(literal -1 binary64)) (*.f64 %21 #s(literal -2 binary64)) (*.f64 #s(literal 1 binary64) %7) (*.f64 %7 #s(literal 1 binary64)) (*.f64 #s(literal 2 binary64) x) (*.f64 x #s(literal 2 binary64)) (pow.f64 %7 #s(literal 1 binary64)) (/.f64 (fma.f64 %7 #s(literal 2 binary64) %8) #s(literal 4 binary64)) (/.f64 (fma.f64 %7 #s(literal 2 binary64) %10) #s(literal 4 binary64)) (/.f64 (-.f64 %8 (*.f64 #s(literal 2 binary64) %23)) #s(literal 4 binary64)) (/.f64 (*.f64 #s(literal -4 binary64) %23) #s(literal 4 binary64)) (/.f64 (*.f64 %43 #s(literal -2 binary64)) #s(literal 4 binary64)) (/.f64 (*.f64 %23 #s(literal -4 binary64)) #s(literal 4 binary64)) (/.f64 (*.f64 #s(literal -2 binary64) %8) #s(literal -4 binary64)) (/.f64 (*.f64 #s(literal -2 binary64) %10) #s(literal -4 binary64)) (/.f64 (*.f64 %8 #s(literal -2 binary64)) #s(literal -4 binary64)) (/.f64 (*.f64 %10 #s(literal -2 binary64)) #s(literal -4 binary64)) (/.f64 (*.f64 #s(literal 8 binary64) %7) #s(literal 8 binary64)) (/.f64 (*.f64 %7 #s(literal 8 binary64)) #s(literal 8 binary64)) (/.f64 (*.f64 %43 #s(literal 2 binary64)) #s(literal -4 binary64)) (/.f64 (*.f64 %8 #s(literal 4 binary64)) #s(literal 8 binary64)) (/.f64 (*.f64 %10 #s(literal 4 binary64)) #s(literal 8 binary64)) (/.f64 (*.f64 #s(literal 4 binary64) %8) #s(literal 8 binary64)) (/.f64 (*.f64 #s(literal 4 binary64) %10) #s(literal 8 binary64)) (/.f64 (*.f64 #s(literal 1/2 binary64) %8) #s(literal 1 binary64)) (/.f64 (*.f64 #s(literal 1 binary64) %8) #s(literal 2 binary64)) (/.f64 (*.f64 #s(literal 1 binary64) %10) #s(literal 2 binary64)) (/.f64 (*.f64 #s(literal 2 binary64) %8) #s(literal 4 binary64)) (/.f64 (*.f64 #s(literal 2 binary64) %10) #s(literal 4 binary64)) (/.f64 (*.f64 #s(literal 4 binary64) %7) #s(literal 4 binary64)) (/.f64 (*.f64 %8 #s(literal 1 binary64)) #s(literal 2 binary64)) (/.f64 (*.f64 %8 #s(literal 2 binary64)) #s(literal 4 binary64)) (/.f64 (*.f64 %10 #s(literal 1 binary64)) #s(literal 2 binary64)) (/.f64 (*.f64 %10 #s(literal 2 binary64)) #s(literal 4 binary64)) (/.f64 (*.f64 %7 #s(literal 4 binary64)) #s(literal 4 binary64)) (/.f64 (neg.f64 %8) #s(literal -2 binary64)) (/.f64 (neg.f64 %10) #s(literal -2 binary64)) (/.f64 %4 #s(literal 2 binary64)) (/.f64 %15 #s(literal 2 binary64)) (/.f64 %8 #s(literal 2 binary64)) (/.f64 %10 #s(literal 2 binary64)) (/.f64 %18 #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %8)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %10)) (/.f64 #s(literal 1 binary64) (pow.f64 %7 #s(literal -1 binary64))) (/.f64 %7 #s(literal 1 binary64)) (/.f64 x #s(literal 1/2 binary64)) (neg.f64 %23) (fma.f64 %4 #s(literal 1/2 binary64) %112) (fma.f64 %4 #s(literal 1/2 binary64) %114) (fma.f64 %8 #s(literal 1/2 binary64) %112) (fma.f64 %8 #s(literal 1/2 binary64) %114) (fma.f64 %10 #s(literal 1/2 binary64) %112) (fma.f64 %10 #s(literal 1/2 binary64) %114) (fma.f64 %12 #s(literal 4 binary64) %112) (fma.f64 %12 #s(literal 4 binary64) %114) (fma.f64 #s(literal 4 binary64) %12 %112) (fma.f64 #s(literal 4 binary64) %12 %114) (fma.f64 #s(literal 1/2 binary64) %15 %112) (fma.f64 #s(literal 1/2 binary64) %15 %114) (fma.f64 #s(literal 1/2 binary64) %10 %112) (fma.f64 #s(literal 1/2 binary64) %10 %114) (fma.f64 #s(literal 1/2 binary64) %18 %112) (fma.f64 #s(literal 1/2 binary64) %18 %114) (fma.f64 #s(literal -2 binary64) %21 %112) (fma.f64 #s(literal -2 binary64) %21 %114) (fma.f64 %23 #s(literal -1 binary64) %112) (fma.f64 %23 #s(literal -1 binary64) %114) (fma.f64 %21 #s(literal -2 binary64) %112) (fma.f64 %21 #s(literal -2 binary64) %114) (fma.f64 #s(literal 1 binary64) %7 %112) (fma.f64 #s(literal 1 binary64) %7 %114) (fma.f64 %7 #s(literal 1 binary64) %112) (fma.f64 %7 #s(literal 1 binary64) %114) (fma.f64 #s(literal 2 binary64) x %112) (fma.f64 #s(literal 2 binary64) x %114) (fma.f64 x #s(literal 2 binary64) %112) (fma.f64 x #s(literal 2 binary64) %114) (-.f64 %144 %21) (-.f64 %7 (neg.f64 %112)) (-.f64 %7 (neg.f64 %114)) (-.f64 %7 (*.f64 %23 #s(literal 0 binary64))) (-.f64 %7 %114) (-.f64 x (*.f64 %153 #s(literal 2 binary64))) (-.f64 x (*.f64 #s(literal -4 binary64) %156)) (-.f64 x (*.f64 #s(literal -1/2 binary64) %7)) (-.f64 x %21) (+.f64 %7 %112) (+.f64 %7 %114) (+.f64 x (*.f64 #s(literal -1/2 binary64) %23)) (+.f64 x (*.f64 %23 #s(literal -1/2 binary64))) (+.f64 x (*.f64 #s(literal -2 binary64) %153)) (+.f64 x (*.f64 #s(literal -2 binary64) %171)) (+.f64 x %174) (+.f64 x %144) %7 (*.f64 #s(literal 1 binary64) %180) (pow.f64 %180 #s(literal 1 binary64)) %180 (/.f64 #s(literal 1 binary64) (pow.f64 %180 #s(literal -1 binary64))) (neg.f64 %185) (*.f64 %185 %187) (*.f64 %187 %185) (*.f64 #s(literal 1 binary64) %190) %190 (*.f64 y %180) (pow.f64 %190 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %190 #s(literal -1 binary64))) (neg.f64 %196) (*.f64 #s(literal 1 binary64) %198) (pow.f64 %198 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %198 #s(literal -1 binary64))) (neg.f64 (neg.f64 %198)) (fma.f64 (fabs.f64 %205) #s(literal 1/2 binary64) %190) (fma.f64 %210 %210 %190) (fma.f64 %212 %212 %190) (fma.f64 %214 %214 %190) (fma.f64 %216 %216 %190) (fma.f64 (fabs.f64 %218) #s(literal 1/2 binary64) %190) (fma.f64 (fabs.f64 %222) #s(literal 1/4 binary64) %190) (fma.f64 %226 %226 %190) (fma.f64 %218 #s(literal 1/2 binary64) %190) (fma.f64 %230 %229 %190) (fma.f64 %174 %174 %190) (fma.f64 %144 %144 %190) (fma.f64 %222 #s(literal 1/4 binary64) %190) (fma.f64 %235 #s(literal 4 binary64) %190) (fma.f64 #s(literal 16 binary64) (*.f64 %156 %156) %190) (fma.f64 (fabs.f64 %7) (*.f64 #s(literal 1/2 binary64) %208) %190) (fma.f64 #s(literal 1/4 binary64) %222 %190) (fma.f64 #s(literal 4 binary64) (fabs.f64 %235) %190) (fma.f64 #s(literal 4 binary64) %235 %190) (fma.f64 %229 %230 %190) (fma.f64 %185 %187 %250) (fma.f64 %185 %187 %253) (fma.f64 %185 %187 %257) (fma.f64 %185 %187 %259) (fma.f64 %185 %187 %262) (fma.f64 %185 %187 %265) (fma.f64 %185 %187 %221) (fma.f64 %209 %209 %190) (fma.f64 %187 %185 %250) (fma.f64 %187 %185 %253) (fma.f64 %187 %185 %257) (fma.f64 %187 %185 %259) (fma.f64 %187 %185 %262) (fma.f64 %187 %185 %265) (fma.f64 %187 %185 %221) (fma.f64 %208 %208 %190) (fma.f64 %21 %21 %190) (fma.f64 #s(literal 1 binary64) %221 %190) (fma.f64 #s(literal 1 binary64) %190 %250) (fma.f64 #s(literal 1 binary64) %190 %253) (fma.f64 #s(literal 1 binary64) %190 %257) (fma.f64 #s(literal 1 binary64) %190 %259) (fma.f64 #s(literal 1 binary64) %190 %262) (fma.f64 #s(literal 1 binary64) %190 %265) (fma.f64 #s(literal 1 binary64) %190 %221) (fma.f64 %221 #s(literal 1 binary64) %190) (fma.f64 %180 y %250) (fma.f64 %180 y %253) (fma.f64 %180 y %257) (fma.f64 %180 y %259) (fma.f64 %180 y %262) (fma.f64 %180 y %265) (fma.f64 %180 y %221) (fma.f64 %7 %12 %190) (fma.f64 #s(literal 2 binary64) (fabs.f64 %261) %190) (fma.f64 #s(literal 2 binary64) (fabs.f64 %297) %190) (fma.f64 #s(literal 2 binary64) %297 %190) (fma.f64 y %180 %250) (fma.f64 y %180 %253) (fma.f64 y %180 %257) (fma.f64 y %180 %259) (fma.f64 y %180 %262) (fma.f64 y %180 %265) (fma.f64 y %180 %221) %198 (-.f64 %221 %196) (-.f64 %190 (*.f64 (neg.f64 %218) #s(literal 1/2 binary64))) (-.f64 %190 (*.f64 (neg.f64 %230) %229)) (-.f64 %190 (*.f64 (neg.f64 %222) #s(literal 1/4 binary64))) (-.f64 %190 (*.f64 #s(literal -4 binary64) %235)) (-.f64 %190 (*.f64 %255 %230)) (-.f64 %190 (*.f64 #s(literal -2 binary64) %297)) (-.f64 %190 (*.f64 #s(literal -1 binary64) %221)) (-.f64 %190 %264) (+.f64 %221 %190) (+.f64 %190 %250) (+.f64 %190 %253) (+.f64 %190 %257) (+.f64 %190 %259) (+.f64 %190 %262) (+.f64 %190 %265) (+.f64 %190 %221) |
Compiled 232 to 388 computations (-67.2% saved)
Compiled 32 to 107 computations (-234.4% saved)
5 alts after pruning (2 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 30 | 2 | 32 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 3 | 3 |
| Total | 31 | 5 | 36 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 53.0% | (fma.f64 x x (*.f64 (approx (+ (* 2 x) y) (+.f64 x x)) y)) |
| ✓ | 96.9% | (fma.f64 x x (*.f64 y (fma.f64 #s(literal 2 binary64) x y))) |
| ▶ | 98.7% | (fma.f64 x x (*.f64 y (approx (+ (* 2 x) y) y))) |
| ✓ | 100.0% | %5 = (+.f64 x y) (*.f64 %5 %5) |
| ✓ | 57.4% | %3 = (approx (+ x y) y) (*.f64 %3 %3) |
Compiled 5 to 14 computations (-180.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 98 | 402 |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (+.f64 x x) %5 = (+ (* 2 x) y) %6 = (approx %5 y) %7 = (approx %5 %2) %8 = (*.f64 %7 y) %10 = (*.f64 y %6) x y %2 %6 %7 %8 (fma.f64 x x %8) %10 (fma.f64 x x %10) |
| Outputs |
|---|
%6 = (*.f64 #s(literal 2 binary64) x) %11 = (+ (* 2 x) y) %13 = (+.f64 y %6) %15 = (* %11 y) %16 = (pow.f64 y #s(literal 2 binary64)) %18 = (*.f64 x y) %22 = (+ (* x x) %15) %27 = (/.f64 y x) %33 = (/.f64 %16 x) %37 = (pow.f64 x #s(literal 2 binary64)) %57 = (fma.f64 #s(literal -2 binary64) y (*.f64 #s(literal -1 binary64) %33)) %72 = (/.f64 x y) %74 = (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %72)) (approx x #s(literal 0 binary64)) (approx x x) (approx (+ x x) %6) (approx %11 y) (approx %11 %13) (approx %15 %16) (approx %15 (fma.f64 #s(literal 2 binary64) %18 %16)) (approx %22 (fma.f64 x (+.f64 x (*.f64 #s(literal 2 binary64) y)) %16)) (approx %11 (*.f64 x (+.f64 #s(literal 2 binary64) %27))) (approx %15 (*.f64 #s(literal 2 binary64) %18)) (approx %15 (*.f64 x (fma.f64 #s(literal 2 binary64) y %33))) (approx %22 %37) (approx %22 (*.f64 %37 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %27)))) (approx %22 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %27 (/.f64 %16 %37))))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1 binary64) %27) #s(literal 2 binary64))))) (approx %15 (*.f64 #s(literal -1 binary64) (*.f64 x %57))) (approx %22 (*.f64 %37 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 %57 x))))) (approx %15 (*.f64 y %13)) (approx %22 (fma.f64 #s(literal 2 binary64) %18 %37)) (approx %22 (fma.f64 y %13 %37)) (approx %11 (*.f64 y %74)) (approx %15 (*.f64 %16 %74)) (approx %22 (*.f64 %16 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %72 (/.f64 %37 %16))))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -2 binary64) %72) #s(literal 1 binary64))))) (approx %22 (*.f64 %16 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -2 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %37 y))) y))))) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 6.0ms | x | -inf |
| 1.0ms | y | inf |
| 1.0ms | y | -inf |
| 1.0ms | x | inf |
| 0.0ms | x | 0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 67 |
| 0 | 18 | 67 |
| 1 | 57 | 67 |
| 2 | 165 | 67 |
| 3 | 460 | 67 |
| 4 | 1151 | 67 |
| 0 | 4205 | 67 |
| 0 | 4408 | 61 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (+.f64 x x) %5 = (+ (* 2 x) y) %6 = (approx %5 y) %7 = (approx %5 %2) %8 = (*.f64 %7 y) %10 = (*.f64 y %6) x y %2 %6 %7 %8 (fma.f64 x x %8) %10 (fma.f64 x x %10) |
| Outputs |
|---|
%3 = (*.f64 x #s(literal 4 binary64)) %6 = (+.f64 x x) %8 = (*.f64 %6 #s(literal 2 binary64)) %10 = (*.f64 #s(literal 2 binary64) %6) %12 = (*.f64 #s(literal 1/2 binary64) x) %15 = (*.f64 #s(literal 4 binary64) x) %18 = (fma.f64 #s(literal 2 binary64) x %6) %21 = (neg.f64 x) %23 = (*.f64 #s(literal -2 binary64) x) %58 = (*.f64 %23 #s(literal 2 binary64)) %112 = (*.f64 %6 #s(literal 0 binary64)) %114 = (*.f64 #s(literal 0 binary64) %6) %144 = (*.f64 #s(literal -1 binary64) %21) %161 = (*.f64 #s(literal -1/2 binary64) x) %164 = (*.f64 %21 #s(literal -1 binary64)) %169 = (+ (* 2 x) y) %170 = (approx %169 y) %175 = (neg.f64 %170) %177 = (approx %169 %6) %182 = (neg.f64 %177) %184 = (neg.f64 y) %187 = (*.f64 %177 y) %193 = (*.f64 %182 y) %195 = (fma.f64 x x %187) %202 = (*.f64 %21 %6) %203 = (fabs.f64 %202) %205 = (fabs.f64 x) %206 = (neg.f64 %205) %207 = (*.f64 %206 #s(literal -1 binary64)) %209 = (*.f64 %205 #s(literal -1 binary64)) %211 = (*.f64 #s(literal -1 binary64) %206) %213 = (*.f64 #s(literal -1 binary64) %205) %215 = (*.f64 x %6) %216 = (fabs.f64 %215) %218 = (*.f64 x x) %219 = (*.f64 #s(literal 4 binary64) %218) %220 = (fabs.f64 %219) %223 = (*.f64 %206 #s(literal 1 binary64)) %226 = (sqrt.f64 %205) %227 = (*.f64 %226 %205) %232 = (*.f64 #s(literal 1/4 binary64) %218) %235 = (/.f64 x #s(literal 4 binary64)) %236 = (*.f64 %235 %235) %238 = (fabs.f64 %6) %239 = (*.f64 #s(literal 1/2 binary64) %205) %242 = (fabs.f64 %232) %249 = (*.f64 (neg.f64 (*.f64 %206 %226)) %226) %252 = (*.f64 (neg.f64 %202) #s(literal 1/2 binary64)) %256 = (*.f64 (neg.f64 %226) (*.f64 %226 %206)) %258 = (*.f64 %23 %161) %260 = (*.f64 %12 %21) %261 = (*.f64 #s(literal -2 binary64) %260) %263 = (*.f64 %21 x) %264 = (*.f64 #s(literal -1 binary64) %263) %293 = (fabs.f64 %260) %295 = (*.f64 %12 x) %296 = (fabs.f64 %295) %318 = (*.f64 %170 y) %324 = (*.f64 %184 %170) %326 = (fma.f64 x x %318) x y (*.f64 %3 #s(literal 1/2 binary64)) (*.f64 %8 #s(literal 1/2 binary64)) (*.f64 %10 #s(literal 1/2 binary64)) (*.f64 %12 #s(literal 4 binary64)) (*.f64 #s(literal 4 binary64) %12) (*.f64 #s(literal 1/2 binary64) %15) (*.f64 #s(literal 1/2 binary64) %10) (*.f64 #s(literal 1/2 binary64) %18) (*.f64 #s(literal -2 binary64) %21) (*.f64 %23 #s(literal -1 binary64)) (*.f64 %21 #s(literal -2 binary64)) (*.f64 #s(literal 1 binary64) %6) (*.f64 %6 #s(literal 1 binary64)) (*.f64 #s(literal 2 binary64) x) (*.f64 x #s(literal 2 binary64)) (pow.f64 %6 #s(literal 1 binary64)) (/.f64 (fma.f64 %6 #s(literal 2 binary64) %8) #s(literal 4 binary64)) (/.f64 (fma.f64 %6 #s(literal 2 binary64) %10) #s(literal 4 binary64)) (/.f64 (-.f64 %8 (*.f64 #s(literal 2 binary64) %23)) #s(literal 4 binary64)) (/.f64 (*.f64 #s(literal -4 binary64) %23) #s(literal 4 binary64)) (/.f64 (*.f64 %23 #s(literal -4 binary64)) #s(literal 4 binary64)) (/.f64 (*.f64 #s(literal 4 binary64) %8) #s(literal 8 binary64)) (/.f64 (*.f64 #s(literal 4 binary64) %10) #s(literal 8 binary64)) (/.f64 (*.f64 #s(literal 8 binary64) %6) #s(literal 8 binary64)) (/.f64 (*.f64 %6 #s(literal 8 binary64)) #s(literal 8 binary64)) (/.f64 (*.f64 %8 #s(literal 4 binary64)) #s(literal 8 binary64)) (/.f64 (*.f64 %10 #s(literal 4 binary64)) #s(literal 8 binary64)) (/.f64 (*.f64 %58 #s(literal -2 binary64)) #s(literal 4 binary64)) (/.f64 (*.f64 %58 #s(literal 2 binary64)) #s(literal -4 binary64)) (/.f64 (*.f64 #s(literal -2 binary64) %8) #s(literal -4 binary64)) (/.f64 (*.f64 #s(literal -2 binary64) %10) #s(literal -4 binary64)) (/.f64 (*.f64 %8 #s(literal -2 binary64)) #s(literal -4 binary64)) (/.f64 (*.f64 %10 #s(literal -2 binary64)) #s(literal -4 binary64)) (/.f64 (*.f64 #s(literal 1/2 binary64) %8) #s(literal 1 binary64)) (/.f64 (*.f64 #s(literal 1 binary64) %8) #s(literal 2 binary64)) (/.f64 (*.f64 #s(literal 1 binary64) %10) #s(literal 2 binary64)) (/.f64 (*.f64 #s(literal 2 binary64) %8) #s(literal 4 binary64)) (/.f64 (*.f64 #s(literal 2 binary64) %10) #s(literal 4 binary64)) (/.f64 (*.f64 #s(literal 4 binary64) %6) #s(literal 4 binary64)) (/.f64 (*.f64 %8 #s(literal 1 binary64)) #s(literal 2 binary64)) (/.f64 (*.f64 %8 #s(literal 2 binary64)) #s(literal 4 binary64)) (/.f64 (*.f64 %10 #s(literal 1 binary64)) #s(literal 2 binary64)) (/.f64 (*.f64 %10 #s(literal 2 binary64)) #s(literal 4 binary64)) (/.f64 (*.f64 %6 #s(literal 4 binary64)) #s(literal 4 binary64)) (/.f64 (neg.f64 %8) #s(literal -2 binary64)) (/.f64 (neg.f64 %10) #s(literal -2 binary64)) (/.f64 %3 #s(literal 2 binary64)) (/.f64 %15 #s(literal 2 binary64)) (/.f64 %8 #s(literal 2 binary64)) (/.f64 %10 #s(literal 2 binary64)) (/.f64 %18 #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %8)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %10)) (/.f64 #s(literal 1 binary64) (pow.f64 %6 #s(literal -1 binary64))) (/.f64 %6 #s(literal 1 binary64)) (/.f64 x #s(literal 1/2 binary64)) (neg.f64 %23) (fma.f64 %3 #s(literal 1/2 binary64) %112) (fma.f64 %3 #s(literal 1/2 binary64) %114) (fma.f64 %8 #s(literal 1/2 binary64) %112) (fma.f64 %8 #s(literal 1/2 binary64) %114) (fma.f64 %10 #s(literal 1/2 binary64) %112) (fma.f64 %10 #s(literal 1/2 binary64) %114) (fma.f64 %12 #s(literal 4 binary64) %112) (fma.f64 %12 #s(literal 4 binary64) %114) (fma.f64 #s(literal 4 binary64) %12 %112) (fma.f64 #s(literal 4 binary64) %12 %114) (fma.f64 #s(literal 1/2 binary64) %15 %112) (fma.f64 #s(literal 1/2 binary64) %15 %114) (fma.f64 #s(literal 1/2 binary64) %10 %112) (fma.f64 #s(literal 1/2 binary64) %10 %114) (fma.f64 #s(literal 1/2 binary64) %18 %112) (fma.f64 #s(literal 1/2 binary64) %18 %114) (fma.f64 #s(literal -2 binary64) %21 %112) (fma.f64 #s(literal -2 binary64) %21 %114) (fma.f64 %23 #s(literal -1 binary64) %112) (fma.f64 %23 #s(literal -1 binary64) %114) (fma.f64 %21 #s(literal -2 binary64) %112) (fma.f64 %21 #s(literal -2 binary64) %114) (fma.f64 #s(literal 1 binary64) %6 %112) (fma.f64 #s(literal 1 binary64) %6 %114) (fma.f64 %6 #s(literal 1 binary64) %112) (fma.f64 %6 #s(literal 1 binary64) %114) (fma.f64 #s(literal 2 binary64) x %112) (fma.f64 #s(literal 2 binary64) x %114) (fma.f64 x #s(literal 2 binary64) %112) (fma.f64 x #s(literal 2 binary64) %114) (-.f64 %144 %21) (-.f64 %6 (neg.f64 %112)) (-.f64 %6 (neg.f64 %114)) (-.f64 x %21) (+.f64 %6 %112) (+.f64 %6 %114) (+.f64 x (*.f64 #s(literal -1/2 binary64) %23)) (+.f64 x (*.f64 %23 #s(literal -1/2 binary64))) (+.f64 x (*.f64 #s(literal -2 binary64) (neg.f64 %12))) (+.f64 x (*.f64 #s(literal -2 binary64) %161)) (+.f64 x %164) (+.f64 x %144) %6 (*.f64 #s(literal 1 binary64) %170) (pow.f64 %170 #s(literal 1 binary64)) %170 (/.f64 #s(literal 1 binary64) (pow.f64 %170 #s(literal -1 binary64))) (neg.f64 %175) (*.f64 #s(literal 1 binary64) %177) (pow.f64 %177 #s(literal 1 binary64)) %177 (/.f64 #s(literal 1 binary64) (pow.f64 %177 #s(literal -1 binary64))) (neg.f64 %182) (*.f64 %182 %184) (*.f64 %184 %182) (*.f64 #s(literal 1 binary64) %187) %187 (*.f64 y %177) (pow.f64 %187 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %187 #s(literal -1 binary64))) (neg.f64 %193) (*.f64 #s(literal 1 binary64) %195) (pow.f64 %195 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %195 #s(literal -1 binary64))) (neg.f64 (neg.f64 %195)) (fma.f64 %203 #s(literal 1/2 binary64) %187) (fma.f64 %207 %207 %187) (fma.f64 %209 %209 %187) (fma.f64 %211 %211 %187) (fma.f64 %213 %213 %187) (fma.f64 %216 #s(literal 1/2 binary64) %187) (fma.f64 %220 #s(literal 1/4 binary64) %187) (fma.f64 %223 %223 %187) (fma.f64 %215 #s(literal 1/2 binary64) %187) (fma.f64 %227 %226 %187) (fma.f64 %164 %164 %187) (fma.f64 %144 %144 %187) (fma.f64 %219 #s(literal 1/4 binary64) %187) (fma.f64 %232 #s(literal 4 binary64) %187) (fma.f64 #s(literal 16 binary64) %236 %187) (fma.f64 %238 %239 %187) (fma.f64 #s(literal 1/4 binary64) %219 %187) (fma.f64 #s(literal 4 binary64) %242 %187) (fma.f64 #s(literal 4 binary64) %232 %187) (fma.f64 %226 %227 %187) (fma.f64 %206 %206 %187) (fma.f64 %182 %184 %249) (fma.f64 %182 %184 %252) (fma.f64 %182 %184 %256) (fma.f64 %182 %184 %258) (fma.f64 %182 %184 %261) (fma.f64 %182 %184 %264) (fma.f64 %182 %184 %218) (fma.f64 %184 %182 %249) (fma.f64 %184 %182 %252) (fma.f64 %184 %182 %256) (fma.f64 %184 %182 %258) (fma.f64 %184 %182 %261) (fma.f64 %184 %182 %264) (fma.f64 %184 %182 %218) (fma.f64 %205 %205 %187) (fma.f64 %21 %21 %187) (fma.f64 #s(literal 1 binary64) %218 %187) (fma.f64 #s(literal 1 binary64) %187 %249) (fma.f64 #s(literal 1 binary64) %187 %252) (fma.f64 #s(literal 1 binary64) %187 %256) (fma.f64 #s(literal 1 binary64) %187 %258) (fma.f64 #s(literal 1 binary64) %187 %261) (fma.f64 #s(literal 1 binary64) %187 %264) (fma.f64 #s(literal 1 binary64) %187 %218) (fma.f64 %218 #s(literal 1 binary64) %187) (fma.f64 %177 y %249) (fma.f64 %177 y %252) (fma.f64 %177 y %256) (fma.f64 %177 y %258) (fma.f64 %177 y %261) (fma.f64 %177 y %264) (fma.f64 %177 y %218) (fma.f64 %6 %12 %187) (fma.f64 #s(literal 2 binary64) %293 %187) (fma.f64 #s(literal 2 binary64) %296 %187) (fma.f64 #s(literal 2 binary64) %295 %187) (fma.f64 y %177 %249) (fma.f64 y %177 %252) (fma.f64 y %177 %256) (fma.f64 y %177 %258) (fma.f64 y %177 %261) (fma.f64 y %177 %264) (fma.f64 y %177 %218) %195 (-.f64 %218 %193) (-.f64 %187 %263) (+.f64 %218 %187) (+.f64 %187 %249) (+.f64 %187 %252) (+.f64 %187 %256) (+.f64 %187 %258) (+.f64 %187 %261) (+.f64 %187 %264) (+.f64 %187 %218) (*.f64 %175 %184) (*.f64 %184 %175) (*.f64 #s(literal 1 binary64) %318) %318 (*.f64 y %170) (pow.f64 %318 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %318 #s(literal -1 binary64))) (neg.f64 %324) (*.f64 #s(literal 1 binary64) %326) (pow.f64 %326 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %326 #s(literal -1 binary64))) (neg.f64 (neg.f64 %326)) (fma.f64 %203 #s(literal 1/2 binary64) %318) (fma.f64 %207 %207 %318) (fma.f64 %209 %209 %318) (fma.f64 %211 %211 %318) (fma.f64 %213 %213 %318) (fma.f64 %216 #s(literal 1/2 binary64) %318) (fma.f64 %220 #s(literal 1/4 binary64) %318) (fma.f64 %223 %223 %318) (fma.f64 %215 #s(literal 1/2 binary64) %318) (fma.f64 %227 %226 %318) (fma.f64 %164 %164 %318) (fma.f64 %144 %144 %318) (fma.f64 %219 #s(literal 1/4 binary64) %318) (fma.f64 %232 #s(literal 4 binary64) %318) (fma.f64 #s(literal 16 binary64) %236 %318) (fma.f64 %238 %239 %318) (fma.f64 #s(literal 1/4 binary64) %219 %318) (fma.f64 #s(literal 4 binary64) %242 %318) (fma.f64 #s(literal 4 binary64) %232 %318) (fma.f64 %226 %227 %318) (fma.f64 %175 %184 %249) (fma.f64 %175 %184 %252) (fma.f64 %175 %184 %256) (fma.f64 %175 %184 %258) (fma.f64 %175 %184 %261) (fma.f64 %175 %184 %264) (fma.f64 %175 %184 %218) (fma.f64 %206 %206 %318) (fma.f64 %184 %175 %249) (fma.f64 %184 %175 %252) (fma.f64 %184 %175 %256) (fma.f64 %184 %175 %258) (fma.f64 %184 %175 %261) (fma.f64 %184 %175 %264) (fma.f64 %184 %175 %218) (fma.f64 %205 %205 %318) (fma.f64 %21 %21 %318) (fma.f64 #s(literal 1 binary64) %218 %318) (fma.f64 #s(literal 1 binary64) %318 %249) (fma.f64 #s(literal 1 binary64) %318 %252) (fma.f64 #s(literal 1 binary64) %318 %256) (fma.f64 #s(literal 1 binary64) %318 %258) (fma.f64 #s(literal 1 binary64) %318 %261) (fma.f64 #s(literal 1 binary64) %318 %264) (fma.f64 #s(literal 1 binary64) %318 %218) (fma.f64 %218 #s(literal 1 binary64) %318) (fma.f64 %170 y %249) (fma.f64 %170 y %252) (fma.f64 %170 y %256) (fma.f64 %170 y %258) (fma.f64 %170 y %261) (fma.f64 %170 y %264) (fma.f64 %170 y %218) (fma.f64 %6 %12 %318) (fma.f64 #s(literal 2 binary64) %293 %318) (fma.f64 #s(literal 2 binary64) %296 %318) (fma.f64 #s(literal 2 binary64) %295 %318) (fma.f64 y %170 %249) (fma.f64 y %170 %252) (fma.f64 y %170 %256) (fma.f64 y %170 %258) (fma.f64 y %170 %261) (fma.f64 y %170 %264) (fma.f64 y %170 %218) %326 (-.f64 %218 %324) (-.f64 %318 %263) (+.f64 %218 %318) (+.f64 %318 %249) (+.f64 %318 %252) (+.f64 %318 %256) (+.f64 %318 %258) (+.f64 %318 %261) (+.f64 %318 %264) (+.f64 %318 %218) |
Compiled 310 to 459 computations (-48.1% saved)
Compiled 40 to 120 computations (-200.0% saved)
5 alts after pruning (0 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 40 | 0 | 40 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 2 | 2 |
| Done | 0 | 3 | 3 |
| Total | 40 | 5 | 45 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 53.0% | (fma.f64 x x (*.f64 (approx (+ (* 2 x) y) (+.f64 x x)) y)) |
| ✓ | 96.9% | (fma.f64 x x (*.f64 y (fma.f64 #s(literal 2 binary64) x y))) |
| ✓ | 98.7% | (fma.f64 x x (*.f64 y (approx (+ (* 2 x) y) y))) |
| ✓ | 100.0% | %5 = (+.f64 x y) (*.f64 %5 %5) |
| ✓ | 57.4% | %3 = (approx (+ x y) y) (*.f64 %3 %3) |
Compiled 5 to 14 computations (-180.0% saved)
Total 0.0b remaining (0.0%)
Threshold costs 0.0b (0.0%)
| 0.0b | -0.0% |
| 0.0b | 0% |
| -0.0b | -0.0% |
| Inputs |
|---|
%3 = (approx (+ x y) y) (*.f64 %3 %3) |
| Outputs |
|---|
%3 = (approx (+ x y) y) (*.f64 %3 %3) |
| Inputs |
|---|
%3 = (approx (+ x y) y) (*.f64 %3 %3) (fma.f64 x x (*.f64 y (approx (+ (* 2 x) y) y))) |
| Outputs |
|---|
(fma.f64 x x (*.f64 y (approx (+ (* 2 x) y) y))) |
| Inputs |
|---|
%3 = (approx (+ x y) y) %11 = (+.f64 x y) (*.f64 %3 %3) (fma.f64 x x (*.f64 y (approx (+ (* 2 x) y) y))) (*.f64 %11 %11) |
| Outputs |
|---|
%2 = (+.f64 x y) (*.f64 %2 %2) |
4 calls:
| 9.0ms | y |
| 8.0ms | %2 = (+.f64 x y) (*.f64 %2 %2) |
| 4.0ms | x |
| 4.0ms | (+.f64 x y) |
| Accuracy | Segments | Branch |
|---|---|---|
| 57.4% | 1 | y |
| 57.4% | 1 | x |
| 57.4% | 1 | %11 = (+.f64 x y) (*.f64 %11 %11) |
| 57.4% | 1 | (+.f64 x y) |
Compiled 10 to 21 computations (-110.0% saved)
| 1× | done |
Compiled 3 to 7 computations (-133.3% saved)
Compiled 10 to 31 computations (-210.0% saved)
| Allocated | Percent | Phase |
|---|---|---|
| 744.5 MiB | 36.7% | sample |
| 641.6 MiB | 31.6% | rewrite |
| 269.5 MiB | 13.3% | reconstruct |
| 138.4 MiB | 6.8% | series |
| 73.8 MiB | 3.6% | preprocess |
| 60.0 MiB | 3.0% | regimes |
| 46.5 MiB | 2.3% | eval |
| 27.7 MiB | 1.4% | prune |
| 26.1 MiB | 1.3% | derivations |
| 0.3 MiB | 0.0% | analyze |
| 0.1 MiB | 0.0% | bsearch |
| 0.0 MiB | 0.0% | start |
| 0.0 MiB | 0.0% | end |
| 2 028.6 MiB | 100.0% | total |
Loading profile data...