public boolean stateEquals(Object o) {
        if (o == this) return true;
        if (o == null || !(o instanceof MersenneTwisterFast))
            return false;
        MersenneTwisterFast other = (MersenneTwisterFast) o;
        if (mti != other.mti) return false;
        for (int x = 0; x < mag01.length; x++)
            if (mag01[x] != other.mag01[x]) return false;
        for (int x = 0; x < mt.length; x++)
            if (mt[x] != other.mt[x]) return false;
        return true;
    }