internal bool Equals(BitArrayMask m) { for (int i = 0; i < bitArray.Length; i++) { if (bitArray[i] != m.bitArray[i]) { return(false); } } return(true); }
internal bool Match(BitArrayMask m) { int maskPart = 0; for (int i = 0; i < bitArray.Length; i++) { maskPart = m.bitArray[i]; if ((bitArray[i] & maskPart) != maskPart) { return(false); } } return(true); }
IPivotData GetBasePivotData(BitArrayMask findMask) { PivotData minPvtData = null; foreach (var cacheEntry in Cache) { if (cacheEntry.Key.Match(findMask)) { if (minPvtData == null || cacheEntry.Value.Count < minPvtData.Count) { minPvtData = cacheEntry.Value; } } } return(minPvtData ?? PvtDataWrapper.PvtData); }
BitArrayMask GetMask(object[] key) { var m = new BitArrayMask(Size); for (int i = 0; i < key.Length; i++) { if (Key._Empty == key[i]) { m.emptyDims++; } else { m.Set(i, true); } } return(m); }