final int nextTierIndex = j;
final int prevTierIndex = nextTierIndex - 1;
final ITier basicPrevTier = (ITier) basicTiers.get(prevTierIndex);
final ITier basicNextTier = (ITier) basicTiers.get(nextTierIndex);
OpenIntObjectHashMap basicPrevTierVertices = (OpenIntObjectHashMap) basicGraph.getTiers().get(prevTierIndex);
if (LOGGER.isDebugEnabled())
{
LOGGER.debug("HSS tier #{} is: {}", nextTierIndex, verticesTripletsToString(basicPrevTierVertices));
LOGGER.debug("Basic tier #{} is: {}", nextTierIndex, tripletsToString(basicPrevTier));
LOGGER.debug("Basic tier #{} is: {}", nextTierIndex + 1, tripletsToString(basicNextTier));
}
if (basicPrevTier.size() != basicPrevTierVertices.size())
{
throw new AssertionError("BG and HSS should be isomorphic");
}
// Shift each vertex of the tier along associated edges to the next tier
IntArrayList keys = basicPrevTierVertices.keys();
int keysSize = keys.size();
for (int k = 0; k < keysSize; k++)
{
int tierKeyOfTheVertexToShift = keys.get(k);