
Time bar (total: 1.7s)
| 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 |
| 0.0% | 0.0% | 99.9% | 0.1% | 0.0% | 0.0% | 0.0% | 1 |
| 0.0% | 0.0% | 99.9% | 0.1% | 0.0% | 0.0% | 0.0% | 2 |
| 0.0% | 0.0% | 99.9% | 0.1% | 0.0% | 0.0% | 0.0% | 3 |
| 12.5% | 12.5% | 87.4% | 0.1% | 0.0% | 0.0% | 0.0% | 4 |
| 31.3% | 31.2% | 68.7% | 0.1% | 0.0% | 0.0% | 0.0% | 5 |
| 31.3% | 31.2% | 68.7% | 0.1% | 0.0% | 0.0% | 0.0% | 6 |
| 37.5% | 37.5% | 62.4% | 0.1% | 0.0% | 0.0% | 0.0% | 7 |
| 51.6% | 51.5% | 48.4% | 0.1% | 0.0% | 0.0% | 0.0% | 8 |
| 67.2% | 67.1% | 32.8% | 0.1% | 0.0% | 0.0% | 0.0% | 9 |
| 74.6% | 74.5% | 25.4% | 0.1% | 0.0% | 0.0% | 0.0% | 10 |
| 83.2% | 83.1% | 16.8% | 0.1% | 0.0% | 0.0% | 0.0% | 11 |
| 87.0% | 86.9% | 13.0% | 0.1% | 0.0% | 0.0% | 0.0% | 12 |
Compiled 15 to 11 computations (26.7% saved)
| 627.0ms | 8 256× | 0 | valid |
ival-pow2: 111.0ms (57.3% of total, 68.4 MiB)ival-sub!: 29.0ms (15.0% of total, 15.4 MiB)ival-add!: 26.0ms (13.4% of total, 16.2 MiB)ival-fmax: 18.0ms (9.3% of total, 4.5 MiB)adjust: 10.0ms (5.2% of total, 4.6 MiB)Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 28 | 88 |
| 1 | 99 | 84 |
| 2 | 216 | 84 |
| 3 | 437 | 84 |
| 4 | 861 | 84 |
| 5 | 2815 | 84 |
| 1× | node-limit |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | (fmax.f64 (-.f64 (+.f64 (pow.f64 y #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)) (fmax.f64 x y)) |
(sort x y)
Compiled 2 to 20 computations (-900.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 46 | 229 |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (pow.f64 y #s(literal 2 binary64)) %4 = (pow.f64 x #s(literal 2 binary64)) %5 = (+.f64 %2 %4) %7 = (-.f64 %5 #s(literal 1/2 binary64)) %8 = (fmax.f64 x y) y #s(literal 2 binary64) %2 x %4 %5 #s(literal 1/2 binary64) %7 %8 (fmax.f64 %7 %8) |
| Outputs |
|---|
%6 = (pow x 2) %8 = (pow.f64 x #s(literal 2 binary64)) %11 = (+ (pow y 2) %6) %12 = (pow.f64 y #s(literal 2 binary64)) %14 = (+.f64 %8 %12) %17 = (- %11 1/2) %21 = (-.f64 %14 #s(literal 1/2 binary64)) %23 = (fmax x y) %24 = (fmax.f64 x y) %31 = (+.f64 #s(literal 1 binary64) (/.f64 %12 %8)) %43 = (+.f64 #s(literal 1 binary64) (/.f64 %8 %12)) (approx y #s(literal 0 binary64)) (approx x x) (approx %6 %8) (approx %11 %12) (approx %11 %14) (approx %17 (-.f64 %12 #s(literal 1/2 binary64))) (approx %17 %21) (approx %23 %24) (approx (fmax %17 %23) (fmax.f64 %21 %24)) (approx %11 (*.f64 %8 %31)) (approx %17 (*.f64 %8 (-.f64 %31 (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %8))))) (approx y y) (approx %17 (-.f64 %8 #s(literal 1/2 binary64))) (approx %11 (*.f64 %12 %43)) (approx %17 (*.f64 %12 (-.f64 %43 (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %12))))) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 1.0ms | x | inf |
| 1.0ms | y | inf |
| 1.0ms | x | -inf |
| 0.0ms | y | 0 |
| 0.0ms | y | -inf |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 42 |
| 0 | 16 | 42 |
| 1 | 42 | 42 |
| 2 | 101 | 42 |
| 3 | 284 | 42 |
| 4 | 701 | 42 |
| 5 | 2379 | 42 |
| 0 | 4411 | 42 |
| 0 | 4850 | 37 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (pow.f64 y #s(literal 2 binary64)) %4 = (pow.f64 x #s(literal 2 binary64)) %5 = (+.f64 %2 %4) %7 = (-.f64 %5 #s(literal 1/2 binary64)) %8 = (fmax.f64 x y) y #s(literal 2 binary64) %2 x %4 %5 #s(literal 1/2 binary64) %7 %8 (fmax.f64 %7 %8) |
| Outputs |
|---|
%2 = (*.f64 y y) %3 = (*.f64 %2 %2) %5 = (pow.f64 %3 #s(literal -1/2 binary64)) %7 = (fabs.f64 y) %8 = (sqrt.f64 %7) %9 = (*.f64 %8 %7) %12 = (neg.f64 %7) %15 = (neg.f64 y) %45 = (*.f64 %15 y) %67 = (*.f64 x x) %68 = (*.f64 %67 %67) %69 = (pow.f64 %68 #s(literal -1/2 binary64)) %71 = (fabs.f64 x) %72 = (sqrt.f64 %71) %73 = (*.f64 %72 %71) %76 = (neg.f64 %71) %79 = (neg.f64 x) %102 = (neg.f64 %67) %123 = (fma.f64 x x %2) %134 = (neg.f64 %123) %155 = (fma.f64 y y #s(literal -1/2 binary64)) %156 = (fma.f64 x x %155) %175 = (fma.f64 x x #s(literal -1/2 binary64)) %209 = (fmax.f64 x y) %215 = (fmax.f64 %209 %156) y #s(literal 2 binary64) (*.f64 %5 %3) (*.f64 %9 %8) (*.f64 %8 %9) (*.f64 %12 %12) (*.f64 %7 %7) (*.f64 %15 %15) (*.f64 #s(literal 1 binary64) %2) %2 (pow.f64 (pow.f64 y #s(literal 8 binary64)) #s(literal 1/4 binary64)) (pow.f64 %3 #s(literal 1/2 binary64)) (pow.f64 %8 #s(literal 4 binary64)) (pow.f64 %12 #s(literal 2 binary64)) (pow.f64 %7 #s(literal 2 binary64)) (pow.f64 %15 #s(literal 2 binary64)) (pow.f64 %2 #s(literal 1 binary64)) (pow.f64 y #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) %5) (/.f64 #s(literal 1 binary64) (pow.f64 %12 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %7 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %15 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %2 #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal -2 binary64))) (neg.f64 %45) (sqrt.f64 %3) (fabs.f64 (*.f64 %15 %12)) (fabs.f64 (*.f64 y %12)) (fabs.f64 (*.f64 %15 %7)) (fabs.f64 (*.f64 y %7)) (fabs.f64 (*.f64 %12 %15)) (fabs.f64 (*.f64 %7 %15)) (fabs.f64 (*.f64 %12 y)) (fabs.f64 (*.f64 %7 y)) (fabs.f64 %45) (fabs.f64 %2) x (*.f64 %69 %68) (*.f64 %73 %72) (*.f64 %72 %73) (*.f64 %76 %76) (*.f64 %71 %71) (*.f64 %79 %79) (*.f64 #s(literal 1 binary64) %67) %67 (pow.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1/4 binary64)) (pow.f64 %68 #s(literal 1/2 binary64)) (pow.f64 %72 #s(literal 4 binary64)) (pow.f64 %76 #s(literal 2 binary64)) (pow.f64 %71 #s(literal 2 binary64)) (pow.f64 %79 #s(literal 2 binary64)) (pow.f64 %67 #s(literal 1 binary64)) (pow.f64 x #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) %69) (/.f64 #s(literal 1 binary64) (pow.f64 %76 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %71 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %79 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %67 #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))) (neg.f64 %102) (sqrt.f64 %68) (fabs.f64 (*.f64 %79 %76)) (fabs.f64 (*.f64 x %76)) (fabs.f64 (*.f64 %79 %71)) (fabs.f64 (*.f64 x %71)) (fabs.f64 (*.f64 %76 %79)) (fabs.f64 (*.f64 %71 %79)) (fabs.f64 (*.f64 %76 x)) (fabs.f64 (*.f64 %71 x)) (fabs.f64 %102) (fabs.f64 %67) (*.f64 #s(literal 1 binary64) %123) (pow.f64 %123 #s(literal 1 binary64)) (/.f64 (-.f64 %68 %3) (-.f64 %67 %2)) (/.f64 (-.f64 %3 %68) (-.f64 %2 %67)) (/.f64 #s(literal 1 binary64) (pow.f64 %123 #s(literal -1 binary64))) (neg.f64 %134) (fma.f64 %69 %68 %2) (fma.f64 %5 %3 %67) (fma.f64 %73 %72 %2) (fma.f64 %9 %8 %67) (fma.f64 %8 %9 %67) (fma.f64 %72 %73 %2) (fma.f64 %76 %76 %2) (fma.f64 %12 %12 %67) (fma.f64 %7 %7 %67) (fma.f64 %71 %71 %2) (fma.f64 %15 %15 %67) (fma.f64 %79 %79 %2) (fma.f64 #s(literal 1 binary64) %67 %2) (fma.f64 #s(literal 1 binary64) %2 %67) %123 (fma.f64 y y %67) (-.f64 %67 %45) (-.f64 %2 %102) (+.f64 %67 %2) (+.f64 %2 %67) #s(literal 1/2 binary64) (*.f64 #s(literal 1 binary64) %156) (pow.f64 %156 #s(literal 1 binary64)) (/.f64 (fma.f64 %123 #s(literal 2 binary64) #s(literal -1 binary64)) #s(literal 2 binary64)) (/.f64 (-.f64 (*.f64 %123 #s(literal 2 binary64)) #s(literal 1 binary64)) #s(literal 2 binary64)) (/.f64 (-.f64 (*.f64 %123 #s(literal 1 binary64)) #s(literal 1/2 binary64)) #s(literal 1 binary64)) (/.f64 (-.f64 (*.f64 %123 #s(literal 4 binary64)) #s(literal 2 binary64)) #s(literal 4 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %156 #s(literal -1 binary64))) (neg.f64 (-.f64 #s(literal 1/2 binary64) %123)) (fma.f64 %69 %68 %155) (fma.f64 %5 %3 %175) (fma.f64 %73 %72 %155) (fma.f64 %9 %8 %175) (fma.f64 %8 %9 %175) (fma.f64 %72 %73 %155) (fma.f64 %76 %76 %155) (fma.f64 %12 %12 %175) (fma.f64 %7 %7 %175) (fma.f64 %71 %71 %155) (fma.f64 %15 %15 %175) (fma.f64 %79 %79 %155) (fma.f64 #s(literal 1 binary64) %155 %67) (fma.f64 #s(literal 1 binary64) %175 %2) (fma.f64 #s(literal 1 binary64) %123 #s(literal -1/2 binary64)) (fma.f64 #s(literal 1 binary64) %67 %155) (fma.f64 #s(literal 1 binary64) %2 %175) %156 (fma.f64 y y %175) (-.f64 %155 %102) (-.f64 %175 %45) (-.f64 #s(literal -1/2 binary64) %134) (-.f64 %156 #s(literal 0 binary64)) (-.f64 %123 #s(literal 1/2 binary64)) (-.f64 %67 (-.f64 #s(literal 1/2 binary64) %2)) (-.f64 %2 (-.f64 #s(literal 1/2 binary64) %67)) (+.f64 %155 %67) (+.f64 %175 %2) (+.f64 #s(literal -1/2 binary64) %123) (+.f64 %123 #s(literal -1/2 binary64)) (+.f64 %67 %155) (+.f64 %2 %175) (*.f64 #s(literal 1 binary64) %209) %209 (fmax.f64 y x) (pow.f64 %209 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %209 #s(literal -1 binary64))) (*.f64 #s(literal 1 binary64) %215) %215 (fmax.f64 %156 %209) (pow.f64 %215 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %215 #s(literal -1 binary64))) |
Compiled 163 to 240 computations (-47.2% saved)
Compiled 46 to 191 computations (-315.2% saved)
1 alts after pruning (1 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 45 | 1 | 46 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 46 | 1 | 47 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | (fmax.f64 (fma.f64 x x (fma.f64 y y #s(literal -1/2 binary64))) (fmax.f64 x y)) |
Compiled 1 to 7 computations (-600.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 48 | 185 |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (fmax.f64 x y) %4 = (fma.f64 y y #s(literal -1/2 binary64)) %5 = (fma.f64 x x %4) y x %2 #s(literal -1/2 binary64) %4 %5 (fmax.f64 %5 %2) |
| Outputs |
|---|
%5 = (fmax x y) %6 = (fmax.f64 x y) %11 = (+ (* y y) -1/2) %12 = (+ (* x x) %11) %14 = (pow.f64 y #s(literal 2 binary64)) %18 = (pow.f64 x #s(literal 2 binary64)) %20 = (-.f64 (+.f64 %18 %14) #s(literal 1/2 binary64)) %41 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %14)) (approx y #s(literal 0 binary64)) (approx x x) (approx %5 %6) (approx %12 (-.f64 %14 #s(literal 1/2 binary64))) (approx %12 %20) (approx (fmax %12 %5) (fmax.f64 %20 %6)) (approx %12 %18) (approx %12 (*.f64 %18 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 %14 %18)) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %18))))) (approx y y) (approx %11 #s(literal -1/2 binary64)) (approx %12 (-.f64 %18 #s(literal 1/2 binary64))) (approx %11 %14) (approx %11 (*.f64 %14 (-.f64 #s(literal 1 binary64) %41))) (approx %12 (*.f64 %14 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 %18 %14)) %41))) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 0.0ms | y | inf |
| 0.0ms | x | inf |
| 0.0ms | y | -inf |
| 0.0ms | x | -inf |
| 0.0ms | y | 0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 28 |
| 0 | 13 | 28 |
| 1 | 45 | 28 |
| 2 | 130 | 28 |
| 3 | 443 | 28 |
| 4 | 1078 | 28 |
| 0 | 4255 | 28 |
| 0 | 4487 | 28 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (fmax.f64 x y) %4 = (fma.f64 y y #s(literal -1/2 binary64)) %5 = (fma.f64 x x %4) y x %2 #s(literal -1/2 binary64) %4 %5 (fmax.f64 %5 %2) |
| Outputs |
|---|
%3 = (fmax.f64 x y) %11 = (*.f64 y y) %13 = (*.f64 %11 #s(literal 2 binary64)) %14 = (-.f64 %13 #s(literal 1 binary64)) %17 = (fma.f64 y y #s(literal -1/2 binary64)) %46 = (-.f64 #s(literal 1/2 binary64) %11) %48 = (fabs.f64 y) %49 = (sqrt.f64 %48) %50 = (*.f64 %49 %48) %53 = (neg.f64 %48) %56 = (neg.f64 y) %62 = (*.f64 %56 y) %66 = (fma.f64 x x %11) %67 = (*.f64 %66 #s(literal 2 binary64)) %68 = (-.f64 %67 #s(literal 1 binary64)) %70 = (fma.f64 x x %17) %77 = (*.f64 x x) %78 = (*.f64 %77 #s(literal 2 binary64)) %79 = (-.f64 %78 #s(literal 1 binary64)) %96 = (neg.f64 x) %97 = (*.f64 %96 x) %113 = (fma.f64 x x #s(literal -1/2 binary64)) %115 = (fabs.f64 x) %116 = (sqrt.f64 %115) %117 = (*.f64 %116 %115) %123 = (neg.f64 %115) %152 = (fmax.f64 %70 %3) y x (*.f64 #s(literal 1 binary64) %3) %3 (fmax.f64 y x) (pow.f64 %3 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64))) #s(literal -1/2 binary64) (*.f64 %14 #s(literal 1/2 binary64)) (*.f64 #s(literal 1 binary64) %17) (pow.f64 %17 #s(literal 1 binary64)) (/.f64 (fma.f64 %11 #s(literal 2 binary64) #s(literal -1 binary64)) #s(literal 2 binary64)) (/.f64 (fma.f64 %11 #s(literal -2 binary64) #s(literal 1 binary64)) #s(literal -2 binary64)) (/.f64 (-.f64 (*.f64 %11 #s(literal 1/2 binary64)) #s(literal 1/4 binary64)) #s(literal 1/2 binary64)) (/.f64 (-.f64 (*.f64 %11 #s(literal -2 binary64)) #s(literal -1 binary64)) #s(literal -2 binary64)) (/.f64 (-.f64 (*.f64 %11 #s(literal 1 binary64)) #s(literal 1/2 binary64)) #s(literal 1 binary64)) (/.f64 (-.f64 (*.f64 %11 #s(literal 4 binary64)) #s(literal 2 binary64)) #s(literal 4 binary64)) (/.f64 (neg.f64 %14) #s(literal -2 binary64)) (/.f64 %14 #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %14)) (/.f64 #s(literal 1 binary64) (pow.f64 %17 #s(literal -1 binary64))) (neg.f64 %46) (fma.f64 %50 %49 #s(literal -1/2 binary64)) (fma.f64 %49 %50 #s(literal -1/2 binary64)) (fma.f64 %53 %53 #s(literal -1/2 binary64)) (fma.f64 %48 %48 #s(literal -1/2 binary64)) (fma.f64 %56 %56 #s(literal -1/2 binary64)) (fma.f64 #s(literal 1 binary64) %11 #s(literal -1/2 binary64)) %17 (-.f64 (/.f64 %13 #s(literal 2 binary64)) #s(literal 1/2 binary64)) (-.f64 %11 #s(literal 1/2 binary64)) (-.f64 #s(literal -1/2 binary64) %62) (+.f64 %11 #s(literal -1/2 binary64)) (+.f64 #s(literal -1/2 binary64) %11) (*.f64 %68 #s(literal 1/2 binary64)) (*.f64 #s(literal 1 binary64) %70) (pow.f64 %70 #s(literal 1 binary64)) (/.f64 (fma.f64 %66 #s(literal 2 binary64) #s(literal -1 binary64)) #s(literal 2 binary64)) (/.f64 (fma.f64 %66 #s(literal -2 binary64) #s(literal 1 binary64)) #s(literal -2 binary64)) (/.f64 (fma.f64 %11 #s(literal 2 binary64) %79) #s(literal 2 binary64)) (/.f64 (fma.f64 %77 #s(literal 2 binary64) %14) #s(literal 2 binary64)) (/.f64 (-.f64 (*.f64 %66 #s(literal 1/2 binary64)) #s(literal 1/4 binary64)) #s(literal 1/2 binary64)) (/.f64 (-.f64 (*.f64 %66 #s(literal -2 binary64)) #s(literal -1 binary64)) #s(literal -2 binary64)) (/.f64 (-.f64 (*.f64 %66 #s(literal 1 binary64)) #s(literal 1/2 binary64)) #s(literal 1 binary64)) (/.f64 (-.f64 (*.f64 %66 #s(literal 4 binary64)) #s(literal 2 binary64)) #s(literal 4 binary64)) (/.f64 (-.f64 %13 (fma.f64 %97 #s(literal 2 binary64) #s(literal 1 binary64))) #s(literal 2 binary64)) (/.f64 (-.f64 %78 (fma.f64 %62 #s(literal 2 binary64) #s(literal 1 binary64))) #s(literal 2 binary64)) (/.f64 (neg.f64 %68) #s(literal -2 binary64)) (/.f64 %68 #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %68)) (/.f64 #s(literal 1 binary64) (pow.f64 %70 #s(literal -1 binary64))) (neg.f64 (-.f64 #s(literal 1/2 binary64) %66)) (fma.f64 %50 %49 %113) (fma.f64 %117 %116 %17) (fma.f64 %79 #s(literal 1/2 binary64) %11) (fma.f64 %14 #s(literal 1/2 binary64) %77) (fma.f64 %116 %117 %17) (fma.f64 %49 %50 %113) (fma.f64 %123 %123 %17) (fma.f64 %53 %53 %113) (fma.f64 %115 %115 %17) (fma.f64 %48 %48 %113) (fma.f64 %96 %96 %17) (fma.f64 %56 %56 %113) (fma.f64 #s(literal 1 binary64) %113 %11) (fma.f64 #s(literal 1 binary64) %66 #s(literal -1/2 binary64)) (fma.f64 #s(literal 1 binary64) %11 %113) (fma.f64 #s(literal 1 binary64) %77 %17) (fma.f64 #s(literal 1 binary64) %17 %77) %70 (fma.f64 y y %113) (-.f64 (/.f64 %67 #s(literal 2 binary64)) #s(literal 1/2 binary64)) (-.f64 %113 %62) (-.f64 %66 #s(literal 1/2 binary64)) (-.f64 %11 (-.f64 #s(literal 1/2 binary64) %77)) (-.f64 %77 %46) (-.f64 %17 %97) (-.f64 #s(literal -1/2 binary64) (neg.f64 %66)) (+.f64 %113 %11) (+.f64 %66 #s(literal -1/2 binary64)) (+.f64 %11 %113) (+.f64 %77 %17) (+.f64 %17 %77) (+.f64 #s(literal -1/2 binary64) %66) (*.f64 #s(literal 1 binary64) %152) %152 (fmax.f64 %3 %70) (pow.f64 %152 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %152 #s(literal -1 binary64))) |
Compiled 103 to 180 computations (-74.8% saved)
Compiled 19 to 79 computations (-315.8% saved)
2 alts after pruning (1 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 18 | 1 | 19 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 18 | 2 | 20 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (fmax.f64 (fma.f64 x x (fma.f64 y y #s(literal -1/2 binary64))) (fmax.f64 x y)) |
| ▶ | 67.6% | (fmax.f64 (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) (fmax.f64 x y)) |
Compiled 2 to 9 computations (-350.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 48 | 185 |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (fmax.f64 x y) %7 = (approx (+ (* y y) -1/2) #s(literal -1/2 binary64)) %8 = (fma.f64 x x %7) y x %2 #s(literal -1/2 binary64) %7 %8 (fmax.f64 %8 %2) |
| Outputs |
|---|
%5 = (fmax x y) %6 = (fmax.f64 x y) %11 = (+ (* y y) -1/2) %12 = (+ (* x x) %11) %14 = (pow.f64 y #s(literal 2 binary64)) %18 = (pow.f64 x #s(literal 2 binary64)) %20 = (-.f64 (+.f64 %18 %14) #s(literal 1/2 binary64)) %41 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %14)) (approx y #s(literal 0 binary64)) (approx x x) (approx %5 %6) (approx %12 (-.f64 %14 #s(literal 1/2 binary64))) (approx %12 %20) (approx (fmax %12 %5) (fmax.f64 %20 %6)) (approx %12 %18) (approx %12 (*.f64 %18 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 %14 %18)) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %18))))) (approx y y) (approx %11 #s(literal -1/2 binary64)) (approx %12 (-.f64 %18 #s(literal 1/2 binary64))) (approx %11 %14) (approx %11 (*.f64 %14 (-.f64 #s(literal 1 binary64) %41))) (approx %12 (*.f64 %14 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 %18 %14)) %41))) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 0.0ms | y | inf |
| 0.0ms | x | inf |
| 0.0ms | y | -inf |
| 0.0ms | x | -inf |
| 0.0ms | y | 0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 37 |
| 0 | 13 | 37 |
| 1 | 44 | 37 |
| 2 | 111 | 37 |
| 3 | 329 | 37 |
| 4 | 881 | 37 |
| 0 | 4038 | 37 |
| 0 | 4233 | 34 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (fmax.f64 x y) %7 = (approx (+ (* y y) -1/2) #s(literal -1/2 binary64)) %8 = (fma.f64 x x %7) y x %2 #s(literal -1/2 binary64) %7 %8 (fmax.f64 %8 %2) |
| Outputs |
|---|
%3 = (fmax.f64 x y) %14 = (approx (+ (* y y) -1/2) #s(literal -1/2 binary64)) %19 = (neg.f64 %14) %21 = (fma.f64 x x %14) %28 = (fabs.f64 x) %29 = (sqrt.f64 %28) %30 = (*.f64 %29 %28) %32 = (neg.f64 %28) %33 = (*.f64 %29 %32) %34 = (neg.f64 %29) %40 = (neg.f64 x) %42 = (*.f64 x x) %50 = (fmax.f64 %21 %3) y x (*.f64 #s(literal 1 binary64) %3) %3 (fmax.f64 y x) (pow.f64 %3 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64))) #s(literal -1/2 binary64) (*.f64 #s(literal 1 binary64) %14) (pow.f64 %14 #s(literal 1 binary64)) %14 (/.f64 #s(literal 1 binary64) (pow.f64 %14 #s(literal -1 binary64))) (neg.f64 %19) (*.f64 #s(literal 1 binary64) %21) (pow.f64 %21 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -1 binary64))) (neg.f64 (neg.f64 %21)) (fma.f64 %30 %29 %14) (fma.f64 %33 %34 %14) (fma.f64 %34 %33 %14) (fma.f64 %29 %30 %14) (fma.f64 %32 %32 %14) (fma.f64 %28 %28 %14) (fma.f64 %40 %40 %14) (fma.f64 #s(literal 1 binary64) %42 %14) (fma.f64 #s(literal 1 binary64) %14 %42) %21 (-.f64 %42 %19) (-.f64 %14 (*.f64 %40 x)) (+.f64 %42 %14) (+.f64 %14 %42) (*.f64 #s(literal 1 binary64) %50) %50 (fmax.f64 %3 %21) (pow.f64 %50 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %50 #s(literal -1 binary64))) |
Compiled 49 to 76 computations (-55.1% saved)
Compiled 16 to 57 computations (-256.3% saved)
3 alts after pruning (1 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 15 | 1 | 16 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 15 | 3 | 18 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (fmax.f64 (fma.f64 x x (fma.f64 y y #s(literal -1/2 binary64))) (fmax.f64 x y)) |
| ▶ | 44.1% | (fmax.f64 (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) (fmax.f64 x (approx y #s(literal 0 binary64)))) |
| ✓ | 67.6% | (fmax.f64 (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) (fmax.f64 x y)) |
Compiled 3 to 12 computations (-300.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 48 | 185 |
| 1× | iter-limit |
| Inputs |
|---|
%3 = (approx y #s(literal 0 binary64)) %5 = (fmax.f64 x %3) %9 = (approx (+ (* y y) -1/2) #s(literal -1/2 binary64)) %10 = (fma.f64 x x %9) y x #s(literal 0 binary64) %3 #s(literal -1/2 binary64) %5 %9 %10 (fmax.f64 %10 %5) |
| Outputs |
|---|
%5 = (fmax x y) %6 = (fmax.f64 x y) %11 = (+ (* y y) -1/2) %12 = (+ (* x x) %11) %14 = (pow.f64 y #s(literal 2 binary64)) %18 = (pow.f64 x #s(literal 2 binary64)) %20 = (-.f64 (+.f64 %18 %14) #s(literal 1/2 binary64)) %41 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %14)) (approx y #s(literal 0 binary64)) (approx x x) (approx %5 %6) (approx %12 (-.f64 %14 #s(literal 1/2 binary64))) (approx %12 %20) (approx (fmax %12 %5) (fmax.f64 %20 %6)) (approx %12 %18) (approx %12 (*.f64 %18 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 %14 %18)) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %18))))) (approx y y) (approx %11 #s(literal -1/2 binary64)) (approx %12 (-.f64 %18 #s(literal 1/2 binary64))) (approx %11 %14) (approx %11 (*.f64 %14 (-.f64 #s(literal 1 binary64) %41))) (approx %12 (*.f64 %14 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 %18 %14)) %41))) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 0.0ms | y | inf |
| 0.0ms | x | inf |
| 0.0ms | x | -inf |
| 0.0ms | y | -inf |
| 0.0ms | y | 0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 45 |
| 0 | 15 | 45 |
| 1 | 49 | 45 |
| 2 | 120 | 45 |
| 3 | 361 | 45 |
| 4 | 1303 | 45 |
| 0 | 4017 | 45 |
| 0 | 4254 | 42 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%3 = (approx y #s(literal 0 binary64)) %5 = (fmax.f64 x %3) %9 = (approx (+ (* y y) -1/2) #s(literal -1/2 binary64)) %10 = (fma.f64 x x %9) y x #s(literal 0 binary64) %3 #s(literal -1/2 binary64) %5 %9 %10 (fmax.f64 %10 %5) |
| Outputs |
|---|
%4 = (approx y #s(literal 0 binary64)) %11 = (fmax.f64 %4 x) %20 = (approx (+ (* y y) -1/2) #s(literal -1/2 binary64)) %25 = (neg.f64 %20) %27 = (fma.f64 x x %20) %34 = (fabs.f64 x) %35 = (neg.f64 %34) %36 = (*.f64 x x) %39 = (sqrt.f64 (fabs.f64 (*.f64 %35 %36))) %40 = (sqrt.f64 %34) %44 = (sqrt.f64 (fabs.f64 (*.f64 %34 %36))) %46 = (neg.f64 x) %49 = (sqrt.f64 (fabs.f64 (*.f64 %46 %36))) %53 = (sqrt.f64 (fabs.f64 (*.f64 %36 x))) %55 = (*.f64 %40 %34) %72 = (fmax.f64 %27 %11) y x #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))) #s(literal -1/2 binary64) (*.f64 #s(literal 1 binary64) %11) %11 (fmax.f64 x %4) (pow.f64 %11 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %11 #s(literal -1 binary64))) (*.f64 #s(literal 1 binary64) %20) (pow.f64 %20 #s(literal 1 binary64)) %20 (/.f64 #s(literal 1 binary64) (pow.f64 %20 #s(literal -1 binary64))) (neg.f64 %25) (*.f64 #s(literal 1 binary64) %27) (pow.f64 %27 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %27 #s(literal -1 binary64))) (neg.f64 (neg.f64 %27)) (fma.f64 %39 %40 %20) (fma.f64 %44 %40 %20) (fma.f64 %49 %40 %20) (fma.f64 %53 %40 %20) (fma.f64 %55 %40 %20) (fma.f64 %40 %39 %20) (fma.f64 %40 %44 %20) (fma.f64 %40 %49 %20) (fma.f64 %40 %53 %20) (fma.f64 %40 %55 %20) (fma.f64 %35 %35 %20) (fma.f64 %34 %34 %20) (fma.f64 %46 %46 %20) (fma.f64 #s(literal 1 binary64) %36 %20) (fma.f64 #s(literal 1 binary64) %20 %36) %27 (-.f64 %36 %25) (-.f64 %20 (*.f64 %46 x)) (+.f64 %36 %20) (+.f64 %20 %36) (*.f64 #s(literal 1 binary64) %72) %72 (fmax.f64 %11 %27) (pow.f64 %72 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %72 #s(literal -1 binary64))) |
Compiled 60 to 97 computations (-61.7% saved)
Compiled 16 to 64 computations (-300.0% saved)
3 alts after pruning (0 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 16 | 0 | 16 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 2 | 2 |
| Total | 16 | 3 | 19 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (fmax.f64 (fma.f64 x x (fma.f64 y y #s(literal -1/2 binary64))) (fmax.f64 x y)) |
| ✓ | 44.1% | (fmax.f64 (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) (fmax.f64 x (approx y #s(literal 0 binary64)))) |
| ✓ | 67.6% | (fmax.f64 (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) (fmax.f64 x y)) |
Compiled 3 to 12 computations (-300.0% saved)
Total 0.0b remaining (0.0%)
Threshold costs 0.0b (0.0%)
| 0.0b | 0% |
| 0.0b | 0% |
| Inputs |
|---|
(fmax.f64 (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) (fmax.f64 x y)) |
| Outputs |
|---|
(fmax.f64 (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) (fmax.f64 x y)) |
| Inputs |
|---|
%7 = (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) %8 = (fmax.f64 x y) (fmax.f64 %7 %8) (fmax.f64 %7 (fmax.f64 x (approx y #s(literal 0 binary64)))) (fmax.f64 (fma.f64 x x (fma.f64 y y #s(literal -1/2 binary64))) %8) |
| Outputs |
|---|
(fmax.f64 (fma.f64 x x (fma.f64 y y #s(literal -1/2 binary64))) (fmax.f64 x y)) |
3 calls:
| 3.0ms | x |
| 3.0ms | y |
| 2.0ms | (fmax.f64 (-.f64 (+.f64 (pow.f64 y #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)) (fmax.f64 x y)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 67.6% | 1 | y |
| 67.6% | 1 | x |
| 67.6% | 1 | (fmax.f64 (-.f64 (+.f64 (pow.f64 y #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)) (fmax.f64 x y)) |
Compiled 7 to 29 computations (-314.3% saved)
| 1× | done |
Compiled 2 to 9 computations (-350.0% saved)
Compiled 7 to 45 computations (-542.9% saved)
| Allocated | Percent | Phase |
|---|---|---|
| 496.3 MiB | 46.3% | sample |
| 325.7 MiB | 30.4% | rewrite |
| 103.0 MiB | 9.6% | analyze |
| 39.3 MiB | 3.7% | reconstruct |
| 29.3 MiB | 2.7% | series |
| 26.5 MiB | 2.5% | preprocess |
| 19.1 MiB | 1.8% | eval |
| 18.8 MiB | 1.8% | regimes |
| 8.9 MiB | 0.8% | prune |
| 5.3 MiB | 0.5% | derivations |
| 0.1 MiB | 0.0% | start |
| 0.1 MiB | 0.0% | bsearch |
| 0.0 MiB | 0.0% | end |
| 1 072.4 MiB | 100.0% | total |
Loading profile data...