Index: docs/html/tspsolver_8h_source.html
===================================================================
--- docs/html/tspsolver_8h_source.html	(revision a23f4c292f1f7bfa6be584a899bc5f16dc8c0acb)
+++ docs/html/tspsolver_8h_source.html	(revision bcd2a3b47a042d6b743b74d3844a0d51deb46948)
@@ -61,4 +61,5 @@
       <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
       <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
       <li><a href="annotated.html"><span>Classes</span></a></li>
       <li class="current"><a href="files.html"><span>Files</span></a></li>
@@ -88,83 +89,102 @@
 <a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define TSPSOLVER_H</span>
 <a name="l00030"></a>00030 <span class="preprocessor"></span>
-<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;<a class="code" href="globals_8h.html" title="Contains TSPSG global defines.">globals.h</a>&quot;</span>
-<a name="l00032"></a>00032 
-<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;<a class="code" href="tspmodel_8h.html" title="Defines CTSPModel class.">tspmodel.h</a>&quot;</span>
-<a name="l00034"></a>00034 
-<a name="l00036"></a><a class="code" href="tspsolver_8h.html#a3addcca59ef59d0b3892b3670f808965">00036</a> <span class="keyword">typedef</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">QList&lt;QList&lt;double&gt;</a> &gt; <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a>;
-<a name="l00037"></a>00037 
-<a name="l00041"></a><a class="code" href="struct_s_candidate.html">00041</a> <span class="keyword">struct </span><a class="code" href="struct_s_candidate.html" title="A structure that represents a candidate for branching.">SCandidate</a> {
-<a name="l00042"></a><a class="code" href="struct_s_candidate.html#aebab56506cadaa3c7d0e57037925cea5">00042</a>     <span class="keywordtype">int</span> <a class="code" href="struct_s_candidate.html#aebab56506cadaa3c7d0e57037925cea5" title="A zero-based row number of the candidate.">nRow</a>; 
-<a name="l00043"></a><a class="code" href="struct_s_candidate.html#a95a822e8bd7f4709ff24a7ba79f9f338">00043</a>     <span class="keywordtype">int</span> <a class="code" href="struct_s_candidate.html#a95a822e8bd7f4709ff24a7ba79f9f338" title="A zero-based column number of the candidate.">nCol</a>; 
-<a name="l00044"></a>00044 
-<a name="l00046"></a><a class="code" href="struct_s_candidate.html#ad7ac35a48148fcc51614079714c03e6f">00046</a>     <a class="code" href="struct_s_candidate.html#ad7ac35a48148fcc51614079714c03e6f" title="Assigns default values.">SCandidate</a>() {
-<a name="l00047"></a>00047         <a class="code" href="struct_s_candidate.html#a95a822e8bd7f4709ff24a7ba79f9f338" title="A zero-based column number of the candidate.">nCol</a> = <a class="code" href="struct_s_candidate.html#aebab56506cadaa3c7d0e57037925cea5" title="A zero-based row number of the candidate.">nRow</a> = -1;
-<a name="l00048"></a>00048     }
-<a name="l00050"></a><a class="code" href="struct_s_candidate.html#a9e4f4f1861131ed23b5576f9cd8d4c68">00050</a>     <span class="keywordtype">bool</span> <a class="code" href="struct_s_candidate.html#a9e4f4f1861131ed23b5576f9cd8d4c68" title="An operator == implementation.">operator ==</a>(<span class="keyword">const</span> <a class="code" href="struct_s_candidate.html" title="A structure that represents a candidate for branching.">SCandidate</a> &amp;cand)<span class="keyword"> const </span>{
-<a name="l00051"></a>00051         <span class="keywordflow">return</span> ((cand.<a class="code" href="struct_s_candidate.html#aebab56506cadaa3c7d0e57037925cea5" title="A zero-based row number of the candidate.">nRow</a> == <a class="code" href="struct_s_candidate.html#aebab56506cadaa3c7d0e57037925cea5" title="A zero-based row number of the candidate.">nRow</a>) &amp;&amp; (cand.<a class="code" href="struct_s_candidate.html#a95a822e8bd7f4709ff24a7ba79f9f338" title="A zero-based column number of the candidate.">nCol</a> == <a class="code" href="struct_s_candidate.html#a95a822e8bd7f4709ff24a7ba79f9f338" title="A zero-based column number of the candidate.">nCol</a>));
-<a name="l00052"></a>00052     }
-<a name="l00053"></a>00053 };
-<a name="l00054"></a>00054 
-<a name="l00060"></a><a class="code" href="struct_s_step.html">00060</a> <span class="keyword">struct </span><a class="code" href="struct_s_step.html" title="This structure represents one step of solving.">SStep</a> {
-<a name="l00061"></a><a class="code" href="struct_s_step.html#a0353eb66f83d46f88fb47cc2d1a923dd">00061</a>     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> <a class="code" href="struct_s_step.html#a0353eb66f83d46f88fb47cc2d1a923dd" title="This step&amp;#39;s matrix.">matrix</a>; 
-<a name="l00062"></a><a class="code" href="struct_s_step.html#a0355ec75846222996de07108a7c2e9c8">00062</a>     <span class="keywordtype">double</span> <a class="code" href="struct_s_step.html#a0355ec75846222996de07108a7c2e9c8" title="The price of travel to this step.">price</a>; 
-<a name="l00063"></a><a class="code" href="struct_s_step.html#aeb798262cbff5ddd819a7056f8d21f21">00063</a>     <a class="code" href="struct_s_candidate.html" title="A structure that represents a candidate for branching.">SCandidate</a> <a class="code" href="struct_s_step.html#aeb798262cbff5ddd819a7056f8d21f21" title="A candiadate for branching in the current matrix.">candidate</a>; 
-<a name="l00064"></a><a class="code" href="struct_s_step.html#a02196d3433e2deed89ab540b875cd527">00064</a>     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">QList&lt;SCandidate&gt;</a> <a class="code" href="struct_s_step.html#a02196d3433e2deed89ab540b875cd527" title="A list of alternative branching candidates.">alts</a>; 
-<a name="l00065"></a><a class="code" href="struct_s_step.html#a0fcce90c9c1c60f00b5a703b117b5e85">00065</a>     <a class="code" href="struct_s_step.html" title="This structure represents one step of solving.">SStep</a> *<a class="code" href="struct_s_step.html#a0fcce90c9c1c60f00b5a703b117b5e85" title="Pointer to the parent step.">pNode</a>; 
-<a name="l00066"></a><a class="code" href="struct_s_step.html#a8776e917cd02f86a57e103c025f5530c">00066</a>     <a class="code" href="struct_s_step.html" title="This structure represents one step of solving.">SStep</a> *<a class="code" href="struct_s_step.html#a8776e917cd02f86a57e103c025f5530c" title="Pointer to the left branch step.">plNode</a>; 
-<a name="l00067"></a><a class="code" href="struct_s_step.html#a51b304fcfc71508203d2becefcae5d31">00067</a>     <a class="code" href="struct_s_step.html" title="This structure represents one step of solving.">SStep</a> *<a class="code" href="struct_s_step.html#a51b304fcfc71508203d2becefcae5d31" title="Pointer to the right branch step.">prNode</a>; 
-<a name="l00068"></a>00068 
-<a name="l00070"></a><a class="code" href="struct_s_step.html#a450adac026150c0a49967a20ce46e51e">00070</a>     <a class="code" href="struct_s_step.html#a450adac026150c0a49967a20ce46e51e" title="Assigns default values.">SStep</a>() {
-<a name="l00071"></a>00071         <a class="code" href="struct_s_step.html#a0355ec75846222996de07108a7c2e9c8" title="The price of travel to this step.">price</a> = -1;
-<a name="l00072"></a>00072         <a class="code" href="struct_s_step.html#a0fcce90c9c1c60f00b5a703b117b5e85" title="Pointer to the parent step.">pNode</a> = <a class="code" href="struct_s_step.html#a8776e917cd02f86a57e103c025f5530c" title="Pointer to the left branch step.">plNode</a> = <a class="code" href="struct_s_step.html#a51b304fcfc71508203d2becefcae5d31" title="Pointer to the right branch step.">prNode</a> = NULL;
-<a name="l00073"></a>00073     }
-<a name="l00074"></a>00074 };
-<a name="l00075"></a>00075 
-<a name="l00080"></a><a class="code" href="class_c_t_s_p_solver.html">00080</a> <span class="keyword">class </span><a class="code" href="class_c_t_s_p_solver.html" title="This class solves Travelling Salesman Problem task.">CTSPSolver</a>: <span class="keyword">public</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qobject.html">QObject</a>
-<a name="l00081"></a>00081 {
-<a name="l00082"></a>00082     Q_OBJECT
+<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;QtCore&gt;</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;limits&gt;</span>
+<a name="l00033"></a>00033 
+<a name="l00041"></a>00041 <span class="preprocessor">#ifdef INFINITY</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">    #undef INFINITY</span>
+<a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00044"></a><a class="code" href="tspsolver_8h.html#a956e2723d559858d08644ac99146e910">00044</a> <span class="preprocessor"></span><span class="preprocessor">#define INFINITY std::numeric_limits&lt;double&gt;::infinity()</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span>
+<a name="l00051"></a>00051 <span class="keyword">namespace </span>TSPSolver {
+<a name="l00052"></a>00052 
+<a name="l00054"></a><a class="code" href="namespace_t_s_p_solver.html#a54acd6743f0aa52d3022436d38a78f8c">00054</a> <span class="keyword">typedef</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">QList&lt;QList&lt;double&gt;</a> &gt; <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a>;
+<a name="l00055"></a>00055 
+<a name="l00061"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html">00061</a> <span class="keyword">struct </span><a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> {
+<a name="l00063"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html">00063</a>     <span class="keyword">struct </span><a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html" title="A structure that represents a candidate for branching.">SCandidate</a> {
+<a name="l00064"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ae8336e07f26a5b51439c6c7ac3c15800">00064</a>         <span class="keywordtype">int</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ae8336e07f26a5b51439c6c7ac3c15800" title="A zero-based row number of the candidate.">nRow</a>; 
+<a name="l00065"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#af6a9d9a2df92c1a56a7156ef7b9f6a27">00065</a>         <span class="keywordtype">int</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#af6a9d9a2df92c1a56a7156ef7b9f6a27" title="A zero-based column number of the candidate.">nCol</a>; 
+<a name="l00066"></a>00066 
+<a name="l00068"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ad1f84242c537c8c824c5383cec63c233">00068</a>         <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ad1f84242c537c8c824c5383cec63c233" title="Assigns default values.">SCandidate</a>() {
+<a name="l00069"></a>00069             <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#af6a9d9a2df92c1a56a7156ef7b9f6a27" title="A zero-based column number of the candidate.">nCol</a> = <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ae8336e07f26a5b51439c6c7ac3c15800" title="A zero-based row number of the candidate.">nRow</a> = -1;
+<a name="l00070"></a>00070         }
+<a name="l00072"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#a4ada1cd8006cf3b50d4a8e912965f0bc">00072</a>         <span class="keywordtype">bool</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#a4ada1cd8006cf3b50d4a8e912965f0bc" title="An operator == implementation.">operator ==</a>(<span class="keyword">const</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html" title="A structure that represents a candidate for branching.">SCandidate</a> &amp;cand)<span class="keyword"> const </span>{
+<a name="l00073"></a>00073             <span class="keywordflow">return</span> ((cand.<a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ae8336e07f26a5b51439c6c7ac3c15800" title="A zero-based row number of the candidate.">nRow</a> == <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ae8336e07f26a5b51439c6c7ac3c15800" title="A zero-based row number of the candidate.">nRow</a>) &amp;&amp; (cand.<a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#af6a9d9a2df92c1a56a7156ef7b9f6a27" title="A zero-based column number of the candidate.">nCol</a> == <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#af6a9d9a2df92c1a56a7156ef7b9f6a27" title="A zero-based column number of the candidate.">nCol</a>));
+<a name="l00074"></a>00074         }
+<a name="l00075"></a>00075     };
+<a name="l00076"></a>00076 
+<a name="l00078"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86">00078</a>     <span class="keyword">enum</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86" title="An enum that describes possible selection of the next step.">NextStep</a> {
+<a name="l00079"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86a3b8ba538613f8e35ff43828c6522c354">00079</a>         <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86a3b8ba538613f8e35ff43828c6522c354" title="No next step (end of solution).">NoNextStep</a>, 
+<a name="l00080"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86a077009b17a9710f3cf1a72803aa05243">00080</a>         <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86a077009b17a9710f3cf1a72803aa05243" title="Left branch was selected for the next step.">LeftBranch</a>, 
+<a name="l00081"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86aa09cf2c0a12d3097b67884e9c45e1818">00081</a>         <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86aa09cf2c0a12d3097b67884e9c45e1818" title="Right branch was selected for the next step.">RightBranch</a> 
+<a name="l00082"></a>00082     };
 <a name="l00083"></a>00083 
-<a name="l00084"></a>00084 <span class="keyword">public</span>:
-<a name="l00085"></a>00085     <span class="keyword">static</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qstring.html">QString</a> <a class="code" href="class_c_t_s_p_solver.html#a677a878c4c8a06316a5d8d5a4fc8ab65" title="Returns CTSPSolver&amp;#39;s version ID.">getVersionId</a>();
+<a name="l00084"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#ae2ae1106147f4cd4a1e7a15c2bdf9cdc">00084</a>     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#ae2ae1106147f4cd4a1e7a15c2bdf9cdc" title="This step&amp;#39;s matrix.">matrix</a>; 
+<a name="l00085"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a881c1503127ad2426194700491ea4026">00085</a>     <span class="keywordtype">double</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a881c1503127ad2426194700491ea4026" title="The price of travel to this step.">price</a>; 
 <a name="l00086"></a>00086 
-<a name="l00087"></a>00087     <a class="code" href="class_c_t_s_p_solver.html#a4a519caa89db1683693759a92a65319c" title="Constructs CTSPSolver object.">CTSPSolver</a>(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qobject.html">QObject</a> *<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qobject.html#parent">parent</a> = NULL);
-<a name="l00088"></a>00088     <span class="keywordtype">void</span> <a class="code" href="class_c_t_s_p_solver.html#acf86422c1b8ff8e5b9bc88e09c57c48b" title="Cleans up the object and frees up memory used by the solution tree.">cleanup</a>(<span class="keywordtype">bool</span> processEvents = <span class="keyword">false</span>);
-<a name="l00089"></a>00089     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qstring.html">QString</a> <a class="code" href="class_c_t_s_p_solver.html#a57556c971a25e3556c4aa3cc1fd2d3d0" title="Returns the sorted optimal path, starting from City 1.">getSortedPath</a>() <span class="keyword">const</span>;
-<a name="l00090"></a>00090     <span class="keywordtype">bool</span> <a class="code" href="class_c_t_s_p_solver.html#a28d546e840cf53c639b45c0f26419f7a" title="Indicates whether or not the solution is definitely optimal.">isOptimal</a>() <span class="keyword">const</span>;
-<a name="l00091"></a>00091     <a class="code" href="struct_s_step.html" title="This structure represents one step of solving.">SStep</a> *<a class="code" href="class_c_t_s_p_solver.html#a0f0f0aa60d05c97f3b0e867a381de558" title="Solves the given task.">solve</a>(<span class="keywordtype">int</span> numCities, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;task);
-<a name="l00092"></a>00092     <span class="keywordtype">bool</span> <a class="code" href="class_c_t_s_p_solver.html#a80cff5d533711ab1929de1fdf09495b7" title="Indicates whether or not the solution process was canceled.">wasCanceled</a>() <span class="keyword">const</span>;
-<a name="l00093"></a>00093     ~<a class="code" href="class_c_t_s_p_solver.html" title="This class solves Travelling Salesman Problem task.">CTSPSolver</a>();
-<a name="l00094"></a>00094 
-<a name="l00095"></a>00095 <span class="keyword">public</span> slots:
-<a name="l00096"></a>00096     <span class="keywordtype">void</span> <a class="code" href="class_c_t_s_p_solver.html#a996ac169e8ed087170bd8610fa4aa715" title="Cancels the solution process.">cancel</a>();
-<a name="l00097"></a>00097 
-<a name="l00098"></a>00098 signals:
-<a name="l00103"></a>00103     <span class="keywordtype">void</span> <a class="code" href="class_c_t_s_p_solver.html#ae12895fa529a965b57204e355b9012d7" title="This signal is emitted once every time a part of the route is found.">routePartFound</a>(<span class="keywordtype">int</span> n);
-<a name="l00104"></a>00104 
-<a name="l00105"></a>00105 <span class="keyword">private</span>:
-<a name="l00106"></a>00106     <span class="keywordtype">bool</span> mayNotBeOptimal, canceled;
-<a name="l00107"></a>00107     <span class="keywordtype">int</span> nCities;
-<a name="l00108"></a>00108     <a class="code" href="struct_s_step.html" title="This structure represents one step of solving.">SStep</a> *root;
-<a name="l00109"></a>00109     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qhash.html">QHash&lt;int,int&gt;</a> route;
-<a name="l00110"></a>00110     <span class="keyword">mutable</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qmutex.html">QMutex</a> mutex;
-<a name="l00111"></a>00111 
-<a name="l00112"></a>00112     <span class="keywordtype">double</span> align(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix);
-<a name="l00113"></a>00113     <span class="keywordtype">void</span> deleteTree(<a class="code" href="struct_s_step.html" title="This structure represents one step of solving.">SStep</a> *&amp;root, <span class="keywordtype">bool</span> processEvents = <span class="keyword">false</span>);
-<a name="l00114"></a>00114     <span class="keywordtype">void</span> denormalize(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix) <span class="keyword">const</span>;
-<a name="l00115"></a>00115     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">QList&lt;SCandidate&gt;</a> findCandidate(<span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> &amp;nRow, <span class="keywordtype">int</span> &amp;nCol) <span class="keyword">const</span>;
-<a name="l00116"></a>00116     <span class="keywordtype">double</span> findMinInCol(<span class="keywordtype">int</span> nCol, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> exr = -1) <span class="keyword">const</span>;
-<a name="l00117"></a>00117     <span class="keywordtype">double</span> findMinInRow(<span class="keywordtype">int</span> nRow, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> exc = -1) <span class="keyword">const</span>;
-<a name="l00118"></a>00118     <span class="keywordtype">bool</span> hasSubCycles(<span class="keywordtype">int</span> nRow, <span class="keywordtype">int</span> nCol) <span class="keyword">const</span>;
-<a name="l00119"></a>00119     <span class="keywordtype">void</span> normalize(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix) <span class="keyword">const</span>;
-<a name="l00120"></a>00120     <span class="keywordtype">void</span> subCol(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> nCol, <span class="keywordtype">double</span> val);
-<a name="l00121"></a>00121     <span class="keywordtype">void</span> subRow(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> nRow, <span class="keywordtype">double</span> val);
-<a name="l00122"></a>00122 };
-<a name="l00123"></a>00123 
-<a name="l00124"></a>00124 <span class="preprocessor">#ifdef DEBUG</span>
-<a name="l00125"></a>00125 <span class="preprocessor"></span><a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qdebug.html">QDebug</a> operator&lt;&lt;(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qdebug.html">QDebug</a> dbg, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix);
-<a name="l00126"></a>00126 <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qdebug.html">QDebug</a> operator&lt;&lt;(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qdebug.html">QDebug</a> dbg, <span class="keyword">const</span> <a class="code" href="struct_s_candidate.html" title="A structure that represents a candidate for branching.">SCandidate</a> &amp;candidate);
-<a name="l00127"></a>00127 <span class="preprocessor">#endif // DEBUG</span>
-<a name="l00128"></a>00128 <span class="preprocessor"></span>
-<a name="l00129"></a>00129 <span class="preprocessor">#endif // TSPSOLVER_H</span>
+<a name="l00087"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af569aef4d00d3e33f39d8f251138860e">00087</a>     <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html" title="A structure that represents a candidate for branching.">SCandidate</a> <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af569aef4d00d3e33f39d8f251138860e" title="A candiadate for branching in the current step.">candidate</a>; 
+<a name="l00088"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af95b7f421e7373e32548c64c358438d7">00088</a>     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">QList&lt;SCandidate&gt;</a> <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af95b7f421e7373e32548c64c358438d7" title="A list of alternative branching candidates.">alts</a>; 
+<a name="l00089"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a4689e211e6a03f4b255243fde93ac54e">00089</a>     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> *<a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a4689e211e6a03f4b255243fde93ac54e" title="Pointer to the parent step.">pNode</a>; 
+<a name="l00090"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a3d4642f69b5eb7531697112341d31fd9">00090</a>     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> *<a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a3d4642f69b5eb7531697112341d31fd9" title="Pointer to the left branch step.">plNode</a>; 
+<a name="l00091"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a44db7deaa9dbb69eafdf5fc7efd2296b">00091</a>     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> *<a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a44db7deaa9dbb69eafdf5fc7efd2296b" title="Pointer to the right branch step.">prNode</a>; 
+<a name="l00092"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a8db8f6149eb89754aeefd35348292375">00092</a>     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86" title="An enum that describes possible selection of the next step.">NextStep</a> <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a8db8f6149eb89754aeefd35348292375" title="Indicates what branch was selected for the next step.">next</a>; 
+<a name="l00093"></a>00093 
+<a name="l00095"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#ae1d7209d6effb9fcfa28aafeac360c31">00095</a>     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#ae1d7209d6effb9fcfa28aafeac360c31" title="Assigns default values.">SStep</a>() {
+<a name="l00096"></a>00096         <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a881c1503127ad2426194700491ea4026" title="The price of travel to this step.">price</a> = -1;
+<a name="l00097"></a>00097         <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a4689e211e6a03f4b255243fde93ac54e" title="Pointer to the parent step.">pNode</a> = <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a3d4642f69b5eb7531697112341d31fd9" title="Pointer to the left branch step.">plNode</a> = <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a44db7deaa9dbb69eafdf5fc7efd2296b" title="Pointer to the right branch step.">prNode</a> = NULL;
+<a name="l00098"></a>00098         <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a8db8f6149eb89754aeefd35348292375" title="Indicates what branch was selected for the next step.">next</a> = <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86a3b8ba538613f8e35ff43828c6522c354" title="No next step (end of solution).">NoNextStep</a>;
+<a name="l00099"></a>00099     }
+<a name="l00100"></a>00100 };
+<a name="l00101"></a>00101 
+<a name="l00106"></a><a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html">00106</a> <span class="keyword">class </span><a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html" title="This class solves Travelling Salesman Problem task.">CTSPSolver</a>: <span class="keyword">public</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qobject.html">QObject</a>
+<a name="l00107"></a>00107 {
+<a name="l00108"></a>00108     Q_OBJECT
+<a name="l00109"></a>00109 
+<a name="l00110"></a>00110 <span class="keyword">public</span>:
+<a name="l00111"></a>00111     <span class="keyword">static</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qstring.html">QString</a> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a71d04cbead3508cdff606a5ccc79e59e" title="Returns CTSPSolver&amp;#39;s version ID.">getVersionId</a>();
+<a name="l00112"></a>00112 
+<a name="l00113"></a>00113     <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a71bebe073ed5149a4558a779410a2e6b" title="Constructs CTSPSolver object.">CTSPSolver</a>(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qobject.html">QObject</a> *<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qobject.html#parent">parent</a> = NULL);
+<a name="l00114"></a>00114     <span class="keywordtype">void</span> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a3ef198959f1b4c32b84fbd5222f8b796" title="Cleans up the object and frees up memory used by the solution tree.">cleanup</a>(<span class="keywordtype">bool</span> processEvents = <span class="keyword">false</span>);
+<a name="l00115"></a>00115     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qstring.html">QString</a> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a8897c0737ef2451ae606c38113477521" title="Returns the sorted optimal path, starting from City 1.">getSortedPath</a>(<span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qstring.html">QString</a> &amp;city, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qstring.html">QString</a> &amp;separator = <span class="stringliteral">&quot; -&gt; &quot;</span>) <span class="keyword">const</span>;
+<a name="l00116"></a>00116     <span class="keywordtype">int</span> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a721973cc992b62750aae6fd3ab65773d" title="Returns a total number of steps in the current solution.">getTotalSteps</a>() <span class="keyword">const</span>;
+<a name="l00117"></a>00117     <span class="keywordtype">bool</span> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a2b82ac68b981c47a3261f4e4e9ecd2bd" title="Indicates whether or not the solution is definitely optimal.">isOptimal</a>() <span class="keyword">const</span>;
+<a name="l00118"></a>00118     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> *<a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#ab8a5a387deebffd898577dba31a95099" title="Solves the given task.">solve</a>(<span class="keywordtype">int</span> numCities, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;task);
+<a name="l00119"></a>00119     <span class="keywordtype">bool</span> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a6cce9079d60735f92037c98d6d361a82" title="Indicates whether or not the solution process was canceled.">wasCanceled</a>() <span class="keyword">const</span>;
+<a name="l00120"></a>00120     ~<a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html" title="This class solves Travelling Salesman Problem task.">CTSPSolver</a>();
+<a name="l00121"></a>00121 
+<a name="l00122"></a>00122 <span class="keyword">public</span> slots:
+<a name="l00123"></a>00123     <span class="keywordtype">void</span> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a46a3da58d4bb9431bea2c915ceaf1eea" title="Cancels the solution process.">cancel</a>();
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125 signals:
+<a name="l00130"></a>00130     <span class="keywordtype">void</span> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a5e02867f053089a3e096f6baa70499a2" title="This signal is emitted once every time a part of the route is found.">routePartFound</a>(<span class="keywordtype">int</span> n);
+<a name="l00131"></a>00131 
+<a name="l00132"></a>00132 <span class="keyword">private</span>:
+<a name="l00133"></a>00133     <span class="keywordtype">bool</span> mayNotBeOptimal, canceled;
+<a name="l00134"></a>00134     <span class="keywordtype">int</span> nCities, total;
+<a name="l00135"></a>00135     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> *root;
+<a name="l00136"></a>00136     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qhash.html">QHash&lt;int,int&gt;</a> route;
+<a name="l00137"></a>00137     <span class="keyword">mutable</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qmutex.html">QMutex</a> mutex;
+<a name="l00138"></a>00138 
+<a name="l00139"></a>00139     <span class="keywordtype">double</span> align(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix);
+<a name="l00140"></a>00140     <span class="keywordtype">void</span> deleteTree(<a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> *&amp;root, <span class="keywordtype">bool</span> processEvents = <span class="keyword">false</span>);
+<a name="l00141"></a>00141     <span class="keywordtype">void</span> denormalize(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix) <span class="keyword">const</span>;
+<a name="l00142"></a>00142     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">QList&lt;SStep::SCandidate&gt;</a> findCandidate(<span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> &amp;nRow, <span class="keywordtype">int</span> &amp;nCol) <span class="keyword">const</span>;
+<a name="l00143"></a>00143     <span class="keywordtype">double</span> findMinInCol(<span class="keywordtype">int</span> nCol, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> exr = -1) <span class="keyword">const</span>;
+<a name="l00144"></a>00144     <span class="keywordtype">double</span> findMinInRow(<span class="keywordtype">int</span> nRow, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> exc = -1) <span class="keyword">const</span>;
+<a name="l00145"></a>00145     <span class="keywordtype">void</span> finishRoute();
+<a name="l00146"></a>00146     <span class="keywordtype">bool</span> hasSubCycles(<span class="keywordtype">int</span> nRow, <span class="keywordtype">int</span> nCol) <span class="keyword">const</span>;
+<a name="l00147"></a>00147     <span class="keywordtype">void</span> normalize(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix) <span class="keyword">const</span>;
+<a name="l00148"></a>00148     <span class="keywordtype">void</span> subCol(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> nCol, <span class="keywordtype">double</span> val);
+<a name="l00149"></a>00149     <span class="keywordtype">void</span> subRow(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> nRow, <span class="keywordtype">double</span> val);
+<a name="l00150"></a>00150 };
+<a name="l00151"></a>00151 
+<a name="l00152"></a>00152 }
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154 <span class="preprocessor">#ifdef DEBUG</span>
+<a name="l00155"></a>00155 <span class="preprocessor"></span><a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qdebug.html">QDebug</a> operator&lt;&lt;(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qdebug.html">QDebug</a> dbg, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TSPSolver::TMatrix</a> &amp;matrix);
+<a name="l00156"></a>00156 <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qdebug.html">QDebug</a> operator&lt;&lt;(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qdebug.html">QDebug</a> dbg, <span class="keyword">const</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html" title="A structure that represents a candidate for branching.">TSPSolver::SStep::SCandidate</a> &amp;candidate);
+<a name="l00157"></a>00157 <span class="preprocessor">#endif // DEBUG</span>
+<a name="l00158"></a>00158 <span class="preprocessor"></span>
+<a name="l00159"></a>00159 <span class="preprocessor">#endif // TSPSOLVER_H</span>
 </pre></div></div>
 <!--- window showing the filter options -->
@@ -173,5 +193,5 @@
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>
 
 <!-- iframe showing the search results (closed by default) -->
@@ -182,5 +202,5 @@
 </div>
 
-<hr size="1"/><address style="text-align: right;"><small>Generated on Fri Apr 9 00:25:38 2010 for TSPSG: TSP Solver and Generator by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Wed Apr 28 02:47:10 2010 for TSPSG: TSP Solver and Generator by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
