Ticket #7226: relax.patch
File relax.patch, 1.2 KB (added by , 10 years ago) |
---|
-
relax.hpp
52 52 D d_u = get(d, u), d_v = get(d, v); 53 53 W w_e = get(w, e); 54 54 55 // The redundant gets in the returnstatements are to ensure that extra55 // The redundant nested if statements are to ensure that extra 56 56 // floating-point precision in x87 registers does not lead to relax() 57 57 // returning true when the distance did not actually change. 58 58 if ( compare(combine(d_u, w_e), d_v) ) { 59 59 put(d, v, combine(d_u, w_e)); 60 put(p, v, u); 61 return compare(get(d, v), d_v); 60 if(compare(get(d, v), d_v) { 61 put(p, v, u); 62 return true; 63 } 62 64 } else if (is_undirected && compare(combine(d_v, w_e), d_u)) { 63 65 put(d, u, combine(d_v, w_e)); 64 put(p, u, v); 65 return compare(get(d, u), d_u); 66 } else 67 return false; 66 if(compare(get(d, u), d_u) ){ 67 put(p, u, v); 68 return true; 69 } 70 } 71 return false; 68 72 } 69 73 70 74 template <class Graph, class WeightMap,