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.

See Also

jump_coefficients
jump

Back to top