
Time bar (total: 728.0ms)
| 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 7 computations (22.2% saved)
| 156.0ms | 8 256× | 0 | valid |
Mul: 3.0ms (40.7% of total, 0.0 MiB)Add: 3.0ms (40.7% of total, 0.0 MiB)Sub: 2.0ms (27.1% of total, 0.0 MiB)Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 18 | 42 |
| 1 | 73 | 42 |
| 2 | 201 | 42 |
| 3 | 633 | 42 |
| 4 | 1480 | 42 |
| 1× | node-limit |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | (*.f64 (+.f64 x y) (-.f64 x y)) |
(abs x)
(abs y)
Compiled 2 to 10 computations (-400.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 116 | 438 |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (+.f64 x y) %3 = (-.f64 x y) x y %2 %3 (*.f64 %2 %3) |
| Outputs |
|---|
%5 = (+ x y) %9 = (- x y) %11 = (*.f64 #s(literal -1 binary64) y) %15 = (* %5 %9) %17 = (pow.f64 y #s(literal 2 binary64)) %20 = (+.f64 y %11) %29 = (/.f64 y x) %33 = (*.f64 #s(literal -1 binary64) %29) %37 = (pow.f64 x #s(literal 2 binary64)) %67 = (+.f64 x (*.f64 #s(literal -1 binary64) x)) %74 = (/.f64 x y) %91 = (*.f64 #s(literal -1 binary64) %74) (approx x #s(literal 0 binary64)) (approx x x) (approx %5 y) (approx %5 (+.f64 x y)) (approx %9 %11) (approx %9 (-.f64 x y)) (approx %15 (*.f64 #s(literal -1 binary64) %17)) (approx %15 (fma.f64 #s(literal -1 binary64) %17 (*.f64 x %20))) (approx %15 (fma.f64 #s(literal -1 binary64) %17 (*.f64 x (+.f64 x %20)))) (approx %5 (*.f64 x (+.f64 #s(literal 1 binary64) %29))) (approx %9 (*.f64 x (+.f64 #s(literal 1 binary64) %33))) (approx %15 %37) (approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %29 %29)))) (approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %29 (fma.f64 #s(literal -1 binary64) (/.f64 %17 %37) %29))))) (approx %5 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %33 #s(literal 1 binary64))))) (approx %9 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %29 #s(literal 1 binary64))))) (approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) %20 (/.f64 %17 x)) x))))) (approx %9 (+.f64 x %11)) (approx %15 (fma.f64 y %67 %37)) (approx %15 (fma.f64 y (+.f64 x (fma.f64 #s(literal -1 binary64) x %11)) %37)) (approx %5 (*.f64 y (+.f64 #s(literal 1 binary64) %74))) (approx %9 (*.f64 y (-.f64 %74 #s(literal 1 binary64)))) (approx %15 (*.f64 %17 (-.f64 (fma.f64 #s(literal -1 binary64) %74 %74) #s(literal 1 binary64)))) (approx %15 (*.f64 %17 (-.f64 (fma.f64 #s(literal -1 binary64) %74 (+.f64 %74 (/.f64 %37 %17))) #s(literal 1 binary64)))) (approx %5 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 %91 #s(literal 1 binary64))))) (approx %9 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 #s(literal 1 binary64) %91)))) (approx %15 (*.f64 %17 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 %67 y)) #s(literal 1 binary64)))) (approx %15 (*.f64 %17 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %37 y)))) y)) #s(literal 1 binary64)))) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 1.0ms | x | -inf |
| 1.0ms | x | inf |
| 1.0ms | y | inf |
| 1.0ms | y | -inf |
| 1.0ms | x | 0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 15 |
| 0 | 8 | 15 |
| 1 | 24 | 15 |
| 2 | 79 | 15 |
| 3 | 333 | 15 |
| 4 | 1102 | 15 |
| 5 | 3459 | 15 |
| 0 | 4127 | 15 |
| 0 | 4500 | 15 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (+.f64 x y) %3 = (-.f64 x y) x y %2 %3 (*.f64 %2 %3) |
| Outputs |
|---|
%3 = (+.f64 y x) %9 = (neg.f64 %3) %11 = (neg.f64 x) %13 = (neg.f64 y) %16 = (-.f64 x y) %21 = (-.f64 y x) %27 = (fabs.f64 x) %28 = (fabs.f64 y) %29 = (+.f64 %27 %28) %30 = (neg.f64 %29) %31 = (-.f64 %28 %27) %33 = (-.f64 %27 %28) %35 = (+.f64 %27 y) %36 = (-.f64 %27 y) %39 = (+.f64 %28 x) %40 = (neg.f64 %39) %41 = (-.f64 %28 x) %43 = (-.f64 x %28) %49 = (neg.f64 %27) %50 = (-.f64 %49 y) %51 = (-.f64 y %27) %56 = (*.f64 %16 %3) %60 = (*.f64 x x) %62 = (*.f64 y y) %71 = (neg.f64 %28) %72 = (sqrt.f64 %28) %73 = (*.f64 %71 %72) %74 = (+.f64 %16 y) %75 = (*.f64 x %74) %78 = (sqrt.f64 %27) %79 = (*.f64 %27 %78) %80 = (-.f64 x %3) %81 = (*.f64 y %80) %83 = (*.f64 %13 y) %85 = (*.f64 %30 %49) %87 = (*.f64 %72 %71) %90 = (*.f64 %78 %27) %93 = (*.f64 %33 %28) %95 = (*.f64 %33 %27) %97 = (*.f64 %35 %13) %99 = (*.f64 %35 %27) %101 = (*.f64 %36 y) %103 = (*.f64 %36 %27) %105 = (*.f64 %40 %11) %107 = (*.f64 %40 %28) %109 = (*.f64 %43 x) %111 = (*.f64 %43 %28) %113 = (*.f64 %29 %71) %115 = (*.f64 %39 %71) %117 = (*.f64 %41 %71) %119 = (*.f64 %50 %49) %121 = (*.f64 %51 %49) %127 = (*.f64 %9 y) %129 = (*.f64 %3 x) %131 = (*.f64 %28 %33) %133 = (*.f64 %13 %35) %135 = (*.f64 y %36) %137 = (*.f64 %71 %29) %141 = (*.f64 %49 %30) %143 = (*.f64 %27 %33) %145 = (*.f64 %11 %40) %147 = (*.f64 x %43) %151 = (*.f64 %28 %40) %153 = (*.f64 %71 %41) %158 = (*.f64 %16 y) %160 = (*.f64 %16 x) %161 = (-.f64 %160 %62) %163 = (fma.f64 %16 y %60) %173 = (*.f64 %27 %35) %175 = (*.f64 %49 %51) %183 = (*.f64 y x) %185 = (*.f64 %11 y) %204 = (*.f64 %27 %36) %206 = (*.f64 %49 %50) %223 = (*.f64 %28 %43) %225 = (*.f64 %71 %39) %233 = (*.f64 %11 x) %242 = (*.f64 %3 y) %245 = (*.f64 %21 x) %254 = (*.f64 %21 y) %257 = (*.f64 %9 x) 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 #s(literal 1 binary64) %16) (pow.f64 %16 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %16 #s(literal -1 binary64))) (neg.f64 %21) (fma.f64 #s(literal 1 binary64) %13 x) (-.f64 %13 %11) %16 (+.f64 %13 x) (+.f64 x %13) (*.f64 %30 %31) (*.f64 %33 %29) (*.f64 %35 %36) (*.f64 %36 %35) (*.f64 %40 %41) (*.f64 %43 %39) (*.f64 %31 %30) (*.f64 %29 %33) (*.f64 %39 %43) (*.f64 %41 %40) (*.f64 %50 %51) (*.f64 %51 %50) (*.f64 %9 %21) (*.f64 %21 %9) (*.f64 #s(literal 1 binary64) %56) %56 (*.f64 %3 %16) (pow.f64 %56 #s(literal 1 binary64)) (/.f64 (-.f64 (*.f64 %60 %60) (*.f64 %62 %62)) (fma.f64 x x %62)) (/.f64 #s(literal 1 binary64) (pow.f64 %56 #s(literal -1 binary64))) (neg.f64 (*.f64 %21 %3)) (fma.f64 %73 %72 %75) (fma.f64 %73 %72 %60) (fma.f64 %79 %78 %81) (fma.f64 %79 %78 %83) (fma.f64 %30 %28 %85) (fma.f64 %72 %87 %75) (fma.f64 %72 %87 %60) (fma.f64 %78 %90 %81) (fma.f64 %78 %90 %83) (fma.f64 %33 %27 %93) (fma.f64 %33 %28 %95) (fma.f64 %35 %27 %97) (fma.f64 %35 %13 %99) (fma.f64 %36 %27 %101) (fma.f64 %36 y %103) (fma.f64 %40 %28 %105) (fma.f64 %40 %11 %107) (fma.f64 %43 %28 %109) (fma.f64 %43 x %111) (fma.f64 %29 %27 %113) (fma.f64 %39 x %115) (fma.f64 %41 %11 %117) (fma.f64 %50 y %119) (fma.f64 %51 %13 %121) (fma.f64 %49 %49 %81) (fma.f64 %49 %49 %83) (fma.f64 %71 %28 %75) (fma.f64 %71 %28 %60) (fma.f64 %9 %11 %127) (fma.f64 %9 y %129) (fma.f64 %27 %33 %131) (fma.f64 %27 %35 %133) (fma.f64 %27 %36 %135) (fma.f64 %27 %29 %137) (fma.f64 %27 %27 %81) (fma.f64 %27 %27 %83) (fma.f64 %28 %30 %141) (fma.f64 %28 %33 %143) (fma.f64 %28 %40 %145) (fma.f64 %28 %43 %147) (fma.f64 %28 %71 %75) (fma.f64 %28 %71 %60) (fma.f64 %11 %40 %151) (fma.f64 %11 %41 %153) (fma.f64 %11 %9 %127) (fma.f64 %11 %11 %81) (fma.f64 %11 %11 %83) (fma.f64 %11 %21 %158) (fma.f64 %11 %13 %161) (fma.f64 %11 y %163) (fma.f64 %21 %11 %158) (fma.f64 %21 %13 %160) (fma.f64 %13 (+.f64 x %21) %60) (fma.f64 %13 (+.f64 %21 x) %60) (fma.f64 %13 (-.f64 x %16) %60) (fma.f64 %13 %35 %173) (fma.f64 %13 %51 %175) (fma.f64 %13 %11 %161) (fma.f64 %13 %21 %160) (fma.f64 %13 %3 %129) (fma.f64 %13 y %75) (fma.f64 %13 y %60) (fma.f64 %13 x %163) (fma.f64 #s(literal 1 binary64) %183 %161) (fma.f64 #s(literal 1 binary64) %185 %163) (fma.f64 #s(literal 1 binary64) %158 %160) (fma.f64 #s(literal 1 binary64) %127 %129) (fma.f64 #s(literal 1 binary64) %160 %158) (fma.f64 #s(literal 1 binary64) %129 %127) (fma.f64 #s(literal 1 binary64) %83 %75) (fma.f64 #s(literal 1 binary64) %83 %60) (fma.f64 #s(literal 1 binary64) %60 %81) (fma.f64 #s(literal 1 binary64) %60 %83) (fma.f64 %16 y %160) (fma.f64 %16 x %158) (fma.f64 %3 %13 %129) (fma.f64 %3 x %127) (fma.f64 y (+.f64 x %9) %60) (fma.f64 y (+.f64 %9 x) %60) (fma.f64 y %80 %60) (fma.f64 y %36 %204) (fma.f64 y %50 %206) (fma.f64 y %9 %129) (fma.f64 y %11 %163) (fma.f64 y %13 %75) (fma.f64 y %13 %60) (fma.f64 y %16 %160) (fma.f64 y x %161) (fma.f64 x (+.f64 %3 %13) %83) (fma.f64 x %74 %83) (fma.f64 x (+.f64 %13 %3) %83) (fma.f64 x (+.f64 y %16) %83) (fma.f64 x (-.f64 y %21) %83) (fma.f64 x %43 %223) (fma.f64 x %39 %225) (fma.f64 x %13 %163) (fma.f64 x %16 %158) (fma.f64 x %3 %127) (fma.f64 x y %161) (fma.f64 x x %81) (fma.f64 x x %83) (-.f64 %81 %233) (-.f64 %75 %62) (-.f64 %163 %183) (-.f64 %161 %185) (-.f64 %183 (-.f64 %233 %127)) (-.f64 %183 (-.f64 %62 %160)) (-.f64 %183 (fma.f64 %11 x %242)) (-.f64 %183 (fma.f64 y y %245)) (-.f64 %183 (neg.f64 %161)) (-.f64 %185 (-.f64 %233 %158)) (-.f64 %185 (-.f64 %62 %129)) (-.f64 %185 (fma.f64 %11 x %254)) (-.f64 %185 (fma.f64 y y %257)) (-.f64 %185 (neg.f64 %163)) (-.f64 %158 %245) (-.f64 %127 %257) (-.f64 %160 %254) (-.f64 %129 %242) (-.f64 %83 (-.f64 %185 %160)) (-.f64 %83 (-.f64 %183 %129)) (-.f64 %83 (fma.f64 y x %257)) (-.f64 %83 (fma.f64 %11 y %245)) (-.f64 %83 (neg.f64 %75)) (-.f64 %83 %233) (-.f64 %60 (-.f64 %185 %127)) (-.f64 %60 (-.f64 %183 %158)) (-.f64 %60 (fma.f64 %11 y %242)) (-.f64 %60 (fma.f64 y x %254)) (-.f64 %60 (neg.f64 %81)) (-.f64 %60 %62) (+.f64 (*.f64 %30 %28) %85) (+.f64 %95 %93) (+.f64 %93 %95) (+.f64 %99 %97) (+.f64 %97 %99) (+.f64 %103 %101) (+.f64 %101 %103) (+.f64 %107 %105) (+.f64 %105 %107) (+.f64 %111 %109) (+.f64 %109 %111) (+.f64 (*.f64 %29 %27) %113) (+.f64 (*.f64 %39 x) %115) (+.f64 (*.f64 %41 %11) %117) (+.f64 (*.f64 %50 y) %119) (+.f64 (*.f64 %51 %13) %121) (+.f64 (*.f64 %28 %30) %141) (+.f64 %143 %131) (+.f64 %131 %143) (+.f64 %173 %133) (+.f64 %133 %173) (+.f64 %204 %135) (+.f64 %135 %204) (+.f64 %151 %145) (+.f64 %145 %151) (+.f64 %223 %147) (+.f64 %147 %223) (+.f64 (*.f64 %27 %29) %137) (+.f64 (*.f64 x %39) %225) (+.f64 (*.f64 %11 %41) %153) (+.f64 (*.f64 y %50) %206) (+.f64 (*.f64 %13 %51) %175) (+.f64 %81 %60) (+.f64 %75 %83) (+.f64 %163 %185) (+.f64 %161 %183) (+.f64 %183 %161) (+.f64 %185 %163) (+.f64 %158 %160) (+.f64 %127 %129) (+.f64 %160 %158) (+.f64 %129 %127) (+.f64 %83 %75) (+.f64 %83 %60) (+.f64 %60 %81) (+.f64 %60 %83) |
Compiled 245 to 423 computations (-72.7% saved)
Compiled 58 to 162 computations (-179.3% saved)
2 alts after pruning (1 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 57 | 1 | 58 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 57 | 2 | 59 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (*.f64 (+.f64 x y) (-.f64 x y)) |
| ▶ | 60.8% | (*.f64 (approx (+ x y) y) (-.f64 x y)) |
Compiled 2 to 6 computations (-200.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 116 | 438 |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (-.f64 x y) %4 = (approx (+ x y) y) x y %2 %4 (*.f64 %4 %2) |
| Outputs |
|---|
%5 = (- x y) %7 = (*.f64 #s(literal -1 binary64) y) %11 = (+ x y) %15 = (* %11 %5) %17 = (pow.f64 y #s(literal 2 binary64)) %20 = (+.f64 y %7) %29 = (/.f64 y x) %30 = (*.f64 #s(literal -1 binary64) %29) %37 = (pow.f64 x #s(literal 2 binary64)) %67 = (+.f64 x (*.f64 #s(literal -1 binary64) x)) %74 = (/.f64 x y) %91 = (*.f64 #s(literal -1 binary64) %74) (approx x #s(literal 0 binary64)) (approx x x) (approx %5 %7) (approx %5 (-.f64 x y)) (approx %11 y) (approx %11 (+.f64 x y)) (approx %15 (*.f64 #s(literal -1 binary64) %17)) (approx %15 (fma.f64 #s(literal -1 binary64) %17 (*.f64 x %20))) (approx %15 (fma.f64 #s(literal -1 binary64) %17 (*.f64 x (+.f64 x %20)))) (approx %5 (*.f64 x (+.f64 #s(literal 1 binary64) %30))) (approx %11 (*.f64 x (+.f64 #s(literal 1 binary64) %29))) (approx %15 %37) (approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %29 %29)))) (approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %29 (fma.f64 #s(literal -1 binary64) (/.f64 %17 %37) %29))))) (approx %5 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %29 #s(literal 1 binary64))))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %30 #s(literal 1 binary64))))) (approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) %20 (/.f64 %17 x)) x))))) (approx %5 (+.f64 x %7)) (approx %15 (fma.f64 y %67 %37)) (approx %15 (fma.f64 y (+.f64 x (fma.f64 #s(literal -1 binary64) x %7)) %37)) (approx %5 (*.f64 y (-.f64 %74 #s(literal 1 binary64)))) (approx %11 (*.f64 y (+.f64 #s(literal 1 binary64) %74))) (approx %15 (*.f64 %17 (-.f64 (fma.f64 #s(literal -1 binary64) %74 %74) #s(literal 1 binary64)))) (approx %15 (*.f64 %17 (-.f64 (fma.f64 #s(literal -1 binary64) %74 (+.f64 %74 (/.f64 %37 %17))) #s(literal 1 binary64)))) (approx %5 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 #s(literal 1 binary64) %91)))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 %91 #s(literal 1 binary64))))) (approx %15 (*.f64 %17 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 %67 y)) #s(literal 1 binary64)))) (approx %15 (*.f64 %17 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %37 y)))) y)) #s(literal 1 binary64)))) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 1.0ms | x | -inf |
| 1.0ms | y | inf |
| 1.0ms | x | inf |
| 1.0ms | y | -inf |
| 0.0ms | x | 0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 19 |
| 0 | 8 | 19 |
| 1 | 22 | 19 |
| 2 | 51 | 19 |
| 3 | 116 | 19 |
| 4 | 243 | 19 |
| 5 | 671 | 19 |
| 0 | 4032 | 19 |
| 0 | 4190 | 19 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (-.f64 x y) %4 = (approx (+ x y) y) x y %2 %4 (*.f64 %4 %2) |
| Outputs |
|---|
%3 = (-.f64 y x) %6 = (-.f64 x y) %13 = (neg.f64 y) %14 = (*.f64 x #s(literal 1 binary64)) %17 = (*.f64 %13 #s(literal 1 binary64)) %19 = (neg.f64 x) %26 = (approx (+ y x) y) %27 = (neg.f64 %26) %34 = (*.f64 %3 %26) %38 = (*.f64 %26 %6) %45 = (*.f64 %27 x) %46 = (*.f64 %13 %26) %48 = (*.f64 %26 y) %49 = (*.f64 %26 x) %53 = (*.f64 %49 #s(literal 1 binary64)) %55 = (*.f64 %46 #s(literal 1 binary64)) x y (*.f64 #s(literal -1 binary64) %3) (*.f64 #s(literal 1 binary64) %6) (pow.f64 %6 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %6 #s(literal -1 binary64))) (neg.f64 %3) (fma.f64 #s(literal -1 binary64) y x) (fma.f64 %13 #s(literal 1 binary64) %14) (fma.f64 #s(literal 1 binary64) %13 x) (fma.f64 x #s(literal 1 binary64) %17) (-.f64 %13 %19) %6 (+.f64 %17 %14) (+.f64 %14 %17) (+.f64 %13 x) (+.f64 x %13) (*.f64 #s(literal -1 binary64) %27) (*.f64 #s(literal 1 binary64) %26) (pow.f64 %26 #s(literal 1 binary64)) %26 (/.f64 #s(literal 1 binary64) (pow.f64 %26 #s(literal -1 binary64))) (neg.f64 %27) (*.f64 #s(literal -1 binary64) %34) (*.f64 %27 %3) (*.f64 %3 %27) (*.f64 #s(literal 1 binary64) %38) %38 (*.f64 %6 %26) (pow.f64 %38 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %38 #s(literal -1 binary64))) (neg.f64 %34) (fma.f64 #s(literal -1 binary64) %45 %46) (fma.f64 #s(literal -1 binary64) %48 %49) (fma.f64 %27 %19 %46) (fma.f64 %27 y %49) (fma.f64 %46 #s(literal 1 binary64) %53) (fma.f64 %49 #s(literal 1 binary64) %55) (fma.f64 %19 %27 %46) (fma.f64 %13 %26 %49) (fma.f64 #s(literal 1 binary64) %46 %49) (fma.f64 #s(literal 1 binary64) %49 %46) (fma.f64 %26 %13 %49) (fma.f64 %26 x %46) (fma.f64 y %27 %49) (fma.f64 x %26 %46) (-.f64 %46 %45) (-.f64 %49 %48) (+.f64 %55 %53) (+.f64 %53 %55) (+.f64 %46 %49) (+.f64 %49 %46) |
Compiled 80 to 147 computations (-83.8% saved)
Compiled 27 to 89 computations (-229.6% saved)
3 alts after pruning (1 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 26 | 1 | 27 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 26 | 3 | 29 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (*.f64 (+.f64 x y) (-.f64 x y)) |
| ▶ | 53.0% | (*.f64 (approx (+ x y) y) (-.f64 (approx x #s(literal 0 binary64)) y)) |
| ✓ | 60.8% | (*.f64 (approx (+ x y) y) (-.f64 x y)) |
Compiled 3 to 9 computations (-200.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 116 | 438 |
| 1× | iter-limit |
| Inputs |
|---|
%3 = (approx x #s(literal 0 binary64)) %5 = (approx (+ x y) y) %6 = (-.f64 %3 y) x y #s(literal 0 binary64) %3 %5 %6 (*.f64 %5 %6) |
| Outputs |
|---|
%5 = (+ x y) %9 = (- x y) %11 = (*.f64 #s(literal -1 binary64) y) %15 = (* %5 %9) %17 = (pow.f64 y #s(literal 2 binary64)) %20 = (+.f64 y %11) %29 = (/.f64 y x) %33 = (*.f64 #s(literal -1 binary64) %29) %37 = (pow.f64 x #s(literal 2 binary64)) %67 = (+.f64 x (*.f64 #s(literal -1 binary64) x)) %74 = (/.f64 x y) %91 = (*.f64 #s(literal -1 binary64) %74) (approx x #s(literal 0 binary64)) (approx x x) (approx %5 y) (approx %5 (+.f64 x y)) (approx %9 %11) (approx %9 (-.f64 x y)) (approx %15 (*.f64 #s(literal -1 binary64) %17)) (approx %15 (fma.f64 #s(literal -1 binary64) %17 (*.f64 x %20))) (approx %15 (fma.f64 #s(literal -1 binary64) %17 (*.f64 x (+.f64 x %20)))) (approx %5 (*.f64 x (+.f64 #s(literal 1 binary64) %29))) (approx %9 (*.f64 x (+.f64 #s(literal 1 binary64) %33))) (approx %15 %37) (approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %29 %29)))) (approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %29 (fma.f64 #s(literal -1 binary64) (/.f64 %17 %37) %29))))) (approx %5 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %33 #s(literal 1 binary64))))) (approx %9 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %29 #s(literal 1 binary64))))) (approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) %20 (/.f64 %17 x)) x))))) (approx %9 (+.f64 x %11)) (approx %15 (fma.f64 y %67 %37)) (approx %15 (fma.f64 y (+.f64 x (fma.f64 #s(literal -1 binary64) x %11)) %37)) (approx %5 (*.f64 y (+.f64 #s(literal 1 binary64) %74))) (approx %9 (*.f64 y (-.f64 %74 #s(literal 1 binary64)))) (approx %15 (*.f64 %17 (-.f64 (fma.f64 #s(literal -1 binary64) %74 %74) #s(literal 1 binary64)))) (approx %15 (*.f64 %17 (-.f64 (fma.f64 #s(literal -1 binary64) %74 (+.f64 %74 (/.f64 %37 %17))) #s(literal 1 binary64)))) (approx %5 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 %91 #s(literal 1 binary64))))) (approx %9 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 #s(literal 1 binary64) %91)))) (approx %15 (*.f64 %17 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 %67 y)) #s(literal 1 binary64)))) (approx %15 (*.f64 %17 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %37 y)))) y)) #s(literal 1 binary64)))) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 1.0ms | x | -inf |
| 1.0ms | x | inf |
| 1.0ms | y | inf |
| 1.0ms | y | -inf |
| 0.0ms | x | 0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 27 |
| 0 | 10 | 27 |
| 1 | 27 | 27 |
| 2 | 61 | 27 |
| 3 | 160 | 27 |
| 4 | 690 | 27 |
| 0 | 4763 | 27 |
| 0 | 4883 | 27 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%3 = (approx x #s(literal 0 binary64)) %5 = (approx (+ x y) y) %6 = (-.f64 %3 y) x y #s(literal 0 binary64) %3 %5 %6 (*.f64 %5 %6) |
| Outputs |
|---|
%4 = (approx x #s(literal 0 binary64)) %10 = (neg.f64 %4) %13 = (approx (+ y x) y) %18 = (-.f64 %4 y) %23 = (-.f64 y %4) %25 = (neg.f64 y) %31 = (neg.f64 %13) %34 = (*.f64 %18 %13) %42 = (*.f64 %25 %13) %44 = (*.f64 %10 %31) %46 = (*.f64 %31 %10) %48 = (*.f64 %10 %13) %49 = (neg.f64 %48) %51 = (*.f64 %13 %4) %63 = (*.f64 (neg.f64 %31) %25) x y #s(literal 0 binary64) (*.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) (*.f64 #s(literal 1 binary64) %13) (pow.f64 %13 #s(literal 1 binary64)) %13 (/.f64 #s(literal 1 binary64) (pow.f64 %13 #s(literal -1 binary64))) (*.f64 #s(literal 1 binary64) %18) (pow.f64 %18 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %18 #s(literal -1 binary64))) (neg.f64 %23) (fma.f64 #s(literal 1 binary64) %25 %4) (fma.f64 #s(literal 1 binary64) %4 %25) (-.f64 %25 %10) %18 (+.f64 %25 %4) (+.f64 %4 %25) (*.f64 %31 %23) (*.f64 %23 %31) (*.f64 #s(literal 1 binary64) %34) %34 (*.f64 %13 %18) (pow.f64 %34 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %34 #s(literal -1 binary64))) (neg.f64 (*.f64 %23 %13)) (fma.f64 %31 %10 %42) (fma.f64 %31 y %44) (fma.f64 %31 y %46) (fma.f64 %31 y %49) (fma.f64 %31 y %51) (fma.f64 %10 %31 %42) (fma.f64 %25 %13 %44) (fma.f64 %25 %13 %46) (fma.f64 %25 %13 %49) (fma.f64 %25 %13 %51) (fma.f64 #s(literal 1 binary64) %42 %44) (fma.f64 #s(literal 1 binary64) %42 %46) (fma.f64 #s(literal 1 binary64) %42 %49) (fma.f64 #s(literal 1 binary64) %42 %51) (fma.f64 #s(literal 1 binary64) %51 %63) (fma.f64 #s(literal 1 binary64) %51 %42) (fma.f64 %13 %25 %44) (fma.f64 %13 %25 %46) (fma.f64 %13 %25 %49) (fma.f64 %13 %25 %51) (fma.f64 %13 %4 %63) (fma.f64 %13 %4 %42) (fma.f64 %4 %13 %63) (fma.f64 %4 %13 %42) (fma.f64 y %31 %44) (fma.f64 y %31 %46) (fma.f64 y %31 %49) (fma.f64 y %31 %51) (-.f64 %42 (*.f64 %31 %4)) (-.f64 %42 %48) (-.f64 %51 (*.f64 %13 y)) (+.f64 %44 %42) (+.f64 %46 %42) (+.f64 %42 %44) (+.f64 %42 %46) (+.f64 %42 %49) (+.f64 %42 %51) (+.f64 %51 %63) (+.f64 %51 %42) |
Compiled 97 to 166 computations (-71.1% saved)
Compiled 21 to 80 computations (-281.0% saved)
3 alts after pruning (0 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 21 | 0 | 21 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 2 | 2 |
| Total | 21 | 3 | 24 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (*.f64 (+.f64 x y) (-.f64 x y)) |
| ✓ | 53.0% | (*.f64 (approx (+ x y) y) (-.f64 (approx x #s(literal 0 binary64)) y)) |
| ✓ | 60.8% | (*.f64 (approx (+ x y) y) (-.f64 x y)) |
Compiled 3 to 9 computations (-200.0% saved)
Total -0.0b remaining (-0.0%)
Threshold costs -0.0b (-0.0%)
| 0.0b | 0% |
| -0.0b | -0.0% |
| Inputs |
|---|
(*.f64 (approx (+ x y) y) (-.f64 x y)) |
| Outputs |
|---|
(*.f64 (approx (+ x y) y) (-.f64 x y)) |
| Inputs |
|---|
%3 = (approx (+ x y) y) %4 = (-.f64 x y) (*.f64 %3 %4) (*.f64 %3 (-.f64 (approx x #s(literal 0 binary64)) y)) (*.f64 (+.f64 x y) %4) |
| Outputs |
|---|
(*.f64 (+.f64 x y) (-.f64 x y)) |
3 calls:
| 2.0ms | x |
| 2.0ms | y |
| 2.0ms | (*.f64 (+.f64 x y) (-.f64 x y)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 60.8% | 1 | y |
| 60.8% | 1 | x |
| 60.8% | 1 | (*.f64 (+.f64 x y) (-.f64 x y)) |
Compiled 6 to 14 computations (-133.3% saved)
| 1× | done |
Compiled 2 to 6 computations (-200.0% saved)
(abs x)
(abs y)
Compiled 11 to 50 computations (-354.5% saved)
| Allocated | Percent | Phase |
|---|---|---|
| 391.6 MiB | 46.5% | sample |
| 267.8 MiB | 31.8% | rewrite |
| 55.3 MiB | 6.6% | reconstruct |
| 46.3 MiB | 5.5% | series |
| 39.2 MiB | 4.7% | preprocess |
| 18.3 MiB | 2.2% | eval |
| 13.6 MiB | 1.6% | regimes |
| 8.3 MiB | 1.0% | prune |
| 1.4 MiB | 0.2% | derivations |
| 0.7 MiB | 0.1% | analyze |
| 0.1 MiB | 0.0% | bsearch |
| 0.1 MiB | 0.0% | start |
| 0.0 MiB | 0.0% | end |
| 842.6 MiB | 100.0% | total |
Loading profile data...