Examples.Basics.BasicTests:f3 from sbv-4.4

Time bar (total: 1.1s)

start0.0ms (0.0%)

analyze0.0ms (0.0%)

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 6 computations (33.3% saved)

sample210.0ms (19.0%)

Samples
189.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 5.0ms
Mul: 3.0ms (54.9% of total, 0.0 MiB)
Add: 3.0ms (54.9% of total, 0.0 MiB)
Bogosity

preprocess32.0ms (2.9%)

Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01436
19032
233332
3112232
4281632
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
%2 = (+.f64 x y)
(*.f64 %2 %2)
Symmetry

(sort x y)

Compiler

Compiled 2 to 8 computations (-300.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series11.0ms (1.0%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087306
Stop Event
iter-limit
Counts
4 → 20
Calls
Call 1
Inputs
%2 = (+.f64 x y)
x
y
%2
(*.f64 %2 %2)
Outputs
%5 = (+ x y)
%9 = (* %5 %5)
%11 = (pow.f64 y #s(literal 2 binary64))
%13 = (*.f64 x y)
%21 = (/.f64 y x)
%25 = (pow.f64 x #s(literal 2 binary64))
%57 = (/.f64 x y)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 y)
(approx %5 (+.f64 x y))
(approx %9 %11)
(approx %9 (fma.f64 #s(literal 2 binary64) %13 %11))
(approx %9 (fma.f64 x (+.f64 x (*.f64 #s(literal 2 binary64) y)) %11))
(approx %5 (*.f64 x (+.f64 #s(literal 1 binary64) %21)))
(approx %9 %25)
(approx %9 (*.f64 %25 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %21))))
(approx %9 (*.f64 %25 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %21 (/.f64 %11 %25)))))
(approx %5 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1 binary64) %21) #s(literal 1 binary64)))))
(approx %9 (*.f64 %25 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -2 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 %11 x))) x)))))
(approx %9 (fma.f64 #s(literal 2 binary64) %13 %25))
(approx %9 (fma.f64 y (+.f64 y (*.f64 #s(literal 2 binary64) x)) %25))
(approx %5 (*.f64 y (+.f64 #s(literal 1 binary64) %57)))
(approx %9 (*.f64 %11 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %57))))
(approx %9 (*.f64 %11 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %57 (/.f64 %25 %11)))))
(approx %5 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %57) #s(literal 1 binary64)))))
(approx %9 (*.f64 %11 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -2 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %25 y))) y)))))
Calls

6 calls:

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

rewrite81.0ms (7.4%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0412
0610
12610
210310
342910
4151810
0404410
0427910
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
4 → 215
Calls
Call 1
Inputs
%2 = (+.f64 x y)
x
y
%2
(*.f64 %2 %2)
Outputs
%3 = (+.f64 y x)
%9 = (neg.f64 %3)
%11 = (neg.f64 x)
%13 = (neg.f64 y)
%16 = (fabs.f64 %3)
%17 = (sqrt.f64 %16)
%18 = (*.f64 %17 %16)
%21 = (neg.f64 %16)
%25 = (*.f64 %3 %3)
%31 = (*.f64 %25 %25)
%42 = (*.f64 x x)
%43 = (fma.f64 %3 y %42)
%44 = (+.f64 x x)
%45 = (*.f64 %44 y)
%51 = (*.f64 (*.f64 #s(literal -2 binary64) y) x)
%64 = (*.f64 %9 %3)
%66 = (fabs.f64 y)
%67 = (neg.f64 %66)
%68 = (neg.f64 %67)
%69 = (fma.f64 #s(literal 2 binary64) y x)
%70 = (*.f64 x %69)
%72 = (fabs.f64 x)
%73 = (neg.f64 %72)
%74 = (neg.f64 %73)
%75 = (fma.f64 #s(literal 2 binary64) x y)
%76 = (*.f64 y %75)
%78 = (*.f64 y x)
%79 = (*.f64 %78 #s(literal 4 binary64))
%80 = (*.f64 y y)
%81 = (fma.f64 x x %80)
%83 = (fma.f64 y y %42)
%85 = (*.f64 %11 x)
%86 = (-.f64 %80 %85)
%88 = (*.f64 %13 y)
%89 = (-.f64 %42 %88)
%91 = (*.f64 #s(literal 2 binary64) %11)
%96 = (*.f64 #s(literal -2 binary64) %13)
%101 = (*.f64 #s(literal -2 binary64) x)
%106 = (*.f64 #s(literal 1/2 binary64) %78)
%111 = (*.f64 #s(literal 2 binary64) %13)
%116 = (neg.f64 %44)
%127 = (+.f64 y y)
%136 = (*.f64 %11 y)
%147 = (*.f64 #s(literal 4 binary64) %78)
%155 = (*.f64 %3 y)
%171 = (*.f64 %3 x)
%227 = (-.f64 %136 %155)
%231 = (-.f64 %136 %171)
%233 = (neg.f64 %70)
%236 = (-.f64 %85 %155)
%238 = (-.f64 %88 %171)
%240 = (*.f64 %11 %3)
%241 = (fma.f64 %13 y %240)
%243 = (*.f64 %13 %3)
%244 = (fma.f64 %11 x %243)
%246 = (neg.f64 %43)
%280 = (*.f64 %9 %21)
%283 = (*.f64 %3 %21)
%286 = (*.f64 %9 %16)
%289 = (*.f64 %3 %16)
%292 = (*.f64 %21 %9)
%295 = (*.f64 %16 %9)
%298 = (*.f64 %21 %3)
%301 = (*.f64 %16 %3)
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 %18 %17)
(*.f64 %17 %18)
(*.f64 %21 %21)
(*.f64 %16 %16)
(*.f64 %9 %9)
(*.f64 #s(literal 1 binary64) %25)
%25
(pow.f64 (pow.f64 %3 #s(literal 8 binary64)) #s(literal 1/4 binary64))
(pow.f64 %31 #s(literal 1/2 binary64))
(pow.f64 %17 #s(literal 4 binary64))
(pow.f64 %21 #s(literal 2 binary64))
(pow.f64 %16 #s(literal 2 binary64))
(pow.f64 %9 #s(literal 2 binary64))
(pow.f64 %25 #s(literal 1 binary64))
(pow.f64 %3 #s(literal 2 binary64))
(/.f64 (fma.f64 %43 #s(literal 2 binary64) %45) #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 %43 #s(literal 2 binary64)) %51) #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %16 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %9 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %25 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -2 binary64)))
(neg.f64 %64)
(fma.f64 %68 %68 %70)
(fma.f64 %74 %74 %76)
(fma.f64 %79 #s(literal 1/2 binary64) %81)
(fma.f64 %79 #s(literal 1/2 binary64) %83)
(fma.f64 %79 #s(literal 1/2 binary64) %86)
(fma.f64 %79 #s(literal 1/2 binary64) %89)
(fma.f64 %91 %13 %81)
(fma.f64 %91 %13 %83)
(fma.f64 %91 %13 %86)
(fma.f64 %91 %13 %89)
(fma.f64 %96 x %81)
(fma.f64 %96 x %83)
(fma.f64 %96 x %86)
(fma.f64 %96 x %89)
(fma.f64 %101 %13 %81)
(fma.f64 %101 %13 %83)
(fma.f64 %101 %13 %86)
(fma.f64 %101 %13 %89)
(fma.f64 %106 #s(literal 4 binary64) %81)
(fma.f64 %106 #s(literal 4 binary64) %83)
(fma.f64 %106 #s(literal 4 binary64) %86)
(fma.f64 %106 #s(literal 4 binary64) %89)
(fma.f64 %111 %11 %81)
(fma.f64 %111 %11 %83)
(fma.f64 %111 %11 %86)
(fma.f64 %111 %11 %89)
(fma.f64 %116 %13 %81)
(fma.f64 %116 %13 %83)
(fma.f64 %116 %13 %86)
(fma.f64 %116 %13 %89)
(fma.f64 %67 %67 %70)
(fma.f64 %73 %73 %76)
(fma.f64 %44 y %81)
(fma.f64 %44 y %83)
(fma.f64 %44 y %86)
(fma.f64 %44 y %89)
(fma.f64 %127 x %81)
(fma.f64 %127 x %83)
(fma.f64 %127 x %86)
(fma.f64 %127 x %89)
(fma.f64 #s(literal 4 binary64) %106 %81)
(fma.f64 #s(literal 4 binary64) %106 %83)
(fma.f64 #s(literal 4 binary64) %106 %86)
(fma.f64 #s(literal 4 binary64) %106 %89)
(fma.f64 #s(literal -2 binary64) %136 %81)
(fma.f64 #s(literal -2 binary64) %136 %83)
(fma.f64 #s(literal -2 binary64) %136 %86)
(fma.f64 #s(literal -2 binary64) %136 %89)
(fma.f64 %136 #s(literal -2 binary64) %81)
(fma.f64 %136 #s(literal -2 binary64) %83)
(fma.f64 %136 #s(literal -2 binary64) %86)
(fma.f64 %136 #s(literal -2 binary64) %89)
(fma.f64 %72 %72 %76)
(fma.f64 %66 %66 %70)
(fma.f64 #s(literal 1/2 binary64) %147 %81)
(fma.f64 #s(literal 1/2 binary64) %147 %83)
(fma.f64 #s(literal 1/2 binary64) %147 %86)
(fma.f64 #s(literal 1/2 binary64) %147 %89)
(fma.f64 #s(literal 1/2 binary64) %45 %43)
(fma.f64 %11 %11 %76)
(fma.f64 %11 %13 %43)
(fma.f64 %11 %9 %155)
(fma.f64 %45 #s(literal 1/2 binary64) %43)
(fma.f64 %45 #s(literal 1 binary64) %81)
(fma.f64 %45 #s(literal 1 binary64) %83)
(fma.f64 %45 #s(literal 1 binary64) %86)
(fma.f64 %45 #s(literal 1 binary64) %89)
(fma.f64 %78 #s(literal 1 binary64) %43)
(fma.f64 %78 #s(literal 2 binary64) %81)
(fma.f64 %78 #s(literal 2 binary64) %83)
(fma.f64 %78 #s(literal 2 binary64) %86)
(fma.f64 %78 #s(literal 2 binary64) %89)
(fma.f64 %13 (-.f64 %13 %44) %42)
(fma.f64 %13 %11 %43)
(fma.f64 %13 %13 %70)
(fma.f64 %13 %9 %171)
(fma.f64 %9 %11 %155)
(fma.f64 %9 %13 %171)
(fma.f64 #s(literal 1 binary64) %43 %78)
(fma.f64 #s(literal 1 binary64) %42 %76)
(fma.f64 #s(literal 1 binary64) %80 %70)
(fma.f64 #s(literal 1 binary64) %76 %42)
(fma.f64 #s(literal 1 binary64) %45 %81)
(fma.f64 #s(literal 1 binary64) %45 %83)
(fma.f64 #s(literal 1 binary64) %45 %86)
(fma.f64 #s(literal 1 binary64) %45 %89)
(fma.f64 #s(literal 1 binary64) %78 %43)
(fma.f64 #s(literal 1 binary64) %70 %80)
(fma.f64 #s(literal 1 binary64) %155 %171)
(fma.f64 #s(literal 1 binary64) %171 %155)
(fma.f64 #s(literal 2 binary64) %106 %43)
(fma.f64 #s(literal 2 binary64) %78 %81)
(fma.f64 #s(literal 2 binary64) %78 %83)
(fma.f64 #s(literal 2 binary64) %78 %86)
(fma.f64 #s(literal 2 binary64) %78 %89)
(fma.f64 %3 y %171)
(fma.f64 %3 x %155)
(fma.f64 y (+.f64 %3 x) %42)
(fma.f64 y (+.f64 x %3) %42)
(fma.f64 y (+.f64 y %44) %42)
(fma.f64 y %75 %42)
(fma.f64 y (-.f64 x %9) %42)
(fma.f64 y %44 %81)
(fma.f64 y %44 %83)
(fma.f64 y %44 %86)
(fma.f64 y %44 %89)
(fma.f64 y %3 %171)
(fma.f64 y y %70)
(fma.f64 y x %43)
(fma.f64 x (+.f64 x %127) %80)
(fma.f64 x %69 %80)
(fma.f64 x (+.f64 y %3) %80)
(fma.f64 x (+.f64 %3 y) %80)
(fma.f64 x %127 %81)
(fma.f64 x %127 %83)
(fma.f64 x %127 %86)
(fma.f64 x %127 %89)
(fma.f64 x %3 %155)
(fma.f64 x y %43)
(fma.f64 x x %76)
(-.f64 %81 %51)
(-.f64 %83 %51)
(-.f64 %43 %136)
(-.f64 %42 %227)
(-.f64 %42 (neg.f64 %76))
(-.f64 %80 %231)
(-.f64 %80 %233)
(-.f64 %76 %85)
(-.f64 %78 %236)
(-.f64 %78 %238)
(-.f64 %78 %241)
(-.f64 %78 %244)
(-.f64 %78 %246)
(-.f64 %70 %88)
(-.f64 %155 %240)
(-.f64 %171 %243)
(sqrt.f64 %31)
(fabs.f64 (-.f64 %42 (-.f64 %243 %78)))
(fabs.f64 (-.f64 %78 (-.f64 %243 %42)))
(fabs.f64 (-.f64 %51 %81))
(fabs.f64 (-.f64 %51 %83))
(fabs.f64 (-.f64 %136 %43))
(fabs.f64 (-.f64 %227 %42))
(fabs.f64 (-.f64 %231 %80))
(fabs.f64 (-.f64 %233 %80))
(fabs.f64 (-.f64 %236 %78))
(fabs.f64 (-.f64 %238 %78))
(fabs.f64 (-.f64 %241 %78))
(fabs.f64 (-.f64 %244 %78))
(fabs.f64 (-.f64 %246 %78))
(fabs.f64 (neg.f64 %280))
(fabs.f64 (neg.f64 %283))
(fabs.f64 (neg.f64 %286))
(fabs.f64 (neg.f64 %289))
(fabs.f64 (neg.f64 %292))
(fabs.f64 (neg.f64 %295))
(fabs.f64 (neg.f64 %298))
(fabs.f64 (neg.f64 %301))
(fabs.f64 %280)
(fabs.f64 %283)
(fabs.f64 %286)
(fabs.f64 %289)
(fabs.f64 %292)
(fabs.f64 %295)
(fabs.f64 %298)
(fabs.f64 %301)
(fabs.f64 %64)
(fabs.f64 %25)
(+.f64 %81 %45)
(+.f64 %83 %45)
(+.f64 %43 %78)
(+.f64 %42 %76)
(+.f64 %80 %70)
(+.f64 %76 %42)
(+.f64 %45 %81)
(+.f64 %45 %83)
(+.f64 %45 %86)
(+.f64 %45 %89)
(+.f64 %78 %43)
(+.f64 %70 %80)
(+.f64 %155 %171)
(+.f64 %171 %155)

reconstruct23.0ms (2.1%)

Counts
235 → 52
Compiler

Compiled 235 to 382 computations (-62.6% saved)

eval4.0ms (0.4%)

Compiler

Compiled 51 to 135 computations (-164.7% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New49251
Fresh000
Picked011
Done000
Total49352
Accuracy
100.0%
Counts
52 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
96.9%
(fma.f64 x x (*.f64 y (fma.f64 #s(literal 2 binary64) x y)))
100.0%
%5 = (+.f64 x y)
(*.f64 %5 %5)
57.4%
%3 = (approx (+ x y) y)
(*.f64 %3 %3)
Compiler

Compiled 3 to 9 computations (-200.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series12.0ms (1.1%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0114461
Stop Event
iter-limit
Counts
8 → 30
Calls
Call 1
Inputs
%3 = (approx (+ x y) y)
%5 = (fma.f64 #s(literal 2 binary64) x y)
%6 = (*.f64 y %5)
x
y
%3
#s(literal 2 binary64)
%5
%6
(fma.f64 x x %6)
(*.f64 %3 %3)
Outputs
%5 = (+ x y)
%11 = (+ (* 2 x) y)
%13 = (*.f64 #s(literal 2 binary64) x)
%14 = (+.f64 y %13)
%16 = (* y %11)
%17 = (pow.f64 y #s(literal 2 binary64))
%19 = (*.f64 x y)
%23 = (+ (* x x) %16)
%29 = (/.f64 y x)
%39 = (/.f64 %17 x)
%43 = (pow.f64 x #s(literal 2 binary64))
%55 = (*.f64 #s(literal -1 binary64) %29)
%66 = (fma.f64 #s(literal -2 binary64) y (*.f64 #s(literal -1 binary64) %39))
%81 = (/.f64 x y)
%86 = (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %81))
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 y)
(approx %5 (+.f64 x y))
(approx %11 %14)
(approx %16 %17)
(approx %16 (fma.f64 #s(literal 2 binary64) %19 %17))
(approx %23 (fma.f64 x (+.f64 x (*.f64 #s(literal 2 binary64) y)) %17))
(approx %5 (*.f64 x (+.f64 #s(literal 1 binary64) %29)))
(approx %11 %13)
(approx %11 (*.f64 x (+.f64 #s(literal 2 binary64) %29)))
(approx %16 (*.f64 #s(literal 2 binary64) %19))
(approx %16 (*.f64 x (fma.f64 #s(literal 2 binary64) y %39)))
(approx %23 %43)
(approx %23 (*.f64 %43 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %29))))
(approx %23 (*.f64 %43 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %29 (/.f64 %17 %43)))))
(approx %5 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %55 #s(literal 1 binary64)))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %55 #s(literal 2 binary64)))))
(approx %16 (*.f64 #s(literal -1 binary64) (*.f64 x %66)))
(approx %23 (*.f64 %43 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 %66 x)))))
(approx %16 (*.f64 y %14))
(approx %23 (fma.f64 #s(literal 2 binary64) %19 %43))
(approx %23 (fma.f64 y %14 %43))
(approx %5 (*.f64 y (+.f64 #s(literal 1 binary64) %81)))
(approx %11 (*.f64 y %86))
(approx %16 (*.f64 %17 %86))
(approx %23 (*.f64 %17 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %81 (/.f64 %43 %17)))))
(approx %5 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %81) #s(literal 1 binary64)))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -2 binary64) %81) #s(literal 1 binary64)))))
(approx %23 (*.f64 %17 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -2 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %43 y))) y)))))
Calls

6 calls:

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

rewrite97.0ms (8.8%)

Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0938
01534
15634
219630
374030
4234530
0506830
0539730
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
8 → 254
Calls
Call 1
Inputs
%3 = (approx (+ x y) y)
%5 = (fma.f64 #s(literal 2 binary64) x y)
%6 = (*.f64 y %5)
x
y
%3
#s(literal 2 binary64)
%5
%6
(fma.f64 x x %6)
(*.f64 %3 %3)
Outputs
%4 = (approx (+ y x) y)
%10 = (neg.f64 %4)
%13 = (fma.f64 #s(literal 2 binary64) x y)
%19 = (*.f64 #s(literal -2 binary64) x)
%20 = (-.f64 %19 y)
%26 = (+.f64 x x)
%29 = (*.f64 #s(literal 2 binary64) %26)
%31 = (*.f64 #s(literal 1/2 binary64) x)
%39 = (neg.f64 x)
%44 = (+.f64 y x)
%48 = (neg.f64 y)
%52 = (neg.f64 %44)
%60 = (*.f64 %13 y)
%66 = (*.f64 %20 y)
%68 = (+.f64 y y)
%69 = (*.f64 %68 %26)
%70 = (*.f64 y y)
%72 = (*.f64 y x)
%73 = (*.f64 %72 #s(literal 4 binary64))
%75 = (*.f64 %68 #s(literal 2 binary64))
%77 = (*.f64 %26 y)
%78 = (*.f64 %77 #s(literal 2 binary64))
%80 = (*.f64 %72 #s(literal 1/2 binary64))
%82 = (*.f64 %44 y)
%84 = (fabs.f64 y)
%85 = (neg.f64 %84)
%86 = (neg.f64 %85)
%89 = (*.f64 #s(literal 1/2 binary64) %72)
%91 = (*.f64 #s(literal -2 binary64) y)
%93 = (*.f64 %48 x)
%98 = (*.f64 #s(literal 4 binary64) %72)
%104 = (*.f64 %39 %48)
%111 = (*.f64 %48 %39)
%115 = (*.f64 %48 %52)
%118 = (*.f64 %52 %48)
%124 = (*.f64 #s(literal 1/2 binary64) y)
%127 = (*.f64 %31 y)
%129 = (*.f64 %31 %68)
%139 = (*.f64 #s(literal -2 binary64) %48)
%148 = (*.f64 %48 %44)
%150 = (*.f64 %48 y)
%152 = (*.f64 %91 x)
%162 = (*.f64 %44 %44)
%174 = (*.f64 x x)
%175 = (fma.f64 y y %174)
%178 = (fabs.f64 x)
%179 = (sqrt.f64 %178)
%180 = (*.f64 %179 %178)
%185 = (fma.f64 %44 y %174)
%190 = (fma.f64 #s(literal 2 binary64) y x)
%191 = (*.f64 %190 x)
%213 = (neg.f64 %178)
%225 = (*.f64 x %44)
%228 = (*.f64 %39 x)
%229 = (-.f64 %72 %228)
%281 = (neg.f64 %175)
%311 = (fabs.f64 %4)
%312 = (sqrt.f64 %311)
%313 = (*.f64 %312 %311)
%316 = (neg.f64 %311)
%320 = (*.f64 %4 %4)
%325 = (*.f64 %320 %320)
%346 = (*.f64 %10 %4)
x
y
(*.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)
#s(literal 2 binary64)
(*.f64 #s(literal 1 binary64) %13)
(pow.f64 %13 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %13 #s(literal -1 binary64)))
(neg.f64 %20)
(fma.f64 (*.f64 x #s(literal 4 binary64)) #s(literal 1/2 binary64) y)
(fma.f64 (*.f64 %26 #s(literal 2 binary64)) #s(literal 1/2 binary64) y)
(fma.f64 %29 #s(literal 1/2 binary64) y)
(fma.f64 %31 #s(literal 4 binary64) y)
(fma.f64 #s(literal 4 binary64) %31 y)
(fma.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 4 binary64) x) y)
(fma.f64 #s(literal 1/2 binary64) %29 y)
(fma.f64 #s(literal 1/2 binary64) (fma.f64 #s(literal 2 binary64) x %26) y)
(fma.f64 #s(literal -2 binary64) %39 y)
(fma.f64 %19 #s(literal -1 binary64) y)
(fma.f64 %39 #s(literal -2 binary64) y)
(fma.f64 #s(literal 1 binary64) %26 y)
(fma.f64 #s(literal 1 binary64) %44 x)
(fma.f64 %26 #s(literal 1 binary64) y)
%13
(fma.f64 x #s(literal 2 binary64) y)
(-.f64 %26 %48)
(-.f64 %44 %39)
(-.f64 y %19)
(-.f64 x %52)
(+.f64 %26 y)
(+.f64 %44 x)
(+.f64 y %26)
(+.f64 x %44)
(*.f64 %20 %48)
(*.f64 %48 %20)
(*.f64 #s(literal 1 binary64) %60)
%60
(*.f64 y %13)
(pow.f64 %60 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %60 #s(literal -1 binary64)))
(neg.f64 %66)
(fma.f64 %69 #s(literal 1/2 binary64) %70)
(fma.f64 %73 #s(literal 1/2 binary64) %70)
(fma.f64 %75 %31 %70)
(fma.f64 %78 #s(literal 1/2 binary64) %70)
(fma.f64 %80 #s(literal 4 binary64) %70)
(fma.f64 %80 #s(literal 2 binary64) %82)
(fma.f64 %86 %86 %77)
(fma.f64 %86 %84 %77)
(fma.f64 #s(literal 4 binary64) %89 %70)
(fma.f64 %91 %39 %70)
(fma.f64 %93 #s(literal -2 binary64) %70)
(fma.f64 %85 %85 %77)
(fma.f64 %68 %31 %82)
(fma.f64 %68 x %70)
(fma.f64 #s(literal 1/2 binary64) %98 %70)
(fma.f64 #s(literal 1/2 binary64) %77 %82)
(fma.f64 %72 #s(literal 1 binary64) %82)
(fma.f64 %72 #s(literal 2 binary64) %70)
(fma.f64 #s(literal -2 binary64) %93 %70)
(fma.f64 %52 %48 %104)
(fma.f64 %19 %48 %70)
(fma.f64 %84 %86 %77)
(fma.f64 %84 %84 %77)
(fma.f64 %77 #s(literal 1/2 binary64) %82)
(fma.f64 %77 #s(literal 1 binary64) %70)
(fma.f64 %48 %52 %111)
(fma.f64 %48 %19 %70)
(fma.f64 %48 %48 %77)
(fma.f64 %48 %39 %115)
(fma.f64 %39 %91 %70)
(fma.f64 %39 %48 %118)
(fma.f64 #s(literal 1 binary64) %82 %72)
(fma.f64 #s(literal 1 binary64) %72 %82)
(fma.f64 #s(literal 1 binary64) %77 %70)
(fma.f64 #s(literal 1 binary64) %70 %77)
(fma.f64 %26 %124 %82)
(fma.f64 %26 y %70)
(fma.f64 #s(literal 2 binary64) %127 %82)
(fma.f64 #s(literal 2 binary64) %129 %70)
(fma.f64 #s(literal 2 binary64) %89 %82)
(fma.f64 #s(literal 2 binary64) %104 %70)
(fma.f64 #s(literal 2 binary64) %72 %70)
(fma.f64 %44 y %72)
(fma.f64 y %26 %70)
(fma.f64 y %44 %72)
(fma.f64 y y %77)
(fma.f64 y x %82)
(fma.f64 x %139 %70)
(fma.f64 x %68 %70)
(fma.f64 x y %82)
(-.f64 %82 %93)
(-.f64 %72 (-.f64 %93 %70))
(-.f64 %72 (*.f64 %52 y))
(-.f64 %72 %148)
(-.f64 %77 %150)
(-.f64 %70 %152)
(+.f64 %115 %111)
(+.f64 %111 %115)
(+.f64 %104 %118)
(+.f64 %118 %104)
(+.f64 %82 %72)
(+.f64 %72 %82)
(+.f64 %77 %70)
(+.f64 %70 %77)
(*.f64 #s(literal 1 binary64) %162)
%162
(pow.f64 %162 #s(literal 1 binary64))
(pow.f64 %44 #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %162 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %44 #s(literal -2 binary64)))
(neg.f64 (neg.f64 %162))
(fma.f64 (*.f64 x %26) #s(literal 1/2 binary64) %60)
(fma.f64 %69 #s(literal 1/2 binary64) %175)
(fma.f64 %73 #s(literal 1/2 binary64) %175)
(fma.f64 %180 %179 %60)
(fma.f64 %75 %31 %175)
(fma.f64 %78 #s(literal 1/2 binary64) %175)
(fma.f64 %80 #s(literal 4 binary64) %175)
(fma.f64 %80 #s(literal 2 binary64) %185)
(fma.f64 (*.f64 %26 %26) #s(literal 1/4 binary64) %60)
(fma.f64 %86 %86 %191)
(fma.f64 %86 %84 %191)
(fma.f64 #s(literal 4 binary64) %89 %175)
(fma.f64 #s(literal 4 binary64) (*.f64 %31 %31) %60)
(fma.f64 %190 x %70)
(fma.f64 %91 %39 %175)
(fma.f64 %93 #s(literal -2 binary64) %175)
(fma.f64 %85 %85 %191)
(fma.f64 %179 %180 %60)
(fma.f64 %68 %31 %185)
(fma.f64 %68 x %175)
(fma.f64 #s(literal 1/2 binary64) %98 %175)
(fma.f64 #s(literal 1/2 binary64) %77 %185)
(fma.f64 %72 #s(literal 1 binary64) %185)
(fma.f64 %72 #s(literal 2 binary64) %175)
(fma.f64 %20 %48 %174)
(fma.f64 #s(literal -2 binary64) %93 %175)
(fma.f64 %19 %48 %175)
(fma.f64 %84 %86 %191)
(fma.f64 %84 %84 %191)
(fma.f64 %213 %213 %60)
(fma.f64 %77 #s(literal 1/2 binary64) %185)
(fma.f64 %77 #s(literal 1 binary64) %175)
(fma.f64 %48 %20 %174)
(fma.f64 %48 %19 %175)
(fma.f64 %48 %48 %191)
(fma.f64 %178 %178 %60)
(fma.f64 %39 (-.f64 %39 %68) %70)
(fma.f64 %39 %91 %175)
(fma.f64 %39 %39 %60)
(fma.f64 #s(literal 1 binary64) %225 %82)
(fma.f64 #s(literal 1 binary64) %185 %72)
(fma.f64 #s(literal 1 binary64) %82 %229)
(fma.f64 #s(literal 1 binary64) %82 %225)
(fma.f64 #s(literal 1 binary64) %191 %70)
(fma.f64 #s(literal 1 binary64) %175 %77)
(fma.f64 #s(literal 1 binary64) %72 %185)
(fma.f64 #s(literal 1 binary64) %77 %175)
(fma.f64 #s(literal 1 binary64) %70 %191)
(fma.f64 #s(literal 1 binary64) %174 %60)
(fma.f64 #s(literal 1 binary64) %60 %174)
(fma.f64 %174 #s(literal 1 binary64) %60)
(fma.f64 %26 (*.f64 #s(literal 1/2 binary64) %190) %70)
(fma.f64 %26 %124 %185)
(fma.f64 %26 %31 %60)
(fma.f64 %26 y %175)
(fma.f64 %13 y %174)
(fma.f64 #s(literal 2 binary64) (*.f64 %31 x) %60)
(fma.f64 #s(literal 2 binary64) %127 %185)
(fma.f64 #s(literal 2 binary64) %129 %175)
(fma.f64 #s(literal 2 binary64) (*.f64 %31 %190) %70)
(fma.f64 #s(literal 2 binary64) %89 %185)
(fma.f64 #s(literal 2 binary64) %104 %175)
(fma.f64 #s(literal 2 binary64) %72 %175)
(fma.f64 %44 y %229)
(fma.f64 %44 y %225)
(fma.f64 y %26 %175)
(fma.f64 y %13 %174)
(fma.f64 y %44 %229)
(fma.f64 y %44 %225)
(fma.f64 y y %191)
(fma.f64 y x %185)
(fma.f64 x (-.f64 %68 %39) %70)
(fma.f64 x %139 %175)
(fma.f64 x %190 %70)
(fma.f64 x %68 %175)
(fma.f64 x %44 %82)
(fma.f64 x y %185)
(fma.f64 x x %60)
(-.f64 (-.f64 %175 %93) %93)
(-.f64 (-.f64 %174 %148) %93)
(-.f64 %225 %148)
(-.f64 %185 %93)
(-.f64 %191 %150)
(-.f64 %175 %152)
(-.f64 %72 (-.f64 %93 %175))
(-.f64 %72 (fma.f64 %48 x %281))
(-.f64 %72 (neg.f64 %185))
(-.f64 %77 %281)
(-.f64 %70 (*.f64 %39 %190))
(-.f64 %70 (-.f64 %228 %77))
(-.f64 %70 (*.f64 x (-.f64 %91 x)))
(-.f64 %174 %66)
(-.f64 %60 %228)
(+.f64 (fma.f64 y y %225) %72)
(+.f64 (fma.f64 x x %82) %72)
(+.f64 %225 %82)
(+.f64 %185 %72)
(+.f64 %82 %229)
(+.f64 %82 %225)
(+.f64 %191 %70)
(+.f64 %175 %77)
(+.f64 %72 %185)
(+.f64 %77 %175)
(+.f64 %70 %191)
(+.f64 %174 %60)
(+.f64 %60 %174)
(*.f64 %313 %312)
(*.f64 %312 %313)
(*.f64 %316 %316)
(*.f64 %311 %311)
(*.f64 %10 %10)
(*.f64 #s(literal 1 binary64) %320)
%320
(pow.f64 (pow.f64 %4 #s(literal 8 binary64)) #s(literal 1/4 binary64))
(pow.f64 %325 #s(literal 1/2 binary64))
(pow.f64 %312 #s(literal 4 binary64))
(pow.f64 %316 #s(literal 2 binary64))
(pow.f64 %311 #s(literal 2 binary64))
(pow.f64 %10 #s(literal 2 binary64))
(pow.f64 %320 #s(literal 1 binary64))
(pow.f64 %4 #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %325 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %316 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %311 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %10 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %320 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %4 #s(literal -2 binary64)))
(neg.f64 %346)
(sqrt.f64 %325)
(fabs.f64 (*.f64 %10 %316))
(fabs.f64 (*.f64 %4 %316))
(fabs.f64 (*.f64 %10 %311))
(fabs.f64 (*.f64 %4 %311))
(fabs.f64 (*.f64 %316 %10))
(fabs.f64 (*.f64 %311 %10))
(fabs.f64 (*.f64 %316 %4))
(fabs.f64 (*.f64 %311 %4))
(fabs.f64 %346)
(fabs.f64 %320)

reconstruct26.0ms (2.4%)

Counts
284 → 68
Compiler

Compiled 284 to 436 computations (-53.5% saved)

eval6.0ms (0.5%)

Compiler

Compiled 64 to 177 computations (-176.6% saved)

prune2.0ms (0.2%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New63164
Fresh000
Picked022
Done011
Total63467
Accuracy
100.0%
Counts
67 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
96.9%
(fma.f64 x x (*.f64 y (fma.f64 #s(literal 2 binary64) x y)))
53.0%
(fma.f64 x x (*.f64 y (approx (+ (* 2 x) y) (*.f64 #s(literal 2 binary64) x))))
100.0%
%5 = (+.f64 x y)
(*.f64 %5 %5)
57.4%
%3 = (approx (+ x y) y)
(*.f64 %3 %3)
Compiler

Compiled 4 to 12 computations (-200.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series12.0ms (1.1%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
097402
Stop Event
iter-limit
Counts
7 → 25
Calls
Call 1
Inputs
%3 = (*.f64 #s(literal 2 binary64) x)
%7 = (approx (+ (* 2 x) y) %3)
%8 = (*.f64 y %7)
x
y
#s(literal 2 binary64)
%3
%7
%8
(fma.f64 x x %8)
Outputs
%5 = (* 2 x)
%7 = (*.f64 #s(literal 2 binary64) x)
%10 = (+ %5 y)
%12 = (+.f64 y %7)
%14 = (* y %10)
%15 = (pow.f64 y #s(literal 2 binary64))
%17 = (*.f64 x y)
%21 = (+ (* x x) %14)
%26 = (/.f64 y x)
%32 = (/.f64 %15 x)
%36 = (pow.f64 x #s(literal 2 binary64))
%56 = (fma.f64 #s(literal -2 binary64) y (*.f64 #s(literal -1 binary64) %32))
%71 = (/.f64 x y)
%73 = (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %71))
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 %7)
(approx %10 y)
(approx %10 %12)
(approx %14 %15)
(approx %14 (fma.f64 #s(literal 2 binary64) %17 %15))
(approx %21 (fma.f64 x (+.f64 x (*.f64 #s(literal 2 binary64) y)) %15))
(approx %10 (*.f64 x (+.f64 #s(literal 2 binary64) %26)))
(approx %14 (*.f64 #s(literal 2 binary64) %17))
(approx %14 (*.f64 x (fma.f64 #s(literal 2 binary64) y %32)))
(approx %21 %36)
(approx %21 (*.f64 %36 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %26))))
(approx %21 (*.f64 %36 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %26 (/.f64 %15 %36)))))
(approx %10 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1 binary64) %26) #s(literal 2 binary64)))))
(approx %14 (*.f64 #s(literal -1 binary64) (*.f64 x %56)))
(approx %21 (*.f64 %36 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 %56 x)))))
(approx %14 (*.f64 y %12))
(approx %21 (fma.f64 #s(literal 2 binary64) %17 %36))
(approx %21 (fma.f64 y %12 %36))
(approx %10 (*.f64 y %73))
(approx %14 (*.f64 %15 %73))
(approx %21 (*.f64 %15 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %71 (/.f64 %36 %15)))))
(approx %10 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -2 binary64) %71) #s(literal 1 binary64)))))
(approx %21 (*.f64 %15 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -2 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %36 y))) y)))))
Calls

6 calls:

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

rewrite79.0ms (7.1%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0940
01340
14040
211840
334840
4100340
0410540
0428437
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
7 → 207
Calls
Call 1
Inputs
%3 = (*.f64 #s(literal 2 binary64) x)
%7 = (approx (+ (* 2 x) y) %3)
%8 = (*.f64 y %7)
x
y
#s(literal 2 binary64)
%3
%7
%8
(fma.f64 x x %8)
Outputs
%4 = (*.f64 x #s(literal 4 binary64))
%7 = (+.f64 x x)
%8 = (*.f64 %7 #s(literal 2 binary64))
%10 = (*.f64 #s(literal 2 binary64) %7)
%12 = (*.f64 #s(literal 1/2 binary64) x)
%15 = (*.f64 #s(literal 4 binary64) x)
%18 = (fma.f64 #s(literal 2 binary64) x %7)
%21 = (neg.f64 x)
%23 = (*.f64 #s(literal -2 binary64) x)
%43 = (*.f64 %23 #s(literal 2 binary64))
%112 = (*.f64 %7 #s(literal 0 binary64))
%114 = (*.f64 #s(literal 0 binary64) %7)
%144 = (*.f64 #s(literal -1 binary64) %21)
%153 = (neg.f64 %12)
%156 = (/.f64 x #s(literal 4 binary64))
%171 = (*.f64 #s(literal -1/2 binary64) x)
%174 = (*.f64 %21 #s(literal -1 binary64))
%180 = (approx (+ (* 2 x) y) %7)
%185 = (neg.f64 %180)
%187 = (neg.f64 y)
%190 = (*.f64 %180 y)
%196 = (*.f64 %187 %180)
%198 = (fma.f64 x x %190)
%205 = (*.f64 %21 %7)
%208 = (fabs.f64 x)
%209 = (neg.f64 %208)
%210 = (*.f64 %209 #s(literal -1 binary64))
%212 = (*.f64 %208 #s(literal -1 binary64))
%214 = (*.f64 #s(literal -1 binary64) %209)
%216 = (*.f64 #s(literal -1 binary64) %208)
%218 = (*.f64 x %7)
%221 = (*.f64 x x)
%222 = (*.f64 #s(literal 4 binary64) %221)
%226 = (*.f64 %209 #s(literal 1 binary64))
%229 = (sqrt.f64 %208)
%230 = (*.f64 %229 %208)
%235 = (*.f64 #s(literal 1/4 binary64) %221)
%250 = (*.f64 (neg.f64 (*.f64 %209 %229)) %229)
%253 = (*.f64 (neg.f64 %205) #s(literal 1/2 binary64))
%255 = (neg.f64 %229)
%257 = (*.f64 %255 (*.f64 %229 %209))
%259 = (*.f64 %23 %171)
%261 = (*.f64 %12 %21)
%262 = (*.f64 #s(literal -2 binary64) %261)
%264 = (*.f64 %21 x)
%265 = (*.f64 #s(literal -1 binary64) %264)
%297 = (*.f64 %12 x)
x
y
#s(literal 2 binary64)
(*.f64 %4 #s(literal 1/2 binary64))
(*.f64 %8 #s(literal 1/2 binary64))
(*.f64 %10 #s(literal 1/2 binary64))
(*.f64 %12 #s(literal 4 binary64))
(*.f64 #s(literal 4 binary64) %12)
(*.f64 #s(literal 1/2 binary64) %15)
(*.f64 #s(literal 1/2 binary64) %10)
(*.f64 #s(literal 1/2 binary64) %18)
(*.f64 #s(literal -2 binary64) %21)
(*.f64 %23 #s(literal -1 binary64))
(*.f64 %21 #s(literal -2 binary64))
(*.f64 #s(literal 1 binary64) %7)
(*.f64 %7 #s(literal 1 binary64))
(*.f64 #s(literal 2 binary64) x)
(*.f64 x #s(literal 2 binary64))
(pow.f64 %7 #s(literal 1 binary64))
(/.f64 (fma.f64 %7 #s(literal 2 binary64) %8) #s(literal 4 binary64))
(/.f64 (fma.f64 %7 #s(literal 2 binary64) %10) #s(literal 4 binary64))
(/.f64 (-.f64 %8 (*.f64 #s(literal 2 binary64) %23)) #s(literal 4 binary64))
(/.f64 (*.f64 #s(literal -4 binary64) %23) #s(literal 4 binary64))
(/.f64 (*.f64 %43 #s(literal -2 binary64)) #s(literal 4 binary64))
(/.f64 (*.f64 %23 #s(literal -4 binary64)) #s(literal 4 binary64))
(/.f64 (*.f64 #s(literal -2 binary64) %8) #s(literal -4 binary64))
(/.f64 (*.f64 #s(literal -2 binary64) %10) #s(literal -4 binary64))
(/.f64 (*.f64 %8 #s(literal -2 binary64)) #s(literal -4 binary64))
(/.f64 (*.f64 %10 #s(literal -2 binary64)) #s(literal -4 binary64))
(/.f64 (*.f64 #s(literal 8 binary64) %7) #s(literal 8 binary64))
(/.f64 (*.f64 %7 #s(literal 8 binary64)) #s(literal 8 binary64))
(/.f64 (*.f64 %43 #s(literal 2 binary64)) #s(literal -4 binary64))
(/.f64 (*.f64 %8 #s(literal 4 binary64)) #s(literal 8 binary64))
(/.f64 (*.f64 %10 #s(literal 4 binary64)) #s(literal 8 binary64))
(/.f64 (*.f64 #s(literal 4 binary64) %8) #s(literal 8 binary64))
(/.f64 (*.f64 #s(literal 4 binary64) %10) #s(literal 8 binary64))
(/.f64 (*.f64 #s(literal 1/2 binary64) %8) #s(literal 1 binary64))
(/.f64 (*.f64 #s(literal 1 binary64) %8) #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 1 binary64) %10) #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) %8) #s(literal 4 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) %10) #s(literal 4 binary64))
(/.f64 (*.f64 #s(literal 4 binary64) %7) #s(literal 4 binary64))
(/.f64 (*.f64 %8 #s(literal 1 binary64)) #s(literal 2 binary64))
(/.f64 (*.f64 %8 #s(literal 2 binary64)) #s(literal 4 binary64))
(/.f64 (*.f64 %10 #s(literal 1 binary64)) #s(literal 2 binary64))
(/.f64 (*.f64 %10 #s(literal 2 binary64)) #s(literal 4 binary64))
(/.f64 (*.f64 %7 #s(literal 4 binary64)) #s(literal 4 binary64))
(/.f64 (neg.f64 %8) #s(literal -2 binary64))
(/.f64 (neg.f64 %10) #s(literal -2 binary64))
(/.f64 %4 #s(literal 2 binary64))
(/.f64 %15 #s(literal 2 binary64))
(/.f64 %8 #s(literal 2 binary64))
(/.f64 %10 #s(literal 2 binary64))
(/.f64 %18 #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %8))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %10))
(/.f64 #s(literal 1 binary64) (pow.f64 %7 #s(literal -1 binary64)))
(/.f64 %7 #s(literal 1 binary64))
(/.f64 x #s(literal 1/2 binary64))
(neg.f64 %23)
(fma.f64 %4 #s(literal 1/2 binary64) %112)
(fma.f64 %4 #s(literal 1/2 binary64) %114)
(fma.f64 %8 #s(literal 1/2 binary64) %112)
(fma.f64 %8 #s(literal 1/2 binary64) %114)
(fma.f64 %10 #s(literal 1/2 binary64) %112)
(fma.f64 %10 #s(literal 1/2 binary64) %114)
(fma.f64 %12 #s(literal 4 binary64) %112)
(fma.f64 %12 #s(literal 4 binary64) %114)
(fma.f64 #s(literal 4 binary64) %12 %112)
(fma.f64 #s(literal 4 binary64) %12 %114)
(fma.f64 #s(literal 1/2 binary64) %15 %112)
(fma.f64 #s(literal 1/2 binary64) %15 %114)
(fma.f64 #s(literal 1/2 binary64) %10 %112)
(fma.f64 #s(literal 1/2 binary64) %10 %114)
(fma.f64 #s(literal 1/2 binary64) %18 %112)
(fma.f64 #s(literal 1/2 binary64) %18 %114)
(fma.f64 #s(literal -2 binary64) %21 %112)
(fma.f64 #s(literal -2 binary64) %21 %114)
(fma.f64 %23 #s(literal -1 binary64) %112)
(fma.f64 %23 #s(literal -1 binary64) %114)
(fma.f64 %21 #s(literal -2 binary64) %112)
(fma.f64 %21 #s(literal -2 binary64) %114)
(fma.f64 #s(literal 1 binary64) %7 %112)
(fma.f64 #s(literal 1 binary64) %7 %114)
(fma.f64 %7 #s(literal 1 binary64) %112)
(fma.f64 %7 #s(literal 1 binary64) %114)
(fma.f64 #s(literal 2 binary64) x %112)
(fma.f64 #s(literal 2 binary64) x %114)
(fma.f64 x #s(literal 2 binary64) %112)
(fma.f64 x #s(literal 2 binary64) %114)
(-.f64 %144 %21)
(-.f64 %7 (neg.f64 %112))
(-.f64 %7 (neg.f64 %114))
(-.f64 %7 (*.f64 %23 #s(literal 0 binary64)))
(-.f64 %7 %114)
(-.f64 x (*.f64 %153 #s(literal 2 binary64)))
(-.f64 x (*.f64 #s(literal -4 binary64) %156))
(-.f64 x (*.f64 #s(literal -1/2 binary64) %7))
(-.f64 x %21)
(+.f64 %7 %112)
(+.f64 %7 %114)
(+.f64 x (*.f64 #s(literal -1/2 binary64) %23))
(+.f64 x (*.f64 %23 #s(literal -1/2 binary64)))
(+.f64 x (*.f64 #s(literal -2 binary64) %153))
(+.f64 x (*.f64 #s(literal -2 binary64) %171))
(+.f64 x %174)
(+.f64 x %144)
%7
(*.f64 #s(literal 1 binary64) %180)
(pow.f64 %180 #s(literal 1 binary64))
%180
(/.f64 #s(literal 1 binary64) (pow.f64 %180 #s(literal -1 binary64)))
(neg.f64 %185)
(*.f64 %185 %187)
(*.f64 %187 %185)
(*.f64 #s(literal 1 binary64) %190)
%190
(*.f64 y %180)
(pow.f64 %190 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %190 #s(literal -1 binary64)))
(neg.f64 %196)
(*.f64 #s(literal 1 binary64) %198)
(pow.f64 %198 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %198 #s(literal -1 binary64)))
(neg.f64 (neg.f64 %198))
(fma.f64 (fabs.f64 %205) #s(literal 1/2 binary64) %190)
(fma.f64 %210 %210 %190)
(fma.f64 %212 %212 %190)
(fma.f64 %214 %214 %190)
(fma.f64 %216 %216 %190)
(fma.f64 (fabs.f64 %218) #s(literal 1/2 binary64) %190)
(fma.f64 (fabs.f64 %222) #s(literal 1/4 binary64) %190)
(fma.f64 %226 %226 %190)
(fma.f64 %218 #s(literal 1/2 binary64) %190)
(fma.f64 %230 %229 %190)
(fma.f64 %174 %174 %190)
(fma.f64 %144 %144 %190)
(fma.f64 %222 #s(literal 1/4 binary64) %190)
(fma.f64 %235 #s(literal 4 binary64) %190)
(fma.f64 #s(literal 16 binary64) (*.f64 %156 %156) %190)
(fma.f64 (fabs.f64 %7) (*.f64 #s(literal 1/2 binary64) %208) %190)
(fma.f64 #s(literal 1/4 binary64) %222 %190)
(fma.f64 #s(literal 4 binary64) (fabs.f64 %235) %190)
(fma.f64 #s(literal 4 binary64) %235 %190)
(fma.f64 %229 %230 %190)
(fma.f64 %185 %187 %250)
(fma.f64 %185 %187 %253)
(fma.f64 %185 %187 %257)
(fma.f64 %185 %187 %259)
(fma.f64 %185 %187 %262)
(fma.f64 %185 %187 %265)
(fma.f64 %185 %187 %221)
(fma.f64 %209 %209 %190)
(fma.f64 %187 %185 %250)
(fma.f64 %187 %185 %253)
(fma.f64 %187 %185 %257)
(fma.f64 %187 %185 %259)
(fma.f64 %187 %185 %262)
(fma.f64 %187 %185 %265)
(fma.f64 %187 %185 %221)
(fma.f64 %208 %208 %190)
(fma.f64 %21 %21 %190)
(fma.f64 #s(literal 1 binary64) %221 %190)
(fma.f64 #s(literal 1 binary64) %190 %250)
(fma.f64 #s(literal 1 binary64) %190 %253)
(fma.f64 #s(literal 1 binary64) %190 %257)
(fma.f64 #s(literal 1 binary64) %190 %259)
(fma.f64 #s(literal 1 binary64) %190 %262)
(fma.f64 #s(literal 1 binary64) %190 %265)
(fma.f64 #s(literal 1 binary64) %190 %221)
(fma.f64 %221 #s(literal 1 binary64) %190)
(fma.f64 %180 y %250)
(fma.f64 %180 y %253)
(fma.f64 %180 y %257)
(fma.f64 %180 y %259)
(fma.f64 %180 y %262)
(fma.f64 %180 y %265)
(fma.f64 %180 y %221)
(fma.f64 %7 %12 %190)
(fma.f64 #s(literal 2 binary64) (fabs.f64 %261) %190)
(fma.f64 #s(literal 2 binary64) (fabs.f64 %297) %190)
(fma.f64 #s(literal 2 binary64) %297 %190)
(fma.f64 y %180 %250)
(fma.f64 y %180 %253)
(fma.f64 y %180 %257)
(fma.f64 y %180 %259)
(fma.f64 y %180 %262)
(fma.f64 y %180 %265)
(fma.f64 y %180 %221)
%198
(-.f64 %221 %196)
(-.f64 %190 (*.f64 (neg.f64 %218) #s(literal 1/2 binary64)))
(-.f64 %190 (*.f64 (neg.f64 %230) %229))
(-.f64 %190 (*.f64 (neg.f64 %222) #s(literal 1/4 binary64)))
(-.f64 %190 (*.f64 #s(literal -4 binary64) %235))
(-.f64 %190 (*.f64 %255 %230))
(-.f64 %190 (*.f64 #s(literal -2 binary64) %297))
(-.f64 %190 (*.f64 #s(literal -1 binary64) %221))
(-.f64 %190 %264)
(+.f64 %221 %190)
(+.f64 %190 %250)
(+.f64 %190 %253)
(+.f64 %190 %257)
(+.f64 %190 %259)
(+.f64 %190 %262)
(+.f64 %190 %265)
(+.f64 %190 %221)

reconstruct5.0ms (0.5%)

Counts
232 → 36
Compiler

Compiled 232 to 388 computations (-67.2% saved)

eval3.0ms (0.3%)

Compiler

Compiled 32 to 107 computations (-234.4% saved)

prune1.0ms (0.1%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New30232
Fresh000
Picked101
Done033
Total31536
Accuracy
100.0%
Counts
36 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
53.0%
(fma.f64 x x (*.f64 (approx (+ (* 2 x) y) (+.f64 x x)) y))
96.9%
(fma.f64 x x (*.f64 y (fma.f64 #s(literal 2 binary64) x y)))
98.7%
(fma.f64 x x (*.f64 y (approx (+ (* 2 x) y) y)))
100.0%
%5 = (+.f64 x y)
(*.f64 %5 %5)
57.4%
%3 = (approx (+ x y) y)
(*.f64 %3 %3)
Compiler

Compiled 5 to 14 computations (-180.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series10.0ms (0.9%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
098402
Stop Event
iter-limit
Counts
9 → 25
Calls
Call 1
Inputs
%2 = (+.f64 x x)
%5 = (+ (* 2 x) y)
%6 = (approx %5 y)
%7 = (approx %5 %2)
%8 = (*.f64 %7 y)
%10 = (*.f64 y %6)
x
y
%2
%6
%7
%8
(fma.f64 x x %8)
%10
(fma.f64 x x %10)
Outputs
%6 = (*.f64 #s(literal 2 binary64) x)
%11 = (+ (* 2 x) y)
%13 = (+.f64 y %6)
%15 = (* %11 y)
%16 = (pow.f64 y #s(literal 2 binary64))
%18 = (*.f64 x y)
%22 = (+ (* x x) %15)
%27 = (/.f64 y x)
%33 = (/.f64 %16 x)
%37 = (pow.f64 x #s(literal 2 binary64))
%57 = (fma.f64 #s(literal -2 binary64) y (*.f64 #s(literal -1 binary64) %33))
%72 = (/.f64 x y)
%74 = (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %72))
(approx x #s(literal 0 binary64))
(approx x x)
(approx (+ x x) %6)
(approx %11 y)
(approx %11 %13)
(approx %15 %16)
(approx %15 (fma.f64 #s(literal 2 binary64) %18 %16))
(approx %22 (fma.f64 x (+.f64 x (*.f64 #s(literal 2 binary64) y)) %16))
(approx %11 (*.f64 x (+.f64 #s(literal 2 binary64) %27)))
(approx %15 (*.f64 #s(literal 2 binary64) %18))
(approx %15 (*.f64 x (fma.f64 #s(literal 2 binary64) y %33)))
(approx %22 %37)
(approx %22 (*.f64 %37 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) %27))))
(approx %22 (*.f64 %37 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %27 (/.f64 %16 %37)))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1 binary64) %27) #s(literal 2 binary64)))))
(approx %15 (*.f64 #s(literal -1 binary64) (*.f64 x %57)))
(approx %22 (*.f64 %37 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 %57 x)))))
(approx %15 (*.f64 y %13))
(approx %22 (fma.f64 #s(literal 2 binary64) %18 %37))
(approx %22 (fma.f64 y %13 %37))
(approx %11 (*.f64 y %74))
(approx %15 (*.f64 %16 %74))
(approx %22 (*.f64 %16 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) %72 (/.f64 %37 %16)))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -2 binary64) %72) #s(literal 1 binary64)))))
(approx %22 (*.f64 %16 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -2 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %37 y))) y)))))
Calls

6 calls:

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

rewrite81.0ms (7.3%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01267
01867
15767
216567
346067
4115167
0420567
0440861
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
9 → 286
Calls
Call 1
Inputs
%2 = (+.f64 x x)
%5 = (+ (* 2 x) y)
%6 = (approx %5 y)
%7 = (approx %5 %2)
%8 = (*.f64 %7 y)
%10 = (*.f64 y %6)
x
y
%2
%6
%7
%8
(fma.f64 x x %8)
%10
(fma.f64 x x %10)
Outputs
%3 = (*.f64 x #s(literal 4 binary64))
%6 = (+.f64 x x)
%8 = (*.f64 %6 #s(literal 2 binary64))
%10 = (*.f64 #s(literal 2 binary64) %6)
%12 = (*.f64 #s(literal 1/2 binary64) x)
%15 = (*.f64 #s(literal 4 binary64) x)
%18 = (fma.f64 #s(literal 2 binary64) x %6)
%21 = (neg.f64 x)
%23 = (*.f64 #s(literal -2 binary64) x)
%58 = (*.f64 %23 #s(literal 2 binary64))
%112 = (*.f64 %6 #s(literal 0 binary64))
%114 = (*.f64 #s(literal 0 binary64) %6)
%144 = (*.f64 #s(literal -1 binary64) %21)
%161 = (*.f64 #s(literal -1/2 binary64) x)
%164 = (*.f64 %21 #s(literal -1 binary64))
%169 = (+ (* 2 x) y)
%170 = (approx %169 y)
%175 = (neg.f64 %170)
%177 = (approx %169 %6)
%182 = (neg.f64 %177)
%184 = (neg.f64 y)
%187 = (*.f64 %177 y)
%193 = (*.f64 %182 y)
%195 = (fma.f64 x x %187)
%202 = (*.f64 %21 %6)
%203 = (fabs.f64 %202)
%205 = (fabs.f64 x)
%206 = (neg.f64 %205)
%207 = (*.f64 %206 #s(literal -1 binary64))
%209 = (*.f64 %205 #s(literal -1 binary64))
%211 = (*.f64 #s(literal -1 binary64) %206)
%213 = (*.f64 #s(literal -1 binary64) %205)
%215 = (*.f64 x %6)
%216 = (fabs.f64 %215)
%218 = (*.f64 x x)
%219 = (*.f64 #s(literal 4 binary64) %218)
%220 = (fabs.f64 %219)
%223 = (*.f64 %206 #s(literal 1 binary64))
%226 = (sqrt.f64 %205)
%227 = (*.f64 %226 %205)
%232 = (*.f64 #s(literal 1/4 binary64) %218)
%235 = (/.f64 x #s(literal 4 binary64))
%236 = (*.f64 %235 %235)
%238 = (fabs.f64 %6)
%239 = (*.f64 #s(literal 1/2 binary64) %205)
%242 = (fabs.f64 %232)
%249 = (*.f64 (neg.f64 (*.f64 %206 %226)) %226)
%252 = (*.f64 (neg.f64 %202) #s(literal 1/2 binary64))
%256 = (*.f64 (neg.f64 %226) (*.f64 %226 %206))
%258 = (*.f64 %23 %161)
%260 = (*.f64 %12 %21)
%261 = (*.f64 #s(literal -2 binary64) %260)
%263 = (*.f64 %21 x)
%264 = (*.f64 #s(literal -1 binary64) %263)
%293 = (fabs.f64 %260)
%295 = (*.f64 %12 x)
%296 = (fabs.f64 %295)
%318 = (*.f64 %170 y)
%324 = (*.f64 %184 %170)
%326 = (fma.f64 x x %318)
x
y
(*.f64 %3 #s(literal 1/2 binary64))
(*.f64 %8 #s(literal 1/2 binary64))
(*.f64 %10 #s(literal 1/2 binary64))
(*.f64 %12 #s(literal 4 binary64))
(*.f64 #s(literal 4 binary64) %12)
(*.f64 #s(literal 1/2 binary64) %15)
(*.f64 #s(literal 1/2 binary64) %10)
(*.f64 #s(literal 1/2 binary64) %18)
(*.f64 #s(literal -2 binary64) %21)
(*.f64 %23 #s(literal -1 binary64))
(*.f64 %21 #s(literal -2 binary64))
(*.f64 #s(literal 1 binary64) %6)
(*.f64 %6 #s(literal 1 binary64))
(*.f64 #s(literal 2 binary64) x)
(*.f64 x #s(literal 2 binary64))
(pow.f64 %6 #s(literal 1 binary64))
(/.f64 (fma.f64 %6 #s(literal 2 binary64) %8) #s(literal 4 binary64))
(/.f64 (fma.f64 %6 #s(literal 2 binary64) %10) #s(literal 4 binary64))
(/.f64 (-.f64 %8 (*.f64 #s(literal 2 binary64) %23)) #s(literal 4 binary64))
(/.f64 (*.f64 #s(literal -4 binary64) %23) #s(literal 4 binary64))
(/.f64 (*.f64 %23 #s(literal -4 binary64)) #s(literal 4 binary64))
(/.f64 (*.f64 #s(literal 4 binary64) %8) #s(literal 8 binary64))
(/.f64 (*.f64 #s(literal 4 binary64) %10) #s(literal 8 binary64))
(/.f64 (*.f64 #s(literal 8 binary64) %6) #s(literal 8 binary64))
(/.f64 (*.f64 %6 #s(literal 8 binary64)) #s(literal 8 binary64))
(/.f64 (*.f64 %8 #s(literal 4 binary64)) #s(literal 8 binary64))
(/.f64 (*.f64 %10 #s(literal 4 binary64)) #s(literal 8 binary64))
(/.f64 (*.f64 %58 #s(literal -2 binary64)) #s(literal 4 binary64))
(/.f64 (*.f64 %58 #s(literal 2 binary64)) #s(literal -4 binary64))
(/.f64 (*.f64 #s(literal -2 binary64) %8) #s(literal -4 binary64))
(/.f64 (*.f64 #s(literal -2 binary64) %10) #s(literal -4 binary64))
(/.f64 (*.f64 %8 #s(literal -2 binary64)) #s(literal -4 binary64))
(/.f64 (*.f64 %10 #s(literal -2 binary64)) #s(literal -4 binary64))
(/.f64 (*.f64 #s(literal 1/2 binary64) %8) #s(literal 1 binary64))
(/.f64 (*.f64 #s(literal 1 binary64) %8) #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 1 binary64) %10) #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) %8) #s(literal 4 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) %10) #s(literal 4 binary64))
(/.f64 (*.f64 #s(literal 4 binary64) %6) #s(literal 4 binary64))
(/.f64 (*.f64 %8 #s(literal 1 binary64)) #s(literal 2 binary64))
(/.f64 (*.f64 %8 #s(literal 2 binary64)) #s(literal 4 binary64))
(/.f64 (*.f64 %10 #s(literal 1 binary64)) #s(literal 2 binary64))
(/.f64 (*.f64 %10 #s(literal 2 binary64)) #s(literal 4 binary64))
(/.f64 (*.f64 %6 #s(literal 4 binary64)) #s(literal 4 binary64))
(/.f64 (neg.f64 %8) #s(literal -2 binary64))
(/.f64 (neg.f64 %10) #s(literal -2 binary64))
(/.f64 %3 #s(literal 2 binary64))
(/.f64 %15 #s(literal 2 binary64))
(/.f64 %8 #s(literal 2 binary64))
(/.f64 %10 #s(literal 2 binary64))
(/.f64 %18 #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %8))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %10))
(/.f64 #s(literal 1 binary64) (pow.f64 %6 #s(literal -1 binary64)))
(/.f64 %6 #s(literal 1 binary64))
(/.f64 x #s(literal 1/2 binary64))
(neg.f64 %23)
(fma.f64 %3 #s(literal 1/2 binary64) %112)
(fma.f64 %3 #s(literal 1/2 binary64) %114)
(fma.f64 %8 #s(literal 1/2 binary64) %112)
(fma.f64 %8 #s(literal 1/2 binary64) %114)
(fma.f64 %10 #s(literal 1/2 binary64) %112)
(fma.f64 %10 #s(literal 1/2 binary64) %114)
(fma.f64 %12 #s(literal 4 binary64) %112)
(fma.f64 %12 #s(literal 4 binary64) %114)
(fma.f64 #s(literal 4 binary64) %12 %112)
(fma.f64 #s(literal 4 binary64) %12 %114)
(fma.f64 #s(literal 1/2 binary64) %15 %112)
(fma.f64 #s(literal 1/2 binary64) %15 %114)
(fma.f64 #s(literal 1/2 binary64) %10 %112)
(fma.f64 #s(literal 1/2 binary64) %10 %114)
(fma.f64 #s(literal 1/2 binary64) %18 %112)
(fma.f64 #s(literal 1/2 binary64) %18 %114)
(fma.f64 #s(literal -2 binary64) %21 %112)
(fma.f64 #s(literal -2 binary64) %21 %114)
(fma.f64 %23 #s(literal -1 binary64) %112)
(fma.f64 %23 #s(literal -1 binary64) %114)
(fma.f64 %21 #s(literal -2 binary64) %112)
(fma.f64 %21 #s(literal -2 binary64) %114)
(fma.f64 #s(literal 1 binary64) %6 %112)
(fma.f64 #s(literal 1 binary64) %6 %114)
(fma.f64 %6 #s(literal 1 binary64) %112)
(fma.f64 %6 #s(literal 1 binary64) %114)
(fma.f64 #s(literal 2 binary64) x %112)
(fma.f64 #s(literal 2 binary64) x %114)
(fma.f64 x #s(literal 2 binary64) %112)
(fma.f64 x #s(literal 2 binary64) %114)
(-.f64 %144 %21)
(-.f64 %6 (neg.f64 %112))
(-.f64 %6 (neg.f64 %114))
(-.f64 x %21)
(+.f64 %6 %112)
(+.f64 %6 %114)
(+.f64 x (*.f64 #s(literal -1/2 binary64) %23))
(+.f64 x (*.f64 %23 #s(literal -1/2 binary64)))
(+.f64 x (*.f64 #s(literal -2 binary64) (neg.f64 %12)))
(+.f64 x (*.f64 #s(literal -2 binary64) %161))
(+.f64 x %164)
(+.f64 x %144)
%6
(*.f64 #s(literal 1 binary64) %170)
(pow.f64 %170 #s(literal 1 binary64))
%170
(/.f64 #s(literal 1 binary64) (pow.f64 %170 #s(literal -1 binary64)))
(neg.f64 %175)
(*.f64 #s(literal 1 binary64) %177)
(pow.f64 %177 #s(literal 1 binary64))
%177
(/.f64 #s(literal 1 binary64) (pow.f64 %177 #s(literal -1 binary64)))
(neg.f64 %182)
(*.f64 %182 %184)
(*.f64 %184 %182)
(*.f64 #s(literal 1 binary64) %187)
%187
(*.f64 y %177)
(pow.f64 %187 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %187 #s(literal -1 binary64)))
(neg.f64 %193)
(*.f64 #s(literal 1 binary64) %195)
(pow.f64 %195 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %195 #s(literal -1 binary64)))
(neg.f64 (neg.f64 %195))
(fma.f64 %203 #s(literal 1/2 binary64) %187)
(fma.f64 %207 %207 %187)
(fma.f64 %209 %209 %187)
(fma.f64 %211 %211 %187)
(fma.f64 %213 %213 %187)
(fma.f64 %216 #s(literal 1/2 binary64) %187)
(fma.f64 %220 #s(literal 1/4 binary64) %187)
(fma.f64 %223 %223 %187)
(fma.f64 %215 #s(literal 1/2 binary64) %187)
(fma.f64 %227 %226 %187)
(fma.f64 %164 %164 %187)
(fma.f64 %144 %144 %187)
(fma.f64 %219 #s(literal 1/4 binary64) %187)
(fma.f64 %232 #s(literal 4 binary64) %187)
(fma.f64 #s(literal 16 binary64) %236 %187)
(fma.f64 %238 %239 %187)
(fma.f64 #s(literal 1/4 binary64) %219 %187)
(fma.f64 #s(literal 4 binary64) %242 %187)
(fma.f64 #s(literal 4 binary64) %232 %187)
(fma.f64 %226 %227 %187)
(fma.f64 %206 %206 %187)
(fma.f64 %182 %184 %249)
(fma.f64 %182 %184 %252)
(fma.f64 %182 %184 %256)
(fma.f64 %182 %184 %258)
(fma.f64 %182 %184 %261)
(fma.f64 %182 %184 %264)
(fma.f64 %182 %184 %218)
(fma.f64 %184 %182 %249)
(fma.f64 %184 %182 %252)
(fma.f64 %184 %182 %256)
(fma.f64 %184 %182 %258)
(fma.f64 %184 %182 %261)
(fma.f64 %184 %182 %264)
(fma.f64 %184 %182 %218)
(fma.f64 %205 %205 %187)
(fma.f64 %21 %21 %187)
(fma.f64 #s(literal 1 binary64) %218 %187)
(fma.f64 #s(literal 1 binary64) %187 %249)
(fma.f64 #s(literal 1 binary64) %187 %252)
(fma.f64 #s(literal 1 binary64) %187 %256)
(fma.f64 #s(literal 1 binary64) %187 %258)
(fma.f64 #s(literal 1 binary64) %187 %261)
(fma.f64 #s(literal 1 binary64) %187 %264)
(fma.f64 #s(literal 1 binary64) %187 %218)
(fma.f64 %218 #s(literal 1 binary64) %187)
(fma.f64 %177 y %249)
(fma.f64 %177 y %252)
(fma.f64 %177 y %256)
(fma.f64 %177 y %258)
(fma.f64 %177 y %261)
(fma.f64 %177 y %264)
(fma.f64 %177 y %218)
(fma.f64 %6 %12 %187)
(fma.f64 #s(literal 2 binary64) %293 %187)
(fma.f64 #s(literal 2 binary64) %296 %187)
(fma.f64 #s(literal 2 binary64) %295 %187)
(fma.f64 y %177 %249)
(fma.f64 y %177 %252)
(fma.f64 y %177 %256)
(fma.f64 y %177 %258)
(fma.f64 y %177 %261)
(fma.f64 y %177 %264)
(fma.f64 y %177 %218)
%195
(-.f64 %218 %193)
(-.f64 %187 %263)
(+.f64 %218 %187)
(+.f64 %187 %249)
(+.f64 %187 %252)
(+.f64 %187 %256)
(+.f64 %187 %258)
(+.f64 %187 %261)
(+.f64 %187 %264)
(+.f64 %187 %218)
(*.f64 %175 %184)
(*.f64 %184 %175)
(*.f64 #s(literal 1 binary64) %318)
%318
(*.f64 y %170)
(pow.f64 %318 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %318 #s(literal -1 binary64)))
(neg.f64 %324)
(*.f64 #s(literal 1 binary64) %326)
(pow.f64 %326 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %326 #s(literal -1 binary64)))
(neg.f64 (neg.f64 %326))
(fma.f64 %203 #s(literal 1/2 binary64) %318)
(fma.f64 %207 %207 %318)
(fma.f64 %209 %209 %318)
(fma.f64 %211 %211 %318)
(fma.f64 %213 %213 %318)
(fma.f64 %216 #s(literal 1/2 binary64) %318)
(fma.f64 %220 #s(literal 1/4 binary64) %318)
(fma.f64 %223 %223 %318)
(fma.f64 %215 #s(literal 1/2 binary64) %318)
(fma.f64 %227 %226 %318)
(fma.f64 %164 %164 %318)
(fma.f64 %144 %144 %318)
(fma.f64 %219 #s(literal 1/4 binary64) %318)
(fma.f64 %232 #s(literal 4 binary64) %318)
(fma.f64 #s(literal 16 binary64) %236 %318)
(fma.f64 %238 %239 %318)
(fma.f64 #s(literal 1/4 binary64) %219 %318)
(fma.f64 #s(literal 4 binary64) %242 %318)
(fma.f64 #s(literal 4 binary64) %232 %318)
(fma.f64 %226 %227 %318)
(fma.f64 %175 %184 %249)
(fma.f64 %175 %184 %252)
(fma.f64 %175 %184 %256)
(fma.f64 %175 %184 %258)
(fma.f64 %175 %184 %261)
(fma.f64 %175 %184 %264)
(fma.f64 %175 %184 %218)
(fma.f64 %206 %206 %318)
(fma.f64 %184 %175 %249)
(fma.f64 %184 %175 %252)
(fma.f64 %184 %175 %256)
(fma.f64 %184 %175 %258)
(fma.f64 %184 %175 %261)
(fma.f64 %184 %175 %264)
(fma.f64 %184 %175 %218)
(fma.f64 %205 %205 %318)
(fma.f64 %21 %21 %318)
(fma.f64 #s(literal 1 binary64) %218 %318)
(fma.f64 #s(literal 1 binary64) %318 %249)
(fma.f64 #s(literal 1 binary64) %318 %252)
(fma.f64 #s(literal 1 binary64) %318 %256)
(fma.f64 #s(literal 1 binary64) %318 %258)
(fma.f64 #s(literal 1 binary64) %318 %261)
(fma.f64 #s(literal 1 binary64) %318 %264)
(fma.f64 #s(literal 1 binary64) %318 %218)
(fma.f64 %218 #s(literal 1 binary64) %318)
(fma.f64 %170 y %249)
(fma.f64 %170 y %252)
(fma.f64 %170 y %256)
(fma.f64 %170 y %258)
(fma.f64 %170 y %261)
(fma.f64 %170 y %264)
(fma.f64 %170 y %218)
(fma.f64 %6 %12 %318)
(fma.f64 #s(literal 2 binary64) %293 %318)
(fma.f64 #s(literal 2 binary64) %296 %318)
(fma.f64 #s(literal 2 binary64) %295 %318)
(fma.f64 y %170 %249)
(fma.f64 y %170 %252)
(fma.f64 y %170 %256)
(fma.f64 y %170 %258)
(fma.f64 y %170 %261)
(fma.f64 y %170 %264)
(fma.f64 y %170 %218)
%326
(-.f64 %218 %324)
(-.f64 %318 %263)
(+.f64 %218 %318)
(+.f64 %318 %249)
(+.f64 %318 %252)
(+.f64 %318 %256)
(+.f64 %318 %258)
(+.f64 %318 %261)
(+.f64 %318 %264)
(+.f64 %318 %218)

reconstruct28.0ms (2.5%)

Counts
310 → 44
Compiler

Compiled 310 to 459 computations (-48.1% saved)

eval4.0ms (0.3%)

Compiler

Compiled 40 to 120 computations (-200.0% saved)

prune2.0ms (0.2%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New40040
Fresh000
Picked022
Done033
Total40545
Accuracy
100.0%
Counts
45 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
53.0%
(fma.f64 x x (*.f64 (approx (+ (* 2 x) y) (+.f64 x x)) y))
96.9%
(fma.f64 x x (*.f64 y (fma.f64 #s(literal 2 binary64) x y)))
98.7%
(fma.f64 x x (*.f64 y (approx (+ (* 2 x) y) y)))
100.0%
%5 = (+.f64 x y)
(*.f64 %5 %5)
57.4%
%3 = (approx (+ x y) y)
(*.f64 %3 %3)
Compiler

Compiled 5 to 14 computations (-180.0% saved)

regimes18.0ms (1.6%)

Accuracy

Total 0.0b remaining (0.0%)

Threshold costs 0.0b (0.0%)

0.0b-0.0%
0.0b0%
-0.0b-0.0%

Counts
1 → 1
2 → 1
3 → 1
Calls
Call 1
Inputs
%3 = (approx (+ x y) y)
(*.f64 %3 %3)
Outputs
%3 = (approx (+ x y) y)
(*.f64 %3 %3)
Call 2
Inputs
%3 = (approx (+ x y) y)
(*.f64 %3 %3)
(fma.f64 x x (*.f64 y (approx (+ (* 2 x) y) y)))
Outputs
(fma.f64 x x (*.f64 y (approx (+ (* 2 x) y) y)))
Call 3
Inputs
%3 = (approx (+ x y) y)
%11 = (+.f64 x y)
(*.f64 %3 %3)
(fma.f64 x x (*.f64 y (approx (+ (* 2 x) y) y)))
(*.f64 %11 %11)
Outputs
%2 = (+.f64 x y)
(*.f64 %2 %2)
Calls

4 calls:

9.0ms
y
8.0ms
%2 = (+.f64 x y)
(*.f64 %2 %2)
4.0ms
x
4.0ms
(+.f64 x y)
Results
AccuracySegmentsBranch
57.4%1
y
57.4%1
x
57.4%1
%11 = (+.f64 x y)
(*.f64 %11 %11)
57.4%1
(+.f64 x y)
Compiler

Compiled 10 to 21 computations (-110.0% saved)

bsearch0.0ms (0.0%)

bsearch0.0ms (0.0%)

bsearch0.0ms (0.0%)

derivations22.0ms (2.0%)

Stop Event
done
Compiler

Compiled 3 to 7 computations (-133.3% saved)

preprocess13.0ms (1.1%)

Compiler

Compiled 10 to 31 computations (-210.0% saved)

end0.0ms (0.0%)

gc320ms (28.9%)

Allocations
AllocatedPercentPhase
744.5 MiB36.7%sample
641.6 MiB31.6%rewrite
269.5 MiB13.3%reconstruct
138.4 MiB6.8%series
73.8 MiB3.6%preprocess
60.0 MiB3.0%regimes
46.5 MiB2.3%eval
27.7 MiB1.4%prune
26.1 MiB1.3%derivations
0.3 MiB0.0%analyze
0.1 MiB0.0%bsearch
0.0 MiB0.0%start
0.0 MiB0.0%end
2 028.6 MiB100.0%total

Profiling

Loading profile data...