perl-AlignDB-IntSpan - Handling of sets containing integer spans

Distribution: ALT Linux Sisyphus
Repository: Autoimports noarch
Package name: perl-AlignDB-IntSpan
Package version: 1.1.1
Package release: alt1
Package architecture: noarch
Package type: rpm
Installed size: 66.44 KB
Download size: 66.44 KB
Official Mirror:
The `AlignDB::IntSpan' module represents sets of integers as a number of inclusive ranges, for example '1-10,19-23,45-48'. Because many of its operations involve linear searches of the list of ranges its overall performance tends to be proportional to the number of distinct ranges. This is fine for small sets but suffers compared to other possible set representations (bit vectors, hash keys) when the number of ranges grows large. This module also represents sets as ranges of values but stores those ranges in order and uses a binary search for many internal operations so that overall performance tends towards O log N where N is the number of ranges. The internal representation used by this module is extremely simple: a set is represented as a list of integers. Integers in even numbered positions (0, 2, 4 etc) represent the start of a run of numbers while those in odd numbered positions represent the ends of runs. As an example the set (1, 3-7, 9, 11, 12) would be represented internally as (1, 2, 3, 8, 11, 13). Sets may be infinite - assuming you're prepared to accept that infinity is actually no more than a fairly large integer. Specifically the constants `$NEG_INF' and `$POS_INF' are defined to be -(2^31-1) and (2^31-2) respectively. To create an infinite set invert an empty one: my $inf = AlignDB::IntSpan->new->complement; Sets need only be bounded in one direction - for example this is the set of all positive integers (assuming you accept the slightly feeble definition of infinity we're using): my $pos_int = AlignDB::IntSpan->new; $pos_int->add_range(1, $pos_int->POS_INF); Many codes come from the Set::IntSpan manpage, the Set::IntSpan::Fast manpage and the Set::IntSpan::Island manpage.




  • perl(AlignDB/ = 1.001.001
  • perl-AlignDB-IntSpan = 1.1.1-alt1

    Install Howto

    1. Add the following line to /etc/apt/sources.list:
      rpm [Sisyphus] noarch autoimports
      rpm [Sisyphus] noarch autoimports
    2. Update the package index:
      # sudo apt-get update
    3. Install perl-AlignDB-IntSpan rpm package:
      # sudo apt-get install perl-AlignDB-IntSpan


    • /usr/share/doc/perl-AlignDB-IntSpan-1.1.1/Changes
    • /usr/share/doc/perl-AlignDB-IntSpan-1.1.1/LICENSE
    • /usr/share/doc/perl-AlignDB-IntSpan-1.1.1/README
    • /usr/share/perl5/AlignDB/