Esempio n. 1
0
int Hash::InitHash() {
    /************************************************
    ハッシュの初期化
    ファイルから読み込めた場合は0以外の値を返す。
    ************************************************/
    int i, j;

    if( 0 == ReadHash() ) {
        // ファイルからの読み込みに失敗
        for( i = 0 ; i <= GRY - SFU ; i++ ) {
            for( j = 0x11 ; j <= 0x99 ; j++ )
                hash_ban[i][j] = gen_rand64();
        }
        for( i = 0 ; i <= GHI - SFU ; i++ ) {
            for( j = 0 ; j <= 18 ; j++ )
                hash_dai[i][j] = gen_rand64();
        }
        hash_sengo = gen_rand64();

        // 生成した乱数を記録
        WriteHash();

        return 0;
    }

    return 1;
}
Esempio n. 2
0
TEST_END

TEST_BEGIN(test_rtree_random)
{
	unsigned i;
	sfmt_t *sfmt;
#define	NSET 16
#define	SEED 42

	sfmt = init_gen_rand(SEED);
	for (i = 1; i <= (sizeof(uintptr_t) << 3); i++) {
		uintptr_t keys[NSET];
		extent_node_t node;
		unsigned j;
		rtree_t rtree;

		assert_false(rtree_new(&rtree, i, node_alloc, node_dalloc),
		    "Unexpected rtree_new() failure");

		for (j = 0; j < NSET; j++) {
			keys[j] = (uintptr_t)gen_rand64(sfmt);
			assert_false(rtree_set(&rtree, keys[j], &node),
			    "Unexpected rtree_set() failure");
			assert_ptr_eq(rtree_get(&rtree, keys[j], true), &node,
			    "rtree_get() should return previously set value");
		}
		for (j = 0; j < NSET; j++) {
			assert_ptr_eq(rtree_get(&rtree, keys[j], true), &node,
			    "rtree_get() should return previously set value");
		}

		for (j = 0; j < NSET; j++) {
			assert_false(rtree_set(&rtree, keys[j], NULL),
			    "Unexpected rtree_set() failure");
			assert_ptr_null(rtree_get(&rtree, keys[j], true),
			    "rtree_get() should return previously set value");
		}
		for (j = 0; j < NSET; j++) {
			assert_ptr_null(rtree_get(&rtree, keys[j], true),
			    "rtree_get() should return previously set value");
		}

		rtree_delete(&rtree);
	}
	fini_gen_rand(sfmt);
#undef NSET
#undef SEED
}
Esempio n. 3
0
TEST_END

TEST_BEGIN(test_rtree_random)
{
	unsigned i;
	sfmt_t *sfmt;
#define	NSET 100
#define	SEED 42

	sfmt = init_gen_rand(SEED);
	for (i = 1; i <= (sizeof(uintptr_t) << 3); i++) {
		rtree_t *rtree = rtree_new(i, malloc, free);
		uintptr_t keys[NSET];
		unsigned j;

		for (j = 0; j < NSET; j++) {
			keys[j] = (uintptr_t)gen_rand64(sfmt);
			rtree_set(rtree, keys[j], 1);
			assert_u_eq(rtree_get(rtree, keys[j]), 1,
			    "rtree_get() should return previously set value");
		}
		for (j = 0; j < NSET; j++) {
			assert_u_eq(rtree_get(rtree, keys[j]), 1,
			    "rtree_get() should return previously set value");
		}

		for (j = 0; j < NSET; j++) {
			rtree_set(rtree, keys[j], 0);
			assert_u_eq(rtree_get(rtree, keys[j]), 0,
			    "rtree_get() should return previously set value");
		}
		for (j = 0; j < NSET; j++) {
			assert_u_eq(rtree_get(rtree, keys[j]), 0,
			    "rtree_get() should return previously set value");
		}

		rtree_delete(rtree);
	}
	fini_gen_rand(sfmt);
#undef NSET
#undef SEED
}
Esempio n. 4
0
 Move getRandomMove(PointColor c) const { return Move(c, gen_rand64() % mChoiceCount); }
Esempio n. 5
0
double bmx_genrand_res53() {
    return to_res53(gen_rand64());
}
Esempio n. 6
0
void bmx_gen_rand64(BBInt64 * r) {
	*r = gen_rand64();
}