22 Frequency = Prob.
scale(Frequency);
45 uint64_t Before = Freq.Frequency;
46 Frequency += Freq.Frequency;
49 if (Frequency < Before)
50 Frequency = UINT64_MAX;
64 assert(Frequency != 0);
70 Frequency |= Frequency == 0;
BlockFrequency & operator+=(const BlockFrequency &Freq)
Adds another block frequency using saturating arithmetic.
BlockFrequency & operator/=(const BranchProbability &Prob)
Divide by a non-zero branch probability using saturating arithmetic.
uint64_t scaleByInverse(uint64_t Num) const
Scale a large integer by the inverse.
const BlockFrequency operator+(const BlockFrequency &Freq) const
const BlockFrequency operator*(const BranchProbability &Prob) const
BlockFrequency & operator*=(const BranchProbability &Prob)
Multiplies with a branch probability.
BlockFrequency operator/(const BranchProbability &Prob) const
uint64_t scale(uint64_t Num) const
Scale a large integer.
BlockFrequency & operator>>=(const unsigned count)
Shift block frequency to the right by count digits saturating to 1.