Boost C++ Libraries: Ticket #7226: relax() in relax.hpp can return false even if predecessor map is changed https://svn.boost.org/trac10/ticket/7226 <p> The relax function in relax.hpp checks whether the distance of an edge really is reduced after relaxation and only returns true if that is the case. (the alternative possibility is that the expected reduction in distance does not take place due to floating point precision). </p> <p> However, the function updates the predecessor map in any case. It is therefore possible that the predecessor map is changed while the relax function returns false. I suppose this is a bug, even though I did not cause me any trouble. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/7226 Trac 1.4.3 Alex Hagen-Zanker <ahh34@…> Mon, 13 Aug 2012 13:55:03 GMT attachment set https://svn.boost.org/trac10/ticket/7226 https://svn.boost.org/trac10/ticket/7226 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">relax.patch</span> </li> </ul> <p> patch </p> Ticket Jeremiah Willcock Sat, 22 Sep 2012 19:32:34 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/7226#comment:1 https://svn.boost.org/trac10/ticket/7226#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/80639" title="Fixed relax logic to not write predecessor map unless distance was ...">[80639]</a>) Fixed relax logic to not write predecessor map unless distance was actually changed in memory (although this case will never be hit unless registers have extra precision compared to memory); fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7226" title="#7226: Bugs: relax() in relax.hpp can return false even if predecessor map is changed (closed: fixed)">#7226</a> </p> Ticket