├── .gitignore ├── AUTHORS ├── COPYING ├── COPYING.LESSER ├── ChangeLog ├── GTL.spec ├── INSTALL ├── Makefile.am ├── Makefile.in ├── NEWS ├── README ├── README.Irix ├── README.md ├── README.win ├── TODO ├── aclocal.m4 ├── config ├── config.guess ├── config.sub ├── depcomp ├── install-sh ├── ltmain.sh └── missing ├── configure ├── configure.in ├── doc ├── Makefile.am ├── Makefile.in ├── history.html ├── index.html ├── lists.html ├── manual │ ├── GTL.jpeg │ ├── a00001.html │ ├── a00002.html │ ├── a00003.html │ ├── a00004.html │ ├── a00005.html │ ├── a00006.html │ ├── a00007.html │ ├── a00008.html │ ├── a00009.html │ ├── a00010.html │ ├── a00011.html │ ├── a00012.html │ ├── a00013.html │ ├── a00014.html │ ├── a00015.html │ ├── a00016.html │ ├── a00017.html │ ├── a00018.html │ ├── a00019.html │ ├── a00020.html │ ├── a00021.html │ ├── a00022.html │ ├── a00023.html │ ├── a00024.html │ ├── a00025.html │ ├── a00026.html │ ├── a00027.html │ ├── a00028.html │ ├── a00066.html │ ├── a00068.html │ ├── a00069.html │ ├── a00070.html │ ├── a00071.html │ ├── a00072.html │ ├── a00073.html │ ├── a00074.html │ ├── a00075.html │ ├── a00076.html │ ├── a00077.html │ ├── a00078.html │ ├── a00079.html │ ├── a00080.html │ ├── a00081.html │ ├── a00082.html │ ├── a00083.html │ ├── a00084.html │ ├── a00085.html │ ├── a00086.html │ ├── a00087.html │ ├── a00088.html │ ├── a00089.html │ ├── a00090.html │ ├── a00091.html │ ├── a00092.html │ ├── a00093.html │ ├── a00094.html │ ├── a00095.html │ ├── a00096.html │ ├── a00097.html │ ├── a00098.html │ ├── a00099.html │ ├── a00100.html │ ├── a00101.html │ ├── a00102.gif │ ├── a00102.map │ ├── a00102.md5 │ ├── a00104.html │ ├── a00105.gif │ ├── a00105.map │ ├── a00105.md5 │ ├── a00107.gif │ ├── a00107.map │ ├── a00107.md5 │ ├── a00109.html │ ├── a00110.gif │ ├── a00110.map │ ├── a00110.md5 │ ├── a00112.gif │ ├── a00112.map │ ├── a00112.md5 │ ├── a00114.html │ ├── a00115.gif │ ├── a00115.map │ ├── a00115.md5 │ ├── a00117.gif │ ├── a00117.map │ ├── a00117.md5 │ ├── a00119.html │ ├── a00120.gif │ ├── a00120.map │ ├── a00120.md5 │ ├── a00122.gif │ ├── a00122.map │ ├── a00122.md5 │ ├── a00124.html │ ├── a00125.html │ ├── a00126.gif │ ├── a00126.map │ ├── a00126.md5 │ ├── a00128.gif │ ├── a00128.map │ ├── a00128.md5 │ ├── a00130.html │ ├── a00131.gif │ ├── a00131.map │ ├── a00131.md5 │ ├── a00133.gif │ ├── a00133.map │ ├── a00133.md5 │ ├── a00135.html │ ├── a00136.gif │ ├── a00136.map │ ├── a00136.md5 │ ├── a00138.gif │ ├── a00138.map │ ├── a00138.md5 │ ├── a00140.html │ ├── a00141.html │ ├── a00142.gif │ ├── a00142.map │ ├── a00142.md5 │ ├── a00144.gif │ ├── a00144.map │ ├── a00144.md5 │ ├── a00146.html │ ├── a00147.gif │ ├── a00147.map │ ├── a00147.md5 │ ├── a00149.gif │ ├── a00149.map │ ├── a00149.md5 │ ├── a00151.html │ ├── a00152.html │ ├── a00153.html │ ├── a00154.gif │ ├── a00154.map │ ├── a00154.md5 │ ├── a00156.gif │ ├── a00156.map │ ├── a00156.md5 │ ├── a00158.html │ ├── a00159.gif │ ├── a00159.map │ ├── a00159.md5 │ ├── a00161.gif │ ├── a00161.map │ ├── a00161.md5 │ ├── a00163.html │ ├── a00164.gif │ ├── a00164.map │ ├── a00164.md5 │ ├── a00166.gif │ ├── a00166.map │ ├── a00166.md5 │ ├── a00168.html │ ├── a00169.gif │ ├── a00169.map │ ├── a00169.md5 │ ├── a00171.gif │ ├── a00171.map │ ├── a00171.md5 │ ├── a00173.html │ ├── a00174.gif │ ├── a00174.map │ ├── a00174.md5 │ ├── a00176.html │ ├── a00177.gif │ ├── a00177.map │ ├── a00177.md5 │ ├── a00179.html │ ├── a00180.gif │ ├── a00180.map │ ├── a00180.md5 │ ├── a00182.gif │ ├── a00182.map │ ├── a00182.md5 │ ├── a00184.html │ ├── a00185.gif │ ├── a00185.map │ ├── a00185.md5 │ ├── a00187.html │ ├── a00188.gif │ ├── a00188.map │ ├── a00188.md5 │ ├── a00190.gif │ ├── a00190.map │ ├── a00190.md5 │ ├── a00192.html │ ├── a00193.html │ ├── a00194.gif │ ├── a00194.map │ ├── a00194.md5 │ ├── a00196.gif │ ├── a00196.map │ ├── a00196.md5 │ ├── a00198.html │ ├── a00199.gif │ ├── a00199.map │ ├── a00199.md5 │ ├── a00201.gif │ ├── a00201.map │ ├── a00201.md5 │ ├── a00203.html │ ├── a00204.html │ ├── a00205.gif │ ├── a00205.map │ ├── a00205.md5 │ ├── a00207.gif │ ├── a00207.map │ ├── a00207.md5 │ ├── a00209.html │ ├── a00210.gif │ ├── a00210.map │ ├── a00210.md5 │ ├── a00212.gif │ ├── a00212.map │ ├── a00212.md5 │ ├── a00214.gif │ ├── a00214.map │ ├── a00214.md5 │ ├── a00216.gif │ ├── a00216.map │ ├── a00216.md5 │ ├── a00218.gif │ ├── a00218.map │ ├── a00218.md5 │ ├── a00220.gif │ ├── a00220.map │ ├── a00220.md5 │ ├── a00222.gif │ ├── a00222.map │ ├── a00222.md5 │ ├── a00224.gif │ ├── a00224.map │ ├── a00224.md5 │ ├── a00226.gif │ ├── a00226.map │ ├── a00226.md5 │ ├── a00228.gif │ ├── a00228.map │ ├── a00228.md5 │ ├── a00230.gif │ ├── a00230.map │ ├── a00230.md5 │ ├── a00232.gif │ ├── a00232.map │ ├── a00232.md5 │ ├── annotated.html │ ├── classes.html │ ├── deprecated.html │ ├── doxygen.css │ ├── doxygen.png │ ├── files.html │ ├── form_0.png │ ├── form_1.png │ ├── form_2.png │ ├── form_3.png │ ├── form_4.png │ ├── form_5.png │ ├── form_6.png │ ├── form_7.png │ ├── formula.repository │ ├── functions.html │ ├── functions_0x62.html │ ├── functions_0x63.html │ ├── functions_0x64.html │ ├── functions_0x65.html │ ├── functions_0x66.html │ ├── functions_0x67.html │ ├── functions_0x68.html │ ├── functions_0x69.html │ ├── functions_0x6c.html │ ├── functions_0x6d.html │ ├── functions_0x6e.html │ ├── functions_0x6f.html │ ├── functions_0x70.html │ ├── functions_0x71.html │ ├── functions_0x72.html │ ├── functions_0x73.html │ ├── functions_0x74.html │ ├── functions_0x75.html │ ├── functions_0x77.html │ ├── functions_0x7e.html │ ├── functions_eval.html │ ├── functions_func.html │ ├── functions_func_0x62.html │ ├── functions_func_0x63.html │ ├── functions_func_0x64.html │ ├── functions_func_0x65.html │ ├── functions_func_0x66.html │ ├── functions_func_0x67.html │ ├── functions_func_0x68.html │ ├── functions_func_0x69.html │ ├── functions_func_0x6c.html │ ├── functions_func_0x6d.html │ ├── functions_func_0x6e.html │ ├── functions_func_0x6f.html │ ├── functions_func_0x70.html │ ├── functions_func_0x72.html │ ├── functions_func_0x73.html │ ├── functions_func_0x74.html │ ├── functions_func_0x75.html │ ├── functions_func_0x77.html │ ├── functions_func_0x7e.html │ ├── functions_type.html │ ├── functions_vars.html │ ├── graph_legend.dot │ ├── graph_legend.gif │ ├── graph_legend.html │ ├── hierarchy.html │ ├── index.html │ ├── inherits.html │ ├── pages.html │ ├── tab_b.gif │ ├── tab_l.gif │ ├── tab_r.gif │ └── tabs.css ├── platforms.html ├── refer.html ├── register.html ├── style.css └── userguide │ ├── GTL.ps │ ├── Makefile.am │ └── Makefile.in ├── include ├── GTL │ ├── GTL.h │ ├── Makefile.am │ ├── Makefile.in │ ├── algorithm.h │ ├── bellman_ford.h │ ├── bfs.h │ ├── biconnectivity.h │ ├── bid_dijkstra.h │ ├── bin_heap.h │ ├── components.h │ ├── debug.h │ ├── dfs.h │ ├── dijkstra.h │ ├── edge.h │ ├── edge_data.h │ ├── edge_map.h │ ├── embedding.h │ ├── fm_partition.h │ ├── gml_parser.h │ ├── gml_scanner.h │ ├── graph.h │ ├── maxflow_ff.h │ ├── maxflow_pp.h │ ├── maxflow_sap.h │ ├── min_tree.h │ ├── ne_map.h │ ├── node.h │ ├── node_data.h │ ├── node_map.h │ ├── planarity.h │ ├── pq_node.h │ ├── pq_tree.h │ ├── ratio_cut_partition.h │ ├── st_number.h │ ├── symlist.h │ ├── topsort.h │ ├── version.h │ └── version.h.in ├── Makefile.am └── Makefile.in ├── src ├── GTL.dsw ├── GTL.sln ├── GTL_dynamic.dsp ├── GTL_dynamic.vcproj ├── GTL_static.dsp ├── GTL_static.vcproj ├── Makefile.am ├── Makefile.in ├── bellman_ford.cpp ├── bfs.cpp ├── biconnectivity.cpp ├── bid_dijkstra.cpp ├── components.cpp ├── debug.cpp ├── dfs.cpp ├── dijkstra.cpp ├── edge.cpp ├── embedding.cpp ├── fm_partition.cpp ├── gml_parser.cpp ├── gml_scanner.cpp ├── graph.cpp ├── maxflow_ff.cpp ├── maxflow_pp.cpp ├── maxflow_sap.cpp ├── min_tree.cpp ├── node.cpp ├── planarity.cpp ├── pq_node.cpp ├── pq_tree.cpp ├── ratio_cut_partition.cpp ├── st_number.cpp └── topsort.cpp └── tests ├── Makefile.am ├── Makefile.in ├── bellman_ford_test.cpp └── graph_test.cpp /.gitignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | 3 | *.lo 4 | *.la 5 | *.Po 6 | *.log 7 | *~ 8 | 9 | autom4te.cache 10 | 11 | config.status 12 | config/compile 13 | 14 | libtool 15 | 16 | src/.deps 17 | src/.libs 18 | 19 | test/.deps 20 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | GTL was designed and implemented by 2 | 3 | Michael Forster 4 | Andreas Pick 5 | Marcus Raitner 6 | 7 | 8 | Acknowledgements to 9 | 10 | Christian Bachmaier 11 | -------------------------------------------------------------------------------- /ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/ChangeLog -------------------------------------------------------------------------------- /GTL.spec: -------------------------------------------------------------------------------- 1 | ### BEGIN GTL.spec 2 | # Note that this is NOT a relocatable package 3 | 4 | Name: GTL 5 | Summary: The Graph Template Library 6 | Version: 1.0.0 7 | Release: 1 8 | Group: Development/Libraries 9 | Source: http://infosun.fmi.uni-passau.de/GTL/download/GTL-1.0.0.tar.gz 10 | URL: http://infosun.fmi.uni-passau.de/GTL/ 11 | Copyright: Copyright (C) 1999 University of Passau 12 | Vendor: University of Passau 13 | Packager: Marcus Raitner 14 | Prefix: /usr 15 | BuildRoot: /var/tmp/%{name}-%{version}-root 16 | 17 | %description 18 | 19 | There are some basic data structures and algorithms that are frequently 20 | used in many programs. This includes container classes such as vectors, 21 | sets and lists. 22 | 23 | Many commercial but some free libraries have implemented these data 24 | structures and algorithms in a general way. This makes them usable for 25 | many purposes. 26 | 27 | One of these libraries is the Standard Template Library (STL), an 28 | extremely flexible implementation of many container classes and standard 29 | algorithms. STL is supposed to become a part of the C++ standard library 30 | and therefore is an ideal basis when writing portable programs. 31 | 32 | Unfortunately, STL has no support for graphs and graph 33 | algorithms. However, graphs are widely used for complex relational 34 | structures. 35 | 36 | Since we are intensively working with graph algorithms and Graphlet, we 37 | decided to implement GTL, a graph library based on STL. For the design 38 | of GTL's API the API of LEDA has served as a basis. GTL contains the 39 | classes needed to work with graphs, nodes and edges and some basic 40 | algorithms as building blocks for more complex graph algorithms. Further 41 | algorithms are under work.' 42 | 43 | %changelog 44 | * Thu Oct 26 2000 Marcus Raitner 45 | - New release 46 | * Tue Mar 07 2000 Marcus Raitner 47 | - New release 48 | * Wed Feb 02 2000 Reinhard Katzmann 49 | - Added cleanup section for temporary BuildRoot 50 | - Simplified file section 51 | - Needed to fix GTL.h to use map even with gcc 2.95 :-( (patch file) 52 | - Added Buildroot which was missing and would overwrite old version of GTL while installing 53 | * Fri Nov 26 1999 Marcus Raitner 54 | - Initial RPM packaging. 55 | 56 | %prep 57 | %setup 58 | #%patch -p0 59 | 60 | %build 61 | CXXFLAGS=-O3 CPPFLAGS="" CFLAGS="" ./configure --enable-static --prefix=/usr 62 | make 63 | 64 | %install 65 | make prefix=$RPM_BUILD_ROOT%{prefix} install 66 | strip $RPM_BUILD_ROOT%{prefix}/lib/libGTL-1.0.0.so $RPM_BUILD_ROOT%{prefix}/lib/libGTL.a 67 | 68 | %clean 69 | rm -rf $RPM_BUILD_ROOT 70 | 71 | %post 72 | PATH="$PATH:/sbin" ldconfig -n /usr/lib 73 | 74 | %files 75 | %doc README 76 | %doc INSTALL 77 | %doc doc/latex/GTL.ps 78 | %doc doc/html 79 | /usr/include/GTL 80 | /usr/lib 81 | ###END GTL.spec 82 | -------------------------------------------------------------------------------- /Makefile.am: -------------------------------------------------------------------------------- 1 | #=========================================================================== 2 | # 3 | # Makefile.am 4 | # 5 | #=========================================================================== 6 | # $Id: Makefile.am,v 1.17 2003/03/17 12:48:16 raitner Exp $ 7 | 8 | #--------------------------------------------------------------------------- 9 | # General Settings 10 | #--------------------------------------------------------------------------- 11 | 12 | SUBDIRS = doc src include tests 13 | 14 | AUTOMAKE_OPTIONS = dist-zip dist-bzip2 dist-zip 15 | 16 | EXTRA_DIST = \ 17 | GTL.spec \ 18 | README.Irix \ 19 | README.win \ 20 | src/GTL.dsw \ 21 | src/GTL_dynamic.dsp \ 22 | src/GTL_static.dsp \ 23 | src/GTL.sln \ 24 | src/GTL_dynamic.vcproj \ 25 | src/GTL_static.vcproj 26 | 27 | #--------------------------------------------------------------------------- 28 | # Goal for building documentation 29 | #--------------------------------------------------------------------------- 30 | 31 | .PHONY: doc runtests 32 | 33 | runtests: 34 | cd tests; $(MAKE) runtests 35 | 36 | doc: 37 | cd doc; $(MAKE) doc 38 | 39 | #--------------------------------------------------------------------------- 40 | # end of file 41 | #--------------------------------------------------------------------------- 42 | -------------------------------------------------------------------------------- /NEWS: -------------------------------------------------------------------------------- 1 | * Fixes to make GTL compatible with newer gcc version (>= 3.4) -------------------------------------------------------------------------------- /README.Irix: -------------------------------------------------------------------------------- 1 | 2 | Date: Thu, 13 Apr 2000 09:38:04 +0200 3 | From: Andreas Unterkircher 4 | To: gtl-users@infosun.fmi.uni-passau.de 5 | Subject: GTL on IRIX and True64/Digitial Unix 6 | 7 | 8 | There have been some complaints that linking the GTL archive under SGI's 9 | IRIX and Compaq's True64 Unix (earlier it was called "Digital Unix") does 10 | not work. Here is description how to do it (I tested it only for static 11 | linking, but I think it should work for dynamic linking too). 12 | 13 | SGI (MIPSpro C++ compiler V7.30): 14 | 15 | Compile the GTL sources with "CC -LANG:std -ptused" then build the archive 16 | (ar cru libGTL.a *.o). 17 | 18 | Compaq/DEC (Compaq C++ compiler V6.2-024): 19 | 20 | Compile the GTL sources with "cxx". The compiler produces the object files 21 | plus a directory called "cxx_repository" with template instantiation 22 | object files. Put the GTL object files and the instantiation object files 23 | into libGTL.a. 24 | 25 | Best regards, 26 | Andreas 27 | 28 | --- 29 | Andreas Unterkircher Institut fuer Umformtechnik 30 | ETH Zentrum / CLA, Tannenstr. 3, CH-8092 Zuerich, Switzerland 31 | unterkir@ifu.bepr.ethz.ch / ++41 1 632 66 21 / www.ifu.ethz.ch 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | graph-template-library 2 | ====================== 3 | 4 | This is a copy of the GTL (Graph Template Library) from http://www.fim.uni-passau.de/en/fim/faculty/chairs/theoretische-informatik/projects.html. The original authors are Michael Forster, Andreas Pick, and Marcus Raitner. Their code is licensed under both the GPL and LGPL. 5 | 6 | -------------------------------------------------------------------------------- /README.win: -------------------------------------------------------------------------------- 1 | ============================================================================ 2 | 3 | README.win 4 | 5 | ============================================================================ 6 | $Id: README.win,v 1.4 2003/11/12 06:33:02 chris Exp $ 7 | 8 | Please note, Visual C++ 6.0 is not supported any more and thus the 9 | corresponding project files are not kept up to date any longer. 10 | The new project files are for Visual C++ .NET 2003. Visual Studio .NET 2002 11 | is not supported any more. 12 | 13 | 14 | 15 | 16 | ===== 17 | INDEX 18 | ===== 19 | 20 | 1. Using GTL as a shared library 21 | 2. Using GTL as a static library 22 | 3. Example usage: GTLTest 23 | 24 | 25 | 26 | 27 | ============================= 28 | Using GTL as a shared library 29 | ============================= 30 | 31 | STEP 1: 32 | ======= 33 | 34 | Open GTL.sln in GTL\src 35 | 36 | choose 37 | 38 | GTL_dynamic Win 32 Release 39 | GTL_dynamic Win 32 Debug 40 | 41 | depending on what you need. 42 | 43 | build GTL 44 | 45 | STEP 2: 46 | ======= 47 | 48 | Add library-Path and library to your project. 49 | 50 | The files can be found: 51 | 52 | release: 53 | 54 | lib/GTL.lib 55 | bin/GTL.dll 56 | 57 | debug: 58 | 59 | lib-debug/GTL.lib 60 | bin-debug/GTL.dll 61 | 62 | STEP 3: 63 | ======= 64 | 65 | Change your project settings for 66 | 67 | all: 68 | - disable use of precompiled headers 69 | - change setting for "force conformace in for loop scope" 70 | to "Yes:/Zc:forScope" 71 | 72 | debug: 73 | - make sure "Microsoft Foundation classes" are used as shared library 74 | - use debug info "none", "line numbers", "program database" or 75 | "C7 compatible" 76 | - make sure symbol "_DEBUG" is defined 77 | - use compiler option "Multithreaded Debug DLL" 78 | 79 | release: 80 | - use compiler option "Multithreaded DLL" 81 | 82 | STEP 4: 83 | ======= 84 | 85 | compile your project 86 | 87 | STEP 5: 88 | ======= 89 | 90 | make sure GTL.dll can be found for running your program 91 | (e.g. where your exe file lies) 92 | 93 | 94 | 95 | 96 | 97 | 98 | ============================= 99 | Using GTL as a static library 100 | ============================= 101 | 102 | STEP 1: 103 | ======= 104 | 105 | Open GTL.sln in GTL\src 106 | 107 | choose 108 | 109 | GTL_static Win 32 Release 110 | GTL_static Win 32 Debug 111 | 112 | depending on what you need. 113 | 114 | build GTL 115 | 116 | 117 | STEP 2: 118 | ======= 119 | 120 | Add library-Path and library to your project. 121 | 122 | The files can be found: 123 | 124 | release: 125 | 126 | lib/GTLstatic.lib 127 | 128 | debug: 129 | 130 | lib-debug/GTLstatic.lib 131 | 132 | STEP 3: 133 | ======= 134 | 135 | Change your project settings for 136 | 137 | all: 138 | - define symbol "GTL_STATIC" 139 | - disable use of precompiled headers 140 | - change setting for "force conformace in for loop scope" 141 | to "Yes:/Zc:forScope" 142 | 143 | debug: 144 | - make sure Microsoft Foundation classes are used as shared library 145 | - use debug info "none", "line numbers", "program database" or 146 | "C7 compatible" 147 | - make sure symbol "_DEBUG" is defined 148 | 149 | release: 150 | 151 | STEP 4: 152 | ======= 153 | 154 | compile youre project 155 | 156 | 157 | 158 | 159 | 160 | 161 | ====================== 162 | Example usage: GLTTest 163 | ====================== 164 | 165 | GTLTest is an example for using both 166 | versions of GTL, dynamic and static. 167 | 168 | For usage download GTLTest and unzip 169 | to the same directory as GTL: 170 | 171 | GTL\ 172 | GTLTest\ 173 | 174 | With this directory structure the project file 175 | 176 | GTLTest\win\GTLTest.sln 177 | 178 | will find, compile, and copy the necessary GTL.dll 179 | automatically. If you want to set up a new project 180 | have a look on the settings of GTLTest. 181 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | #----------------------------------------------------------------------- 2 | # TODO 3 | #----------------------------------------------------------------------- 4 | # $Id: TODO,v 1.2 2002/12/23 16:30:40 raitner Exp $ 5 | 6 | #----------------------------------------------------------------------- 7 | # Library 8 | #----------------------------------------------------------------------- 9 | 10 | [ Subgraphs ] 11 | 12 | RATIONALE: Many algorithms work only on part of a graph. A subgraph is 13 | a convenient way of refering to a part of a graph. The nodes and the 14 | edges in the subgraph must be the same as in the origninal graph. The 15 | same behaviour can be achieved through hiding nodes and edges in a 16 | graph, but then only one subgraph is possible. 17 | 18 | STATUS: open 19 | 20 | 21 | [ Genric Attributes ] 22 | 23 | RATIONALE: Graphs with additional attributes for nodes and edges. This 24 | is possible by making a sub-class of graph and keeping a node_map and 25 | edge_map of appropriate type therein. This process of subclassing 26 | should be automated a generic graph class with template parameters. 27 | 28 | STATUS: open 29 | 30 | 31 | [ DFS Iterators ] 32 | 33 | RATIONALE: Iterator based variants of common algorithms. 34 | 35 | STATUS: in progress 36 | 37 | 38 | [ GraphML Support ] 39 | 40 | RATIONALE: GraphML seems to be the upcoming standard for saving 41 | graphs. However, support for GML should be kept up for a while as 42 | well. Alternativly we could provide converters for GML to GraphML. 43 | 44 | STATUS: open 45 | 46 | 47 | [ Graph Generator ] 48 | 49 | RATIONALE: In many applications random graph are needed for 50 | testing. Graph Generators for general graphs as well as for special 51 | graph classes (connected, biconnected, planar, etc.) are needed. 52 | 53 | STATUS: open 54 | 55 | 56 | #----------------------------------------------------------------------- 57 | # Web 58 | #----------------------------------------------------------------------- 59 | 60 | [ Download Form ] 61 | 62 | RATIONALE: At the moment everyone sends a mail with unspecified 63 | format to gtl_download. This should be standardized. 64 | 65 | STATUS: open 66 | 67 | 68 | #----------------------------------------------------------------------- 69 | # Documentation 70 | #----------------------------------------------------------------------- 71 | 72 | [ Doxygen ] 73 | 74 | RATIONALE: Doxygen is way better supported and documented than 75 | KDoc. Furthermore it has more features (graphs ...). 76 | 77 | STATUS: in progress 78 | 79 | # Local Variables: 80 | # mode: text 81 | # comment-start: "#" 82 | # End: 83 | -------------------------------------------------------------------------------- /configure.in: -------------------------------------------------------------------------------- 1 | #=========================================================================== 2 | # 3 | # configure.in 4 | # 5 | #=========================================================================== 6 | # $Id: configure.in,v 1.32 2006/06/01 09:50:12 chris Exp $ 7 | 8 | #--------------------------------------------------------------------------- 9 | # Init Auto Tools 10 | #--------------------------------------------------------------------------- 11 | 12 | # autoconf 13 | 14 | AC_INIT 15 | AC_CONFIG_SRCDIR([src/graph.cpp]) 16 | AC_CONFIG_AUX_DIR(config) 17 | 18 | dnl ----------------------------------------------- 19 | dnl Package name and version number (user defined) 20 | dnl ----------------------------------------------- 21 | 22 | GENERIC_LIBRARY_NAME=GTL 23 | 24 | #release versioning 25 | GENERIC_MAJOR_VERSION=1 26 | GENERIC_MINOR_VERSION=2 27 | GENERIC_MICRO_VERSION=4 28 | 29 | #shared library versioning 30 | GENERIC_LIBRARY_VERSION=3:4:2 31 | # | | | 32 | # +------+ | +---+ 33 | # | | | 34 | # current:revision:age 35 | # | | | 36 | # | | +- increment if interfaces have been added 37 | # | | set to zero if interfaces have been removed 38 | # or changed 39 | # | +- increment if source code has changed 40 | # | set to zero if current is incremented 41 | # +- increment if interfaces have been added, removed or changed 42 | 43 | 44 | dnl -------------------------------- 45 | dnl Package name and version number 46 | dnl -------------------------------- 47 | 48 | AC_SUBST(GENERIC_LIBRARY_VERSION) 49 | 50 | PACKAGE=$GENERIC_LIBRARY_NAME 51 | AC_SUBST(GENERIC_LIBRARY_NAME) 52 | 53 | GENERIC_VERSION=$GENERIC_MAJOR_VERSION.$GENERIC_MINOR_VERSION.$GENERIC_MICRO_VERSION 54 | GENERIC_RELEASE=$GENERIC_MAJOR_VERSION.$GENERIC_MINOR_VERSION 55 | AC_SUBST(GENERIC_RELEASE) 56 | AC_SUBST(GENERIC_VERSION) 57 | 58 | AC_DEFINE_UNQUOTED(GENERIC_MAJOR_VERSION, $GENERIC_MAJOR_VERSION) 59 | AC_DEFINE_UNQUOTED(GENERIC_MINOR_VERSION, $GENERIC_MINOR_VERSION) 60 | AC_DEFINE_UNQUOTED(GENERIC_MICRO_VERSION, $GENERIC_MICRO_VERSION) 61 | 62 | VERSION=$GENERIC_VERSION 63 | 64 | # automake 65 | 66 | AM_INIT_AUTOMAKE($PACKAGE, $VERSION) 67 | 68 | # libtool 69 | 70 | AC_PROG_CXX 71 | AC_LANG([C++]) 72 | AC_DISABLE_STATIC 73 | LT_INIT 74 | 75 | LIBTOOL="$LIBTOOL --silent" 76 | 77 | #--------------------------------------------------------------------------- 78 | # Documentation utilites 79 | #--------------------------------------------------------------------------- 80 | 81 | AC_CHECK_PROGS(doxygen, doxygen) 82 | 83 | #--------------------------------------------------------------------------- 84 | # generate Files 85 | #--------------------------------------------------------------------------- 86 | 87 | ### AC_OUTPUT BEGIN ### 88 | # 89 | # this section is generated automatically by Makefile.local 90 | # DO NOT MODIFY !! 91 | # 92 | AC_CONFIG_FILES([\ 93 | doc/Makefile \ 94 | doc/userguide/Makefile \ 95 | include/GTL/Makefile \ 96 | include/GTL/version.h \ 97 | include/Makefile \ 98 | Makefile \ 99 | src/Makefile \ 100 | tests/Makefile \ 101 | ]) 102 | AC_OUTPUT 103 | ### AC_OUTPUT END ### 104 | 105 | #--------------------------------------------------------------------------- 106 | # end of file 107 | #--------------------------------------------------------------------------- 108 | -------------------------------------------------------------------------------- /doc/Makefile.am: -------------------------------------------------------------------------------- 1 | #=========================================================================== 2 | # 3 | # doc/Makefile.am 4 | # 5 | #=========================================================================== 6 | # $Id: Makefile.am,v 1.8 2003/03/17 12:47:15 raitner Exp $ 7 | 8 | SUBDIRS = userguide 9 | 10 | dist-hook: doc 11 | cp -R manual $(distdir) 12 | mkdir $(distdir)/icons 13 | cp -f www/icons/GTL.jpeg $(distdir)/icons 14 | cp -f www/style.css $(distdir) 15 | cp -f www/index.html $(distdir) 16 | cp -f www/register.html $(distdir) 17 | cp -f www/refer.html $(distdir) 18 | cp -f www/platforms.html $(distdir) 19 | cp -f www/lists.html $(distdir) 20 | cp -f www/history.html $(distdir) 21 | 22 | .PHONY: doc 23 | 24 | doc: 25 | doxygen doxygen_config 26 | cp www/icons/GTL.jpeg manual 27 | cd userguide; $(MAKE) doc 28 | 29 | homepage: doc 30 | cp -Rf manual /home/http/htdocs/infosun/br/projects/GTL 31 | cp -f www/icons/GTL.jpeg /home/http/htdocs/infosun/br/projects/GTL/icons 32 | cp -f www/style.css /home/http/htdocs/infosun/br/projects/GTL 33 | cp -f www/index.html /home/http/htdocs/infosun/br/projects/GTL 34 | cp -f www/register.html /home/http/htdocs/infosun/br/projects/GTL 35 | cp -f www/refer.html /home/http/htdocs/infosun/br/projects/GTL 36 | cp -f www/platforms.html /home/http/htdocs/infosun/br/projects/GTL 37 | cp -f www/lists.html /home/http/htdocs/infosun/br/projects/GTL 38 | cp -f www/history.html /home/http/htdocs/infosun/br/projects/GTL 39 | cp -f www/download.html /home/http/htdocs/infosun/br/projects/GTL/download/index.html 40 | 41 | homepagetest: doc 42 | cp -Rf manual $(HOME)/public_html/GTL 43 | cp -f www/icons/GTL.jpeg $(HOME)/public_html/GTL/icons 44 | cp -f www/style.css $(HOME)/public_html/GTL 45 | cp -f www/index.html $(HOME)/public_html/GTL 46 | cp -f www/register.html $(HOME)/public_html/GTL 47 | cp -f www/refer.html $(HOME)/public_html/GTL 48 | cp -f www/platforms.html $(HOME)/public_html/GTL 49 | cp -f www/lists.html $(HOME)/public_html/GTL 50 | cp -f www/history.html $(HOME)/public_html/GTL 51 | cp -f www/download.html $(HOME)/public_html/GTL/download/index.html 52 | 53 | 54 | #--------------------------------------------------------------------------- 55 | # end of file 56 | #--------------------------------------------------------------------------- 57 | 58 | -------------------------------------------------------------------------------- /doc/history.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/history.html -------------------------------------------------------------------------------- /doc/lists.html: -------------------------------------------------------------------------------- 1 | 3 | 8 | 9 | 10 | 11 | 12 | [ GTL ] Mailing Lists 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 29 |

{ Mailing-lists } 30 | Currently no mailing lists available. 31 |

32 | 47 | 48 | 56 | 59 | 60 | 61 | 62 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /doc/manual/GTL.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/GTL.jpeg -------------------------------------------------------------------------------- /doc/manual/a00101.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: version.h Source File 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |

version.h

00001 //==========================================================================
29 | 00002 //
30 | 00003 //   version.h.in - GTL version
31 | 00004 //
32 | 00005 //==========================================================================
33 | 00006 // $Id: version.h.in,v 1.1 1999/02/18 18:46:59 forster Exp $
34 | 00007 
35 | 00008 #ifndef GTL_VERSION_H
36 | 00009 #define GTL_VERSION_H
37 | 00010 
38 | 00011 #define GTL_MAJOR_VERSION "@MAJOR_VERSION@"
39 | #define GTL_MINOR_VERSION "@MINOR_VERSION@"
40 | #define GTL_MINI_VERSION "@MINI_VERSION@"
41 | 
42 | #endif // GT_VERSION_H
43 | 
44 | //--------------------------------------------------------------------------
45 | //   end of file
46 | //--------------------------------------------------------------------------
47 | 
55 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /doc/manual/a00102.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00102.gif -------------------------------------------------------------------------------- /doc/manual/a00102.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /doc/manual/a00102.md5: -------------------------------------------------------------------------------- 1 | 0067369a1b0ddcd462ec098b6a1af55a -------------------------------------------------------------------------------- /doc/manual/a00104.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Member List 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |
29 | 35 |
36 |

algorithm Member List

This is the complete list of members for algorithm, including all inherited members.

37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
algorithm()algorithm [inline]
check(graph &g)=0algorithm [pure virtual]
GTL_ERROR enum valuealgorithm
GTL_OK enum valuealgorithm
reset()=0algorithm [pure virtual]
run(graph &g)=0algorithm [pure virtual]
~algorithm()algorithm [inline, virtual]

52 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /doc/manual/a00105.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00105.gif -------------------------------------------------------------------------------- /doc/manual/a00105.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00105.md5: -------------------------------------------------------------------------------- 1 | 39179cfafb1274c6b757778e236f2743 -------------------------------------------------------------------------------- /doc/manual/a00107.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00107.gif -------------------------------------------------------------------------------- /doc/manual/a00107.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /doc/manual/a00107.md5: -------------------------------------------------------------------------------- 1 | 04a62c5ad2b320aadc9a41965cb7cbcd -------------------------------------------------------------------------------- /doc/manual/a00110.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00110.gif -------------------------------------------------------------------------------- /doc/manual/a00110.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00110.md5: -------------------------------------------------------------------------------- 1 | f6c524bc5467dcbd2bf570520c5d709a -------------------------------------------------------------------------------- /doc/manual/a00112.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00112.gif -------------------------------------------------------------------------------- /doc/manual/a00112.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /doc/manual/a00112.md5: -------------------------------------------------------------------------------- 1 | 8e66f61195eb49fb6670147fba848247 -------------------------------------------------------------------------------- /doc/manual/a00115.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00115.gif -------------------------------------------------------------------------------- /doc/manual/a00115.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /doc/manual/a00115.md5: -------------------------------------------------------------------------------- 1 | 8b10501bb5d543e46ddbeca7cdb2c79b -------------------------------------------------------------------------------- /doc/manual/a00117.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00117.gif -------------------------------------------------------------------------------- /doc/manual/a00117.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/manual/a00117.md5: -------------------------------------------------------------------------------- 1 | 304d4ca23fc99238d7ad1de6fc45e396 -------------------------------------------------------------------------------- /doc/manual/a00120.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00120.gif -------------------------------------------------------------------------------- /doc/manual/a00120.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00120.md5: -------------------------------------------------------------------------------- 1 | c7df7279f58cf1bc39db7fdf47faf323 -------------------------------------------------------------------------------- /doc/manual/a00122.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00122.gif -------------------------------------------------------------------------------- /doc/manual/a00122.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /doc/manual/a00122.md5: -------------------------------------------------------------------------------- 1 | 65d6238a764107636656b0381afd1d2a -------------------------------------------------------------------------------- /doc/manual/a00126.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00126.gif -------------------------------------------------------------------------------- /doc/manual/a00126.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /doc/manual/a00126.md5: -------------------------------------------------------------------------------- 1 | 1bbd2e2289c5a9b75b25ce75e635a5a8 -------------------------------------------------------------------------------- /doc/manual/a00128.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00128.gif -------------------------------------------------------------------------------- /doc/manual/a00128.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /doc/manual/a00128.md5: -------------------------------------------------------------------------------- 1 | 572b925a05d791bbd15aa7bb2f33abad -------------------------------------------------------------------------------- /doc/manual/a00131.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00131.gif -------------------------------------------------------------------------------- /doc/manual/a00131.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /doc/manual/a00131.md5: -------------------------------------------------------------------------------- 1 | a87d52581ae557db299c167aa6a02426 -------------------------------------------------------------------------------- /doc/manual/a00133.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00133.gif -------------------------------------------------------------------------------- /doc/manual/a00133.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /doc/manual/a00133.md5: -------------------------------------------------------------------------------- 1 | ba7a8153381acb0a9d21168c9fba0fcd -------------------------------------------------------------------------------- /doc/manual/a00136.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00136.gif -------------------------------------------------------------------------------- /doc/manual/a00136.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00136.md5: -------------------------------------------------------------------------------- 1 | 148f5c7d5599624404e75b22fd4b61fc -------------------------------------------------------------------------------- /doc/manual/a00138.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00138.gif -------------------------------------------------------------------------------- /doc/manual/a00138.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/manual/a00138.md5: -------------------------------------------------------------------------------- 1 | de938d7226483828d247d0dc13841207 -------------------------------------------------------------------------------- /doc/manual/a00141.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Member List 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |
29 | 35 |
36 |

edge Member List

This is the complete list of members for edge, including all inherited members.

37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |
change_source(node n)edge
change_target(node n)edge
edge()edge
is_hidden() const edge
opposite(node n) const edge
reverse()edge
source() const edge
target() const edge

53 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /doc/manual/a00142.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00142.gif -------------------------------------------------------------------------------- /doc/manual/a00142.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00142.md5: -------------------------------------------------------------------------------- 1 | 9cee1128d776fb5ddd2a48a30d8e0b91 -------------------------------------------------------------------------------- /doc/manual/a00144.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00144.gif -------------------------------------------------------------------------------- /doc/manual/a00144.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00144.md5: -------------------------------------------------------------------------------- 1 | 9cee1128d776fb5ddd2a48a30d8e0b91 -------------------------------------------------------------------------------- /doc/manual/a00146.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Member List 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |
29 | 35 |
36 |

edge_map< T, Alloc > Member List

This is the complete list of members for edge_map< T, Alloc >, including all inherited members.

37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |
clear()ne_map< edge, T, graph, Alloc >
edge_map()edge_map< T, Alloc > [inline]
edge_map(const graph &g, T t=T())edge_map< T, Alloc > [inline, explicit]
init(const graph &, Tdef=T())ne_map< edge, T, graph, Alloc >
ne_map()ne_map< edge, T, graph, Alloc > [protected]
ne_map(const graph &g, Tdef=T())ne_map< edge, T, graph, Alloc > [explicit, protected]
operator[](edgekey)ne_map< edge, T, graph, Alloc >
operator[](edgekey) const ne_map< edge, T, graph, Alloc >

53 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /doc/manual/a00147.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00147.gif -------------------------------------------------------------------------------- /doc/manual/a00147.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00147.md5: -------------------------------------------------------------------------------- 1 | b773da2364201ec083555939e802a575 -------------------------------------------------------------------------------- /doc/manual/a00149.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00149.gif -------------------------------------------------------------------------------- /doc/manual/a00149.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /doc/manual/a00149.md5: -------------------------------------------------------------------------------- 1 | 688488a2b5fa401c8069a9da720914dc -------------------------------------------------------------------------------- /doc/manual/a00152.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Member List 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |
29 | 35 |
36 |

GML_error Member List

This is the complete list of members for GML_error, including all inherited members.

37 | 38 | 39 | 40 |
columnGML_error
err_numGML_error
lineGML_error

48 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /doc/manual/a00154.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00154.gif -------------------------------------------------------------------------------- /doc/manual/a00154.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00154.md5: -------------------------------------------------------------------------------- 1 | 466af44b8c2d25984a93de64743be5cc -------------------------------------------------------------------------------- /doc/manual/a00156.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00156.gif -------------------------------------------------------------------------------- /doc/manual/a00156.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /doc/manual/a00156.md5: -------------------------------------------------------------------------------- 1 | 788022abcef3a2a42a9c6034adca47da -------------------------------------------------------------------------------- /doc/manual/a00159.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00159.gif -------------------------------------------------------------------------------- /doc/manual/a00159.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00159.md5: -------------------------------------------------------------------------------- 1 | b3fab9f42eb1205d2256b71da8cd74b2 -------------------------------------------------------------------------------- /doc/manual/a00161.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00161.gif -------------------------------------------------------------------------------- /doc/manual/a00161.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /doc/manual/a00161.md5: -------------------------------------------------------------------------------- 1 | 8973c566f2e412c98fc25d561b2796a4 -------------------------------------------------------------------------------- /doc/manual/a00164.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00164.gif -------------------------------------------------------------------------------- /doc/manual/a00164.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00164.md5: -------------------------------------------------------------------------------- 1 | 6ce63f895e8748342e6c23f39c0993bc -------------------------------------------------------------------------------- /doc/manual/a00166.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00166.gif -------------------------------------------------------------------------------- /doc/manual/a00166.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /doc/manual/a00166.md5: -------------------------------------------------------------------------------- 1 | ff183f6d1a79286bddc78484c4afb642 -------------------------------------------------------------------------------- /doc/manual/a00169.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00169.gif -------------------------------------------------------------------------------- /doc/manual/a00169.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00169.md5: -------------------------------------------------------------------------------- 1 | 2a7aa0f5ba4e156b6420b66d15ca6bab -------------------------------------------------------------------------------- /doc/manual/a00171.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00171.gif -------------------------------------------------------------------------------- /doc/manual/a00171.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /doc/manual/a00171.md5: -------------------------------------------------------------------------------- 1 | 9e0ca87d5e2cac403c0d517e4f20497d -------------------------------------------------------------------------------- /doc/manual/a00174.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00174.gif -------------------------------------------------------------------------------- /doc/manual/a00174.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /doc/manual/a00174.md5: -------------------------------------------------------------------------------- 1 | c126a43ad4fa3ce8c8d8e3f664882d59 -------------------------------------------------------------------------------- /doc/manual/a00176.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Member List 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |
29 | 35 |
36 |

ne_map< Key, Value, Graph, Alloc > Member List

This is the complete list of members for ne_map< Key, Value, Graph, Alloc >, including all inherited members.

37 | 38 | 39 | 40 | 41 | 42 | 43 |
clear()ne_map< Key, Value, Graph, Alloc > [inline]
init(const Graph &, Value def=Value())ne_map< Key, Value, Graph, Alloc > [inline]
ne_map()ne_map< Key, Value, Graph, Alloc > [inline, protected]
ne_map(const Graph &g, Value def=Value())ne_map< Key, Value, Graph, Alloc > [inline, explicit, protected]
operator[](Key key)ne_map< Key, Value, Graph, Alloc > [inline]
operator[](Key key) const ne_map< Key, Value, Graph, Alloc > [inline]

51 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /doc/manual/a00177.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00177.gif -------------------------------------------------------------------------------- /doc/manual/a00177.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /doc/manual/a00177.md5: -------------------------------------------------------------------------------- 1 | 7b7fcf0d50a50f8a9b2e06a354102468 -------------------------------------------------------------------------------- /doc/manual/a00180.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00180.gif -------------------------------------------------------------------------------- /doc/manual/a00180.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00180.md5: -------------------------------------------------------------------------------- 1 | 6e88a92639d2bcac87db904b3b2942a4 -------------------------------------------------------------------------------- /doc/manual/a00182.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00182.gif -------------------------------------------------------------------------------- /doc/manual/a00182.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00182.md5: -------------------------------------------------------------------------------- 1 | 6e88a92639d2bcac87db904b3b2942a4 -------------------------------------------------------------------------------- /doc/manual/a00184.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Member List 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |
29 | 35 |
36 |

node_map< T, Alloc > Member List

This is the complete list of members for node_map< T, Alloc >, including all inherited members.

37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |
clear()ne_map< node, T, graph, Alloc >
init(const graph &, Tdef=T())ne_map< node, T, graph, Alloc >
ne_map()ne_map< node, T, graph, Alloc > [protected]
ne_map(const graph &g, Tdef=T())ne_map< node, T, graph, Alloc > [explicit, protected]
node_map()node_map< T, Alloc > [inline]
node_map(const graph &g, T t=T())node_map< T, Alloc > [inline, explicit]
operator[](nodekey)ne_map< node, T, graph, Alloc >
operator[](nodekey) const ne_map< node, T, graph, Alloc >

53 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /doc/manual/a00185.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00185.gif -------------------------------------------------------------------------------- /doc/manual/a00185.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /doc/manual/a00185.md5: -------------------------------------------------------------------------------- 1 | 04aa713eb152f42c64ad95ebccfda64e -------------------------------------------------------------------------------- /doc/manual/a00188.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00188.gif -------------------------------------------------------------------------------- /doc/manual/a00188.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00188.md5: -------------------------------------------------------------------------------- 1 | d5e3659f92744ba718a45c1511e9fc85 -------------------------------------------------------------------------------- /doc/manual/a00190.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00190.gif -------------------------------------------------------------------------------- /doc/manual/a00190.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /doc/manual/a00190.md5: -------------------------------------------------------------------------------- 1 | e214e9e43cf1d093d1b44c508dea2f26 -------------------------------------------------------------------------------- /doc/manual/a00194.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00194.gif -------------------------------------------------------------------------------- /doc/manual/a00194.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00194.md5: -------------------------------------------------------------------------------- 1 | 341eb454afd13c5ab1de36cd9ed5d89f -------------------------------------------------------------------------------- /doc/manual/a00196.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00196.gif -------------------------------------------------------------------------------- /doc/manual/a00196.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /doc/manual/a00196.md5: -------------------------------------------------------------------------------- 1 | b1e402323333306a0b5c387825b567fe -------------------------------------------------------------------------------- /doc/manual/a00199.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00199.gif -------------------------------------------------------------------------------- /doc/manual/a00199.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00199.md5: -------------------------------------------------------------------------------- 1 | 9b0cca9e12f9f45b868470553a58476b -------------------------------------------------------------------------------- /doc/manual/a00201.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00201.gif -------------------------------------------------------------------------------- /doc/manual/a00201.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /doc/manual/a00201.md5: -------------------------------------------------------------------------------- 1 | 5bfd2717d2a8a18efd48778e5142a7be -------------------------------------------------------------------------------- /doc/manual/a00205.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00205.gif -------------------------------------------------------------------------------- /doc/manual/a00205.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /doc/manual/a00205.md5: -------------------------------------------------------------------------------- 1 | 1770f75c4cb2757b3ab4b0f7fb067d1d -------------------------------------------------------------------------------- /doc/manual/a00207.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00207.gif -------------------------------------------------------------------------------- /doc/manual/a00207.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /doc/manual/a00207.md5: -------------------------------------------------------------------------------- 1 | d171ec36e50a49cb095eec952d848908 -------------------------------------------------------------------------------- /doc/manual/a00210.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00210.gif -------------------------------------------------------------------------------- /doc/manual/a00210.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /doc/manual/a00210.md5: -------------------------------------------------------------------------------- 1 | b37c05f13e097bc81cd86f5bc8938746 -------------------------------------------------------------------------------- /doc/manual/a00212.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00212.gif -------------------------------------------------------------------------------- /doc/manual/a00212.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00212.md5: -------------------------------------------------------------------------------- 1 | 9194619c6bc0d11005171c002f51febd -------------------------------------------------------------------------------- /doc/manual/a00214.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00214.gif -------------------------------------------------------------------------------- /doc/manual/a00214.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00214.md5: -------------------------------------------------------------------------------- 1 | 66d9274796b99a21e0be1e2bab9a6bb8 -------------------------------------------------------------------------------- /doc/manual/a00216.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00216.gif -------------------------------------------------------------------------------- /doc/manual/a00216.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00216.md5: -------------------------------------------------------------------------------- 1 | 98f9c282a8fe58122020ed73ec85f48a -------------------------------------------------------------------------------- /doc/manual/a00218.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00218.gif -------------------------------------------------------------------------------- /doc/manual/a00218.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00218.md5: -------------------------------------------------------------------------------- 1 | 1637b6913098313049146672cda7dbaf -------------------------------------------------------------------------------- /doc/manual/a00220.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00220.gif -------------------------------------------------------------------------------- /doc/manual/a00220.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /doc/manual/a00220.md5: -------------------------------------------------------------------------------- 1 | 0678ada89b918981880175683cd93e4c -------------------------------------------------------------------------------- /doc/manual/a00222.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00222.gif -------------------------------------------------------------------------------- /doc/manual/a00222.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00222.md5: -------------------------------------------------------------------------------- 1 | 116e677c37b3380aeb01e66282cd2e97 -------------------------------------------------------------------------------- /doc/manual/a00224.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00224.gif -------------------------------------------------------------------------------- /doc/manual/a00224.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /doc/manual/a00224.md5: -------------------------------------------------------------------------------- 1 | 433c7fa2f843d97ceacef26ec5b3d160 -------------------------------------------------------------------------------- /doc/manual/a00226.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00226.gif -------------------------------------------------------------------------------- /doc/manual/a00226.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00226.md5: -------------------------------------------------------------------------------- 1 | 48a02a70a50a7dcfcf282650aa76e91a -------------------------------------------------------------------------------- /doc/manual/a00228.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00228.gif -------------------------------------------------------------------------------- /doc/manual/a00228.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00228.md5: -------------------------------------------------------------------------------- 1 | 0a1652af460bc50a750cd602357f4e4f -------------------------------------------------------------------------------- /doc/manual/a00230.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00230.gif -------------------------------------------------------------------------------- /doc/manual/a00230.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00230.md5: -------------------------------------------------------------------------------- 1 | a43898c896f7409d0a9e096d079218bb -------------------------------------------------------------------------------- /doc/manual/a00232.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/a00232.gif -------------------------------------------------------------------------------- /doc/manual/a00232.map: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/manual/a00232.md5: -------------------------------------------------------------------------------- 1 | a061bdd1649235b3125d04509a849255 -------------------------------------------------------------------------------- /doc/manual/deprecated.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Deprecated List 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |

Deprecated List

29 |
Member graph::del_all_nodes ()
30 |
Deletes all visible nodes, i.e. the hidden ones stay.
31 |
32 |

33 |

34 |
Member graph::del_all_edges ()
35 |
Deletes all visible edges, i.e. the hidden ones stay.
36 |
37 |

38 |

39 |
Member graph::all_nodes () const
40 |
Returns:
a list of all nodes of the graph
41 |
42 |
43 |

44 |

45 |
Member graph::all_edges () const
46 |
Returns:
a list of all edges of the graph
47 |
48 |
49 |

50 |

51 |
Member graph::choose_node () const
52 |
53 |
54 |

55 |

56 |
Member graph::insert_reverse_edges ()
57 |
inserts for all edges of the graph a reverse edge NOTE: this functions does NOT care about existing reverse edges
58 |
59 | 67 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /doc/manual/doxygen.css: -------------------------------------------------------------------------------- 1 | body 2 | { 3 | margin-left:1cm; 4 | margin-right:1cm; 5 | margin-top:140px; 6 | background-image:url(GTL.jpeg); 7 | background-position:top center; 8 | background-repeat:no-repeat; 9 | font-family:"Lucida Grande", "Verdana", sans-serif; 10 | font-size:10pt; 11 | } 12 | 13 | .links 14 | { 15 | margin-left:-0.5cm; 16 | margin-right:-0.5cm; 17 | text-align:center; 18 | font-size:10pt; 19 | background-color:#CCC; 20 | border-top-width:1px; 21 | border-top-style:solid; 22 | border-bottom-width:1px; 23 | border-bottom-style:solid; 24 | border-color:black; 25 | padding:5px; 26 | } 27 | 28 | .copyright 29 | { 30 | margin-right:-0.5cm; 31 | text-align:right; 32 | font-size:10pt; 33 | } 34 | 35 | h1 36 | { 37 | text-align:center; 38 | color: #C60; 39 | font-style: normal; 40 | } 41 | 42 | CAPTION 43 | { 44 | font-weight:bold 45 | } 46 | 47 | TD.md 48 | { 49 | background-color:#CCC; 50 | font-weight: bold; 51 | } 52 | 53 | TD.mdname1 54 | { 55 | background-color: #CCC; 56 | font-weight: bold; 57 | color: #602020; 58 | } 59 | 60 | TD.mdname 61 | { 62 | background-color:#CCC; 63 | font-weight: bold; 64 | width: 600px; 65 | } 66 | 67 | DIV.ah 68 | { 69 | background-color: #CCC; 70 | font-weight: bold; 71 | margin-bottom: 3px; 72 | margin-top: 3px; 73 | } 74 | 75 | 76 | a:link 77 | { 78 | color: #900; 79 | font-style: normal; 80 | font-weight: normal; 81 | text-decoration: none; 82 | } 83 | 84 | a:visited 85 | { 86 | color: #600; 87 | font-style: normal; 88 | font-weight: normal; 89 | text-decoration: none; 90 | } 91 | 92 | a:active 93 | { 94 | color: #C60; 95 | font-style: normal; 96 | font-weight: normal; 97 | text-decoration: none; 98 | } 99 | 100 | a:hover 101 | { 102 | color: #900; 103 | font-style: normal; 104 | font-weight: normal; 105 | text-decoration: underline; 106 | } 107 | -------------------------------------------------------------------------------- /doc/manual/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/doxygen.png -------------------------------------------------------------------------------- /doc/manual/form_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/form_0.png -------------------------------------------------------------------------------- /doc/manual/form_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/form_1.png -------------------------------------------------------------------------------- /doc/manual/form_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/form_2.png -------------------------------------------------------------------------------- /doc/manual/form_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/form_3.png -------------------------------------------------------------------------------- /doc/manual/form_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/form_4.png -------------------------------------------------------------------------------- /doc/manual/form_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/form_5.png -------------------------------------------------------------------------------- /doc/manual/form_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/form_6.png -------------------------------------------------------------------------------- /doc/manual/form_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/form_7.png -------------------------------------------------------------------------------- /doc/manual/formula.repository: -------------------------------------------------------------------------------- 1 | \form#0:$\mathcal{O}((|V| + |E|) log |V|)$ 2 | \form#1:$\ge 0$ 3 | \form#2:$\mathcal{O}(\mbox{length of this path})$ 4 | \form#3:$N$ 5 | \form#4:$\mathcal{O}(N)$ 6 | \form#5:$\mathcal{O}(E)$ 7 | \form#6:$E$ 8 | \form#7:$\mathcal{O}(1)$ 9 | -------------------------------------------------------------------------------- /doc/manual/functions_0x71.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Class Members 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |
29 | 35 |
36 |
37 | 44 |
45 |
46 |
    47 |
  • a
  • 48 |
  • b
  • 49 |
  • c
  • 50 |
  • d
  • 51 |
  • e
  • 52 |
  • f
  • 53 |
  • g
  • 54 |
  • h
  • 55 |
  • i
  • 56 |
  • l
  • 57 |
  • m
  • 58 |
  • n
  • 59 |
  • o
  • 60 |
  • p
  • 61 |
  • q
  • 62 |
  • r
  • 63 |
  • s
  • 64 |
  • t
  • 65 |
  • u
  • 66 |
  • w
  • 67 |
  • ~
  • 68 |
69 |
70 | 71 |

72 | Here is a list of all documented class members with links to the class documentation for each member: 73 |

74 |

- q -

    75 |
  • qu 76 | : bfs 77 |
78 | 86 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /doc/manual/functions_eval.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Class Members - Enumerator 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |
29 | 35 |
36 |
37 | 44 |
45 |   46 |

47 |

53 | 61 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /doc/manual/functions_func_0x68.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Class Members - Functions 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |
29 | 35 |
36 |
37 | 44 |
45 |
46 |
    47 |
  • a
  • 48 |
  • b
  • 49 |
  • c
  • 50 |
  • d
  • 51 |
  • e
  • 52 |
  • f
  • 53 |
  • g
  • 54 |
  • h
  • 55 |
  • i
  • 56 |
  • l
  • 57 |
  • m
  • 58 |
  • n
  • 59 |
  • o
  • 60 |
  • p
  • 61 |
  • r
  • 62 |
  • s
  • 63 |
  • t
  • 64 |
  • u
  • 65 |
  • w
  • 66 |
  • ~
  • 67 |
68 |
69 | 70 |

71 |   72 |

73 |

- h -

    74 |
  • hide_edge() 75 | : graph 76 |
  • hide_node() 77 | : graph 78 |
79 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /doc/manual/functions_func_0x75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Class Members - Functions 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |
29 | 35 |
36 |
37 | 44 |
45 |
46 |
    47 |
  • a
  • 48 |
  • b
  • 49 |
  • c
  • 50 |
  • d
  • 51 |
  • e
  • 52 |
  • f
  • 53 |
  • g
  • 54 |
  • h
  • 55 |
  • i
  • 56 |
  • l
  • 57 |
  • m
  • 58 |
  • n
  • 59 |
  • o
  • 60 |
  • p
  • 61 |
  • r
  • 62 |
  • s
  • 63 |
  • t
  • 64 |
  • u
  • 65 |
  • w
  • 66 |
  • ~
  • 67 |
68 |
69 | 70 |

71 |   72 |

73 |

- u -

    74 |
  • unused_node_handler() 75 | : bfs 76 |
  • used_node_handler() 77 | : bfs 78 |
79 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /doc/manual/graph_legend.dot: -------------------------------------------------------------------------------- 1 | digraph G 2 | { 3 | edge [fontname="FreeSans.ttf",fontsize=10,labelfontname="FreeSans.ttf",labelfontsize=10]; 4 | node [fontname="FreeSans.ttf",fontsize=10,shape=record]; 5 | Node9 [shape="box",label="Inherited",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",fillcolor="grey75",style="filled" fontcolor="black"]; 6 | Node10 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"]; 7 | Node10 [shape="box",label="PublicBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classPublicBase.html"]; 8 | Node11 -> Node10 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"]; 9 | Node11 [shape="box",label="Truncated",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="red",URL="$classTruncated.html"]; 10 | Node13 -> Node9 [dir=back,color="darkgreen",fontsize=10,style="solid",fontname="FreeSans.ttf"]; 11 | Node13 [shape="box",label="ProtectedBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classProtectedBase.html"]; 12 | Node14 -> Node9 [dir=back,color="firebrick4",fontsize=10,style="solid",fontname="FreeSans.ttf"]; 13 | Node14 [shape="box",label="PrivateBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classPrivateBase.html"]; 14 | Node15 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"]; 15 | Node15 [shape="box",label="Undocumented",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="grey75"]; 16 | Node16 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"]; 17 | Node16 [shape="box",label="Templ< int >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classTempl.html"]; 18 | Node17 -> Node16 [dir=back,color="orange",fontsize=10,style="dashed",label="< int >",fontname="FreeSans.ttf"]; 19 | Node17 [shape="box",label="Templ< T >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classTempl.html"]; 20 | Node18 -> Node9 [dir=back,color="darkorchid3",fontsize=10,style="dashed",label="m_usedClass",fontname="FreeSans.ttf"]; 21 | Node18 [shape="box",label="Used",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classUsed.html"]; 22 | } 23 | -------------------------------------------------------------------------------- /doc/manual/graph_legend.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/graph_legend.gif -------------------------------------------------------------------------------- /doc/manual/hierarchy.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Hierarchical Index 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |
29 | 35 |
36 |

GTL - Graph Template Library Class Hierarchy

Go to the graphical class hierarchy 37 |

38 | This inheritance list is sorted roughly, but not completely, alphabetically:

78 | 86 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /doc/manual/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Main Page 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |

GTL - Graph Template Library Documentation

29 |

30 |

1.2.4

38 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /doc/manual/pages.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GTL - Graph Template Library: Page Index 6 | 7 | 8 | 9 | 18 | 19 | 20 |
21 | 27 |
28 |

GTL - Graph Template Library Related Pages

Here is a list of all related documentation pages: 32 | 40 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /doc/manual/tab_b.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/tab_b.gif -------------------------------------------------------------------------------- /doc/manual/tab_l.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/tab_l.gif -------------------------------------------------------------------------------- /doc/manual/tab_r.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/doc/manual/tab_r.gif -------------------------------------------------------------------------------- /doc/manual/tabs.css: -------------------------------------------------------------------------------- 1 | /* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ 2 | 3 | DIV.tabs 4 | { 5 | float : left; 6 | width : 100%; 7 | background : url("tab_b.gif") repeat-x bottom; 8 | margin-bottom : 4px; 9 | } 10 | 11 | DIV.tabs UL 12 | { 13 | margin : 0px; 14 | padding-left : 10px; 15 | list-style : none; 16 | } 17 | 18 | DIV.tabs LI, DIV.tabs FORM 19 | { 20 | display : inline; 21 | margin : 0px; 22 | padding : 0px; 23 | } 24 | 25 | DIV.tabs FORM 26 | { 27 | float : right; 28 | } 29 | 30 | DIV.tabs A 31 | { 32 | float : left; 33 | background : url("tab_r.gif") no-repeat right top; 34 | border-bottom : 1px solid #84B0C7; 35 | font-size : x-small; 36 | font-weight : bold; 37 | text-decoration : none; 38 | } 39 | 40 | DIV.tabs A:hover 41 | { 42 | background-position: 100% -150px; 43 | } 44 | 45 | DIV.tabs A:link, DIV.tabs A:visited, 46 | DIV.tabs A:active, DIV.tabs A:hover 47 | { 48 | color: #1A419D; 49 | } 50 | 51 | DIV.tabs SPAN 52 | { 53 | float : left; 54 | display : block; 55 | background : url("tab_l.gif") no-repeat left top; 56 | padding : 5px 9px; 57 | white-space : nowrap; 58 | } 59 | 60 | DIV.tabs INPUT 61 | { 62 | float : right; 63 | display : inline; 64 | font-size : 1em; 65 | } 66 | 67 | DIV.tabs TD 68 | { 69 | font-size : x-small; 70 | font-weight : bold; 71 | text-decoration : none; 72 | } 73 | 74 | 75 | 76 | /* Commented Backslash Hack hides rule from IE5-Mac \*/ 77 | DIV.tabs SPAN {float : none;} 78 | /* End IE5-Mac hack */ 79 | 80 | DIV.tabs A:hover SPAN 81 | { 82 | background-position: 0% -150px; 83 | } 84 | 85 | DIV.tabs LI.current A 86 | { 87 | background-position: 100% -150px; 88 | border-width : 0px; 89 | } 90 | 91 | DIV.tabs LI.current SPAN 92 | { 93 | background-position: 0% -150px; 94 | padding-bottom : 6px; 95 | } 96 | 97 | DIV.nav 98 | { 99 | background : none; 100 | border : none; 101 | border-bottom : 1px solid #84B0C7; 102 | } 103 | -------------------------------------------------------------------------------- /doc/platforms.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | [ GTL ] Supported Platforms 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 22 |

{ Supported Platforms } 23 | At the moment the following configurations are tested: 24 |

25 |
    26 |
  • Windows XP using Visual Studio .NET
  • 27 |
  • Linux using gcc 3.x, 4.x
  • 28 |
  • Solaris using gcc 3.x, 4.x
  • 29 |
  • Mac OS X 10.2.x, 10.3.x, and 10.4.x
  • 30 |
31 | 32 |

GTL should basically compile on any platform with an recent gcc, 33 | i.e., at least 3.0, although we recommend at least version 3.1. If 34 | you suceed in compiling GTL on any platform not listed above, 35 | please send us a mail. 37 |

38 | 46 | 49 | 50 | 51 | 52 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /doc/refer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | People and Projects using GTL 5 | 6 | 12 | 13 | 14 | 15 | 24 |

{ People and Projects using GTL }

25 |
26 | I've found GTL to be really good to use, and was a perfect 27 | drop-in replacement for LEDA. 28 |
29 |
30 | Dr. Kevin Bradley 31 |
32 | SEW - The System 33 | Engineer's Workbench 34 |
35 |
36 | Firstly, great work on GTL-- it's a nicely designed library that 37 | does what it sets out to do very well. Thanks! 38 |
39 |
40 | Greg J. Badros 41 |
42 | Cassowary A Constraint Solving Toolkit 43 |
44 |
45 | I found the GTL to be a very well implemented solution for what I 46 | was trying to do (...) Thank you for a great toolkit: GTL has been 47 | very helpful to me 48 |
49 |
50 | Kris Warkentin 51 |
52 | GTool Graph-drawing tool 53 |
54 |
55 | I was very pleased to find GTL ;^). Doing a few test examples, I 56 | found it even better due to the thorough online documentation. 57 |
58 |
59 | Kjell Petersen 60 |
61 | Bioinformatics: Modeling protein folding 62 |
63 |
64 | GTL thus far has been quite helpful in modeling evolutionary trees 65 | and in manipulating them with graph algorithms. 66 |
67 |
68 | Johnny C. Lam 69 |
70 | Finemap Genetics 71 |
72 |
73 | GTL is a very useful library that can be easily adapted to our 74 | needs. 75 |
76 |
77 | Andreas Unterkircher 78 |
79 | Finite Element Programming 80 |
81 |
82 | GTL is a great library that I've found really useful in my research. 83 |
84 |
85 | Roderic D. M. Page 86 |
87 | Supertree 88 |
89 | 97 | 100 | 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /doc/register.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | [ GTL ] Register for Download 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 22 |
23 |

{ License }The 24 | Graph Template Library (GTL) is copyrighted by the University of 25 | Passau. The following terms apply to all files in the GTL 26 | distribution:

27 | 28 |

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

35 | 36 |

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

41 |
42 | 43 |

{ Download } With the release of version 1.0.0 the download 44 | policy of GTL has been changed. GTL can be downloaded free of charge for non-commercial use. Please follow the 45 | steps below to get access to the download archive: 46 |

47 |

48 |

    49 |
  1. Send an email to 50 | gtl-download@infosun.fmi.uni-passau.de containing 51 | the following information: 52 |
      53 |
    • Your Name
    • 54 |
    • Your Affiliation
    • 55 |
    • And your email address. Please use your academic address, e.g. .edu, if you have. Otherwise your are 56 | classified as a "commercial" user.
    • 57 |
    58 |
  2. 59 |
  3. As soon as possible you will receive an answer from the GTL Team containing the access code to the 60 | download page.
  4. 61 |
62 |

63 |

64 | If you intend to use GTL commercially please send an email to brandenb@fmi.uni-passau.de. 66 |

67 | 75 | 78 | 79 | 80 | 81 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /doc/style.css: -------------------------------------------------------------------------------- 1 | body 2 | { 3 | margin-left:1cm; 4 | margin-right:1cm; 5 | margin-top:140px; 6 | background-image:url(icons/GTL.jpeg); 7 | background-position:top center; 8 | background-repeat:no-repeat; 9 | font-family:"Lucida Grande", "Verdana", sans-serif; 10 | font-size:10pt; 11 | } 12 | 13 | .wide 14 | { 15 | margin-top:1em; 16 | } 17 | 18 | .links 19 | { 20 | margin-left:-0.5cm; 21 | margin-right:-0.5cm; 22 | text-align:center; 23 | font-size:10pt; 24 | background-color:#CCC; 25 | border-top-width:1px; 26 | border-top-style:solid; 27 | border-bottom-width:1px; 28 | border-bottom-style:solid; 29 | border-color:black; 30 | padding:5px; 31 | } 32 | 33 | .copyright 34 | { 35 | margin-right:-0.5cm; 36 | text-align:right; 37 | font-size:8pt; 38 | } 39 | 40 | .heading 41 | { 42 | color: #C60; 43 | font-weight: bold; 44 | font-style: normal; 45 | padding-right:5pt; 46 | } 47 | 48 | .license 49 | { 50 | font-style:italic; 51 | } 52 | 53 | a:link 54 | { 55 | color: #900; 56 | font-style: normal; 57 | font-weight: normal; 58 | text-decoration: none; 59 | } 60 | 61 | a:visited 62 | { 63 | color: #600; 64 | font-style: normal; 65 | font-weight: normal; 66 | text-decoration: none; 67 | } 68 | 69 | a:active 70 | { 71 | color: #C60; 72 | font-style: normal; 73 | font-weight: normal; 74 | text-decoration: none; 75 | } 76 | 77 | a:hover 78 | { 79 | color: #900; 80 | font-style: normal; 81 | font-weight: normal; 82 | text-decoration: underline; 83 | } 84 | -------------------------------------------------------------------------------- /doc/userguide/Makefile.am: -------------------------------------------------------------------------------- 1 | #=========================================================================== 2 | # 3 | # doc/latex/Makefile.am 4 | # 5 | #=========================================================================== 6 | # $Id: Makefile.am,v 1.1 2002/11/08 11:56:34 raitner Exp $ 7 | 8 | #--------------------------------------------------------------------------- 9 | # Files 10 | #--------------------------------------------------------------------------- 11 | 12 | 13 | CLEANFILES = $(PACKAGE) *.aux $(PACKAGE).dvi \ 14 | *.idx *.log *.toc *.ind *.ilg 15 | 16 | DISTCLEANFILES = $(PACKAGE).ps 17 | 18 | #--------------------------------------------------------------------------- 19 | # Targets 20 | #--------------------------------------------------------------------------- 21 | 22 | .PHONY: doc 23 | doc: $(PACKAGE).ps 24 | 25 | #--------------------------------------------------------------------------- 26 | # Rules 27 | #--------------------------------------------------------------------------- 28 | 29 | %.dvi: %.tex %.cls 30 | TEXINPUTS=$(srcdir):: latex $< 31 | makeindex $(@:.dvi=.idx) 32 | TEXINPUTS=$(srcdir):: latex $< 33 | 34 | %.ps: %.dvi 35 | dvips -o $@ $< 36 | 37 | dist-hook: $(PACKAGE).ps 38 | cp $(PACKAGE).ps $(distdir) 39 | 40 | #--------------------------------------------------------------------------- 41 | # end of file 42 | #--------------------------------------------------------------------------- 43 | -------------------------------------------------------------------------------- /include/GTL/Makefile.am: -------------------------------------------------------------------------------- 1 | #=========================================================================== 2 | # 3 | # include/GTL/Makefile.am 4 | # 5 | #=========================================================================== 6 | # $Id: Makefile.am,v 1.28 2003/01/31 08:58:08 chris Exp $ 7 | 8 | BUILT_SOURCES = version.h 9 | 10 | pkginclude_HEADERS = \ 11 | GTL.h \ 12 | algorithm.h \ 13 | bfs.h \ 14 | biconnectivity.h \ 15 | debug.h \ 16 | dfs.h \ 17 | edge.h \ 18 | edge_data.h \ 19 | edge_map.h \ 20 | embedding.h \ 21 | gml_parser.h \ 22 | gml_scanner.h \ 23 | graph.h \ 24 | ne_map.h \ 25 | node.h \ 26 | node_data.h \ 27 | node_map.h \ 28 | planarity.h \ 29 | pq_node.h \ 30 | pq_tree.h \ 31 | st_number.h \ 32 | symlist.h \ 33 | topsort.h \ 34 | maxflow_ff.h \ 35 | maxflow_pp.h \ 36 | maxflow_sap.h \ 37 | components.h \ 38 | fm_partition.h \ 39 | ratio_cut_partition.h \ 40 | min_tree.h \ 41 | dijkstra.h \ 42 | bellman_ford.h \ 43 | bin_heap.h \ 44 | bid_dijkstra.h 45 | 46 | nodist_pkginclude_HEADERS = \ 47 | version.h 48 | 49 | 50 | dist-hook: version.h 51 | cp version.h $(distdir) 52 | 53 | #--------------------------------------------------------------------------- 54 | # end of file 55 | #--------------------------------------------------------------------------- 56 | 57 | -------------------------------------------------------------------------------- /include/GTL/algorithm.h: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // algorithm.h 5 | // 6 | //========================================================================== 7 | // $Id: algorithm.h,v 1.14 2003/03/24 15:58:54 raitner Exp $ 8 | 9 | #ifndef GTL_ALGORITHM_H 10 | #define GTL_ALGORITHM_H 11 | 12 | #include 13 | #include 14 | 15 | __GTL_BEGIN_NAMESPACE 16 | 17 | /** 18 | * $Date: 2003/03/24 15:58:54 $ 19 | * $Revision: 1.14 $ 20 | * 21 | * @brief Abstract baseclass for all algoritm-classes. 22 | */ 23 | class GTL_EXTERN algorithm { 24 | public: 25 | /** 26 | * @var algorithm::GTL_OK 27 | * Used as (positive) return value of algorithm::check and 28 | * algorithm::run. 29 | */ 30 | 31 | /** 32 | * @var algorithm::GTL_ERROR 33 | * Used as (negative) return value of algorithm::check and 34 | * algorithm::run. 35 | */ 36 | 37 | /** 38 | * @brief Return values for algorithm::check and algorithm::run 39 | */ 40 | enum { 41 | GTL_OK = 1, 42 | GTL_ERROR = 0 43 | }; 44 | 45 | /** 46 | * @brief Creates an algorithm object. 47 | */ 48 | algorithm () { }; 49 | 50 | /** 51 | * @brief Destroys the algorithm object. 52 | */ 53 | virtual ~algorithm () { }; 54 | 55 | /** 56 | * @brief Applies %algorithm to %graph g. 57 | * 58 | * @param g %graph 59 | * @retval algorithm::GTL_OK on success 60 | * @retval algorithm::GTL_ERROR otherwise 61 | */ 62 | virtual int run (graph& g) = 0; 63 | 64 | /** 65 | * @brief Checks whether all preconditions are satisfied. 66 | * 67 | * @em Please @em note: It is 68 | * definitly required (and #run relies on it), 69 | * that this method was called in advance. 70 | * 71 | * @param g %graph 72 | * @retval algorithm::GTL_OK if %algorithm can be applied 73 | * @retval algorithm::GTL_ERROR otherwise. 74 | */ 75 | virtual int check (graph& g) = 0; 76 | 77 | /** 78 | * @brief Resets %algorithm 79 | * 80 | * Prepares the %algorithm to be applied to 81 | * another %graph. @em Please @em note: The options an 82 | * %algorithm may support do @em not get reset by 83 | * this. It is just to reset internally used datastructures. 84 | */ 85 | virtual void reset () = 0; 86 | }; 87 | 88 | __GTL_END_NAMESPACE 89 | 90 | #endif // GTL_ALGORITHM_H 91 | 92 | //-------------------------------------------------------------------------- 93 | // end of file 94 | //-------------------------------------------------------------------------- 95 | -------------------------------------------------------------------------------- /include/GTL/components.h: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // components.h 5 | // 6 | //========================================================================== 7 | // $Id: components.h,v 1.5 2003/04/03 11:44:42 raitner Exp $ 8 | 9 | #ifndef GTL_COMPONENTS_H 10 | #define GTL_COMPONENTS_H 11 | 12 | #include 13 | #include 14 | 15 | #include 16 | 17 | __GTL_BEGIN_NAMESPACE 18 | /** 19 | * @brief Connected components algorithm 20 | */ 21 | class GTL_EXTERN components : public dfs 22 | { 23 | public: 24 | /** 25 | * @brief Creates connected components algorithm object. 26 | * 27 | * @sa dfs::dfs 28 | */ 29 | components (); 30 | 31 | /** 32 | * @brief Destroys connected components algorithm object. 33 | * 34 | * @sa dfs::~dfs 35 | */ 36 | virtual ~components () {} 37 | 38 | /** 39 | * @brief Checks whether the connected components algorithm can be applied 40 | * 41 | * Necessary preconditions: 42 | * - G is undirected. 43 | * - scanning of whole graph is enabled. 44 | * - DFS may be applied 45 | * 46 | * @param G graph. 47 | * @return algorithm::GTL_OK if connected components can be computed for G. 48 | * @sa dfs::scan_whole_graph 49 | */ 50 | virtual int check (graph& G); 51 | 52 | virtual void reset (); 53 | 54 | /** 55 | * @internal 56 | */ 57 | typedef list, list > >::iterator component_iterator; 58 | 59 | /** 60 | * @brief Start iteration over all components (if enabled during 61 | * last call to run). 62 | 63 | * Components are represented as a pair consisting of 64 | * a list of nodes and a list of edges, 65 | * i.e. if @c it is of type @c component_iterator 66 | * then @c *it is of type 67 | * @c pair<list<node>,list<edge> >. 68 | * 69 | * @return iterator to first component 70 | */ 71 | component_iterator components_begin () 72 | { return comp.begin(); } 73 | 74 | 75 | /** 76 | * @brief End of iteration over all components. 77 | * 78 | * @return end of iteration over biconnected components 79 | * @sa biconnectivity::store_components 80 | */ 81 | component_iterator components_end () 82 | { return comp.end(); } 83 | 84 | /** 85 | * @brief Number of components detected during the last run. 86 | * 87 | * @return number of components. 88 | */ 89 | int number_of_components () const 90 | {return num_of_components; } 91 | 92 | //----------------------------------------------------------------------- 93 | // Handler used to extend dfs to biconnectivity 94 | //----------------------------------------------------------------------- 95 | /** 96 | * @internal 97 | */ 98 | virtual void before_recursive_call_handler (graph&, edge&, node&); 99 | 100 | /** 101 | * @internal 102 | */ 103 | virtual void old_adj_node_handler (graph&, edge&, node&); 104 | 105 | /** 106 | * @internal 107 | */ 108 | virtual void new_start_handler (graph&, node&); 109 | 110 | 111 | protected: 112 | 113 | /** 114 | * @internal 115 | */ 116 | int num_of_components; 117 | /** 118 | * @internal 119 | */ 120 | list, list > > comp; 121 | /** 122 | * @internal 123 | */ 124 | component_iterator li; 125 | }; 126 | 127 | __GTL_END_NAMESPACE 128 | 129 | #endif // GTL_BICONNECTIVITY_H 130 | 131 | //-------------------------------------------------------------------------- 132 | // end of file 133 | //-------------------------------------------------------------------------- 134 | -------------------------------------------------------------------------------- /include/GTL/debug.h: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // debug.h - Functions, which are useful for debugging 5 | // 6 | //========================================================================== 7 | // $Id: debug.h,v 1.8 2001/10/10 08:30:00 chris Exp $ 8 | 9 | #ifndef GTL_DEBUG_H 10 | #define GTL_DEBUG_H 11 | 12 | #include 13 | 14 | #include 15 | 16 | __GTL_BEGIN_NAMESPACE 17 | 18 | // 19 | // If _DEBUG is defined the funtions defined here will produce output. 20 | // You can either define _DEBUG here (or undef it) or you can set it as 21 | // option of your compiler. 22 | // 23 | //#define _DEBUG 1 24 | //#undef _DEBUG 25 | // 26 | 27 | /** 28 | * @internal 29 | */ 30 | class GTL_EXTERN GTL_debug { 31 | public: 32 | static void debug_message (const char*, ...); 33 | static void init_debug(); 34 | static void close_debug(); 35 | static ostream& os () 36 | { return *GTLerr; } 37 | 38 | private: 39 | static ostream* GTLerr; 40 | }; 41 | 42 | __GTL_END_NAMESPACE 43 | 44 | #endif // GTL_DEBUG_H 45 | 46 | //-------------------------------------------------------------------------- 47 | // end of file 48 | //-------------------------------------------------------------------------- 49 | -------------------------------------------------------------------------------- /include/GTL/edge.h: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // edge.h 5 | // 6 | //========================================================================== 7 | // $Id: edge.h,v 1.15 2001/04/17 14:35:25 raitner Exp $ 8 | 9 | #ifndef GTL_EDGE_H 10 | #define GTL_EDGE_H 11 | 12 | #include 13 | 14 | #include 15 | #include 16 | 17 | __GTL_BEGIN_NAMESPACE 18 | 19 | //-------------------------------------------------------------------------- 20 | // For MSVC 5.0 edge.h has to be included before node.h and 21 | // {node,edge}_data.h. So we only declare needed classnames here 22 | //-------------------------------------------------------------------------- 23 | 24 | class node; 25 | class edge_data; 26 | 27 | //-------------------------------------------------------------------------- 28 | // edge 29 | //-------------------------------------------------------------------------- 30 | 31 | /** 32 | * @short An edge in a graph 33 | */ 34 | class GTL_EXTERN edge 35 | { 36 | public: 37 | /** 38 | * Default constructor. Creates an invalid edge. 39 | * The only way to obtain a valid edge is through @ref 40 | * graph#new_edge. Example: 41 | *
 42 |      *   graph g;
 43 |      *   node n1, n2;
 44 |      *   edge e;
 45 |      *
 46 |      *   n1 = g.new_node();
 47 |      *   n2 = g.new_node();
 48 |      *   e = g.new_edge(n1, n2);
 49 |      * 
50 | * 51 | * @see graph#new_edge 52 | */ 53 | edge(); 54 | 55 | /** 56 | * Returns the source node of the edge. 57 | * 58 | * @return source 59 | */ 60 | node source() const; 61 | 62 | /** 63 | * Returns the target node of the edge. 64 | * 65 | * @return target 66 | */ 67 | node target() const; 68 | 69 | /** 70 | * Changes the direction of this edge. 71 | */ 72 | void reverse (); 73 | 74 | /** 75 | * Makes n the source of this edge. Takes O(1) time. 76 | * 77 | * @param n new source 78 | */ 79 | void change_source (node n); 80 | 81 | /** 82 | * Makes n the target of this edge. Takes O(1) time. 83 | * 84 | * @param n new target 85 | */ 86 | void change_target (node n); 87 | 88 | /** 89 | * Returns the node opposite to n referring to 90 | * this edge. 91 | * 92 | * @param n a node incident to this edge 93 | */ 94 | const node& opposite(node n) const; 95 | 96 | /** 97 | * @internal 98 | */ 99 | list sources() const; 100 | 101 | /** 102 | * @internal 103 | */ 104 | list targets() const; 105 | 106 | /** 107 | * @internal 108 | */ 109 | int id() const; 110 | 111 | 112 | /** 113 | * Returns true iff node is hidden. 114 | * 115 | * @return true iff node is hidden. 116 | * @see graph#hide_edge 117 | * @see graph#restore_edge 118 | */ 119 | bool is_hidden () const; 120 | 121 | 122 | //================================================== Implementation 123 | 124 | private: 125 | edge_data *data; 126 | 127 | void remove_from(int where) const; // 0 = sources, 1 == targets 128 | 129 | friend class graph; 130 | friend class node; 131 | 132 | GTL_EXTERN friend bool operator==(edge, edge); 133 | GTL_EXTERN friend bool operator!=(edge, edge); 134 | GTL_EXTERN friend bool operator<(edge, edge); 135 | GTL_EXTERN friend ostream& operator<< (ostream& os, const edge& e); 136 | }; 137 | 138 | __GTL_END_NAMESPACE 139 | 140 | #endif // GTL_EDGE_H 141 | 142 | //-------------------------------------------------------------------------- 143 | // end of file 144 | //-------------------------------------------------------------------------- 145 | -------------------------------------------------------------------------------- /include/GTL/edge_data.h: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // edge_data.h - Internal header: DO NO USE IT DIRECTLY !!! 5 | // 6 | //========================================================================== 7 | // $Id: edge_data.h,v 1.9 2000/02/03 12:49:50 raitner Exp $ 8 | 9 | #ifndef GTL_EDGE_DATA_H 10 | #define GTL_EDGE_DATA_H 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | #include 17 | 18 | __GTL_BEGIN_NAMESPACE 19 | 20 | /** 21 | * @internal 22 | */ 23 | class GTL_EXTERN edge_data 24 | { 25 | public: 26 | int id; // internal numbering 27 | list nodes[2]; // nodes[0] = sources, 28 | // nodes[1] = targets 29 | list::iterator> adj_pos[2];// positions in the adjacency lists 30 | // of sources and targets 31 | list::iterator pos; // position in the list of all edges 32 | bool hidden; 33 | graph* owner; 34 | }; 35 | 36 | __GTL_END_NAMESPACE 37 | 38 | #endif // GTL_EDGE_DATA_H 39 | 40 | //-------------------------------------------------------------------------- 41 | // end of file 42 | //-------------------------------------------------------------------------- 43 | -------------------------------------------------------------------------------- /include/GTL/edge_map.h: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // edge_map.h 5 | // 6 | //========================================================================== 7 | // $Id: edge_map.h,v 1.8 2005/06/14 12:22:12 raitner Exp $ 8 | 9 | #ifndef GTL_EDGE_MAP_H 10 | #define GTL_EDGE_MAP_H 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | __GTL_BEGIN_NAMESPACE 17 | 18 | class graph; 19 | 20 | /** 21 | * @short A specialized map with edges as keys 22 | * 23 | * A edge_map is a specialized and optimized map 24 | * implementation with edges as keys. Using a edge_map is 25 | * the standard way to attach user defined information to 26 | * the edges of a graph. 27 | * 28 | * An example of usage: 29 | *
30 |  *   graph g;
31 |  *
32 |  *   node v1 = g.new_node();
33 |  *   node v2 = g.new_node();
34 |  *   edge e = g.new_edge(v1, v2);
35 |  *
36 |  *   edge_map<string> label(g, "Default Label");
37 |  *
38 |  *   label[e] = "An edge";
39 |  *
40 |  *   assert(label[e] == "An edge");
41 |  * 
42 | * 43 | * The edges used as keys for a edge_map MUST be edges 44 | * of the same graph. If you want to use edges from different graphs, use 45 | * a map<edge,T> instead. A graph and a copy of it are 46 | * considered to be different. 47 | * 48 | * Most of the functionality of edge_map is inherited from 49 | * @ref ne_map. 50 | * 51 | * @see node_map 52 | */ 53 | template > 54 | class edge_map : public ne_map 55 | { 56 | public: 57 | 58 | /** 59 | * Constructs an empty edge_map not associated with any 60 | * graph. You may (but need not) call 61 | * ne_map::init(const graph &, T) to associate it to 62 | * a graph. 63 | */ 64 | edge_map() : ne_map() {}; 65 | 66 | /** 67 | * Constructs a edge_map associated to the graph 68 | * g. 69 | * The value associated to each edge in g is set to 70 | * t. 71 | */ 72 | explicit edge_map(const graph &g, T t=T()) : 73 | ne_map(g,t) {}; 74 | }; 75 | 76 | __GTL_END_NAMESPACE 77 | 78 | #endif // GTL_EDGE_MAP_H 79 | 80 | //-------------------------------------------------------------------------- 81 | // end of file 82 | //-------------------------------------------------------------------------- 83 | -------------------------------------------------------------------------------- /include/GTL/gml_parser.h: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // gml_parser.h 5 | // 6 | //========================================================================== 7 | // $Id: gml_parser.h,v 1.7 2000/01/05 16:32:36 raitner Exp $ 8 | 9 | #ifndef GTL_GML_PARSER_H 10 | #define GTL_GML_PARSER_H 11 | 12 | #include 13 | #include 14 | 15 | __GTL_BEGIN_NAMESPACE 16 | 17 | /** 18 | * @internal 19 | */ 20 | union GTL_EXTERN GML_pair_val { 21 | long integer; 22 | double floating; 23 | char* str; 24 | struct GML_pair* list; 25 | }; 26 | 27 | /** 28 | * @internal 29 | */ 30 | struct GTL_EXTERN GML_pair { 31 | char* key; 32 | GML_value kind; 33 | union GML_pair_val value; 34 | struct GML_pair* next; 35 | }; 36 | 37 | /** 38 | * @internal 39 | */ 40 | struct GTL_EXTERN GML_list_elem { 41 | char* key; 42 | struct GML_list_elem* next; 43 | }; 44 | 45 | /** 46 | * @internal 47 | */ 48 | struct GTL_EXTERN GML_stat { 49 | struct GML_error err; 50 | struct GML_list_elem* key_list; 51 | }; 52 | 53 | /* 54 | * returns list of KEY - VALUE pairs. Errors and a pointer to a list 55 | * of key-names are returned in GML_stat. Previous information contained 56 | * in GML_stat, i.e. the key_list, will be *lost*. 57 | */ 58 | 59 | GTL_EXTERN GML_pair* GML_parser (FILE*, GML_stat*, int); 60 | 61 | /* 62 | * free memory used in a list of GML_pair 63 | */ 64 | 65 | GTL_EXTERN void GML_free_list (GML_pair*, GML_list_elem*); 66 | 67 | 68 | /* 69 | * debugging 70 | */ 71 | 72 | GTL_EXTERN void GML_print_list (GML_pair*, int); 73 | 74 | __GTL_END_NAMESPACE 75 | 76 | #endif // GTL_GML_PARSER_H 77 | 78 | //-------------------------------------------------------------------------- 79 | // end of file 80 | //-------------------------------------------------------------------------- 81 | -------------------------------------------------------------------------------- /include/GTL/min_tree.h: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // min_tree.cpp 5 | // 6 | //========================================================================== 7 | // $Id: min_tree.h,v 1.3 2001/06/21 10:55:08 chris Exp $ 8 | 9 | #ifndef GTL_MIN_TREE_H 10 | #define GTL_MIN_TREE_H 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | __GTL_BEGIN_NAMESPACE 18 | 19 | /** 20 | * @brief Kruskal's %algorithm for finding minimal spanning tree 21 | * of a %graph. 22 | * 23 | * @author Marcus Raitner 24 | */ 25 | class min_tree: public algorithm { 26 | 27 | public: 28 | 29 | /** 30 | * @brief Constructor 31 | */ 32 | min_tree (); 33 | 34 | /** 35 | * @brief Destructor 36 | */ 37 | virtual ~min_tree () {}; 38 | 39 | /** 40 | * @brief Checks whether %algorithm can be applied. 41 | * 42 | * The %graph must 43 | * - be undirected 44 | * - be connected 45 | * - have more than 2 nodes 46 | * 47 | * Additionally the weights of the edges must have been set 48 | * in advance using min_tree::set_distances. 49 | * 50 | * @param g graph 51 | * @return algorithm::GTL_OK if %algorithm can be applied 52 | * algorithm::GTL_ERROR otherwise. 53 | */ 54 | int check (graph& g); 55 | 56 | int run (graph& g); 57 | 58 | virtual void reset (); 59 | 60 | /** 61 | * @brief Sets %edge weights. 62 | * 63 | * Setting of %edge weights must be done before calling 64 | * min_tree::check and min_tree::run. 65 | * 66 | * @param dist %edge weigths. 67 | */ 68 | void set_distances (const edge_map& dist); 69 | 70 | /** 71 | * @brief Edges of minimal spanning tree calculated in the 72 | * last call of min_tree::run. 73 | * 74 | * @return Set of edges of representing the minimal spanning 75 | * tree 76 | */ 77 | set get_min_tree(); 78 | 79 | /** 80 | * @brief Weight of minimal spanning tree. 81 | * 82 | * @return weight of minimal spanning tree. 83 | */ 84 | int get_min_tree_length(); 85 | 86 | private: 87 | typedef pair TSP_A_VALUE; 88 | 89 | class input_comp { 90 | public: 91 | bool operator()(TSP_A_VALUE x, TSP_A_VALUE y) 92 | { return x.first > y.first;} 93 | }; 94 | 95 | edge_map dist; 96 | int weight; 97 | set tree; 98 | bool is_set_distances; 99 | }; 100 | 101 | __GTL_END_NAMESPACE 102 | 103 | #endif // GTL_MIN_TREE_H 104 | 105 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /include/GTL/node_data.h: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // node_data.h - Internal header: DO NO USE IT DIRECTLY !!! 5 | // 6 | //========================================================================== 7 | // $Id: node_data.h,v 1.7 2000/01/05 16:32:38 raitner Exp $ 8 | 9 | #ifndef GTL_NODE_DATA_H 10 | #define GTL_NODE_DATA_H 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | #include 17 | 18 | __GTL_BEGIN_NAMESPACE 19 | 20 | class graph; 21 | 22 | /** 23 | * @internal 24 | */ 25 | class GTL_EXTERN node_data 26 | { 27 | public: 28 | int id; // internal numbering 29 | graph *owner; // graph containing this node 30 | list::iterator pos; // position in the list of all nodes 31 | list edges[2]; // edges incident to this node 32 | // edges[0] = in_edges, edges[1] = out_edges 33 | bool hidden; 34 | }; 35 | 36 | __GTL_END_NAMESPACE 37 | 38 | #endif // GTL_NODE_DATA_H 39 | 40 | //-------------------------------------------------------------------------- 41 | // end of file 42 | //-------------------------------------------------------------------------- 43 | -------------------------------------------------------------------------------- /include/GTL/node_map.h: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // node_map.h 5 | // 6 | //========================================================================== 7 | // $Id: node_map.h,v 1.8 2005/06/14 12:22:12 raitner Exp $ 8 | 9 | #ifndef GTL_NODE_MAP_H 10 | #define GTL_NODE_MAP_H 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | __GTL_BEGIN_NAMESPACE 17 | 18 | class graph; 19 | 20 | /** 21 | * @short A specialized map with nodes as keys 22 | * 23 | * A node_map is a specialized and optimized map 24 | * implementation with nodes as keys. Using a node_map is 25 | * the standard way to attach user defined information to 26 | * the nodes of a graph. 27 | * 28 | * An example of usage: 29 | *
30 |  *   graph g;
31 |  *
32 |  *   node v1 = g.new_node();
33 |  *   node v2 = g.new_node();
34 |  *
35 |  *   node_map<string> label(g, "Default Label");
36 |  *
37 |  *   label[v1] = "v1";
38 |  *   label[v2] = "v2";
39 |  *
40 |  *   assert(label[v1] != label[v2]);
41 |  * 
42 | * 43 | * The nodes used as keys for a node_map MUST be nodes 44 | * of the same graph. If you want to use nodes from different graphs, use 45 | * a map<node,T> instead. A graph and a copy of it are 46 | * considered to be different. 47 | * 48 | * Most of the functionality of node_map is inherited from 49 | * @ref ne_map. 50 | * 51 | * @see edge_map 52 | */ 53 | template > 54 | class node_map : public ne_map 55 | { 56 | public: 57 | 58 | /** 59 | * Constructs an empty node_map not associated with any 60 | * graph. You may (but need not) call 61 | * ne_map::init(const graph &, T) to associate it to 62 | * a graph. 63 | */ 64 | node_map() : ne_map() {}; 65 | 66 | /** 67 | * Constructs a node_map associated to the graph 68 | * g. 69 | * The value associated to each node in g is set to 70 | * t. 71 | */ 72 | explicit node_map(const graph &g, T t=T()) : ne_map(g,t) {}; 73 | }; 74 | 75 | __GTL_END_NAMESPACE 76 | 77 | #endif // GTL_NODE_MAP_H 78 | 79 | //-------------------------------------------------------------------------- 80 | // end of file 81 | //-------------------------------------------------------------------------- 82 | -------------------------------------------------------------------------------- /include/GTL/pq_node.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/include/GTL/pq_node.h -------------------------------------------------------------------------------- /include/GTL/topsort.h: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // topsort.h 5 | // 6 | //========================================================================== 7 | // $Id: topsort.h,v 1.8 2000/09/11 07:36:43 raitner Exp $ 8 | 9 | #ifndef GTL_TOPSORT 10 | #define GTL_TOPSORT 11 | 12 | #include 13 | #include 14 | 15 | __GTL_BEGIN_NAMESPACE 16 | 17 | /** 18 | * @short Topological sorting. 19 | * 20 | * Assigns to each node n a number top_num such 21 | * that for every edge (u,v) top_num[u] < 22 | * top_num[v], if possible, i.e. iff the directed graph is 23 | * acyclic. 24 | * 25 | *

26 | * Similar to the testing of biconnectivity, which extends DFS to calculate 27 | * low-numbers, the topsort-algorithm extends DFS to calculate the new 28 | * numbering (and thus to test whether such a numbering is possible). 29 | * 30 | *

31 | * In order to traverse all the nodes in the order of its top-numbers, a 32 | * new iterator, topsort_iterator is provided. 33 | */ 34 | 35 | class GTL_EXTERN topsort : public dfs 36 | { 37 | public: 38 | /** 39 | * default constructor; enables scanning of the whole_graph. 40 | * 41 | * @see dfs#dfs 42 | */ 43 | topsort () : dfs () {whole_graph = true; acyclic = true;} 44 | 45 | /** 46 | * Number in topological order. 47 | * 48 | * @param n node. 49 | * @return number in topological order. 50 | */ 51 | int top_num (const node& n) const 52 | { return top_numbers[n]; } 53 | 54 | /** 55 | * Tests if graph was acyclic. 56 | * 57 | * @return true iff graph was acyclic. 58 | */ 59 | bool is_acyclic () const 60 | { return acyclic; } 61 | 62 | /** 63 | * @internal 64 | */ 65 | typedef list::const_iterator topsort_iterator; 66 | 67 | /** 68 | * Iterate through nodes in topsort-order. 69 | * 70 | * @return start-iterator. 71 | */ 72 | topsort_iterator top_order_begin() const 73 | { return top_order.begin(); } 74 | 75 | /** 76 | * Iterate through nodes in topsort-order. 77 | * 78 | * @return end-iterator. 79 | */ 80 | topsort_iterator top_order_end() const 81 | { return top_order.end(); } 82 | 83 | /** 84 | * Preconditions: 85 | *

    86 | *
  • G is directed. 87 | *
  • DFS may be applied 88 | *
89 | * 90 | * @param G graph. 91 | * @return algorithm::GTL_OK if topsort may be applied to 92 | * G. 93 | * @see dfs#check 94 | */ 95 | virtual int check (graph& G); 96 | 97 | /** 98 | * Reset 99 | * @see dfs#reset 100 | */ 101 | virtual void reset (); 102 | 103 | /** 104 | * @internal 105 | */ 106 | virtual void init_handler (graph& G); 107 | 108 | /** 109 | * @internal 110 | */ 111 | virtual void leave_handler (graph&, node&, node&); 112 | 113 | /** 114 | * @internal 115 | */ 116 | virtual void old_adj_node_handler (graph&, edge&, node&); 117 | 118 | protected: 119 | /** 120 | * @internal 121 | */ 122 | int act_top_num; 123 | /** 124 | * @internal 125 | */ 126 | node_map top_numbers; 127 | /** 128 | * @internal 129 | */ 130 | list top_order; 131 | /** 132 | * @internal 133 | */ 134 | bool acyclic; 135 | }; 136 | 137 | __GTL_END_NAMESPACE 138 | 139 | #endif // GTL_TOPSORT 140 | 141 | //-------------------------------------------------------------------------- 142 | // end of file 143 | //-------------------------------------------------------------------------- 144 | -------------------------------------------------------------------------------- /include/GTL/version.h: -------------------------------------------------------------------------------- 1 | //========================================================================== 2 | // 3 | // version.h.in - GTL version 4 | // 5 | //========================================================================== 6 | // $Id: version.h.in,v 1.1 1999/02/18 18:46:59 forster Exp $ 7 | 8 | #ifndef GTL_VERSION_H 9 | #define GTL_VERSION_H 10 | 11 | #define GTL_MAJOR_VERSION "@MAJOR_VERSION@" 12 | #define GTL_MINOR_VERSION "@MINOR_VERSION@" 13 | #define GTL_MINI_VERSION "@MINI_VERSION@" 14 | 15 | #endif // GT_VERSION_H 16 | 17 | //-------------------------------------------------------------------------- 18 | // end of file 19 | //-------------------------------------------------------------------------- 20 | -------------------------------------------------------------------------------- /include/GTL/version.h.in: -------------------------------------------------------------------------------- 1 | //========================================================================== 2 | // 3 | // version.h.in - GTL version 4 | // 5 | //========================================================================== 6 | // $Id: version.h.in,v 1.1 1999/02/18 18:46:59 forster Exp $ 7 | 8 | #ifndef GTL_VERSION_H 9 | #define GTL_VERSION_H 10 | 11 | #define GTL_MAJOR_VERSION "@MAJOR_VERSION@" 12 | #define GTL_MINOR_VERSION "@MINOR_VERSION@" 13 | #define GTL_MINI_VERSION "@MINI_VERSION@" 14 | 15 | #endif // GT_VERSION_H 16 | 17 | //-------------------------------------------------------------------------- 18 | // end of file 19 | //-------------------------------------------------------------------------- 20 | -------------------------------------------------------------------------------- /include/Makefile.am: -------------------------------------------------------------------------------- 1 | #=========================================================================== 2 | # 3 | # include/Makefile.am 4 | # 5 | #=========================================================================== 6 | # $Id: Makefile.am,v 1.1 1998/05/26 07:02:54 forster Exp $ 7 | 8 | SUBDIRS = GTL 9 | 10 | #--------------------------------------------------------------------------- 11 | # end of file 12 | #--------------------------------------------------------------------------- 13 | 14 | -------------------------------------------------------------------------------- /src/GTL.dsw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/src/GTL.dsw -------------------------------------------------------------------------------- /src/GTL.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 8.00 2 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GTL_dynamic", "GTL_dynamic.vcproj", "{07089390-1804-4A56-B337-15BED26C6421}" 3 | ProjectSection(ProjectDependencies) = postProject 4 | EndProjectSection 5 | EndProject 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GTL_static", "GTL_static.vcproj", "{8A26B071-C818-4E24-B786-042233620B1F}" 7 | ProjectSection(ProjectDependencies) = postProject 8 | EndProjectSection 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfiguration) = preSolution 12 | Debug = Debug 13 | Release = Release 14 | EndGlobalSection 15 | GlobalSection(ProjectConfiguration) = postSolution 16 | {07089390-1804-4A56-B337-15BED26C6421}.Debug.ActiveCfg = Debug|Win32 17 | {07089390-1804-4A56-B337-15BED26C6421}.Debug.Build.0 = Debug|Win32 18 | {07089390-1804-4A56-B337-15BED26C6421}.Release.ActiveCfg = Release|Win32 19 | {07089390-1804-4A56-B337-15BED26C6421}.Release.Build.0 = Release|Win32 20 | {8A26B071-C818-4E24-B786-042233620B1F}.Debug.ActiveCfg = Debug|Win32 21 | {8A26B071-C818-4E24-B786-042233620B1F}.Debug.Build.0 = Debug|Win32 22 | {8A26B071-C818-4E24-B786-042233620B1F}.Release.ActiveCfg = Release|Win32 23 | {8A26B071-C818-4E24-B786-042233620B1F}.Release.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(ExtensibilityGlobals) = postSolution 26 | EndGlobalSection 27 | GlobalSection(ExtensibilityAddIns) = postSolution 28 | EndGlobalSection 29 | EndGlobal 30 | -------------------------------------------------------------------------------- /src/GTL_dynamic.dsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/src/GTL_dynamic.dsp -------------------------------------------------------------------------------- /src/GTL_static.dsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/src/GTL_static.dsp -------------------------------------------------------------------------------- /src/Makefile.am: -------------------------------------------------------------------------------- 1 | #=========================================================================== 2 | # 3 | # src/Makefile.am 4 | # 5 | #=========================================================================== 6 | # $Id: Makefile.am,v 1.37 2003/01/31 08:58:09 chris Exp $ 7 | 8 | lib_LTLIBRARIES = libGTL.la 9 | 10 | INCLUDES = \ 11 | -I$(top_srcdir)/include \ 12 | -I$(top_builddir)/include 13 | 14 | libGTL_la_LDFLAGS = \ 15 | -version-info $(GENERIC_LIBRARY_VERSION) 16 | 17 | libGTL_la_SOURCES = \ 18 | gml_scanner.cpp \ 19 | gml_parser.cpp \ 20 | edge.cpp \ 21 | graph.cpp \ 22 | node.cpp \ 23 | dfs.cpp \ 24 | biconnectivity.cpp \ 25 | bfs.cpp \ 26 | topsort.cpp \ 27 | st_number.cpp \ 28 | embedding.cpp \ 29 | pq_node.cpp \ 30 | pq_tree.cpp \ 31 | planarity.cpp \ 32 | maxflow_ff.cpp \ 33 | maxflow_pp.cpp \ 34 | maxflow_sap.cpp \ 35 | debug.cpp \ 36 | components.cpp \ 37 | fm_partition.cpp \ 38 | ratio_cut_partition.cpp \ 39 | min_tree.cpp \ 40 | dijkstra.cpp \ 41 | bellman_ford.cpp \ 42 | bid_dijkstra.cpp 43 | 44 | #--------------------------------------------------------------------------- 45 | # end of file 46 | #--------------------------------------------------------------------------- 47 | 48 | -------------------------------------------------------------------------------- /src/bellman_ford.cpp: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // bellman_ford.cpp 5 | // 6 | //========================================================================== 7 | // $Id: bellman_ford.cpp,v 1.4 2003/01/30 17:50:56 raitner Exp $ 8 | 9 | #include 10 | 11 | #ifdef __GTL_MSVCC 12 | # ifdef _DEBUG 13 | # ifndef SEARCH_MEMORY_LEAKS_ENABLED 14 | # error SEARCH NOT ENABLED 15 | # endif 16 | # define new DEBUG_NEW 17 | # undef THIS_FILE 18 | static char THIS_FILE[] = __FILE__; 19 | # endif // _DEBUG 20 | #endif // __GTL_MSVCC 21 | 22 | __GTL_BEGIN_NAMESPACE 23 | 24 | bellman_ford::bellman_ford() 25 | { 26 | vars_set = false; 27 | preds = 0; 28 | } 29 | 30 | bellman_ford::~bellman_ford() 31 | { 32 | if (preds) delete preds; 33 | } 34 | 35 | void bellman_ford::store_preds (bool set) 36 | { 37 | if (set && !preds) { 38 | preds = new node_map; 39 | } else if (!set && preds) { 40 | delete preds; 41 | preds = 0; 42 | } 43 | } 44 | 45 | 46 | int bellman_ford::check(graph& G) 47 | { 48 | if (!vars_set) 49 | { 50 | return algorithm::GTL_ERROR; 51 | } 52 | 53 | if (G.nodes_begin() == G.nodes_end()) 54 | { 55 | return algorithm::GTL_ERROR; 56 | } 57 | 58 | return algorithm::GTL_OK; 59 | } 60 | 61 | int bellman_ford::run(graph& G) 62 | { 63 | if (s == node()) 64 | { 65 | s = *(G.nodes_begin()); 66 | } 67 | 68 | //---------------------------------------------------------------------- 69 | // initialize 70 | //---------------------------------------------------------------------- 71 | 72 | inf.init (G, true); 73 | 74 | if (preds) { 75 | preds->init (G, edge()); 76 | } 77 | 78 | inf[s] = false; 79 | d[s] = 0; 80 | cycle = false; 81 | 82 | //---------------------------------------------------------------------- 83 | // relax 84 | //---------------------------------------------------------------------- 85 | 86 | graph::edge_iterator it, end; 87 | 88 | for (int i = 1; i < G.number_of_nodes(); ++i) 89 | { 90 | for (it = G.edges_begin(), end = G.edges_end(); it != end; ++it) 91 | { 92 | relax (*it, true); 93 | 94 | if (G.is_undirected()) 95 | { 96 | relax(*it, false); 97 | } 98 | } 99 | } 100 | 101 | //---------------------------------------------------------------------- 102 | // cycle detection 103 | //---------------------------------------------------------------------- 104 | 105 | for (it = G.edges_begin(), end = G.edges_end(); it != end; ++it) 106 | { 107 | node u = (*it).source(); 108 | node v = (*it).target(); 109 | 110 | if(!inf[u] && !inf[v]) 111 | { 112 | if (d[v] > d[u] + w[*it]) 113 | { 114 | cycle = true; 115 | } 116 | } 117 | } 118 | 119 | return algorithm::GTL_OK; 120 | } 121 | 122 | void bellman_ford::reset() 123 | { 124 | } 125 | 126 | void bellman_ford::relax(const edge& e, bool dir ) 127 | { 128 | node u = e.source(); 129 | node v = e.target(); 130 | 131 | if (!dir) { 132 | node tmp = u; 133 | u = v; 134 | v = tmp; 135 | } 136 | 137 | if (!inf[u] && (inf[v] || (d[v] > d[u] + w[e]))) 138 | { 139 | d[v] = d[u] + w[e]; 140 | inf[v] = false; 141 | 142 | if (preds) 143 | { 144 | (*preds)[v] = e; 145 | } 146 | } 147 | } 148 | 149 | 150 | 151 | __GTL_END_NAMESPACE 152 | -------------------------------------------------------------------------------- /src/components.cpp: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // components.cpp 5 | // 6 | //========================================================================== 7 | // $Id: components.cpp,v 1.5 2001/11/07 13:58:09 pick Exp $ 8 | 9 | #include 10 | 11 | #ifdef __GTL_MSVCC 12 | # ifdef _DEBUG 13 | # ifndef SEARCH_MEMORY_LEAKS_ENABLED 14 | # error SEARCH NOT ENABLED 15 | # endif 16 | # define new DEBUG_NEW 17 | # undef THIS_FILE 18 | static char THIS_FILE[] = __FILE__; 19 | # endif // _DEBUG 20 | #endif // __GTL_MSVCC 21 | 22 | __GTL_BEGIN_NAMESPACE 23 | 24 | components::components () : dfs () 25 | { 26 | scan_whole_graph (true); 27 | num_of_components = 0; 28 | } 29 | 30 | void components::reset () 31 | { 32 | dfs::reset (); 33 | comp.erase (comp.begin(), comp.end()); 34 | num_of_components = 0; 35 | } 36 | 37 | int components::check (graph& G) 38 | { 39 | return G.is_undirected() && whole_graph && 40 | dfs::check (G) == GTL_OK ? GTL_OK : GTL_ERROR; 41 | } 42 | 43 | 44 | //-------------------------------------------------------------------------- 45 | // Handler 46 | //-------------------------------------------------------------------------- 47 | 48 | 49 | void components::new_start_handler (graph& G, node& st) 50 | { 51 | li = comp.insert (comp.end(), 52 | pair,list > (list (), list ())); 53 | (*li).first.push_back (st); 54 | ++num_of_components; 55 | } 56 | 57 | void components::before_recursive_call_handler (graph& G, edge& e, node& n) 58 | { 59 | (*li).first.push_back (n); 60 | // (*li).second.push_back (e); 61 | } 62 | 63 | 64 | void components::old_adj_node_handler (graph& G, edge& e, node& n) 65 | { 66 | node curr = n.opposite (e); 67 | 68 | // 69 | // Store backedges at lower endpoint 70 | // 71 | 72 | if (dfs_num (curr) > dfs_num (n)) { 73 | (*li).second.push_back (e); 74 | } 75 | } 76 | 77 | 78 | __GTL_END_NAMESPACE 79 | 80 | //-------------------------------------------------------------------------- 81 | // end of file 82 | //-------------------------------------------------------------------------- 83 | -------------------------------------------------------------------------------- /src/debug.cpp: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // debug.cpp 5 | // 6 | //========================================================================== 7 | // $Id: debug.cpp,v 1.10 2001/11/07 13:58:09 pick Exp $ 8 | 9 | #include 10 | 11 | #include 12 | #include 13 | #include 14 | 15 | #ifdef __GTL_MSVCC 16 | # ifdef _DEBUG 17 | # ifndef SEARCH_MEMORY_LEAKS_ENABLED 18 | # error SEARCH NOT ENABLED 19 | # endif 20 | # define new DEBUG_NEW 21 | # undef THIS_FILE 22 | static char THIS_FILE[] = __FILE__; 23 | # endif // _DEBUG 24 | #endif // __GTL_MSVCC 25 | 26 | __GTL_BEGIN_NAMESPACE 27 | 28 | ostream* GTL_debug::GTLerr = 0; 29 | 30 | void GTL_debug::debug_message (const char* message, ...) 31 | { 32 | #ifdef _DEBUG 33 | va_list arg_list; 34 | va_start(arg_list, message); 35 | 36 | char buf[1024]; 37 | vsprintf(buf, message, arg_list); 38 | if (GTLerr) { 39 | os() << buf; 40 | } 41 | #endif 42 | } 43 | 44 | void GTL_debug::init_debug () 45 | { 46 | if (!GTLerr) { 47 | #ifdef __GTL_MSVCC 48 | GTLerr = new ofstream ("ERRLOG.txt", ios::out | ios::app); 49 | #else 50 | GTLerr = &cerr; 51 | #endif 52 | } 53 | } 54 | 55 | void GTL_debug::close_debug () 56 | { 57 | if (GTLerr) { 58 | #ifdef __GTL_MSVCC 59 | ((ofstream*) GTLerr)->close(); 60 | delete GTLerr; 61 | GTLerr = 0; 62 | #endif 63 | } 64 | } 65 | 66 | __GTL_END_NAMESPACE 67 | 68 | //-------------------------------------------------------------------------- 69 | // end of file 70 | //-------------------------------------------------------------------------- 71 | -------------------------------------------------------------------------------- /src/embedding.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/src/embedding.cpp -------------------------------------------------------------------------------- /src/min_tree.cpp: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // min_tree.cpp 5 | // 6 | //========================================================================== 7 | // $Id: min_tree.cpp,v 1.4 2001/11/07 13:58:10 pick Exp $ 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #ifdef __GTL_MSVCC 15 | # ifdef _DEBUG 16 | # ifndef SEARCH_MEMORY_LEAKS_ENABLED 17 | # error SEARCH NOT ENABLED 18 | # endif 19 | # define new DEBUG_NEW 20 | # undef THIS_FILE 21 | static char THIS_FILE[] = __FILE__; 22 | # endif // _DEBUG 23 | #endif // __GTL_MSVCC 24 | 25 | __GTL_BEGIN_NAMESPACE 26 | 27 | min_tree::min_tree () { 28 | is_set_distances = false; 29 | weight = 0; 30 | } 31 | 32 | int min_tree::check (graph& g) { 33 | if (g.is_directed()) return GTL_ERROR; 34 | else if (g.number_of_nodes() < 2) return GTL_ERROR; 35 | else if (!g.is_connected()) return GTL_ERROR; 36 | else if (!is_set_distances) return GTL_ERROR; 37 | else return GTL_OK; 38 | } 39 | 40 | void min_tree::set_distances (const edge_map& dist) { 41 | this->dist = dist; 42 | is_set_distances = true; 43 | } 44 | 45 | set min_tree::get_min_tree() { 46 | return this->tree; 47 | } 48 | 49 | int min_tree::get_min_tree_length() { 50 | int sum; 51 | set::iterator tree_it; 52 | 53 | sum = 0; 54 | 55 | for (tree_it = tree.begin(); tree_it != tree.end(); tree_it++) 56 | sum += dist[*tree_it]; 57 | 58 | return sum; 59 | } 60 | 61 | int min_tree::run (graph& g) { 62 | priority_queue , input_comp> node_distances; 63 | node::adj_edges_iterator adj_it, adj_end; 64 | set tree_nodes; 65 | set::iterator tree_it; 66 | edge curr; 67 | node new_node; 68 | graph::edge_iterator edge_it, edges_end; 69 | unsigned int number_of_nodes; 70 | int min_dist; 71 | 72 | 73 | // making out the start edge 74 | 75 | edge_it = g.edges_begin(); 76 | edges_end = g.edges_end(); 77 | 78 | curr = *edge_it; 79 | min_dist = dist[*edge_it]; 80 | 81 | for (; edge_it != edges_end; edge_it++) { 82 | if (dist[*edge_it] < min_dist) { 83 | curr = *edge_it; 84 | min_dist = dist[*edge_it]; 85 | } 86 | } 87 | 88 | tree.insert(curr); 89 | 90 | tree_nodes.insert(curr.source()); 91 | tree_nodes.insert(curr.target()); 92 | 93 | 94 | for (tree_it = tree_nodes.begin(); tree_it != tree_nodes.end(); tree_it++) { 95 | adj_it = (*tree_it).adj_edges_begin(); 96 | adj_end = (*tree_it).adj_edges_end(); 97 | 98 | for (; adj_it != adj_end; adj_it++) { 99 | node_distances.push(TSP_A_VALUE(dist[*adj_it], adj_it)); 100 | } 101 | } 102 | 103 | // create the min_tree 104 | 105 | number_of_nodes = g.number_of_nodes(); 106 | 107 | while(tree.size() < number_of_nodes - 1) { 108 | curr = *((node_distances.top()).second); 109 | 110 | node_distances.pop(); 111 | 112 | if (tree_nodes.find(curr.source()) != tree_nodes.end() && 113 | tree_nodes.find(curr.target()) != tree_nodes.end()) { 114 | } else { 115 | tree.insert(curr); 116 | weight += dist[curr]; 117 | 118 | if (tree_nodes.find(curr.source()) != tree_nodes.end()) { 119 | new_node = curr.target(); 120 | } else { 121 | new_node = curr.source(); 122 | } 123 | 124 | tree_nodes.insert(new_node); 125 | 126 | adj_it = new_node.adj_edges_begin(); 127 | adj_end = new_node.adj_edges_end(); 128 | 129 | for (; adj_it != adj_end; adj_it++) { 130 | node_distances.push(TSP_A_VALUE(dist[*adj_it], adj_it)); 131 | } 132 | } 133 | } 134 | 135 | return GTL_OK; 136 | } 137 | 138 | void min_tree::reset() { 139 | tree.erase (tree.begin(), tree.end()); 140 | weight = 0; 141 | } 142 | 143 | __GTL_END_NAMESPACE 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | -------------------------------------------------------------------------------- /src/planarity.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/src/planarity.cpp -------------------------------------------------------------------------------- /src/pq_node.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/src/pq_node.cpp -------------------------------------------------------------------------------- /src/st_number.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdmpage/graph-template-library/fb195cbaab5572312f230950e314522afc38eca2/src/st_number.cpp -------------------------------------------------------------------------------- /src/topsort.cpp: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // topsort.cpp 5 | // 6 | //========================================================================== 7 | // $Id: topsort.cpp,v 1.7 2001/11/07 13:58:12 pick Exp $ 8 | 9 | #include 10 | 11 | #ifdef __GTL_MSVCC 12 | # ifdef _DEBUG 13 | # ifndef SEARCH_MEMORY_LEAKS_ENABLED 14 | # error SEARCH NOT ENABLED 15 | # endif 16 | # define new DEBUG_NEW 17 | # undef THIS_FILE 18 | static char THIS_FILE[] = __FILE__; 19 | # endif // _DEBUG 20 | #endif // __GTL_MSVCC 21 | 22 | __GTL_BEGIN_NAMESPACE 23 | 24 | //-------------------------------------------------------------------------- 25 | // algorithm - interface 26 | //-------------------------------------------------------------------------- 27 | 28 | 29 | void topsort::reset () 30 | { 31 | dfs::reset(); 32 | acyclic = true; 33 | top_order.erase (top_order.begin(), top_order.end());; 34 | } 35 | 36 | int topsort::check (graph& G) 37 | { 38 | return G.is_directed() ? GTL_OK : GTL_ERROR; 39 | } 40 | 41 | 42 | 43 | //-------------------------------------------------------------------------- 44 | // Handler 45 | //-------------------------------------------------------------------------- 46 | 47 | 48 | void topsort::init_handler (graph& G) 49 | { 50 | top_numbers.init (G, 0); 51 | act_top_num = G.number_of_nodes(); 52 | } 53 | 54 | 55 | void topsort::leave_handler (graph& G, node& n, node& f) 56 | { 57 | top_numbers[n] = act_top_num; 58 | act_top_num--; 59 | top_order.push_front (n); 60 | } 61 | 62 | 63 | void topsort::old_adj_node_handler (graph& G, edge& adj, node& opp) 64 | { 65 | if (top_numbers[opp] == 0) { 66 | acyclic = false; 67 | } 68 | } 69 | 70 | __GTL_END_NAMESPACE 71 | 72 | //-------------------------------------------------------------------------- 73 | // end of file 74 | //-------------------------------------------------------------------------- 75 | -------------------------------------------------------------------------------- /tests/Makefile.am: -------------------------------------------------------------------------------- 1 | INCLUDES = -I$(top_srcdir)/include 2 | check_PROGRAMS = bellman_ford_test graph_test 3 | bellman_ford_test_SOURCES = bellman_ford_test.cpp 4 | bellman_ford_test_LDADD = $(top_builddir)/src/libGTL.la 5 | graph_test_SOURCES = graph_test.cpp 6 | graph_test_LDADD = $(top_builddir)/src/libGTL.la 7 | 8 | runtests : bellman_ford_test graph_test 9 | ./bellman_ford_test 10 | ./graph_test 11 | -------------------------------------------------------------------------------- /tests/graph_test.cpp: -------------------------------------------------------------------------------- 1 | /* This software is distributed under the GNU Lesser General Public License */ 2 | //========================================================================== 3 | // 4 | // graph_test.cpp 5 | // 6 | //========================================================================== 7 | // $Id: graph_test.cpp,v 1.1 2003/01/14 16:50:46 raitner Exp $ 8 | 9 | #include 10 | 11 | #include 12 | #include 13 | 14 | #ifdef __GTL_MSVCC 15 | # ifdef _DEBUG 16 | # define new DEBUG_NEW 17 | # undef THIS_FILE 18 | static char THIS_FILE[] = __FILE__; 19 | # endif // _DEBUG 20 | #endif // __GTL_MSVCC 21 | 22 | int main (int argc, char* argv[]) 23 | { 24 | cout << "Loading graph and preserving ids" << endl; 25 | graph G; 26 | if (G.load("test.gml", true).err_num != GML_OK) { 27 | cout << "Loading failed" << endl; 28 | exit(1); 29 | } 30 | 31 | cout << "Loading OK" << endl; 32 | 33 | if (G.number_of_ids(node()) != 20) { 34 | cout << "Wrong number of ids: " << G.number_of_ids(node()) << endl; 35 | exit(1); 36 | } 37 | 38 | cout << "Number of ids OK" << endl; 39 | 40 | cout << "Loading graph and preserving ids" << endl; 41 | 42 | graph G1; 43 | if (G.load("test.gml", false).err_num != GML_OK) { 44 | cout << "Loading failed" << endl; 45 | exit(1); 46 | } 47 | 48 | cout << "Loading OK" << endl; 49 | 50 | if (G.number_of_ids(node()) != 2) { 51 | cout << "Wrong number of ids: " << G.number_of_ids(node()) << endl; 52 | exit(1); 53 | } 54 | 55 | cout << "Number of ids OK" << endl; 56 | } 57 | --------------------------------------------------------------------------------