Siv3D/include/ThirdParty/SFMT/SFMT.hpp
inline static void gen_rand_array(sfmt_t * sfmt, w128_t * array, int size)
	{
		int i, j;
		__m128i r1, r2;
		w128_t * pstate = sfmt->state;

		r1 = pstate[SFMT_N - 2].si;
		r2 = pstate[SFMT_N - 1].si;
		for (i = 0; i < SFMT_N - SFMT_POS1; i++) {
			array[i].si = mm_recursion(pstate[i].si,
				pstate[i + SFMT_POS1].si, r1, r2);
			r1 = r2;
			r2 = array[i].si;
		}
		for (; i < SFMT_N; i++) {
			array[i].si = mm_recursion(pstate[i].si,
				array[i + SFMT_POS1 - SFMT_N].si, r1, r2);
			r1 = r2;
			r2 = array[i].si;
		}
		for (; i < size - SFMT_N; i++) {
			array[i].si = mm_recursion(array[i - SFMT_N].si,
				array[i + SFMT_POS1 - SFMT_N].si, r1, r2);
			r1 = r2;
			r2 = array[i].si;
		}
		for (j = 0; j < 2 * SFMT_N - size; j++) {
			pstate[j] = array[j + size - SFMT_N];
		}
		for (; i < size; i++, j++) {
			array[i].si = mm_recursion(array[i - SFMT_N].si,
				array[i + SFMT_POS1 - SFMT_N].si, r1, r2);
			r1 = r2;
			r2 = array[i].si;
			pstate[j] = array[i];
		}
	}
/**
	* This function fills the user-specified array with pseudorandom
	* integers.
	* @param sfmt SFMT internal state.
	* @param array an 128-bit array to be filled by pseudorandom numbers.
	* @param size number of 128-bit pseudorandom numbers to be generated.
	*/
This function fills the user-specified array with pseudorandom
integers.
@param sfmt SFMT internal state.
@param array an 128-bit array to be filled by pseudorandom numbers.
@param size number of 128-bit pseudorandom numbers to be generated.
This function fills the user - specified array with pseudorandom integers . @param sfmt SFMT internal state . @param array an 128 - bit array to be filled by pseudorandom numbers . @param size number of 128 - bit pseudorandom numbers to be generated .
inline static void gen_rand_array(sfmt_t * sfmt, w128_t * array, int size)
	{
		int i, j;
		__m128i r1, r2;
		w128_t * pstate = sfmt->state;
		r1 = pstate[SFMT_N - 2].si;
		r2 = pstate[SFMT_N - 1].si;
		for (i = 0; i < SFMT_N - SFMT_POS1; i++) {
			array[i].si = mm_recursion(pstate[i].si,
				pstate[i + SFMT_POS1].si, r1, r2);
			r1 = r2;
			r2 = array[i].si;
		}
		for (; i < SFMT_N; i++) {
			array[i].si = mm_recursion(pstate[i].si,
				array[i + SFMT_POS1 - SFMT_N].si, r1, r2);
			r1 = r2;
			r2 = array[i].si;
		}
		for (; i < size - SFMT_N; i++) {
			array[i].si = mm_recursion(array[i - SFMT_N].si,
				array[i + SFMT_POS1 - SFMT_N].si, r1, r2);
			r1 = r2;
			r2 = array[i].si;
		}
		for (j = 0; j < 2 * SFMT_N - size; j++) {
			pstate[j] = array[j + size - SFMT_N];
		}
		for (; i < size; i++, j++) {
			array[i].si = mm_recursion(array[i - SFMT_N].si,
				array[i + SFMT_POS1 - SFMT_N].si, r1, r2);
			r1 = r2;
			r2 = array[i].si;
			pstate[j] = array[i];
		}
	}
inline static void gen_rand_array ( sfmt_t * sfmt , w128_t * array , int size ) { int i , j ; __m128i r1 , r2 ; w128_t * pstate = sfmt -> state ; r1 = pstate [ SFMT_N - 2 ] . si ; r2 = pstate [ SFMT_N - 1 ] . si ; for ( i = 0 ; i < SFMT_N - SFMT_POS1 ; i ++ ) { array [ i ] . si = mm_recursion ( pstate [ i ] . si , pstate [ i + SFMT_POS1 ] . si , r1 , r2 ) ; r1 = r2 ; r2 = array [ i ] . si ; } for ( ; i < SFMT_N ; i ++ ) { array [ i ] . si = mm_recursion ( pstate [ i ] . si , array [ i + SFMT_POS1 - SFMT_N ] . si , r1 , r2 ) ; r1 = r2 ; r2 = array [ i ] . si ; } for ( ; i < size - SFMT_N ; i ++ ) { array [ i ] . si = mm_recursion ( array [ i - SFMT_N ] . si , array [ i + SFMT_POS1 - SFMT_N ] . si , r1 , r2 ) ; r1 = r2 ; r2 = array [ i ] . si ; } for ( j = 0 ; j < 2 * SFMT_N - size ; j ++ ) { pstate [ j ] = array [ j + size - SFMT_N ] ; } for ( ; i < size ; i ++ , j ++ ) { array [ i ] . si = mm_recursion ( array [ i - SFMT_N ] . si , array [ i + SFMT_POS1 - SFMT_N ] . si , r1 , r2 ) ; r1 = r2 ; r2 = array [ i ] . si ; pstate [ j ] = array [ i ] ; } }
This function fills the user-specified array with pseudorandom
 integers.
This function fills the user - specified array with pseudorandom integers .