I wrote a module which implements a kind of binary search for intervals. Given a collection of ranges and associated items (like (1,5,"foo") and (-1, 3,"bar")), you can search by a query range to get everything which overlaps it (like an R-tree in 1 dimension). I wrote it at work to efficiently query genes and other features on chromosomes by location. Snippet below shows it's interface.
Two questions: Does something like this already exist on CPAN? (I didn't find anything). And if not, what should I name it, if I were to upload it? I'm thinking Tree::Interval, Tree::Range, Tree::Binary::Range, Tree::Binary::Interval, Search::Range or Search::Internal... Tree describes what it is, but Search describes what it does.
Thankya.use Tree::Range; my $tr = Tree::Range->new(); $tr->add(10,20,"a"); $tr->add(15,25,"b"); $tr->add(50,67,"c"); $tr->add(22,49,"d"); $tr->finalize(); print join ",", $tr->search(19,23); # "a,b,d"
In reply to What should I name my binary range tree module? by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |