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

📄 generator.cpp

📁 intel线程挑战赛 矩阵转置 快速转置 多线程 tbb 并行算法
💻 CPP
字号:
#include <cstdio>
#include <cstdlib>
#include <cassert>

size_t density=20;
size_t rowmax=5000;
size_t colmax=50000;
size_t seed=2;
void ParseCommand(int argc,char *argv[]);

int main(int argc,char *argv[]){
	
	int data;
	ParseCommand(argc,argv);
	FILE *write;
	write = fopen("matrix.dat","w");
	srand(seed);
	fprintf(write,"%d %d\n",(int)rowmax,(int)colmax);
	for(int i=0; i<rowmax; i++){
		for(int j=0; j<colmax; j++) 
			if((data=rand())%density == 0)
				fprintf(write,"%d %d %d\n",i,j,rand()%10000);
			
	}
	fprintf(write,"%d %d %d\n",0,0,-1);
	fclose(write);
}
///////////////////////////////////////////////////////////////
inline void Usage(){
	printf("usage:generator.exe [-d 5] [-b 5000 5000] [-s 2] \n");
	printf("\t-d is density\n");
	printf("\t-b is boundary of matrix\n");
	printf("\t-s is seed to srand()\n");
}
inline void Assert(bool b)
{
	if(!b){
		Usage();
		exit(0);
	}
}
void ParseCommand(int argc,char *argv[]){
	for(int i=1; i<argc; i++){
		if(argv[i][0]=='-'){
			switch(argv[i][1]){
				case 's':
					Assert(argv[++i]);
					seed=atoi(argv[i]);
					Assert(density);
					break;
				case 'd':
					Assert(argv[++i]);
					density=atoi(argv[i]);
					Assert(density);
					break;
				case 'b':
					Assert(argv[++i]);
					rowmax=atoi(argv[i]);
					Assert(argv[++i]);
					colmax=atoi(argv[i]);
					Assert(colmax>0 && rowmax>0);
					break;
				default:
					Assert(false);

			}
		}else{
			Assert(false);
		}
	}	
        printf("matrix:%d,%d\tdensity:%d\ttseed:%d\n", (int)rowmax,(int)colmax,(int)density,(int)seed);
	return;
}

⌨️ 快捷键说明

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