void BWTCA::calculateAbsolutePositions(BCRVector& bcrVector, const AlphaCount64& suffixSymbolCounts)
{
    // Calculate a predecessor array from the suffix symbol counts
    AlphaCount64 predCounts;
    for(int i = 0; i < BWT_ALPHABET::size; ++i)
    {
        char b = RANK_ALPHABET[i];
        int64_t pc = suffixSymbolCounts.getLessThan(b);
        predCounts.set(b, pc);
    }

    for(size_t i = 0; i < bcrVector.size(); ++i)
        bcrVector[i].position += predCounts.get(bcrVector[i].sym);
}