
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 |
| 50.0% | 50.0% | 50.0% | 0.1% | 0.0% | 0.0% | 0.0% | 3 |
| 50.0% | 50.0% | 50.0% | 0.1% | 0.0% | 0.0% | 0.0% | 4 |
| 62.5% | 62.4% | 37.5% | 0.1% | 0.0% | 0.0% | 0.0% | 5 |
| 66.7% | 62.4% | 31.2% | 0.1% | 0.0% | 6.2% | 0.0% | 6 |
| 75.0% | 65.6% | 21.9% | 0.1% | 0.0% | 12.5% | 0.0% | 7 |
| 80.0% | 68.7% | 17.2% | 0.1% | 0.0% | 14.0% | 0.0% | 8 |
| 85.7% | 70.2% | 11.7% | 0.1% | 0.0% | 18.0% | 0.0% | 9 |
| 88.9% | 71.8% | 9.0% | 0.1% | 0.0% | 19.1% | 0.0% | 10 |
| 92.3% | 72.6% | 6.0% | 0.1% | 0.0% | 21.3% | 0.0% | 11 |
| 94.1% | 73.4% | 4.6% | 0.1% | 0.0% | 22.0% | 0.0% | 12 |
Compiled 8 to 7 computations (12.5% saved)
| 285.0ms | 8 256× | 0 | valid |
| 9.0ms | 311× | 0 | invalid |
Sqrt: 8.0ms (53.5% of total, 0.0 MiB)Mul: 4.0ms (26.7% of total, 0.0 MiB)Add: 3.0ms (20.1% of total, 0.0 MiB)Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 38 |
| 1 | 69 | 38 |
| 2 | 174 | 38 |
| 3 | 381 | 38 |
| 4 | 1198 | 38 |
| 1× | node-limit |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 66.6% | (sqrt.f64 (+.f64 (*.f64 x x) y)) |
(abs x)
Compiled 2 to 10 computations (-400.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 155 | 738 |
| 1× | iter-limit |
| Inputs |
|---|
%1 = (*.f64 x x) %3 = (+.f64 %1 y) x %1 y %3 (sqrt.f64 %3) |
| Outputs |
|---|
%4 = (* x x) %6 = (pow.f64 x #s(literal 2 binary64)) %9 = (+ %4 y) %13 = (sqrt %9) %14 = (sqrt.f64 y) %23 = (pow.f64 %14 #s(literal 3 binary64)) %27 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %14)) %45 = (/.f64 y %6) %49 = (*.f64 #s(literal 1/2 binary64) %45) %51 = (*.f64 x (+.f64 #s(literal 1 binary64) %49)) %53 = (pow.f64 y #s(literal 2 binary64)) %55 = (pow.f64 x #s(literal 4 binary64)) %56 = (/.f64 %53 %55) %59 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %56 %49))) %63 = (pow.f64 x #s(literal 6 binary64)) %68 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %56 (fma.f64 #s(literal 1/16 binary64) (/.f64 (pow.f64 y #s(literal 3 binary64)) %63) %49)))) %79 = (sqrt.f64 %6) %85 = (pow.f64 %79 #s(literal 3 binary64)) %88 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %79)) %103 = (/.f64 %6 y) %108 = (sqrt.f64 (/.f64 #s(literal 1 binary64) y)) %109 = (*.f64 y %108) %113 = (*.f64 #s(literal 1/2 binary64) (/.f64 %6 (*.f64 %53 %108))) %115 = (*.f64 y (+.f64 %108 %113)) %120 = (/.f64 %55 (*.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 %108 #s(literal 3 binary64)))) %123 = (*.f64 y (+.f64 %108 (fma.f64 #s(literal -1/8 binary64) %120 %113))) %132 = (*.f64 y (+.f64 %108 (fma.f64 #s(literal -1/8 binary64) %120 (fma.f64 #s(literal 1/16 binary64) (/.f64 %63 (*.f64 (pow.f64 y #s(literal 6 binary64)) (pow.f64 %108 #s(literal 5 binary64)))) %113)))) (approx x #s(literal 0 binary64)) (approx x x) (approx %4 %6) (approx %9 y) (approx %9 (+.f64 y %6)) (approx %13 %14) (approx %13 (+.f64 %14 (*.f64 #s(literal 1/2 binary64) (/.f64 %6 %14)))) (approx %13 (+.f64 %14 (*.f64 %6 (fma.f64 #s(literal -1/8 binary64) (/.f64 %6 %23) %27)))) (approx %13 (+.f64 %14 (*.f64 %6 (fma.f64 %6 (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 %6 (pow.f64 %14 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %23))) %27)))) (approx %9 (*.f64 %6 (+.f64 #s(literal 1 binary64) %45))) (approx %13 %51) (approx %13 %59) (approx %13 %68) (approx %13 (*.f64 #s(literal -1 binary64) x)) (approx %13 (*.f64 #s(literal -1 binary64) %51)) (approx %13 (*.f64 #s(literal -1 binary64) %59)) (approx %13 (*.f64 #s(literal -1 binary64) %68)) (approx %13 %79) (approx %13 (+.f64 %79 (*.f64 #s(literal 1/2 binary64) (/.f64 y %79)))) (approx %13 (+.f64 %79 (*.f64 y (fma.f64 #s(literal -1/8 binary64) (/.f64 y %85) %88)))) (approx %13 (+.f64 %79 (*.f64 y (fma.f64 y (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 y (pow.f64 %79 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %85))) %88)))) (approx %9 (*.f64 y (+.f64 #s(literal 1 binary64) %103))) (approx %13 %109) (approx %13 %115) (approx %13 %123) (approx %13 %132) (approx %9 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %103) #s(literal 1 binary64))))) (approx %13 (*.f64 #s(literal -1 binary64) %109)) (approx %13 (*.f64 #s(literal -1 binary64) %115)) (approx %13 (*.f64 #s(literal -1 binary64) %123)) (approx %13 (*.f64 #s(literal -1 binary64) %132)) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 3.0ms | x | inf |
| 3.0ms | y | inf |
| 2.0ms | y | -inf |
| 2.0ms | x | -inf |
| 2.0ms | x | 0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 16 |
| 0 | 8 | 16 |
| 1 | 26 | 16 |
| 2 | 70 | 16 |
| 3 | 216 | 16 |
| 4 | 655 | 16 |
| 0 | 4068 | 16 |
| 0 | 4205 | 14 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%1 = (*.f64 x x) %3 = (+.f64 %1 y) x %1 y %3 (sqrt.f64 %3) |
| Outputs |
|---|
%1 = (fabs.f64 x) %2 = (sqrt.f64 %1) %3 = (*.f64 %2 %1) %4 = (sqrt.f64 %2) %5 = (*.f64 %3 %4) %8 = (neg.f64 %2) %9 = (*.f64 %8 %1) %12 = (*.f64 %4 %3) %15 = (neg.f64 %1) %18 = (neg.f64 x) %21 = (*.f64 x x) %27 = (*.f64 %21 %21) %53 = (*.f64 %18 x) %67 = (fma.f64 x x y) %68 = (sqrt.f64 %67) %70 = (sqrt.f64 (*.f64 %68 %67)) %71 = (sqrt.f64 %68) %72 = (sqrt.f64 %71) %76 = (neg.f64 %70) %77 = (neg.f64 %71) %83 = (neg.f64 %68) %87 = (pow.f64 %67 #s(literal 4 binary64)) %90 = (*.f64 %67 %67) %103 = (neg.f64 %67) %125 = (neg.f64 %77) %128 = (sqrt.f64 %70) x (*.f64 %5 %4) (*.f64 %3 %2) (*.f64 %9 %8) (*.f64 %8 %9) (*.f64 %4 %12) (*.f64 %2 %3) (*.f64 %15 %15) (*.f64 %1 %1) (*.f64 %18 %18) (*.f64 #s(literal 1 binary64) %21) %21 (pow.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1/4 binary64)) (pow.f64 %27 #s(literal 1/2 binary64)) (pow.f64 %2 #s(literal 4 binary64)) (pow.f64 %15 #s(literal 2 binary64)) (pow.f64 %1 #s(literal 2 binary64)) (pow.f64 %18 #s(literal 2 binary64)) (pow.f64 %21 #s(literal 1 binary64)) (pow.f64 x #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %27 #s(literal -1/2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %15 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %1 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %18 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))) (neg.f64 %53) (sqrt.f64 %27) (fabs.f64 (*.f64 %18 %1)) (fabs.f64 (*.f64 x %1)) (fabs.f64 (*.f64 %15 x)) (fabs.f64 (*.f64 %1 x)) (fabs.f64 %53) (fabs.f64 %21) y (*.f64 (*.f64 %70 %72) %72) (*.f64 %70 %71) (*.f64 %76 %77) (*.f64 %77 %76) (*.f64 %72 (*.f64 %72 %70)) (*.f64 %71 %70) (*.f64 %83 %83) (*.f64 #s(literal 1 binary64) %67) (*.f64 %68 %68) (pow.f64 %87 #s(literal 1/4 binary64)) (pow.f64 %71 #s(literal 4 binary64)) (pow.f64 %90 #s(literal 1/2 binary64)) (pow.f64 %83 #s(literal 2 binary64)) (pow.f64 %68 #s(literal 2 binary64)) (pow.f64 %67 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %90 #s(literal -1/2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %83 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %68 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %67 #s(literal -1 binary64))) (neg.f64 %103) (fma.f64 %5 %4 y) (fma.f64 %3 %2 y) (fma.f64 %9 %8 y) (fma.f64 %8 %9 y) (fma.f64 %4 %12 y) (fma.f64 %2 %3 y) (fma.f64 %15 %15 y) (fma.f64 %1 %1 y) (fma.f64 %18 %18 y) (fma.f64 #s(literal 1 binary64) %21 y) %67 (-.f64 y %53) (-.f64 %21 (neg.f64 y)) (sqrt.f64 %90) (fabs.f64 %103) (fabs.f64 %67) (+.f64 y %21) (+.f64 %21 y) (*.f64 (*.f64 %71 %72) %72) (*.f64 %125 %125) (*.f64 %125 %71) (*.f64 %128 %72) (*.f64 %77 %77) (*.f64 %72 (*.f64 %72 %71)) (*.f64 %72 %128) (*.f64 %71 %125) (*.f64 %71 %71) (*.f64 #s(literal 1 binary64) %68) (pow.f64 %77 #s(literal 2 binary64)) (pow.f64 %87 #s(literal 1/8 binary64)) (pow.f64 %71 #s(literal 2 binary64)) (pow.f64 %90 #s(literal 1/4 binary64)) (pow.f64 %68 #s(literal 1 binary64)) (pow.f64 %67 #s(literal 1/2 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %71 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %68 #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %67 #s(literal -1/2 binary64))) (neg.f64 %83) %68 (fabs.f64 %83) (fabs.f64 %68) |
Compiled 127 to 257 computations (-102.4% saved)
Compiled 58 to 205 computations (-253.4% saved)
5 alts after pruning (5 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 53 | 5 | 58 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 54 | 5 | 59 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 66.5% | %21 = (fabs.f64 x) %22 = (sqrt.f64 %21) (sqrt.f64 (fma.f64 %22 (*.f64 %22 %21) y)) |
| ▶ | 66.6% | (sqrt.f64 (fma.f64 x x y)) |
| ▶ | 38.6% | (sqrt.f64 (approx (+ (* x x) y) y)) |
| ▶ | 64.1% | (approx (sqrt (+ (* x x) y)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 y (pow.f64 x #s(literal 2 binary64))))))) |
| ▶ | 1.3% | (approx (sqrt (+ (* x x) y)) (*.f64 #s(literal -1 binary64) x)) |
Compiled 5 to 20 computations (-300.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 373 | 2486 |
| 1× | iter-limit |
| Inputs |
|---|
%3 = (pow.f64 x #s(literal 2 binary64)) %5 = (+ (* x x) y) %6 = (approx %5 y) %9 = (/.f64 y %3) %10 = (*.f64 #s(literal 1/2 binary64) %9) %11 = (+.f64 #s(literal 1 binary64) %10) %12 = (*.f64 x %11) %13 = (sqrt %5) %16 = (*.f64 #s(literal -1 binary64) x) %18 = (fabs.f64 x) %19 = (sqrt.f64 %18) %20 = (*.f64 %19 %18) %21 = (fma.f64 x x y) %23 = (fma.f64 %19 %20 y) x y #s(literal 2 binary64) %3 %6 #s(literal 1/2 binary64) #s(literal 1 binary64) %9 %10 %11 %12 (approx %13 %12) #s(literal -1 binary64) %16 (approx %13 %16) %18 %19 %20 %21 (sqrt.f64 %21) %23 (sqrt.f64 %6) (sqrt.f64 %23) |
| Outputs |
|---|
%5 = (pow x 2) %7 = (pow.f64 x #s(literal 2 binary64)) %11 = (+ (* x x) y) %15 = (/ y %5) %16 = (/.f64 y %7) %19 = (* 1/2 %15) %21 = (*.f64 #s(literal 1/2 binary64) %16) %24 = (+ 1 %19) %25 = (fma.f64 #s(literal 1/2 binary64) y %7) %28 = (* x %24) %30 = (*.f64 #s(literal 1/2 binary64) (/.f64 y x)) %34 = (sqrt %11) %35 = (sqrt.f64 y) %43 = (pow.f64 %35 #s(literal 3 binary64)) %47 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %35)) %70 = (fabs x) %71 = (fabs.f64 x) %73 = (sqrt %70) %74 = (sqrt.f64 %71) %76 = (* %73 %70) %80 = (+ (* %73 %76) y) %82 = (*.f64 %71 (pow.f64 %74 #s(literal 2 binary64))) %83 = (+.f64 y %82) %85 = (sqrt %80) %92 = (+.f64 #s(literal 1 binary64) %21) %94 = (*.f64 x %92) %96 = (pow.f64 y #s(literal 2 binary64)) %98 = (pow.f64 x #s(literal 4 binary64)) %99 = (/.f64 %96 %98) %102 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %99 %21))) %104 = (pow.f64 y #s(literal 3 binary64)) %106 = (pow.f64 x #s(literal 6 binary64)) %111 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %99 (fma.f64 #s(literal 1/16 binary64) (/.f64 %104 %106) %21)))) %113 = (/.f64 #s(literal 1 binary64) x) %114 = (fabs.f64 %113) %117 = (sqrt.f64 %114) %120 = (pow.f64 x #s(literal 3 binary64)) %124 = (pow.f64 %117 #s(literal 2 binary64)) %125 = (*.f64 %114 %124) %128 = (/.f64 y %98) %132 = (sqrt.f64 %125) %137 = (*.f64 #s(literal 1/2 binary64) (/.f64 y (*.f64 %98 %132))) %142 = (pow.f64 x #s(literal 8 binary64)) %145 = (/.f64 %96 (*.f64 %142 (pow.f64 %132 #s(literal 3 binary64)))) %151 = (pow.f64 x #s(literal 12 binary64)) %173 = (fabs.f64 (/.f64 #s(literal -1 binary64) x)) %178 = (sqrt.f64 (*.f64 #s(literal -1 binary64) %173)) %186 = (*.f64 %173 (pow.f64 %178 #s(literal 2 binary64))) %194 = (sqrt.f64 (*.f64 #s(literal -1 binary64) %186)) %199 = (*.f64 #s(literal 1/2 binary64) (/.f64 y (*.f64 %98 %194))) %205 = (/.f64 %96 (*.f64 %142 (pow.f64 %194 #s(literal 3 binary64)))) %220 = (sqrt.f64 %7) %226 = (pow.f64 %220 #s(literal 3 binary64)) %229 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %220)) %245 = (sqrt.f64 %82) %251 = (pow.f64 %245 #s(literal 3 binary64)) %254 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %245)) %269 = (/.f64 %7 y) %273 = (/.f64 #s(literal 1 binary64) y) %274 = (/.f64 #s(literal 1 binary64) %7) %279 = (/.f64 x y) %283 = (sqrt.f64 %273) %284 = (*.f64 y %283) %286 = (*.f64 %96 %283) %288 = (*.f64 #s(literal 1/2 binary64) (/.f64 %7 %286)) %290 = (*.f64 y (+.f64 %283 %288)) %294 = (*.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 %283 #s(literal 3 binary64))) %295 = (/.f64 %98 %294) %298 = (*.f64 y (+.f64 %283 (fma.f64 #s(literal -1/8 binary64) %295 %288))) %302 = (*.f64 (pow.f64 y #s(literal 6 binary64)) (pow.f64 %283 #s(literal 5 binary64))) %307 = (*.f64 y (+.f64 %283 (fma.f64 #s(literal -1/8 binary64) %295 (fma.f64 #s(literal 1/16 binary64) (/.f64 %106 %302) %288)))) %309 = (/.f64 %82 y) %314 = (*.f64 #s(literal 1/2 binary64) (/.f64 %82 %286)) %316 = (*.f64 y (+.f64 %283 %314)) %321 = (/.f64 (*.f64 (pow.f64 %71 #s(literal 2 binary64)) (pow.f64 %74 #s(literal 4 binary64))) %294) %324 = (*.f64 y (+.f64 %283 (fma.f64 #s(literal -1/8 binary64) %321 %314))) %333 = (*.f64 y (+.f64 %283 (fma.f64 #s(literal -1/8 binary64) %321 (fma.f64 #s(literal 1/16 binary64) (/.f64 (*.f64 (pow.f64 %71 #s(literal 3 binary64)) (pow.f64 %74 #s(literal 6 binary64))) %302) %314)))) (approx x #s(literal 0 binary64)) (approx x x) (approx %5 %7) (approx %11 y) (approx %11 (+.f64 y %7)) (approx %15 %16) (approx %19 %21) (approx %24 (/.f64 %25 %7)) (approx %28 %30) (approx %28 (/.f64 %25 x)) (approx %34 %35) (approx %34 (+.f64 %35 (*.f64 #s(literal 1/2 binary64) (/.f64 %7 %35)))) (approx %34 (+.f64 %35 (*.f64 %7 (fma.f64 #s(literal -1/8 binary64) (/.f64 %7 %43) %47)))) (approx %34 (+.f64 %35 (*.f64 %7 (fma.f64 %7 (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 %7 (pow.f64 %35 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %43))) %47)))) (approx (* -1 x) (*.f64 #s(literal -1 binary64) x)) (approx %70 %71) (approx %73 %74) (approx %76 (*.f64 %71 %74)) (approx %80 %83) (approx %85 (sqrt.f64 %83)) (approx %11 (*.f64 %7 (+.f64 #s(literal 1 binary64) %16))) (approx %24 #s(literal 1 binary64)) (approx %24 %92) (approx %28 %94) (approx %34 %102) (approx %34 %111) (approx %70 (*.f64 %7 %114)) (approx %73 (*.f64 x %117)) (approx %76 (*.f64 %120 (*.f64 %114 %117))) (approx %80 (*.f64 %98 %125)) (approx %80 (*.f64 %98 (fma.f64 %114 %124 %128))) (approx %85 (*.f64 %7 %132)) (approx %85 (*.f64 %7 (+.f64 %132 %137))) (approx %85 (*.f64 %7 (+.f64 %132 (fma.f64 #s(literal -1/8 binary64) %145 %137)))) (approx %85 (*.f64 %7 (+.f64 %132 (fma.f64 #s(literal -1/8 binary64) %145 (fma.f64 #s(literal 1/16 binary64) (/.f64 %104 (*.f64 %151 (pow.f64 %132 #s(literal 5 binary64)))) %137))))) (approx %28 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1/2 binary64) %16) #s(literal 1 binary64))))) (approx %34 (*.f64 #s(literal -1 binary64) %94)) (approx %34 (*.f64 #s(literal -1 binary64) %102)) (approx %34 (*.f64 #s(literal -1 binary64) %111)) (approx %70 (*.f64 #s(literal -1 binary64) (*.f64 %7 %173))) (approx %73 (*.f64 #s(literal -1 binary64) (*.f64 x %178))) (approx %76 (*.f64 %120 (*.f64 %173 %178))) (approx %80 (*.f64 #s(literal -1 binary64) (*.f64 %98 %186))) (approx %80 (*.f64 %98 (fma.f64 #s(literal -1 binary64) %186 %128))) (approx %85 (*.f64 %7 %194)) (approx %85 (*.f64 %7 (+.f64 %194 %199))) (approx %85 (*.f64 %7 (+.f64 %194 (fma.f64 #s(literal -1/8 binary64) %205 %199)))) (approx %85 (*.f64 %7 (+.f64 %194 (fma.f64 #s(literal -1/8 binary64) %205 (fma.f64 #s(literal 1/16 binary64) (/.f64 %104 (*.f64 %151 (pow.f64 %194 #s(literal 5 binary64)))) %199))))) (approx %28 (+.f64 x %30)) (approx %34 %220) (approx %34 (+.f64 %220 (*.f64 #s(literal 1/2 binary64) (/.f64 y %220)))) (approx %34 (+.f64 %220 (*.f64 y (fma.f64 #s(literal -1/8 binary64) (/.f64 y %226) %229)))) (approx %34 (+.f64 %220 (*.f64 y (fma.f64 y (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 y (pow.f64 %220 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %226))) %229)))) (approx %80 %82) (approx %85 %245) (approx %85 (+.f64 %245 (*.f64 #s(literal 1/2 binary64) (/.f64 y %245)))) (approx %85 (+.f64 %245 (*.f64 y (fma.f64 #s(literal -1/8 binary64) (/.f64 y %251) %254)))) (approx %85 (+.f64 %245 (*.f64 y (fma.f64 y (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 y (pow.f64 %245 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %251))) %254)))) (approx %11 (*.f64 y (+.f64 #s(literal 1 binary64) %269))) (approx %24 (*.f64 y (+.f64 %273 (*.f64 #s(literal 1/2 binary64) %274)))) (approx %28 (*.f64 y (fma.f64 #s(literal 1/2 binary64) %113 %279))) (approx %34 %284) (approx %34 %290) (approx %34 %298) (approx %34 %307) (approx %80 (*.f64 y (+.f64 #s(literal 1 binary64) %309))) (approx %85 %316) (approx %85 %324) (approx %85 %333) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %269) #s(literal 1 binary64))))) (approx %24 (*.f64 y (fma.f64 #s(literal 1/2 binary64) %274 %273))) (approx %28 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %279) (*.f64 #s(literal 1/2 binary64) %113))))) (approx %34 (*.f64 #s(literal -1 binary64) %284)) (approx %34 (*.f64 #s(literal -1 binary64) %290)) (approx %34 (*.f64 #s(literal -1 binary64) %298)) (approx %34 (*.f64 #s(literal -1 binary64) %307)) (approx %80 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %309) #s(literal 1 binary64))))) (approx %85 (*.f64 #s(literal -1 binary64) %316)) (approx %85 (*.f64 #s(literal -1 binary64) %324)) (approx %85 (*.f64 #s(literal -1 binary64) %333)) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 6.0ms | y | 0 |
| 4.0ms | x | inf |
| 3.0ms | y | inf |
| 3.0ms | y | -inf |
| 2.0ms | x | 0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 26 | 126 |
| 0 | 41 | 110 |
| 1 | 119 | 108 |
| 2 | 371 | 100 |
| 3 | 2690 | 100 |
| 0 | 4059 | 100 |
| 0 | 4433 | 97 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%3 = (pow.f64 x #s(literal 2 binary64)) %5 = (+ (* x x) y) %6 = (approx %5 y) %9 = (/.f64 y %3) %10 = (*.f64 #s(literal 1/2 binary64) %9) %11 = (+.f64 #s(literal 1 binary64) %10) %12 = (*.f64 x %11) %13 = (sqrt %5) %16 = (*.f64 #s(literal -1 binary64) x) %18 = (fabs.f64 x) %19 = (sqrt.f64 %18) %20 = (*.f64 %19 %18) %21 = (fma.f64 x x y) %23 = (fma.f64 %19 %20 y) x y #s(literal 2 binary64) %3 %6 #s(literal 1/2 binary64) #s(literal 1 binary64) %9 %10 %11 %12 (approx %13 %12) #s(literal -1 binary64) %16 (approx %13 %16) %18 %19 %20 %21 (sqrt.f64 %21) %23 (sqrt.f64 %6) (sqrt.f64 %23) |
| Outputs |
|---|
%3 = (neg.f64 x) %4 = (*.f64 %3 x) %6 = (*.f64 %4 #s(literal -2 binary64)) %9 = (+.f64 x x) %10 = (*.f64 x %9) %12 = (*.f64 x x) %13 = (*.f64 %12 #s(literal 1/2 binary64)) %15 = (*.f64 %9 %9) %18 = (*.f64 %12 #s(literal 2 binary64)) %20 = (*.f64 #s(literal 1/2 binary64) x) %23 = (*.f64 %20 %20) %25 = (fabs.f64 x) %26 = (neg.f64 %25) %27 = (sqrt.f64 %25) %28 = (*.f64 %26 %27) %29 = (neg.f64 %27) %33 = (*.f64 #s(literal 1/2 binary64) %4) %38 = (*.f64 %27 %25) %45 = (*.f64 #s(literal 2 binary64) %12) %48 = (*.f64 %20 x) %50 = (*.f64 #s(literal 1/2 binary64) %12) %53 = (pow.f64 x #s(literal 8 binary64)) %57 = (*.f64 %12 %12) %66 = (/.f64 #s(literal 1 binary64) %12) %70 = (*.f64 %12 #s(literal 0 binary64)) %72 = (*.f64 #s(literal 0 binary64) %12) %121 = (*.f64 %3 %27) %126 = (*.f64 %27 x) %155 = (+ (pow x 2) y) %156 = (approx %155 y) %157 = (sqrt.f64 %156) %158 = (neg.f64 %157) %162 = (*.f64 %156 %156) %180 = (/.f64 #s(literal -2 binary64) x) %182 = (/.f64 #s(literal -1/2 binary64) x) %184 = (/.f64 #s(literal 2 binary64) %25) %186 = (/.f64 #s(literal 1/2 binary64) %25) %188 = (/.f64 #s(literal 2 binary64) x) %190 = (/.f64 #s(literal 1/2 binary64) x) %193 = (/.f64 #s(literal 1/2 binary64) %12) %195 = (/.f64 y %26) %198 = (/.f64 y %38) %199 = (/.f64 #s(literal 1 binary64) %27) %201 = (/.f64 y #s(literal -1 binary64)) %202 = (/.f64 #s(literal -1 binary64) %12) %204 = (/.f64 y %27) %205 = (/.f64 #s(literal 1 binary64) %38) %207 = (/.f64 y #s(literal 1 binary64)) %209 = (neg.f64 y) %210 = (/.f64 %209 %12) %213 = (/.f64 %209 x) %214 = (/.f64 #s(literal -1 binary64) x) %216 = (/.f64 y %25) %217 = (/.f64 #s(literal 1 binary64) %25) %219 = (/.f64 y x) %220 = (/.f64 #s(literal 1 binary64) x) %222 = (*.f64 %182 y) %224 = (*.f64 %186 y) %226 = (*.f64 %190 y) %230 = (/.f64 y %12) %233 = (*.f64 %230 #s(literal 1/2 binary64)) %251 = (/.f64 %209 %25) %258 = (*.f64 %209 #s(literal 1 binary64)) %264 = (*.f64 %219 #s(literal 1/2 binary64)) %286 = (*.f64 #s(literal 1/2 binary64) y) %287 = (*.f64 %286 %180) %289 = (*.f64 %286 %184) %291 = (*.f64 %286 %188) %293 = (*.f64 %286 #s(literal 1 binary64)) %295 = (/.f64 #s(literal 1/2 binary64) %26) %298 = (/.f64 #s(literal 1/2 binary64) %27) %300 = (/.f64 #s(literal 1/2 binary64) %38) %302 = (/.f64 #s(literal 1/2 binary64) %4) %310 = (*.f64 %216 #s(literal 1/2 binary64)) %316 = (*.f64 %219 #s(literal -1/2 binary64)) %324 = (*.f64 #s(literal -1/2 binary64) y) %329 = (*.f64 %202 #s(literal 1/2 binary64)) %352 = (/.f64 %286 %26) %354 = (/.f64 %286 %38) %356 = (/.f64 %286 %27) %358 = (/.f64 %286 #s(literal -1 binary64)) %360 = (/.f64 %286 #s(literal 1 binary64)) %363 = (*.f64 %3 #s(literal 2 binary64)) %366 = (*.f64 %25 #s(literal 2 binary64)) %368 = (*.f64 %4 #s(literal 2 binary64)) %375 = (*.f64 #s(literal 2 binary64) %3) %377 = (*.f64 #s(literal 2 binary64) %25) %382 = (*.f64 #s(literal -1/2 binary64) %230) %384 = (*.f64 #s(literal 2 binary64) %4) %403 = (-.f64 %230 #s(literal -2 binary64)) %405 = (fma.f64 #s(literal 1/2 binary64) y %12) %407 = (fma.f64 %230 #s(literal 1/2 binary64) #s(literal 1 binary64)) %427 = (fma.f64 #s(literal 2 binary64) x %219) %429 = (/.f64 %405 %4) %479 = (*.f64 #s(literal 2 binary64) %324) %482 = (*.f64 #s(literal 2 binary64) %286) %493 = (fma.f64 %219 #s(literal 1/2 binary64) x) %505 = (fma.f64 #s(literal -1/2 binary64) %230 #s(literal -1 binary64)) %587 = (*.f64 %286 x) %614 = (/.f64 x #s(literal 1 binary64)) %623 = (/.f64 x %26) %626 = (/.f64 x #s(literal -1 binary64)) %628 = (/.f64 x %3) %630 = (/.f64 x %27) %633 = (/.f64 x %38) %636 = (/.f64 x %25) %638 = (/.f64 x %4) %682 = (sqrt %155) %683 = (approx %682 %493) %706 = (approx %682 %3) %711 = (*.f64 %25 #s(literal 1/2 binary64)) %713 = (*.f64 %29 #s(literal -1 binary64)) %715 = (*.f64 %29 #s(literal 1 binary64)) %717 = (*.f64 %27 #s(literal -1 binary64)) %719 = (*.f64 #s(literal -1 binary64) %29) %721 = (*.f64 #s(literal -1 binary64) %27) %724 = (fabs.f64 %9) %726 = (neg.f64 %29) %728 = (sqrt.f64 %38) %729 = (sqrt.f64 %27) %740 = (*.f64 #s(literal 1/2 binary64) %25) %742 = (fabs.f64 %20) %761 = (*.f64 %25 #s(literal 0 binary64)) %763 = (*.f64 #s(literal 0 binary64) %25) %834 = (*.f64 %25 %12) %861 = (fma.f64 x x y) %862 = (sqrt.f64 %861) %863 = (neg.f64 %862) %864 = (*.f64 %863 %863) %865 = (*.f64 %862 %862) %866 = (*.f64 #s(literal 1 binary64) %861) %867 = (*.f64 %861 %861) %868 = (pow.f64 %867 #s(literal 1/2 binary64)) %869 = (pow.f64 %863 #s(literal 2 binary64)) %870 = (pow.f64 %861 #s(literal 1 binary64)) %871 = (pow.f64 %862 #s(literal 2 binary64)) %873 = (/.f64 #s(literal 1 binary64) (pow.f64 %867 #s(literal -1/2 binary64))) %875 = (/.f64 #s(literal 1 binary64) (pow.f64 %861 #s(literal -1 binary64))) %877 = (/.f64 #s(literal 1 binary64) (pow.f64 %862 #s(literal -2 binary64))) %879 = (neg.f64 (fma.f64 %3 x %209)) %881 = (neg.f64 (-.f64 %4 y)) %883 = (neg.f64 (neg.f64 %861)) %884 = (fma.f64 %6 #s(literal 1/2 binary64) y) %885 = (fma.f64 %10 #s(literal 1/2 binary64) y) %886 = (fma.f64 %13 #s(literal 2 binary64) y) %887 = (fma.f64 %15 #s(literal 1/4 binary64) y) %888 = (fma.f64 %18 #s(literal 1/2 binary64) y) %889 = (fma.f64 %9 %20 y) %890 = (fma.f64 #s(literal 4 binary64) %23 y) %891 = (fma.f64 %28 %29 y) %892 = (fma.f64 %26 %26 y) %893 = (fma.f64 %29 %28 y) %894 = (fma.f64 #s(literal -2 binary64) %33 y) %895 = (fma.f64 %4 #s(literal -1 binary64) y) %896 = (fma.f64 %3 %3 y) %897 = (fma.f64 %38 %27 y) %898 = (fma.f64 %27 %38 y) %899 = (fma.f64 %25 %25 y) %900 = (fma.f64 #s(literal -1 binary64) %4 y) %901 = (fma.f64 #s(literal 1 binary64) %12 y) %902 = (fma.f64 #s(literal 1/2 binary64) %45 y) %903 = (fma.f64 %12 #s(literal 1 binary64) y) %904 = (fma.f64 #s(literal 2 binary64) %48 y) %905 = (fma.f64 #s(literal 2 binary64) %50 y) %906 = (-.f64 %12 %209) %907 = (-.f64 y %4) %908 = (sqrt.f64 %867) %910 = (fabs.f64 (*.f64 %863 %862)) %912 = (fabs.f64 (*.f64 %862 %863)) %913 = (fabs.f64 %861) %914 = (+.f64 %12 y) %917 = (+.f64 y (*.f64 (neg.f64 %28) %27)) %919 = (+.f64 y (*.f64 %726 %38)) %920 = (+.f64 y %12) %921 = (sqrt.f64 %862) %922 = (*.f64 %921 %921) %923 = (*.f64 #s(literal 1 binary64) %862) %924 = (pow.f64 %921 #s(literal 2 binary64)) %925 = (pow.f64 %861 #s(literal 1/2 binary64)) %926 = (pow.f64 %862 #s(literal 1 binary64)) %928 = (/.f64 #s(literal 1 binary64) (pow.f64 %862 #s(literal -1 binary64))) %930 = (/.f64 #s(literal 1 binary64) (pow.f64 %861 #s(literal -1/2 binary64))) %932 = (fabs.f64 (neg.f64 %863)) %933 = (fabs.f64 %863) %934 = (fabs.f64 %862) %935 = (sqrt.f64 %157) x y #s(literal 2 binary64) (*.f64 %6 #s(literal 1/2 binary64)) (*.f64 %10 #s(literal 1/2 binary64)) (*.f64 %13 #s(literal 2 binary64)) (*.f64 %15 #s(literal 1/4 binary64)) (*.f64 %18 #s(literal 1/2 binary64)) (*.f64 %9 %20) (*.f64 #s(literal 4 binary64) %23) (*.f64 %28 %29) (*.f64 %26 %26) (*.f64 %29 %28) (*.f64 #s(literal -2 binary64) %33) (*.f64 %4 #s(literal -1 binary64)) (*.f64 %3 %3) (*.f64 %38 %27) (*.f64 %27 %38) (*.f64 %25 %25) (*.f64 #s(literal -1 binary64) %4) (*.f64 #s(literal 1 binary64) %12) (*.f64 #s(literal 1/2 binary64) %45) (*.f64 %12 #s(literal 1 binary64)) (*.f64 #s(literal 2 binary64) %48) (*.f64 #s(literal 2 binary64) %50) %12 (pow.f64 %53 #s(literal 1/4 binary64)) (pow.f64 %26 #s(literal 2 binary64)) (pow.f64 %29 #s(literal 4 binary64)) (pow.f64 %57 #s(literal 1/2 binary64)) (pow.f64 %3 #s(literal 2 binary64)) (pow.f64 %27 #s(literal 4 binary64)) (pow.f64 %25 #s(literal 2 binary64)) (pow.f64 %12 #s(literal 1 binary64)) (pow.f64 x #s(literal 2 binary64)) (/.f64 %45 #s(literal 2 binary64)) (/.f64 %18 #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) %66) (neg.f64 %4) (fma.f64 %6 #s(literal 1/2 binary64) %70) (fma.f64 %6 #s(literal 1/2 binary64) %72) (fma.f64 %10 #s(literal 1/2 binary64) %70) (fma.f64 %10 #s(literal 1/2 binary64) %72) (fma.f64 %13 #s(literal 2 binary64) %70) (fma.f64 %13 #s(literal 2 binary64) %72) (fma.f64 %15 #s(literal 1/4 binary64) %70) (fma.f64 %15 #s(literal 1/4 binary64) %72) (fma.f64 %18 #s(literal 1/2 binary64) %70) (fma.f64 %18 #s(literal 1/2 binary64) %72) (fma.f64 %9 %20 %70) (fma.f64 %9 %20 %72) (fma.f64 #s(literal 4 binary64) %23 %70) (fma.f64 #s(literal 4 binary64) %23 %72) (fma.f64 %28 %29 %70) (fma.f64 %28 %29 %72) (fma.f64 %26 %26 %70) (fma.f64 %26 %26 %72) (fma.f64 %29 %28 %70) (fma.f64 %29 %28 %72) (fma.f64 #s(literal -2 binary64) %33 %70) (fma.f64 #s(literal -2 binary64) %33 %72) (fma.f64 %4 #s(literal -1 binary64) %70) (fma.f64 %4 #s(literal -1 binary64) %72) (fma.f64 %3 %3 %70) (fma.f64 %3 %3 %72) (fma.f64 %38 %27 %70) (fma.f64 %38 %27 %72) (fma.f64 %27 %38 %70) (fma.f64 %27 %38 %72) (fma.f64 %25 %25 %70) (fma.f64 %25 %25 %72) (fma.f64 #s(literal -1 binary64) %4 %70) (fma.f64 #s(literal -1 binary64) %4 %72) (fma.f64 #s(literal 1 binary64) %12 %70) (fma.f64 #s(literal 1 binary64) %12 %72) (fma.f64 #s(literal 1/2 binary64) %45 %70) (fma.f64 #s(literal 1/2 binary64) %45 %72) (fma.f64 #s(literal 1/2 binary64) %12 %50) (fma.f64 %12 #s(literal 1 binary64) %70) (fma.f64 %12 #s(literal 1 binary64) %72) (fma.f64 %12 #s(literal 1/2 binary64) %13) (fma.f64 #s(literal 2 binary64) %48 %70) (fma.f64 #s(literal 2 binary64) %48 %72) (fma.f64 #s(literal 2 binary64) %50 %70) (fma.f64 #s(literal 2 binary64) %50 %72) (fma.f64 x x %70) (fma.f64 x x %72) (sqrt.f64 %57) (fabs.f64 (*.f64 %121 %29)) (fabs.f64 (*.f64 %121 %27)) (fabs.f64 (*.f64 %126 %29)) (fabs.f64 (*.f64 %126 %27)) (fabs.f64 (*.f64 %29 %121)) (fabs.f64 (*.f64 %29 %126)) (fabs.f64 (*.f64 %27 %121)) (fabs.f64 (*.f64 %27 %126)) (fabs.f64 (*.f64 %25 %3)) (fabs.f64 (*.f64 %3 %25)) (fabs.f64 (*.f64 x %25)) (fabs.f64 (*.f64 %25 x)) (fabs.f64 %4) (fabs.f64 %12) (+.f64 %13 %13) (+.f64 %50 %50) (+.f64 %12 %70) (+.f64 %12 %72) (*.f64 %158 %158) (*.f64 %157 %157) (*.f64 #s(literal 1 binary64) %156) (pow.f64 %162 #s(literal 1/2 binary64)) (pow.f64 %158 #s(literal 2 binary64)) (pow.f64 %157 #s(literal 2 binary64)) (pow.f64 %156 #s(literal 1 binary64)) %156 (/.f64 #s(literal 1 binary64) (pow.f64 %162 #s(literal -1/2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %157 #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %156 #s(literal -1 binary64))) (sqrt.f64 %162) (fabs.f64 (*.f64 %158 %157)) (fabs.f64 (*.f64 %157 %158)) (fabs.f64 %156) #s(literal 1/2 binary64) #s(literal 1 binary64) (*.f64 (*.f64 y %180) %182) (*.f64 (*.f64 y %184) %186) (*.f64 (*.f64 y %188) %190) (*.f64 (*.f64 y #s(literal 2 binary64)) %193) (*.f64 %195 (/.f64 #s(literal 1 binary64) %26)) (*.f64 %198 %199) (*.f64 %201 %202) (*.f64 %204 %205) (*.f64 %207 %66) (*.f64 %210 #s(literal -1 binary64)) (*.f64 %202 %209) (*.f64 %213 %214) (*.f64 %216 %217) (*.f64 %219 %220) (*.f64 %180 %222) (*.f64 %184 %224) (*.f64 %188 %226) (*.f64 %66 y) (*.f64 %209 %202) (*.f64 %230 #s(literal 1 binary64)) (*.f64 #s(literal 1 binary64) %230) (*.f64 #s(literal 2 binary64) %233) (*.f64 y %66) (pow.f64 %230 #s(literal 1 binary64)) (/.f64 (*.f64 y #s(literal -1 binary64)) %4) (/.f64 (*.f64 %214 y) %3) (/.f64 (*.f64 %217 y) %25) (/.f64 (*.f64 #s(literal -1 binary64) y) %4) (/.f64 (/.f64 %213 #s(literal -1 binary64)) x) (/.f64 (/.f64 %216 %29) %29) (/.f64 (/.f64 %216 %27) %27) (/.f64 %251 %26) (/.f64 %195 %26) (/.f64 %198 %27) (/.f64 %201 %4) (/.f64 %204 %38) (/.f64 %207 %12) (/.f64 %258 %4) (/.f64 (neg.f64 %213) x) (/.f64 (neg.f64 %216) %26) (/.f64 %264 %20) (/.f64 %210 #s(literal -1 binary64)) (/.f64 %213 %3) (/.f64 %216 %25) (/.f64 %219 x) (/.f64 %209 %4) (/.f64 %233 #s(literal 1/2 binary64)) (/.f64 %230 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %230 #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (/.f64 %3 %213)) (/.f64 #s(literal 1 binary64) (/.f64 %25 %216)) (/.f64 #s(literal 1 binary64) (/.f64 x %219)) (/.f64 #s(literal 1 binary64) (/.f64 %4 %209)) (/.f64 #s(literal 1 binary64) (/.f64 %12 y)) %230 (neg.f64 %210) (*.f64 %287 %182) (*.f64 %289 %186) (*.f64 %291 %190) (*.f64 %293 %66) (*.f64 %251 %295) (*.f64 %195 %295) (*.f64 %198 %298) (*.f64 %300 %204) (*.f64 %201 %302) (*.f64 %298 %198) (*.f64 %204 %300) (*.f64 %207 %193) (*.f64 %295 %251) (*.f64 %295 %195) (*.f64 %302 %201) (*.f64 %310 %217) (*.f64 %264 %220) (*.f64 %193 %207) (*.f64 %193 y) (*.f64 %210 #s(literal -1/2 binary64)) (*.f64 %316 %214) (*.f64 %213 %182) (*.f64 %216 %186) (*.f64 %219 %190) (*.f64 %182 %213) (*.f64 %186 %216) (*.f64 %190 %219) (*.f64 %324 %202) (*.f64 %286 %66) (*.f64 #s(literal -1/2 binary64) %210) (*.f64 %66 %286) (*.f64 %209 %329) (*.f64 %209 %302) %233 (*.f64 #s(literal 1 binary64) %233) (*.f64 #s(literal 1/2 binary64) %230) (*.f64 y %193) (pow.f64 %233 #s(literal 1 binary64)) (/.f64 %222 %3) (/.f64 %224 %25) (/.f64 %226 x) (/.f64 (*.f64 %286 #s(literal -1 binary64)) %4) (/.f64 %293 %12) (/.f64 (/.f64 %310 %29) %29) (/.f64 (/.f64 %310 %27) %27) (/.f64 (/.f64 %264 %9) #s(literal 1/2 binary64)) (/.f64 (/.f64 %264 #s(literal 2 binary64)) %20) (/.f64 (/.f64 %324 %25) %26) (/.f64 %352 %26) (/.f64 %354 %27) (/.f64 %356 %38) (/.f64 %358 %4) (/.f64 %360 %12) (/.f64 (*.f64 %213 #s(literal 1 binary64)) %363) (/.f64 (*.f64 %216 #s(literal 1 binary64)) %366) (/.f64 %258 %368) (/.f64 (neg.f64 %310) %26) (/.f64 %310 %25) (/.f64 %264 x) (/.f64 %316 %3) (/.f64 %213 %375) (/.f64 %216 %377) (/.f64 %219 %9) (/.f64 %324 %4) (/.f64 %286 %12) (/.f64 %382 #s(literal -1 binary64)) (/.f64 %209 %384) (/.f64 %233 #s(literal 1 binary64)) (/.f64 %230 #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %233 #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (/.f64 %3 %316)) (/.f64 #s(literal 1 binary64) (/.f64 %25 %310)) (/.f64 #s(literal 1 binary64) (/.f64 x %264)) (/.f64 #s(literal 1 binary64) (/.f64 %4 %324)) (/.f64 #s(literal 1 binary64) (/.f64 %12 %286)) (/.f64 y %45) (/.f64 y %18) (neg.f64 %382) (*.f64 %403 #s(literal 1/2 binary64)) (*.f64 %405 %66) (*.f64 #s(literal 1 binary64) %407) (*.f64 #s(literal 1/2 binary64) %403) (pow.f64 %407 #s(literal 1 binary64)) (/.f64 (/.f64 %405 %26) %26) (/.f64 (/.f64 %405 %3) %3) (/.f64 (/.f64 %405 %38) %27) (/.f64 (/.f64 %405 %27) %38) (/.f64 (/.f64 %405 %25) %25) (/.f64 (/.f64 %405 #s(literal -1 binary64)) %4) (/.f64 (/.f64 %405 #s(literal 1 binary64)) %12) (/.f64 (/.f64 %405 x) x) (/.f64 %427 %9) (/.f64 %429 #s(literal -1 binary64)) (/.f64 (fma.f64 #s(literal 2 binary64) %12 y) %45) (/.f64 (fma.f64 %233 #s(literal 2 binary64) #s(literal 2 binary64)) #s(literal 2 binary64)) (/.f64 (fma.f64 %3 x %324) %4) (/.f64 (+.f64 %3 %316) %3) (/.f64 (+.f64 %25 %310) %25) (/.f64 (-.f64 %4 %286) %4) (/.f64 (fma.f64 %316 #s(literal 2 binary64) %375) %363) (/.f64 (fma.f64 %310 #s(literal 2 binary64) %377) %366) (/.f64 (fma.f64 %324 #s(literal 2 binary64) %384) %368) (/.f64 (+.f64 y %45) %18) (/.f64 (fma.f64 #s(literal 2 binary64) %3 (*.f64 %316 #s(literal 2 binary64))) %375) (/.f64 (fma.f64 #s(literal 2 binary64) %25 (*.f64 %310 #s(literal 2 binary64))) %377) (/.f64 (fma.f64 #s(literal 2 binary64) x (*.f64 %264 #s(literal 2 binary64))) %9) (/.f64 (fma.f64 #s(literal 2 binary64) %4 (*.f64 %324 #s(literal 2 binary64))) %384) (/.f64 (fma.f64 %316 #s(literal 2 binary64) %363) %363) (/.f64 (fma.f64 %310 #s(literal 2 binary64) %366) %366) (/.f64 (fma.f64 %264 #s(literal 2 binary64) %9) %9) (/.f64 (fma.f64 %324 #s(literal 2 binary64) %368) %368) (/.f64 (+.f64 y %18) %18) (/.f64 (fma.f64 #s(literal 2 binary64) %3 (*.f64 #s(literal 2 binary64) %316)) %375) (/.f64 (fma.f64 #s(literal 2 binary64) %25 (*.f64 #s(literal 2 binary64) %310)) %377) (/.f64 (fma.f64 #s(literal 2 binary64) %4 %479) %384) (/.f64 (fma.f64 #s(literal 2 binary64) %12 %482) %45) (/.f64 (-.f64 %45 %479) %45) (/.f64 (-.f64 %384 %482) %384) (/.f64 (neg.f64 %405) %4) (/.f64 %403 #s(literal 2 binary64)) (/.f64 %405 %12) (/.f64 %493 x) (/.f64 %407 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %407 #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (/.f64 %12 %405)) (neg.f64 (*.f64 #s(literal -1/2 binary64) %403)) (neg.f64 %429) (neg.f64 (-.f64 #s(literal -1 binary64) %233)) (neg.f64 %505) (fma.f64 %287 %182 #s(literal 1 binary64)) (fma.f64 %289 %186 #s(literal 1 binary64)) (fma.f64 %291 %190 #s(literal 1 binary64)) (fma.f64 %293 %66 #s(literal 1 binary64)) (fma.f64 %251 %295 #s(literal 1 binary64)) (fma.f64 %195 %295 #s(literal 1 binary64)) (fma.f64 %198 %298 #s(literal 1 binary64)) (fma.f64 %300 %204 #s(literal 1 binary64)) (fma.f64 %201 %302 #s(literal 1 binary64)) (fma.f64 %298 %198 #s(literal 1 binary64)) (fma.f64 %204 %300 #s(literal 1 binary64)) (fma.f64 %207 %193 #s(literal 1 binary64)) (fma.f64 %295 %251 #s(literal 1 binary64)) (fma.f64 %295 %195 #s(literal 1 binary64)) (fma.f64 %302 %201 #s(literal 1 binary64)) (fma.f64 %310 %217 #s(literal 1 binary64)) (fma.f64 %264 %220 #s(literal 1 binary64)) (fma.f64 %193 %207 #s(literal 1 binary64)) (fma.f64 %193 y #s(literal 1 binary64)) (fma.f64 %403 #s(literal 1/2 binary64) #s(literal 0 binary64)) (fma.f64 %210 #s(literal -1/2 binary64) #s(literal 1 binary64)) (fma.f64 %316 %214 #s(literal 1 binary64)) (fma.f64 %405 %66 #s(literal 0 binary64)) (fma.f64 %213 %182 #s(literal 1 binary64)) (fma.f64 %216 %186 #s(literal 1 binary64)) (fma.f64 %219 %190 #s(literal 1 binary64)) (fma.f64 %182 %213 #s(literal 1 binary64)) (fma.f64 %186 %216 #s(literal 1 binary64)) (fma.f64 %190 %219 #s(literal 1 binary64)) (fma.f64 %324 %202 #s(literal 1 binary64)) (fma.f64 %286 %66 #s(literal 1 binary64)) (fma.f64 #s(literal -1/2 binary64) %210 #s(literal 1 binary64)) (fma.f64 %66 %286 #s(literal 1 binary64)) (fma.f64 %209 %329 #s(literal 1 binary64)) (fma.f64 %209 %302 #s(literal 1 binary64)) %407 (fma.f64 #s(literal 1 binary64) %407 #s(literal 0 binary64)) (fma.f64 #s(literal 1 binary64) %233 #s(literal 1 binary64)) (fma.f64 #s(literal 1/2 binary64) %403 #s(literal 0 binary64)) (fma.f64 #s(literal 1/2 binary64) %230 #s(literal 1 binary64)) (fma.f64 y %193 #s(literal 1 binary64)) (-.f64 %233 #s(literal -1 binary64)) (-.f64 #s(literal 1 binary64) %382) (+.f64 (fma.f64 %193 y #s(literal 1/2 binary64)) #s(literal 1/2 binary64)) (+.f64 %407 #s(literal 0 binary64)) (+.f64 %233 #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (+.f64 #s(literal 0 binary64) %233)) (+.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) %382)) (+.f64 #s(literal 1 binary64) %233) (+.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1/2 binary64) %233)) (+.f64 #s(literal 1/2 binary64) (-.f64 #s(literal 1/2 binary64) %382)) (*.f64 (*.f64 %407 %9) #s(literal 1/2 binary64)) (*.f64 (*.f64 %407 #s(literal 1 binary64)) x) (*.f64 (*.f64 %407 #s(literal 2 binary64)) %20) (*.f64 %9 (*.f64 #s(literal 1/2 binary64) %407)) (*.f64 %20 %403) (*.f64 %493 #s(literal 1 binary64)) (*.f64 %407 x) (*.f64 #s(literal 1 binary64) %493) (*.f64 #s(literal 1/2 binary64) (*.f64 %403 x)) (*.f64 #s(literal 1/2 binary64) (+.f64 %219 %9)) (*.f64 #s(literal 1/2 binary64) %427) (*.f64 #s(literal 2 binary64) (*.f64 %20 %407)) (*.f64 x %407) (pow.f64 %493 #s(literal 1 binary64)) (/.f64 (*.f64 x %405) %12) (/.f64 (*.f64 %405 x) %12) (/.f64 (fma.f64 %12 x %587) %12) (/.f64 #s(literal 1 binary64) (pow.f64 %493 #s(literal -1 binary64))) (neg.f64 (*.f64 %505 x)) (neg.f64 (*.f64 x %505)) (neg.f64 (-.f64 %316 x)) (fma.f64 (*.f64 %20 %66) y x) (fma.f64 (*.f64 %233 %9) #s(literal 1/2 binary64) x) (fma.f64 (*.f64 %233 #s(literal 1 binary64)) x x) (fma.f64 (*.f64 x %182) %213 x) (fma.f64 (*.f64 x %186) %216 x) (fma.f64 (*.f64 x %190) %219 x) (fma.f64 (*.f64 x y) %193 x) (fma.f64 (*.f64 %20 %209) %202 x) (fma.f64 %614 %233 x) (fma.f64 (*.f64 %233 #s(literal 2 binary64)) %20 x) (fma.f64 (/.f64 #s(literal 1/2 binary64) %9) (/.f64 y #s(literal 1/2 binary64)) x) (fma.f64 (/.f64 y %9) #s(literal 1 binary64) x) (fma.f64 %623 %352 x) (fma.f64 %352 %623 x) (fma.f64 %626 %382 x) (fma.f64 %628 %316 x) (fma.f64 %630 %354 x) (fma.f64 %354 %630 x) (fma.f64 %633 %356 x) (fma.f64 %356 %633 x) (fma.f64 %636 %310 x) (fma.f64 %638 %358 x) (fma.f64 %358 %638 x) (fma.f64 %360 %220 x) (fma.f64 %207 %190 x) (fma.f64 %9 (*.f64 #s(literal 1/2 binary64) %233) x) (fma.f64 %20 %230 x) (fma.f64 %587 %66 x) (fma.f64 %310 %636 x) (fma.f64 %264 #s(literal 1 binary64) x) (fma.f64 %220 %360 x) (fma.f64 %316 %628 x) %493 (fma.f64 %182 (*.f64 %213 x) x) (fma.f64 %186 (*.f64 %216 x) x) (fma.f64 %190 (*.f64 %219 x) x) (fma.f64 %190 %207 x) (fma.f64 #s(literal 1/4 binary64) (/.f64 y %20) x) (fma.f64 %286 %220 x) (fma.f64 %382 %626 x) (fma.f64 %66 %587 x) (fma.f64 %209 (*.f64 %202 %20) x) (fma.f64 %233 %614 x) (fma.f64 %233 x x) (fma.f64 %230 %20 x) (fma.f64 #s(literal 1 binary64) %264 x) (fma.f64 #s(literal 1/2 binary64) %219 x) (fma.f64 #s(literal 2 binary64) (*.f64 %20 %233) x) (fma.f64 y (*.f64 %193 x) x) (fma.f64 y (*.f64 %66 %20) x) (fma.f64 y %190 x) (fma.f64 x %233 x) (-.f64 %264 %3) (-.f64 x %316) (+.f64 %264 x) (+.f64 x %264) (*.f64 #s(literal 1 binary64) %683) (pow.f64 %683 #s(literal 1 binary64)) %683 (/.f64 #s(literal 1 binary64) (pow.f64 %683 #s(literal -1 binary64))) #s(literal -1 binary64) (*.f64 (*.f64 #s(literal -1 binary64) %9) #s(literal 1/2 binary64)) (*.f64 (*.f64 x #s(literal -2 binary64)) #s(literal 1/2 binary64)) (*.f64 (neg.f64 %9) #s(literal 1/2 binary64)) (*.f64 %9 #s(literal -1/2 binary64)) (*.f64 #s(literal -2 binary64) %20) (*.f64 %3 #s(literal 1 binary64)) (*.f64 #s(literal -1 binary64) x) (*.f64 #s(literal 1 binary64) %3) (*.f64 #s(literal 2 binary64) (*.f64 %20 #s(literal -1 binary64))) (*.f64 #s(literal 2 binary64) (neg.f64 %20)) (*.f64 x #s(literal -1 binary64)) (pow.f64 %3 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) %214) %3 (*.f64 #s(literal 1 binary64) %706) (pow.f64 %706 #s(literal 1 binary64)) %706 (/.f64 #s(literal 1 binary64) (pow.f64 %706 #s(literal -1 binary64))) (*.f64 %711 #s(literal 2 binary64)) (*.f64 %713 %713) (*.f64 %715 %715) (*.f64 %717 %717) (*.f64 %719 %719) (*.f64 %721 %721) (*.f64 %366 #s(literal 1/2 binary64)) (*.f64 %724 #s(literal 1/2 binary64)) (*.f64 %726 %726) (*.f64 %728 %729) (*.f64 %729 %728) (*.f64 %26 #s(literal -1 binary64)) (*.f64 %29 %715) (*.f64 %29 %29) (*.f64 %27 %27) (*.f64 %25 #s(literal 1 binary64)) (*.f64 #s(literal -1 binary64) %26) (*.f64 #s(literal 1 binary64) %25) (*.f64 #s(literal 1/2 binary64) %377) (*.f64 #s(literal 2 binary64) %740) (*.f64 #s(literal 2 binary64) %742) (pow.f64 %713 #s(literal 2 binary64)) (pow.f64 %715 #s(literal 2 binary64)) (pow.f64 %717 #s(literal 2 binary64)) (pow.f64 %719 #s(literal 2 binary64)) (pow.f64 %721 #s(literal 2 binary64)) (pow.f64 %726 #s(literal 2 binary64)) (pow.f64 %53 #s(literal 1/8 binary64)) (pow.f64 %29 #s(literal 2 binary64)) (pow.f64 %57 #s(literal 1/4 binary64)) (pow.f64 %27 #s(literal 2 binary64)) (pow.f64 %25 #s(literal 1 binary64)) (pow.f64 %12 #s(literal 1/2 binary64)) (/.f64 %377 #s(literal 2 binary64)) (/.f64 %366 #s(literal 2 binary64)) (/.f64 #s(literal 1 binary64) %217) (neg.f64 %26) (fma.f64 %711 #s(literal 2 binary64) %761) (fma.f64 %711 #s(literal 2 binary64) %763) (fma.f64 %713 %713 %761) (fma.f64 %713 %713 %763) (fma.f64 %715 %715 %761) (fma.f64 %715 %715 %763) (fma.f64 %717 %717 %761) (fma.f64 %717 %717 %763) (fma.f64 %719 %719 %761) (fma.f64 %719 %719 %763) (fma.f64 %721 %721 %761) (fma.f64 %721 %721 %763) (fma.f64 %366 #s(literal 1/2 binary64) %761) (fma.f64 %366 #s(literal 1/2 binary64) %763) (fma.f64 %724 #s(literal 1/2 binary64) %761) (fma.f64 %724 #s(literal 1/2 binary64) %763) (fma.f64 %726 %726 %761) (fma.f64 %726 %726 %763) (fma.f64 %728 %729 %761) (fma.f64 %728 %729 %763) (fma.f64 %729 %728 %761) (fma.f64 %729 %728 %763) (fma.f64 %26 #s(literal -1 binary64) %761) (fma.f64 %26 #s(literal -1 binary64) %763) (fma.f64 %29 %715 %761) (fma.f64 %29 %715 %763) (fma.f64 %29 %29 %761) (fma.f64 %29 %29 %763) (fma.f64 %27 %27 %761) (fma.f64 %27 %27 %763) (fma.f64 %25 #s(literal 1 binary64) %761) (fma.f64 %25 #s(literal 1 binary64) %763) (fma.f64 %25 #s(literal 1/2 binary64) %711) (fma.f64 #s(literal -1 binary64) %26 %761) (fma.f64 #s(literal -1 binary64) %26 %763) (fma.f64 #s(literal 1 binary64) %25 %761) (fma.f64 #s(literal 1 binary64) %25 %763) (fma.f64 #s(literal 1/2 binary64) %377 %761) (fma.f64 #s(literal 1/2 binary64) %377 %763) (fma.f64 #s(literal 1/2 binary64) %25 %740) (fma.f64 #s(literal 2 binary64) %740 %761) (fma.f64 #s(literal 2 binary64) %740 %763) (fma.f64 #s(literal 2 binary64) %742 %761) (fma.f64 #s(literal 2 binary64) %742 %763) (sqrt.f64 %12) (fabs.f64 %26) (fabs.f64 %3) (fabs.f64 %25) %25 (+.f64 %711 %711) (+.f64 %740 %740) (+.f64 %25 %761) (+.f64 %25 %763) (*.f64 %729 %729) (*.f64 %27 #s(literal 1 binary64)) (*.f64 #s(literal 1 binary64) %27) (pow.f64 %729 #s(literal 2 binary64)) (pow.f64 %57 #s(literal 1/8 binary64)) (pow.f64 %27 #s(literal 1 binary64)) (pow.f64 %25 #s(literal 1/2 binary64)) (pow.f64 %12 #s(literal 1/4 binary64)) (/.f64 #s(literal 1 binary64) %199) %27 (fabs.f64 %726) (fabs.f64 %29) (fabs.f64 %27) (*.f64 %26 %29) (*.f64 %29 %26) (*.f64 %38 #s(literal 1 binary64)) %38 (*.f64 %25 %27) (*.f64 #s(literal 1 binary64) %38) (pow.f64 (*.f64 %57 %12) #s(literal 1/4 binary64)) (pow.f64 %834 #s(literal 1/2 binary64)) (pow.f64 %57 #s(literal 3/8 binary64)) (pow.f64 %38 #s(literal 1 binary64)) (pow.f64 %27 #s(literal 3 binary64)) (pow.f64 %25 #s(literal 3/2 binary64)) (pow.f64 %12 #s(literal 3/4 binary64)) (/.f64 #s(literal 1 binary64) %205) (sqrt.f64 %834) (fabs.f64 (neg.f64 %121)) (fabs.f64 (*.f64 %29 %3)) (fabs.f64 (*.f64 %29 x)) (fabs.f64 (*.f64 %3 %29)) (fabs.f64 (*.f64 x %29)) (fabs.f64 %28) (fabs.f64 %121) (fabs.f64 %126) (fabs.f64 %38) %864 %865 %866 %868 %869 %870 %871 %873 %875 %877 %879 %881 %883 %884 %885 %886 %887 %888 %889 %890 %891 %892 %893 %894 %895 %896 %897 %898 %899 %900 %901 %902 %903 %904 %905 %861 %906 %907 %908 %910 %912 %913 %914 %917 %919 %920 %922 %923 %924 %925 %926 %928 %930 %862 %932 %933 %934 %864 %865 %866 %868 %869 %870 %871 %873 %875 %877 %879 %881 %883 %884 %885 %886 %887 %888 %889 %890 %891 %892 %893 %894 %895 %896 %897 %898 %899 %900 %901 %902 %903 %904 %905 %861 %906 %907 %908 %910 %912 %913 %914 %917 %919 %920 (*.f64 %935 %935) (*.f64 #s(literal 1 binary64) %157) (pow.f64 %935 #s(literal 2 binary64)) (pow.f64 %157 #s(literal 1 binary64)) (pow.f64 %156 #s(literal 1/2 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %157 #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 %156 #s(literal -1/2 binary64))) %157 (fabs.f64 (neg.f64 %158)) (fabs.f64 %158) (fabs.f64 %157) %922 %923 %924 %925 %926 %928 %930 %862 %932 %933 %934 |
Compiled 791 to 1 187 computations (-50.1% saved)
Compiled 184 to 684 computations (-271.7% saved)
5 alts after pruning (2 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 182 | 2 | 184 |
| Fresh | 0 | 0 | 0 |
| Picked | 2 | 3 | 5 |
| Done | 0 | 0 | 0 |
| Total | 184 | 5 | 189 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 66.5% | %24 = (fabs.f64 x) %25 = (sqrt.f64 %24) (sqrt.f64 (fma.f64 %25 (*.f64 %25 %24) y)) |
| ✓ | 66.6% | (sqrt.f64 (fma.f64 x x y)) |
| ✓ | 38.6% | (sqrt.f64 (approx (+ (* x x) y) y)) |
| ▶ | 1.3% | (approx (sqrt (+ (pow x 2) y)) (neg.f64 x)) |
| ▶ | 64.0% | (approx (sqrt (+ (* x x) y)) (*.f64 x (approx (+ 1 (* 1/2 (/ y (pow x 2)))) #s(literal 1 binary64)))) |
Compiled 5 to 13 computations (-160.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 178 | 928 |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (neg.f64 x) %7 = (pow x 2) %11 = (approx (+ 1 (* 1/2 (/ y %7))) #s(literal 1 binary64)) %15 = (*.f64 x %11) x #s(literal 1 binary64) %2 %11 (approx (sqrt (+ %7 y)) %2) %15 (approx (sqrt (+ (* x x) y)) %15) |
| Outputs |
|---|
%12 = (pow x 2) %15 = (+ 1 (* 1/2 (/ y %12))) %18 = (pow.f64 x #s(literal 2 binary64)) %19 = (/.f64 y %18) %20 = (*.f64 #s(literal 1/2 binary64) %19) %22 = (fma.f64 #s(literal 1/2 binary64) y %18) %26 = (sqrt (+ %12 y)) %27 = (sqrt.f64 y) %35 = (pow.f64 %27 #s(literal 3 binary64)) %39 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %27)) %57 = (* x %15) %59 = (*.f64 #s(literal 1/2 binary64) (/.f64 y x)) %64 = (+.f64 #s(literal 1 binary64) %20) %66 = (*.f64 x %64) %68 = (pow.f64 y #s(literal 2 binary64)) %70 = (pow.f64 x #s(literal 4 binary64)) %71 = (/.f64 %68 %70) %74 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %71 %20))) %78 = (pow.f64 x #s(literal 6 binary64)) %83 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %71 (fma.f64 #s(literal 1/16 binary64) (/.f64 (pow.f64 y #s(literal 3 binary64)) %78) %20)))) %97 = (sqrt.f64 %18) %103 = (pow.f64 %97 #s(literal 3 binary64)) %106 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %97)) %123 = (/.f64 #s(literal 1 binary64) y) %124 = (/.f64 #s(literal 1 binary64) %18) %129 = (sqrt.f64 %123) %130 = (*.f64 y %129) %134 = (*.f64 #s(literal 1/2 binary64) (/.f64 %18 (*.f64 %68 %129))) %136 = (*.f64 y (+.f64 %129 %134)) %141 = (/.f64 %70 (*.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 %129 #s(literal 3 binary64)))) %144 = (*.f64 y (+.f64 %129 (fma.f64 #s(literal -1/8 binary64) %141 %134))) %153 = (*.f64 y (+.f64 %129 (fma.f64 #s(literal -1/8 binary64) %141 (fma.f64 #s(literal 1/16 binary64) (/.f64 %78 (*.f64 (pow.f64 y #s(literal 6 binary64)) (pow.f64 %129 #s(literal 5 binary64)))) %134)))) %155 = (/.f64 #s(literal 1 binary64) x) %156 = (/.f64 x y) (approx x #s(literal 0 binary64)) (approx x x) (approx (neg x) (*.f64 #s(literal -1 binary64) x)) (approx %15 %20) (approx %15 (/.f64 %22 %18)) (approx %26 %27) (approx %26 (+.f64 %27 (*.f64 #s(literal 1/2 binary64) (/.f64 %18 %27)))) (approx %26 (+.f64 %27 (*.f64 %18 (fma.f64 #s(literal -1/8 binary64) (/.f64 %18 %35) %39)))) (approx %26 (+.f64 %27 (*.f64 %18 (fma.f64 %18 (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 %18 (pow.f64 %27 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %35))) %39)))) (approx %57 %59) (approx %57 (/.f64 %22 x)) (approx %15 #s(literal 1 binary64)) (approx %15 %64) (approx %26 %66) (approx %26 %74) (approx %26 %83) (approx %26 (*.f64 #s(literal -1 binary64) %66)) (approx %26 (*.f64 #s(literal -1 binary64) %74)) (approx %26 (*.f64 #s(literal -1 binary64) %83)) (approx %57 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1/2 binary64) %19) #s(literal 1 binary64))))) (approx %26 %97) (approx %26 (+.f64 %97 (*.f64 #s(literal 1/2 binary64) (/.f64 y %97)))) (approx %26 (+.f64 %97 (*.f64 y (fma.f64 #s(literal -1/8 binary64) (/.f64 y %103) %106)))) (approx %26 (+.f64 %97 (*.f64 y (fma.f64 y (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 y (pow.f64 %97 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %103))) %106)))) (approx %57 (+.f64 x %59)) (approx %15 (*.f64 y (+.f64 %123 (*.f64 #s(literal 1/2 binary64) %124)))) (approx %26 %130) (approx %26 %136) (approx %26 %144) (approx %26 %153) (approx %57 (*.f64 y (fma.f64 #s(literal 1/2 binary64) %155 %156))) (approx %15 (*.f64 y (fma.f64 #s(literal 1/2 binary64) %124 %123))) (approx %26 (*.f64 #s(literal -1 binary64) %130)) (approx %26 (*.f64 #s(literal -1 binary64) %136)) (approx %26 (*.f64 #s(literal -1 binary64) %144)) (approx %26 (*.f64 #s(literal -1 binary64) %153)) (approx %57 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %156) (*.f64 #s(literal 1/2 binary64) %155))))) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 2.0ms | x | inf |
| 1.0ms | x | 0 |
| 1.0ms | x | -inf |
| 1.0ms | y | inf |
| 1.0ms | y | 0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 19 | 57 |
| 0 | 21 | 57 |
| 1 | 72 | 57 |
| 2 | 233 | 57 |
| 3 | 1353 | 57 |
| 0 | 4806 | 57 |
| 0 | 5213 | 52 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (neg.f64 x) %7 = (pow x 2) %11 = (approx (+ 1 (* 1/2 (/ y %7))) #s(literal 1 binary64)) %15 = (*.f64 x %11) x #s(literal 1 binary64) %2 %11 (approx (sqrt (+ %7 y)) %2) %15 (approx (sqrt (+ (* x x) y)) %15) |
| Outputs |
|---|
%2 = (neg.f64 x) %10 = (pow x 2) %15 = (approx (+ (/ (/ y %10) 2) 1) #s(literal 1 binary64)) %21 = (sqrt (+ %10 y)) %22 = (approx %21 %2) %27 = (*.f64 %15 x) %33 = (approx %21 %27) x #s(literal 1 binary64) (*.f64 #s(literal 1 binary64) %2) (pow.f64 %2 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -1 binary64) x)) %2 (*.f64 #s(literal 1 binary64) %15) (pow.f64 %15 #s(literal 1 binary64)) %15 (/.f64 #s(literal 1 binary64) (pow.f64 %15 #s(literal -1 binary64))) (*.f64 #s(literal 1 binary64) %22) (pow.f64 %22 #s(literal 1 binary64)) %22 (/.f64 #s(literal 1 binary64) (pow.f64 %22 #s(literal -1 binary64))) %27 (*.f64 #s(literal 1 binary64) %27) (*.f64 x %15) (pow.f64 %27 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %27 #s(literal -1 binary64))) (*.f64 #s(literal 1 binary64) %33) (pow.f64 %33 #s(literal 1 binary64)) %33 (/.f64 #s(literal 1 binary64) (pow.f64 %33 #s(literal -1 binary64))) |
Compiled 60 to 152 computations (-153.3% saved)
Compiled 41 to 138 computations (-236.6% saved)
6 alts after pruning (1 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 40 | 1 | 41 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 2 | 2 |
| Done | 0 | 3 | 3 |
| Total | 40 | 6 | 46 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 66.5% | %28 = (fabs.f64 x) %29 = (sqrt.f64 %28) (sqrt.f64 (fma.f64 %29 (*.f64 %29 %28) y)) |
| ✓ | 66.6% | (sqrt.f64 (fma.f64 x x y)) |
| ✓ | 38.6% | (sqrt.f64 (approx (+ (* x x) y) y)) |
| ▶ | 2.6% | (approx (sqrt (+ (pow x 2) y)) (neg.f64 (approx x #s(literal 0 binary64)))) |
| ✓ | 1.3% | (approx (sqrt (+ (pow x 2) y)) (neg.f64 x)) |
| ✓ | 64.0% | (approx (sqrt (+ (* x x) y)) (*.f64 x (approx (+ 1 (* 1/2 (/ y (pow x 2)))) #s(literal 1 binary64)))) |
Compiled 6 to 15 computations (-150.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 139 | 686 |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (approx x #s(literal 0 binary64)) %3 = (neg.f64 %2) x #s(literal 0 binary64) %2 %3 (approx (sqrt (+ (pow x 2) y)) %3) |
| Outputs |
|---|
%12 = (sqrt (+ (pow x 2) y)) %13 = (sqrt.f64 y) %17 = (pow.f64 x #s(literal 2 binary64)) %24 = (pow.f64 %13 #s(literal 3 binary64)) %28 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %13)) %47 = (*.f64 #s(literal 1/2 binary64) (/.f64 y %17)) %49 = (*.f64 x (+.f64 #s(literal 1 binary64) %47)) %51 = (pow.f64 y #s(literal 2 binary64)) %53 = (pow.f64 x #s(literal 4 binary64)) %54 = (/.f64 %51 %53) %57 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %54 %47))) %61 = (pow.f64 x #s(literal 6 binary64)) %66 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %54 (fma.f64 #s(literal 1/16 binary64) (/.f64 (pow.f64 y #s(literal 3 binary64)) %61) %47)))) %74 = (sqrt.f64 %17) %80 = (pow.f64 %74 #s(literal 3 binary64)) %83 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %74)) %99 = (sqrt.f64 (/.f64 #s(literal 1 binary64) y)) %100 = (*.f64 y %99) %104 = (*.f64 #s(literal 1/2 binary64) (/.f64 %17 (*.f64 %51 %99))) %106 = (*.f64 y (+.f64 %99 %104)) %111 = (/.f64 %53 (*.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 %99 #s(literal 3 binary64)))) %114 = (*.f64 y (+.f64 %99 (fma.f64 #s(literal -1/8 binary64) %111 %104))) %123 = (*.f64 y (+.f64 %99 (fma.f64 #s(literal -1/8 binary64) %111 (fma.f64 #s(literal 1/16 binary64) (/.f64 %61 (*.f64 (pow.f64 y #s(literal 6 binary64)) (pow.f64 %99 #s(literal 5 binary64)))) %104)))) (approx x #s(literal 0 binary64)) (approx x x) (approx (neg x) (*.f64 #s(literal -1 binary64) x)) (approx %12 %13) (approx %12 (+.f64 %13 (*.f64 #s(literal 1/2 binary64) (/.f64 %17 %13)))) (approx %12 (+.f64 %13 (*.f64 %17 (fma.f64 #s(literal -1/8 binary64) (/.f64 %17 %24) %28)))) (approx %12 (+.f64 %13 (*.f64 %17 (fma.f64 %17 (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 %17 (pow.f64 %13 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %24))) %28)))) (approx %12 %49) (approx %12 %57) (approx %12 %66) (approx %12 (*.f64 #s(literal -1 binary64) %49)) (approx %12 (*.f64 #s(literal -1 binary64) %57)) (approx %12 (*.f64 #s(literal -1 binary64) %66)) (approx %12 %74) (approx %12 (+.f64 %74 (*.f64 #s(literal 1/2 binary64) (/.f64 y %74)))) (approx %12 (+.f64 %74 (*.f64 y (fma.f64 #s(literal -1/8 binary64) (/.f64 y %80) %83)))) (approx %12 (+.f64 %74 (*.f64 y (fma.f64 y (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 y (pow.f64 %74 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %80))) %83)))) (approx %12 %100) (approx %12 %106) (approx %12 %114) (approx %12 %123) (approx %12 (*.f64 #s(literal -1 binary64) %100)) (approx %12 (*.f64 #s(literal -1 binary64) %106)) (approx %12 (*.f64 #s(literal -1 binary64) %114)) (approx %12 (*.f64 #s(literal -1 binary64) %123)) |
6 calls:
| Time | Variable | Point |
|---|---|---|
| 1.0ms | x | inf |
| 1.0ms | x | -inf |
| 1.0ms | x | 0 |
| 0.0ms | y | inf |
| 0.0ms | y | -inf |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 20 |
| 0 | 11 | 20 |
| 1 | 31 | 20 |
| 2 | 65 | 20 |
| 3 | 193 | 20 |
| 4 | 981 | 20 |
| 0 | 4230 | 20 |
| 0 | 4389 | 19 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (approx x #s(literal 0 binary64)) %3 = (neg.f64 %2) x #s(literal 0 binary64) %2 %3 (approx (sqrt (+ (pow x 2) y)) %3) |
| Outputs |
|---|
%3 = (approx x #s(literal 0 binary64)) %9 = (neg.f64 %3) %19 = (approx (sqrt (+ y (pow x 2))) %9) x #s(literal 0 binary64) (*.f64 #s(literal 1 binary64) %3) (pow.f64 %3 #s(literal 1 binary64)) %3 (/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64))) (*.f64 #s(literal 1 binary64) %9) (pow.f64 %9 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %9 #s(literal -1 binary64))) %9 (*.f64 #s(literal 1 binary64) %19) (pow.f64 %19 #s(literal 1 binary64)) %19 (/.f64 #s(literal 1 binary64) (pow.f64 %19 #s(literal -1 binary64))) |
Compiled 39 to 116 computations (-197.4% saved)
Compiled 25 to 104 computations (-316.0% saved)
6 alts after pruning (0 fresh and 6 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 25 | 0 | 25 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 5 | 5 |
| Total | 25 | 6 | 31 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 66.5% | %28 = (fabs.f64 x) %29 = (sqrt.f64 %28) (sqrt.f64 (fma.f64 %29 (*.f64 %29 %28) y)) |
| ✓ | 66.6% | (sqrt.f64 (fma.f64 x x y)) |
| ✓ | 38.6% | (sqrt.f64 (approx (+ (* x x) y) y)) |
| ✓ | 2.6% | (approx (sqrt (+ (pow x 2) y)) (neg.f64 (approx x #s(literal 0 binary64)))) |
| ✓ | 1.3% | (approx (sqrt (+ (pow x 2) y)) (neg.f64 x)) |
| ✓ | 64.0% | (approx (sqrt (+ (* x x) y)) (*.f64 x (approx (+ 1 (* 1/2 (/ y (pow x 2)))) #s(literal 1 binary64)))) |
Compiled 6 to 15 computations (-150.0% saved)
Total 3.7b remaining (2.2%)
Threshold costs 0.5b (0.3%)
| 3.2b | 85.7% |
| 0.5b | 0.0% |
| 0.0b | -50.0% |
| 0.0b | 100.0% |
| -0.0b | -0.0% |
| Inputs |
|---|
(approx (sqrt (+ (pow x 2) y)) (neg.f64 x)) |
| Outputs |
|---|
(approx (sqrt (+ (pow x 2) y)) (neg.f64 x)) |
| Inputs |
|---|
%5 = (sqrt (+ (pow x 2) y)) (approx %5 (neg.f64 x)) (approx %5 (neg.f64 (approx x #s(literal 0 binary64)))) |
| Outputs |
|---|
(approx (sqrt (+ (pow x 2) y)) (neg.f64 (approx x #s(literal 0 binary64)))) |
| Inputs |
|---|
%5 = (sqrt (+ (pow x 2) y)) (approx %5 (neg.f64 x)) (approx %5 (neg.f64 (approx x #s(literal 0 binary64)))) (sqrt.f64 (approx (+ (* x x) y) y)) |
| Outputs |
|---|
(sqrt.f64 (approx (+ (* x x) y) y)) |
| Inputs |
|---|
%2 = (pow x 2) %5 = (sqrt (+ %2 y)) %13 = (+ (* x x) y) %16 = (sqrt %13) (approx %5 (neg.f64 x)) (approx %5 (neg.f64 (approx x #s(literal 0 binary64)))) (sqrt.f64 (approx %13 y)) (approx %16 (*.f64 #s(literal -1 binary64) x)) (approx %16 (*.f64 x (approx (+ 1 (* 1/2 (/ y %2))) #s(literal 1 binary64)))) |
| Outputs |
|---|
%3 = (+ (* x x) y) (sqrt.f64 (approx %3 y)) (approx (sqrt %3) (*.f64 x (approx (+ 1 (* 1/2 (/ y (pow x 2)))) #s(literal 1 binary64)))) |
| Inputs |
|---|
%2 = (pow x 2) %5 = (sqrt (+ %2 y)) %13 = (+ (* x x) y) %16 = (sqrt %13) (approx %5 (neg.f64 x)) (approx %5 (neg.f64 (approx x #s(literal 0 binary64)))) (sqrt.f64 (approx %13 y)) (approx %16 (*.f64 #s(literal -1 binary64) x)) (approx %16 (*.f64 x (approx (+ 1 (* 1/2 (/ y %2))) #s(literal 1 binary64)))) (sqrt.f64 (fma.f64 x x y)) |
| Outputs |
|---|
(sqrt.f64 (fma.f64 x x y)) (approx (sqrt (+ (* x x) y)) (*.f64 x (approx (+ 1 (* 1/2 (/ y (pow x 2)))) #s(literal 1 binary64)))) |
5 calls:
| 11.0ms | x |
| 10.0ms | y |
| 10.0ms | (+.f64 (*.f64 x x) y) |
| 9.0ms | (sqrt.f64 (+.f64 (*.f64 x x) y)) |
| 8.0ms | (*.f64 x x) |
| Accuracy | Segments | Branch |
|---|---|---|
| 1.3% | 1 | y |
| 1.3% | 1 | x |
| 1.3% | 1 | (sqrt.f64 (+.f64 (*.f64 x x) y)) |
| 1.3% | 1 | (+.f64 (*.f64 x x) y) |
| 1.3% | 1 | (*.f64 x x) |
Compiled 14 to 32 computations (-128.6% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 9.866192892177983e+199 | 8.473395092726803e+201 |
Compiled 1 to 2 computations (-100.0% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.0341808318832874e-99 | 6.495055715523653e-90 |
Compiled 1 to 2 computations (-100.0% saved)
| 1× | done |
Compiled 5 to 17 computations (-240.0% saved)
Compiled 16 to 74 computations (-362.5% saved)
| Allocated | Percent | Phase |
|---|---|---|
| 610.1 MiB | 32.0% | rewrite |
| 538.9 MiB | 28.2% | sample |
| 267.3 MiB | 14.0% | reconstruct |
| 154.1 MiB | 8.1% | series |
| 106.5 MiB | 5.6% | preprocess |
| 95.1 MiB | 5.0% | eval |
| 66.6 MiB | 3.5% | regimes |
| 32.1 MiB | 1.7% | derivations |
| 23.0 MiB | 1.2% | prune |
| 12.6 MiB | 0.7% | analyze |
| 2.7 MiB | 0.1% | bsearch |
| 0.0 MiB | 0.0% | start |
| 0.0 MiB | 0.0% | end |
| 1 909.0 MiB | 100.0% | total |
Loading profile data...