set representation question

David Overton dmo at cs.mu.OZ.AU
Wed Nov 12 23:52:02 EST 2003


On Wed, Nov 12, 2003 at 11:32:54AM +0000, Nicholas Nethercote wrote:
> > Hal Daume III writes:
> >  :
> >  | *all* i care about is being able to quickly calculate the size of
> >  | the intersection of two sets.  these sets are, in general, very
> >  | sparse, which means that the intersections tend to be small.
> >  |
> >  | for example, i might have two sets reprsented by the arrays:
> >  |
> >  |  {0,1,10,346,398,1039,3289,3853,9811,89231,50913}
> >  |  {0,3,98,183,398,1038,5319,7642,9811,13893,93123}
> 

> I can vaguely imagine some clever bitset implementation that lets you do
> intersection with bitwise-and.  Mercury has a bitmap library, which might
> be able to do something like this, but I'm not sure;  it might be more
> suited to smaller and denser sets than you seem to have.  But it might be
> worth a look (see www.cs.mu.oz.au/research/mercury/information/doc-release/library_8.html#SEC8)

There is also `sparse_bitset', which may be more appropriate for the
type of data you've got.  See
<http://www.cs.mu.oz.au/research/mercury/information/doc-release/library_50.html#SEC50>


David
-- 
David Overton                  Uni of Melbourne     +61 3 8344 1354
dmo at cs.mu.oz.au                Monash Uni (Clayton) +61 3 9905 9373
http://www.cs.mu.oz.au/~dmo    Mobile Phone         +61 4 0337 4393


More information about the Haskell mailing list