Examples.Basics.BasicTests:f1 from sbv-4.4

Time bar (total: 728.0ms)

start0.0ms (0.0%)

analyze1.0ms (0.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0.0%0.0%99.9%0.1%0.0%0.0%0.0%0
100.0%99.9%0.0%0.1%0.0%0.0%0.0%1
Compiler

Compiled 9 to 7 computations (22.2% saved)

sample226.0ms (31.1%)

Samples
156.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 7.0ms
Mul: 3.0ms (40.7% of total, 0.0 MiB)
Add: 3.0ms (40.7% of total, 0.0 MiB)
Sub: 2.0ms (27.1% of total, 0.0 MiB)
Bogosity

preprocess33.0ms (4.5%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01842
17342
220142
363342
4148042
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (+.f64 x y) (-.f64 x y))
Symmetry

(abs x)

(abs y)

Compiler

Compiled 2 to 10 computations (-400.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series12.0ms (1.6%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0116438
Stop Event
iter-limit
Counts
5 → 28
Calls
Call 1
Inputs
%2 = (+.f64 x y)
%3 = (-.f64 x y)
x
y
%2
%3
(*.f64 %2 %3)
Outputs
%5 = (+ x y)
%9 = (- x y)
%11 = (*.f64 #s(literal -1 binary64) y)
%15 = (* %5 %9)
%17 = (pow.f64 y #s(literal 2 binary64))
%20 = (+.f64 y %11)
%29 = (/.f64 y x)
%33 = (*.f64 #s(literal -1 binary64) %29)
%37 = (pow.f64 x #s(literal 2 binary64))
%67 = (+.f64 x (*.f64 #s(literal -1 binary64) x))
%74 = (/.f64 x y)
%91 = (*.f64 #s(literal -1 binary64) %74)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 y)
(approx %5 (+.f64 x y))
(approx %9 %11)
(approx %9 (-.f64 x y))
(approx %15 (*.f64 #s(literal -1 binary64) %17))
(approx %15 (fma.f64 #s(literal -1 binary64) %17 (*.f64 x %20)))
(approx %15 (fma.f64 #s(literal -1 binary64) %17 (*.f64 x (+.f64 x %20))))
(approx %5 (*.f64 x (+.f64 #s(literal 1 binary64) %29)))
(approx %9 (*.f64 x (+.f64 #s(literal 1 binary64) %33)))
(approx %15 %37)
(approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %29 %29))))
(approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %29 (fma.f64 #s(literal -1 binary64) (/.f64 %17 %37) %29)))))
(approx %5 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %33 #s(literal 1 binary64)))))
(approx %9 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %29 #s(literal 1 binary64)))))
(approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) %20 (/.f64 %17 x)) x)))))
(approx %9 (+.f64 x %11))
(approx %15 (fma.f64 y %67 %37))
(approx %15 (fma.f64 y (+.f64 x (fma.f64 #s(literal -1 binary64) x %11)) %37))
(approx %5 (*.f64 y (+.f64 #s(literal 1 binary64) %74)))
(approx %9 (*.f64 y (-.f64 %74 #s(literal 1 binary64))))
(approx %15 (*.f64 %17 (-.f64 (fma.f64 #s(literal -1 binary64) %74 %74) #s(literal 1 binary64))))
(approx %15 (*.f64 %17 (-.f64 (fma.f64 #s(literal -1 binary64) %74 (+.f64 %74 (/.f64 %37 %17))) #s(literal 1 binary64))))
(approx %5 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 %91 #s(literal 1 binary64)))))
(approx %9 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 #s(literal 1 binary64) %91))))
(approx %15 (*.f64 %17 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 %67 y)) #s(literal 1 binary64))))
(approx %15 (*.f64 %17 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %37 y)))) y)) #s(literal 1 binary64))))
Calls

6 calls:

TimeVariablePoint
1.0ms
x
-inf
1.0ms
x
inf
1.0ms
y
inf
1.0ms
y
-inf
1.0ms
x
0

rewrite130.0ms (17.8%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0515
0815
12415
27915
333315
4110215
5345915
0412715
0450015
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
5 → 217
Calls
Call 1
Inputs
%2 = (+.f64 x y)
%3 = (-.f64 x y)
x
y
%2
%3
(*.f64 %2 %3)
Outputs
%3 = (+.f64 y x)
%9 = (neg.f64 %3)
%11 = (neg.f64 x)
%13 = (neg.f64 y)
%16 = (-.f64 x y)
%21 = (-.f64 y x)
%27 = (fabs.f64 x)
%28 = (fabs.f64 y)
%29 = (+.f64 %27 %28)
%30 = (neg.f64 %29)
%31 = (-.f64 %28 %27)
%33 = (-.f64 %27 %28)
%35 = (+.f64 %27 y)
%36 = (-.f64 %27 y)
%39 = (+.f64 %28 x)
%40 = (neg.f64 %39)
%41 = (-.f64 %28 x)
%43 = (-.f64 x %28)
%49 = (neg.f64 %27)
%50 = (-.f64 %49 y)
%51 = (-.f64 y %27)
%56 = (*.f64 %16 %3)
%60 = (*.f64 x x)
%62 = (*.f64 y y)
%71 = (neg.f64 %28)
%72 = (sqrt.f64 %28)
%73 = (*.f64 %71 %72)
%74 = (+.f64 %16 y)
%75 = (*.f64 x %74)
%78 = (sqrt.f64 %27)
%79 = (*.f64 %27 %78)
%80 = (-.f64 x %3)
%81 = (*.f64 y %80)
%83 = (*.f64 %13 y)
%85 = (*.f64 %30 %49)
%87 = (*.f64 %72 %71)
%90 = (*.f64 %78 %27)
%93 = (*.f64 %33 %28)
%95 = (*.f64 %33 %27)
%97 = (*.f64 %35 %13)
%99 = (*.f64 %35 %27)
%101 = (*.f64 %36 y)
%103 = (*.f64 %36 %27)
%105 = (*.f64 %40 %11)
%107 = (*.f64 %40 %28)
%109 = (*.f64 %43 x)
%111 = (*.f64 %43 %28)
%113 = (*.f64 %29 %71)
%115 = (*.f64 %39 %71)
%117 = (*.f64 %41 %71)
%119 = (*.f64 %50 %49)
%121 = (*.f64 %51 %49)
%127 = (*.f64 %9 y)
%129 = (*.f64 %3 x)
%131 = (*.f64 %28 %33)
%133 = (*.f64 %13 %35)
%135 = (*.f64 y %36)
%137 = (*.f64 %71 %29)
%141 = (*.f64 %49 %30)
%143 = (*.f64 %27 %33)
%145 = (*.f64 %11 %40)
%147 = (*.f64 x %43)
%151 = (*.f64 %28 %40)
%153 = (*.f64 %71 %41)
%158 = (*.f64 %16 y)
%160 = (*.f64 %16 x)
%161 = (-.f64 %160 %62)
%163 = (fma.f64 %16 y %60)
%173 = (*.f64 %27 %35)
%175 = (*.f64 %49 %51)
%183 = (*.f64 y x)
%185 = (*.f64 %11 y)
%204 = (*.f64 %27 %36)
%206 = (*.f64 %49 %50)
%223 = (*.f64 %28 %43)
%225 = (*.f64 %71 %39)
%233 = (*.f64 %11 x)
%242 = (*.f64 %3 y)
%245 = (*.f64 %21 x)
%254 = (*.f64 %21 y)
%257 = (*.f64 %9 x)
x
y
(*.f64 #s(literal 1 binary64) %3)
(pow.f64 %3 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64)))
(neg.f64 %9)
(-.f64 y %11)
(-.f64 x %13)
%3
(+.f64 x y)
(*.f64 #s(literal 1 binary64) %16)
(pow.f64 %16 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %16 #s(literal -1 binary64)))
(neg.f64 %21)
(fma.f64 #s(literal 1 binary64) %13 x)
(-.f64 %13 %11)
%16
(+.f64 %13 x)
(+.f64 x %13)
(*.f64 %30 %31)
(*.f64 %33 %29)
(*.f64 %35 %36)
(*.f64 %36 %35)
(*.f64 %40 %41)
(*.f64 %43 %39)
(*.f64 %31 %30)
(*.f64 %29 %33)
(*.f64 %39 %43)
(*.f64 %41 %40)
(*.f64 %50 %51)
(*.f64 %51 %50)
(*.f64 %9 %21)
(*.f64 %21 %9)
(*.f64 #s(literal 1 binary64) %56)
%56
(*.f64 %3 %16)
(pow.f64 %56 #s(literal 1 binary64))
(/.f64 (-.f64 (*.f64 %60 %60) (*.f64 %62 %62)) (fma.f64 x x %62))
(/.f64 #s(literal 1 binary64) (pow.f64 %56 #s(literal -1 binary64)))
(neg.f64 (*.f64 %21 %3))
(fma.f64 %73 %72 %75)
(fma.f64 %73 %72 %60)
(fma.f64 %79 %78 %81)
(fma.f64 %79 %78 %83)
(fma.f64 %30 %28 %85)
(fma.f64 %72 %87 %75)
(fma.f64 %72 %87 %60)
(fma.f64 %78 %90 %81)
(fma.f64 %78 %90 %83)
(fma.f64 %33 %27 %93)
(fma.f64 %33 %28 %95)
(fma.f64 %35 %27 %97)
(fma.f64 %35 %13 %99)
(fma.f64 %36 %27 %101)
(fma.f64 %36 y %103)
(fma.f64 %40 %28 %105)
(fma.f64 %40 %11 %107)
(fma.f64 %43 %28 %109)
(fma.f64 %43 x %111)
(fma.f64 %29 %27 %113)
(fma.f64 %39 x %115)
(fma.f64 %41 %11 %117)
(fma.f64 %50 y %119)
(fma.f64 %51 %13 %121)
(fma.f64 %49 %49 %81)
(fma.f64 %49 %49 %83)
(fma.f64 %71 %28 %75)
(fma.f64 %71 %28 %60)
(fma.f64 %9 %11 %127)
(fma.f64 %9 y %129)
(fma.f64 %27 %33 %131)
(fma.f64 %27 %35 %133)
(fma.f64 %27 %36 %135)
(fma.f64 %27 %29 %137)
(fma.f64 %27 %27 %81)
(fma.f64 %27 %27 %83)
(fma.f64 %28 %30 %141)
(fma.f64 %28 %33 %143)
(fma.f64 %28 %40 %145)
(fma.f64 %28 %43 %147)
(fma.f64 %28 %71 %75)
(fma.f64 %28 %71 %60)
(fma.f64 %11 %40 %151)
(fma.f64 %11 %41 %153)
(fma.f64 %11 %9 %127)
(fma.f64 %11 %11 %81)
(fma.f64 %11 %11 %83)
(fma.f64 %11 %21 %158)
(fma.f64 %11 %13 %161)
(fma.f64 %11 y %163)
(fma.f64 %21 %11 %158)
(fma.f64 %21 %13 %160)
(fma.f64 %13 (+.f64 x %21) %60)
(fma.f64 %13 (+.f64 %21 x) %60)
(fma.f64 %13 (-.f64 x %16) %60)
(fma.f64 %13 %35 %173)
(fma.f64 %13 %51 %175)
(fma.f64 %13 %11 %161)
(fma.f64 %13 %21 %160)
(fma.f64 %13 %3 %129)
(fma.f64 %13 y %75)
(fma.f64 %13 y %60)
(fma.f64 %13 x %163)
(fma.f64 #s(literal 1 binary64) %183 %161)
(fma.f64 #s(literal 1 binary64) %185 %163)
(fma.f64 #s(literal 1 binary64) %158 %160)
(fma.f64 #s(literal 1 binary64) %127 %129)
(fma.f64 #s(literal 1 binary64) %160 %158)
(fma.f64 #s(literal 1 binary64) %129 %127)
(fma.f64 #s(literal 1 binary64) %83 %75)
(fma.f64 #s(literal 1 binary64) %83 %60)
(fma.f64 #s(literal 1 binary64) %60 %81)
(fma.f64 #s(literal 1 binary64) %60 %83)
(fma.f64 %16 y %160)
(fma.f64 %16 x %158)
(fma.f64 %3 %13 %129)
(fma.f64 %3 x %127)
(fma.f64 y (+.f64 x %9) %60)
(fma.f64 y (+.f64 %9 x) %60)
(fma.f64 y %80 %60)
(fma.f64 y %36 %204)
(fma.f64 y %50 %206)
(fma.f64 y %9 %129)
(fma.f64 y %11 %163)
(fma.f64 y %13 %75)
(fma.f64 y %13 %60)
(fma.f64 y %16 %160)
(fma.f64 y x %161)
(fma.f64 x (+.f64 %3 %13) %83)
(fma.f64 x %74 %83)
(fma.f64 x (+.f64 %13 %3) %83)
(fma.f64 x (+.f64 y %16) %83)
(fma.f64 x (-.f64 y %21) %83)
(fma.f64 x %43 %223)
(fma.f64 x %39 %225)
(fma.f64 x %13 %163)
(fma.f64 x %16 %158)
(fma.f64 x %3 %127)
(fma.f64 x y %161)
(fma.f64 x x %81)
(fma.f64 x x %83)
(-.f64 %81 %233)
(-.f64 %75 %62)
(-.f64 %163 %183)
(-.f64 %161 %185)
(-.f64 %183 (-.f64 %233 %127))
(-.f64 %183 (-.f64 %62 %160))
(-.f64 %183 (fma.f64 %11 x %242))
(-.f64 %183 (fma.f64 y y %245))
(-.f64 %183 (neg.f64 %161))
(-.f64 %185 (-.f64 %233 %158))
(-.f64 %185 (-.f64 %62 %129))
(-.f64 %185 (fma.f64 %11 x %254))
(-.f64 %185 (fma.f64 y y %257))
(-.f64 %185 (neg.f64 %163))
(-.f64 %158 %245)
(-.f64 %127 %257)
(-.f64 %160 %254)
(-.f64 %129 %242)
(-.f64 %83 (-.f64 %185 %160))
(-.f64 %83 (-.f64 %183 %129))
(-.f64 %83 (fma.f64 y x %257))
(-.f64 %83 (fma.f64 %11 y %245))
(-.f64 %83 (neg.f64 %75))
(-.f64 %83 %233)
(-.f64 %60 (-.f64 %185 %127))
(-.f64 %60 (-.f64 %183 %158))
(-.f64 %60 (fma.f64 %11 y %242))
(-.f64 %60 (fma.f64 y x %254))
(-.f64 %60 (neg.f64 %81))
(-.f64 %60 %62)
(+.f64 (*.f64 %30 %28) %85)
(+.f64 %95 %93)
(+.f64 %93 %95)
(+.f64 %99 %97)
(+.f64 %97 %99)
(+.f64 %103 %101)
(+.f64 %101 %103)
(+.f64 %107 %105)
(+.f64 %105 %107)
(+.f64 %111 %109)
(+.f64 %109 %111)
(+.f64 (*.f64 %29 %27) %113)
(+.f64 (*.f64 %39 x) %115)
(+.f64 (*.f64 %41 %11) %117)
(+.f64 (*.f64 %50 y) %119)
(+.f64 (*.f64 %51 %13) %121)
(+.f64 (*.f64 %28 %30) %141)
(+.f64 %143 %131)
(+.f64 %131 %143)
(+.f64 %173 %133)
(+.f64 %133 %173)
(+.f64 %204 %135)
(+.f64 %135 %204)
(+.f64 %151 %145)
(+.f64 %145 %151)
(+.f64 %223 %147)
(+.f64 %147 %223)
(+.f64 (*.f64 %27 %29) %137)
(+.f64 (*.f64 x %39) %225)
(+.f64 (*.f64 %11 %41) %153)
(+.f64 (*.f64 y %50) %206)
(+.f64 (*.f64 %13 %51) %175)
(+.f64 %81 %60)
(+.f64 %75 %83)
(+.f64 %163 %185)
(+.f64 %161 %183)
(+.f64 %183 %161)
(+.f64 %185 %163)
(+.f64 %158 %160)
(+.f64 %127 %129)
(+.f64 %160 %158)
(+.f64 %129 %127)
(+.f64 %83 %75)
(+.f64 %83 %60)
(+.f64 %60 %81)
(+.f64 %60 %83)

reconstruct21.0ms (2.9%)

Counts
245 → 59
Compiler

Compiled 245 to 423 computations (-72.7% saved)

eval5.0ms (0.7%)

Compiler

Compiled 58 to 162 computations (-179.3% saved)

prune1.0ms (0.2%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New57158
Fresh000
Picked011
Done000
Total57259
Accuracy
100.0%
Counts
59 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (+.f64 x y) (-.f64 x y))
60.8%
(*.f64 (approx (+ x y) y) (-.f64 x y))
Compiler

Compiled 2 to 6 computations (-200.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series9.0ms (1.2%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0116438
Stop Event
iter-limit
Counts
5 → 28
Calls
Call 1
Inputs
%2 = (-.f64 x y)
%4 = (approx (+ x y) y)
x
y
%2
%4
(*.f64 %4 %2)
Outputs
%5 = (- x y)
%7 = (*.f64 #s(literal -1 binary64) y)
%11 = (+ x y)
%15 = (* %11 %5)
%17 = (pow.f64 y #s(literal 2 binary64))
%20 = (+.f64 y %7)
%29 = (/.f64 y x)
%30 = (*.f64 #s(literal -1 binary64) %29)
%37 = (pow.f64 x #s(literal 2 binary64))
%67 = (+.f64 x (*.f64 #s(literal -1 binary64) x))
%74 = (/.f64 x y)
%91 = (*.f64 #s(literal -1 binary64) %74)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 %7)
(approx %5 (-.f64 x y))
(approx %11 y)
(approx %11 (+.f64 x y))
(approx %15 (*.f64 #s(literal -1 binary64) %17))
(approx %15 (fma.f64 #s(literal -1 binary64) %17 (*.f64 x %20)))
(approx %15 (fma.f64 #s(literal -1 binary64) %17 (*.f64 x (+.f64 x %20))))
(approx %5 (*.f64 x (+.f64 #s(literal 1 binary64) %30)))
(approx %11 (*.f64 x (+.f64 #s(literal 1 binary64) %29)))
(approx %15 %37)
(approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %29 %29))))
(approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %29 (fma.f64 #s(literal -1 binary64) (/.f64 %17 %37) %29)))))
(approx %5 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %29 #s(literal 1 binary64)))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %30 #s(literal 1 binary64)))))
(approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) %20 (/.f64 %17 x)) x)))))
(approx %5 (+.f64 x %7))
(approx %15 (fma.f64 y %67 %37))
(approx %15 (fma.f64 y (+.f64 x (fma.f64 #s(literal -1 binary64) x %7)) %37))
(approx %5 (*.f64 y (-.f64 %74 #s(literal 1 binary64))))
(approx %11 (*.f64 y (+.f64 #s(literal 1 binary64) %74)))
(approx %15 (*.f64 %17 (-.f64 (fma.f64 #s(literal -1 binary64) %74 %74) #s(literal 1 binary64))))
(approx %15 (*.f64 %17 (-.f64 (fma.f64 #s(literal -1 binary64) %74 (+.f64 %74 (/.f64 %37 %17))) #s(literal 1 binary64))))
(approx %5 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 #s(literal 1 binary64) %91))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 %91 #s(literal 1 binary64)))))
(approx %15 (*.f64 %17 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 %67 y)) #s(literal 1 binary64))))
(approx %15 (*.f64 %17 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %37 y)))) y)) #s(literal 1 binary64))))
Calls

6 calls:

TimeVariablePoint
1.0ms
x
-inf
1.0ms
y
inf
1.0ms
x
inf
1.0ms
y
-inf
0.0ms
x
0

rewrite70.0ms (9.6%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0619
0819
12219
25119
311619
424319
567119
0403219
0419019
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
5 → 52
Calls
Call 1
Inputs
%2 = (-.f64 x y)
%4 = (approx (+ x y) y)
x
y
%2
%4
(*.f64 %4 %2)
Outputs
%3 = (-.f64 y x)
%6 = (-.f64 x y)
%13 = (neg.f64 y)
%14 = (*.f64 x #s(literal 1 binary64))
%17 = (*.f64 %13 #s(literal 1 binary64))
%19 = (neg.f64 x)
%26 = (approx (+ y x) y)
%27 = (neg.f64 %26)
%34 = (*.f64 %3 %26)
%38 = (*.f64 %26 %6)
%45 = (*.f64 %27 x)
%46 = (*.f64 %13 %26)
%48 = (*.f64 %26 y)
%49 = (*.f64 %26 x)
%53 = (*.f64 %49 #s(literal 1 binary64))
%55 = (*.f64 %46 #s(literal 1 binary64))
x
y
(*.f64 #s(literal -1 binary64) %3)
(*.f64 #s(literal 1 binary64) %6)
(pow.f64 %6 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %6 #s(literal -1 binary64)))
(neg.f64 %3)
(fma.f64 #s(literal -1 binary64) y x)
(fma.f64 %13 #s(literal 1 binary64) %14)
(fma.f64 #s(literal 1 binary64) %13 x)
(fma.f64 x #s(literal 1 binary64) %17)
(-.f64 %13 %19)
%6
(+.f64 %17 %14)
(+.f64 %14 %17)
(+.f64 %13 x)
(+.f64 x %13)
(*.f64 #s(literal -1 binary64) %27)
(*.f64 #s(literal 1 binary64) %26)
(pow.f64 %26 #s(literal 1 binary64))
%26
(/.f64 #s(literal 1 binary64) (pow.f64 %26 #s(literal -1 binary64)))
(neg.f64 %27)
(*.f64 #s(literal -1 binary64) %34)
(*.f64 %27 %3)
(*.f64 %3 %27)
(*.f64 #s(literal 1 binary64) %38)
%38
(*.f64 %6 %26)
(pow.f64 %38 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %38 #s(literal -1 binary64)))
(neg.f64 %34)
(fma.f64 #s(literal -1 binary64) %45 %46)
(fma.f64 #s(literal -1 binary64) %48 %49)
(fma.f64 %27 %19 %46)
(fma.f64 %27 y %49)
(fma.f64 %46 #s(literal 1 binary64) %53)
(fma.f64 %49 #s(literal 1 binary64) %55)
(fma.f64 %19 %27 %46)
(fma.f64 %13 %26 %49)
(fma.f64 #s(literal 1 binary64) %46 %49)
(fma.f64 #s(literal 1 binary64) %49 %46)
(fma.f64 %26 %13 %49)
(fma.f64 %26 x %46)
(fma.f64 y %27 %49)
(fma.f64 x %26 %46)
(-.f64 %46 %45)
(-.f64 %49 %48)
(+.f64 %55 %53)
(+.f64 %53 %55)
(+.f64 %46 %49)
(+.f64 %49 %46)

reconstruct6.0ms (0.9%)

Counts
80 → 29
Compiler

Compiled 80 to 147 computations (-83.8% saved)

eval3.0ms (0.4%)

Compiler

Compiled 27 to 89 computations (-229.6% saved)

prune1.0ms (0.2%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New26127
Fresh000
Picked011
Done011
Total26329
Accuracy
100.0%
Counts
29 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (+.f64 x y) (-.f64 x y))
53.0%
(*.f64 (approx (+ x y) y) (-.f64 (approx x #s(literal 0 binary64)) y))
60.8%
(*.f64 (approx (+ x y) y) (-.f64 x y))
Compiler

Compiled 3 to 9 computations (-200.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series7.0ms (1.0%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0116438
Stop Event
iter-limit
Counts
7 → 28
Calls
Call 1
Inputs
%3 = (approx x #s(literal 0 binary64))
%5 = (approx (+ x y) y)
%6 = (-.f64 %3 y)
x
y
#s(literal 0 binary64)
%3
%5
%6
(*.f64 %5 %6)
Outputs
%5 = (+ x y)
%9 = (- x y)
%11 = (*.f64 #s(literal -1 binary64) y)
%15 = (* %5 %9)
%17 = (pow.f64 y #s(literal 2 binary64))
%20 = (+.f64 y %11)
%29 = (/.f64 y x)
%33 = (*.f64 #s(literal -1 binary64) %29)
%37 = (pow.f64 x #s(literal 2 binary64))
%67 = (+.f64 x (*.f64 #s(literal -1 binary64) x))
%74 = (/.f64 x y)
%91 = (*.f64 #s(literal -1 binary64) %74)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 y)
(approx %5 (+.f64 x y))
(approx %9 %11)
(approx %9 (-.f64 x y))
(approx %15 (*.f64 #s(literal -1 binary64) %17))
(approx %15 (fma.f64 #s(literal -1 binary64) %17 (*.f64 x %20)))
(approx %15 (fma.f64 #s(literal -1 binary64) %17 (*.f64 x (+.f64 x %20))))
(approx %5 (*.f64 x (+.f64 #s(literal 1 binary64) %29)))
(approx %9 (*.f64 x (+.f64 #s(literal 1 binary64) %33)))
(approx %15 %37)
(approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %29 %29))))
(approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %29 (fma.f64 #s(literal -1 binary64) (/.f64 %17 %37) %29)))))
(approx %5 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %33 #s(literal 1 binary64)))))
(approx %9 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %29 #s(literal 1 binary64)))))
(approx %15 (*.f64 %37 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) %20 (/.f64 %17 x)) x)))))
(approx %9 (+.f64 x %11))
(approx %15 (fma.f64 y %67 %37))
(approx %15 (fma.f64 y (+.f64 x (fma.f64 #s(literal -1 binary64) x %11)) %37))
(approx %5 (*.f64 y (+.f64 #s(literal 1 binary64) %74)))
(approx %9 (*.f64 y (-.f64 %74 #s(literal 1 binary64))))
(approx %15 (*.f64 %17 (-.f64 (fma.f64 #s(literal -1 binary64) %74 %74) #s(literal 1 binary64))))
(approx %15 (*.f64 %17 (-.f64 (fma.f64 #s(literal -1 binary64) %74 (+.f64 %74 (/.f64 %37 %17))) #s(literal 1 binary64))))
(approx %5 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 %91 #s(literal 1 binary64)))))
(approx %9 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 #s(literal 1 binary64) %91))))
(approx %15 (*.f64 %17 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 %67 y)) #s(literal 1 binary64))))
(approx %15 (*.f64 %17 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %37 y)))) y)) #s(literal 1 binary64))))
Calls

6 calls:

TimeVariablePoint
1.0ms
x
-inf
1.0ms
x
inf
1.0ms
y
inf
1.0ms
y
-inf
0.0ms
x
0

rewrite89.0ms (12.3%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0827
01027
12727
26127
316027
469027
0476327
0488327
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
7 → 69
Calls
Call 1
Inputs
%3 = (approx x #s(literal 0 binary64))
%5 = (approx (+ x y) y)
%6 = (-.f64 %3 y)
x
y
#s(literal 0 binary64)
%3
%5
%6
(*.f64 %5 %6)
Outputs
%4 = (approx x #s(literal 0 binary64))
%10 = (neg.f64 %4)
%13 = (approx (+ y x) y)
%18 = (-.f64 %4 y)
%23 = (-.f64 y %4)
%25 = (neg.f64 y)
%31 = (neg.f64 %13)
%34 = (*.f64 %18 %13)
%42 = (*.f64 %25 %13)
%44 = (*.f64 %10 %31)
%46 = (*.f64 %31 %10)
%48 = (*.f64 %10 %13)
%49 = (neg.f64 %48)
%51 = (*.f64 %13 %4)
%63 = (*.f64 (neg.f64 %31) %25)
x
y
#s(literal 0 binary64)
(*.f64 #s(literal 1 binary64) %4)
(pow.f64 %4 #s(literal 1 binary64))
%4
(/.f64 #s(literal 1 binary64) (pow.f64 %4 #s(literal -1 binary64)))
(neg.f64 %10)
(*.f64 #s(literal 1 binary64) %13)
(pow.f64 %13 #s(literal 1 binary64))
%13
(/.f64 #s(literal 1 binary64) (pow.f64 %13 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %18)
(pow.f64 %18 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %18 #s(literal -1 binary64)))
(neg.f64 %23)
(fma.f64 #s(literal 1 binary64) %25 %4)
(fma.f64 #s(literal 1 binary64) %4 %25)
(-.f64 %25 %10)
%18
(+.f64 %25 %4)
(+.f64 %4 %25)
(*.f64 %31 %23)
(*.f64 %23 %31)
(*.f64 #s(literal 1 binary64) %34)
%34
(*.f64 %13 %18)
(pow.f64 %34 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %34 #s(literal -1 binary64)))
(neg.f64 (*.f64 %23 %13))
(fma.f64 %31 %10 %42)
(fma.f64 %31 y %44)
(fma.f64 %31 y %46)
(fma.f64 %31 y %49)
(fma.f64 %31 y %51)
(fma.f64 %10 %31 %42)
(fma.f64 %25 %13 %44)
(fma.f64 %25 %13 %46)
(fma.f64 %25 %13 %49)
(fma.f64 %25 %13 %51)
(fma.f64 #s(literal 1 binary64) %42 %44)
(fma.f64 #s(literal 1 binary64) %42 %46)
(fma.f64 #s(literal 1 binary64) %42 %49)
(fma.f64 #s(literal 1 binary64) %42 %51)
(fma.f64 #s(literal 1 binary64) %51 %63)
(fma.f64 #s(literal 1 binary64) %51 %42)
(fma.f64 %13 %25 %44)
(fma.f64 %13 %25 %46)
(fma.f64 %13 %25 %49)
(fma.f64 %13 %25 %51)
(fma.f64 %13 %4 %63)
(fma.f64 %13 %4 %42)
(fma.f64 %4 %13 %63)
(fma.f64 %4 %13 %42)
(fma.f64 y %31 %44)
(fma.f64 y %31 %46)
(fma.f64 y %31 %49)
(fma.f64 y %31 %51)
(-.f64 %42 (*.f64 %31 %4))
(-.f64 %42 %48)
(-.f64 %51 (*.f64 %13 y))
(+.f64 %44 %42)
(+.f64 %46 %42)
(+.f64 %42 %44)
(+.f64 %42 %46)
(+.f64 %42 %49)
(+.f64 %42 %51)
(+.f64 %51 %63)
(+.f64 %51 %42)

reconstruct8.0ms (1.1%)

Counts
97 → 27
Compiler

Compiled 97 to 166 computations (-71.1% saved)

eval2.0ms (0.3%)

Compiler

Compiled 21 to 80 computations (-281.0% saved)

prune1.0ms (0.2%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New21021
Fresh000
Picked011
Done022
Total21324
Accuracy
100.0%
Counts
24 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (+.f64 x y) (-.f64 x y))
53.0%
(*.f64 (approx (+ x y) y) (-.f64 (approx x #s(literal 0 binary64)) y))
60.8%
(*.f64 (approx (+ x y) y) (-.f64 x y))
Compiler

Compiled 3 to 9 computations (-200.0% saved)

regimes7.0ms (0.9%)

Accuracy

Total -0.0b remaining (-0.0%)

Threshold costs -0.0b (-0.0%)

0.0b0%
-0.0b-0.0%

Counts
1 → 1
3 → 1
Calls
Call 1
Inputs
(*.f64 (approx (+ x y) y) (-.f64 x y))
Outputs
(*.f64 (approx (+ x y) y) (-.f64 x y))
Call 2
Inputs
%3 = (approx (+ x y) y)
%4 = (-.f64 x y)
(*.f64 %3 %4)
(*.f64 %3 (-.f64 (approx x #s(literal 0 binary64)) y))
(*.f64 (+.f64 x y) %4)
Outputs
(*.f64 (+.f64 x y) (-.f64 x y))
Calls

3 calls:

2.0ms
x
2.0ms
y
2.0ms
(*.f64 (+.f64 x y) (-.f64 x y))
Results
AccuracySegmentsBranch
60.8%1
y
60.8%1
x
60.8%1
(*.f64 (+.f64 x y) (-.f64 x y))
Compiler

Compiled 6 to 14 computations (-133.3% saved)

bsearch0.0ms (0.0%)

bsearch0.0ms (0.0%)

derivations1.0ms (0.1%)

Stop Event
done
Compiler

Compiled 2 to 6 computations (-200.0% saved)

preprocess11.0ms (1.5%)

Symmetry

(abs x)

(abs y)

Compiler

Compiled 11 to 50 computations (-354.5% saved)

end0.0ms (0.0%)

gc84ms (11.5%)

Allocations
AllocatedPercentPhase
391.6 MiB46.5%sample
267.8 MiB31.8%rewrite
55.3 MiB6.6%reconstruct
46.3 MiB5.5%series
39.2 MiB4.7%preprocess
18.3 MiB2.2%eval
13.6 MiB1.6%regimes
8.3 MiB1.0%prune
1.4 MiB0.2%derivations
0.7 MiB0.1%analyze
0.1 MiB0.0%bsearch
0.1 MiB0.0%start
0.0 MiB0.0%end
842.6 MiB100.0%total

Profiling

Loading profile data...