public static RangeMatrix Get(int r) { RangeMatrix ret; if (!dictionary.TryGetValue(r, out ret)) { ret = new RangeMatrix(r); dictionary.Add(r, ret); } return ret; }
private RangeMatrix(RangeMatrix a) { matrix = (bool[,])a.matrix.Clone(); }
public static RangeMatrix operator -(RangeMatrix a, RangeMatrix b) { RangeMatrix result = new RangeMatrix(a); for (int i = 0; i < b.matrix.GetLength(0); i++) { for (int j = 0; j < b.matrix.GetLength(1); j++) { if (b.matrix[i, j]) { result.matrix[i, j] = false; } } } return result; }