NAME Algorithm::HyperLogLog - Implementation of the HyperLogLog cardinality estimation algorithm SYNOPSIS 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'); DESCRIPTION This module is implementation of the HyperLogLog algorithm. HyperLogLog is an algorithm for estimating the cardinality of a set. METHODS new($b) Constructor. `$b` is the parameter for determining register size. (The register size is 2^$b.) `$b` must be a integer between 4 and 16. new_from_file($filename) This method constructs object and restore the internal data of object from dumped file(dumped by dump_to_file() method). dump_to_file($filename) This method dumps the internal data of an object to a file. add($data) Adds element to the cardinality estimator. estimate() Returns estimated cardinality value in floation point number. register_size() Return number of register.(In the XS impelementation, this equals size in bytes) XS() If using XS backend, this method return true value. SEE ALSO Philippe Flajolet, �经ic Fusy, Olivier Gandouet and Fr矇d矇ric Meunier. HyperLogLog: the analysis of a near-optimal cardinality estimation algorithm. 2007 Conference on Analysis of Algorithms, DMTCS proc. AH, pp. 127��146, 2007. <http://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf> AUTHOR Hideaki Ohno <hide.o.j55 {at} gmail.com> THANKS TO MurmurHash3(<https://github.com/PeterScott/murmur3>) Austin Appleby Peter Scott LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.