예제 #1
0
파일: PowerSet.cs 프로젝트: Tilps/Stash
 /// <summary>
 /// Precalculate a union/intersection.
 /// </summary>
 /// <param name="unionTemp">
 /// Set to recieve the union/intersection result.
 /// </param>
 /// <param name="i">
 /// Size of first set.
 /// </param>
 /// <param name="j">
 /// Index of first set.
 /// </param>
 /// <param name="k">
 /// Size of second set.
 /// </param>
 /// <param name="l">
 /// Index of second set.
 /// </param>
 private void PrecalcAUnionIntersect(Set unionTemp, int i, int j, int k, int l)
 {
     unionTemp.TakeRealUnion(elements[i][j], elements[k][l]);
     int index = elements[unionTemp.Size].BinarySearch(unionTemp);
     unionsSize[elements[i][j].num, elements[k][l].num] = elements[unionTemp.Size][index].Size;
     unionsIndex[elements[i][j].num, elements[k][l].num] = index;
     unionTemp.TakeRealIntersection(elements[i][j], elements[k][l]);
     index = elements[unionTemp.Size].BinarySearch(unionTemp);
     intersectionsSize[elements[i][j].num, elements[k][l].num] = elements[unionTemp.Size][index].Size;
     intersectionsIndex[elements[i][j].num, elements[k][l].num] = index;
 }