Global Metrics
path: .metrics.cyclomatic.sum
old: 11.0
new: 13.0
path: .metrics.cyclomatic.average
old: 2.2
new: 2.6
path: .metrics.nom.functions
old: 1.0
new: 4.0
path: .metrics.nom.total
old: 1.0
new: 4.0
path: .metrics.loc.cloc
old: 9.0
new: 11.0
path: .metrics.loc.ploc
old: 37.0
new: 73.0
path: .metrics.loc.blank
old: 4.0
new: 24.0
path: .metrics.loc.sloc
old: 50.0
new: 108.0
path: .metrics.loc.lloc
old: 15.0
new: 28.0
path: .metrics.mi.mi_visual_studio
old: 40.72075067069259
new: 29.304444144950835
path: .metrics.mi.mi_original
old: 69.63248364688432
new: 50.110599487865926
path: .metrics.mi.mi_sei
old: 56.42538384109034
new: 21.64288118041914
path: .metrics.cognitive.sum
old: 5.0
new: 12.0
path: .metrics.cognitive.average
old: 5.0
new: 3.0
path: .metrics.nargs.average
old: 1.0
new: 0.75
path: .metrics.nargs.sum
old: 1.0
new: 3.0
path: .metrics.halstead.bugs
old: 0.21891347631916833
new: 0.7396838665980351
path: .metrics.halstead.difficulty
old: 18.37837837837838
new: 32.166666666666664
path: .metrics.halstead.effort
old: 16830.252376006156
new: 104532.44330276614
path: .metrics.halstead.time
old: 935.0140208892308
new: 5807.357961264785
path: .metrics.halstead.n1
old: 20.0
new: 26.0
path: .metrics.halstead.N1
old: 89.0
new: 292.0
path: .metrics.halstead.n2
old: 37.0
new: 78.0
path: .metrics.halstead.level
old: 0.054411764705882354
new: 0.031088082901554407
path: .metrics.halstead.volume
old: 915.7637322238644
new: 3249.7132632984294
path: .metrics.halstead.N2
old: 68.0
new: 193.0
path: .metrics.halstead.vocabulary
old: 57.0
new: 104.0
path: .metrics.halstead.purity_ratio
old: 1.7782696587644484
new: 1.2628305273049976
path: .metrics.halstead.estimated_program_length
old: 279.1883364260184
new: 612.4728057429238
path: .metrics.halstead.length
old: 157.0
new: 485.0
path: .metrics.nexits.sum
old: 5.0
new: 7.0
path: .metrics.nexits.average
old: 5.0
new: 1.75
Spaces Data
Minimal test - lines (19, 23)
path: .spaces[0].metrics.halstead.n1
old: 20.0
new: 11.0
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.7584249158043257
new: 1.8470180279081791
path: .spaces[0].metrics.halstead.time
old: 916.8092724174272
new: 66.40234773123815
path: .spaces[0].metrics.halstead.level
old: 0.05454545454545455
new: 0.09917355371900824
path: .spaces[0].metrics.halstead.difficulty
old: 18.333333333333332
new: 10.083333333333334
path: .spaces[0].metrics.halstead.n2
old: 36.0
new: 6.0
path: .spaces[0].metrics.halstead.N1
old: 89.0
new: 18.0
path: .spaces[0].metrics.halstead.effort
old: 16502.56690351369
new: 1195.2422591622867
path: .spaces[0].metrics.halstead.N2
old: 66.0
new: 11.0
path: .spaces[0].metrics.halstead.volume
old: 900.1400129189286
new: 118.53642239625984
path: .spaces[0].metrics.halstead.bugs
old: 0.21606267402745505
new: 0.0375418818375687
path: .spaces[0].metrics.halstead.vocabulary
old: 56.0
new: 17.0
path: .spaces[0].metrics.halstead.estimated_program_length
old: 272.5558619496705
new: 53.5635228093372
path: .spaces[0].metrics.halstead.length
old: 155.0
new: 29.0
path: .spaces[0].metrics.loc.blank
old: 3.0
new: 0.0
path: .spaces[0].metrics.loc.cloc
old: 4.0
new: 1.0
path: .spaces[0].metrics.loc.sloc
old: 41.0
new: 5.0
path: .spaces[0].metrics.loc.lloc
old: 15.0
new: 3.0
path: .spaces[0].metrics.loc.ploc
old: 34.0
new: 4.0
path: .spaces[0].metrics.mi.mi_original
old: 73.16687084949086
new: 119.6359603867844
path: .spaces[0].metrics.mi.mi_visual_studio
old: 42.78764377163208
new: 69.96254993379205
path: .spaces[0].metrics.mi.mi_sei
old: 54.135986578038995
new: 129.03648502164882
path: .spaces[0].metrics.nargs.sum
old: 1.0
new: 2.0
path: .spaces[0].metrics.nargs.average
old: 1.0
new: 2.0
path: .spaces[0].metrics.nexits.average
old: 5.0
new: 2.0
path: .spaces[0].metrics.nexits.sum
old: 5.0
new: 2.0
path: .spaces[0].metrics.cyclomatic.sum
old: 10.0
new: 2.0
path: .spaces[0].metrics.cyclomatic.average
old: 2.5
new: 2.0
path: .spaces[0].metrics.cognitive.average
old: 5.0
new: 1.0
path: .spaces[0].metrics.cognitive.sum
old: 5.0
new: 1.0
Code
inline unsigned char unpremultiply(unsigned char color, unsigned char alpha) {
if (alpha == 0) return 0;
// plus alpha/2 to round instead of truncate
return (color * 255 + alpha / 2) / alpha;
}