Algorithm::HyperLogLog - Implementation of the HyperLogLog cardinality
estimation algorithm
use Algorithm::HyperLogLog;
my $hll = Algorithm::HyperLogLog->new(14);
while(<>){
$hll->add($_);
}
my $cardinality = $hll->estimate(); # Estimate cardinality
$hll->dump_to_file('hll_register.dump');# Dumps internal data
Construct object from dumped file.
use Algorithm::HyperLogLog;
# Restore internal state
my $hll = Algorithm::HyperLogLog->new_from_file('hll_register.dump');
This module is implementation of the HyperLogLog algorithm.
HyperLogLog is an algorithm for estimating the cardinality of a set.
Constructor.
`$b` is the parameter for determining register size. (The register size is
2^$b.)
`$b` must be a integer between 4 and 16.
This method constructs object and restore the internal data of object from
dumped file(dumped by
dump_to_file() method).
This method dumps the internal data of an object to a file.
Adds element to the cardinality estimator.
Returns estimated cardinality value in floating point number.
Merges the estimate from 'other' into this object, returning the estimate of
their union.
Return number of register.(In the XS implementation, this equals size in bytes)
If using XS backend, this method return true value.
Philippe Flajolet, Eric Fusy, Olivier Gandouet and Frederic Meunier.
HyperLogLog: the analysis of a near-optimal cardinality estimation algorithm.
2007 Conference on Analysis of Algorithms, DMTCS proc. AH, pp. 127X146, 2007.
<
http://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf>
Hideaki Ohno <hide.o.j55 {at} gmail.com>
MurmurHash3(<
https://github.com/PeterScott/murmur3>)
- Austin Appleby
- Peter Scott
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.