📄 time.c
字号:
char str[25]; strcpy(fname,"r_time_"); gcvt(SCRAM_n,5,str); strcat(fname, str); strcat(fname, "_"); gcvt(height,5,str); strcat(fname, str); strcat(fname, "x"); gcvt(width,5,str); strcat(fname, str); strcat(fname,".txt"); fp = fopen(fname,"wb");/*------------------------------------------------*/ int **trans_r, **trans_c;
trans_r = int_matrix(height, width);
trans_c = int_matrix(height, width); printf("construct the R-trasformation matrix:\n"); fprintf(fp,"construct the R-trasformation matrix:\n");/*------------------------------------------------*/ gettimeofday(&start, NULL); r_arnold_matrix(trans_r, trans_c, height, width); gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("r_arnold used_time = %d Microseconds\n",used_time); fprintf(fp,"r_arnold used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/ printf("R_transformation matrix:\n"); fprintf(fp,"R_transformation matrix:\n"); for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
printf("(%d %d) ",trans_r[i][j],trans_c[i][j]); fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
} printf("\n"); fprintf(fp,"\n");
} for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{ printf("%3d ",trans_r[i][j]*width+trans_c[i][j]); fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]); } printf("\n"); fprintf(fp,"\n");
}/*-----------------------------------------------------------*//*------------------------------------------------*/ gettimeofday(&start, NULL); r_fibonacci_matrix(trans_r, trans_c, height, width); gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("r_fibonacci used_time = %d Microseconds\n",used_time); fprintf(fp,"r_fibonacci used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/ printf("R_transformation matrix:\n"); fprintf(fp,"R_transformation matrix:\n"); for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
printf("(%d %d) ",trans_r[i][j],trans_c[i][j]); fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
} printf("\n"); fprintf(fp,"\n");
} for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{ printf("%3d ",trans_r[i][j]*width+trans_c[i][j]); fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]); } printf("\n"); fprintf(fp,"\n");
}/*-----------------------------------------------------------*//*------------------------------------------------*/ gettimeofday(&start, NULL); r_qatlig_matrix(trans_r, trans_c, height, width); gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("r_qatlig used_time = %d Microseconds\n",used_time); fprintf(fp,"r-qatlig used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/ printf("R_transformation matrix:\n"); fprintf(fp,"R_transformation matrix:\n"); for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
printf("(%d %d) ",trans_r[i][j],trans_c[i][j]); fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
} printf("\n"); fprintf(fp,"\n");
} for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{ printf("%3d ",trans_r[i][j]*width+trans_c[i][j]); fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]); } printf("\n"); fprintf(fp,"\n");
}/*-----------------------------------------------------------*//*------------------------------------------------*/ gettimeofday(&start, NULL); r_hilbert_matrix(trans_r, trans_c, height, width); gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("r_hilbert used_time = %d Microseconds\n",used_time); fprintf(fp,"r_hilbert used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/ printf("R_transformation matrix:\n"); fprintf(fp,"R_transformation matrix:\n"); for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
printf("(%d %d) ",trans_r[i][j],trans_c[i][j]); fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
} printf("\n"); fprintf(fp,"\n");
} for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{ printf("%3d ",trans_r[i][j]*width+trans_c[i][j]); fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]); } printf("\n"); fprintf(fp,"\n");
}/*-----------------------------------------------------------*//*------------------------------------------------*/ gettimeofday(&start, NULL); r_zigzag_matrix(trans_r, trans_c, height, width); gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("r_zigzag used_time = %d Microseconds\n",used_time); fprintf(fp,"r_zigzag used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/ printf("R_transformation matrix:\n"); fprintf(fp,"R_transformation matrix:\n"); for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
printf("(%d %d) ",trans_r[i][j],trans_c[i][j]); fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
} printf("\n"); fprintf(fp,"\n");
} for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{ printf("%3d ",trans_r[i][j]*width+trans_c[i][j]); fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]); } printf("\n"); fprintf(fp,"\n");
}/*-----------------------------------------------------------*//*------------------------------------------------*/ gettimeofday(&start, NULL); r_latin_matrix(trans_r, trans_c, height, width); gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("r_latin used_time = %d Microseconds\n",used_time); fprintf(fp,"r_latin used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/ printf("R_transformation matrix:\n"); fprintf(fp,"R_transformation matrix:\n"); for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
printf("(%d %d) ",trans_r[i][j],trans_c[i][j]); fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
} printf("\n"); fprintf(fp,"\n");
} for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{ printf("%3d ",trans_r[i][j]*width+trans_c[i][j]); fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]); } printf("\n"); fprintf(fp,"\n");
}/*-----------------------------------------------------------*//*------------------------------------------------*/ gettimeofday(&start, NULL); r_graycode_matrix(trans_r, trans_c, height, width); gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("r_graycode used_time = %d Microseconds\n",used_time); fprintf(fp,"r_graycode used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/ printf("R_transformation matrix:\n"); fprintf(fp,"R_transformation matrix:\n"); for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
printf("(%d %d) ",trans_r[i][j],trans_c[i][j]); fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
} printf("\n"); fprintf(fp,"\n");
} for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{ printf("%3d ",trans_r[i][j]*width+trans_c[i][j]); fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]); } printf("\n"); fprintf(fp,"\n");
}/*-----------------------------------------------------------*//*------------------------------------------------*/ gettimeofday(&start, NULL); r_baker_matrix(trans_r, trans_c, height, width); gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("r_baker used_time = %d Microseconds\n",used_time); fprintf(fp,"r_baker used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/ printf("R_transformation matrix:\n"); fprintf(fp,"R_transformation matrix:\n"); for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
printf("(%d %d) ",trans_r[i][j],trans_c[i][j]); fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
} printf("\n"); fprintf(fp,"\n");
} for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{ printf("%3d ",trans_r[i][j]*width+trans_c[i][j]); fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]); } printf("\n"); fprintf(fp,"\n");
}/*-----------------------------------------------------------*//*------------------------------------------------ gettimeofday(&start, NULL); r_sampling_matrix(trans_r, trans_c, height, width); gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("r_sampling used_time = %d Microseconds\n",used_time); fprintf(fp,"r_sampling used_time = %d Microseconds\n",used_time);/*----------------------------------------------------------- printf("R_transformation matrix:\n"); fprintf(fp,"R_transformation matrix:\n"); for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
printf("(%d %d) ",trans_r[i][j],trans_c[i][j]); fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
} printf("\n"); fprintf(fp,"\n");
} for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{ printf("%3d ",trans_r[i][j]*width+trans_c[i][j]); fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]); } printf("\n"); fprintf(fp,"\n");
}/*-----------------------------------------------------------*//*------------------------------------------------*/ gettimeofday(&start, NULL); r_convey_matrix(trans_r, trans_c, height, width); gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("r_convey used_time = %d Microseconds\n",used_time); fprintf(fp,"r_convey used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/ printf("R_transformation matrix:\n"); fprintf(fp,"R_transformation matrix:\n"); for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
printf("(%d %d) ",trans_r[i][j],trans_c[i][j]); fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
} printf("\n"); fprintf(fp,"\n");
} for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{ printf("%3d ",trans_r[i][j]*width+trans_c[i][j]); fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]); } printf("\n"); fprintf(fp,"\n");
}/*-----------------------------------------------------------*//*------------------------------------------------*/ gettimeofday(&start, NULL); r_logistic_matrix(trans_r, trans_c, height, width); gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("r_logistic used_time = %d Microseconds\n",used_time); fprintf(fp,"r_logistic used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/ printf("R_transformation matrix:\n"); fprintf(fp,"R_transformation matrix:\n"); for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
printf("(%d %d) ",trans_r[i][j],trans_c[i][j]); fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
} printf("\n"); fprintf(fp,"\n");
} for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{ printf("%3d ",trans_r[i][j]*width+trans_c[i][j]); fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]); } printf("\n"); fprintf(fp,"\n");
}/*-----------------------------------------------------------*//*------------------------------------------------*/ gettimeofday(&start, NULL); r_random_matrix(trans_r, trans_c, height, width); gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("r_random used_time = %d Microseconds\n",used_time); fprintf(fp,"r_random used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/ printf("R_transformation matrix:\n"); fprintf(fp,"R_transformation matrix:\n"); for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
printf("(%d %d) ",trans_r[i][j],trans_c[i][j]); fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
} printf("\n"); fprintf(fp,"\n");
} for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{ printf("%3d ",trans_r[i][j]*width+trans_c[i][j]); fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]); } printf("\n"); fprintf(fp,"\n");
}/*-----------------------------------------------------------*//*------------------------------------------------*/ int k; double pix; Imrect *srcIm,*destIm,*tmpIm; srcIm = im_alloc( height, width, NULL, double_v ); destIm = im_alloc( height, width, NULL, double_v );int g;for( g = 1; g <= SCRAM_n; g++){ gettimeofday(&start, NULL); for( k = 0; k < g; k++)
{ for (i = 0; i < height ; i++)
{
for (j = 0; j< width ; j++)
{ IM_PIX_GET(srcIm, i, j, pix);
IM_PIX_SET(destIm, trans_r[i][j], trans_c[i][j], pix);
}
}
tmpIm = srcIm;
srcIm = destIm;
destIm = tmpIm; } gettimeofday(&end, NULL); used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec); printf("\niterate %d times: used_time = %d Microseconds\n",g,used_time); fprintf(fp,"\niterate %d times: used_time = %d Microseconds\n",g,used_time);} fclose(fp); im_free(srcIm); im_free(destIm);/*------------------------------------------------*/ free_int_matrix(trans_r, height);
free_int_matrix(trans_c, height);}/********** Tool creation **********/
void time_tool(int x, int y)
{
static void *tool = NULL; if (tool)
{
tw_show_tool(tool);
return;
}
tool = (void *)tw_tool("show time", x, y);
/* Initialise pathname from environment variable (or #define) */ tw_iglobal("Scrambling times = ", &SCRAM_n, 5); tw_newrow(); tw_iglobal("height = ", &HEIGHT, 5); tw_iglobal("width = ", &WIDTH, 5); tw_newrow(); tw_button("show time", show_time,NULL); tw_button("R_show time", R_show_time,NULL); tw_newrow();
tw_end_tool();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -