public double GetCNDist(CIELAB a, CIELAB b) { int i = colorNames.GetBin(a); int j = colorNames.GetBin(b); if (CNcache[i, j] < 0) { double dist = 1 - colorNames.CosineDistance(i, j); CNcache[i, j] = dist; CNcache[j, i] = dist; } return(CNcache[i, j]); }