⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mjbitset_test.cpp

📁 cmjbitset_demo
💻 CPP
字号:
// mjbitset_test.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <time.h>

#include <assert.h>

#define _ASSERT(c) assert(c)
//
// must be set when regressing.
//

#define DEBUG_CMJBITSET

#include "mjbitset.h"

#define TESTSIZE 1024
//#define TESTSIZE 32
//#define TESTSIZE 8
#define TESTLOOPS 100000
//
// keep to 0 for regressions otherwise a value a little below TESTSIZE will make the bitsets sparse
//
#define SPARSENESS 0

//
// note if you want to compare performance, then don't define DEBUG_CMJBITSET 
//

#if 1
#define BITSET CMJBitset
#else
#define BITSET bitset
#endif


void set_bitset(	BITSET<TESTSIZE> &b, int level)
{
	for (int i = 0; i < TESTSIZE; i++)
	{

		if ((rand() % TESTSIZE) > level + SPARSENESS)
		{
			b.set(i);
		}
	}

}


void regress_bitset(int bitset1_level,int bitset2_level)
{
	BITSET<TESTSIZE> b1;

	BITSET<TESTSIZE> b2;

	BITSET<TESTSIZE> r;
	BITSET<TESTSIZE> r1;

	b1.set(6);
	r = b1>>6;

	set_bitset(b1, bitset1_level);
	set_bitset(b2, bitset2_level);

	r = b1 & b2;
	r = b1 | b2;

	r = b1;
	r >>= bitset1_level;

	r = b1;

	r <<= bitset2_level;

	r = b2;

	r >>= bitset2_level;

	r = b2;
	r1 = r;

	r.flip();
	
	//if (bitset1_level == 29 && bitset2_level == 28)
	//{
	//		printf("here");
	//

	r <<= bitset1_level;
	r1 <<= bitset1_level;
	r1 >>= bitset2_level;


	r = ~b1;
	r &= b2;

	r |= b1;
	r |= b2;

	r.flip();



	r.set(bitset1_level,0);
	r.set(bitset2_level,0);



}

int main(int argc, char* argv[])
{
	

	int bitset1_level;
	int bitset2_level;

	clock_t start = clock();
	for (int i = 0; i < TESTLOOPS;i++)
	{

		bitset1_level = rand() % TESTSIZE;
		bitset2_level = rand() % TESTSIZE;

		regress_bitset(bitset1_level, bitset2_level);

	}
	clock_t finish = clock();

	fprintf(stdout,"Time: %d\n",(finish-start)/CLOCKS_PER_SEC);

	char c = fgetc(stdin);

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -