はじめまして。
visual studio2012のコマンドプロンプトを用いて、いくつかのC言語のソースをコンパイルしようとしています。
すると、次のようなエラーが発生します。
Feeddown_v2.obj : error LNK2019: 未解決の外部シンボル ___report_rangecheckfailure
が関数 _OUTPUT_STATS で参照されました。
Feeddown_v2.exe : fatal error LNK1120: 1 件の未解決の外部参照
Feeddown_v2.c内の関数_OUTPUT_STATSの中には___report_rangecheckfailureというものはありません。
また、visual studio 2010でこのプログラムを使用していた際には、問題なくコンパイルできていました。
visual studio2010から2012にバージョンアップをした後にこのようなエラーが発生しました。
いろいろ調べていましたがなかなか自力で解決できません。
よろしくお願いいたします。
LNK2019:未解決の外部シンボル__report_rangecheckfailure
Re: LNK2019:未解決の外部シンボル__report_rangecheckfailure
引数の型は定義と呼び出しで一致しているでしょうか?
著作権や業務上の秘密などの関係で、ソースコードを提示するのは難しいでしょうか?
著作権や業務上の秘密などの関係で、ソースコードを提示するのは難しいでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: LNK2019:未解決の外部シンボル__report_rangecheckfailure
とりあえずリビルドをしてみてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: LNK2019:未解決の外部シンボル__report_rangecheckfailure
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: LNK2019:未解決の外部シンボル__report_rangecheckfailure
OUTPUT_STATS関数は以下の通りです。
void OUTPUT_STATS(void){
int l,m,n,o,p,q;
double B_AVERAGE[Ndim+3],B_STDEVA[Ndim+3],B_VARPA[Ndim+3];//平均、標準偏差、分散
double A_AVERAGE[Ndim+3],A_STDEVA[Ndim+3],A_VARPA[Ndim+3];
double BN_AVERAGE[Ndim+3],BN_STDEVA[Ndim+3],BN_VARPA[Ndim+3];//規格化用
double AN_AVERAGE[Ndim+3],AN_STDEVA[Ndim+3],AN_VARPA[Ndim+3];
double Bsum=0,Asum=0;/*平均用*/
double Bvsum=0,Avsum=0;/*分散用*/
double BNsum=0,ANsum=0;/*平均用*/
double BNvsum=0,ANvsum=0;/*分散用*/
int N;
N=iflistMAX; //要素数
/**********フィードダウンしたデータ*********/
for(o=0;o<2;o++){
if(o==1){
for(p=0;p<Ndim+3;p++){
for(q=0;q<iflist;q++){
B_n[p][q]=B_n1[p][q];
A_n[p][q]=A_n1[p][q];
}
}
}
/********************************************/
for(l=0;l<Ndim+3;l++){
Bsum=0;Asum=0;
BNsum=0;ANsum=0;
Bvsum=0;Avsum=0;
BNvsum=0;ANvsum=0;
for(m=0;m<N;m++){
Bsum+=B_n[l][m];
Asum+=A_n[l][m];
BNsum+=B_n[l][m]/B_n[1][m]*Nconstant;
ANsum+=A_n[l][m]/B_n[1][m]*Nconstant;
}
B_AVERAGE[l]=Bsum/N;
A_AVERAGE[l]=Asum/N;
BN_AVERAGE[l]=BNsum/N;
AN_AVERAGE[l]=ANsum/N;
for(n=0;n<N;n++){
Bvsum+=pow((B_AVERAGE[l]-B_n[l][n]),2);
Avsum+=pow((A_AVERAGE[l]-A_n[l][n]),2);
BNvsum+=pow((BN_AVERAGE[l]-(B_n[l][n]/B_n[1][n]*Nconstant)),2);
ANvsum+=pow((AN_AVERAGE[l]-(A_n[l][n]/B_n[1][n]*Nconstant)),2);
}
B_VARPA[l]=Bvsum/N;
A_VARPA[l]=Avsum/N;
BN_VARPA[l]=BNvsum/N;
AN_VARPA[l]=ANvsum/N;
B_STDEVA[l]=sqrt(B_VARPA[l]);
A_STDEVA[l]=sqrt(A_VARPA[l]);
BN_STDEVA[l]=sqrt(BN_VARPA[l]);
AN_STDEVA[l]=sqrt(AN_VARPA[l]);
}
/*測定値データ 作成*/
/*ノーマル*/
if(o==0){
strcpy(temp_2,dirname_origin);
strcat(temp_2,"-data-Mesured.txt");
//printf("%s\n",temp_2);
if( (out2 = fopen(temp_2,"w")) == NULL ){
// if( (out2 = fopen("stats-data-Mesured.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 4){
strcpy(temp_2,dirname_origin);
strcat(temp_2,"-feeddown-4-data-Mesured.txt");
//printf("%s\n",temp_2);
if( (out2 = fopen(temp_2,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-4-data-Mesured.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 6){
strcpy(temp_2,dirname_origin);
strcat(temp_2,"-feeddown-6-data-Mesured.txt");
//printf("%s\n",temp_2);
if( (out2 = fopen(temp_2,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-6-data-Mesured.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}
//2012/09/21大竹追加ここから
fprintf(out2,"File_name\t\t");
for(l=0;l<N;l++){
fprintf(out , "%s\t",FILESlist[l]);
}
fprintf(out2,"\n");
fprintf(out2,"R-_\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[2]);
}
fprintf(out2,"\n");
fprintf(out2,"測定ブロック\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
strcpy(temp_1,str[3]);
split(temp_1, "_", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[0]);
}
fprintf(out2,"\n");
fprintf(out2,"File名\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
strcpy(temp_1,str[3]);
split(temp_1, "_", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[1]);
}
fprintf(out2,"\n");
fprintf(out2,"測定No\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
strcpy(temp_1,str[3]);
split(temp_1, "_", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[2]);
}
fprintf(out2,"\n");
fprintf(out2,"time\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[4]);
}
fprintf(out2,"\n");
fprintf(out2,"ノーマル成分 測定データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",B_n[l][m]);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",B_AVERAGE[l],B_STDEVA[l],B_VARPA[l]);
}
fprintf(out2,"\n\nスキュー成分 測定データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",A_n[l][m]);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",A_AVERAGE[l],A_STDEVA[l],A_VARPA[l]);
}
//printf("test\n");
fclose(out2);
printf("%sに結果を出力しました\n",temp_2);
/* if(o==1){
printf("stats-feeddown-%d-data-Mesuredに結果を出力しました\n",fdN);
}else{
puts("stats-data-Mesuredに結果を出力しました\n");
}
*/
/*規格化データ作成*/
if(o==0){
strcpy(temp_1,dirname_origin);
strcat(temp_1,"-data-Normalized.txt");
//printf("%s\n",temp_1);
if( (out2 = fopen(temp_1,"w")) == NULL ){
// if( (out2 = fopen("stats-data-Normalized.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 4){
strcpy(temp_1,dirname_origin);
strcat(temp_1,"-feeddown-4-data-Normalized.txt");
//printf("%s\n",temp_1);
if( (out2 = fopen(temp_1,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-4-data-Normalized.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 6){
strcpy(temp_1,dirname_origin);
strcat(temp_1,"-feeddown-6-data-Normalized.txt");
//printf("%s\n",temp_1);
if( (out2 = fopen(temp_1,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-6-data-Normalized.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}
fprintf(out2,"\n\nノーマル成分 規格化データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",B_n[l][m]/B_n[1][m]*Nconstant);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",BN_AVERAGE[l],BN_STDEVA[l],BN_VARPA[l]);
}
fprintf(out2,"\n\nスキュー成分 規格化データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",A_n[l][m]/B_n[1][m]*Nconstant);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",AN_AVERAGE[l],AN_STDEVA[l],AN_VARPA[l]);
}
fclose(out2);
printf("%sに結果を出力しました\n",temp_1);
/* if(o==1){
printf("stats-feeddown-%d-data-Noarmalizedに結果を出力しました\n",fdN);
}else{
printf("%sに結果を出力しました\n",buf1);
}
*/ }
}
あと
「VS2012のプロジェクトにアップグレードする」
「Buffer Security Check(/GS)をオフにする」
とありますが、具体的にはどうすればいいのでしょうか・・・?
void OUTPUT_STATS(void){
int l,m,n,o,p,q;
double B_AVERAGE[Ndim+3],B_STDEVA[Ndim+3],B_VARPA[Ndim+3];//平均、標準偏差、分散
double A_AVERAGE[Ndim+3],A_STDEVA[Ndim+3],A_VARPA[Ndim+3];
double BN_AVERAGE[Ndim+3],BN_STDEVA[Ndim+3],BN_VARPA[Ndim+3];//規格化用
double AN_AVERAGE[Ndim+3],AN_STDEVA[Ndim+3],AN_VARPA[Ndim+3];
double Bsum=0,Asum=0;/*平均用*/
double Bvsum=0,Avsum=0;/*分散用*/
double BNsum=0,ANsum=0;/*平均用*/
double BNvsum=0,ANvsum=0;/*分散用*/
int N;
N=iflistMAX; //要素数
/**********フィードダウンしたデータ*********/
for(o=0;o<2;o++){
if(o==1){
for(p=0;p<Ndim+3;p++){
for(q=0;q<iflist;q++){
B_n[p][q]=B_n1[p][q];
A_n[p][q]=A_n1[p][q];
}
}
}
/********************************************/
for(l=0;l<Ndim+3;l++){
Bsum=0;Asum=0;
BNsum=0;ANsum=0;
Bvsum=0;Avsum=0;
BNvsum=0;ANvsum=0;
for(m=0;m<N;m++){
Bsum+=B_n[l][m];
Asum+=A_n[l][m];
BNsum+=B_n[l][m]/B_n[1][m]*Nconstant;
ANsum+=A_n[l][m]/B_n[1][m]*Nconstant;
}
B_AVERAGE[l]=Bsum/N;
A_AVERAGE[l]=Asum/N;
BN_AVERAGE[l]=BNsum/N;
AN_AVERAGE[l]=ANsum/N;
for(n=0;n<N;n++){
Bvsum+=pow((B_AVERAGE[l]-B_n[l][n]),2);
Avsum+=pow((A_AVERAGE[l]-A_n[l][n]),2);
BNvsum+=pow((BN_AVERAGE[l]-(B_n[l][n]/B_n[1][n]*Nconstant)),2);
ANvsum+=pow((AN_AVERAGE[l]-(A_n[l][n]/B_n[1][n]*Nconstant)),2);
}
B_VARPA[l]=Bvsum/N;
A_VARPA[l]=Avsum/N;
BN_VARPA[l]=BNvsum/N;
AN_VARPA[l]=ANvsum/N;
B_STDEVA[l]=sqrt(B_VARPA[l]);
A_STDEVA[l]=sqrt(A_VARPA[l]);
BN_STDEVA[l]=sqrt(BN_VARPA[l]);
AN_STDEVA[l]=sqrt(AN_VARPA[l]);
}
/*測定値データ 作成*/
/*ノーマル*/
if(o==0){
strcpy(temp_2,dirname_origin);
strcat(temp_2,"-data-Mesured.txt");
//printf("%s\n",temp_2);
if( (out2 = fopen(temp_2,"w")) == NULL ){
// if( (out2 = fopen("stats-data-Mesured.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 4){
strcpy(temp_2,dirname_origin);
strcat(temp_2,"-feeddown-4-data-Mesured.txt");
//printf("%s\n",temp_2);
if( (out2 = fopen(temp_2,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-4-data-Mesured.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 6){
strcpy(temp_2,dirname_origin);
strcat(temp_2,"-feeddown-6-data-Mesured.txt");
//printf("%s\n",temp_2);
if( (out2 = fopen(temp_2,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-6-data-Mesured.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}
//2012/09/21大竹追加ここから
fprintf(out2,"File_name\t\t");
for(l=0;l<N;l++){
fprintf(out , "%s\t",FILESlist[l]);
}
fprintf(out2,"\n");
fprintf(out2,"R-_\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[2]);
}
fprintf(out2,"\n");
fprintf(out2,"測定ブロック\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
strcpy(temp_1,str[3]);
split(temp_1, "_", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[0]);
}
fprintf(out2,"\n");
fprintf(out2,"File名\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
strcpy(temp_1,str[3]);
split(temp_1, "_", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[1]);
}
fprintf(out2,"\n");
fprintf(out2,"測定No\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
strcpy(temp_1,str[3]);
split(temp_1, "_", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[2]);
}
fprintf(out2,"\n");
fprintf(out2,"time\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[4]);
}
fprintf(out2,"\n");
fprintf(out2,"ノーマル成分 測定データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",B_n[l][m]);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",B_AVERAGE[l],B_STDEVA[l],B_VARPA[l]);
}
fprintf(out2,"\n\nスキュー成分 測定データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",A_n[l][m]);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",A_AVERAGE[l],A_STDEVA[l],A_VARPA[l]);
}
//printf("test\n");
fclose(out2);
printf("%sに結果を出力しました\n",temp_2);
/* if(o==1){
printf("stats-feeddown-%d-data-Mesuredに結果を出力しました\n",fdN);
}else{
puts("stats-data-Mesuredに結果を出力しました\n");
}
*/
/*規格化データ作成*/
if(o==0){
strcpy(temp_1,dirname_origin);
strcat(temp_1,"-data-Normalized.txt");
//printf("%s\n",temp_1);
if( (out2 = fopen(temp_1,"w")) == NULL ){
// if( (out2 = fopen("stats-data-Normalized.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 4){
strcpy(temp_1,dirname_origin);
strcat(temp_1,"-feeddown-4-data-Normalized.txt");
//printf("%s\n",temp_1);
if( (out2 = fopen(temp_1,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-4-data-Normalized.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 6){
strcpy(temp_1,dirname_origin);
strcat(temp_1,"-feeddown-6-data-Normalized.txt");
//printf("%s\n",temp_1);
if( (out2 = fopen(temp_1,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-6-data-Normalized.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}
fprintf(out2,"\n\nノーマル成分 規格化データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",B_n[l][m]/B_n[1][m]*Nconstant);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",BN_AVERAGE[l],BN_STDEVA[l],BN_VARPA[l]);
}
fprintf(out2,"\n\nスキュー成分 規格化データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",A_n[l][m]/B_n[1][m]*Nconstant);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",AN_AVERAGE[l],AN_STDEVA[l],AN_VARPA[l]);
}
fclose(out2);
printf("%sに結果を出力しました\n",temp_1);
/* if(o==1){
printf("stats-feeddown-%d-data-Noarmalizedに結果を出力しました\n",fdN);
}else{
printf("%sに結果を出力しました\n",buf1);
}
*/ }
}
あと
「VS2012のプロジェクトにアップグレードする」
「Buffer Security Check(/GS)をオフにする」
とありますが、具体的にはどうすればいいのでしょうか・・・?
Re: LNK2019:未解決の外部シンボル__report_rangecheckfailure
コードを提示するときは、BBcodeを有効にした状態でcodeタグで囲み、
かつきちんとインデントをしていただけると、見やすくて助かります。
後者は「Configuration Properties → C/C++ → Code Generation」というメニューを選んで「Buffer Security Check」を「No (/GS-)」にする
らしいですね。
かつきちんとインデントをしていただけると、見やすくて助かります。
さっきの出典によると、前者は「Project → Upgrade VC++ projects…」というメニューを選ぶ、nota さんが書きました:あと
「VS2012のプロジェクトにアップグレードする」
「Buffer Security Check(/GS)をオフにする」
とありますが、具体的にはどうすればいいのでしょうか・・・?
後者は「Configuration Properties → C/C++ → Code Generation」というメニューを選んで「Buffer Security Check」を「No (/GS-)」にする
らしいですね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: LNK2019:未解決の外部シンボル__report_rangecheckfailure
void OUTPUT_STATS(void){
int l,m,n,o,p,q;
double B_AVERAGE[Ndim+3],B_STDEVA[Ndim+3],B_VARPA[Ndim+3];//平均、標準偏差、分散
double A_AVERAGE[Ndim+3],A_STDEVA[Ndim+3],A_VARPA[Ndim+3];
double BN_AVERAGE[Ndim+3],BN_STDEVA[Ndim+3],BN_VARPA[Ndim+3];//規格化用
double AN_AVERAGE[Ndim+3],AN_STDEVA[Ndim+3],AN_VARPA[Ndim+3];
double Bsum=0,Asum=0;/*平均用*/
double Bvsum=0,Avsum=0;/*分散用*/
double BNsum=0,ANsum=0;/*平均用*/
double BNvsum=0,ANvsum=0;/*分散用*/
int N;
N=iflistMAX; //要素数
/**********フィードダウンしたデータ*********/
for(o=0;o<2;o++){
if(o==1){
for(p=0;p<Ndim+3;p++){
for(q=0;q<iflist;q++){
B_n[p][q]=B_n1[p][q];
A_n[p][q]=A_n1[p][q];
}
}
}
/********************************************/
for(l=0;l<Ndim+3;l++){
Bsum=0;Asum=0;
BNsum=0;ANsum=0;
Bvsum=0;Avsum=0;
BNvsum=0;ANvsum=0;
for(m=0;m<N;m++){
Bsum+=B_n[l][m];
Asum+=A_n[l][m];
BNsum+=B_n[l][m]/B_n[1][m]*Nconstant;
ANsum+=A_n[l][m]/B_n[1][m]*Nconstant;
}
B_AVERAGE[l]=Bsum/N;
A_AVERAGE[l]=Asum/N;
BN_AVERAGE[l]=BNsum/N;
AN_AVERAGE[l]=ANsum/N;
for(n=0;n<N;n++){
Bvsum+=pow((B_AVERAGE[l]-B_n[l][n]),2);
Avsum+=pow((A_AVERAGE[l]-A_n[l][n]),2);
BNvsum+=pow((BN_AVERAGE[l]-(B_n[l][n]/B_n[1][n]*Nconstant)),2);
ANvsum+=pow((AN_AVERAGE[l]-(A_n[l][n]/B_n[1][n]*Nconstant)),2);
}
B_VARPA[l]=Bvsum/N;
A_VARPA[l]=Avsum/N;
BN_VARPA[l]=BNvsum/N;
AN_VARPA[l]=ANvsum/N;
B_STDEVA[l]=sqrt(B_VARPA[l]);
A_STDEVA[l]=sqrt(A_VARPA[l]);
BN_STDEVA[l]=sqrt(BN_VARPA[l]);
AN_STDEVA[l]=sqrt(AN_VARPA[l]);
}
/*測定値データ 作成*/
/*ノーマル*/
if(o==0){
strcpy(temp_2,dirname_origin);
strcat(temp_2,"-data-Mesured.txt");
//printf("%s\n",temp_2);
if( (out2 = fopen(temp_2,"w")) == NULL ){
// if( (out2 = fopen("stats-data-Mesured.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 4){
strcpy(temp_2,dirname_origin);
strcat(temp_2,"-feeddown-4-data-Mesured.txt");
//printf("%s\n",temp_2);
if( (out2 = fopen(temp_2,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-4-data-Mesured.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 6){
strcpy(temp_2,dirname_origin);
strcat(temp_2,"-feeddown-6-data-Mesured.txt");
//printf("%s\n",temp_2);
if( (out2 = fopen(temp_2,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-6-data-Mesured.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}
//2012/09/21大竹追加ここから
fprintf(out2,"File_name\t\t");
for(l=0;l<N;l++){
fprintf(out , "%s\t",FILESlist[l]);
}
fprintf(out2,"\n");
fprintf(out2,"R-_\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[2]);
}
fprintf(out2,"\n");
fprintf(out2,"測定ブロック\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
strcpy(temp_1,str[3]);
split(temp_1, "_", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[0]);
}
fprintf(out2,"\n");
fprintf(out2,"File名\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
strcpy(temp_1,str[3]);
split(temp_1, "_", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[1]);
}
fprintf(out2,"\n");
fprintf(out2,"測定No\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
strcpy(temp_1,str[3]);
split(temp_1, "_", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[2]);
}
fprintf(out2,"\n");
fprintf(out2,"time\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[4]);
}
fprintf(out2,"\n");
fprintf(out2,"ノーマル成分 測定データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",B_n[l][m]);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",B_AVERAGE[l],B_STDEVA[l],B_VARPA[l]);
}
fprintf(out2,"\n\nスキュー成分 測定データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",A_n[l][m]);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",A_AVERAGE[l],A_STDEVA[l],A_VARPA[l]);
}
//printf("test\n");
fclose(out2);
printf("%sに結果を出力しました\n",temp_2);
/* if(o==1){
printf("stats-feeddown-%d-data-Mesuredに結果を出力しました\n",fdN);
}else{
puts("stats-data-Mesuredに結果を出力しました\n");
}
*/
/*規格化データ作成*/
if(o==0){
strcpy(temp_1,dirname_origin);
strcat(temp_1,"-data-Normalized.txt");
//printf("%s\n",temp_1);
if( (out2 = fopen(temp_1,"w")) == NULL ){
// if( (out2 = fopen("stats-data-Normalized.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 4){
strcpy(temp_1,dirname_origin);
strcat(temp_1,"-feeddown-4-data-Normalized.txt");
//printf("%s\n",temp_1);
if( (out2 = fopen(temp_1,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-4-data-Normalized.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 6){
strcpy(temp_1,dirname_origin);
strcat(temp_1,"-feeddown-6-data-Normalized.txt");
//printf("%s\n",temp_1);
if( (out2 = fopen(temp_1,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-6-data-Normalized.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}
fprintf(out2,"\n\nノーマル成分 規格化データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",B_n[l][m]/B_n[1][m]*Nconstant);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",BN_AVERAGE[l],BN_STDEVA[l],BN_VARPA[l]);
}
fprintf(out2,"\n\nスキュー成分 規格化データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",A_n[l][m]/B_n[1][m]*Nconstant);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",AN_AVERAGE[l],AN_STDEVA[l],AN_VARPA[l]);
}
fclose(out2);
printf("%sに結果を出力しました\n",temp_1);
/* if(o==1){
printf("stats-feeddown-%d-data-Noarmalizedに結果を出力しました\n",fdN);
}else{
printf("%sに結果を出力しました\n",buf1);
}
*/ }
}
int l,m,n,o,p,q;
double B_AVERAGE[Ndim+3],B_STDEVA[Ndim+3],B_VARPA[Ndim+3];//平均、標準偏差、分散
double A_AVERAGE[Ndim+3],A_STDEVA[Ndim+3],A_VARPA[Ndim+3];
double BN_AVERAGE[Ndim+3],BN_STDEVA[Ndim+3],BN_VARPA[Ndim+3];//規格化用
double AN_AVERAGE[Ndim+3],AN_STDEVA[Ndim+3],AN_VARPA[Ndim+3];
double Bsum=0,Asum=0;/*平均用*/
double Bvsum=0,Avsum=0;/*分散用*/
double BNsum=0,ANsum=0;/*平均用*/
double BNvsum=0,ANvsum=0;/*分散用*/
int N;
N=iflistMAX; //要素数
/**********フィードダウンしたデータ*********/
for(o=0;o<2;o++){
if(o==1){
for(p=0;p<Ndim+3;p++){
for(q=0;q<iflist;q++){
B_n[p][q]=B_n1[p][q];
A_n[p][q]=A_n1[p][q];
}
}
}
/********************************************/
for(l=0;l<Ndim+3;l++){
Bsum=0;Asum=0;
BNsum=0;ANsum=0;
Bvsum=0;Avsum=0;
BNvsum=0;ANvsum=0;
for(m=0;m<N;m++){
Bsum+=B_n[l][m];
Asum+=A_n[l][m];
BNsum+=B_n[l][m]/B_n[1][m]*Nconstant;
ANsum+=A_n[l][m]/B_n[1][m]*Nconstant;
}
B_AVERAGE[l]=Bsum/N;
A_AVERAGE[l]=Asum/N;
BN_AVERAGE[l]=BNsum/N;
AN_AVERAGE[l]=ANsum/N;
for(n=0;n<N;n++){
Bvsum+=pow((B_AVERAGE[l]-B_n[l][n]),2);
Avsum+=pow((A_AVERAGE[l]-A_n[l][n]),2);
BNvsum+=pow((BN_AVERAGE[l]-(B_n[l][n]/B_n[1][n]*Nconstant)),2);
ANvsum+=pow((AN_AVERAGE[l]-(A_n[l][n]/B_n[1][n]*Nconstant)),2);
}
B_VARPA[l]=Bvsum/N;
A_VARPA[l]=Avsum/N;
BN_VARPA[l]=BNvsum/N;
AN_VARPA[l]=ANvsum/N;
B_STDEVA[l]=sqrt(B_VARPA[l]);
A_STDEVA[l]=sqrt(A_VARPA[l]);
BN_STDEVA[l]=sqrt(BN_VARPA[l]);
AN_STDEVA[l]=sqrt(AN_VARPA[l]);
}
/*測定値データ 作成*/
/*ノーマル*/
if(o==0){
strcpy(temp_2,dirname_origin);
strcat(temp_2,"-data-Mesured.txt");
//printf("%s\n",temp_2);
if( (out2 = fopen(temp_2,"w")) == NULL ){
// if( (out2 = fopen("stats-data-Mesured.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 4){
strcpy(temp_2,dirname_origin);
strcat(temp_2,"-feeddown-4-data-Mesured.txt");
//printf("%s\n",temp_2);
if( (out2 = fopen(temp_2,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-4-data-Mesured.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 6){
strcpy(temp_2,dirname_origin);
strcat(temp_2,"-feeddown-6-data-Mesured.txt");
//printf("%s\n",temp_2);
if( (out2 = fopen(temp_2,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-6-data-Mesured.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}
//2012/09/21大竹追加ここから
fprintf(out2,"File_name\t\t");
for(l=0;l<N;l++){
fprintf(out , "%s\t",FILESlist[l]);
}
fprintf(out2,"\n");
fprintf(out2,"R-_\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[2]);
}
fprintf(out2,"\n");
fprintf(out2,"測定ブロック\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
strcpy(temp_1,str[3]);
split(temp_1, "_", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[0]);
}
fprintf(out2,"\n");
fprintf(out2,"File名\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
strcpy(temp_1,str[3]);
split(temp_1, "_", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[1]);
}
fprintf(out2,"\n");
fprintf(out2,"測定No\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
strcpy(temp_1,str[3]);
split(temp_1, "_", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[2]);
}
fprintf(out2,"\n");
fprintf(out2,"time\t\t");
for(l=0;l<N;l++){
temp_int = strlen(FILESlist[l])-3;
strncpy(temp_1,FILESlist[l],temp_int);
temp_1[temp_int - 1]= '\0';// EOSを付加
strcat(temp_1,"-");
split(temp_1, "-", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], NULL);
fprintf(out , "%s\t",str[4]);
}
fprintf(out2,"\n");
fprintf(out2,"ノーマル成分 測定データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",B_n[l][m]);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",B_AVERAGE[l],B_STDEVA[l],B_VARPA[l]);
}
fprintf(out2,"\n\nスキュー成分 測定データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",A_n[l][m]);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",A_AVERAGE[l],A_STDEVA[l],A_VARPA[l]);
}
//printf("test\n");
fclose(out2);
printf("%sに結果を出力しました\n",temp_2);
/* if(o==1){
printf("stats-feeddown-%d-data-Mesuredに結果を出力しました\n",fdN);
}else{
puts("stats-data-Mesuredに結果を出力しました\n");
}
*/
/*規格化データ作成*/
if(o==0){
strcpy(temp_1,dirname_origin);
strcat(temp_1,"-data-Normalized.txt");
//printf("%s\n",temp_1);
if( (out2 = fopen(temp_1,"w")) == NULL ){
// if( (out2 = fopen("stats-data-Normalized.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 4){
strcpy(temp_1,dirname_origin);
strcat(temp_1,"-feeddown-4-data-Normalized.txt");
//printf("%s\n",temp_1);
if( (out2 = fopen(temp_1,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-4-data-Normalized.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}else if(o==1 && fdN == 6){
strcpy(temp_1,dirname_origin);
strcat(temp_1,"-feeddown-6-data-Normalized.txt");
//printf("%s\n",temp_1);
if( (out2 = fopen(temp_1,"w")) == NULL ){
// if( (out2 = fopen("stats-feeddown-6-data-Normalized.txt","w")) == NULL ){
printf("エラー!ファイルを作成できません");
exit(EXIT_FAILURE);
}
}
fprintf(out2,"\n\nノーマル成分 規格化データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",B_n[l][m]/B_n[1][m]*Nconstant);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",BN_AVERAGE[l],BN_STDEVA[l],BN_VARPA[l]);
}
fprintf(out2,"\n\nスキュー成分 規格化データ\n");
fprintf(out2,"n\t極\t");
for(l=0;l<N;l++){
fprintf(out2,"dataNo.%d\t",l+1);
}
fprintf(out2,"平均値\t標準偏差\t分散\n");
for(l=1;l<=20;l++){
fprintf(out2,"%d\t%d\t",l,l*2);
for(m=0;m<N;m++){
fprintf(out , "%.15f\t",A_n[l][m]/B_n[1][m]*Nconstant);
}
fprintf(out2,"%.15f\t%.15f\t%.15f\t\n",AN_AVERAGE[l],AN_STDEVA[l],AN_VARPA[l]);
}
fclose(out2);
printf("%sに結果を出力しました\n",temp_1);
/* if(o==1){
printf("stats-feeddown-%d-data-Noarmalizedに結果を出力しました\n",fdN);
}else{
printf("%sに結果を出力しました\n",buf1);
}
*/ }
}