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, Éric 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.