Beispiel #1
0
        public static Bloomfilter union_(Bloomfilter a, Bloomfilter b)
        {
            Debug.Assert(a.numberOfBits == b.numberOfBits);

            Bloomfilter result = new Bloomfilter(a.numberOfBits);

            result.filter = StaticBitset.or_(a.filter, b.filter);
            return(result);
        }
Beispiel #2
0
        public static StaticBitset or_(StaticBitset a, StaticBitset b)
        {
            Debug.Assert(a.numberOfBits == b.numberOfBits);

            StaticBitset result = new StaticBitset(a.numberOfBits);

            for (int i = 0; i < result.array.Length; i++)
            {
                result.array[i] = a.array[i] | b.array[i];
            }
            return(result);
        }
Beispiel #3
0
        public static bool existsOverlap(StaticBitset a, StaticBitset b)
        {
            Debug.Assert(a.numberOfBits == b.numberOfBits);

            StaticBitset result = new StaticBitset(a.numberOfBits);

            for (int i = 0; i < result.array.Length; i++)
            {
                if ((a.array[i] & b.array[i]) != 0)
                {
                    return(true);
                }
            }
            return(false);
        }
Beispiel #4
0
        public Bloomfilter(uint numberOfBits)
        {
            this.numberOfBits = numberOfBits;

            filter = new StaticBitset(numberOfBits);
        }
Beispiel #5
0
        public static bool overlap(Bloomfilter a, Bloomfilter b)
        {
            Debug.Assert(a.numberOfBits == b.numberOfBits);

            return(StaticBitset.existsOverlap(a.filter, b.filter));
        }