inline bool updateAtomic (uintE s, uintE d) { //atomic Update uintE origID = IDs[d]; writeMin(&IDs[d],IDs[s]); return 1; }
inline bool updateAtomic (uintE s, uintE d, intE edgeLen){ //atomic Update intE newDist = ShortestPathLen[s] + edgeLen; return (writeMin(&ShortestPathLen[d],newDist) && CAS(&Visited[d],0,1)); }
inline bool updateAtomic (uintE s, uintE d) { //atomic Update uintE origID = IDs[d]; return (writeMin(&IDs[d],IDs[s]) && origID == prevIDs[d]); }