
Time bar (total: 1.6s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0.0% | 0.0% | 99.7% | 0.3% | 0.0% | 0.0% | 0.0% | 0 |
| 100.0% | 99.7% | 0.0% | 0.3% | 0.0% | 0.0% | 0.0% | 1 |
Compiled 13 to 13 computations (0.0% saved)
| 305.0ms | 8 256× | 0 | valid |
Mul: 7.0ms (62.5% of total, 0.0 MiB)Add: 4.0ms (35.7% of total, 0.0 MiB)Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 89 | 318 |
| 1 | 411 | 308 |
| 2 | 1096 | 308 |
| 3 | 2082 | 308 |
| 4 | 2197 | 308 |
| 5 | 2753 | 308 |
| 1× | node-limit |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 96.5% | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(sort x y)
(sort z t)
(sort a b)
Compiled 2 to 22 computations (-1000.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 142 | 584 |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (*.f64 x y) %5 = (*.f64 z t) %6 = (+.f64 %2 %5) %9 = (*.f64 a b) x y %2 z t %5 %6 a b %9 (+.f64 %6 %9) |
| Outputs |
|---|
%5 = (* x y) %6 = (*.f64 x y) %11 = (+ %5 (* z t)) %12 = (*.f64 t z) %14 = (fma.f64 t z %6) %18 = (* a b) %19 = (+ %11 %18) %20 = (fma.f64 a b %12) %24 = (/.f64 %12 x) %28 = (*.f64 a b) %47 = (/.f64 %12 y) %68 = (fma.f64 a b %6) %70 = (/.f64 %6 z) %91 = (/.f64 %6 t) (approx x #s(literal 0 binary64)) (approx x x) (approx %5 %6) (approx %11 %12) (approx %11 %14) (approx %19 %20) (approx %19 (fma.f64 a b %14)) (approx %11 (*.f64 x (+.f64 y %24))) (approx %19 (*.f64 x (+.f64 y (+.f64 (/.f64 %28 x) %24)))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) %24))))) (approx %19 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 %20 x)))))) (approx y y) (approx %11 (*.f64 y (+.f64 x %47))) (approx %19 (*.f64 y (+.f64 x (+.f64 (/.f64 %28 y) %47)))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) %47))))) (approx %19 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %20 y)))))) (approx z z) (approx %19 %68) (approx %11 (*.f64 z (+.f64 t %70))) (approx %19 (*.f64 z (+.f64 t (+.f64 (/.f64 %28 z) %70)))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) %70))))) (approx %19 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 %68 z)))))) (approx t t) (approx %11 (*.f64 t (+.f64 z %91))) (approx %19 (*.f64 t (+.f64 z (+.f64 (/.f64 %28 t) %91)))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) %91))))) (approx %19 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 %68 t)))))) (approx a a) (approx %18 %28) (approx %19 (*.f64 a (+.f64 b (+.f64 (/.f64 %12 a) (/.f64 %6 a))))) (approx %19 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 %14 a)))))) (approx b b) (approx %19 (*.f64 b (+.f64 a (+.f64 (/.f64 %12 b) (/.f64 %6 b))))) (approx %19 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 %14 b)))))) |
18 calls:
| Time | Variable | Point |
|---|---|---|
| 1.0ms | x | inf |
| 1.0ms | y | inf |
| 1.0ms | z | inf |
| 1.0ms | a | inf |
| 1.0ms | t | inf |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 33 |
| 0 | 16 | 33 |
| 1 | 45 | 33 |
| 2 | 120 | 33 |
| 3 | 289 | 33 |
| 4 | 455 | 33 |
| 5 | 843 | 33 |
| 0 | 4022 | 33 |
| 0 | 4278 | 30 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (*.f64 x y) %5 = (*.f64 z t) %6 = (+.f64 %2 %5) %9 = (*.f64 a b) x y %2 z t %5 %6 a b %9 (+.f64 %6 %9) |
| Outputs |
|---|
%3 = (*.f64 y x) %4 = (neg.f64 %3) %6 = (neg.f64 y) %7 = (neg.f64 x) %19 = (neg.f64 z) %20 = (*.f64 %19 t) %22 = (neg.f64 t) %25 = (*.f64 t z) %32 = (fma.f64 t z %3) %33 = (neg.f64 %32) %48 = (*.f64 %3 #s(literal 1 binary64)) %51 = (*.f64 %25 #s(literal 1 binary64)) %63 = (neg.f64 a) %64 = (*.f64 %63 b) %66 = (neg.f64 b) %69 = (*.f64 b a) %76 = (fma.f64 b a %32) %77 = (neg.f64 %76) %84 = (fma.f64 b a %3) %85 = (neg.f64 %84) %87 = (fma.f64 b a %25) %88 = (neg.f64 %87) %99 = (*.f64 %32 #s(literal 1 binary64)) %111 = (*.f64 %69 #s(literal 1 binary64)) %113 = (*.f64 %84 #s(literal 1 binary64)) %117 = (*.f64 %87 #s(literal 1 binary64)) x y (*.f64 #s(literal -1 binary64) %4) (*.f64 %6 %7) (*.f64 %7 %6) (*.f64 #s(literal 1 binary64) %3) %3 (*.f64 x y) (pow.f64 %3 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64))) (neg.f64 %4) z t (*.f64 #s(literal -1 binary64) %20) (*.f64 %22 %19) (*.f64 %19 %22) (*.f64 #s(literal 1 binary64) %25) %25 (*.f64 z t) (pow.f64 %25 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %25 #s(literal -1 binary64))) (neg.f64 %20) (*.f64 #s(literal -1 binary64) %33) (*.f64 #s(literal 1 binary64) %32) (pow.f64 %32 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %32 #s(literal -1 binary64))) (neg.f64 %33) (fma.f64 #s(literal -1 binary64) %4 %25) (fma.f64 #s(literal -1 binary64) %20 %3) (fma.f64 %6 %7 %25) (fma.f64 %7 %6 %25) (fma.f64 %22 %19 %3) (fma.f64 %19 %22 %3) (fma.f64 #s(literal 1 binary64) %25 %3) (fma.f64 #s(literal 1 binary64) %3 %25) (fma.f64 %25 #s(literal 1 binary64) %48) %32 (fma.f64 z t %3) (fma.f64 %3 #s(literal 1 binary64) %51) (fma.f64 y x %25) (fma.f64 x y %25) (-.f64 %25 %4) (-.f64 %3 %20) (+.f64 %51 %48) (+.f64 %48 %51) (+.f64 %25 %3) (+.f64 %3 %25) a b (*.f64 #s(literal -1 binary64) %64) (*.f64 %66 %63) (*.f64 %63 %66) (*.f64 #s(literal 1 binary64) %69) %69 (*.f64 a b) (pow.f64 %69 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %69 #s(literal -1 binary64))) (neg.f64 %64) (*.f64 #s(literal -1 binary64) %77) (*.f64 #s(literal 1 binary64) %76) (pow.f64 %76 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %76 #s(literal -1 binary64))) (neg.f64 %77) (fma.f64 #s(literal -1 binary64) %85 %25) (fma.f64 #s(literal -1 binary64) %88 %3) (fma.f64 #s(literal -1 binary64) %33 %69) (fma.f64 #s(literal -1 binary64) %4 %87) (fma.f64 #s(literal -1 binary64) %20 %84) (fma.f64 #s(literal -1 binary64) %64 %32) (fma.f64 %84 #s(literal 1 binary64) %51) (fma.f64 %6 %7 %87) (fma.f64 %7 %6 %87) (fma.f64 %22 %19 %84) (fma.f64 %66 %63 %32) (fma.f64 %69 #s(literal 1 binary64) %99) (fma.f64 %87 #s(literal 1 binary64) %48) (fma.f64 %19 %22 %84) (fma.f64 %63 %66 %32) (fma.f64 #s(literal 1 binary64) %84 %25) (fma.f64 #s(literal 1 binary64) %69 %32) (fma.f64 #s(literal 1 binary64) %87 %3) (fma.f64 #s(literal 1 binary64) %32 %69) (fma.f64 #s(literal 1 binary64) %25 %84) (fma.f64 #s(literal 1 binary64) %3 %87) %76 (fma.f64 a b %32) (fma.f64 %32 #s(literal 1 binary64) %111) (fma.f64 %25 #s(literal 1 binary64) %113) (fma.f64 t z %84) (fma.f64 z t %84) (fma.f64 %3 #s(literal 1 binary64) %117) (fma.f64 y x %87) (fma.f64 x y %87) (-.f64 %84 %20) (-.f64 %69 %33) (-.f64 %87 %4) (-.f64 %32 %64) (-.f64 %25 %85) (-.f64 %3 %88) (+.f64 %51 %113) (+.f64 %48 %117) (+.f64 %111 %99) (+.f64 %99 %111) (+.f64 %113 %51) (+.f64 %117 %48) (+.f64 %84 %25) (+.f64 %69 %32) (+.f64 %87 %3) (+.f64 %32 %69) (+.f64 %25 %84) (+.f64 %3 %87) |
Compiled 145 to 228 computations (-57.2% saved)
Compiled 38 to 132 computations (-247.4% saved)
4 alts after pruning (4 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 34 | 4 | 38 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 35 | 4 | 39 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 98.0% | (fma.f64 x y (fma.f64 b a (*.f64 t z))) |
| ▶ | 98.4% | (fma.f64 t z (fma.f64 b a (*.f64 y x))) |
| ▶ | 68.1% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y))) |
| ▶ | 65.0% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z))) |
Compiled 4 to 15 computations (-275.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 174 | 732 |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (*.f64 x y) %7 = (*.f64 t z) %8 = (fma.f64 a b %7) %13 = (+ (+ (* x y) (* z t)) (* a b)) %15 = (fma.f64 a b %2) %17 = (*.f64 y x) %18 = (fma.f64 b a %17) %19 = (fma.f64 b a %7) x y %2 z t a b %7 %8 (approx %13 %8) %15 (approx %13 %15) %17 %18 %19 (fma.f64 t z %18) (fma.f64 x y %19) |
| Outputs |
|---|
%5 = (* x y) %6 = (*.f64 x y) %14 = (* a b) %15 = (+ (+ %5 (* z t)) %14) %16 = (*.f64 t z) %17 = (fma.f64 a b %16) %19 = (fma.f64 t z %6) %22 = (+ %14 %5) %23 = (*.f64 a b) %25 = (fma.f64 a b %6) %27 = (/.f64 %23 x) %49 = (/.f64 %23 y) %70 = (* t z) %72 = (+ %14 %70) %73 = (/.f64 %23 z) %94 = (/.f64 %23 t) %116 = (/.f64 %16 a) %120 = (/.f64 %6 a) %145 = (/.f64 %16 b) %149 = (/.f64 %6 b) (approx x #s(literal 0 binary64)) (approx x x) (approx %5 %6) (approx %15 %17) (approx %15 (fma.f64 a b %19)) (approx %22 %23) (approx %22 %25) (approx %15 (*.f64 x (+.f64 y (+.f64 %27 (/.f64 %16 x))))) (approx %22 (*.f64 x (+.f64 y %27))) (approx %15 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 %17 x)))))) (approx %22 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) %27))))) (approx y y) (approx %15 (*.f64 y (+.f64 x (+.f64 %49 (/.f64 %16 y))))) (approx %22 (*.f64 y (+.f64 x %49))) (approx %15 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %17 y)))))) (approx %22 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) %49))))) (approx z z) (approx %70 %16) (approx %72 (*.f64 z (+.f64 t %73))) (approx %15 (*.f64 z (+.f64 t (+.f64 %73 (/.f64 %6 z))))) (approx %72 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) %73))))) (approx %15 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 %25 z)))))) (approx t t) (approx %72 (*.f64 t (+.f64 z %94))) (approx %15 (*.f64 t (+.f64 z (+.f64 %94 (/.f64 %6 t))))) (approx %72 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) %94))))) (approx %15 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 %25 t)))))) (approx a a) (approx %15 %19) (approx %72 (*.f64 a (+.f64 b %116))) (approx %15 (*.f64 a (+.f64 b (+.f64 %116 %120)))) (approx %22 (*.f64 a (+.f64 b %120))) (approx %72 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) %116))))) (approx %15 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 %19 a)))))) (approx %22 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) %120))))) (approx b b) (approx %72 (*.f64 b (+.f64 a %145))) (approx %15 (*.f64 b (+.f64 a (+.f64 %145 %149)))) (approx %22 (*.f64 b (+.f64 a %149))) (approx %72 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) %145))))) (approx %15 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 %19 b)))))) (approx %22 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) %149))))) |
18 calls:
| Time | Variable | Point |
|---|---|---|
| 9.0ms | x | -inf |
| 1.0ms | x | inf |
| 1.0ms | y | inf |
| 1.0ms | t | inf |
| 1.0ms | z | inf |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 22 | 93 |
| 0 | 34 | 89 |
| 1 | 109 | 89 |
| 2 | 224 | 89 |
| 3 | 391 | 89 |
| 4 | 471 | 89 |
| 5 | 863 | 89 |
| 0 | 4048 | 89 |
| 0 | 4298 | 89 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (*.f64 x y) %7 = (*.f64 t z) %8 = (fma.f64 a b %7) %13 = (+ (+ (* x y) (* z t)) (* a b)) %15 = (fma.f64 a b %2) %17 = (*.f64 y x) %18 = (fma.f64 b a %17) %19 = (fma.f64 b a %7) x y %2 z t a b %7 %8 (approx %13 %8) %15 (approx %13 %15) %17 %18 %19 (fma.f64 t z %18) (fma.f64 x y %19) |
| Outputs |
|---|
%3 = (*.f64 y x) %4 = (neg.f64 %3) %5 = (*.f64 #s(literal -1 binary64) %4) %6 = (neg.f64 x) %7 = (neg.f64 y) %8 = (*.f64 %6 %7) %9 = (*.f64 %7 %6) %11 = (*.f64 #s(literal 1 binary64) %3) %12 = (*.f64 x y) %13 = (pow.f64 %3 #s(literal 1 binary64)) %15 = (/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64))) %16 = (neg.f64 %4) %21 = (*.f64 t z) %22 = (neg.f64 %21) %24 = (neg.f64 t) %25 = (neg.f64 z) %34 = (fma.f64 b a %21) %35 = (neg.f64 %34) %36 = (*.f64 #s(literal -1 binary64) %35) %37 = (*.f64 #s(literal 1 binary64) %34) %38 = (pow.f64 %34 #s(literal 1 binary64)) %40 = (/.f64 #s(literal 1 binary64) (pow.f64 %34 #s(literal -1 binary64))) %41 = (neg.f64 %35) %42 = (*.f64 b a) %43 = (fma.f64 #s(literal -1 binary64) %22 %42) %44 = (neg.f64 %42) %45 = (fma.f64 #s(literal -1 binary64) %44 %21) %46 = (neg.f64 b) %47 = (neg.f64 a) %48 = (fma.f64 %46 %47 %21) %49 = (fma.f64 %24 %25 %42) %50 = (fma.f64 %25 %24 %42) %51 = (fma.f64 %47 %46 %21) %52 = (fma.f64 #s(literal 1 binary64) %42 %21) %53 = (fma.f64 #s(literal 1 binary64) %21 %42) %54 = (*.f64 %21 #s(literal 1 binary64)) %55 = (fma.f64 %42 #s(literal 1 binary64) %54) %56 = (*.f64 %42 #s(literal 1 binary64)) %57 = (fma.f64 %21 #s(literal 1 binary64) %56) %58 = (fma.f64 a b %21) %59 = (fma.f64 t z %42) %60 = (fma.f64 z t %42) %61 = (-.f64 %42 %22) %62 = (-.f64 %21 %44) %63 = (+.f64 %56 %54) %64 = (+.f64 %54 %56) %65 = (+.f64 %42 %21) %66 = (+.f64 %21 %42) %71 = (+ (* b a) (+ (* t z) (* y x))) %72 = (approx %71 %34) %77 = (fma.f64 b a %3) %78 = (neg.f64 %77) %79 = (*.f64 #s(literal -1 binary64) %78) %80 = (*.f64 #s(literal 1 binary64) %77) %81 = (pow.f64 %77 #s(literal 1 binary64)) %83 = (/.f64 #s(literal 1 binary64) (pow.f64 %77 #s(literal -1 binary64))) %84 = (neg.f64 %78) %85 = (fma.f64 #s(literal -1 binary64) %4 %42) %86 = (fma.f64 #s(literal -1 binary64) %44 %3) %87 = (fma.f64 %46 %47 %3) %88 = (fma.f64 %6 %7 %42) %89 = (fma.f64 %7 %6 %42) %90 = (fma.f64 %47 %46 %3) %91 = (fma.f64 #s(literal 1 binary64) %42 %3) %92 = (fma.f64 #s(literal 1 binary64) %3 %42) %93 = (*.f64 %3 #s(literal 1 binary64)) %94 = (fma.f64 %42 #s(literal 1 binary64) %93) %95 = (fma.f64 a b %3) %96 = (fma.f64 %3 #s(literal 1 binary64) %56) %97 = (fma.f64 y x %42) %98 = (fma.f64 x y %42) %99 = (-.f64 %42 %4) %100 = (-.f64 %3 %44) %101 = (+.f64 %93 %56) %102 = (+.f64 %56 %93) %103 = (+.f64 %42 %3) %104 = (+.f64 %3 %42) %105 = (approx %71 %77) %110 = (fma.f64 t z %3) %111 = (fma.f64 b a %110) %112 = (neg.f64 %111) %113 = (*.f64 #s(literal -1 binary64) %112) %114 = (*.f64 #s(literal 1 binary64) %111) %115 = (pow.f64 %111 #s(literal 1 binary64)) %117 = (/.f64 #s(literal 1 binary64) (pow.f64 %111 #s(literal -1 binary64))) %118 = (neg.f64 %112) %119 = (neg.f64 %110) %120 = (fma.f64 #s(literal -1 binary64) %119 %42) %121 = (fma.f64 #s(literal -1 binary64) %4 %34) %122 = (fma.f64 #s(literal -1 binary64) %35 %3) %123 = (fma.f64 #s(literal -1 binary64) %22 %77) %124 = (fma.f64 #s(literal -1 binary64) %78 %21) %125 = (fma.f64 #s(literal -1 binary64) %44 %110) %126 = (fma.f64 %46 %47 %110) %127 = (fma.f64 %6 %7 %34) %128 = (fma.f64 %7 %6 %34) %129 = (fma.f64 %24 %25 %77) %130 = (fma.f64 %25 %24 %77) %131 = (fma.f64 %47 %46 %110) %132 = (fma.f64 #s(literal 1 binary64) %34 %3) %133 = (fma.f64 #s(literal 1 binary64) %77 %21) %134 = (fma.f64 #s(literal 1 binary64) %42 %110) %135 = (fma.f64 #s(literal 1 binary64) %110 %42) %136 = (fma.f64 #s(literal 1 binary64) %21 %77) %137 = (fma.f64 #s(literal 1 binary64) %3 %34) %138 = (fma.f64 %34 #s(literal 1 binary64) %93) %139 = (fma.f64 %77 #s(literal 1 binary64) %54) %140 = (*.f64 %110 #s(literal 1 binary64)) %141 = (fma.f64 %42 #s(literal 1 binary64) %140) %142 = (fma.f64 %110 #s(literal 1 binary64) %56) %143 = (*.f64 %77 #s(literal 1 binary64)) %144 = (fma.f64 %21 #s(literal 1 binary64) %143) %145 = (fma.f64 a b %110) %146 = (fma.f64 t z %77) %147 = (fma.f64 z t %77) %148 = (*.f64 %34 #s(literal 1 binary64)) %149 = (fma.f64 %3 #s(literal 1 binary64) %148) %150 = (fma.f64 y x %34) %151 = (fma.f64 x y %34) %152 = (-.f64 %34 %4) %153 = (-.f64 %77 %22) %154 = (-.f64 %42 %119) %155 = (-.f64 %110 %44) %156 = (-.f64 %21 %78) %157 = (-.f64 %3 %35) %158 = (+.f64 %93 %148) %159 = (+.f64 %140 %56) %160 = (+.f64 %143 %54) %161 = (+.f64 %148 %93) %162 = (+.f64 %56 %140) %163 = (+.f64 %54 %143) %164 = (+.f64 %34 %3) %165 = (+.f64 %77 %21) %166 = (+.f64 %42 %110) %167 = (+.f64 %110 %42) %168 = (+.f64 %21 %77) %169 = (+.f64 %3 %34) x y %5 %8 %9 %11 %3 %12 %13 %15 %16 z t a b (*.f64 #s(literal -1 binary64) %22) (*.f64 %24 %25) (*.f64 %25 %24) (*.f64 #s(literal 1 binary64) %21) %21 (*.f64 z t) (pow.f64 %21 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -1 binary64))) (neg.f64 %22) %36 %37 %38 %40 %41 %43 %45 %48 %49 %50 %51 %52 %53 %55 %57 %34 %58 %59 %60 %61 %62 %63 %64 %65 %66 (*.f64 #s(literal 1 binary64) %72) (pow.f64 %72 #s(literal 1 binary64)) %72 (/.f64 #s(literal 1 binary64) (pow.f64 %72 #s(literal -1 binary64))) %79 %80 %81 %83 %84 %85 %86 %87 %88 %89 %90 %91 %92 %94 %77 %95 %96 %97 %98 %99 %100 %101 %102 %103 %104 (*.f64 #s(literal 1 binary64) %105) (pow.f64 %105 #s(literal 1 binary64)) %105 (/.f64 #s(literal 1 binary64) (pow.f64 %105 #s(literal -1 binary64))) %5 %8 %9 %11 %3 %12 %13 %15 %16 %79 %80 %81 %83 %84 %85 %86 %87 %88 %89 %90 %91 %92 %94 %77 %95 %96 %97 %98 %99 %100 %101 %102 %103 %104 %36 %37 %38 %40 %41 %43 %45 %48 %49 %50 %51 %52 %53 %55 %57 %34 %58 %59 %60 %61 %62 %63 %64 %65 %66 %113 %114 %115 %117 %118 %120 %121 %122 %123 %124 %125 %126 %127 %128 %129 %130 %131 %132 %133 %134 %135 %136 %137 %138 %139 %141 %142 %144 %111 %145 %146 %147 %149 %150 %151 %152 %153 %154 %155 %156 %157 %158 %159 %160 %161 %162 %163 %164 %165 %166 %167 %168 %169 %113 %114 %115 %117 %118 %120 %121 %122 %123 %124 %125 %126 %127 %128 %129 %130 %131 %132 %133 %134 %135 %136 %137 %138 %139 %141 %142 %144 %111 %145 %146 %147 %149 %150 %151 %152 %153 %154 %155 %156 %157 %158 %159 %160 %161 %162 %163 %164 %165 %166 %167 %168 %169 |
Compiled 289 to 276 computations (4.5% saved)
Compiled 62 to 149 computations (-140.3% saved)
5 alts after pruning (3 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 59 | 3 | 62 |
| Fresh | 0 | 0 | 0 |
| Picked | 2 | 2 | 4 |
| Done | 0 | 0 | 0 |
| Total | 61 | 5 | 66 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 98.0% | (fma.f64 x y (fma.f64 b a (*.f64 t z))) |
| ▶ | 67.4% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 x y (*.f64 b a))) |
| ▶ | 68.3% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y))) |
| ✓ | 65.0% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z))) |
| ▶ | 33.8% | %2 = (* x y) %9 = (* a b) (approx (+ (+ %2 (* z t)) %9) (approx (+ %9 %2) (*.f64 a b))) |
Compiled 5 to 15 computations (-200.0% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 174 | 731 |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (*.f64 x y) %7 = (*.f64 a b) %8 = (fma.f64 t z %2) %9 = (*.f64 b a) %10 = (* a b) %11 = (* x y) %13 = (approx (+ %10 %11) %7) %16 = (+ (+ %11 (* z t)) %10) %18 = (fma.f64 x y %9) x y %2 z t a b %7 %8 %9 %13 (approx %16 %8) %18 (approx %16 %18) (approx %16 %13) |
| Outputs |
|---|
%5 = (* x y) %6 = (*.f64 x y) %11 = (+ (* t z) %5) %12 = (*.f64 t z) %14 = (fma.f64 t z %6) %18 = (* a b) %19 = (+ %18 %5) %20 = (*.f64 a b) %22 = (fma.f64 a b %6) %26 = (+ (+ %5 (* z t)) %18) %27 = (fma.f64 a b %12) %31 = (/.f64 %12 x) %35 = (/.f64 %20 x) %61 = (/.f64 %12 y) %65 = (/.f64 %20 y) %90 = (/.f64 %6 z) %111 = (/.f64 %6 t) %132 = (/.f64 %6 a) %153 = (/.f64 %6 b) (approx x #s(literal 0 binary64)) (approx x x) (approx %5 %6) (approx %11 %12) (approx %11 %14) (approx %19 %20) (approx %19 %22) (approx %26 %27) (approx %26 (fma.f64 a b %14)) (approx %11 (*.f64 x (+.f64 y %31))) (approx %19 (*.f64 x (+.f64 y %35))) (approx %26 (*.f64 x (+.f64 y (+.f64 %35 %31)))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) %31))))) (approx %19 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) %35))))) (approx %26 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 %27 x)))))) (approx y y) (approx %11 (*.f64 y (+.f64 x %61))) (approx %19 (*.f64 y (+.f64 x %65))) (approx %26 (*.f64 y (+.f64 x (+.f64 %65 %61)))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) %61))))) (approx %19 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) %65))))) (approx %26 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %27 y)))))) (approx z z) (approx %11 (*.f64 z (+.f64 t %90))) (approx %26 (*.f64 z (+.f64 t (+.f64 (/.f64 %20 z) %90)))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) %90))))) (approx %26 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 %22 z)))))) (approx t t) (approx %11 (*.f64 t (+.f64 z %111))) (approx %26 (*.f64 t (+.f64 z (+.f64 (/.f64 %20 t) %111)))) (approx %11 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) %111))))) (approx %26 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 %22 t)))))) (approx a a) (approx %19 (*.f64 a (+.f64 b %132))) (approx %26 (*.f64 a (+.f64 b (+.f64 (/.f64 %12 a) %132)))) (approx %19 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) %132))))) (approx %26 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 %14 a)))))) (approx b b) (approx %19 (*.f64 b (+.f64 a %153))) (approx %26 (*.f64 b (+.f64 a (+.f64 (/.f64 %12 b) %153)))) (approx %19 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) %153))))) (approx %26 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 %14 b)))))) |
18 calls:
| Time | Variable | Point |
|---|---|---|
| 4.0ms | x | inf |
| 2.0ms | t | inf |
| 2.0ms | y | inf |
| 2.0ms | b | inf |
| 2.0ms | a | inf |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 97 |
| 0 | 28 | 92 |
| 1 | 83 | 92 |
| 2 | 189 | 92 |
| 3 | 370 | 92 |
| 4 | 480 | 92 |
| 5 | 876 | 92 |
| 0 | 4067 | 92 |
| 0 | 4337 | 89 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%2 = (*.f64 x y) %7 = (*.f64 a b) %8 = (fma.f64 t z %2) %9 = (*.f64 b a) %10 = (* a b) %11 = (* x y) %13 = (approx (+ %10 %11) %7) %16 = (+ (+ %11 (* z t)) %10) %18 = (fma.f64 x y %9) x y %2 z t a b %7 %8 %9 %13 (approx %16 %8) %18 (approx %16 %18) (approx %16 %13) |
| Outputs |
|---|
%3 = (neg.f64 x) %4 = (*.f64 %3 y) %6 = (neg.f64 y) %10 = (*.f64 y x) %21 = (neg.f64 b) %22 = (*.f64 %21 a) %23 = (*.f64 #s(literal -1 binary64) %22) %24 = (neg.f64 a) %25 = (*.f64 %21 %24) %26 = (*.f64 %24 %21) %27 = (*.f64 b a) %28 = (*.f64 #s(literal 1 binary64) %27) %29 = (*.f64 a b) %30 = (pow.f64 %27 #s(literal 1 binary64)) %32 = (/.f64 #s(literal 1 binary64) (pow.f64 %27 #s(literal -1 binary64))) %33 = (neg.f64 %22) %34 = (fma.f64 t z %10) %35 = (neg.f64 %34) %42 = (neg.f64 z) %43 = (*.f64 %42 t) %45 = (*.f64 t z) %48 = (neg.f64 t) %54 = (*.f64 %10 #s(literal 1 binary64)) %56 = (*.f64 %45 #s(literal 1 binary64)) %67 = (* b a) %68 = (* y x) %70 = (approx (+ %67 %68) %27) %77 = (+ %67 (+ (* t z) %68)) %78 = (approx %77 %34) %83 = (fma.f64 b a %10) %84 = (neg.f64 %83) %100 = (*.f64 %27 #s(literal 1 binary64)) %111 = (approx %77 %83) %116 = (approx %77 %70) x y (*.f64 #s(literal -1 binary64) %4) (*.f64 %6 %3) (*.f64 %3 %6) (*.f64 #s(literal 1 binary64) %10) %10 (*.f64 x y) (pow.f64 %10 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %10 #s(literal -1 binary64))) (neg.f64 %4) z t a b %23 %25 %26 %28 %27 %29 %30 %32 %33 (*.f64 #s(literal -1 binary64) %35) (*.f64 #s(literal 1 binary64) %34) (pow.f64 %34 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %34 #s(literal -1 binary64))) (neg.f64 %35) (fma.f64 #s(literal -1 binary64) %43 %10) (fma.f64 #s(literal -1 binary64) %4 %45) (fma.f64 %6 %3 %45) (fma.f64 %48 %42 %10) (fma.f64 %42 %48 %10) (fma.f64 %3 %6 %45) (fma.f64 #s(literal 1 binary64) %45 %10) (fma.f64 #s(literal 1 binary64) %10 %45) (fma.f64 %45 #s(literal 1 binary64) %54) (fma.f64 %10 #s(literal 1 binary64) %56) %34 (fma.f64 z t %10) (fma.f64 y x %45) (fma.f64 x y %45) (-.f64 %45 %4) (-.f64 %10 %43) (+.f64 %56 %54) (+.f64 %54 %56) (+.f64 %45 %10) (+.f64 %10 %45) %23 %25 %26 %28 %27 %29 %30 %32 %33 (*.f64 #s(literal 1 binary64) %70) (pow.f64 %70 #s(literal 1 binary64)) %70 (/.f64 #s(literal 1 binary64) (pow.f64 %70 #s(literal -1 binary64))) (*.f64 #s(literal 1 binary64) %78) (pow.f64 %78 #s(literal 1 binary64)) %78 (/.f64 #s(literal 1 binary64) (pow.f64 %78 #s(literal -1 binary64))) (*.f64 #s(literal -1 binary64) %84) (*.f64 #s(literal 1 binary64) %83) (pow.f64 %83 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %83 #s(literal -1 binary64))) (neg.f64 %84) (fma.f64 #s(literal -1 binary64) %4 %27) (fma.f64 #s(literal -1 binary64) %22 %10) (fma.f64 %6 %3 %27) (fma.f64 %27 #s(literal 1 binary64) %54) (fma.f64 %21 %24 %10) (fma.f64 %24 %21 %10) (fma.f64 %3 %6 %27) (fma.f64 #s(literal 1 binary64) %27 %10) (fma.f64 #s(literal 1 binary64) %10 %27) (fma.f64 %10 #s(literal 1 binary64) %100) %83 (fma.f64 a b %10) (fma.f64 y x %27) (fma.f64 x y %27) (-.f64 %27 %4) (-.f64 %10 %22) (+.f64 %54 %100) (+.f64 %100 %54) (+.f64 %27 %10) (+.f64 %10 %27) (*.f64 #s(literal 1 binary64) %111) (pow.f64 %111 #s(literal 1 binary64)) %111 (/.f64 #s(literal 1 binary64) (pow.f64 %111 #s(literal -1 binary64))) (*.f64 #s(literal 1 binary64) %116) (pow.f64 %116 #s(literal 1 binary64)) %116 (/.f64 #s(literal 1 binary64) (pow.f64 %116 #s(literal -1 binary64))) |
Compiled 141 to 224 computations (-58.9% saved)
Compiled 48 to 124 computations (-158.3% saved)
6 alts after pruning (2 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 46 | 2 | 48 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 3 | 3 |
| Done | 1 | 1 | 2 |
| Total | 47 | 6 | 53 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 68.6% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 x y (*.f64 t z))) |
| ✓ | 67.4% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 x y (*.f64 b a))) |
| ✓ | 68.3% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y))) |
| ✓ | 65.0% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z))) |
| ▶ | 34.4% | %2 = (* x y) (approx (+ (+ %2 (* z t)) (* a b)) (approx (+ (* t z) %2) (*.f64 t z))) |
| ✓ | 33.8% | %2 = (* x y) %9 = (* a b) (approx (+ (+ %2 (* z t)) %9) (approx (+ %9 %2) (*.f64 a b))) |
Compiled 6 to 14 computations (-133.3% saved)
| Inputs |
|---|
| Outputs |
|---|
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 141 | 588 |
| 1× | iter-limit |
| Inputs |
|---|
%4 = (*.f64 t z) %5 = (fma.f64 x y %4) %7 = (* x y) %9 = (approx (+ (* t z) %7) %4) %15 = (+ (+ %7 (* z t)) (* a b)) x y z t %4 %5 %9 (approx %15 %5) (approx %15 %9) |
| Outputs |
|---|
%5 = (* x y) %9 = (+ %5 (* t z)) %10 = (*.f64 t z) %12 = (*.f64 x y) %13 = (fma.f64 t z %12) %20 = (+ (+ %5 (* z t)) (* a b)) %21 = (fma.f64 a b %10) %26 = (/.f64 %10 x) %30 = (*.f64 a b) %49 = (/.f64 %10 y) %70 = (fma.f64 a b %12) %72 = (/.f64 %12 z) %93 = (/.f64 %12 t) (approx x #s(literal 0 binary64)) (approx x x) (approx %9 %10) (approx %9 %13) (approx %20 %21) (approx %20 (fma.f64 a b %13)) (approx %9 %12) (approx %9 (*.f64 x (+.f64 y %26))) (approx %20 (*.f64 x (+.f64 y (+.f64 (/.f64 %30 x) %26)))) (approx %9 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) %26))))) (approx %20 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 %21 x)))))) (approx y y) (approx %9 (*.f64 y (+.f64 x %49))) (approx %20 (*.f64 y (+.f64 x (+.f64 (/.f64 %30 y) %49)))) (approx %9 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) %49))))) (approx %20 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %21 y)))))) (approx z z) (approx %20 %70) (approx %9 (*.f64 z (+.f64 t %72))) (approx %20 (*.f64 z (+.f64 t (+.f64 (/.f64 %30 z) %72)))) (approx %9 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) %72))))) (approx %20 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 %70 z)))))) (approx t t) (approx %9 (*.f64 t (+.f64 z %93))) (approx %20 (*.f64 t (+.f64 z (+.f64 (/.f64 %30 t) %93)))) (approx %9 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) %93))))) (approx %20 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 %70 t)))))) (approx %20 %30) (approx %20 (*.f64 a (+.f64 b (+.f64 (/.f64 %10 a) (/.f64 %12 a))))) (approx %20 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 %13 a)))))) (approx %20 (*.f64 b (+.f64 a (+.f64 (/.f64 %10 b) (/.f64 %12 b))))) (approx %20 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 %13 b)))))) |
18 calls:
| Time | Variable | Point |
|---|---|---|
| 4.0ms | x | 0 |
| 1.0ms | t | inf |
| 1.0ms | z | inf |
| 1.0ms | x | inf |
| 1.0ms | y | inf |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 18 | 65 |
| 0 | 20 | 61 |
| 1 | 67 | 61 |
| 2 | 165 | 61 |
| 3 | 346 | 61 |
| 4 | 463 | 61 |
| 5 | 857 | 61 |
| 0 | 4045 | 61 |
| 0 | 4301 | 59 |
| 1× | iter-limit |
| 1× | iter-limit |
| 1× | node-limit |
| 1× | iter-limit |
| Inputs |
|---|
%4 = (*.f64 t z) %5 = (fma.f64 x y %4) %7 = (* x y) %9 = (approx (+ (* t z) %7) %4) %15 = (+ (+ %7 (* z t)) (* a b)) x y z t %4 %5 %9 (approx %15 %5) (approx %15 %9) |
| Outputs |
|---|
%5 = (*.f64 t z) %6 = (neg.f64 %5) %8 = (neg.f64 z) %9 = (neg.f64 t) %19 = (*.f64 y x) %20 = (fma.f64 t z %19) %21 = (neg.f64 %20) %28 = (neg.f64 x) %29 = (*.f64 %28 y) %32 = (neg.f64 y) %39 = (*.f64 %5 #s(literal 1 binary64)) %41 = (*.f64 %19 #s(literal 1 binary64)) %52 = (* y x) %53 = (* t z) %55 = (approx (+ %52 %53) %5) %64 = (+ (+ (* b a) %52) %53) %65 = (approx %64 %20) %70 = (approx %64 %55) x y z t (*.f64 #s(literal -1 binary64) %6) (*.f64 %8 %9) (*.f64 %9 %8) (*.f64 #s(literal 1 binary64) %5) %5 (*.f64 z t) (pow.f64 %5 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %5 #s(literal -1 binary64))) (neg.f64 %6) (*.f64 #s(literal -1 binary64) %21) (*.f64 #s(literal 1 binary64) %20) (pow.f64 %20 #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 %20 #s(literal -1 binary64))) (neg.f64 %21) (fma.f64 #s(literal -1 binary64) %29 %5) (fma.f64 #s(literal -1 binary64) %6 %19) (fma.f64 %32 %28 %5) (fma.f64 %8 %9 %19) (fma.f64 %9 %8 %19) (fma.f64 %28 %32 %5) (fma.f64 #s(literal 1 binary64) %19 %5) (fma.f64 #s(literal 1 binary64) %5 %19) (fma.f64 %19 #s(literal 1 binary64) %39) (fma.f64 %5 #s(literal 1 binary64) %41) %20 (fma.f64 z t %19) (fma.f64 y x %5) (fma.f64 x y %5) (-.f64 %19 %6) (-.f64 %5 %29) (+.f64 %41 %39) (+.f64 %39 %41) (+.f64 %19 %5) (+.f64 %5 %19) (*.f64 #s(literal 1 binary64) %55) (pow.f64 %55 #s(literal 1 binary64)) %55 (/.f64 #s(literal 1 binary64) (pow.f64 %55 #s(literal -1 binary64))) (*.f64 #s(literal 1 binary64) %65) (pow.f64 %65 #s(literal 1 binary64)) %65 (/.f64 #s(literal 1 binary64) (pow.f64 %65 #s(literal -1 binary64))) (*.f64 #s(literal 1 binary64) %70) (pow.f64 %70 #s(literal 1 binary64)) %70 (/.f64 #s(literal 1 binary64) (pow.f64 %70 #s(literal -1 binary64))) |
Compiled 82 to 157 computations (-91.5% saved)
Compiled 36 to 100 computations (-177.8% saved)
7 alts after pruning (1 fresh and 6 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 35 | 1 | 36 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 2 | 2 |
| Done | 0 | 4 | 4 |
| Total | 35 | 7 | 42 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 68.6% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 x y (*.f64 t z))) |
| ✓ | 67.4% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 x y (*.f64 b a))) |
| ✓ | 68.3% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y))) |
| ✓ | 65.0% | (approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z))) |
| 37.2% | %2 = (* x y) (approx (+ (+ %2 (* z t)) (* a b)) (approx (+ %2 (* t z)) (*.f64 x y))) | |
| ✓ | 34.4% | %2 = (* x y) (approx (+ (+ %2 (* z t)) (* a b)) (approx (+ (* t z) %2) (*.f64 t z))) |
| ✓ | 33.8% | %2 = (* x y) %9 = (* a b) (approx (+ (+ %2 (* z t)) %9) (approx (+ %9 %2) (*.f64 a b))) |
Compiled 7 to 14 computations (-100.0% saved)
Total 50.8b remaining (42.9%)
Threshold costs 0.0b (0.0%)
| 23.6b | 39.3% |
| 8.7b | 59.0% |
| 7.0b | 64.1% |
| 5.5b | 73.0% |
| 4.9b | 75.3% |
| Inputs |
|---|
%2 = (* x y) %9 = (* a b) (approx (+ (+ %2 (* z t)) %9) (approx (+ %9 %2) (*.f64 a b))) |
| Outputs |
|---|
%2 = (* x y) %9 = (* a b) (approx (+ (+ %2 (* z t)) %9) (approx (+ %9 %2) (*.f64 a b))) |
| Inputs |
|---|
%2 = (* x y) %9 = (* a b) %10 = (+ (+ %2 (* z t)) %9) (approx %10 (approx (+ %9 %2) (*.f64 a b))) (approx %10 (approx (+ (* t z) %2) (*.f64 t z))) |
| Outputs |
|---|
%2 = (* x y) %9 = (* a b) %10 = (+ (+ %2 (* z t)) %9) %14 = (approx %10 (approx (+ %9 %2) (*.f64 a b))) %14 (approx %10 (approx (+ (* t z) %2) (*.f64 t z))) %14 |
| Inputs |
|---|
%2 = (* x y) %9 = (* a b) %10 = (+ (+ %2 (* z t)) %9) %15 = (* t z) (approx %10 (approx (+ %9 %2) (*.f64 a b))) (approx %10 (approx (+ %15 %2) (*.f64 t z))) (approx %10 (approx (+ %2 %15) (*.f64 x y))) |
| Outputs |
|---|
%2 = (* x y) %9 = (* a b) %10 = (+ (+ %2 (* z t)) %9) %11 = (* t z) %15 = (approx %10 (approx (+ %2 %11) (*.f64 x y))) %15 (approx %10 (approx (+ %11 %2) (*.f64 t z))) (approx %10 (approx (+ %9 %2) (*.f64 a b))) %15 |
| Inputs |
|---|
%2 = (* x y) %9 = (* a b) %10 = (+ (+ %2 (* z t)) %9) %15 = (* t z) %17 = (*.f64 t z) (approx %10 (approx (+ %9 %2) (*.f64 a b))) (approx %10 (approx (+ %15 %2) %17)) (approx %10 (approx (+ %2 %15) (*.f64 x y))) (approx %10 (fma.f64 a b %17)) |
| Outputs |
|---|
%2 = (* x y) %10 = (+ (+ %2 (* z t)) (* a b)) %15 = (approx %10 (approx (+ %2 (* t z)) (*.f64 x y))) %15 (approx %10 (fma.f64 a b (*.f64 t z))) %15 |
| Inputs |
|---|
%2 = (* x y) %9 = (* a b) %10 = (+ (+ %2 (* z t)) %9) %15 = (* t z) %17 = (*.f64 t z) %21 = (*.f64 x y) (approx %10 (approx (+ %9 %2) (*.f64 a b))) (approx %10 (approx (+ %15 %2) %17)) (approx %10 (approx (+ %2 %15) %21)) (approx %10 (fma.f64 a b %17)) (approx %10 (fma.f64 a b %21)) |
| Outputs |
|---|
%10 = (+ (+ (* x y) (* z t)) (* a b)) %13 = (approx %10 (fma.f64 a b (*.f64 x y))) %13 (approx %10 (fma.f64 a b (*.f64 t z))) %13 |
| Inputs |
|---|
%2 = (* x y) %9 = (* a b) %10 = (+ (+ %2 (* z t)) %9) %15 = (* t z) %17 = (*.f64 t z) %21 = (*.f64 x y) (approx %10 (approx (+ %9 %2) (*.f64 a b))) (approx %10 (approx (+ %15 %2) %17)) (approx %10 (approx (+ %2 %15) %21)) (approx %10 (fma.f64 a b %17)) (approx %10 (fma.f64 a b %21)) (approx %10 (fma.f64 t z %21)) |
| Outputs |
|---|
%10 = (+ (+ (* x y) (* z t)) (* a b)) %11 = (*.f64 x y) %13 = (approx %10 (fma.f64 a b %11)) %13 (approx %10 (fma.f64 t z %11)) %13 |
| Inputs |
|---|
%2 = (* x y) %9 = (* a b) %10 = (+ (+ %2 (* z t)) %9) %15 = (* t z) %17 = (*.f64 t z) %21 = (*.f64 x y) (approx %10 (approx (+ %9 %2) (*.f64 a b))) (approx %10 (approx (+ %15 %2) %17)) (approx %10 (approx (+ %2 %15) %21)) (approx %10 (fma.f64 a b %17)) (approx %10 (fma.f64 a b %21)) (approx %10 (fma.f64 t z %21)) (approx %10 (fma.f64 x y (*.f64 b a))) (approx %10 (fma.f64 x y %17)) (fma.f64 t z (fma.f64 b a (*.f64 y x))) |
| Outputs |
|---|
(fma.f64 t z (fma.f64 b a (*.f64 y x))) |
11 calls:
| 11.0ms | z |
| 8.0ms | a |
| 7.0ms | (*.f64 z t) |
| 6.0ms | b |
| 6.0ms | x |
| Accuracy | Segments | Branch |
|---|---|---|
| 33.8% | 1 | b |
| 33.8% | 1 | a |
| 33.8% | 1 | t |
| 33.8% | 1 | z |
| 33.8% | 1 | y |
| 33.8% | 1 | x |
| 33.8% | 1 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 33.8% | 1 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 33.8% | 1 | (*.f64 x y) |
| 33.8% | 1 | (*.f64 z t) |
| 33.8% | 1 | (*.f64 a b) |
Compiled 22 to 34 computations (-54.5% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 2.775661460252527e-9 | 2.3783056306150883e-6 |
| 0.0ms | -4.971985096274256e+29 | -38794493367901190.0 |
Compiled 1 to 3 computations (-200.0% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 6.0ms | 13947105432914612.0 | 1.0815771173130394e+20 |
| 6.0ms | -1.2267604479272654e+132 | -2.788108205575371e+130 |
| 6.0ms | 240× | 0 | valid |
Compiled 18 to 33 computations (-83.3% saved)
Mul: 0.0ms (0.0% of total, 0.0 MiB)Add: 0.0ms (0.0% of total, 0.0 MiB)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 3.0ms | 2.0197568208790766e+163 | 2.8482330048721024e+163 |
| 8.0ms | -2.4922992158218926e+170 | -8.208530573544229e+151 |
| 5.0ms | 224× | 0 | valid |
Compiled 18 to 31 computations (-72.2% saved)
Mul: 0.0ms (0.0% of total, 0.0 MiB)Add: 0.0ms (0.0% of total, 0.0 MiB)| 3× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 8.0ms | 0.0012058005614327806 | 2871993526109.9824 |
| 6.0ms | 8.621526126813077e-287 | 8.08490615979891e-286 |
| 6.0ms | -8.208530573544229e+151 | -5.088982181687206e+150 |
| 10.0ms | 368× | 0 | valid |
Compiled 20 to 31 computations (-55.0% saved)
Mul: 0.0ms (0.0% of total, 0.0 MiB)Add: 0.0ms (0.0% of total, 0.0 MiB)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 4.0ms | 213.3575534921273 | 792.5967641503662 |
| 6.0ms | -1.581414972194181e+149 | -4.504082115372152e+147 |
| 5.0ms | 192× | 0 | valid |
Compiled 18 to 25 computations (-38.9% saved)
Mul: 0.0ms (0.0% of total, 0.0 MiB)Add: 0.0ms (0.0% of total, 0.0 MiB)| 1× | fuel |
Compiled 7 to 48 computations (-585.7% saved)
Compiled 50 to 593 computations (-1086.0% saved)
| Allocated | Percent | Phase |
|---|---|---|
| 623.5 MiB | 34.1% | sample |
| 284.0 MiB | 15.5% | rewrite |
| 266.4 MiB | 14.6% | preprocess |
| 216.3 MiB | 11.8% | series |
| 129.0 MiB | 7.1% | regimes |
| 108.5 MiB | 5.9% | reconstruct |
| 76.4 MiB | 4.2% | bsearch |
| 55.5 MiB | 3.0% | eval |
| 47.5 MiB | 2.6% | derivations |
| 18.1 MiB | 1.0% | prune |
| 1.8 MiB | 0.1% | analyze |
| 0.1 MiB | 0.0% | start |
| 0.0 MiB | 0.0% | end |
| 1 827.0 MiB | 100.0% | total |
Loading profile data...