Data.Colour.CIE:cieLABView from colour-2.3.3, C

Time bar (total: 647.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 7 computations (0.0% saved)

sample210.0ms (32.4%)

Samples
148.0ms8 121×0valid
1.0ms57×1valid
1.0ms50×2valid
1.0ms28×3valid
Precisions
Click to see histograms. Total time spent on operations: 5.0ms
Mul: 3.0ms (54.9% of total, 0.0 MiB)
Sub: 2.0ms (36.6% of total, 0.0 MiB)
adjust: 0.0ms (0.0% of total, 0.0 MiB)
Bogosity

preprocess44.0ms (6.8%)

Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01532
15530
212930
327030
433930
571130
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 #s(literal 200 binary64) (-.f64 x y))
Compiler

Compiled 2 to 10 computations (-400.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series8.0ms (1.3%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059178
Stop Event
iter-limit
Counts
5 → 17
Calls
Call 1
Inputs
%3 = (-.f64 x y)
#s(literal 200 binary64)
x
y
%3
(*.f64 #s(literal 200 binary64) %3)
Outputs
%6 = (- x y)
%8 = (*.f64 #s(literal -1 binary64) y)
%12 = (* 200 %6)
%17 = (*.f64 #s(literal 200 binary64) x)
%21 = (/.f64 y x)
%43 = (/.f64 x y)
(approx 200 #s(literal 0 binary64))
(approx x x)
(approx %6 %8)
(approx %6 (-.f64 x y))
(approx %12 (*.f64 #s(literal -200 binary64) y))
(approx %12 (fma.f64 #s(literal -200 binary64) y %17))
(approx %6 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) %21))))
(approx %12 %17)
(approx %12 (*.f64 x (+.f64 #s(literal 200 binary64) (*.f64 #s(literal -200 binary64) %21))))
(approx %6 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %21 #s(literal 1 binary64)))))
(approx %12 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 200 binary64) %21) #s(literal 200 binary64)))))
(approx y y)
(approx %6 (+.f64 x %8))
(approx %6 (*.f64 y (-.f64 %43 #s(literal 1 binary64))))
(approx %12 (*.f64 y (-.f64 (*.f64 #s(literal 200 binary64) %43) #s(literal 200 binary64))))
(approx %6 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) %43)))))
(approx %12 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 #s(literal 200 binary64) (*.f64 #s(literal -200 binary64) %43)))))
Calls

6 calls:

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

rewrite72.0ms (11.1%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0511
0711
11811
24311
310211
422011
561311
0401511
0414711
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
5 → 47
Calls
Call 1
Inputs
%3 = (-.f64 x y)
#s(literal 200 binary64)
x
y
%3
(*.f64 #s(literal 200 binary64) %3)
Outputs
%4 = (-.f64 y x)
%7 = (-.f64 x y)
%14 = (neg.f64 y)
%15 = (*.f64 x #s(literal 1 binary64))
%18 = (*.f64 %14 #s(literal 1 binary64))
%20 = (neg.f64 x)
%26 = (*.f64 %4 #s(literal 200 binary64))
%31 = (*.f64 %7 #s(literal 200 binary64))
%38 = (*.f64 #s(literal -200 binary64) x)
%39 = (*.f64 #s(literal -200 binary64) y)
%41 = (*.f64 y #s(literal 200 binary64))
%42 = (*.f64 x #s(literal 200 binary64))
%46 = (*.f64 %42 #s(literal 1 binary64))
%48 = (*.f64 %39 #s(literal 1 binary64))
#s(literal 200 binary64)
x
y
(*.f64 #s(literal -1 binary64) %4)
(*.f64 #s(literal 1 binary64) %7)
(pow.f64 %7 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %7 #s(literal -1 binary64)))
(neg.f64 %4)
(fma.f64 #s(literal -1 binary64) y x)
(fma.f64 %14 #s(literal 1 binary64) %15)
(fma.f64 #s(literal 1 binary64) %14 x)
(fma.f64 x #s(literal 1 binary64) %18)
(-.f64 %14 %20)
%7
(+.f64 %18 %15)
(+.f64 %15 %18)
(+.f64 %14 x)
(+.f64 x %14)
(*.f64 #s(literal -1 binary64) %26)
(*.f64 #s(literal -200 binary64) %4)
(*.f64 %4 #s(literal -200 binary64))
(*.f64 #s(literal 1 binary64) %31)
%31
(*.f64 #s(literal 200 binary64) %7)
(pow.f64 %31 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %31 #s(literal -1 binary64)))
(neg.f64 %26)
(fma.f64 #s(literal -1 binary64) %38 %39)
(fma.f64 #s(literal -1 binary64) %41 %42)
(fma.f64 #s(literal -200 binary64) %20 %39)
(fma.f64 #s(literal -200 binary64) y %42)
(fma.f64 %39 #s(literal 1 binary64) %46)
(fma.f64 %42 #s(literal 1 binary64) %48)
(fma.f64 %20 #s(literal -200 binary64) %39)
(fma.f64 %14 #s(literal 200 binary64) %42)
(fma.f64 #s(literal 1 binary64) %39 %42)
(fma.f64 #s(literal 1 binary64) %42 %39)
(fma.f64 y #s(literal -200 binary64) %42)
(fma.f64 x #s(literal 200 binary64) %39)
(fma.f64 #s(literal 200 binary64) %14 %42)
(fma.f64 #s(literal 200 binary64) x %39)
(-.f64 %39 %38)
(-.f64 %42 %41)
(+.f64 %48 %46)
(+.f64 %46 %48)
(+.f64 %39 %42)
(+.f64 %42 %39)

reconstruct5.0ms (0.7%)

Counts
64 → 18
Compiler

Compiled 64 to 97 computations (-51.6% saved)

eval1.0ms (0.2%)

Compiler

Compiled 16 to 42 computations (-162.5% saved)

prune1.0ms (0.2%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New12416
Fresh000
Picked011
Done000
Total12517
Accuracy
100.0%
Counts
17 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 #s(literal 200 binary64) x (*.f64 #s(literal -200 binary64) y))
100.0%
(*.f64 #s(literal 200 binary64) (-.f64 x y))
100.0%
(approx (* 200 (- x y)) (fma.f64 #s(literal -200 binary64) y (*.f64 #s(literal 200 binary64) x)))
49.8%
(approx (* 200 (- x y)) (*.f64 #s(literal 200 binary64) x))
51.2%
(approx (* 200 (- x y)) (*.f64 #s(literal -200 binary64) y))
Compiler

Compiled 5 to 10 computations (-100.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series8.0ms (1.2%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037101
Stop Event
iter-limit
Counts
11 → 10
Calls
Call 1
Inputs
%4 = (*.f64 #s(literal -200 binary64) y)
%7 = (* 200 (- x y))
%9 = (*.f64 #s(literal 200 binary64) x)
%10 = (fma.f64 #s(literal -200 binary64) y %9)
#s(literal 200 binary64)
x
y
#s(literal -200 binary64)
%4
(approx %7 %4)
%9
%10
(approx %7 %10)
(approx %7 %9)
(fma.f64 #s(literal 200 binary64) x %4)
Outputs
%7 = (* 200 (- x y))
%12 = (*.f64 #s(literal 200 binary64) x)
%17 = (/.f64 y x)
%29 = (/.f64 x y)
(approx 200 #s(literal 0 binary64))
(approx x x)
(approx %7 (*.f64 #s(literal -200 binary64) y))
(approx %7 (fma.f64 #s(literal -200 binary64) y %12))
(approx (* 200 x) %12)
(approx %7 (*.f64 x (+.f64 #s(literal 200 binary64) (*.f64 #s(literal -200 binary64) %17))))
(approx %7 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 200 binary64) %17) #s(literal 200 binary64)))))
(approx y y)
(approx %7 (*.f64 y (-.f64 (*.f64 #s(literal 200 binary64) %29) #s(literal 200 binary64))))
(approx %7 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 #s(literal 200 binary64) (*.f64 #s(literal -200 binary64) %29)))))
Calls

6 calls:

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

rewrite80.0ms (12.4%)

Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01352
01952
15049
210949
316549
423749
560749
0401849
0416249
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
11 → 92
Calls
Call 1
Inputs
%4 = (*.f64 #s(literal -200 binary64) y)
%7 = (* 200 (- x y))
%9 = (*.f64 #s(literal 200 binary64) x)
%10 = (fma.f64 #s(literal -200 binary64) y %9)
#s(literal 200 binary64)
x
y
#s(literal -200 binary64)
%4
(approx %7 %4)
%9
%10
(approx %7 %10)
(approx %7 %9)
(fma.f64 #s(literal 200 binary64) x %4)
Outputs
%5 = (*.f64 y #s(literal 200 binary64))
%7 = (neg.f64 y)
%10 = (*.f64 #s(literal -200 binary64) y)
%20 = (* (- x y) 200)
%21 = (approx %20 %10)
%26 = (*.f64 #s(literal -200 binary64) x)
%28 = (neg.f64 x)
%30 = (*.f64 x #s(literal 200 binary64))
%38 = (-.f64 y x)
%39 = (*.f64 %38 #s(literal 200 binary64))
%40 = (*.f64 #s(literal -1 binary64) %39)
%41 = (*.f64 %38 #s(literal -200 binary64))
%42 = (-.f64 x y)
%43 = (*.f64 %42 #s(literal 200 binary64))
%44 = (*.f64 #s(literal 1 binary64) %43)
%45 = (*.f64 #s(literal -200 binary64) %38)
%46 = (*.f64 #s(literal 200 binary64) %42)
%47 = (pow.f64 %43 #s(literal 1 binary64))
%49 = (/.f64 #s(literal 1 binary64) (pow.f64 %43 #s(literal -1 binary64)))
%50 = (neg.f64 %39)
%51 = (fma.f64 #s(literal -1 binary64) %26 %10)
%52 = (fma.f64 #s(literal -1 binary64) %5 %30)
%53 = (fma.f64 %28 #s(literal -200 binary64) %10)
%54 = (fma.f64 %7 #s(literal 200 binary64) %30)
%55 = (fma.f64 #s(literal 1 binary64) %30 %10)
%56 = (fma.f64 #s(literal 1 binary64) %10 %30)
%57 = (*.f64 %10 #s(literal 1 binary64))
%58 = (fma.f64 %30 #s(literal 1 binary64) %57)
%59 = (*.f64 %30 #s(literal 1 binary64))
%60 = (fma.f64 %10 #s(literal 1 binary64) %59)
%61 = (fma.f64 #s(literal -200 binary64) %28 %10)
%62 = (fma.f64 #s(literal -200 binary64) y %30)
%63 = (fma.f64 y #s(literal -200 binary64) %30)
%64 = (fma.f64 x #s(literal 200 binary64) %10)
%65 = (fma.f64 #s(literal 200 binary64) %7 %30)
%66 = (fma.f64 #s(literal 200 binary64) x %10)
%67 = (-.f64 %30 %5)
%68 = (-.f64 %10 %26)
%69 = (+.f64 %59 %57)
%70 = (+.f64 %57 %59)
%71 = (+.f64 %30 %10)
%72 = (+.f64 %10 %30)
%73 = (approx %20 %43)
%78 = (approx %20 %30)
#s(literal 200 binary64)
x
y
#s(literal -200 binary64)
(*.f64 #s(literal -1 binary64) %5)
(*.f64 %7 #s(literal 200 binary64))
(*.f64 #s(literal 1 binary64) %10)
%10
(*.f64 y #s(literal -200 binary64))
(*.f64 #s(literal 200 binary64) %7)
(pow.f64 %10 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %10 #s(literal -1 binary64)))
(neg.f64 %5)
(*.f64 #s(literal 1 binary64) %21)
(pow.f64 %21 #s(literal 1 binary64))
%21
(/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -1 binary64)))
(*.f64 #s(literal -1 binary64) %26)
(*.f64 %28 #s(literal -200 binary64))
(*.f64 #s(literal 1 binary64) %30)
(*.f64 #s(literal -200 binary64) %28)
%30
(*.f64 #s(literal 200 binary64) x)
(pow.f64 %30 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %30 #s(literal -1 binary64)))
(neg.f64 %26)
%40
%41
%44
%43
%45
%46
%47
%49
%50
%51
%52
%53
%54
%55
%56
%58
%60
%61
%62
%63
%64
%65
%66
%67
%68
%69
%70
%71
%72
(*.f64 #s(literal 1 binary64) %73)
(pow.f64 %73 #s(literal 1 binary64))
%73
(/.f64 #s(literal 1 binary64) (pow.f64 %73 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %78)
(pow.f64 %78 #s(literal 1 binary64))
%78
(/.f64 #s(literal 1 binary64) (pow.f64 %78 #s(literal -1 binary64)))
%40
%41
%44
%43
%45
%46
%47
%49
%50
%51
%52
%53
%54
%55
%56
%58
%60
%61
%62
%63
%64
%65
%66
%67
%68
%69
%70
%71
%72

reconstruct7.0ms (1.1%)

Counts
102 → 28
Compiler

Compiled 102 to 95 computations (6.9% saved)

eval3.0ms (0.5%)

Compiler

Compiled 29 to 44 computations (-51.7% saved)

prune3.0ms (0.4%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New29029
Fresh000
Picked044
Done011
Total29534
Accuracy
100.0%
Counts
34 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 #s(literal 200 binary64) x (*.f64 #s(literal -200 binary64) y))
100.0%
(*.f64 #s(literal 200 binary64) (-.f64 x y))
100.0%
(approx (* 200 (- x y)) (fma.f64 #s(literal -200 binary64) y (*.f64 #s(literal 200 binary64) x)))
49.8%
(approx (* 200 (- x y)) (*.f64 #s(literal 200 binary64) x))
51.2%
(approx (* 200 (- x y)) (*.f64 #s(literal -200 binary64) y))
Compiler

Compiled 5 to 10 computations (-100.0% saved)

regimes22.0ms (3.3%)

Accuracy

Total 12.8b remaining (28.1%)

Threshold costs 0.0b (0.0%)

12.8b57.1%
0.0b0.0%
0.0b100.0%
0.0b0%

Counts
1 → 1
2 → 3
3 → 1
4 → 1
Calls
Call 1
Inputs
(approx (* 200 (- x y)) (*.f64 #s(literal -200 binary64) y))
Outputs
(approx (* 200 (- x y)) (*.f64 #s(literal -200 binary64) y))
Call 2
Inputs
%4 = (* 200 (- x y))
(approx %4 (*.f64 #s(literal -200 binary64) y))
(approx %4 (*.f64 #s(literal 200 binary64) x))
Outputs
%4 = (* 200 (- x y))
%7 = (approx %4 (*.f64 #s(literal -200 binary64) y))
%7
(approx %4 (*.f64 #s(literal 200 binary64) x))
%7
Call 3
Inputs
%4 = (* 200 (- x y))
(approx %4 (*.f64 #s(literal -200 binary64) y))
(approx %4 (*.f64 #s(literal 200 binary64) x))
(*.f64 #s(literal 200 binary64) (-.f64 x y))
Outputs
(*.f64 #s(literal 200 binary64) (-.f64 x y))
Call 4
Inputs
%4 = (* 200 (- x y))
%9 = (*.f64 #s(literal 200 binary64) x)
(approx %4 (*.f64 #s(literal -200 binary64) y))
(approx %4 %9)
(*.f64 #s(literal 200 binary64) (-.f64 x y))
(approx %4 (fma.f64 #s(literal -200 binary64) y %9))
Outputs
(approx (* 200 (- x y)) (fma.f64 #s(literal -200 binary64) y (*.f64 #s(literal 200 binary64) x)))
Calls

4 calls:

14.0ms
(-.f64 x y)
6.0ms
y
6.0ms
x
6.0ms
(*.f64 #s(literal 200 binary64) (-.f64 x y))
Results
AccuracySegmentsBranch
51.2%1
y
51.2%1
x
51.2%1
(*.f64 #s(literal 200 binary64) (-.f64 x y))
51.2%1
(-.f64 x y)
Compiler

Compiled 9 to 15 computations (-66.7% saved)

bsearch0.0ms (0.0%)

bsearch0.0ms (0.0%)

bsearch27.0ms (4.2%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
19.0ms
2.4702238806001017e+40
2.5020956682989923e+48
14.0ms
-4.155509726251822e+46
-2.3642662711297703e+40
Samples
8.0ms287×0valid
0.0ms1valid
Compiler

Compiled 12 to 21 computations (-75.0% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
Mul: 0.0ms (0.0% of total, 0.0 MiB)
adjust: 0.0ms (0.0% of total, 0.0 MiB)
Sub: 0.0ms (0.0% of total, 0.0 MiB)

bsearch0.0ms (0.0%)

derivations3.0ms (0.5%)

Stop Event
done
Compiler

Compiled 4 to 15 computations (-275.0% saved)

preprocess25.0ms (3.9%)

Compiler

Compiled 5 to 20 computations (-300.0% saved)

end0.0ms (0.0%)

gc127ms (19.6%)

Allocations
AllocatedPercentPhase
226.6 MiB39.2%sample
133.9 MiB23.2%rewrite
80.8 MiB14.0%preprocess
41.2 MiB7.1%bsearch
39.8 MiB6.9%regimes
21.1 MiB3.7%reconstruct
19.0 MiB3.3%series
6.0 MiB1.0%eval
4.5 MiB0.8%prune
4.1 MiB0.7%derivations
0.3 MiB0.1%analyze
0.1 MiB0.0%end
0.0 MiB0.0%start
577.6 MiB100.0%total

Profiling

Loading profile data...