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