===========================================================================

                     The Graph Template Library - GTL

===========================================================================


WHAT IS GTL?

   There are some basic data structures and algorithms which are frequently
   used in many programs.  This includes container classes such as vectors,
   sets and lists.

   Many commercial but some free libraries have implemented these data
   structures and algorithms in a general way. This makes them usable for
   many puposes.

   One of these libraries is the Standard Template Library (STL), an
   extremely flexible implementation of many container classes and standard
   algorithms. STL is supposed to become a part of the C++ standard library
   and therefore is an ideal basis when writing portable programs.

   Unfortunately, STL has no support for graphs and graph algorithms.
   However, graphs are widely used to model complex relational structures.

   Since we are intensively working with graph algorithms especially
   in Graphlet (http://www.fmi.uni-passau.de/Graphlet/), we decided to
   implement GTL, a graph library based on STL. For the design of
   GTL's API bases on the API of LEDA. GTL contains the classes
   needed to work with graphs, nodes and edges and some basic
   algorithms as building blocks for more complex graph
   algorithms. Further algorithms are under work.	  


VERSION:

   The actual version is 0.3.3, which works well at least for our own
   project Graphlet (http://www.fmi.uni-passau.de/Graphlet/).  
   
        0.3.3:
   ===========
   
   * Now really contains Visual C++ project files 
   * Added two partitioning algorithms implemented by Christian
     Bachmaier <bachmaie@fmi.uni-passau.de>.
   * Added algorithm for connected components 
   * Added methods to change the source or target of an edge. 
   * Some more assertions added. Mostly to check if the
     arguments to new_edge, del_edge, etc. are really
     elements of the graph. 

	0.3.2:
   ===========

   * Changed the names for the maxflow-algorithms. 

   * revised and extended documentation

	0.3.1:
   ===========

   * Added two max-flow algorithms implemented by Christian
     Bachmaier <bachmaie@fmi.uni-passau.de>.   

	0.3.0:
   ===========

   * graph: added new constructor to create an isomorphic 
     induced subgraph

   * biconnectivity: added option to make an arbitrary 
     graph biconnected. Added accessor function for the additional

   * planarity: fixed bug in pq-tree (the labels of direction
     indicators were not cleared correctly after a reduction) 

   * planarity: added switches for embedding, kuratowski graphs 
     and for using the new make_biconnected of biconnectivity test.

   * planarity: changed the strategy for finding the pertinent 
     leaves in reduction. 

	0.2.6:
   ===========

   * One nasty bug in planarity test fixed, which made the test crash in 
     a lot of cases.

   * Fixed bug in biconnectivity algorithm: The edges in a
     biconnected component were not correctly detected.

	0.2.5:
   ===========

   * Added detection of subgraphs homeomorphic to either K5 or
     K3,3 in case that the graph is not planar.

   * Added support for graphs with multiple edges and selfloops
     in planarity test.

   * fixed some bugs in planarity test.

	0.2.4:
   ===========

   * several bugfixes in planarity-test; especially in the embedding part.

   * made hide/restore of nodes and edges more efficient.

   * planarity-test for graphs which are not biconnected now runs
     in O(n), too; this was achieved by a more efficient strategy
     for hiding and restoring biconnected components.

   * redesigned homepage.

	0.2.3:
   ===========

   * Windows compatibility: now everything can be used on Windows 
     platforms, too. Especially the planarity test now works on
     windows.

   * Bugfixes: 
        - planarity test: fixed some rather nasty bugs
        - symmetric list bug: So far only occured in planarity
	  test and is fixed now.

   * Some more documentation (it still is rather poor,but
     who needs a manual when he has the header files ;-)   
   
	0.2.2: 
   ===========

   * Again bugfixes. (you just can't get rid of them :-)

	0.2.1:
   ===========
	
   * Minor bugfixes, especially in the GML support and in some
     algorithms.

   * Algorithms added: 
	- st-numbering, 
	- planarity test (ALPHA !!)

   * Data structures added:
	- pq-trees (needed for planarity testing, at the moment
	  tailored to that purpose, but will become a template class) 
	- planar embedding. 
	- symmetric list; list which can be reversed in constant time.

	0.2.0:
   ===========

   * Removed all deprecated classes and methods.

   * Introduced new algorithm concept. The basic algorithms like DFS
     and BFS are no longer implemented as member functions of the graph
     class for the following reasons:

	1. These algorithms have a lot of options and variations which
	   can hardly be handled in only *one* function call. 

	2. All the algorithms produce some data which has to
	   stored and handled efficiently. Since the data belongs
	   inherently to the algorithms thought it a good idea to
 	   tie it somehow to the algorithm itself. 

	3. Some algorithms are small extensions of others, e.g. the
	   biconnectivity test adds only a few lines to the standard
	   DFS algorithm.  
	
     Thus we thought it would be a good solution to make all algorithms
     classes, which are derived from one base class implementing the the 
     interface common to all algorithm. 

   * Added GML support. GML is a very flexible desciption language we
     use as file format for our graphs.

	0.1.0:
   ===========

   Please note that this is a very early alpha release of GTL. It probably
   contains many bugs and its interfaces may change in details. Especially
   the classes and methods declared as 'deprecated' are likely to be removed
   for the final version.


PLATFORMS:

  We are currently using GTL in Graphlet on the following platforms:
	
	* Solaris with egcs-1.0.3 or later.
	* Linux with egcs-1.0.3 or later.
	* MS Windows NT/95/98 and Visaul C++ 5.0 Service Pack 3

  The following configurations are reported to work:
	
	* HP-UX 9.07 with gcc-2.8.1

HOMEPAGE:

   Please refer to our homepage 
  
	http://www.fmi.uni-passau.de/Graphlet/GTL/
	
   for updates and latest news.


AUTHORS:

   GTL was designed and implemented by

	Michael Forster	<forster@fmi.uni-passau.de>
	Andreas Pick	<pick@fmi.uni-passau.de>
	Marcus Raitner	<raitner@fmi.uni-passau.de>


BUGS AND FEATURES:

   If you want to report any bugs in GTL or you have suggestions
   concerning desirable feature. Please let us know !

   We maintain mailing-lists for all these purposes. The
   following lists are available:

   gtl@infosun.fmi.uni-passau.de
   =============================
	Comments an questions about GTL to the GTL Team

   gtl-bugs@infosun.fmi.uni-passau.de
   ==================================
        Bug Reports

   gtl-users@infosun.fmi.uni-passau.de
   ===================================
        General Discussion about GTL

   gtl-announce@infosun.fmi.uni-passau.de
   ======================================
        Low traffic, read only list for announcements of new GTL
	versions.


   You can subscribe to the the gtl-announce or gtl-users list by
   sending mail to 

   gtl-announce-request@infosun.fmi.uni-passau.de or
   gtl-users-request@infosun.fmi.uni-passau.de 
   
   with the single word "subscribe" in the body of the message. 

   All announcements on the gtl-announce list are forwarded to
   the gtl-users list, so there is no need to subscribe to both.  

   Please send bugreports and/or suggestions to the appropriate list

   Always include the following informations in your bugreports:

	* Operating System / Version (+ Service Pack)
	* Compiler / Version (+ Service Pack)
	* GTL version
	* A detailed description of the bug
	* Any warnings or errors you get.
	* output of make
	* the file config.log
	* $20 :-)


LICENSE:

   The Graph Template Library (GTL) is copyrighted by the University of
   Passau. The following terms apply to all files in the GTL distribution.

   The authors hereby grant permission to use, copy and modify this
   software and its documentation for any purpose, except the ones
   mentioned in this copyright notice, provided that existing copyright
   notices are retained in all copies. No written agreement, license, or
   royally fee is required for any of the authorized uses.

   Commercial use of GTL without prior written permission is prohibited.
   GTL must not be distributed without prior written permission. The terms
   of this copyright notice also apply to any modification to this software.

DISCLAIMER:

   BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
   FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
   OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
   PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
   OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
   TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
   PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
   REPAIR OR CORRECTION.

   IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
   WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
   REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
   INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
   OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
   TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
   YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
   PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
   POSSIBILITY OF SUCH DAMAGES.

TRADEMARKS:

   Please note that used product names may be trademarks of their respective
   owner.
