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: [email protected]