Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

FilterOperations.h

Go to the documentation of this file.
00001 #ifndef Impala_Util_FilterOperations_h
00002 #define Impala_Util_FilterOperations_h
00003 
00004 namespace Impala
00005 {
00006 namespace Util
00007 {
00008 
00016 bool*
00017 MakeIntersection(bool* set1, bool* set2, int size)
00018 {
00019     bool* result = new bool[size];
00020     for(int i=0 ; i<size ; ++i)
00021         result[i] = set1[i] && set2[i];
00022     return result;
00023 }
00024 
00027 bool*
00028 MakeRelativeComplement(bool* set1, bool* set2, int size)
00029 {
00030     bool* result = new bool[size];
00031     for(int i=0 ; i<size ; ++i)
00032         result[i] = set1[i] && !set2[i];
00033     return result;
00034 }
00035 
00036 
00038 bool*
00039 MakeUnion(bool* set1, bool* set2, int size)
00040 {
00041     bool* result = new bool[size];
00042     for(int i=0 ; i<size ; ++i)
00043         result[i] = set1[i] || set2[i];
00044     return result;
00045 }
00046 
00048 int
00049 Count(bool* set, int size)
00050 {
00051     int count=0;
00052     for(int i=0 ; i<size ; ++i)
00053         if(set[i])
00054             ++count;
00055     return count;
00056 }
00057 
00063 int
00064 IndexOfNth(bool* set, int size, int n)
00065 {
00066     int count=0;
00067     for(int i=0 ; i<size ; ++i)
00068         if(set[i])
00069         {
00070             if(count==n)
00071                 return i;
00072             ++count;
00073         }
00074     return size;
00075 }
00076 
00077 bool
00078 Equal(bool* set1, bool* set2, int length)
00079 {
00080     for(int i=0 ; i<length ; ++i)
00081     {
00082         if(set1[i] != set2[i])
00083             return false;
00084     }
00085     return true;
00086 }
00087     
00088 } // namespace Util
00089 } // namespace Impala
00090 
00091 #endif

Generated on Fri Mar 19 09:31:46 2010 for ImpalaSrc by  doxygen 1.5.1