#include #include #include #define N 16 /* Number of variables used for derivation of test statistics */ struct tmpo { char num[10]; }; struct tmpo tmp[6],tmp2[3]; FILE *fopen(),*data_r1,*data_r2,*data_w; char *f_name[3],*f_name2[2],cc,x[3]; int c,i,j; double CX[3],AX[3],KapX[3],K_hat[3], J_u[3],J_p[3],Ja_u[3],Ja_p[3], R_u[3],R_p[3],Tau_u[3],Tau_u_sp[3],Tau_p[3],Tau_p_sp[3], Var_u[3],Var_p[3], Test_CX,Test_AX,Test_Kap_u,Test_Kap_p, Test_R_u,Test_R_p, Test_J_u,Test_Ja_u,Test_J_p,Test_Ja_p, buf1[N],buf2[N]; main() { void File_Name(),Input_File(),Input_Data(),See_Data(), Test(),Output2file(); File_Name(); Input_File(); Input_Data(); printf(" Do you want to see input data? (y/n) : "); gets(x); printf("\n\n"); if(x[0]=='y') See_Data(); printf("\n Test Statistics --> press Key "); gets(x); printf("\n\n"); Test(); printf(" Do you want to output the result to file? (y/n) : "); gets(x); printf("\n\n"); if(x[0] == 'y'){ Output2file(); printf(" Save data -----> %s \n\n",f_name[2]); } } /*--------------Begin of Func. File_Name()-----------------*/ void File_Name() { printf(" \n Length of filename should be TWO"); printf(" \n Input filename of error matrix, (e.g., X1) : "); /* printf("\n Input X [X_x] : "); */ gets(tmp[0].num); printf(" \n Length of filename should be TWO"); printf(" \n Input filename of error matrix, (e.g., X2) : "); /* printf("\n Input X [X_y] : "); */ gets(tmp[1].num); printf("\n Input filename of loss matrix, (e.g., ga) : "); gets(tmp[2].num); printf("\n"); for(i=0;i<10;i++) tmp[3].num[i]=tmp[0].num[i]; for(i=0;i<10;i++) tmp[4].num[i]=tmp[1].num[i]; for(i=0;i<10;i++) tmp[5].num[i]=tmp[2].num[i]; for(i=0;i<10;i++) tmp2[0].num[i]=tmp[0].num[i]; for(i=0;i<10;i++) tmp2[1].num[i]=tmp[1].num[i]; for(i=0;i<10;i++) tmp2[2].num[i]=tmp[2].num[i]; f_name[0]=strcat(tmp[0].num,tmp[2].num); f_name[0]=strcat(f_name[0],".acc"); f_name[1]=strcat(tmp[1].num,tmp[2].num); f_name[1]=strcat(f_name[1],".acc"); f_name[2]=strcat(tmp2[0].num,"-"); f_name[2]=strcat(f_name[2],tmp2[1].num); f_name[2]=strcat(f_name[2],"-"); f_name[2]=strcat(f_name[2],tmp2[2].num); f_name[2]=strcat(f_name[2],".test"); printf(" file1 : %s\n file2 : %s \n\n",f_name[0],f_name[1]); return; } /*--------------End of Func. File_Name()-----------------*/ /*--------------Begin of Func. Input_File()-----------------*/ void Input_File() { data_r1=fopen(f_name[0],"r"); i=0; while(feof(data_r1)==0){ while ( ( c = fgetc(data_r1) ) == ' ' || c == '\t' ); ungetc(c,data_r1); while((c=fgetc(data_r1)) == '#'){ while ( ( c = fgetc(data_r1) ) == ' ' || c == '\t' ); while ( ( c = fgetc(data_r1) ) != '#'); } if(isalpha(c) != 0){ while((c=fgetc(data_r1)) != '='); fscanf(data_r1,"%lf",&buf1[i]); i++; } } data_r2=fopen(f_name[1],"r"); i=0; while(feof(data_r2)==0){ while ( ( c = fgetc(data_r2) ) == ' ' || c == '\t' ); ungetc(c,data_r2); while((c=fgetc(data_r2)) == '#'){ while ( ( c = fgetc(data_r2) ) == ' ' || c == '\t' ); while ( ( c = fgetc(data_r2) ) != '#'); } if(isalpha(c) != 0){ while((c=fgetc(data_r2)) != '='); fscanf(data_r2,"%lf",&buf2[i]); i++; } } return; } /*--------------End of Func. Input_File()-----------------*/ /*--------------Begin of Func. Input_Data()-----------------*/ void Input_Data() { CX[1] = buf1[0]; /* C(X) */ AX[1] = buf1[1]; /* A(X) */ KapX[1] = buf1[2]; /* Kappa(X) */ K_hat[1] = buf1[3]; /* K_hat */ J_p[1] = buf1[4]; /* J_pro(X) */ Ja_p[1] = buf1[5]; /* J_pro*(X) */ R_p[1] = buf1[6]; /* R(X|Gamma) */ Tau_p[1] = buf1[7]; /* tau^2 */ Tau_p_sp[1] = buf1[8]; /* tau^2 with loss matrix whose diagonal elements are 0 and others are 1 */ Var_p[1] = buf1[9]; /* sigma^2 (Var) */ J_u[1] = buf1[10]; /* J_uni(X) */ Ja_u[1] = buf1[11]; /* J_uni*(X) */ R_u[1] = buf1[12]; /* R(X|Gamma) */ Tau_u[1] = buf1[13]; /* tau^2(X) */ Tau_u_sp[1] = buf1[14]; /* tau^2 with loss matrix whose diagonal elements are 0 and others are 1 */ Var_u[1] = buf1[15]; /* sigma^2 (Var) */ CX[2] = buf2[0]; AX[2] = buf2[1]; KapX[2] = buf2[2]; K_hat[2] = buf2[3]; J_p[2] = buf2[4]; Ja_p[2] = buf2[5]; R_p[2] = buf2[6]; Tau_p[2] = buf2[7]; Tau_p_sp[2] = buf2[8]; Var_p[2] = buf2[9]; J_u[2] = buf2[10]; Ja_u[2] = buf2[11]; R_u[2] = buf2[12]; Tau_u[2] = buf2[13]; Tau_u_sp[2] = buf2[14]; Var_u[2]= buf2[15]; return; } /*--------------End of Func. Input_Data()-----------------*/ /*--------------Begin of Func. See_Data()-----------------*/ void See_Data() { for(i=1;i<=2;i++){ printf(" File : %s\n\n",f_name[i-1]); printf(" ========================================\n"); printf(" %s , %s \n" ,tmp[2+i],tmp[5]); printf(" ========================================\n"); printf(" C(X)=\t\t\t%9.4lf\n",CX[i]); printf(" A(X)=\t\t\t%9.4lf\n",AX[i]); printf(" Kappa(X)=\t\t%9.4lf\n",KapX[i]); printf(" K_hat=\t\t\t%9.4lf\n",K_hat[i]); printf(" ----------------------------------------\n"); printf(" proportional prob. \n"); printf(" ----------------------------------------\n"); printf(" Jpro=\t\t\t%9.4lf\n",J_p[i]); printf(" Jpro*=\t\t\t%9.4lf\n",Ja_p[i]); printf(" R(%s|%s)=\t\t%9.4lf\n",tmp[2+i],tmp[5],R_p[i]); printf(" Tau^2(%s|%s)=\t\t%9.4lf\n",tmp[2+i],tmp[5],Tau_p[i]); printf(" Var(%s)=\t\t\t%9.4lf\n",tmp[2+i],Var_p[i]); printf(" ----------------------------------------\n"); printf(" uniform prob. \n"); printf(" ----------------------------------------\n"); printf(" Juni=\t\t\t%9.4lf\n",J_u[i]); printf(" Juni*=\t\t\t%9.4lf\n",Ja_u[i]); printf(" R(%s|%s)=\t\t%9.4lf\n",tmp[2+i],tmp[5],R_u[i]); printf(" tau^2(%s|%s)=\t\t%9.4lf\n",tmp[2+i],tmp[5],Tau_u[i]); printf(" Var(%s)=\t\t\t%9.4lf\n",tmp[2+i],Var_u[i]); printf(" ----------------------------------------\n"); printf("\n\n\n"); if(i!=2){ printf(" Press Key "); gets(x); printf("\n\n"); } } } /*--------------End of Func. See_Data()-----------------*/ /*--------------Begin of Func. Test()-----------------*/ void Test() { float signitest(); Test_CX = signitest(CX[1],CX[2],Tau_p_sp[1],Tau_p_sp[2]); Test_AX = signitest(AX[1],AX[2],Tau_u_sp[1],Tau_u_sp[2]); Test_Kap_p = signitest(K_hat[1],K_hat[2],Var_p[1],Var_p[2]); Test_Kap_u = signitest(K_hat[1],K_hat[2],Var_u[1],Var_u[2]); Test_R_p = signitest(R_p[1],R_p[2],Tau_p[1],Tau_p[2]); Test_R_u = signitest(R_u[1],R_u[2],Tau_u[1],Tau_u[2]); Test_J_p = signitest(log(J_p[1]),log(J_p[2]),Var_p[1],Var_p[2]); Test_Ja_p = signitest(log(Ja_p[1]),log(Ja_p[2]),Var_p[1],Var_p[2]); Test_J_u = signitest(log(J_u[1]),log(J_u[2]),Var_u[1],Var_u[2]); Test_Ja_u = signitest(log(Ja_u[1]),log(Ja_u[2]),Var_u[1],Var_u[2]); printf(" ========================================\n"); printf(" Test Statistics %s, %s , %s \n" ,tmp[3],tmp[4],tmp[5]); printf(" ========================================\n"); printf(" C(X)=\t\t\t%9.4lf\n",Test_CX); printf(" A(X)=\t\t\t%9.4lf\n",Test_AX); printf("\n"); printf(" ----------------------------------------\n"); printf(" proportional prob. \n"); printf(" ----------------------------------------\n"); printf(" Kapper(X)=\t\t%9.4lf\n",Test_Kap_p); printf(" Jpro=\t\t\t%9.4lf\n",Test_J_p); printf(" Jpro*=\t\t\t%9.4lf\n",Test_Ja_p); printf(" R(X|%s)=\t\t\t%9.4lf\n",tmp[5],Test_R_p); printf(" \n"); printf(" ----------------------------------------\n"); printf(" uniform prob. \n"); printf(" ----------------------------------------\n"); printf(" Kapper(X)=\t\t%9.4lf\n",Test_Kap_u); printf(" Juni=\t\t\t%9.4lf\n",Test_J_u); printf(" Juni*=\t\t\t%9.4lf\n",Test_Ja_u); printf(" R(X|%s)=\t\t\t%9.4lf\n",tmp[5],Test_R_u); printf(" ----------------------------------------\n"); printf(" \n"); return; } /*--------------End of Func. Test()-----------------*/ /*--------------Begin of Func. signitest()-----------------*/ float signitest(M1,M2,V1,V2) float M1,M2,V1,V2; { float y; y=(M1-M2)/sqrt(V1+V2); return(y); } /*--------------End of Func. signitest()-----------------*/ /*--------------Begin of Func. Output2file()-----------------*/ void Output2file() { data_w=fopen(f_name[2],"w+"); fprintf(data_w," ========================================\n"); fprintf(data_w," Test Statistics %s, %s , %s \n" ,tmp[3],tmp[4],tmp[5]); fprintf(data_w," ========================================\n"); fprintf(data_w," C(X)=\t\t\t%9.4lf\n",Test_CX); fprintf(data_w," A(X)=\t\t\t%9.4lf\n",Test_AX); fprintf(data_w,"\n"); fprintf(data_w," =--------------------------------------=\n"); fprintf(data_w," proportional prob. \n"); fprintf(data_w," =--------------------------------------=\n"); fprintf(data_w," Kapper(X)=\t\t%9.4lf\n",Test_Kap_p); fprintf(data_w," Jpro=\t\t\t%9.4lf\n",Test_J_p); fprintf(data_w," Jpro*=\t\t\t%9.4lf\n",Test_Ja_p); fprintf(data_w," R(X|%s)=\t\t\t%9.4lf\n",tmp[5],Test_R_p); fprintf(data_w," \n"); fprintf(data_w," =--------------------------------------=\n"); fprintf(data_w," uniform prob. \n"); fprintf(data_w," =--------------------------------------=\n"); fprintf(data_w," Kapper(X)=\t\t%9.4lf\n",Test_Kap_u); fprintf(data_w," Juni=\t\t\t%9.4lf\n",Test_J_u); fprintf(data_w," Juni*=\t\t\t%9.4lf\n",Test_Ja_u); fprintf(data_w," R(X|%s)=\t\t\t%9.4lf\n",tmp[5],Test_R_u); fprintf(data_w," =--------------------------------------=\n"); fprintf(data_w," \n"); return; } /*--------------End of Func. Output2file()-----------------*/