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.