@Override final long reverseFlags(long edgePointer, long flags) { boolean isShortcut = edgePointer >= toPointer(baseGraph.edgeCount); if (!isShortcut) return baseGraph.edgeAccess.reverseFlags(edgePointer, flags); // we need a special swapping for CHGraph if it is a shortcut as we only store the weight and access flags then long dir = flags & scDirMask; if (dir == scDirMask || dir == 0) return flags; // swap the last bits with this mask return flags ^ scDirMask; }
final long getFlags_(long edgePointer, boolean reverse) { int low = edges.getInt(edgePointer + E_FLAGS); long resFlags = low; if (flagsSizeIsLong) { int high = edges.getInt(edgePointer + E_FLAGS + 4); resFlags = bitUtil.combineIntsToLong(low, high); } if (reverse) resFlags = reverseFlags(edgePointer, resFlags); return resFlags; }
final long setFlags_(long edgePointer, boolean reverse, long flags) { if (reverse) flags = reverseFlags(edgePointer, flags); edges.setInt(edgePointer + E_FLAGS, bitUtil.getIntLow(flags)); if (flagsSizeIsLong) edges.setInt(edgePointer + E_FLAGS + 4, bitUtil.getIntHigh(flags)); return flags; }
@Override final long reverseFlags(long edgePointer, long flags) { boolean isShortcut = edgePointer >= toPointer(baseGraph.edgeCount); if (!isShortcut) return baseGraph.edgeAccess.reverseFlags(edgePointer, flags); // we need a special swapping for CHGraph if it is a shortcut as we only store the weight and access flags then long dir = flags & scDirMask; if (dir == scDirMask || dir == 0) return flags; // swap the last bits with this mask return flags ^ scDirMask; }
@Override final long reverseFlags(long edgePointer, long flags) { boolean isShortcut = edgePointer >= toPointer(baseGraph.edgeCount); if (!isShortcut) return baseGraph.edgeAccess.reverseFlags(edgePointer, flags); // we need a special swapping for CHGraph if it is a shortcut as we only store the weight and access flags then long dir = flags & scDirMask; if (dir == scDirMask || dir == 0) return flags; // swap the last bits with this mask return flags ^ scDirMask; }
@Override final long reverseFlags( long edgePointer, long flags ) { boolean isShortcut = edgePointer >= toPointer(baseGraph.edgeCount); if (!isShortcut) return baseGraph.edgeAccess.reverseFlags(edgePointer, flags); // we need a special swapping for level graph if it is a shortcut as we only store the weight and access flags then long dir = flags & scDirMask; if (dir == scDirMask || dir == 0) return flags; // swap the last bits with this mask return flags ^ scDirMask; }
final long getFlags_( long edgePointer, boolean reverse ) { int low = edges.getInt(edgePointer + E_FLAGS); long resFlags = low; if (flagsSizeIsLong) { int high = edges.getInt(edgePointer + E_FLAGS + 4); resFlags = bitUtil.combineIntsToLong(low, high); } if (reverse) resFlags = reverseFlags(edgePointer, resFlags); return resFlags; }
final long getFlags_(long edgePointer, boolean reverse) { int low = edges.getInt(edgePointer + E_FLAGS); long resFlags = low; if (flagsSizeIsLong) { int high = edges.getInt(edgePointer + E_FLAGS + 4); resFlags = bitUtil.combineIntsToLong(low, high); } if (reverse) resFlags = reverseFlags(edgePointer, resFlags); return resFlags; }
final long getFlags_(long edgePointer, boolean reverse) { int low = edges.getInt(edgePointer + E_FLAGS); long resFlags = low; if (flagsSizeIsLong) { int high = edges.getInt(edgePointer + E_FLAGS + 4); resFlags = bitUtil.combineIntsToLong(low, high); } if (reverse) resFlags = reverseFlags(edgePointer, resFlags); return resFlags; }
final long setFlags_( long edgePointer, boolean reverse, long flags ) { if (reverse) flags = reverseFlags(edgePointer, flags); edges.setInt(edgePointer + E_FLAGS, bitUtil.getIntLow(flags)); if (flagsSizeIsLong) edges.setInt(edgePointer + E_FLAGS + 4, bitUtil.getIntHigh(flags)); return flags; }
final long setFlags_(long edgePointer, boolean reverse, long flags) { if (reverse) flags = reverseFlags(edgePointer, flags); edges.setInt(edgePointer + E_FLAGS, bitUtil.getIntLow(flags)); if (flagsSizeIsLong) edges.setInt(edgePointer + E_FLAGS + 4, bitUtil.getIntHigh(flags)); return flags; }
final long setFlags_(long edgePointer, boolean reverse, long flags) { if (reverse) flags = reverseFlags(edgePointer, flags); edges.setInt(edgePointer + E_FLAGS, bitUtil.getIntLow(flags)); if (flagsSizeIsLong) edges.setInt(edgePointer + E_FLAGS + 4, bitUtil.getIntHigh(flags)); return flags; }