public void add(long value, long count)
    {
        checkArgument(count > 0, "count must be > 0");

        boolean needsCompression = false;
        double weight = count;
        if (alpha > 0.0) {
            long nowInSeconds = TimeUnit.NANOSECONDS.toSeconds(ticker.read());
            if (nowInSeconds - landmarkInSeconds >= RESCALE_THRESHOLD_SECONDS) {
                rescale(nowInSeconds);
                needsCompression = true; // rescale affects weights globally, so force compression
            }

            weight = weight(nowInSeconds) * count;
        }

        max = Math.max(max, value);
        min = Math.min(min, value);

        double previousCount = weightedCount;
        insert(longToBits(value), weight);

        // When totalCount crosses the next multiple of k (compression factor), the compression
        // equation changes for every node in the tree, so we need to compress globally.
        // Otherwise, only node along the insertion path are affected -- TODO: implement this.
        int compressionFactor = calculateCompressionFactor();
        if (needsCompression || ((long) previousCount) / compressionFactor != ((long) weightedCount) / compressionFactor) {
            compress();
        }
    }
public void add(long value, long count)
    {
        checkArgument(count > 0, "count must be > 0");

        boolean needsCompression = false;
        double weight = count;
        if (alpha > 0.0) {
            long nowInSeconds = TimeUnit.NANOSECONDS.toSeconds(ticker.read());
            if (nowInSeconds - landmarkInSeconds >= RESCALE_THRESHOLD_SECONDS) {
                rescale(nowInSeconds);
                needsCompression = true; 
            }

            weight = weight(nowInSeconds) * count;
        }

        max = Math.max(max, value);
        min = Math.min(min, value);

        double previousCount = weightedCount;
        insert(longToBits(value), weight);

        
        
        
        int compressionFactor = calculateCompressionFactor();
        if (needsCompression || ((long) previousCount) / compressionFactor != ((long) weightedCount) / compressionFactor) {
            compress();
        }
    }
public void add ( long value , long count ) { checkArgument ( count > 0 , "count must be > 0" ) ; boolean needsCompression = false ; double weight = count ; if ( alpha > 0.0 ) { long nowInSeconds = TimeUnit . NANOSECONDS . toSeconds ( ticker . read ( ) ) ; if ( nowInSeconds - landmarkInSeconds >= RESCALE_THRESHOLD_SECONDS ) { rescale ( nowInSeconds ) ; needsCompression = true ; // rescale affects weights globally, so force compression } weight = weight ( nowInSeconds ) * count ; } max = Math . max ( max , value ) ; min = Math . min ( min , value ) ; double previousCount = weightedCount ; insert ( longToBits ( value ) , weight ) ; // When totalCount crosses the next multiple of k (compression factor), the compression // equation changes for every node in the tree, so we need to compress globally. // Otherwise, only node along the insertion path are affected -- TODO: implement this. int compressionFactor = calculateCompressionFactor ( ) ; if ( needsCompression || ( ( long ) previousCount ) / compressionFactor != ( ( long ) weightedCount ) / compressionFactor ) { compress ( ) ; } }
Adds a value to this digest. The value must be {@code >= 0}
Adds a value to this digest . The value must be {