xso::generator
— Precomputed Characteristics
We have a class method that returns the precomputed lower-order coefficients of the characteristic polynomial associated with the State
.
static constexpr state_type characteristic_coefficients();
Calls to this method will fail at compile time if no such coefficients are embedded in the xoshiro.h
header file. Calls will succeed for all the type aliased recommended generators.
Summary
Suppose that the generator’s has \(n\) bits of state packed into \(n_w\) words.
The corresponding transition matrix over \(\mathbb{F}_2\) will be \(n \times n\) and will be of full rank with a monic characteristic polynomial: \[ c(x) = x^n + p(x). \] The polynomial \(p(x)\) is the lower-order piece of \(c(x)\) and is of degree less than \(n\): \[ p(x) = p_0 + p_1 x + \cdots + p_{n-1} x^{n-1}. \] Each coefficient \(p_i\) is either 0 or 1 and we can pack the \(n\) coefficients of \(p(x)\) into \(n_w\) words.
A successful call to the characteristic_coefficients()
class method returns the coefficients of \(p(x)\) in a standard array of \(n_w\) words.
The Details
See the jump technique page for details on how the polynomial \(p(x)\) is used in practice.