A period is a contiguous sequence of phase ids in some run. It is coded as follows:
sign, always 0 1 bit runid 17 bits last phase id: 7 bits #phases before last: 7 bits
// Dmitry: sign == 0 isn't actually always true, in some cases phaseId == -1 is used for shifts, that easily creates code < 0
The intersection of two periods
Does this period contain given period?
The first phase of this period
The last phase of this period
Does this period overlap with given period?
The phase identifier of this single-phase period.
The run identifier of this period.
The smallest period containing two periods