예제 #1
0
        private static Clique Intern(Clique c)
        {
            CliqueEqualityWrapper wrapper = new CliqueEqualityWrapper(c);
            Clique newC = interner.Get(wrapper);
            if (newC == null)
            {
                interner.Put(wrapper, c);
                newC = c;
            }

            return newC;
        }
예제 #2
0
        public static Clique ValueOf(Clique c, int offset)
        {
            int[] ri = new int[c.relativeIndices.Length];
            for (int i = 0; i < ri.Length; i++)
            {
                ri[i] = c.relativeIndices[i] + offset;
            }

            return ValueOfHelper(ri);
        }
예제 #3
0
 public CliqueEqualityWrapper(Clique c)
 {
     this.c = c;
 }
예제 #4
0
 private static Clique ValueOfHelper(int[] relativeIndices)
 {
     Clique c = new Clique();
     c.relativeIndices = relativeIndices;
     return Intern(c);
 }