kjbuckets module release 2 README
The kjbuckets module is a C extension to Python which defines
three hash table based datatypes:
kjSet: an implementation for a Set ADT.
kjDict: an implementation for a mapping ADT.
kjGraph: an implementation for a (directed) graph ADT.
To use this module it must be compiled and linked to Python
(possibly via a dll).
For suitably large compute intensive uses these types should provide
up to an order of magnitude speedup versus an implementation that uses
analogous operations implemented directly in Python.
Briefly, these types have the following associated operations
(among others): [G is a graph, S is a set, D is a dict, X is any]
==================
kjSet(), kjGraph(), kjDict():
initializers (with optional arguments).
S.member(ob), D.member(arg,map), G.member(src,dst), X.has_key(key):
membership tests.
S.add(ob), D.add(arg,map), G.add(src,dst), X[key] = map:
populators.
G.delete_arc(src,dst), del X[key]:
delete operations.
X.choose_key(), X[key], G.neighbors(key), X.items(), X.keys(), X.values():
choice/retrieval operations.
G.reachable(key):
reachability set of from a key.
S.ident():
graph identity generator.
G.tclosure():
transitive closure generator.
===============
kj-Tables may be combined using set-algebraic
operations:
X + Y or X | Y:
union of X and Y.
X & Y, X - Y
intersection and difference of X and Y respectively.
And for Graphs or Dicts:
~X:
transposition of X.
X * Y:
relational composition of X with Y.
For more information please see the documentation enclosed with
the source.
The kjbuckets package consists of the following files
COPYRIGHT - a copyright notice.
kjbuckets.README - a readme (this file)
kjbuckets.tex - documentation in LaTeX.
kjbucketsmodule.c - the C source for the module
kjtest.py - simple access tests/timing for the module
Hoping you'll like it.
Aaron Watters
Department of Computer and Information Sciences
New Jersey Institute of Technology
University Heights
Newark, NJ 07102
phone (201)596-2666
fax (201)596-5777
home phone (908)545-3367
email: aaron@vienna.njit.edu