Esempio n. 1
0
BitVector Sparse6Writer::constructBitvector(vector<pair<unsigned, unsigned> >& groups, unsigned sizeOfGroups)
{
    BitVector result;
    for (unsigned i = 0; i < groups.size(); ++i)
    {
        // append the b[i]
        result.appendBit(groups[i].first);
        // append sizeOfGroup bits of the integer groups[i].second
        result.appendByte(groups[i].second, sizeOfGroups);
    }
    return result;
}
Esempio n. 2
0
void Sparse6Writer::padUp(BitVector& bitVector, unsigned numberOfNodes, unsigned k, bool last, bool beforeLast)
{

    unsigned numberOfBitsToPad = 0;
    while ((bitVector.size() + numberOfBitsToPad) % 6 != 0)
        numberOfBitsToPad++;
    if ((numberOfNodes >= k + 1) && last && !beforeLast && isMutipleOfTwo(numberOfNodes))
        bitVector.appendBit(0);

    // pad to multiples of 6 with one's
    bitVector.padR(6, true);
}