コード例 #1
0
ファイル: FilterUDFs.cs プロジェクト: dcrankshaw/GadgetLoader
    public static IEnumerable AddFilterToSnap(SqlBytes arrayBinary, short snap, int phkey)
    {
        List<object[]> results = new List<object[]>();

            SqlBigIntArrayMax myIds = new SqlBigIntArrayMax(arrayBinary);

            const int expectedFilterCapacity = 1000;
            float errorRate = BloomFilter.Filter<long>.bestErrorRate(expectedFilterCapacity);
            int hashFunctions = BloomFilter.Filter<long>.bestK(expectedFilterCapacity, errorRate);
            BloomFilter.Filter<long> filter = new BloomFilter.Filter<long>(expectedFilterCapacity, errorRate, hashFunctions);

            long[] idsArray = myIds.ToArray();
            for (int i = 0; i < idsArray.Length; i++)
            {
                filter.Add(idsArray[i]);
            }
            object[] item = { snap, phkey, filter.convertToByteArray(), hashFunctions, expectedFilterCapacity };
            results.Add(item);
            return results;
            //finalFilter = filter.convertToByteArray();
    }
コード例 #2
0
 public void Write(SqlBigIntArrayMax a)
 {
     SqlBytes b = a.ToSqlBuffer();
     this.Write(b);
 }