The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Set::IntSpan::Partition - Partition int sets using Set::IntSpan objects

SYNOPSIS

  use Set::IntSpan::Partition;
  my @partition = intspan_partition( @list );

DESCRIPTION

Partition sets based on membership in a set of Set::IntSpan objects.

FUNCTIONS

intspan_partition( @list )

Given a set of Set::IntSpan objects, this sub creates the smallest set of Set::IntSpan objects such that, iff an element was in one or more of the input sets, it will be in exactly one of the output sets, and an output set is either a subset of an input set or disjoint with it.

intspan_partition_map( @list )

Returns a hash mapping input object indices to Set::IntSpan objects which are subsets of the input objects the same way intspan_partition does. This also uses a faster implementation.

EXPORTS

intspan_partition and intspan_partition_map.

CAVEATS

Slow. Patches welcome. I don't like the name intspan_partition, ideas welcome.

THANKS

Thanks to Paul Cochrane for his many improvements to this distribution as part of Neil Bowers' http://neilb.org/2014/11/29/pr-challenge-2015.html.

AUTHOR / COPYRIGHT / LICENSE

  Copyright (c) 2008-2015 Bjoern Hoehrmann <bjoern@hoehrmann.de>.
  This module is licensed under the same terms as Perl itself.