A quarter-circle in the lower-left quadrant

Time bar (total: 1.7s)

start0.0ms (0.0%)

analyze108.0ms (6.2%)

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
0.0%0.0%99.9%0.1%0.0%0.0%0.0%3
12.5%12.5%87.4%0.1%0.0%0.0%0.0%4
31.3%31.2%68.7%0.1%0.0%0.0%0.0%5
31.3%31.2%68.7%0.1%0.0%0.0%0.0%6
37.5%37.5%62.4%0.1%0.0%0.0%0.0%7
51.6%51.5%48.4%0.1%0.0%0.0%0.0%8
67.2%67.1%32.8%0.1%0.0%0.0%0.0%9
74.6%74.5%25.4%0.1%0.0%0.0%0.0%10
83.2%83.1%16.8%0.1%0.0%0.0%0.0%11
87.0%86.9%13.0%0.1%0.0%0.0%0.0%12
Compiler

Compiled 15 to 11 computations (26.7% saved)

sample719.0ms (41.3%)

Samples
627.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 194.0ms
ival-pow2: 111.0ms (57.3% of total, 68.4 MiB)
ival-sub!: 29.0ms (15.0% of total, 15.4 MiB)
ival-add!: 26.0ms (13.4% of total, 16.2 MiB)
ival-fmax: 18.0ms (9.3% of total, 4.5 MiB)
adjust: 10.0ms (5.2% of total, 4.6 MiB)
Bogosity

preprocess89.0ms (5.1%)

Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02888
19984
221684
343784
486184
5281584
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fmax.f64 (-.f64 (+.f64 (pow.f64 y #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)) (fmax.f64 x y))
Symmetry

(sort x y)

Compiler

Compiled 2 to 20 computations (-900.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series10.0ms (0.6%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046229
Stop Event
iter-limit
Counts
10 → 15
Calls
Call 1
Inputs
%2 = (pow.f64 y #s(literal 2 binary64))
%4 = (pow.f64 x #s(literal 2 binary64))
%5 = (+.f64 %2 %4)
%7 = (-.f64 %5 #s(literal 1/2 binary64))
%8 = (fmax.f64 x y)
y
#s(literal 2 binary64)
%2
x
%4
%5
#s(literal 1/2 binary64)
%7
%8
(fmax.f64 %7 %8)
Outputs
%6 = (pow x 2)
%8 = (pow.f64 x #s(literal 2 binary64))
%11 = (+ (pow y 2) %6)
%12 = (pow.f64 y #s(literal 2 binary64))
%14 = (+.f64 %8 %12)
%17 = (- %11 1/2)
%21 = (-.f64 %14 #s(literal 1/2 binary64))
%23 = (fmax x y)
%24 = (fmax.f64 x y)
%31 = (+.f64 #s(literal 1 binary64) (/.f64 %12 %8))
%43 = (+.f64 #s(literal 1 binary64) (/.f64 %8 %12))
(approx y #s(literal 0 binary64))
(approx x x)
(approx %6 %8)
(approx %11 %12)
(approx %11 %14)
(approx %17 (-.f64 %12 #s(literal 1/2 binary64)))
(approx %17 %21)
(approx %23 %24)
(approx (fmax %17 %23) (fmax.f64 %21 %24))
(approx %11 (*.f64 %8 %31))
(approx %17 (*.f64 %8 (-.f64 %31 (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %8)))))
(approx y y)
(approx %17 (-.f64 %8 #s(literal 1/2 binary64)))
(approx %11 (*.f64 %12 %43))
(approx %17 (*.f64 %12 (-.f64 %43 (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %12)))))
Calls

6 calls:

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

rewrite181.0ms (10.4%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01042
01642
14242
210142
328442
470142
5237942
0441142
0485037
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
10 → 148
Calls
Call 1
Inputs
%2 = (pow.f64 y #s(literal 2 binary64))
%4 = (pow.f64 x #s(literal 2 binary64))
%5 = (+.f64 %2 %4)
%7 = (-.f64 %5 #s(literal 1/2 binary64))
%8 = (fmax.f64 x y)
y
#s(literal 2 binary64)
%2
x
%4
%5
#s(literal 1/2 binary64)
%7
%8
(fmax.f64 %7 %8)
Outputs
%2 = (*.f64 y y)
%3 = (*.f64 %2 %2)
%5 = (pow.f64 %3 #s(literal -1/2 binary64))
%7 = (fabs.f64 y)
%8 = (sqrt.f64 %7)
%9 = (*.f64 %8 %7)
%12 = (neg.f64 %7)
%15 = (neg.f64 y)
%45 = (*.f64 %15 y)
%67 = (*.f64 x x)
%68 = (*.f64 %67 %67)
%69 = (pow.f64 %68 #s(literal -1/2 binary64))
%71 = (fabs.f64 x)
%72 = (sqrt.f64 %71)
%73 = (*.f64 %72 %71)
%76 = (neg.f64 %71)
%79 = (neg.f64 x)
%102 = (neg.f64 %67)
%123 = (fma.f64 x x %2)
%134 = (neg.f64 %123)
%155 = (fma.f64 y y #s(literal -1/2 binary64))
%156 = (fma.f64 x x %155)
%175 = (fma.f64 x x #s(literal -1/2 binary64))
%209 = (fmax.f64 x y)
%215 = (fmax.f64 %209 %156)
y
#s(literal 2 binary64)
(*.f64 %5 %3)
(*.f64 %9 %8)
(*.f64 %8 %9)
(*.f64 %12 %12)
(*.f64 %7 %7)
(*.f64 %15 %15)
(*.f64 #s(literal 1 binary64) %2)
%2
(pow.f64 (pow.f64 y #s(literal 8 binary64)) #s(literal 1/4 binary64))
(pow.f64 %3 #s(literal 1/2 binary64))
(pow.f64 %8 #s(literal 4 binary64))
(pow.f64 %12 #s(literal 2 binary64))
(pow.f64 %7 #s(literal 2 binary64))
(pow.f64 %15 #s(literal 2 binary64))
(pow.f64 %2 #s(literal 1 binary64))
(pow.f64 y #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) %5)
(/.f64 #s(literal 1 binary64) (pow.f64 %12 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %7 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %15 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %2 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal -2 binary64)))
(neg.f64 %45)
(sqrt.f64 %3)
(fabs.f64 (*.f64 %15 %12))
(fabs.f64 (*.f64 y %12))
(fabs.f64 (*.f64 %15 %7))
(fabs.f64 (*.f64 y %7))
(fabs.f64 (*.f64 %12 %15))
(fabs.f64 (*.f64 %7 %15))
(fabs.f64 (*.f64 %12 y))
(fabs.f64 (*.f64 %7 y))
(fabs.f64 %45)
(fabs.f64 %2)
x
(*.f64 %69 %68)
(*.f64 %73 %72)
(*.f64 %72 %73)
(*.f64 %76 %76)
(*.f64 %71 %71)
(*.f64 %79 %79)
(*.f64 #s(literal 1 binary64) %67)
%67
(pow.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1/4 binary64))
(pow.f64 %68 #s(literal 1/2 binary64))
(pow.f64 %72 #s(literal 4 binary64))
(pow.f64 %76 #s(literal 2 binary64))
(pow.f64 %71 #s(literal 2 binary64))
(pow.f64 %79 #s(literal 2 binary64))
(pow.f64 %67 #s(literal 1 binary64))
(pow.f64 x #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) %69)
(/.f64 #s(literal 1 binary64) (pow.f64 %76 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %71 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %79 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %67 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64)))
(neg.f64 %102)
(sqrt.f64 %68)
(fabs.f64 (*.f64 %79 %76))
(fabs.f64 (*.f64 x %76))
(fabs.f64 (*.f64 %79 %71))
(fabs.f64 (*.f64 x %71))
(fabs.f64 (*.f64 %76 %79))
(fabs.f64 (*.f64 %71 %79))
(fabs.f64 (*.f64 %76 x))
(fabs.f64 (*.f64 %71 x))
(fabs.f64 %102)
(fabs.f64 %67)
(*.f64 #s(literal 1 binary64) %123)
(pow.f64 %123 #s(literal 1 binary64))
(/.f64 (-.f64 %68 %3) (-.f64 %67 %2))
(/.f64 (-.f64 %3 %68) (-.f64 %2 %67))
(/.f64 #s(literal 1 binary64) (pow.f64 %123 #s(literal -1 binary64)))
(neg.f64 %134)
(fma.f64 %69 %68 %2)
(fma.f64 %5 %3 %67)
(fma.f64 %73 %72 %2)
(fma.f64 %9 %8 %67)
(fma.f64 %8 %9 %67)
(fma.f64 %72 %73 %2)
(fma.f64 %76 %76 %2)
(fma.f64 %12 %12 %67)
(fma.f64 %7 %7 %67)
(fma.f64 %71 %71 %2)
(fma.f64 %15 %15 %67)
(fma.f64 %79 %79 %2)
(fma.f64 #s(literal 1 binary64) %67 %2)
(fma.f64 #s(literal 1 binary64) %2 %67)
%123
(fma.f64 y y %67)
(-.f64 %67 %45)
(-.f64 %2 %102)
(+.f64 %67 %2)
(+.f64 %2 %67)
#s(literal 1/2 binary64)
(*.f64 #s(literal 1 binary64) %156)
(pow.f64 %156 #s(literal 1 binary64))
(/.f64 (fma.f64 %123 #s(literal 2 binary64) #s(literal -1 binary64)) #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 %123 #s(literal 2 binary64)) #s(literal 1 binary64)) #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 %123 #s(literal 1 binary64)) #s(literal 1/2 binary64)) #s(literal 1 binary64))
(/.f64 (-.f64 (*.f64 %123 #s(literal 4 binary64)) #s(literal 2 binary64)) #s(literal 4 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %156 #s(literal -1 binary64)))
(neg.f64 (-.f64 #s(literal 1/2 binary64) %123))
(fma.f64 %69 %68 %155)
(fma.f64 %5 %3 %175)
(fma.f64 %73 %72 %155)
(fma.f64 %9 %8 %175)
(fma.f64 %8 %9 %175)
(fma.f64 %72 %73 %155)
(fma.f64 %76 %76 %155)
(fma.f64 %12 %12 %175)
(fma.f64 %7 %7 %175)
(fma.f64 %71 %71 %155)
(fma.f64 %15 %15 %175)
(fma.f64 %79 %79 %155)
(fma.f64 #s(literal 1 binary64) %155 %67)
(fma.f64 #s(literal 1 binary64) %175 %2)
(fma.f64 #s(literal 1 binary64) %123 #s(literal -1/2 binary64))
(fma.f64 #s(literal 1 binary64) %67 %155)
(fma.f64 #s(literal 1 binary64) %2 %175)
%156
(fma.f64 y y %175)
(-.f64 %155 %102)
(-.f64 %175 %45)
(-.f64 #s(literal -1/2 binary64) %134)
(-.f64 %156 #s(literal 0 binary64))
(-.f64 %123 #s(literal 1/2 binary64))
(-.f64 %67 (-.f64 #s(literal 1/2 binary64) %2))
(-.f64 %2 (-.f64 #s(literal 1/2 binary64) %67))
(+.f64 %155 %67)
(+.f64 %175 %2)
(+.f64 #s(literal -1/2 binary64) %123)
(+.f64 %123 #s(literal -1/2 binary64))
(+.f64 %67 %155)
(+.f64 %2 %175)
(*.f64 #s(literal 1 binary64) %209)
%209
(fmax.f64 y x)
(pow.f64 %209 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %209 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %215)
%215
(fmax.f64 %156 %209)
(pow.f64 %215 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %215 #s(literal -1 binary64)))

reconstruct21.0ms (1.2%)

Counts
163 → 49
Compiler

Compiled 163 to 240 computations (-47.2% saved)

eval9.0ms (0.5%)

Compiler

Compiled 46 to 191 computations (-315.2% saved)

prune2.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New45146
Fresh000
Picked101
Done000
Total46147
Accuracy
100.0%
Counts
47 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fmax.f64 (fma.f64 x x (fma.f64 y y #s(literal -1/2 binary64))) (fmax.f64 x y))
Compiler

Compiled 1 to 7 computations (-600.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series6.0ms (0.4%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048185
Stop Event
iter-limit
Counts
7 → 14
Calls
Call 1
Inputs
%2 = (fmax.f64 x y)
%4 = (fma.f64 y y #s(literal -1/2 binary64))
%5 = (fma.f64 x x %4)
y
x
%2
#s(literal -1/2 binary64)
%4
%5
(fmax.f64 %5 %2)
Outputs
%5 = (fmax x y)
%6 = (fmax.f64 x y)
%11 = (+ (* y y) -1/2)
%12 = (+ (* x x) %11)
%14 = (pow.f64 y #s(literal 2 binary64))
%18 = (pow.f64 x #s(literal 2 binary64))
%20 = (-.f64 (+.f64 %18 %14) #s(literal 1/2 binary64))
%41 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %14))
(approx y #s(literal 0 binary64))
(approx x x)
(approx %5 %6)
(approx %12 (-.f64 %14 #s(literal 1/2 binary64)))
(approx %12 %20)
(approx (fmax %12 %5) (fmax.f64 %20 %6))
(approx %12 %18)
(approx %12 (*.f64 %18 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 %14 %18)) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %18)))))
(approx y y)
(approx %11 #s(literal -1/2 binary64))
(approx %12 (-.f64 %18 #s(literal 1/2 binary64)))
(approx %11 %14)
(approx %11 (*.f64 %14 (-.f64 #s(literal 1 binary64) %41)))
(approx %12 (*.f64 %14 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 %18 %14)) %41)))
Calls

6 calls:

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

rewrite141.0ms (8.1%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0728
01328
14528
213028
344328
4107828
0425528
0448728
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
7 → 89
Calls
Call 1
Inputs
%2 = (fmax.f64 x y)
%4 = (fma.f64 y y #s(literal -1/2 binary64))
%5 = (fma.f64 x x %4)
y
x
%2
#s(literal -1/2 binary64)
%4
%5
(fmax.f64 %5 %2)
Outputs
%3 = (fmax.f64 x y)
%11 = (*.f64 y y)
%13 = (*.f64 %11 #s(literal 2 binary64))
%14 = (-.f64 %13 #s(literal 1 binary64))
%17 = (fma.f64 y y #s(literal -1/2 binary64))
%46 = (-.f64 #s(literal 1/2 binary64) %11)
%48 = (fabs.f64 y)
%49 = (sqrt.f64 %48)
%50 = (*.f64 %49 %48)
%53 = (neg.f64 %48)
%56 = (neg.f64 y)
%62 = (*.f64 %56 y)
%66 = (fma.f64 x x %11)
%67 = (*.f64 %66 #s(literal 2 binary64))
%68 = (-.f64 %67 #s(literal 1 binary64))
%70 = (fma.f64 x x %17)
%77 = (*.f64 x x)
%78 = (*.f64 %77 #s(literal 2 binary64))
%79 = (-.f64 %78 #s(literal 1 binary64))
%96 = (neg.f64 x)
%97 = (*.f64 %96 x)
%113 = (fma.f64 x x #s(literal -1/2 binary64))
%115 = (fabs.f64 x)
%116 = (sqrt.f64 %115)
%117 = (*.f64 %116 %115)
%123 = (neg.f64 %115)
%152 = (fmax.f64 %70 %3)
y
x
(*.f64 #s(literal 1 binary64) %3)
%3
(fmax.f64 y x)
(pow.f64 %3 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64)))
#s(literal -1/2 binary64)
(*.f64 %14 #s(literal 1/2 binary64))
(*.f64 #s(literal 1 binary64) %17)
(pow.f64 %17 #s(literal 1 binary64))
(/.f64 (fma.f64 %11 #s(literal 2 binary64) #s(literal -1 binary64)) #s(literal 2 binary64))
(/.f64 (fma.f64 %11 #s(literal -2 binary64) #s(literal 1 binary64)) #s(literal -2 binary64))
(/.f64 (-.f64 (*.f64 %11 #s(literal 1/2 binary64)) #s(literal 1/4 binary64)) #s(literal 1/2 binary64))
(/.f64 (-.f64 (*.f64 %11 #s(literal -2 binary64)) #s(literal -1 binary64)) #s(literal -2 binary64))
(/.f64 (-.f64 (*.f64 %11 #s(literal 1 binary64)) #s(literal 1/2 binary64)) #s(literal 1 binary64))
(/.f64 (-.f64 (*.f64 %11 #s(literal 4 binary64)) #s(literal 2 binary64)) #s(literal 4 binary64))
(/.f64 (neg.f64 %14) #s(literal -2 binary64))
(/.f64 %14 #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %14))
(/.f64 #s(literal 1 binary64) (pow.f64 %17 #s(literal -1 binary64)))
(neg.f64 %46)
(fma.f64 %50 %49 #s(literal -1/2 binary64))
(fma.f64 %49 %50 #s(literal -1/2 binary64))
(fma.f64 %53 %53 #s(literal -1/2 binary64))
(fma.f64 %48 %48 #s(literal -1/2 binary64))
(fma.f64 %56 %56 #s(literal -1/2 binary64))
(fma.f64 #s(literal 1 binary64) %11 #s(literal -1/2 binary64))
%17
(-.f64 (/.f64 %13 #s(literal 2 binary64)) #s(literal 1/2 binary64))
(-.f64 %11 #s(literal 1/2 binary64))
(-.f64 #s(literal -1/2 binary64) %62)
(+.f64 %11 #s(literal -1/2 binary64))
(+.f64 #s(literal -1/2 binary64) %11)
(*.f64 %68 #s(literal 1/2 binary64))
(*.f64 #s(literal 1 binary64) %70)
(pow.f64 %70 #s(literal 1 binary64))
(/.f64 (fma.f64 %66 #s(literal 2 binary64) #s(literal -1 binary64)) #s(literal 2 binary64))
(/.f64 (fma.f64 %66 #s(literal -2 binary64) #s(literal 1 binary64)) #s(literal -2 binary64))
(/.f64 (fma.f64 %11 #s(literal 2 binary64) %79) #s(literal 2 binary64))
(/.f64 (fma.f64 %77 #s(literal 2 binary64) %14) #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 %66 #s(literal 1/2 binary64)) #s(literal 1/4 binary64)) #s(literal 1/2 binary64))
(/.f64 (-.f64 (*.f64 %66 #s(literal -2 binary64)) #s(literal -1 binary64)) #s(literal -2 binary64))
(/.f64 (-.f64 (*.f64 %66 #s(literal 1 binary64)) #s(literal 1/2 binary64)) #s(literal 1 binary64))
(/.f64 (-.f64 (*.f64 %66 #s(literal 4 binary64)) #s(literal 2 binary64)) #s(literal 4 binary64))
(/.f64 (-.f64 %13 (fma.f64 %97 #s(literal 2 binary64) #s(literal 1 binary64))) #s(literal 2 binary64))
(/.f64 (-.f64 %78 (fma.f64 %62 #s(literal 2 binary64) #s(literal 1 binary64))) #s(literal 2 binary64))
(/.f64 (neg.f64 %68) #s(literal -2 binary64))
(/.f64 %68 #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %68))
(/.f64 #s(literal 1 binary64) (pow.f64 %70 #s(literal -1 binary64)))
(neg.f64 (-.f64 #s(literal 1/2 binary64) %66))
(fma.f64 %50 %49 %113)
(fma.f64 %117 %116 %17)
(fma.f64 %79 #s(literal 1/2 binary64) %11)
(fma.f64 %14 #s(literal 1/2 binary64) %77)
(fma.f64 %116 %117 %17)
(fma.f64 %49 %50 %113)
(fma.f64 %123 %123 %17)
(fma.f64 %53 %53 %113)
(fma.f64 %115 %115 %17)
(fma.f64 %48 %48 %113)
(fma.f64 %96 %96 %17)
(fma.f64 %56 %56 %113)
(fma.f64 #s(literal 1 binary64) %113 %11)
(fma.f64 #s(literal 1 binary64) %66 #s(literal -1/2 binary64))
(fma.f64 #s(literal 1 binary64) %11 %113)
(fma.f64 #s(literal 1 binary64) %77 %17)
(fma.f64 #s(literal 1 binary64) %17 %77)
%70
(fma.f64 y y %113)
(-.f64 (/.f64 %67 #s(literal 2 binary64)) #s(literal 1/2 binary64))
(-.f64 %113 %62)
(-.f64 %66 #s(literal 1/2 binary64))
(-.f64 %11 (-.f64 #s(literal 1/2 binary64) %77))
(-.f64 %77 %46)
(-.f64 %17 %97)
(-.f64 #s(literal -1/2 binary64) (neg.f64 %66))
(+.f64 %113 %11)
(+.f64 %66 #s(literal -1/2 binary64))
(+.f64 %11 %113)
(+.f64 %77 %17)
(+.f64 %17 %77)
(+.f64 #s(literal -1/2 binary64) %66)
(*.f64 #s(literal 1 binary64) %152)
%152
(fmax.f64 %3 %70)
(pow.f64 %152 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %152 #s(literal -1 binary64)))

reconstruct13.0ms (0.8%)

Counts
103 → 23
Compiler

Compiled 103 to 180 computations (-74.8% saved)

eval4.0ms (0.2%)

Compiler

Compiled 19 to 79 computations (-315.8% saved)

prune2.0ms (0.1%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New18119
Fresh000
Picked011
Done000
Total18220
Accuracy
100.0%
Counts
20 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fmax.f64 (fma.f64 x x (fma.f64 y y #s(literal -1/2 binary64))) (fmax.f64 x y))
67.6%
(fmax.f64 (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) (fmax.f64 x y))
Compiler

Compiled 2 to 9 computations (-350.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series6.0ms (0.4%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048185
Stop Event
iter-limit
Counts
7 → 14
Calls
Call 1
Inputs
%2 = (fmax.f64 x y)
%7 = (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))
%8 = (fma.f64 x x %7)
y
x
%2
#s(literal -1/2 binary64)
%7
%8
(fmax.f64 %8 %2)
Outputs
%5 = (fmax x y)
%6 = (fmax.f64 x y)
%11 = (+ (* y y) -1/2)
%12 = (+ (* x x) %11)
%14 = (pow.f64 y #s(literal 2 binary64))
%18 = (pow.f64 x #s(literal 2 binary64))
%20 = (-.f64 (+.f64 %18 %14) #s(literal 1/2 binary64))
%41 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %14))
(approx y #s(literal 0 binary64))
(approx x x)
(approx %5 %6)
(approx %12 (-.f64 %14 #s(literal 1/2 binary64)))
(approx %12 %20)
(approx (fmax %12 %5) (fmax.f64 %20 %6))
(approx %12 %18)
(approx %12 (*.f64 %18 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 %14 %18)) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %18)))))
(approx y y)
(approx %11 #s(literal -1/2 binary64))
(approx %12 (-.f64 %18 #s(literal 1/2 binary64)))
(approx %11 %14)
(approx %11 (*.f64 %14 (-.f64 #s(literal 1 binary64) %41)))
(approx %12 (*.f64 %14 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 %18 %14)) %41)))
Calls

6 calls:

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

rewrite95.0ms (5.5%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0937
01337
14437
211137
332937
488137
0403837
0423334
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
7 → 36
Calls
Call 1
Inputs
%2 = (fmax.f64 x y)
%7 = (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))
%8 = (fma.f64 x x %7)
y
x
%2
#s(literal -1/2 binary64)
%7
%8
(fmax.f64 %8 %2)
Outputs
%3 = (fmax.f64 x y)
%14 = (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))
%19 = (neg.f64 %14)
%21 = (fma.f64 x x %14)
%28 = (fabs.f64 x)
%29 = (sqrt.f64 %28)
%30 = (*.f64 %29 %28)
%32 = (neg.f64 %28)
%33 = (*.f64 %29 %32)
%34 = (neg.f64 %29)
%40 = (neg.f64 x)
%42 = (*.f64 x x)
%50 = (fmax.f64 %21 %3)
y
x
(*.f64 #s(literal 1 binary64) %3)
%3
(fmax.f64 y x)
(pow.f64 %3 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64)))
#s(literal -1/2 binary64)
(*.f64 #s(literal 1 binary64) %14)
(pow.f64 %14 #s(literal 1 binary64))
%14
(/.f64 #s(literal 1 binary64) (pow.f64 %14 #s(literal -1 binary64)))
(neg.f64 %19)
(*.f64 #s(literal 1 binary64) %21)
(pow.f64 %21 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -1 binary64)))
(neg.f64 (neg.f64 %21))
(fma.f64 %30 %29 %14)
(fma.f64 %33 %34 %14)
(fma.f64 %34 %33 %14)
(fma.f64 %29 %30 %14)
(fma.f64 %32 %32 %14)
(fma.f64 %28 %28 %14)
(fma.f64 %40 %40 %14)
(fma.f64 #s(literal 1 binary64) %42 %14)
(fma.f64 #s(literal 1 binary64) %14 %42)
%21
(-.f64 %42 %19)
(-.f64 %14 (*.f64 %40 x))
(+.f64 %42 %14)
(+.f64 %14 %42)
(*.f64 #s(literal 1 binary64) %50)
%50
(fmax.f64 %3 %21)
(pow.f64 %50 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %50 #s(literal -1 binary64)))

reconstruct6.0ms (0.3%)

Counts
49 → 20
Compiler

Compiled 49 to 76 computations (-55.1% saved)

eval3.0ms (0.2%)

Compiler

Compiled 16 to 57 computations (-256.3% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New15116
Fresh000
Picked011
Done011
Total15318
Accuracy
100.0%
Counts
18 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fmax.f64 (fma.f64 x x (fma.f64 y y #s(literal -1/2 binary64))) (fmax.f64 x y))
44.1%
(fmax.f64 (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) (fmax.f64 x (approx y #s(literal 0 binary64))))
67.6%
(fmax.f64 (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) (fmax.f64 x y))
Compiler

Compiled 3 to 12 computations (-300.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series9.0ms (0.5%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048185
Stop Event
iter-limit
Counts
9 → 14
Calls
Call 1
Inputs
%3 = (approx y #s(literal 0 binary64))
%5 = (fmax.f64 x %3)
%9 = (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))
%10 = (fma.f64 x x %9)
y
x
#s(literal 0 binary64)
%3
#s(literal -1/2 binary64)
%5
%9
%10
(fmax.f64 %10 %5)
Outputs
%5 = (fmax x y)
%6 = (fmax.f64 x y)
%11 = (+ (* y y) -1/2)
%12 = (+ (* x x) %11)
%14 = (pow.f64 y #s(literal 2 binary64))
%18 = (pow.f64 x #s(literal 2 binary64))
%20 = (-.f64 (+.f64 %18 %14) #s(literal 1/2 binary64))
%41 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %14))
(approx y #s(literal 0 binary64))
(approx x x)
(approx %5 %6)
(approx %12 (-.f64 %14 #s(literal 1/2 binary64)))
(approx %12 %20)
(approx (fmax %12 %5) (fmax.f64 %20 %6))
(approx %12 %18)
(approx %12 (*.f64 %18 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 %14 %18)) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %18)))))
(approx y y)
(approx %11 #s(literal -1/2 binary64))
(approx %12 (-.f64 %18 #s(literal 1/2 binary64)))
(approx %11 %14)
(approx %11 (*.f64 %14 (-.f64 #s(literal 1 binary64) %41)))
(approx %12 (*.f64 %14 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 %18 %14)) %41)))
Calls

6 calls:

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

rewrite78.0ms (4.5%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01145
01545
14945
212045
336145
4130345
0401745
0425442
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
9 → 47
Calls
Call 1
Inputs
%3 = (approx y #s(literal 0 binary64))
%5 = (fmax.f64 x %3)
%9 = (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))
%10 = (fma.f64 x x %9)
y
x
#s(literal 0 binary64)
%3
#s(literal -1/2 binary64)
%5
%9
%10
(fmax.f64 %10 %5)
Outputs
%4 = (approx y #s(literal 0 binary64))
%11 = (fmax.f64 %4 x)
%20 = (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))
%25 = (neg.f64 %20)
%27 = (fma.f64 x x %20)
%34 = (fabs.f64 x)
%35 = (neg.f64 %34)
%36 = (*.f64 x x)
%39 = (sqrt.f64 (fabs.f64 (*.f64 %35 %36)))
%40 = (sqrt.f64 %34)
%44 = (sqrt.f64 (fabs.f64 (*.f64 %34 %36)))
%46 = (neg.f64 x)
%49 = (sqrt.f64 (fabs.f64 (*.f64 %46 %36)))
%53 = (sqrt.f64 (fabs.f64 (*.f64 %36 x)))
%55 = (*.f64 %40 %34)
%72 = (fmax.f64 %27 %11)
y
x
#s(literal 0 binary64)
(*.f64 #s(literal 1 binary64) %4)
(pow.f64 %4 #s(literal 1 binary64))
%4
(/.f64 #s(literal 1 binary64) (pow.f64 %4 #s(literal -1 binary64)))
#s(literal -1/2 binary64)
(*.f64 #s(literal 1 binary64) %11)
%11
(fmax.f64 x %4)
(pow.f64 %11 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %11 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %20)
(pow.f64 %20 #s(literal 1 binary64))
%20
(/.f64 #s(literal 1 binary64) (pow.f64 %20 #s(literal -1 binary64)))
(neg.f64 %25)
(*.f64 #s(literal 1 binary64) %27)
(pow.f64 %27 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %27 #s(literal -1 binary64)))
(neg.f64 (neg.f64 %27))
(fma.f64 %39 %40 %20)
(fma.f64 %44 %40 %20)
(fma.f64 %49 %40 %20)
(fma.f64 %53 %40 %20)
(fma.f64 %55 %40 %20)
(fma.f64 %40 %39 %20)
(fma.f64 %40 %44 %20)
(fma.f64 %40 %49 %20)
(fma.f64 %40 %53 %20)
(fma.f64 %40 %55 %20)
(fma.f64 %35 %35 %20)
(fma.f64 %34 %34 %20)
(fma.f64 %46 %46 %20)
(fma.f64 #s(literal 1 binary64) %36 %20)
(fma.f64 #s(literal 1 binary64) %20 %36)
%27
(-.f64 %36 %25)
(-.f64 %20 (*.f64 %46 x))
(+.f64 %36 %20)
(+.f64 %20 %36)
(*.f64 #s(literal 1 binary64) %72)
%72
(fmax.f64 %11 %27)
(pow.f64 %72 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %72 #s(literal -1 binary64)))

reconstruct3.0ms (0.2%)

Counts
60 → 24
Compiler

Compiled 60 to 97 computations (-61.7% saved)

eval3.0ms (0.2%)

Compiler

Compiled 16 to 64 computations (-300.0% saved)

prune1.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New16016
Fresh000
Picked011
Done022
Total16319
Accuracy
100.0%
Counts
19 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fmax.f64 (fma.f64 x x (fma.f64 y y #s(literal -1/2 binary64))) (fmax.f64 x y))
44.1%
(fmax.f64 (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) (fmax.f64 x (approx y #s(literal 0 binary64))))
67.6%
(fmax.f64 (fma.f64 x x (approx (+ (* y y) -1/2) #s(literal -1/2 binary64))) (fmax.f64 x y))
Compiler

Compiled 3 to 12 computations (-300.0% saved)

regimes9.0ms (0.5%)

Accuracy

Total 0.0b remaining (0.0%)

Threshold costs 0.0b (0.0%)

0.0b0%
0.0b0%

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

3 calls:

3.0ms
x
3.0ms
y
2.0ms
(fmax.f64 (-.f64 (+.f64 (pow.f64 y #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)) (fmax.f64 x y))
Results
AccuracySegmentsBranch
67.6%1
y
67.6%1
x
67.6%1
(fmax.f64 (-.f64 (+.f64 (pow.f64 y #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)) (fmax.f64 x y))
Compiler

Compiled 7 to 29 computations (-314.3% saved)

bsearch0.0ms (0.0%)

bsearch0.0ms (0.0%)

derivations23.0ms (1.3%)

Stop Event
done
Compiler

Compiled 2 to 9 computations (-350.0% saved)

preprocess13.0ms (0.8%)

Compiler

Compiled 7 to 45 computations (-542.9% saved)

end0.0ms (0.0%)

gc185ms (10.6%)

Allocations
AllocatedPercentPhase
496.3 MiB46.3%sample
325.7 MiB30.4%rewrite
103.0 MiB9.6%analyze
39.3 MiB3.7%reconstruct
29.3 MiB2.7%series
26.5 MiB2.5%preprocess
19.1 MiB1.8%eval
18.8 MiB1.8%regimes
8.9 MiB0.8%prune
5.3 MiB0.5%derivations
0.1 MiB0.0%start
0.1 MiB0.0%bsearch
0.0 MiB0.0%end
1 072.4 MiB100.0%total

Profiling

Loading profile data...