Graphics.Rasterific.CubicBezier:isSufficientlyFlat from Rasterific-0.6.1

Time bar (total: 608.0ms)

start0.0ms (0.0%)

analyze0.0ms (0.1%)

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

Compiled 7 to 6 computations (14.3% saved)

sample223.0ms (36.6%)

Samples
284.0ms8 255×0valid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 5.0ms
Mul: 5.0ms (101.8% of total, 0.0 MiB)
adjust: 0.0ms (0.0% of total, 0.0 MiB)
Bogosity

preprocess44.0ms (7.2%)

Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0818
13015
26915
310615
418315
563515
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (*.f64 x #s(literal 16 binary64)) x)
Symmetry

(abs x)

Compiler

Compiled 2 to 8 computations (-300.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series6.0ms (1.0%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01324
Stop Event
iter-limit
Counts
4 → 4
Calls
Call 1
Inputs
%2 = (*.f64 x #s(literal 16 binary64))
x
#s(literal 16 binary64)
%2
(*.f64 %2 x)
Outputs
%5 = (* x 16)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 (*.f64 #s(literal 16 binary64) x))
(approx (* %5 x) (*.f64 #s(literal 16 binary64) (pow.f64 x #s(literal 2 binary64))))
Calls

3 calls:

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

rewrite102.0ms (16.8%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0410
0610
11410
22410
34310
412310
555810
0403310
0414810
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
4 → 97
Calls
Call 1
Inputs
%2 = (*.f64 x #s(literal 16 binary64))
x
#s(literal 16 binary64)
%2
(*.f64 %2 x)
Outputs
%3 = (*.f64 #s(literal 16 binary64) x)
%11 = (*.f64 #s(literal -16 binary64) x)
%14 = (*.f64 #s(literal 8 binary64) x)
%17 = (*.f64 x #s(literal 0 binary64))
%19 = (*.f64 #s(literal 0 binary64) x)
%23 = (*.f64 x #s(literal 8 binary64))
%31 = (fabs.f64 x)
%32 = (neg.f64 %31)
%34 = (*.f64 %32 #s(literal 4 binary64))
%36 = (*.f64 %31 #s(literal 4 binary64))
%38 = (neg.f64 x)
%39 = (*.f64 %38 #s(literal 4 binary64))
%41 = (*.f64 x #s(literal 4 binary64))
%43 = (*.f64 #s(literal 4 binary64) %32)
%45 = (*.f64 #s(literal 4 binary64) %31)
%47 = (*.f64 #s(literal 4 binary64) %38)
%49 = (*.f64 #s(literal 4 binary64) x)
%51 = (*.f64 %32 #s(literal 16 binary64))
%53 = (*.f64 %38 x)
%55 = (*.f64 %31 #s(literal 16 binary64))
%62 = (*.f64 x x)
%64 = (*.f64 %3 x)
%75 = (*.f64 %11 x)
%83 = (*.f64 %62 #s(literal 0 binary64))
%85 = (*.f64 #s(literal 0 binary64) %62)
%111 = (*.f64 #s(literal 8 binary64) %62)
%119 = (*.f64 %62 #s(literal 8 binary64))
x
#s(literal 16 binary64)
(*.f64 #s(literal 1 binary64) %3)
%3
(*.f64 x #s(literal 16 binary64))
(pow.f64 %3 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64)))
(neg.f64 %11)
(fma.f64 #s(literal 8 binary64) x %14)
(fma.f64 #s(literal 1 binary64) %3 %17)
(fma.f64 #s(literal 1 binary64) %3 %19)
(fma.f64 #s(literal 16 binary64) x %17)
(fma.f64 #s(literal 16 binary64) x %19)
(fma.f64 x #s(literal 8 binary64) %23)
(fma.f64 x #s(literal 16 binary64) %17)
(fma.f64 x #s(literal 16 binary64) %19)
(+.f64 %23 %23)
(+.f64 %14 %14)
(+.f64 %3 %17)
(+.f64 %3 %19)
(*.f64 %34 %34)
(*.f64 %36 %36)
(*.f64 %39 %39)
(*.f64 %41 %41)
(*.f64 %43 %43)
(*.f64 %45 %45)
(*.f64 %47 %47)
(*.f64 %49 %49)
(*.f64 %51 %32)
(*.f64 #s(literal -16 binary64) %53)
(*.f64 %55 %31)
(*.f64 %11 %38)
(*.f64 %53 #s(literal -16 binary64))
(*.f64 %32 %51)
(*.f64 %31 %55)
(*.f64 %38 %11)
(*.f64 %62 #s(literal 16 binary64))
(*.f64 #s(literal 1 binary64) %64)
%64
(*.f64 #s(literal 16 binary64) %62)
(*.f64 x %3)
(pow.f64 %64 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %64 #s(literal -1 binary64)))
(neg.f64 (*.f64 %31 %51))
(neg.f64 (*.f64 %51 %31))
(neg.f64 (*.f64 #s(literal 1 binary64) %75))
(neg.f64 (*.f64 %38 %3))
(neg.f64 (*.f64 %3 %38))
(neg.f64 %75)
(fma.f64 %34 %34 %83)
(fma.f64 %34 %34 %85)
(fma.f64 %36 %36 %83)
(fma.f64 %36 %36 %85)
(fma.f64 %39 %39 %83)
(fma.f64 %39 %39 %85)
(fma.f64 %41 %41 %83)
(fma.f64 %41 %41 %85)
(fma.f64 %43 %43 %83)
(fma.f64 %43 %43 %85)
(fma.f64 %45 %45 %83)
(fma.f64 %45 %45 %85)
(fma.f64 %47 %47 %83)
(fma.f64 %47 %47 %85)
(fma.f64 %49 %49 %83)
(fma.f64 %49 %49 %85)
(fma.f64 %51 %32 %83)
(fma.f64 %51 %32 %85)
(fma.f64 #s(literal -16 binary64) %53 %83)
(fma.f64 #s(literal -16 binary64) %53 %85)
(fma.f64 %55 %31 %83)
(fma.f64 %55 %31 %85)
(fma.f64 %11 %38 %83)
(fma.f64 %11 %38 %85)
(fma.f64 %53 #s(literal -16 binary64) %83)
(fma.f64 %53 #s(literal -16 binary64) %85)
(fma.f64 #s(literal 8 binary64) %62 %111)
(fma.f64 %32 %51 %83)
(fma.f64 %32 %51 %85)
(fma.f64 %31 %55 %83)
(fma.f64 %31 %55 %85)
(fma.f64 %38 %11 %83)
(fma.f64 %38 %11 %85)
(fma.f64 %62 #s(literal 8 binary64) %119)
(fma.f64 %62 #s(literal 16 binary64) %83)
(fma.f64 %62 #s(literal 16 binary64) %85)
(fma.f64 #s(literal 1 binary64) %64 %83)
(fma.f64 #s(literal 1 binary64) %64 %85)
(fma.f64 %3 x %83)
(fma.f64 %3 x %85)
(fma.f64 #s(literal 16 binary64) %62 %83)
(fma.f64 #s(literal 16 binary64) %62 %85)
(fma.f64 x %3 %83)
(fma.f64 x %3 %85)
(+.f64 %119 %119)
(+.f64 %111 %111)
(+.f64 %64 %83)
(+.f64 %64 %85)

reconstruct14.0ms (2.3%)

Counts
101 → 11
Compiler

Compiled 101 to 138 computations (-36.6% saved)

eval2.0ms (0.3%)

Compiler

Compiled 10 to 26 computations (-160.0% saved)

prune1.0ms (0.2%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New10010
Fresh000
Picked011
Done000
Total10111
Accuracy
100.0%
Counts
11 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (*.f64 x #s(literal 16 binary64)) x)
Compiler

Compiled 2 to 8 computations (-300.0% saved)

derivations0.0ms (0.0%)

Stop Event
done
Compiler

Compiled 1 to 4 computations (-300.0% saved)

preprocess9.0ms (1.6%)

Compiler

Compiled 4 to 16 computations (-300.0% saved)

end0.0ms (0.0%)

gc206ms (33.9%)

Allocations
AllocatedPercentPhase
370.0 MiB56.3%sample
152.6 MiB23.2%rewrite
66.8 MiB10.2%preprocess
45.1 MiB6.9%reconstruct
9.9 MiB1.5%series
5.7 MiB0.9%eval
5.4 MiB0.8%prune
0.7 MiB0.1%derivations
0.4 MiB0.1%analyze
0.1 MiB0.0%start
0.0 MiB0.0%end
656.8 MiB100.0%total

Profiling

Loading profile data...