コード例 #1
0
ファイル: t_xor4096.c プロジェクト: compvid30/strongcrypt-fe
int main() {
  UINT i,f1,f2;
  f1 = xor4096i(seed0);
  f2 = f1;
  printf("R1 = %d\n", f1);
  for (i=1; i<trials; i++) f2 = xor4096i(0);
  printf("R%d = %d\n", trials, f2);
  return 0;
}
コード例 #2
0
ファイル: xorgens4096-ez.c プロジェクト: jj1bdx/xorshiftplus
int main(int argc, char *argv[] ) {
	if ( argc != 3 ) {
		fprintf(stderr, "%s NUMBER WINDOW\n", argv[0] );
		exit(1);
	}

	const int n = atoi( argv[1] );
	const int k = atoi( argv[2] );
	unsigned long long c[ n + k ];
	memset( c, 0, sizeof c );
	weyl = ((((UINT)0x61c88646)<<16)<<16) + (UINT)0x80b583eb;
	
	for( int b = 0; b < 4096; b++ ) {
		memset( x, 0, sizeof x );
		w = 0;
		x[ b / 64 ] = 1ULL << b % 64;
	
		for( int i = 0; i < n; i++ ) {	
			const int t = __builtin_popcountll( xor4096i() );
			for( int j = 0; j < k; j++ ) c[ i + j ] += t;
		}
	}

	double norm = 1. / ( 4096 * k * 64 );
	for( int i = k; i < n; i++ ) printf( "%f\n", c[ i ] * norm );
}