Graphics.Rasterific.Shading:$sradialGradientWithFocusShader from Rasterific-0.6.1

Time bar (total: 642.0ms)

start0.0ms (0.0%)

analyze0.0ms (0.1%)

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

Compiled 7 to 6 computations (14.3% saved)

sample215.0ms (33.4%)

Samples
149.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 5.0ms
Mul: 3.0ms (58.9% of total, 0.0 MiB)
Sub: 2.0ms (39.3% of total, 0.0 MiB)
Bogosity

preprocess18.0ms (2.8%)

Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01332
16531
216631
330331
478331
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 x (*.f64 y y))
Symmetry

(abs y)

Compiler

Compiled 2 to 8 computations (-300.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series8.0ms (1.2%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
032102
Stop Event
iter-limit
Counts
4 → 10
Calls
Call 1
Inputs
%2 = (*.f64 y y)
x
y
%2
(-.f64 x %2)
Outputs
%5 = (* y y)
%6 = (- x %5)
%9 = (pow.f64 y #s(literal 2 binary64))
%10 = (*.f64 #s(literal -1 binary64) %9)
%15 = (/.f64 %9 x)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %6 %10)
(approx %6 (-.f64 x %9))
(approx %6 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) %15))))
(approx %6 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %15 #s(literal 1 binary64)))))
(approx y y)
(approx %5 %9)
(approx %6 (+.f64 x %10))
(approx %6 (*.f64 %9 (-.f64 (/.f64 x %9) #s(literal 1 binary64))))
Calls

6 calls:

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

rewrite99.0ms (15.4%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0410
0610
12310
26710
315710
446210
5312810
0408010
0448410
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
4 → 55
Calls
Call 1
Inputs
%2 = (*.f64 y y)
x
y
%2
(-.f64 x %2)
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)
%10 = (sqrt.f64 %8)
%14 = (neg.f64 %8)
%15 = (*.f64 %14 %7)
%21 = (neg.f64 %7)
%24 = (neg.f64 y)
%29 = (pow.f64 y #s(literal 8 binary64))
%61 = (*.f64 %24 y)
%70 = (-.f64 x %2)
x
y
(*.f64 %5 %3)
(*.f64 (*.f64 %9 %10) %10)
(*.f64 %9 %8)
(*.f64 %15 %14)
(*.f64 %14 %15)
(*.f64 %10 (*.f64 %10 %9))
(*.f64 %8 %9)
(*.f64 %21 %21)
(*.f64 %7 %7)
(*.f64 %24 %24)
(*.f64 #s(literal 1 binary64) %2)
%2
(pow.f64 %29 #s(literal 1/4 binary64))
(pow.f64 %3 #s(literal 1/2 binary64))
(pow.f64 %8 #s(literal 4 binary64))
(pow.f64 %21 #s(literal 2 binary64))
(pow.f64 %7 #s(literal 2 binary64))
(pow.f64 %24 #s(literal 2 binary64))
(pow.f64 %2 #s(literal 1 binary64))
(pow.f64 y #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %29 #s(literal -1/4 binary64)))
(/.f64 #s(literal 1 binary64) %5)
(/.f64 #s(literal 1 binary64) (pow.f64 %8 #s(literal -4 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %7 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %24 #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 %61)
(sqrt.f64 %3)
(fabs.f64 (*.f64 %21 y))
(fabs.f64 (*.f64 %7 y))
(fabs.f64 %61)
(fabs.f64 %2)
(*.f64 #s(literal 1 binary64) %70)
(pow.f64 %70 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %70 #s(literal -1 binary64)))
(neg.f64 (-.f64 %2 x))
(fma.f64 (*.f64 %15 %10) %10 x)
(fma.f64 %9 %14 x)
(fma.f64 %15 %8 x)
(fma.f64 %14 %9 x)
(fma.f64 %10 (*.f64 %10 %15) x)
(fma.f64 %8 %15 x)
(fma.f64 %21 %7 x)
(fma.f64 %7 %21 x)
(fma.f64 %24 y x)
(fma.f64 #s(literal 1 binary64) %61 x)
(fma.f64 y %24 x)
(-.f64 %61 (neg.f64 x))
%70
(+.f64 %61 x)
(+.f64 x %61)

reconstruct6.0ms (1.0%)

Counts
65 → 23
Compiler

Compiled 65 to 108 computations (-66.2% saved)

eval2.0ms (0.3%)

Compiler

Compiled 20 to 68 computations (-240.0% saved)

prune1.0ms (0.1%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New19120
Fresh000
Picked011
Done000
Total19221
Accuracy
100.0%
Counts
21 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 y (neg.f64 y) x)
100.0%
(-.f64 x (*.f64 y y))
Compiler

Compiled 2 to 6 computations (-200.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series5.0ms (0.8%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03290
Stop Event
iter-limit
Counts
4 → 9
Calls
Call 1
Inputs
%2 = (neg.f64 y)
x
y
%2
(fma.f64 y %2 x)
Outputs
%5 = (neg y)
%7 = (+ (* y %5) x)
%10 = (pow.f64 y #s(literal 2 binary64))
%11 = (*.f64 #s(literal -1 binary64) %10)
%16 = (/.f64 %10 x)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %7 %11)
(approx %7 (+.f64 x %11))
(approx %7 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) %16))))
(approx %7 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %16 #s(literal 1 binary64)))))
(approx y y)
(approx %5 (*.f64 #s(literal -1 binary64) y))
(approx %7 (*.f64 %10 (-.f64 (/.f64 x %10) #s(literal 1 binary64))))
Calls

6 calls:

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

rewrite115.0ms (17.9%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049
079
1199
2449
31189
42849
514599
043389
045089
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
4 → 21
Calls
Call 1
Inputs
%2 = (neg.f64 y)
x
y
%2
(fma.f64 y %2 x)
Outputs
%3 = (neg.f64 y)
%9 = (*.f64 y y)
%10 = (-.f64 x %9)
%17 = (fabs.f64 y)
%18 = (neg.f64 %17)
%19 = (sqrt.f64 %17)
%26 = (*.f64 %3 y)
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)))
%3
(*.f64 #s(literal 1 binary64) %10)
(pow.f64 %10 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %10 #s(literal -1 binary64)))
(neg.f64 (-.f64 %9 x))
(fma.f64 (*.f64 %18 %19) %19 x)
(fma.f64 %19 (*.f64 %19 %18) x)
(fma.f64 %18 %17 x)
(fma.f64 %17 %18 x)
(fma.f64 #s(literal 1 binary64) %26 x)
(fma.f64 %3 y x)
(fma.f64 y %3 x)
(-.f64 %26 (neg.f64 x))
%10
(+.f64 %26 x)
(+.f64 x %26)

reconstruct2.0ms (0.3%)

Counts
30 → 12
Compiler

Compiled 30 to 50 computations (-66.7% saved)

eval1.0ms (0.2%)

Compiler

Compiled 9 to 30 computations (-233.3% saved)

prune1.0ms (0.1%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New909
Fresh000
Picked011
Done011
Total9211
Accuracy
100.0%
Counts
11 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 y (neg.f64 y) x)
100.0%
(-.f64 x (*.f64 y y))
Compiler

Compiled 2 to 6 computations (-200.0% saved)

regimes7.0ms (1.1%)

Accuracy

Total 0.0b remaining (0.0%)

Threshold costs 0.0b (0.0%)

0.0b0%
0.0b0%

Counts
1 → 1
2 → 1
Calls
Call 1
Inputs
(-.f64 x (*.f64 y y))
Outputs
(-.f64 x (*.f64 y y))
Call 2
Inputs
(-.f64 x (*.f64 y y))
(fma.f64 y (neg.f64 y) x)
Outputs
(fma.f64 y (neg.f64 y) x)
Calls

4 calls:

5.0ms
y
2.0ms
x
2.0ms
(-.f64 x (*.f64 y y))
1.0ms
(*.f64 y y)
Results
AccuracySegmentsBranch
100.0%1
y
100.0%1
x
100.0%1
(-.f64 x (*.f64 y y))
100.0%1
(*.f64 y y)
Compiler

Compiled 6 to 10 computations (-66.7% saved)

bsearch0.0ms (0.0%)

bsearch0.0ms (0.0%)

derivations19.0ms (3.0%)

Stop Event
done
Compiler

Compiled 2 to 6 computations (-200.0% saved)

preprocess9.0ms (1.4%)

Compiler

Compiled 7 to 26 computations (-271.4% saved)

end0.0ms (0.0%)

gc134ms (20.9%)

Allocations
AllocatedPercentPhase
263.7 MiB56.6%sample
113.4 MiB24.3%rewrite
27.1 MiB5.8%preprocess
18.0 MiB3.9%series
15.1 MiB3.2%derivations
11.1 MiB2.4%regimes
9.1 MiB2.0%reconstruct
5.2 MiB1.1%eval
2.6 MiB0.6%prune
0.3 MiB0.1%analyze
0.0 MiB0.0%start
0.0 MiB0.0%bsearch
0.0 MiB0.0%end
465.8 MiB100.0%total

Profiling

Loading profile data...