Algorithm-LossyCount
view release on metacpan or search on metacpan
lib/Algorithm/LossyCount.pm view on Meta::CPAN
// Carp::croak('Missing mandatory parameter: "max_error_ratio"');
if (%params) {
Carp::croak(
'Unknown parameter(s): ',
join ', ', map { qq/"$_"/ } sort keys %params,
)
}
Carp::croak('max_error_ratio must be positive.') if $max_error_ratio <= 0;
my $self = bless +{
bucket_size => POSIX::ceil(1 / $max_error_ratio),
current_bucket => 1,
entries => +{},
max_error_ratio => $max_error_ratio,
num_samples => 0,
num_samples_in_current_bucket => 0,
} => $class;
return $self;
}
lib/Algorithm/LossyCount/Entry.pm view on Meta::CPAN
my $num_allowed_errors = delete $params{num_allowed_errors}
// Carp::croak('Missing mandatory parameter: "num_allowed_errors"');
if (%params) {
Carp::croak(
'Unknown parameter(s): ',
join ', ', map { qq/"$_"/ } sort keys %params,
)
}
bless +{
frequency => 1,
num_allowed_errors => $num_allowed_errors,
} => $class;
}
sub frequency { $_[0]->{frequency} }
sub increment_frequency { ++$_[0]->{frequency} }
sub num_allowed_errors {
( run in 0.264 second using v1.01-cache-2.11-cpan-de7293f3b23 )