Skip to content

fieryjoy/pybitset

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Problem:
An element is formed of a name and a number. 
A set is formed by partially contiguous elements. 
Merge two such sets.

Idea:
Store all the numbers associated with a name in a compressed bitset.

Implementation:

The implementation uses an open source C++ library for compressed bitset.
http://code.google.com/p/lemurbitmapindex/

Code generates a Python module from the C++ headers from EWAHBoolArray library.

You need to have installed swig (http://www.swig.org/download.html).
And please modify in the Makefile the Python version used.

Usage:

$ make
$ make test


Let me explain:

The user can input two lines with the values (name/number) delimited by comma.

INPUT
-------
a/1, a/2, a/3, a/4, a/128, a/129, b/65, b/66, c/1, c/10, c/42
a/1, a/2, a/3, a/4, a/5, a/126, a/127, b/100, c/2, c/3, d/1

The lines are processed and used to populate two vector of nodes. (please check class Node)
The vectors are printed and then merged.
The merge between bitsets is done using the bitwise OR operator.
Finally the merged vector is printed too.

OUTPUT
----------
Line 0: a/1, a/2, a/3, a/4, a/128, a/129, b/65, b/66, c/1, c/10, c/42
Line 1: a/1, a/2, a/3, a/4, a/5, a/126, a/127, b/100, c/2, c/3, d/1
Merged: a/1, a/2, a/3, a/4, a/5, a/126, a/127, a/128, a/129, b/65, b/66, b/100, c/1, c/2, c/3, c/10, c/42, d/1

About

merge partially contiguous sets

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors