Tempering function
In pseudorandom number generator design, a tempering function is a bijective transformation applied to the raw output of a generator's state-transition function before the value is returned to the caller. Its purpose is not to lengthen the period — that is the job of the underlying recurrence — but to improve the statistical quality of the output, particularly equidistribution in high dimensions.
The Mersenne Twister popularized the tempering approach: after updating its internal state via a matrix linear recurrence, it applies a sequence of bit-masking, shifting, and XOR operations that scramble the raw state word into a form that passes stringent statistical tests. Without tempering, the raw state values exhibit detectable lattice structure and linear dependencies that compromise the generator's usability in Monte Carlo applications.
Tempering is a recognition that a PRNG has two distinct jobs: evolving the state space (period and structure) and producing output (statistical quality). Treating them as separate design problems, connected by a deliberately chosen transformation, is a systems insight that has influenced every major PRNG design since.
The tempering function is the PRNG designer admitting that the raw mathematics is not enough — that the path from internal state to observable output requires its own layer of craftsmanship. This is not a failure of the mathematics; it is an acknowledgment that statistical randomness is a property of the interface, not the implementation.