Linear.Quaternion:$clog from linear-1.19.1.3

Time bar (total: 1.7s)

start0.0ms (0.0%)

analyze10.0ms (0.6%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0.0%0.0%99.9%0.1%0.0%0.0%0.0%0
0.0%0.0%99.9%0.1%0.0%0.0%0.0%1
0.0%0.0%99.9%0.1%0.0%0.0%0.0%2
50.0%50.0%50.0%0.1%0.0%0.0%0.0%3
50.0%50.0%50.0%0.1%0.0%0.0%0.0%4
62.5%62.4%37.5%0.1%0.0%0.0%0.0%5
66.7%62.4%31.2%0.1%0.0%6.2%0.0%6
75.0%65.6%21.9%0.1%0.0%12.5%0.0%7
80.0%68.7%17.2%0.1%0.0%14.0%0.0%8
85.7%70.2%11.7%0.1%0.0%18.0%0.0%9
88.9%71.8%9.0%0.1%0.0%19.1%0.0%10
92.3%72.6%6.0%0.1%0.0%21.3%0.0%11
94.1%73.4%4.6%0.1%0.0%22.0%0.0%12
Compiler

Compiled 8 to 7 computations (12.5% saved)

sample379.0ms (22.4%)

Samples
285.0ms8 256×0valid
9.0ms311×0invalid
Precisions
Click to see histograms. Total time spent on operations: 15.0ms
Sqrt: 8.0ms (53.5% of total, 0.0 MiB)
Mul: 4.0ms (26.7% of total, 0.0 MiB)
Add: 3.0ms (20.1% of total, 0.0 MiB)
Bogosity

preprocess44.0ms (2.6%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01738
16938
217438
338138
4119838
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.6%
(sqrt.f64 (+.f64 (*.f64 x x) y))
Symmetry

(abs x)

Compiler

Compiled 2 to 10 computations (-400.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series26.0ms (1.5%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0155738
Stop Event
iter-limit
Counts
5 → 31
Calls
Call 1
Inputs
%1 = (*.f64 x x)
%3 = (+.f64 %1 y)
x
%1
y
%3
(sqrt.f64 %3)
Outputs
%4 = (* x x)
%6 = (pow.f64 x #s(literal 2 binary64))
%9 = (+ %4 y)
%13 = (sqrt %9)
%14 = (sqrt.f64 y)
%23 = (pow.f64 %14 #s(literal 3 binary64))
%27 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %14))
%45 = (/.f64 y %6)
%49 = (*.f64 #s(literal 1/2 binary64) %45)
%51 = (*.f64 x (+.f64 #s(literal 1 binary64) %49))
%53 = (pow.f64 y #s(literal 2 binary64))
%55 = (pow.f64 x #s(literal 4 binary64))
%56 = (/.f64 %53 %55)
%59 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %56 %49)))
%63 = (pow.f64 x #s(literal 6 binary64))
%68 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %56 (fma.f64 #s(literal 1/16 binary64) (/.f64 (pow.f64 y #s(literal 3 binary64)) %63) %49))))
%79 = (sqrt.f64 %6)
%85 = (pow.f64 %79 #s(literal 3 binary64))
%88 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %79))
%103 = (/.f64 %6 y)
%108 = (sqrt.f64 (/.f64 #s(literal 1 binary64) y))
%109 = (*.f64 y %108)
%113 = (*.f64 #s(literal 1/2 binary64) (/.f64 %6 (*.f64 %53 %108)))
%115 = (*.f64 y (+.f64 %108 %113))
%120 = (/.f64 %55 (*.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 %108 #s(literal 3 binary64))))
%123 = (*.f64 y (+.f64 %108 (fma.f64 #s(literal -1/8 binary64) %120 %113)))
%132 = (*.f64 y (+.f64 %108 (fma.f64 #s(literal -1/8 binary64) %120 (fma.f64 #s(literal 1/16 binary64) (/.f64 %63 (*.f64 (pow.f64 y #s(literal 6 binary64)) (pow.f64 %108 #s(literal 5 binary64)))) %113))))
(approx x #s(literal 0 binary64))
(approx x x)
(approx %4 %6)
(approx %9 y)
(approx %9 (+.f64 y %6))
(approx %13 %14)
(approx %13 (+.f64 %14 (*.f64 #s(literal 1/2 binary64) (/.f64 %6 %14))))
(approx %13 (+.f64 %14 (*.f64 %6 (fma.f64 #s(literal -1/8 binary64) (/.f64 %6 %23) %27))))
(approx %13 (+.f64 %14 (*.f64 %6 (fma.f64 %6 (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 %6 (pow.f64 %14 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %23))) %27))))
(approx %9 (*.f64 %6 (+.f64 #s(literal 1 binary64) %45)))
(approx %13 %51)
(approx %13 %59)
(approx %13 %68)
(approx %13 (*.f64 #s(literal -1 binary64) x))
(approx %13 (*.f64 #s(literal -1 binary64) %51))
(approx %13 (*.f64 #s(literal -1 binary64) %59))
(approx %13 (*.f64 #s(literal -1 binary64) %68))
(approx %13 %79)
(approx %13 (+.f64 %79 (*.f64 #s(literal 1/2 binary64) (/.f64 y %79))))
(approx %13 (+.f64 %79 (*.f64 y (fma.f64 #s(literal -1/8 binary64) (/.f64 y %85) %88))))
(approx %13 (+.f64 %79 (*.f64 y (fma.f64 y (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 y (pow.f64 %79 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %85))) %88))))
(approx %9 (*.f64 y (+.f64 #s(literal 1 binary64) %103)))
(approx %13 %109)
(approx %13 %115)
(approx %13 %123)
(approx %13 %132)
(approx %9 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %103) #s(literal 1 binary64)))))
(approx %13 (*.f64 #s(literal -1 binary64) %109))
(approx %13 (*.f64 #s(literal -1 binary64) %115))
(approx %13 (*.f64 #s(literal -1 binary64) %123))
(approx %13 (*.f64 #s(literal -1 binary64) %132))
Calls

6 calls:

TimeVariablePoint
3.0ms
x
inf
3.0ms
y
inf
2.0ms
y
-inf
2.0ms
x
-inf
2.0ms
x
0

rewrite74.0ms (4.4%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0516
0816
12616
27016
321616
465516
0406816
0420514
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
5 → 96
Calls
Call 1
Inputs
%1 = (*.f64 x x)
%3 = (+.f64 %1 y)
x
%1
y
%3
(sqrt.f64 %3)
Outputs
%1 = (fabs.f64 x)
%2 = (sqrt.f64 %1)
%3 = (*.f64 %2 %1)
%4 = (sqrt.f64 %2)
%5 = (*.f64 %3 %4)
%8 = (neg.f64 %2)
%9 = (*.f64 %8 %1)
%12 = (*.f64 %4 %3)
%15 = (neg.f64 %1)
%18 = (neg.f64 x)
%21 = (*.f64 x x)
%27 = (*.f64 %21 %21)
%53 = (*.f64 %18 x)
%67 = (fma.f64 x x y)
%68 = (sqrt.f64 %67)
%70 = (sqrt.f64 (*.f64 %68 %67))
%71 = (sqrt.f64 %68)
%72 = (sqrt.f64 %71)
%76 = (neg.f64 %70)
%77 = (neg.f64 %71)
%83 = (neg.f64 %68)
%87 = (pow.f64 %67 #s(literal 4 binary64))
%90 = (*.f64 %67 %67)
%103 = (neg.f64 %67)
%125 = (neg.f64 %77)
%128 = (sqrt.f64 %70)
x
(*.f64 %5 %4)
(*.f64 %3 %2)
(*.f64 %9 %8)
(*.f64 %8 %9)
(*.f64 %4 %12)
(*.f64 %2 %3)
(*.f64 %15 %15)
(*.f64 %1 %1)
(*.f64 %18 %18)
(*.f64 #s(literal 1 binary64) %21)
%21
(pow.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1/4 binary64))
(pow.f64 %27 #s(literal 1/2 binary64))
(pow.f64 %2 #s(literal 4 binary64))
(pow.f64 %15 #s(literal 2 binary64))
(pow.f64 %1 #s(literal 2 binary64))
(pow.f64 %18 #s(literal 2 binary64))
(pow.f64 %21 #s(literal 1 binary64))
(pow.f64 x #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %27 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %15 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %1 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %18 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64)))
(neg.f64 %53)
(sqrt.f64 %27)
(fabs.f64 (*.f64 %18 %1))
(fabs.f64 (*.f64 x %1))
(fabs.f64 (*.f64 %15 x))
(fabs.f64 (*.f64 %1 x))
(fabs.f64 %53)
(fabs.f64 %21)
y
(*.f64 (*.f64 %70 %72) %72)
(*.f64 %70 %71)
(*.f64 %76 %77)
(*.f64 %77 %76)
(*.f64 %72 (*.f64 %72 %70))
(*.f64 %71 %70)
(*.f64 %83 %83)
(*.f64 #s(literal 1 binary64) %67)
(*.f64 %68 %68)
(pow.f64 %87 #s(literal 1/4 binary64))
(pow.f64 %71 #s(literal 4 binary64))
(pow.f64 %90 #s(literal 1/2 binary64))
(pow.f64 %83 #s(literal 2 binary64))
(pow.f64 %68 #s(literal 2 binary64))
(pow.f64 %67 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %90 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %83 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %68 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %67 #s(literal -1 binary64)))
(neg.f64 %103)
(fma.f64 %5 %4 y)
(fma.f64 %3 %2 y)
(fma.f64 %9 %8 y)
(fma.f64 %8 %9 y)
(fma.f64 %4 %12 y)
(fma.f64 %2 %3 y)
(fma.f64 %15 %15 y)
(fma.f64 %1 %1 y)
(fma.f64 %18 %18 y)
(fma.f64 #s(literal 1 binary64) %21 y)
%67
(-.f64 y %53)
(-.f64 %21 (neg.f64 y))
(sqrt.f64 %90)
(fabs.f64 %103)
(fabs.f64 %67)
(+.f64 y %21)
(+.f64 %21 y)
(*.f64 (*.f64 %71 %72) %72)
(*.f64 %125 %125)
(*.f64 %125 %71)
(*.f64 %128 %72)
(*.f64 %77 %77)
(*.f64 %72 (*.f64 %72 %71))
(*.f64 %72 %128)
(*.f64 %71 %125)
(*.f64 %71 %71)
(*.f64 #s(literal 1 binary64) %68)
(pow.f64 %77 #s(literal 2 binary64))
(pow.f64 %87 #s(literal 1/8 binary64))
(pow.f64 %71 #s(literal 2 binary64))
(pow.f64 %90 #s(literal 1/4 binary64))
(pow.f64 %68 #s(literal 1 binary64))
(pow.f64 %67 #s(literal 1/2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %71 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %68 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %67 #s(literal -1/2 binary64)))
(neg.f64 %83)
%68
(fabs.f64 %83)
(fabs.f64 %68)

reconstruct10.0ms (0.6%)

Counts
127 → 61
Compiler

Compiled 127 to 257 computations (-102.4% saved)

eval5.0ms (0.3%)

Compiler

Compiled 58 to 205 computations (-253.4% saved)

prune2.0ms (0.1%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New53558
Fresh000
Picked101
Done000
Total54559
Accuracy
100.0%
Counts
59 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.5%
%21 = (fabs.f64 x)
%22 = (sqrt.f64 %21)
(sqrt.f64 (fma.f64 %22 (*.f64 %22 %21) y))
66.6%
(sqrt.f64 (fma.f64 x x y))
38.6%
(sqrt.f64 (approx (+ (* x x) y) y))
64.1%
(approx (sqrt (+ (* x x) y)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 y (pow.f64 x #s(literal 2 binary64)))))))
1.3%
(approx (sqrt (+ (* x x) y)) (*.f64 #s(literal -1 binary64) x))
Compiler

Compiled 5 to 20 computations (-300.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series32.0ms (1.9%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03732486
Stop Event
iter-limit
Counts
23 → 80
Calls
Call 1
Inputs
%3 = (pow.f64 x #s(literal 2 binary64))
%5 = (+ (* x x) y)
%6 = (approx %5 y)
%9 = (/.f64 y %3)
%10 = (*.f64 #s(literal 1/2 binary64) %9)
%11 = (+.f64 #s(literal 1 binary64) %10)
%12 = (*.f64 x %11)
%13 = (sqrt %5)
%16 = (*.f64 #s(literal -1 binary64) x)
%18 = (fabs.f64 x)
%19 = (sqrt.f64 %18)
%20 = (*.f64 %19 %18)
%21 = (fma.f64 x x y)
%23 = (fma.f64 %19 %20 y)
x
y
#s(literal 2 binary64)
%3
%6
#s(literal 1/2 binary64)
#s(literal 1 binary64)
%9
%10
%11
%12
(approx %13 %12)
#s(literal -1 binary64)
%16
(approx %13 %16)
%18
%19
%20
%21
(sqrt.f64 %21)
%23
(sqrt.f64 %6)
(sqrt.f64 %23)
Outputs
%5 = (pow x 2)
%7 = (pow.f64 x #s(literal 2 binary64))
%11 = (+ (* x x) y)
%15 = (/ y %5)
%16 = (/.f64 y %7)
%19 = (* 1/2 %15)
%21 = (*.f64 #s(literal 1/2 binary64) %16)
%24 = (+ 1 %19)
%25 = (fma.f64 #s(literal 1/2 binary64) y %7)
%28 = (* x %24)
%30 = (*.f64 #s(literal 1/2 binary64) (/.f64 y x))
%34 = (sqrt %11)
%35 = (sqrt.f64 y)
%43 = (pow.f64 %35 #s(literal 3 binary64))
%47 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %35))
%70 = (fabs x)
%71 = (fabs.f64 x)
%73 = (sqrt %70)
%74 = (sqrt.f64 %71)
%76 = (* %73 %70)
%80 = (+ (* %73 %76) y)
%82 = (*.f64 %71 (pow.f64 %74 #s(literal 2 binary64)))
%83 = (+.f64 y %82)
%85 = (sqrt %80)
%92 = (+.f64 #s(literal 1 binary64) %21)
%94 = (*.f64 x %92)
%96 = (pow.f64 y #s(literal 2 binary64))
%98 = (pow.f64 x #s(literal 4 binary64))
%99 = (/.f64 %96 %98)
%102 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %99 %21)))
%104 = (pow.f64 y #s(literal 3 binary64))
%106 = (pow.f64 x #s(literal 6 binary64))
%111 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %99 (fma.f64 #s(literal 1/16 binary64) (/.f64 %104 %106) %21))))
%113 = (/.f64 #s(literal 1 binary64) x)
%114 = (fabs.f64 %113)
%117 = (sqrt.f64 %114)
%120 = (pow.f64 x #s(literal 3 binary64))
%124 = (pow.f64 %117 #s(literal 2 binary64))
%125 = (*.f64 %114 %124)
%128 = (/.f64 y %98)
%132 = (sqrt.f64 %125)
%137 = (*.f64 #s(literal 1/2 binary64) (/.f64 y (*.f64 %98 %132)))
%142 = (pow.f64 x #s(literal 8 binary64))
%145 = (/.f64 %96 (*.f64 %142 (pow.f64 %132 #s(literal 3 binary64))))
%151 = (pow.f64 x #s(literal 12 binary64))
%173 = (fabs.f64 (/.f64 #s(literal -1 binary64) x))
%178 = (sqrt.f64 (*.f64 #s(literal -1 binary64) %173))
%186 = (*.f64 %173 (pow.f64 %178 #s(literal 2 binary64)))
%194 = (sqrt.f64 (*.f64 #s(literal -1 binary64) %186))
%199 = (*.f64 #s(literal 1/2 binary64) (/.f64 y (*.f64 %98 %194)))
%205 = (/.f64 %96 (*.f64 %142 (pow.f64 %194 #s(literal 3 binary64))))
%220 = (sqrt.f64 %7)
%226 = (pow.f64 %220 #s(literal 3 binary64))
%229 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %220))
%245 = (sqrt.f64 %82)
%251 = (pow.f64 %245 #s(literal 3 binary64))
%254 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %245))
%269 = (/.f64 %7 y)
%273 = (/.f64 #s(literal 1 binary64) y)
%274 = (/.f64 #s(literal 1 binary64) %7)
%279 = (/.f64 x y)
%283 = (sqrt.f64 %273)
%284 = (*.f64 y %283)
%286 = (*.f64 %96 %283)
%288 = (*.f64 #s(literal 1/2 binary64) (/.f64 %7 %286))
%290 = (*.f64 y (+.f64 %283 %288))
%294 = (*.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 %283 #s(literal 3 binary64)))
%295 = (/.f64 %98 %294)
%298 = (*.f64 y (+.f64 %283 (fma.f64 #s(literal -1/8 binary64) %295 %288)))
%302 = (*.f64 (pow.f64 y #s(literal 6 binary64)) (pow.f64 %283 #s(literal 5 binary64)))
%307 = (*.f64 y (+.f64 %283 (fma.f64 #s(literal -1/8 binary64) %295 (fma.f64 #s(literal 1/16 binary64) (/.f64 %106 %302) %288))))
%309 = (/.f64 %82 y)
%314 = (*.f64 #s(literal 1/2 binary64) (/.f64 %82 %286))
%316 = (*.f64 y (+.f64 %283 %314))
%321 = (/.f64 (*.f64 (pow.f64 %71 #s(literal 2 binary64)) (pow.f64 %74 #s(literal 4 binary64))) %294)
%324 = (*.f64 y (+.f64 %283 (fma.f64 #s(literal -1/8 binary64) %321 %314)))
%333 = (*.f64 y (+.f64 %283 (fma.f64 #s(literal -1/8 binary64) %321 (fma.f64 #s(literal 1/16 binary64) (/.f64 (*.f64 (pow.f64 %71 #s(literal 3 binary64)) (pow.f64 %74 #s(literal 6 binary64))) %302) %314))))
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 %7)
(approx %11 y)
(approx %11 (+.f64 y %7))
(approx %15 %16)
(approx %19 %21)
(approx %24 (/.f64 %25 %7))
(approx %28 %30)
(approx %28 (/.f64 %25 x))
(approx %34 %35)
(approx %34 (+.f64 %35 (*.f64 #s(literal 1/2 binary64) (/.f64 %7 %35))))
(approx %34 (+.f64 %35 (*.f64 %7 (fma.f64 #s(literal -1/8 binary64) (/.f64 %7 %43) %47))))
(approx %34 (+.f64 %35 (*.f64 %7 (fma.f64 %7 (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 %7 (pow.f64 %35 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %43))) %47))))
(approx (* -1 x) (*.f64 #s(literal -1 binary64) x))
(approx %70 %71)
(approx %73 %74)
(approx %76 (*.f64 %71 %74))
(approx %80 %83)
(approx %85 (sqrt.f64 %83))
(approx %11 (*.f64 %7 (+.f64 #s(literal 1 binary64) %16)))
(approx %24 #s(literal 1 binary64))
(approx %24 %92)
(approx %28 %94)
(approx %34 %102)
(approx %34 %111)
(approx %70 (*.f64 %7 %114))
(approx %73 (*.f64 x %117))
(approx %76 (*.f64 %120 (*.f64 %114 %117)))
(approx %80 (*.f64 %98 %125))
(approx %80 (*.f64 %98 (fma.f64 %114 %124 %128)))
(approx %85 (*.f64 %7 %132))
(approx %85 (*.f64 %7 (+.f64 %132 %137)))
(approx %85 (*.f64 %7 (+.f64 %132 (fma.f64 #s(literal -1/8 binary64) %145 %137))))
(approx %85 (*.f64 %7 (+.f64 %132 (fma.f64 #s(literal -1/8 binary64) %145 (fma.f64 #s(literal 1/16 binary64) (/.f64 %104 (*.f64 %151 (pow.f64 %132 #s(literal 5 binary64)))) %137)))))
(approx %28 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1/2 binary64) %16) #s(literal 1 binary64)))))
(approx %34 (*.f64 #s(literal -1 binary64) %94))
(approx %34 (*.f64 #s(literal -1 binary64) %102))
(approx %34 (*.f64 #s(literal -1 binary64) %111))
(approx %70 (*.f64 #s(literal -1 binary64) (*.f64 %7 %173)))
(approx %73 (*.f64 #s(literal -1 binary64) (*.f64 x %178)))
(approx %76 (*.f64 %120 (*.f64 %173 %178)))
(approx %80 (*.f64 #s(literal -1 binary64) (*.f64 %98 %186)))
(approx %80 (*.f64 %98 (fma.f64 #s(literal -1 binary64) %186 %128)))
(approx %85 (*.f64 %7 %194))
(approx %85 (*.f64 %7 (+.f64 %194 %199)))
(approx %85 (*.f64 %7 (+.f64 %194 (fma.f64 #s(literal -1/8 binary64) %205 %199))))
(approx %85 (*.f64 %7 (+.f64 %194 (fma.f64 #s(literal -1/8 binary64) %205 (fma.f64 #s(literal 1/16 binary64) (/.f64 %104 (*.f64 %151 (pow.f64 %194 #s(literal 5 binary64)))) %199)))))
(approx %28 (+.f64 x %30))
(approx %34 %220)
(approx %34 (+.f64 %220 (*.f64 #s(literal 1/2 binary64) (/.f64 y %220))))
(approx %34 (+.f64 %220 (*.f64 y (fma.f64 #s(literal -1/8 binary64) (/.f64 y %226) %229))))
(approx %34 (+.f64 %220 (*.f64 y (fma.f64 y (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 y (pow.f64 %220 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %226))) %229))))
(approx %80 %82)
(approx %85 %245)
(approx %85 (+.f64 %245 (*.f64 #s(literal 1/2 binary64) (/.f64 y %245))))
(approx %85 (+.f64 %245 (*.f64 y (fma.f64 #s(literal -1/8 binary64) (/.f64 y %251) %254))))
(approx %85 (+.f64 %245 (*.f64 y (fma.f64 y (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 y (pow.f64 %245 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %251))) %254))))
(approx %11 (*.f64 y (+.f64 #s(literal 1 binary64) %269)))
(approx %24 (*.f64 y (+.f64 %273 (*.f64 #s(literal 1/2 binary64) %274))))
(approx %28 (*.f64 y (fma.f64 #s(literal 1/2 binary64) %113 %279)))
(approx %34 %284)
(approx %34 %290)
(approx %34 %298)
(approx %34 %307)
(approx %80 (*.f64 y (+.f64 #s(literal 1 binary64) %309)))
(approx %85 %316)
(approx %85 %324)
(approx %85 %333)
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %269) #s(literal 1 binary64)))))
(approx %24 (*.f64 y (fma.f64 #s(literal 1/2 binary64) %274 %273)))
(approx %28 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %279) (*.f64 #s(literal 1/2 binary64) %113)))))
(approx %34 (*.f64 #s(literal -1 binary64) %284))
(approx %34 (*.f64 #s(literal -1 binary64) %290))
(approx %34 (*.f64 #s(literal -1 binary64) %298))
(approx %34 (*.f64 #s(literal -1 binary64) %307))
(approx %80 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %309) #s(literal 1 binary64)))))
(approx %85 (*.f64 #s(literal -1 binary64) %316))
(approx %85 (*.f64 #s(literal -1 binary64) %324))
(approx %85 (*.f64 #s(literal -1 binary64) %333))
Calls

6 calls:

TimeVariablePoint
6.0ms
y
0
4.0ms
x
inf
3.0ms
y
inf
3.0ms
y
-inf
2.0ms
x
0

rewrite99.0ms (5.8%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026126
041110
1119108
2371100
32690100
04059100
0443397
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
23 → 711
Calls
Call 1
Inputs
%3 = (pow.f64 x #s(literal 2 binary64))
%5 = (+ (* x x) y)
%6 = (approx %5 y)
%9 = (/.f64 y %3)
%10 = (*.f64 #s(literal 1/2 binary64) %9)
%11 = (+.f64 #s(literal 1 binary64) %10)
%12 = (*.f64 x %11)
%13 = (sqrt %5)
%16 = (*.f64 #s(literal -1 binary64) x)
%18 = (fabs.f64 x)
%19 = (sqrt.f64 %18)
%20 = (*.f64 %19 %18)
%21 = (fma.f64 x x y)
%23 = (fma.f64 %19 %20 y)
x
y
#s(literal 2 binary64)
%3
%6
#s(literal 1/2 binary64)
#s(literal 1 binary64)
%9
%10
%11
%12
(approx %13 %12)
#s(literal -1 binary64)
%16
(approx %13 %16)
%18
%19
%20
%21
(sqrt.f64 %21)
%23
(sqrt.f64 %6)
(sqrt.f64 %23)
Outputs
%3 = (neg.f64 x)
%4 = (*.f64 %3 x)
%6 = (*.f64 %4 #s(literal -2 binary64))
%9 = (+.f64 x x)
%10 = (*.f64 x %9)
%12 = (*.f64 x x)
%13 = (*.f64 %12 #s(literal 1/2 binary64))
%15 = (*.f64 %9 %9)
%18 = (*.f64 %12 #s(literal 2 binary64))
%20 = (*.f64 #s(literal 1/2 binary64) x)
%23 = (*.f64 %20 %20)
%25 = (fabs.f64 x)
%26 = (neg.f64 %25)
%27 = (sqrt.f64 %25)
%28 = (*.f64 %26 %27)
%29 = (neg.f64 %27)
%33 = (*.f64 #s(literal 1/2 binary64) %4)
%38 = (*.f64 %27 %25)
%45 = (*.f64 #s(literal 2 binary64) %12)
%48 = (*.f64 %20 x)
%50 = (*.f64 #s(literal 1/2 binary64) %12)
%53 = (pow.f64 x #s(literal 8 binary64))
%57 = (*.f64 %12 %12)
%66 = (/.f64 #s(literal 1 binary64) %12)
%70 = (*.f64 %12 #s(literal 0 binary64))
%72 = (*.f64 #s(literal 0 binary64) %12)
%121 = (*.f64 %3 %27)
%126 = (*.f64 %27 x)
%155 = (+ (pow x 2) y)
%156 = (approx %155 y)
%157 = (sqrt.f64 %156)
%158 = (neg.f64 %157)
%162 = (*.f64 %156 %156)
%180 = (/.f64 #s(literal -2 binary64) x)
%182 = (/.f64 #s(literal -1/2 binary64) x)
%184 = (/.f64 #s(literal 2 binary64) %25)
%186 = (/.f64 #s(literal 1/2 binary64) %25)
%188 = (/.f64 #s(literal 2 binary64) x)
%190 = (/.f64 #s(literal 1/2 binary64) x)
%193 = (/.f64 #s(literal 1/2 binary64) %12)
%195 = (/.f64 y %26)
%198 = (/.f64 y %38)
%199 = (/.f64 #s(literal 1 binary64) %27)
%201 = (/.f64 y #s(literal -1 binary64))
%202 = (/.f64 #s(literal -1 binary64) %12)
%204 = (/.f64 y %27)
%205 = (/.f64 #s(literal 1 binary64) %38)
%207 = (/.f64 y #s(literal 1 binary64))
%209 = (neg.f64 y)
%210 = (/.f64 %209 %12)
%213 = (/.f64 %209 x)
%214 = (/.f64 #s(literal -1 binary64) x)
%216 = (/.f64 y %25)
%217 = (/.f64 #s(literal 1 binary64) %25)
%219 = (/.f64 y x)
%220 = (/.f64 #s(literal 1 binary64) x)
%222 = (*.f64 %182 y)
%224 = (*.f64 %186 y)
%226 = (*.f64 %190 y)
%230 = (/.f64 y %12)
%233 = (*.f64 %230 #s(literal 1/2 binary64))
%251 = (/.f64 %209 %25)
%258 = (*.f64 %209 #s(literal 1 binary64))
%264 = (*.f64 %219 #s(literal 1/2 binary64))
%286 = (*.f64 #s(literal 1/2 binary64) y)
%287 = (*.f64 %286 %180)
%289 = (*.f64 %286 %184)
%291 = (*.f64 %286 %188)
%293 = (*.f64 %286 #s(literal 1 binary64))
%295 = (/.f64 #s(literal 1/2 binary64) %26)
%298 = (/.f64 #s(literal 1/2 binary64) %27)
%300 = (/.f64 #s(literal 1/2 binary64) %38)
%302 = (/.f64 #s(literal 1/2 binary64) %4)
%310 = (*.f64 %216 #s(literal 1/2 binary64))
%316 = (*.f64 %219 #s(literal -1/2 binary64))
%324 = (*.f64 #s(literal -1/2 binary64) y)
%329 = (*.f64 %202 #s(literal 1/2 binary64))
%352 = (/.f64 %286 %26)
%354 = (/.f64 %286 %38)
%356 = (/.f64 %286 %27)
%358 = (/.f64 %286 #s(literal -1 binary64))
%360 = (/.f64 %286 #s(literal 1 binary64))
%363 = (*.f64 %3 #s(literal 2 binary64))
%366 = (*.f64 %25 #s(literal 2 binary64))
%368 = (*.f64 %4 #s(literal 2 binary64))
%375 = (*.f64 #s(literal 2 binary64) %3)
%377 = (*.f64 #s(literal 2 binary64) %25)
%382 = (*.f64 #s(literal -1/2 binary64) %230)
%384 = (*.f64 #s(literal 2 binary64) %4)
%403 = (-.f64 %230 #s(literal -2 binary64))
%405 = (fma.f64 #s(literal 1/2 binary64) y %12)
%407 = (fma.f64 %230 #s(literal 1/2 binary64) #s(literal 1 binary64))
%427 = (fma.f64 #s(literal 2 binary64) x %219)
%429 = (/.f64 %405 %4)
%479 = (*.f64 #s(literal 2 binary64) %324)
%482 = (*.f64 #s(literal 2 binary64) %286)
%493 = (fma.f64 %219 #s(literal 1/2 binary64) x)
%505 = (fma.f64 #s(literal -1/2 binary64) %230 #s(literal -1 binary64))
%587 = (*.f64 %286 x)
%614 = (/.f64 x #s(literal 1 binary64))
%623 = (/.f64 x %26)
%626 = (/.f64 x #s(literal -1 binary64))
%628 = (/.f64 x %3)
%630 = (/.f64 x %27)
%633 = (/.f64 x %38)
%636 = (/.f64 x %25)
%638 = (/.f64 x %4)
%682 = (sqrt %155)
%683 = (approx %682 %493)
%706 = (approx %682 %3)
%711 = (*.f64 %25 #s(literal 1/2 binary64))
%713 = (*.f64 %29 #s(literal -1 binary64))
%715 = (*.f64 %29 #s(literal 1 binary64))
%717 = (*.f64 %27 #s(literal -1 binary64))
%719 = (*.f64 #s(literal -1 binary64) %29)
%721 = (*.f64 #s(literal -1 binary64) %27)
%724 = (fabs.f64 %9)
%726 = (neg.f64 %29)
%728 = (sqrt.f64 %38)
%729 = (sqrt.f64 %27)
%740 = (*.f64 #s(literal 1/2 binary64) %25)
%742 = (fabs.f64 %20)
%761 = (*.f64 %25 #s(literal 0 binary64))
%763 = (*.f64 #s(literal 0 binary64) %25)
%834 = (*.f64 %25 %12)
%861 = (fma.f64 x x y)
%862 = (sqrt.f64 %861)
%863 = (neg.f64 %862)
%864 = (*.f64 %863 %863)
%865 = (*.f64 %862 %862)
%866 = (*.f64 #s(literal 1 binary64) %861)
%867 = (*.f64 %861 %861)
%868 = (pow.f64 %867 #s(literal 1/2 binary64))
%869 = (pow.f64 %863 #s(literal 2 binary64))
%870 = (pow.f64 %861 #s(literal 1 binary64))
%871 = (pow.f64 %862 #s(literal 2 binary64))
%873 = (/.f64 #s(literal 1 binary64) (pow.f64 %867 #s(literal -1/2 binary64)))
%875 = (/.f64 #s(literal 1 binary64) (pow.f64 %861 #s(literal -1 binary64)))
%877 = (/.f64 #s(literal 1 binary64) (pow.f64 %862 #s(literal -2 binary64)))
%879 = (neg.f64 (fma.f64 %3 x %209))
%881 = (neg.f64 (-.f64 %4 y))
%883 = (neg.f64 (neg.f64 %861))
%884 = (fma.f64 %6 #s(literal 1/2 binary64) y)
%885 = (fma.f64 %10 #s(literal 1/2 binary64) y)
%886 = (fma.f64 %13 #s(literal 2 binary64) y)
%887 = (fma.f64 %15 #s(literal 1/4 binary64) y)
%888 = (fma.f64 %18 #s(literal 1/2 binary64) y)
%889 = (fma.f64 %9 %20 y)
%890 = (fma.f64 #s(literal 4 binary64) %23 y)
%891 = (fma.f64 %28 %29 y)
%892 = (fma.f64 %26 %26 y)
%893 = (fma.f64 %29 %28 y)
%894 = (fma.f64 #s(literal -2 binary64) %33 y)
%895 = (fma.f64 %4 #s(literal -1 binary64) y)
%896 = (fma.f64 %3 %3 y)
%897 = (fma.f64 %38 %27 y)
%898 = (fma.f64 %27 %38 y)
%899 = (fma.f64 %25 %25 y)
%900 = (fma.f64 #s(literal -1 binary64) %4 y)
%901 = (fma.f64 #s(literal 1 binary64) %12 y)
%902 = (fma.f64 #s(literal 1/2 binary64) %45 y)
%903 = (fma.f64 %12 #s(literal 1 binary64) y)
%904 = (fma.f64 #s(literal 2 binary64) %48 y)
%905 = (fma.f64 #s(literal 2 binary64) %50 y)
%906 = (-.f64 %12 %209)
%907 = (-.f64 y %4)
%908 = (sqrt.f64 %867)
%910 = (fabs.f64 (*.f64 %863 %862))
%912 = (fabs.f64 (*.f64 %862 %863))
%913 = (fabs.f64 %861)
%914 = (+.f64 %12 y)
%917 = (+.f64 y (*.f64 (neg.f64 %28) %27))
%919 = (+.f64 y (*.f64 %726 %38))
%920 = (+.f64 y %12)
%921 = (sqrt.f64 %862)
%922 = (*.f64 %921 %921)
%923 = (*.f64 #s(literal 1 binary64) %862)
%924 = (pow.f64 %921 #s(literal 2 binary64))
%925 = (pow.f64 %861 #s(literal 1/2 binary64))
%926 = (pow.f64 %862 #s(literal 1 binary64))
%928 = (/.f64 #s(literal 1 binary64) (pow.f64 %862 #s(literal -1 binary64)))
%930 = (/.f64 #s(literal 1 binary64) (pow.f64 %861 #s(literal -1/2 binary64)))
%932 = (fabs.f64 (neg.f64 %863))
%933 = (fabs.f64 %863)
%934 = (fabs.f64 %862)
%935 = (sqrt.f64 %157)
x
y
#s(literal 2 binary64)
(*.f64 %6 #s(literal 1/2 binary64))
(*.f64 %10 #s(literal 1/2 binary64))
(*.f64 %13 #s(literal 2 binary64))
(*.f64 %15 #s(literal 1/4 binary64))
(*.f64 %18 #s(literal 1/2 binary64))
(*.f64 %9 %20)
(*.f64 #s(literal 4 binary64) %23)
(*.f64 %28 %29)
(*.f64 %26 %26)
(*.f64 %29 %28)
(*.f64 #s(literal -2 binary64) %33)
(*.f64 %4 #s(literal -1 binary64))
(*.f64 %3 %3)
(*.f64 %38 %27)
(*.f64 %27 %38)
(*.f64 %25 %25)
(*.f64 #s(literal -1 binary64) %4)
(*.f64 #s(literal 1 binary64) %12)
(*.f64 #s(literal 1/2 binary64) %45)
(*.f64 %12 #s(literal 1 binary64))
(*.f64 #s(literal 2 binary64) %48)
(*.f64 #s(literal 2 binary64) %50)
%12
(pow.f64 %53 #s(literal 1/4 binary64))
(pow.f64 %26 #s(literal 2 binary64))
(pow.f64 %29 #s(literal 4 binary64))
(pow.f64 %57 #s(literal 1/2 binary64))
(pow.f64 %3 #s(literal 2 binary64))
(pow.f64 %27 #s(literal 4 binary64))
(pow.f64 %25 #s(literal 2 binary64))
(pow.f64 %12 #s(literal 1 binary64))
(pow.f64 x #s(literal 2 binary64))
(/.f64 %45 #s(literal 2 binary64))
(/.f64 %18 #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) %66)
(neg.f64 %4)
(fma.f64 %6 #s(literal 1/2 binary64) %70)
(fma.f64 %6 #s(literal 1/2 binary64) %72)
(fma.f64 %10 #s(literal 1/2 binary64) %70)
(fma.f64 %10 #s(literal 1/2 binary64) %72)
(fma.f64 %13 #s(literal 2 binary64) %70)
(fma.f64 %13 #s(literal 2 binary64) %72)
(fma.f64 %15 #s(literal 1/4 binary64) %70)
(fma.f64 %15 #s(literal 1/4 binary64) %72)
(fma.f64 %18 #s(literal 1/2 binary64) %70)
(fma.f64 %18 #s(literal 1/2 binary64) %72)
(fma.f64 %9 %20 %70)
(fma.f64 %9 %20 %72)
(fma.f64 #s(literal 4 binary64) %23 %70)
(fma.f64 #s(literal 4 binary64) %23 %72)
(fma.f64 %28 %29 %70)
(fma.f64 %28 %29 %72)
(fma.f64 %26 %26 %70)
(fma.f64 %26 %26 %72)
(fma.f64 %29 %28 %70)
(fma.f64 %29 %28 %72)
(fma.f64 #s(literal -2 binary64) %33 %70)
(fma.f64 #s(literal -2 binary64) %33 %72)
(fma.f64 %4 #s(literal -1 binary64) %70)
(fma.f64 %4 #s(literal -1 binary64) %72)
(fma.f64 %3 %3 %70)
(fma.f64 %3 %3 %72)
(fma.f64 %38 %27 %70)
(fma.f64 %38 %27 %72)
(fma.f64 %27 %38 %70)
(fma.f64 %27 %38 %72)
(fma.f64 %25 %25 %70)
(fma.f64 %25 %25 %72)
(fma.f64 #s(literal -1 binary64) %4 %70)
(fma.f64 #s(literal -1 binary64) %4 %72)
(fma.f64 #s(literal 1 binary64) %12 %70)
(fma.f64 #s(literal 1 binary64) %12 %72)
(fma.f64 #s(literal 1/2 binary64) %45 %70)
(fma.f64 #s(literal 1/2 binary64) %45 %72)
(fma.f64 #s(literal 1/2 binary64) %12 %50)
(fma.f64 %12 #s(literal 1 binary64) %70)
(fma.f64 %12 #s(literal 1 binary64) %72)
(fma.f64 %12 #s(literal 1/2 binary64) %13)
(fma.f64 #s(literal 2 binary64) %48 %70)
(fma.f64 #s(literal 2 binary64) %48 %72)
(fma.f64 #s(literal 2 binary64) %50 %70)
(fma.f64 #s(literal 2 binary64) %50 %72)
(fma.f64 x x %70)
(fma.f64 x x %72)
(sqrt.f64 %57)
(fabs.f64 (*.f64 %121 %29))
(fabs.f64 (*.f64 %121 %27))
(fabs.f64 (*.f64 %126 %29))
(fabs.f64 (*.f64 %126 %27))
(fabs.f64 (*.f64 %29 %121))
(fabs.f64 (*.f64 %29 %126))
(fabs.f64 (*.f64 %27 %121))
(fabs.f64 (*.f64 %27 %126))
(fabs.f64 (*.f64 %25 %3))
(fabs.f64 (*.f64 %3 %25))
(fabs.f64 (*.f64 x %25))
(fabs.f64 (*.f64 %25 x))
(fabs.f64 %4)
(fabs.f64 %12)
(+.f64 %13 %13)
(+.f64 %50 %50)
(+.f64 %12 %70)
(+.f64 %12 %72)
(*.f64 %158 %158)
(*.f64 %157 %157)
(*.f64 #s(literal 1 binary64) %156)
(pow.f64 %162 #s(literal 1/2 binary64))
(pow.f64 %158 #s(literal 2 binary64))
(pow.f64 %157 #s(literal 2 binary64))
(pow.f64 %156 #s(literal 1 binary64))
%156
(/.f64 #s(literal 1 binary64) (pow.f64 %162 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %157 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %156 #s(literal -1 binary64)))
(sqrt.f64 %162)
(fabs.f64 (*.f64 %158 %157))
(fabs.f64 (*.f64 %157 %158))
(fabs.f64 %156)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
(*.f64 (*.f64 y %180) %182)
(*.f64 (*.f64 y %184) %186)
(*.f64 (*.f64 y %188) %190)
(*.f64 (*.f64 y #s(literal 2 binary64)) %193)
(*.f64 %195 (/.f64 #s(literal 1 binary64) %26))
(*.f64 %198 %199)
(*.f64 %201 %202)
(*.f64 %204 %205)
(*.f64 %207 %66)
(*.f64 %210 #s(literal -1 binary64))
(*.f64 %202 %209)
(*.f64 %213 %214)
(*.f64 %216 %217)
(*.f64 %219 %220)
(*.f64 %180 %222)
(*.f64 %184 %224)
(*.f64 %188 %226)
(*.f64 %66 y)
(*.f64 %209 %202)
(*.f64 %230 #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) %230)
(*.f64 #s(literal 2 binary64) %233)
(*.f64 y %66)
(pow.f64 %230 #s(literal 1 binary64))
(/.f64 (*.f64 y #s(literal -1 binary64)) %4)
(/.f64 (*.f64 %214 y) %3)
(/.f64 (*.f64 %217 y) %25)
(/.f64 (*.f64 #s(literal -1 binary64) y) %4)
(/.f64 (/.f64 %213 #s(literal -1 binary64)) x)
(/.f64 (/.f64 %216 %29) %29)
(/.f64 (/.f64 %216 %27) %27)
(/.f64 %251 %26)
(/.f64 %195 %26)
(/.f64 %198 %27)
(/.f64 %201 %4)
(/.f64 %204 %38)
(/.f64 %207 %12)
(/.f64 %258 %4)
(/.f64 (neg.f64 %213) x)
(/.f64 (neg.f64 %216) %26)
(/.f64 %264 %20)
(/.f64 %210 #s(literal -1 binary64))
(/.f64 %213 %3)
(/.f64 %216 %25)
(/.f64 %219 x)
(/.f64 %209 %4)
(/.f64 %233 #s(literal 1/2 binary64))
(/.f64 %230 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %230 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (/.f64 %3 %213))
(/.f64 #s(literal 1 binary64) (/.f64 %25 %216))
(/.f64 #s(literal 1 binary64) (/.f64 x %219))
(/.f64 #s(literal 1 binary64) (/.f64 %4 %209))
(/.f64 #s(literal 1 binary64) (/.f64 %12 y))
%230
(neg.f64 %210)
(*.f64 %287 %182)
(*.f64 %289 %186)
(*.f64 %291 %190)
(*.f64 %293 %66)
(*.f64 %251 %295)
(*.f64 %195 %295)
(*.f64 %198 %298)
(*.f64 %300 %204)
(*.f64 %201 %302)
(*.f64 %298 %198)
(*.f64 %204 %300)
(*.f64 %207 %193)
(*.f64 %295 %251)
(*.f64 %295 %195)
(*.f64 %302 %201)
(*.f64 %310 %217)
(*.f64 %264 %220)
(*.f64 %193 %207)
(*.f64 %193 y)
(*.f64 %210 #s(literal -1/2 binary64))
(*.f64 %316 %214)
(*.f64 %213 %182)
(*.f64 %216 %186)
(*.f64 %219 %190)
(*.f64 %182 %213)
(*.f64 %186 %216)
(*.f64 %190 %219)
(*.f64 %324 %202)
(*.f64 %286 %66)
(*.f64 #s(literal -1/2 binary64) %210)
(*.f64 %66 %286)
(*.f64 %209 %329)
(*.f64 %209 %302)
%233
(*.f64 #s(literal 1 binary64) %233)
(*.f64 #s(literal 1/2 binary64) %230)
(*.f64 y %193)
(pow.f64 %233 #s(literal 1 binary64))
(/.f64 %222 %3)
(/.f64 %224 %25)
(/.f64 %226 x)
(/.f64 (*.f64 %286 #s(literal -1 binary64)) %4)
(/.f64 %293 %12)
(/.f64 (/.f64 %310 %29) %29)
(/.f64 (/.f64 %310 %27) %27)
(/.f64 (/.f64 %264 %9) #s(literal 1/2 binary64))
(/.f64 (/.f64 %264 #s(literal 2 binary64)) %20)
(/.f64 (/.f64 %324 %25) %26)
(/.f64 %352 %26)
(/.f64 %354 %27)
(/.f64 %356 %38)
(/.f64 %358 %4)
(/.f64 %360 %12)
(/.f64 (*.f64 %213 #s(literal 1 binary64)) %363)
(/.f64 (*.f64 %216 #s(literal 1 binary64)) %366)
(/.f64 %258 %368)
(/.f64 (neg.f64 %310) %26)
(/.f64 %310 %25)
(/.f64 %264 x)
(/.f64 %316 %3)
(/.f64 %213 %375)
(/.f64 %216 %377)
(/.f64 %219 %9)
(/.f64 %324 %4)
(/.f64 %286 %12)
(/.f64 %382 #s(literal -1 binary64))
(/.f64 %209 %384)
(/.f64 %233 #s(literal 1 binary64))
(/.f64 %230 #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %233 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (/.f64 %3 %316))
(/.f64 #s(literal 1 binary64) (/.f64 %25 %310))
(/.f64 #s(literal 1 binary64) (/.f64 x %264))
(/.f64 #s(literal 1 binary64) (/.f64 %4 %324))
(/.f64 #s(literal 1 binary64) (/.f64 %12 %286))
(/.f64 y %45)
(/.f64 y %18)
(neg.f64 %382)
(*.f64 %403 #s(literal 1/2 binary64))
(*.f64 %405 %66)
(*.f64 #s(literal 1 binary64) %407)
(*.f64 #s(literal 1/2 binary64) %403)
(pow.f64 %407 #s(literal 1 binary64))
(/.f64 (/.f64 %405 %26) %26)
(/.f64 (/.f64 %405 %3) %3)
(/.f64 (/.f64 %405 %38) %27)
(/.f64 (/.f64 %405 %27) %38)
(/.f64 (/.f64 %405 %25) %25)
(/.f64 (/.f64 %405 #s(literal -1 binary64)) %4)
(/.f64 (/.f64 %405 #s(literal 1 binary64)) %12)
(/.f64 (/.f64 %405 x) x)
(/.f64 %427 %9)
(/.f64 %429 #s(literal -1 binary64))
(/.f64 (fma.f64 #s(literal 2 binary64) %12 y) %45)
(/.f64 (fma.f64 %233 #s(literal 2 binary64) #s(literal 2 binary64)) #s(literal 2 binary64))
(/.f64 (fma.f64 %3 x %324) %4)
(/.f64 (+.f64 %3 %316) %3)
(/.f64 (+.f64 %25 %310) %25)
(/.f64 (-.f64 %4 %286) %4)
(/.f64 (fma.f64 %316 #s(literal 2 binary64) %375) %363)
(/.f64 (fma.f64 %310 #s(literal 2 binary64) %377) %366)
(/.f64 (fma.f64 %324 #s(literal 2 binary64) %384) %368)
(/.f64 (+.f64 y %45) %18)
(/.f64 (fma.f64 #s(literal 2 binary64) %3 (*.f64 %316 #s(literal 2 binary64))) %375)
(/.f64 (fma.f64 #s(literal 2 binary64) %25 (*.f64 %310 #s(literal 2 binary64))) %377)
(/.f64 (fma.f64 #s(literal 2 binary64) x (*.f64 %264 #s(literal 2 binary64))) %9)
(/.f64 (fma.f64 #s(literal 2 binary64) %4 (*.f64 %324 #s(literal 2 binary64))) %384)
(/.f64 (fma.f64 %316 #s(literal 2 binary64) %363) %363)
(/.f64 (fma.f64 %310 #s(literal 2 binary64) %366) %366)
(/.f64 (fma.f64 %264 #s(literal 2 binary64) %9) %9)
(/.f64 (fma.f64 %324 #s(literal 2 binary64) %368) %368)
(/.f64 (+.f64 y %18) %18)
(/.f64 (fma.f64 #s(literal 2 binary64) %3 (*.f64 #s(literal 2 binary64) %316)) %375)
(/.f64 (fma.f64 #s(literal 2 binary64) %25 (*.f64 #s(literal 2 binary64) %310)) %377)
(/.f64 (fma.f64 #s(literal 2 binary64) %4 %479) %384)
(/.f64 (fma.f64 #s(literal 2 binary64) %12 %482) %45)
(/.f64 (-.f64 %45 %479) %45)
(/.f64 (-.f64 %384 %482) %384)
(/.f64 (neg.f64 %405) %4)
(/.f64 %403 #s(literal 2 binary64))
(/.f64 %405 %12)
(/.f64 %493 x)
(/.f64 %407 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %407 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (/.f64 %12 %405))
(neg.f64 (*.f64 #s(literal -1/2 binary64) %403))
(neg.f64 %429)
(neg.f64 (-.f64 #s(literal -1 binary64) %233))
(neg.f64 %505)
(fma.f64 %287 %182 #s(literal 1 binary64))
(fma.f64 %289 %186 #s(literal 1 binary64))
(fma.f64 %291 %190 #s(literal 1 binary64))
(fma.f64 %293 %66 #s(literal 1 binary64))
(fma.f64 %251 %295 #s(literal 1 binary64))
(fma.f64 %195 %295 #s(literal 1 binary64))
(fma.f64 %198 %298 #s(literal 1 binary64))
(fma.f64 %300 %204 #s(literal 1 binary64))
(fma.f64 %201 %302 #s(literal 1 binary64))
(fma.f64 %298 %198 #s(literal 1 binary64))
(fma.f64 %204 %300 #s(literal 1 binary64))
(fma.f64 %207 %193 #s(literal 1 binary64))
(fma.f64 %295 %251 #s(literal 1 binary64))
(fma.f64 %295 %195 #s(literal 1 binary64))
(fma.f64 %302 %201 #s(literal 1 binary64))
(fma.f64 %310 %217 #s(literal 1 binary64))
(fma.f64 %264 %220 #s(literal 1 binary64))
(fma.f64 %193 %207 #s(literal 1 binary64))
(fma.f64 %193 y #s(literal 1 binary64))
(fma.f64 %403 #s(literal 1/2 binary64) #s(literal 0 binary64))
(fma.f64 %210 #s(literal -1/2 binary64) #s(literal 1 binary64))
(fma.f64 %316 %214 #s(literal 1 binary64))
(fma.f64 %405 %66 #s(literal 0 binary64))
(fma.f64 %213 %182 #s(literal 1 binary64))
(fma.f64 %216 %186 #s(literal 1 binary64))
(fma.f64 %219 %190 #s(literal 1 binary64))
(fma.f64 %182 %213 #s(literal 1 binary64))
(fma.f64 %186 %216 #s(literal 1 binary64))
(fma.f64 %190 %219 #s(literal 1 binary64))
(fma.f64 %324 %202 #s(literal 1 binary64))
(fma.f64 %286 %66 #s(literal 1 binary64))
(fma.f64 #s(literal -1/2 binary64) %210 #s(literal 1 binary64))
(fma.f64 %66 %286 #s(literal 1 binary64))
(fma.f64 %209 %329 #s(literal 1 binary64))
(fma.f64 %209 %302 #s(literal 1 binary64))
%407
(fma.f64 #s(literal 1 binary64) %407 #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) %233 #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) %403 #s(literal 0 binary64))
(fma.f64 #s(literal 1/2 binary64) %230 #s(literal 1 binary64))
(fma.f64 y %193 #s(literal 1 binary64))
(-.f64 %233 #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) %382)
(+.f64 (fma.f64 %193 y #s(literal 1/2 binary64)) #s(literal 1/2 binary64))
(+.f64 %407 #s(literal 0 binary64))
(+.f64 %233 #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (+.f64 #s(literal 0 binary64) %233))
(+.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) %382))
(+.f64 #s(literal 1 binary64) %233)
(+.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1/2 binary64) %233))
(+.f64 #s(literal 1/2 binary64) (-.f64 #s(literal 1/2 binary64) %382))
(*.f64 (*.f64 %407 %9) #s(literal 1/2 binary64))
(*.f64 (*.f64 %407 #s(literal 1 binary64)) x)
(*.f64 (*.f64 %407 #s(literal 2 binary64)) %20)
(*.f64 %9 (*.f64 #s(literal 1/2 binary64) %407))
(*.f64 %20 %403)
(*.f64 %493 #s(literal 1 binary64))
(*.f64 %407 x)
(*.f64 #s(literal 1 binary64) %493)
(*.f64 #s(literal 1/2 binary64) (*.f64 %403 x))
(*.f64 #s(literal 1/2 binary64) (+.f64 %219 %9))
(*.f64 #s(literal 1/2 binary64) %427)
(*.f64 #s(literal 2 binary64) (*.f64 %20 %407))
(*.f64 x %407)
(pow.f64 %493 #s(literal 1 binary64))
(/.f64 (*.f64 x %405) %12)
(/.f64 (*.f64 %405 x) %12)
(/.f64 (fma.f64 %12 x %587) %12)
(/.f64 #s(literal 1 binary64) (pow.f64 %493 #s(literal -1 binary64)))
(neg.f64 (*.f64 %505 x))
(neg.f64 (*.f64 x %505))
(neg.f64 (-.f64 %316 x))
(fma.f64 (*.f64 %20 %66) y x)
(fma.f64 (*.f64 %233 %9) #s(literal 1/2 binary64) x)
(fma.f64 (*.f64 %233 #s(literal 1 binary64)) x x)
(fma.f64 (*.f64 x %182) %213 x)
(fma.f64 (*.f64 x %186) %216 x)
(fma.f64 (*.f64 x %190) %219 x)
(fma.f64 (*.f64 x y) %193 x)
(fma.f64 (*.f64 %20 %209) %202 x)
(fma.f64 %614 %233 x)
(fma.f64 (*.f64 %233 #s(literal 2 binary64)) %20 x)
(fma.f64 (/.f64 #s(literal 1/2 binary64) %9) (/.f64 y #s(literal 1/2 binary64)) x)
(fma.f64 (/.f64 y %9) #s(literal 1 binary64) x)
(fma.f64 %623 %352 x)
(fma.f64 %352 %623 x)
(fma.f64 %626 %382 x)
(fma.f64 %628 %316 x)
(fma.f64 %630 %354 x)
(fma.f64 %354 %630 x)
(fma.f64 %633 %356 x)
(fma.f64 %356 %633 x)
(fma.f64 %636 %310 x)
(fma.f64 %638 %358 x)
(fma.f64 %358 %638 x)
(fma.f64 %360 %220 x)
(fma.f64 %207 %190 x)
(fma.f64 %9 (*.f64 #s(literal 1/2 binary64) %233) x)
(fma.f64 %20 %230 x)
(fma.f64 %587 %66 x)
(fma.f64 %310 %636 x)
(fma.f64 %264 #s(literal 1 binary64) x)
(fma.f64 %220 %360 x)
(fma.f64 %316 %628 x)
%493
(fma.f64 %182 (*.f64 %213 x) x)
(fma.f64 %186 (*.f64 %216 x) x)
(fma.f64 %190 (*.f64 %219 x) x)
(fma.f64 %190 %207 x)
(fma.f64 #s(literal 1/4 binary64) (/.f64 y %20) x)
(fma.f64 %286 %220 x)
(fma.f64 %382 %626 x)
(fma.f64 %66 %587 x)
(fma.f64 %209 (*.f64 %202 %20) x)
(fma.f64 %233 %614 x)
(fma.f64 %233 x x)
(fma.f64 %230 %20 x)
(fma.f64 #s(literal 1 binary64) %264 x)
(fma.f64 #s(literal 1/2 binary64) %219 x)
(fma.f64 #s(literal 2 binary64) (*.f64 %20 %233) x)
(fma.f64 y (*.f64 %193 x) x)
(fma.f64 y (*.f64 %66 %20) x)
(fma.f64 y %190 x)
(fma.f64 x %233 x)
(-.f64 %264 %3)
(-.f64 x %316)
(+.f64 %264 x)
(+.f64 x %264)
(*.f64 #s(literal 1 binary64) %683)
(pow.f64 %683 #s(literal 1 binary64))
%683
(/.f64 #s(literal 1 binary64) (pow.f64 %683 #s(literal -1 binary64)))
#s(literal -1 binary64)
(*.f64 (*.f64 #s(literal -1 binary64) %9) #s(literal 1/2 binary64))
(*.f64 (*.f64 x #s(literal -2 binary64)) #s(literal 1/2 binary64))
(*.f64 (neg.f64 %9) #s(literal 1/2 binary64))
(*.f64 %9 #s(literal -1/2 binary64))
(*.f64 #s(literal -2 binary64) %20)
(*.f64 %3 #s(literal 1 binary64))
(*.f64 #s(literal -1 binary64) x)
(*.f64 #s(literal 1 binary64) %3)
(*.f64 #s(literal 2 binary64) (*.f64 %20 #s(literal -1 binary64)))
(*.f64 #s(literal 2 binary64) (neg.f64 %20))
(*.f64 x #s(literal -1 binary64))
(pow.f64 %3 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) %214)
%3
(*.f64 #s(literal 1 binary64) %706)
(pow.f64 %706 #s(literal 1 binary64))
%706
(/.f64 #s(literal 1 binary64) (pow.f64 %706 #s(literal -1 binary64)))
(*.f64 %711 #s(literal 2 binary64))
(*.f64 %713 %713)
(*.f64 %715 %715)
(*.f64 %717 %717)
(*.f64 %719 %719)
(*.f64 %721 %721)
(*.f64 %366 #s(literal 1/2 binary64))
(*.f64 %724 #s(literal 1/2 binary64))
(*.f64 %726 %726)
(*.f64 %728 %729)
(*.f64 %729 %728)
(*.f64 %26 #s(literal -1 binary64))
(*.f64 %29 %715)
(*.f64 %29 %29)
(*.f64 %27 %27)
(*.f64 %25 #s(literal 1 binary64))
(*.f64 #s(literal -1 binary64) %26)
(*.f64 #s(literal 1 binary64) %25)
(*.f64 #s(literal 1/2 binary64) %377)
(*.f64 #s(literal 2 binary64) %740)
(*.f64 #s(literal 2 binary64) %742)
(pow.f64 %713 #s(literal 2 binary64))
(pow.f64 %715 #s(literal 2 binary64))
(pow.f64 %717 #s(literal 2 binary64))
(pow.f64 %719 #s(literal 2 binary64))
(pow.f64 %721 #s(literal 2 binary64))
(pow.f64 %726 #s(literal 2 binary64))
(pow.f64 %53 #s(literal 1/8 binary64))
(pow.f64 %29 #s(literal 2 binary64))
(pow.f64 %57 #s(literal 1/4 binary64))
(pow.f64 %27 #s(literal 2 binary64))
(pow.f64 %25 #s(literal 1 binary64))
(pow.f64 %12 #s(literal 1/2 binary64))
(/.f64 %377 #s(literal 2 binary64))
(/.f64 %366 #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) %217)
(neg.f64 %26)
(fma.f64 %711 #s(literal 2 binary64) %761)
(fma.f64 %711 #s(literal 2 binary64) %763)
(fma.f64 %713 %713 %761)
(fma.f64 %713 %713 %763)
(fma.f64 %715 %715 %761)
(fma.f64 %715 %715 %763)
(fma.f64 %717 %717 %761)
(fma.f64 %717 %717 %763)
(fma.f64 %719 %719 %761)
(fma.f64 %719 %719 %763)
(fma.f64 %721 %721 %761)
(fma.f64 %721 %721 %763)
(fma.f64 %366 #s(literal 1/2 binary64) %761)
(fma.f64 %366 #s(literal 1/2 binary64) %763)
(fma.f64 %724 #s(literal 1/2 binary64) %761)
(fma.f64 %724 #s(literal 1/2 binary64) %763)
(fma.f64 %726 %726 %761)
(fma.f64 %726 %726 %763)
(fma.f64 %728 %729 %761)
(fma.f64 %728 %729 %763)
(fma.f64 %729 %728 %761)
(fma.f64 %729 %728 %763)
(fma.f64 %26 #s(literal -1 binary64) %761)
(fma.f64 %26 #s(literal -1 binary64) %763)
(fma.f64 %29 %715 %761)
(fma.f64 %29 %715 %763)
(fma.f64 %29 %29 %761)
(fma.f64 %29 %29 %763)
(fma.f64 %27 %27 %761)
(fma.f64 %27 %27 %763)
(fma.f64 %25 #s(literal 1 binary64) %761)
(fma.f64 %25 #s(literal 1 binary64) %763)
(fma.f64 %25 #s(literal 1/2 binary64) %711)
(fma.f64 #s(literal -1 binary64) %26 %761)
(fma.f64 #s(literal -1 binary64) %26 %763)
(fma.f64 #s(literal 1 binary64) %25 %761)
(fma.f64 #s(literal 1 binary64) %25 %763)
(fma.f64 #s(literal 1/2 binary64) %377 %761)
(fma.f64 #s(literal 1/2 binary64) %377 %763)
(fma.f64 #s(literal 1/2 binary64) %25 %740)
(fma.f64 #s(literal 2 binary64) %740 %761)
(fma.f64 #s(literal 2 binary64) %740 %763)
(fma.f64 #s(literal 2 binary64) %742 %761)
(fma.f64 #s(literal 2 binary64) %742 %763)
(sqrt.f64 %12)
(fabs.f64 %26)
(fabs.f64 %3)
(fabs.f64 %25)
%25
(+.f64 %711 %711)
(+.f64 %740 %740)
(+.f64 %25 %761)
(+.f64 %25 %763)
(*.f64 %729 %729)
(*.f64 %27 #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) %27)
(pow.f64 %729 #s(literal 2 binary64))
(pow.f64 %57 #s(literal 1/8 binary64))
(pow.f64 %27 #s(literal 1 binary64))
(pow.f64 %25 #s(literal 1/2 binary64))
(pow.f64 %12 #s(literal 1/4 binary64))
(/.f64 #s(literal 1 binary64) %199)
%27
(fabs.f64 %726)
(fabs.f64 %29)
(fabs.f64 %27)
(*.f64 %26 %29)
(*.f64 %29 %26)
(*.f64 %38 #s(literal 1 binary64))
%38
(*.f64 %25 %27)
(*.f64 #s(literal 1 binary64) %38)
(pow.f64 (*.f64 %57 %12) #s(literal 1/4 binary64))
(pow.f64 %834 #s(literal 1/2 binary64))
(pow.f64 %57 #s(literal 3/8 binary64))
(pow.f64 %38 #s(literal 1 binary64))
(pow.f64 %27 #s(literal 3 binary64))
(pow.f64 %25 #s(literal 3/2 binary64))
(pow.f64 %12 #s(literal 3/4 binary64))
(/.f64 #s(literal 1 binary64) %205)
(sqrt.f64 %834)
(fabs.f64 (neg.f64 %121))
(fabs.f64 (*.f64 %29 %3))
(fabs.f64 (*.f64 %29 x))
(fabs.f64 (*.f64 %3 %29))
(fabs.f64 (*.f64 x %29))
(fabs.f64 %28)
(fabs.f64 %121)
(fabs.f64 %126)
(fabs.f64 %38)
%864
%865
%866
%868
%869
%870
%871
%873
%875
%877
%879
%881
%883
%884
%885
%886
%887
%888
%889
%890
%891
%892
%893
%894
%895
%896
%897
%898
%899
%900
%901
%902
%903
%904
%905
%861
%906
%907
%908
%910
%912
%913
%914
%917
%919
%920
%922
%923
%924
%925
%926
%928
%930
%862
%932
%933
%934
%864
%865
%866
%868
%869
%870
%871
%873
%875
%877
%879
%881
%883
%884
%885
%886
%887
%888
%889
%890
%891
%892
%893
%894
%895
%896
%897
%898
%899
%900
%901
%902
%903
%904
%905
%861
%906
%907
%908
%910
%912
%913
%914
%917
%919
%920
(*.f64 %935 %935)
(*.f64 #s(literal 1 binary64) %157)
(pow.f64 %935 #s(literal 2 binary64))
(pow.f64 %157 #s(literal 1 binary64))
(pow.f64 %156 #s(literal 1/2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %157 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %156 #s(literal -1/2 binary64)))
%157
(fabs.f64 (neg.f64 %158))
(fabs.f64 %158)
(fabs.f64 %157)
%922
%923
%924
%925
%926
%928
%930
%862
%932
%933
%934

reconstruct83.0ms (4.9%)

Counts
791 → 202
Compiler

Compiled 791 to 1 187 computations (-50.1% saved)

eval32.0ms (1.9%)

Compiler

Compiled 184 to 684 computations (-271.7% saved)

prune5.0ms (0.3%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New1822184
Fresh000
Picked235
Done000
Total1845189
Accuracy
100.0%
Counts
189 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.5%
%24 = (fabs.f64 x)
%25 = (sqrt.f64 %24)
(sqrt.f64 (fma.f64 %25 (*.f64 %25 %24) y))
66.6%
(sqrt.f64 (fma.f64 x x y))
38.6%
(sqrt.f64 (approx (+ (* x x) y) y))
1.3%
(approx (sqrt (+ (pow x 2) y)) (neg.f64 x))
64.0%
(approx (sqrt (+ (* x x) y)) (*.f64 x (approx (+ 1 (* 1/2 (/ y (pow x 2)))) #s(literal 1 binary64))))
Compiler

Compiled 5 to 13 computations (-160.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series21.0ms (1.3%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0178928
Stop Event
iter-limit
Counts
7 → 37
Calls
Call 1
Inputs
%2 = (neg.f64 x)
%7 = (pow x 2)
%11 = (approx (+ 1 (* 1/2 (/ y %7))) #s(literal 1 binary64))
%15 = (*.f64 x %11)
x
#s(literal 1 binary64)
%2
%11
(approx (sqrt (+ %7 y)) %2)
%15
(approx (sqrt (+ (* x x) y)) %15)
Outputs
%12 = (pow x 2)
%15 = (+ 1 (* 1/2 (/ y %12)))
%18 = (pow.f64 x #s(literal 2 binary64))
%19 = (/.f64 y %18)
%20 = (*.f64 #s(literal 1/2 binary64) %19)
%22 = (fma.f64 #s(literal 1/2 binary64) y %18)
%26 = (sqrt (+ %12 y))
%27 = (sqrt.f64 y)
%35 = (pow.f64 %27 #s(literal 3 binary64))
%39 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %27))
%57 = (* x %15)
%59 = (*.f64 #s(literal 1/2 binary64) (/.f64 y x))
%64 = (+.f64 #s(literal 1 binary64) %20)
%66 = (*.f64 x %64)
%68 = (pow.f64 y #s(literal 2 binary64))
%70 = (pow.f64 x #s(literal 4 binary64))
%71 = (/.f64 %68 %70)
%74 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %71 %20)))
%78 = (pow.f64 x #s(literal 6 binary64))
%83 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %71 (fma.f64 #s(literal 1/16 binary64) (/.f64 (pow.f64 y #s(literal 3 binary64)) %78) %20))))
%97 = (sqrt.f64 %18)
%103 = (pow.f64 %97 #s(literal 3 binary64))
%106 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %97))
%123 = (/.f64 #s(literal 1 binary64) y)
%124 = (/.f64 #s(literal 1 binary64) %18)
%129 = (sqrt.f64 %123)
%130 = (*.f64 y %129)
%134 = (*.f64 #s(literal 1/2 binary64) (/.f64 %18 (*.f64 %68 %129)))
%136 = (*.f64 y (+.f64 %129 %134))
%141 = (/.f64 %70 (*.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 %129 #s(literal 3 binary64))))
%144 = (*.f64 y (+.f64 %129 (fma.f64 #s(literal -1/8 binary64) %141 %134)))
%153 = (*.f64 y (+.f64 %129 (fma.f64 #s(literal -1/8 binary64) %141 (fma.f64 #s(literal 1/16 binary64) (/.f64 %78 (*.f64 (pow.f64 y #s(literal 6 binary64)) (pow.f64 %129 #s(literal 5 binary64)))) %134))))
%155 = (/.f64 #s(literal 1 binary64) x)
%156 = (/.f64 x y)
(approx x #s(literal 0 binary64))
(approx x x)
(approx (neg x) (*.f64 #s(literal -1 binary64) x))
(approx %15 %20)
(approx %15 (/.f64 %22 %18))
(approx %26 %27)
(approx %26 (+.f64 %27 (*.f64 #s(literal 1/2 binary64) (/.f64 %18 %27))))
(approx %26 (+.f64 %27 (*.f64 %18 (fma.f64 #s(literal -1/8 binary64) (/.f64 %18 %35) %39))))
(approx %26 (+.f64 %27 (*.f64 %18 (fma.f64 %18 (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 %18 (pow.f64 %27 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %35))) %39))))
(approx %57 %59)
(approx %57 (/.f64 %22 x))
(approx %15 #s(literal 1 binary64))
(approx %15 %64)
(approx %26 %66)
(approx %26 %74)
(approx %26 %83)
(approx %26 (*.f64 #s(literal -1 binary64) %66))
(approx %26 (*.f64 #s(literal -1 binary64) %74))
(approx %26 (*.f64 #s(literal -1 binary64) %83))
(approx %57 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1/2 binary64) %19) #s(literal 1 binary64)))))
(approx %26 %97)
(approx %26 (+.f64 %97 (*.f64 #s(literal 1/2 binary64) (/.f64 y %97))))
(approx %26 (+.f64 %97 (*.f64 y (fma.f64 #s(literal -1/8 binary64) (/.f64 y %103) %106))))
(approx %26 (+.f64 %97 (*.f64 y (fma.f64 y (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 y (pow.f64 %97 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %103))) %106))))
(approx %57 (+.f64 x %59))
(approx %15 (*.f64 y (+.f64 %123 (*.f64 #s(literal 1/2 binary64) %124))))
(approx %26 %130)
(approx %26 %136)
(approx %26 %144)
(approx %26 %153)
(approx %57 (*.f64 y (fma.f64 #s(literal 1/2 binary64) %155 %156)))
(approx %15 (*.f64 y (fma.f64 #s(literal 1/2 binary64) %124 %123)))
(approx %26 (*.f64 #s(literal -1 binary64) %130))
(approx %26 (*.f64 #s(literal -1 binary64) %136))
(approx %26 (*.f64 #s(literal -1 binary64) %144))
(approx %26 (*.f64 #s(literal -1 binary64) %153))
(approx %57 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) %156) (*.f64 #s(literal 1/2 binary64) %155)))))
Calls

6 calls:

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

rewrite175.0ms (10.3%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01957
02157
17257
223357
3135357
0480657
0521352
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
7 → 23
Calls
Call 1
Inputs
%2 = (neg.f64 x)
%7 = (pow x 2)
%11 = (approx (+ 1 (* 1/2 (/ y %7))) #s(literal 1 binary64))
%15 = (*.f64 x %11)
x
#s(literal 1 binary64)
%2
%11
(approx (sqrt (+ %7 y)) %2)
%15
(approx (sqrt (+ (* x x) y)) %15)
Outputs
%2 = (neg.f64 x)
%10 = (pow x 2)
%15 = (approx (+ (/ (/ y %10) 2) 1) #s(literal 1 binary64))
%21 = (sqrt (+ %10 y))
%22 = (approx %21 %2)
%27 = (*.f64 %15 x)
%33 = (approx %21 %27)
x
#s(literal 1 binary64)
(*.f64 #s(literal 1 binary64) %2)
(pow.f64 %2 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal -1 binary64) x))
%2
(*.f64 #s(literal 1 binary64) %15)
(pow.f64 %15 #s(literal 1 binary64))
%15
(/.f64 #s(literal 1 binary64) (pow.f64 %15 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %22)
(pow.f64 %22 #s(literal 1 binary64))
%22
(/.f64 #s(literal 1 binary64) (pow.f64 %22 #s(literal -1 binary64)))
%27
(*.f64 #s(literal 1 binary64) %27)
(*.f64 x %15)
(pow.f64 %27 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %27 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %33)
(pow.f64 %33 #s(literal 1 binary64))
%33
(/.f64 #s(literal 1 binary64) (pow.f64 %33 #s(literal -1 binary64)))

reconstruct7.0ms (0.4%)

Counts
60 → 43
Compiler

Compiled 60 to 152 computations (-153.3% saved)

eval8.0ms (0.5%)

Compiler

Compiled 41 to 138 computations (-236.6% saved)

prune3.0ms (0.2%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New40141
Fresh000
Picked022
Done033
Total40646
Accuracy
100.0%
Counts
46 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.5%
%28 = (fabs.f64 x)
%29 = (sqrt.f64 %28)
(sqrt.f64 (fma.f64 %29 (*.f64 %29 %28) y))
66.6%
(sqrt.f64 (fma.f64 x x y))
38.6%
(sqrt.f64 (approx (+ (* x x) y) y))
2.6%
(approx (sqrt (+ (pow x 2) y)) (neg.f64 (approx x #s(literal 0 binary64))))
1.3%
(approx (sqrt (+ (pow x 2) y)) (neg.f64 x))
64.0%
(approx (sqrt (+ (* x x) y)) (*.f64 x (approx (+ 1 (* 1/2 (/ y (pow x 2)))) #s(literal 1 binary64))))
Compiler

Compiled 6 to 15 computations (-150.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series9.0ms (0.5%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0139686
Stop Event
iter-limit
Counts
5 → 25
Calls
Call 1
Inputs
%2 = (approx x #s(literal 0 binary64))
%3 = (neg.f64 %2)
x
#s(literal 0 binary64)
%2
%3
(approx (sqrt (+ (pow x 2) y)) %3)
Outputs
%12 = (sqrt (+ (pow x 2) y))
%13 = (sqrt.f64 y)
%17 = (pow.f64 x #s(literal 2 binary64))
%24 = (pow.f64 %13 #s(literal 3 binary64))
%28 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %13))
%47 = (*.f64 #s(literal 1/2 binary64) (/.f64 y %17))
%49 = (*.f64 x (+.f64 #s(literal 1 binary64) %47))
%51 = (pow.f64 y #s(literal 2 binary64))
%53 = (pow.f64 x #s(literal 4 binary64))
%54 = (/.f64 %51 %53)
%57 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %54 %47)))
%61 = (pow.f64 x #s(literal 6 binary64))
%66 = (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/8 binary64) %54 (fma.f64 #s(literal 1/16 binary64) (/.f64 (pow.f64 y #s(literal 3 binary64)) %61) %47))))
%74 = (sqrt.f64 %17)
%80 = (pow.f64 %74 #s(literal 3 binary64))
%83 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %74))
%99 = (sqrt.f64 (/.f64 #s(literal 1 binary64) y))
%100 = (*.f64 y %99)
%104 = (*.f64 #s(literal 1/2 binary64) (/.f64 %17 (*.f64 %51 %99)))
%106 = (*.f64 y (+.f64 %99 %104))
%111 = (/.f64 %53 (*.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 %99 #s(literal 3 binary64))))
%114 = (*.f64 y (+.f64 %99 (fma.f64 #s(literal -1/8 binary64) %111 %104)))
%123 = (*.f64 y (+.f64 %99 (fma.f64 #s(literal -1/8 binary64) %111 (fma.f64 #s(literal 1/16 binary64) (/.f64 %61 (*.f64 (pow.f64 y #s(literal 6 binary64)) (pow.f64 %99 #s(literal 5 binary64)))) %104))))
(approx x #s(literal 0 binary64))
(approx x x)
(approx (neg x) (*.f64 #s(literal -1 binary64) x))
(approx %12 %13)
(approx %12 (+.f64 %13 (*.f64 #s(literal 1/2 binary64) (/.f64 %17 %13))))
(approx %12 (+.f64 %13 (*.f64 %17 (fma.f64 #s(literal -1/8 binary64) (/.f64 %17 %24) %28))))
(approx %12 (+.f64 %13 (*.f64 %17 (fma.f64 %17 (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 %17 (pow.f64 %13 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %24))) %28))))
(approx %12 %49)
(approx %12 %57)
(approx %12 %66)
(approx %12 (*.f64 #s(literal -1 binary64) %49))
(approx %12 (*.f64 #s(literal -1 binary64) %57))
(approx %12 (*.f64 #s(literal -1 binary64) %66))
(approx %12 %74)
(approx %12 (+.f64 %74 (*.f64 #s(literal 1/2 binary64) (/.f64 y %74))))
(approx %12 (+.f64 %74 (*.f64 y (fma.f64 #s(literal -1/8 binary64) (/.f64 y %80) %83))))
(approx %12 (+.f64 %74 (*.f64 y (fma.f64 y (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 y (pow.f64 %74 #s(literal 5 binary64)))) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %80))) %83))))
(approx %12 %100)
(approx %12 %106)
(approx %12 %114)
(approx %12 %123)
(approx %12 (*.f64 #s(literal -1 binary64) %100))
(approx %12 (*.f64 #s(literal -1 binary64) %106))
(approx %12 (*.f64 #s(literal -1 binary64) %114))
(approx %12 (*.f64 #s(literal -1 binary64) %123))
Calls

6 calls:

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

rewrite124.0ms (7.3%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01020
01120
13120
26520
319320
498120
0423020
0438919
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
5 → 14
Calls
Call 1
Inputs
%2 = (approx x #s(literal 0 binary64))
%3 = (neg.f64 %2)
x
#s(literal 0 binary64)
%2
%3
(approx (sqrt (+ (pow x 2) y)) %3)
Outputs
%3 = (approx x #s(literal 0 binary64))
%9 = (neg.f64 %3)
%19 = (approx (sqrt (+ y (pow x 2))) %9)
x
#s(literal 0 binary64)
(*.f64 #s(literal 1 binary64) %3)
(pow.f64 %3 #s(literal 1 binary64))
%3
(/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %9)
(pow.f64 %9 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %9 #s(literal -1 binary64)))
%9
(*.f64 #s(literal 1 binary64) %19)
(pow.f64 %19 #s(literal 1 binary64))
%19
(/.f64 #s(literal 1 binary64) (pow.f64 %19 #s(literal -1 binary64)))

reconstruct6.0ms (0.3%)

Counts
39 → 29
Compiler

Compiled 39 to 116 computations (-197.4% saved)

eval5.0ms (0.3%)

Compiler

Compiled 25 to 104 computations (-316.0% saved)

prune3.0ms (0.2%)

Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New25025
Fresh000
Picked011
Done055
Total25631
Accuracy
100.0%
Counts
31 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.5%
%28 = (fabs.f64 x)
%29 = (sqrt.f64 %28)
(sqrt.f64 (fma.f64 %29 (*.f64 %29 %28) y))
66.6%
(sqrt.f64 (fma.f64 x x y))
38.6%
(sqrt.f64 (approx (+ (* x x) y) y))
2.6%
(approx (sqrt (+ (pow x 2) y)) (neg.f64 (approx x #s(literal 0 binary64))))
1.3%
(approx (sqrt (+ (pow x 2) y)) (neg.f64 x))
64.0%
(approx (sqrt (+ (* x x) y)) (*.f64 x (approx (+ 1 (* 1/2 (/ y (pow x 2)))) #s(literal 1 binary64))))
Compiler

Compiled 6 to 15 computations (-150.0% saved)

regimes60.0ms (3.5%)

Accuracy

Total 3.7b remaining (2.2%)

Threshold costs 0.5b (0.3%)

3.2b85.7%
0.5b0.0%
0.0b-50.0%
0.0b100.0%
-0.0b-0.0%

Counts
1 → 1
2 → 1
3 → 1
5 → 2
6 → 2
Calls
Call 1
Inputs
(approx (sqrt (+ (pow x 2) y)) (neg.f64 x))
Outputs
(approx (sqrt (+ (pow x 2) y)) (neg.f64 x))
Call 2
Inputs
%5 = (sqrt (+ (pow x 2) y))
(approx %5 (neg.f64 x))
(approx %5 (neg.f64 (approx x #s(literal 0 binary64))))
Outputs
(approx (sqrt (+ (pow x 2) y)) (neg.f64 (approx x #s(literal 0 binary64))))
Call 3
Inputs
%5 = (sqrt (+ (pow x 2) y))
(approx %5 (neg.f64 x))
(approx %5 (neg.f64 (approx x #s(literal 0 binary64))))
(sqrt.f64 (approx (+ (* x x) y) y))
Outputs
(sqrt.f64 (approx (+ (* x x) y) y))
Call 4
Inputs
%2 = (pow x 2)
%5 = (sqrt (+ %2 y))
%13 = (+ (* x x) y)
%16 = (sqrt %13)
(approx %5 (neg.f64 x))
(approx %5 (neg.f64 (approx x #s(literal 0 binary64))))
(sqrt.f64 (approx %13 y))
(approx %16 (*.f64 #s(literal -1 binary64) x))
(approx %16 (*.f64 x (approx (+ 1 (* 1/2 (/ y %2))) #s(literal 1 binary64))))
Outputs
%3 = (+ (* x x) y)
(sqrt.f64 (approx %3 y))
(approx (sqrt %3) (*.f64 x (approx (+ 1 (* 1/2 (/ y (pow x 2)))) #s(literal 1 binary64))))
Call 5
Inputs
%2 = (pow x 2)
%5 = (sqrt (+ %2 y))
%13 = (+ (* x x) y)
%16 = (sqrt %13)
(approx %5 (neg.f64 x))
(approx %5 (neg.f64 (approx x #s(literal 0 binary64))))
(sqrt.f64 (approx %13 y))
(approx %16 (*.f64 #s(literal -1 binary64) x))
(approx %16 (*.f64 x (approx (+ 1 (* 1/2 (/ y %2))) #s(literal 1 binary64))))
(sqrt.f64 (fma.f64 x x y))
Outputs
(sqrt.f64 (fma.f64 x x y))
(approx (sqrt (+ (* x x) y)) (*.f64 x (approx (+ 1 (* 1/2 (/ y (pow x 2)))) #s(literal 1 binary64))))
Calls

5 calls:

11.0ms
x
10.0ms
y
10.0ms
(+.f64 (*.f64 x x) y)
9.0ms
(sqrt.f64 (+.f64 (*.f64 x x) y))
8.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
1.3%1
y
1.3%1
x
1.3%1
(sqrt.f64 (+.f64 (*.f64 x x) y))
1.3%1
(+.f64 (*.f64 x x) y)
1.3%1
(*.f64 x x)
Compiler

Compiled 14 to 32 computations (-128.6% saved)

bsearch1.0ms (0.0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
9.866192892177983e+199
8.473395092726803e+201
Compiler

Compiled 1 to 2 computations (-100.0% saved)

bsearch0.0ms (0.0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.0341808318832874e-99
6.495055715523653e-90
Compiler

Compiled 1 to 2 computations (-100.0% saved)

bsearch0.0ms (0.0%)

bsearch0.0ms (0.0%)

bsearch0.0ms (0.0%)

derivations39.0ms (2.3%)

Stop Event
done
Compiler

Compiled 5 to 17 computations (-240.0% saved)

preprocess24.0ms (1.4%)

Compiler

Compiled 16 to 74 computations (-362.5% saved)

end0.0ms (0.0%)

gc407ms (24.0%)

Allocations
AllocatedPercentPhase
610.1 MiB32.0%rewrite
538.9 MiB28.2%sample
267.3 MiB14.0%reconstruct
154.1 MiB8.1%series
106.5 MiB5.6%preprocess
95.1 MiB5.0%eval
66.6 MiB3.5%regimes
32.1 MiB1.7%derivations
23.0 MiB1.2%prune
12.6 MiB0.7%analyze
2.7 MiB0.1%bsearch
0.0 MiB0.0%start
0.0 MiB0.0%end
1 909.0 MiB100.0%total

Profiling

Loading profile data...