------------------------------------------------------------------------------
FGL - Functional Graph Library, Version: January 2004
------------------------------------------------------------------------------


CONTENTS
  A. CONTENTS
  B. TESTING
  C. CREDITS
  D. CONTACT


------------------------------------------------------------------------------

A. CONTENTS

In addition to the files doc/README, doc/COPYRIGHT, doc/CHANGES, Makefile,
package.conf.in, and prologue.txt this distribution consists of the following
28 Haskell files.

(A) These files define inductive graphs and basic operations:

  Data/Graph/Inductive.hs                     - Main module
  Data/Graph/Inductive/Graph.hs               - Static and dynamic graph classes,
                                                derived types & operations
  Data/Graph/Inductive/Tree.hs                - Dynamic graph implementation
  Data/Graph/Inductive/Basic.hs               - Basic graph operations (gmap,
                                                grev, ...)
  Data/Graph/Inductive/NodeMap.hs             - Automatic generation of Nodes
                                                from labels.
  Data/Graph/Inductive/Graphviz.hs            - Graphviz output.
  Data/Graph/Inductive/Monad/Monad.hs         - Monadic (static) graph class
                                                based on balanced search trees
  Data/Graph/Inductive/Monad/IOArray.hs       - Static graph implementation based
                                                on IO Arrays


(B) Example graphs:

  Data/Graph/Inductive/Example.hs             - Example graphs
 

(C) Implementation of graph algorithms:

  Data/Graph/Inductive/Query.hs               - Main query module
  Data/Graph/Inductive/Query/DFS.hs           - Depth-first search and
                                                derived operations (topsort,
                                                scc, ...)
  Data/Graph/Inductive/Query/BFS.hs           - Breadth-first search and
                                                "edge" shortest paths
  Data/Graph/Inductive/Query/SP.hs            - Shortest paths (Dijkstra's
                                                algorithm)
  Data/Graph/Inductive/Query/GVD.hs           - Graph voronoi diagram
  Data/Graph/Inductive/Query/MST.hs           - Minimum spanning tree (Prim's
                                                algorithm)
  Data/Graph/Inductive/Query/Indep.hs         - Independent node sets
  Data/Graph/Inductive/Query/MaxFlow.hs       - Edmonds/Karp maximum flow
                                                algorithm
  Data/Graph/Inductive/Query/MaxFlow2.hs      - Alternative implementations
                                                of the Edmonds/Karp algorithm
  Data/Graph/Inductive/Query/ArtPoint.hs      - Articulation points
  Data/Graph/Inductive/Query/BCC.hs           - Biconnected components
  Data/Graph/Inductive/Query/Dominators.hs    - Dominators
  Data/Graph/Inductive/Query/TransClos.hs     - Transitive closure
  Data/Graph/Inductive/Query/Monad.hs         - Graph transformer monad and
                                                monadic graph algorithms
 

(D) Some auxiliary modules:

  Data/Graph/Inductive/Inductive/RootPath.hs  - Inward-directed trees
  Data/Graph/Inductive/Inductive/Heap.hs      - Pairing heaps 
  Data/Graph/Inductive/Inductive/Queue.hs     - Amortized O(1) queue
                                                implementation 
  Data/Graph/Inductive/Inductive/FiniteMap.hs - Binary-search-tree
                                                implementation of maps
  Data/Graph/Inductive/Inductive/Thread.hs    - Auxiliary module used in Graph
                                                (subject to future change)
  

------------------------------------------------------------------------------

B. TESTING

B.1 GHC

    1. Run the test program: "ghci test/test.hs"


B.2 Hugs

    1. Start Hugs: "hugs -98 +o"
     
    2. Load the FGL: ":l Data.Graph.Inductive.Example"

    3. Play with it, e.g., enter: "sp 1 3 clr528"


------------------------------------------------------------------------------

C. CREDITS

I am grateful to many people who have helped me with bug reports, questions,
comments, and implementations to improve the FGL. In particular, I would like
to thank Martin Boehme, Luis Zeron, and Hal Daume for their contributions.
Moreover, I would like to thank Abe Egnor and Isaac Jones at Aetion
Technologies who refactored the modules into the new hierarchical name space
and who have added two modules (see also the file CHANGES).


------------------------------------------------------------------------------

D. BUG REPORTS, QUESTIONS, SUGGESTIONS, ...

Please email comments, bug reports, etc. to erwig@cs.orst.edu
