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

📄 miutils.c

📁 互信息盲源分离
💻 C
📖 第 1 页 / 共 4 页
字号:
    for (d=0;d<dimx+dimy;d++) xc[d]=x[d][ind[i]];    neiK(x,dimx+dimy,0,dimx,ind[i],BOX,epsilon,K,box,lis,nn);    epsx=0; for (d=0;d<dimx;d++)       for(k=1;k<=K;k++) if( (dx=fabs(xc[d]-x[d][nn[k]]))>epsx ) epsx=dx;    epsy=0; for (d=dimx;d<dimx+dimy;d++)       for(k=1;k<=K;k++) if( (dy=fabs(xc[d]-x[d][nn[k]]))>epsy ) epsy=dy;    if (dimx>1) nx2=neiE(xx,indx[i],0,dimx-1,dimx,BOX,epsilon,epsx,boxx,lisx);    else  nx2=neiE1(x[0],ind[i],scalx,BOX1,epsx,boxx1,lisx1,mxi);    if (dimy>1) ny2=neiE(yy,indy[i],0,dimy-1,dimy,BOX,epsilon,epsy,boxy,lisy);    else ny2=neiE1(x[dimx],ind[i],scaly,BOX1,epsy,boxy1,lisy1,myi);        if (epsx>epsy) {      Eps=epsx;nx1=nx2;      if (dimy>1) ny1=neiE(yy,indy[i],0,dimy-1,dimy,BOX,epsilon,Eps,boxy,lisy);      else ny1=neiE1(x[dimx],ind[i],scaly,BOX1,Eps,boxy1,lisy1,myi);      dxy1+=psi[nx1]+psi[ny1+1];    } else {      Eps=epsy;ny1=ny2;      if (dimx>1) nx1=neiE(xx,indx[i],0,dimx-1,dimx,BOX,epsilon,Eps,boxx,lisx);      else nx1=neiE1(x[0],ind[i],scalx,BOX1,Eps,boxx1,lisx1,mxi);      dxy1+=psi[nx1+1]+psi[ny1];    }    dxy2+=psi[nx2]+psi[ny2];  }  dxy1/=N;*mic=psi[N]+psi[K]-dxy1;  dxy2/=N;*mir=psi[N]+phi[K]-dxy2;  free(xc);free(nn);free(lis);  for (i=0;i<BOX;i++) free(box[i]); free(box);  free(ind);free(indx);free(indy);  if (dimx==1) {free(mxi);free(boxx1);free(lisx1);}   else { for (i=0;i<BOX;i++) free(boxx[i]); free(boxx); free(lisx); for (d=0;d<dimx;d++) free(xx[d]); free(xx); }  if (dimy==1) {free(myi);free(boxy1);free(lisy1);}   else { for (i=0;i<BOX;i++) free(boxy[i]); free(boxy); free(lisy); for (d=0;d<dimy;d++) free(yy[d]); free(yy); }  free(phi);}void mic_xnyn(double **x, int dimx, int dimy, int N, int K, 	      double *psi, 	      double *scal,	      double *mic) {  int i,k,nx1,ny1;  double *xc,dy,dx;  double epsx,epsy,Eps;  double dxy1;  double **xx,**yy;;  double scalx, scaly;  int *nn;  int d;  int BOX,BOX1;  int **box,**boxy,**boxx,*lis; // two dimensional boxes  int *lisy,*lisx; // lists for two dimensions  int *boxx1, *boxy1; // onedimensional boxes  int *lisy1,*lisx1; // lists for one dimensions  int *mxi, *myi; //accumulative lists of points in oned boxes  int *ind,*indx,*indy; //indeces of original data (the data resorted during box creating)  double epsilon;  int inveps;  nn=(int*)calloc(K+1,sizeof(int));  xc=(double*)calloc(dimx+dimy,sizeof(double));  BOX=1; while (0.5*BOX*BOX*K<N) BOX*=2;  epsilon=4.0/BOX;  inveps=BOX/4;  BOX1=N-5;  if (dimx>1) {    xx=(double**)calloc(dimx,sizeof(double*));    for (d=0;d<dimx;d++) xx[d]=(double*)calloc(N,sizeof(double));    boxx=(int**)calloc(BOX,sizeof(int*));     for (i=0;i<BOX;i++) boxx[i]=(int*)calloc(BOX,sizeof(int));    lisx=(int*)calloc(N,sizeof(int));  } else { boxx1=(int*)calloc(BOX1+1,sizeof(int));   lisx1=(int*)calloc(N,sizeof(int)); mxi=(int*)calloc(BOX1+1,sizeof(int)); }  if (dimy>1) {    yy=(double**)calloc(dimy,sizeof(double*));    for (d=0;d<dimy;d++) yy[d]=(double*)calloc(N,sizeof(double));    boxy=(int**)calloc(BOX,sizeof(int*));     for (i=0;i<BOX;i++) boxy[i]=(int*)calloc(BOX,sizeof(int));    lisy=(int*)calloc(N,sizeof(int));  } else { boxy1=(int*)calloc(BOX1+1,sizeof(int));   lisy1=(int*)calloc(N,sizeof(int)); myi=(int*)calloc(BOX1+1,sizeof(int)); }   box=(int**)calloc(BOX,sizeof(int*));  for (i=0;i<BOX;i++) box[i]=(int*)calloc(BOX,sizeof(int));  lis=(int*)calloc(N,sizeof(int));  ind=(int*)calloc(N,sizeof(int));  indx=(int*)calloc(N,sizeof(int));  indy=(int*)calloc(N,sizeof(int));  //save x if it would be reordered  if (dimx>1) for (d=0;d<dimx;d++) memcpy(xx[d],x[d],N*sizeof(double));   if (dimy>1) for (d=0;d<dimy;d++) memcpy(yy[d],x[d+dimx],N*sizeof(double));  make_box2ind(x,dimx+dimy,N,0,dimx,BOX,inveps,ind,box,lis);   //for searching neighbours in product space  if (dimx==1) {scalx=scal[0]; make_box1(x[0],N,scalx,BOX1,boxx1,lisx1,mxi);}  else make_box2ind(xx,dimx,N,0,dimx-1,BOX,inveps,indx,boxx,lisx);   if (dimy==1) {scaly=scal[dimx]; make_box1(x[dimx],N,scaly,BOX1,boxy1,lisy1,myi); }  else make_box2ind(yy,dimy,N,0,dimy-1,BOX,inveps,indy,boxy,lisy);   dxy1=0.0;  for (i=0;i<N;i++) {    for (d=0;d<dimx+dimy;d++) xc[d]=x[d][ind[i]];    neiK(x,dimx+dimy,0,dimx,ind[i],BOX,epsilon,K,box,lis,nn);    epsx=0; for (d=0;d<dimx;d++)       for(k=1;k<=K;k++) if( (dx=fabs(xc[d]-x[d][nn[k]]))>epsx ) epsx=dx;    epsy=0; for (d=dimx;d<dimx+dimy;d++)       for(k=1;k<=K;k++) if( (dy=fabs(xc[d]-x[d][nn[k]]))>epsy ) epsy=dy;    if (epsx>epsy) { Eps=epsx;} else {Eps=epsy;}    if (dimy>1) ny1=neiE(yy,indy[i],0,dimy-1,dimy,BOX,epsilon,Eps,boxy,lisy);    else ny1=neiE1(x[dimx],ind[i],scaly,BOX1,Eps,boxy1,lisy1,myi);    if (dimx>1) nx1=neiE(xx,indx[i],0,dimx-1,dimx,BOX,epsilon,Eps,boxx,lisx);    else nx1=neiE1(x[0],ind[i],scalx,BOX1,Eps,boxx1,lisx1,mxi);    if (epsx>epsy) {      dxy1+=psi[nx1]+psi[ny1+1];    } else {      dxy1+=psi[nx1+1]+psi[ny1];    }  }  dxy1/=N;*mic=psi[N]+psi[K]-dxy1;  free(xc);free(nn);free(lis);  for (i=0;i<BOX;i++) free(box[i]); free(box);  free(ind);free(indx);free(indy);  if (dimx==1) {free(mxi);free(boxx1);free(lisx1);}   else { for (i=0;i<BOX;i++) free(boxx[i]); free(boxx); free(lisx); for (d=0;d<dimx;d++) free(xx[d]); free(xx); }  if (dimy==1) {free(myi);free(boxy1);free(lisy1);}   else { for (i=0;i<BOX;i++) free(boxy[i]); free(boxy); free(lisy); for (d=0;d<dimy;d++) free(yy[d]); free(yy); }}void mir_xnyn(double **x, int dimx, int dimy, int N, int K, 	      double *psi, 	      double *scal,	      double *mir) {  int i,k,nx2,ny2;  double *xc,dy,dx;  double epsx,epsy;  double dxy2;  double **xx,**yy;;  double scalx, scaly;  int *nn;  int d;  int BOX,BOX1;  int **box,**boxy,**boxx,*lis; // two dimensional boxes  int *lisy,*lisx; // lists for two dimensions  int *boxx1, *boxy1; // onedimensional boxes  int *lisy1,*lisx1; // lists for one dimensions  int *mxi, *myi; //accumulative lists of points in oned boxes  int *ind,*indx,*indy; //indeces of original data (the data resorted during box creating)  double epsilon;  int inveps;  double *phi;  phi=(double*)calloc(K+1,sizeof(double));  for (i=1;i<=K;i++) phi[i]=psi[i]-1/(double(i));   //   nn=(int*)calloc(K+1,sizeof(int));  xc=(double*)calloc(dimx+dimy,sizeof(double));  BOX=1; while (0.5*BOX*BOX*K<N) BOX*=2;  epsilon=4.0/BOX;  inveps=BOX/4;  BOX1=N-5;  if (dimx>1) {    xx=(double**)calloc(dimx,sizeof(double*));    for (d=0;d<dimx;d++) xx[d]=(double*)calloc(N,sizeof(double));    boxx=(int**)calloc(BOX,sizeof(int*));     for (i=0;i<BOX;i++) boxx[i]=(int*)calloc(BOX,sizeof(int));    lisx=(int*)calloc(N,sizeof(int));  } else { boxx1=(int*)calloc(BOX1+1,sizeof(int));   lisx1=(int*)calloc(N,sizeof(int)); mxi=(int*)calloc(BOX1+1,sizeof(int)); }  if (dimy>1) {    yy=(double**)calloc(dimy,sizeof(double*));    for (d=0;d<dimy;d++) yy[d]=(double*)calloc(N,sizeof(double));    boxy=(int**)calloc(BOX,sizeof(int*));     for (i=0;i<BOX;i++) boxy[i]=(int*)calloc(BOX,sizeof(int));    lisy=(int*)calloc(N,sizeof(int));  } else { boxy1=(int*)calloc(BOX1+1,sizeof(int));   lisy1=(int*)calloc(N,sizeof(int)); myi=(int*)calloc(BOX1+1,sizeof(int)); }   box=(int**)calloc(BOX,sizeof(int*));  for (i=0;i<BOX;i++) box[i]=(int*)calloc(BOX,sizeof(int));  lis=(int*)calloc(N,sizeof(int));  ind=(int*)calloc(N,sizeof(int));  indx=(int*)calloc(N,sizeof(int));  indy=(int*)calloc(N,sizeof(int));  //save x if it would be reordered  if (dimx>1) for (d=0;d<dimx;d++) memcpy(xx[d],x[d],N*sizeof(double));   if (dimy>1) for (d=0;d<dimy;d++) memcpy(yy[d],x[d+dimx],N*sizeof(double));  make_box2ind(x,dimx+dimy,N,0,dimx,BOX,inveps,ind,box,lis);   //for searching neighbours in product space  if (dimx==1) {scalx=scal[0]; make_box1(x[0],N,scalx,BOX1,boxx1,lisx1,mxi);}  else make_box2ind(xx,dimx,N,0,dimx-1,BOX,inveps,indx,boxx,lisx);   if (dimy==1) {scaly=scal[dimx]; make_box1(x[dimx],N,scaly,BOX1,boxy1,lisy1,myi); }  else make_box2ind(yy,dimy,N,0,dimy-1,BOX,inveps,indy,boxy,lisy);   dxy2=0.0;  for (i=0;i<N;i++) {    for (d=0;d<dimx+dimy;d++) xc[d]=x[d][ind[i]];    neiK(x,dimx+dimy,0,dimx,ind[i],BOX,epsilon,K,box,lis,nn);    epsx=0; for (d=0;d<dimx;d++)       for(k=1;k<=K;k++) if( (dx=fabs(xc[d]-x[d][nn[k]]))>epsx ) epsx=dx;    epsy=0; for (d=dimx;d<dimx+dimy;d++)       for(k=1;k<=K;k++) if( (dy=fabs(xc[d]-x[d][nn[k]]))>epsy ) epsy=dy;    if (dimx>1) nx2=neiE(xx,indx[i],0,dimx-1,dimx,BOX,epsilon,epsx,boxx,lisx);    else  nx2=neiE1(x[0],ind[i],scalx,BOX1,epsx,boxx1,lisx1,mxi);    if (dimy>1) ny2=neiE(yy,indy[i],0,dimy-1,dimy,BOX,epsilon,epsy,boxy,lisy);    else ny2=neiE1(x[dimx],ind[i],scaly,BOX1,epsy,boxy1,lisy1,myi);    dxy2+=psi[nx2]+psi[ny2];  }  dxy2/=N;*mir=psi[N]+phi[K]-dxy2;  free(xc);free(nn);free(lis);  for (i=0;i<BOX;i++) free(box[i]); free(box);  free(ind);free(indx);free(indy);  if (dimx==1) {free(mxi);free(boxx1);free(lisx1);}   else { for (i=0;i<BOX;i++) free(boxx[i]); free(boxx); free(lisx); for (d=0;d<dimx;d++) free(xx[d]); free(xx); }  if (dimy==1) {free(myi);free(boxy1);free(lisy1);}   else { for (i=0;i<BOX;i++) free(boxy[i]); free(boxy); free(lisy); for (d=0;d<dimy;d++) free(yy[d]); free(yy); }  free(phi);}void redK(double **x, int dim, int N, int K, 	  double *psi,	  double *scal,	  double *mi_cr) {    int i,k,ik,**n1,**n2;  double *xc,dx;  double **eps,*Eps;  int *maxdim;  double *dxy1,*dxy2;  int *nn;  int d;    int BOX,BOX1;  int **box,*lis; // two dimensional boxes  int **box1; // onedimensional boxes  int **lis1; // lists for one dimensions  int **mxi; //accumulative lists of points in oned boxes  double epsilon;  int inveps;  double *phi;  phi=(double*)calloc(K+1,sizeof(double));  for (i=1;i<=K;i++) phi[i]=psi[i]-(dim-1)/(double(i));   //   nn=(int*)calloc(K+1,sizeof(int));  xc=(double*)calloc(dim+1,sizeof(double));  BOX=1; while (0.5*BOX*BOX*K<N) BOX*=2;  epsilon=4.0/BOX;  inveps=BOX/4;  BOX1=N-5;  box1=(int**)calloc(dim,sizeof(int*));   lis1=(int**)calloc(dim,sizeof(int*));   mxi=(int**)calloc(dim,sizeof(int*));   for (d=0;d<dim;d++) {    box1[d]=(int*)calloc(BOX1+1,sizeof(int));     lis1[d]=(int*)calloc(N,sizeof(int));     mxi[d]=(int*)calloc(BOX1+1,sizeof(int));  }   box=(int**)calloc(BOX,sizeof(int*));  for (i=0;i<BOX;i++) box[i]=(int*)calloc(BOX,sizeof(int));  lis=(int*)calloc(N,sizeof(int));  eps=(double**)calloc(K,sizeof(double*));  Eps=(double*)calloc(K,sizeof(double));  n1=(int**)calloc(K,sizeof(int*));  n2=(int**)calloc(K,sizeof(int*));  maxdim=(int*)calloc(K,sizeof(int));  for (ik=0;ik<K;ik++) {    eps[ik]=(double*)calloc(dim,sizeof(double));    n1[ik]=(int*)calloc(dim,sizeof(int));    n2[ik]=(int*)calloc(dim,sizeof(int));    mi_cr[ik*2]=0;    mi_cr[ik*2+1]=0;  }  dxy1=(double*)calloc(K,sizeof(double));  dxy2=(double*)calloc(K,sizeof(double));  make_box2(x,dim,N,0,dim-1,BOX,inveps,box,lis); //for searching neighbours in prodict space  for (d=0;d<dim;d++) make_box1(x[d],N,scal[d],BOX1,box1[d],lis1[d],mxi[d]);    for (ik=0;ik<K;ik++) {dxy1[ik]=dxy2[ik]=0.0;}  for (i=0;i<N;i++) {    for (d=0;d<dim;d++) xc[d]=x[d][i];       neiK(x,dim,0,dim-1,i,BOX,epsilon,K,box,lis,nn);        for (ik=0;ik<K;ik++) {      Eps[ik]=0;maxdim[ik]=-1;      for (d=0;d<dim;d++) {	eps[ik][d]=0;	for(k=1;k<=ik+1;k++) {if( (dx=fabs(xc[d]-x[d][nn[k]]))>eps[ik][d] ) eps[ik][d]=dx; }	if (eps[ik][d]>Eps[ik]) {Eps[ik]=eps[ik][d];maxdim[ik]=d;}      }	    }        for (ik=0;ik<K;ik++) {      for (d=0;d<dim;d++) {	n2[ik][d]=neiE1(x[d],i,scal[d],BOX1,eps[ik][d],box1[d],lis1[d],mxi[d]);	if (d==maxdim[ik]) { n1[ik][d]=n2[ik][d]; dxy1[ik]+=psi[n1[ik][d]]; }	else { 	  n1[ik][d]=neiE1(x[d],i,scal[d],BOX1,Eps[ik],box1[d],lis1[d],mxi[d]); 	  dxy1[ik]+=psi[n1[ik][d]+1];	}	dxy2[ik]+=psi[n2[ik][d]];      }    }  }  for (ik=0;ik<K;ik++) {    dxy1[ik]/=N;mi_cr[ik*2]=(dim-1)*psi[N]+psi[ik+1]-dxy1[ik];    dxy2[ik]/=N;mi_cr[ik*2+1]=(dim-1)*psi[N]+phi[ik+1]-dxy2[ik];  }  free(xc);free(nn);  for (i=0;i<BOX;i++) free(box[i]); free(box);  free(lis);  for (d=0;d<dim;d++) {    free(box1[d]);free(lis1[d]);free(mxi[d]);  }  free(box1);free(lis1);free(mxi);    for (ik=0;ik<K;ik++) {    free(eps[ik]);    free(n1[ik]);    free(n2[ik]);  }  free(eps);free(n1);free(n2);  free(Eps);free(maxdim);  free(dxy1); free(dxy2);  free(phi);}void mi2K(double **x, int N, int K,	  double *psi, 	  double *scal,	  double *mi_cr) {    int i,k,ik,**n1,**n2;  double *xc,dx;  double **eps,*Eps;  int *maxdim;  double *dxy1,*dxy2;  int *nn;  int d;    int BOX,BOX1;  int **box,*lis; // two dimensional boxes  int **box1; // onedimensional boxes  int **lis1; // lists for one dimensions  int **mxi; //accumulative lists of points in oned boxes  double epsilon;  int inveps;  int dim=2;  double *phi;  phi=(double*)calloc(K+1,sizeof(double));  for (i=1;i<=K;i++) phi[i]=psi[i]-(dim-1)/(double(i));   //   nn=(int*)calloc(K+1,sizeof(int));  xc=(double*)calloc(dim+1,sizeof(double));  BOX=1; while (0.5*BOX*BOX*K<N) BOX*=2;  epsilon=4.0/BOX;  inveps=BOX/4;  BOX1=N-5;  box1=(int**)calloc(dim,sizeof(int*));   lis1=(int**)calloc(dim,sizeof(int*));   mxi=(int**)calloc(dim,sizeof(int*));   for (d=0;d<dim;d++) {    box1[d]=(int*)calloc(BOX1+1,sizeof(int));     lis1[d]=(int*)calloc(N,sizeof(int));     mxi[d]=(int*)calloc(BOX1+1,sizeof(int));  }   box=(int**)calloc(BOX,sizeof(int*));  for (i=0;i<BOX;i++) box[i]=(int*)calloc(BOX,sizeof(int));  lis=(int*)calloc(N,sizeof(int));  eps=(double**)calloc(K,sizeof(double*));  Eps=(double*)calloc(K,sizeof(double));  n1=(int**)calloc(K,sizeof(int*));  n2=(int**)calloc(K,sizeof(int*));  maxdim=(int*)calloc(K,sizeof(int));  for (ik=0;ik<K;ik++) {    eps[ik]=(double*)calloc(dim,sizeof(double));    n1[ik]=(int*)calloc(dim,sizeof(int));    n2[ik]=(int*)calloc(dim,sizeof(int));    mi_cr[ik*2]=0;    mi_cr[ik*2+1]=0;  }  dxy1=(double*)calloc(K,sizeof(double));  dxy2=(double*)calloc(K,sizeof(double));  make_box2(x,dim,N,0,1,BOX,inveps,box,lis); //for searching neighbours in prodict space  for (d=0;d<dim;d++) make_box1(x[d],N,scal[d],BOX1,box1[d],lis1[d],mxi[d]);          for (ik=0;ik<K;ik++) {dxy1[ik]=dxy2[ik]=0.0;}  for (i=0;i<N;i++) {    for (d=0;d<dim;d++) xc[d]=x[d][i];    neiK(x,dim,0,dim-1,i,BOX,epsilon,K,box,lis,nn);        for (ik=0;ik<K;ik++) {      Eps[ik]=0;maxdim[ik]=-1;      for (d=0;d<dim;d++) {	eps[ik][d]=0;	for(k=1;k<=ik+1;k++) {if( (dx=fabs(xc[d]-x[d][nn[k]]))>eps[ik][d] ) eps[ik][d]=dx; }	if (eps[ik][d]>Eps[ik]) {Eps[ik]=eps[ik][d];maxdim[ik]=d;}      }	    }    for (ik=0;ik<K;ik++) {      for (d=0;d<dim;d++) {	n2[ik][d]=neiE1(x[d],i,scal[d],BOX1,eps[ik][d],box1[d],lis1[d],mxi[d]);	if (d==maxdim[ik]) { n1[ik][d]=n2[ik][d]; dxy1[ik]+=psi[n1[ik][d]]; }	else { 	  n1[ik][d]=neiE1(x[d],i,scal[d],BOX1,Eps[ik],box1[d],lis1[d],mxi[d]); 	  dxy1[ik]+=psi[n1[ik][d]+1];	}	dxy2[ik]+=psi[n2[ik][d]];      }    }  }  for (ik=0;ik<K;ik++) {    dxy1[ik]/=N;mi_cr[ik*2]=psi[N]+psi[ik+1]-dxy1[ik];    dxy2[ik]/=N;mi_cr[ik*2+1]=psi[N]+phi[ik+1]-dxy2[ik];  }  free(xc);free(nn);  for (i=0;i<BOX;i++) free(box[i]); free(box);  free(lis);  for (d=0;d<dim;d++) {    free(box1[d]);free(lis1[d]);free(mxi[d]);  }  free(box1);free(lis1);free(mxi);    for (ik=0;ik<K;ik++) {    free(eps[ik]);    free(n1[ik]);    free(n2[ik]);  }  free(eps);free(n1);free(n2);  free(Eps);free(maxdim);  free(dxy1); free(dxy2);  free(phi);}void mi_xnynK(double **x, int dimx, int dimy, int N, int K, 	      double *psi, 	      double *scal,	      double *mi_cr) {  int i,ik,k,*nx1,*ny1,*nx2,*ny2;  double *xc,dy,dx;  double *epsx,*epsy,*Eps;  double *dxy1,*dxy2;  double **xx,**yy;;  double scalx, scaly;  int *nn;  int d;  int BOX,BOX1;  int **box,**boxy,**boxx,*lis; // two dimensional boxes  int *lisy,*lisx; // lists for two dimensions  int *boxx1, *boxy1; // onedimensional boxes  int *lisy1,*lisx1; // lists for one dimensions  int *mxi, *myi; //accumulative lists of points in oned boxes  int *ind,*indx,*indy; //indeces of original data (the data resorted during box creating)  double epsilon;  int inveps;  double *phi;  phi=(double*)calloc(K+1,sizeof(double));  for (i=1;i<=K;i++) phi[i]=psi[i]-1/(double(i));   //   nn=(int*)calloc(K+1,sizeof(int));  xc=(double*)calloc(dimx+dimy,sizeof(double));  dxy1=(double*)calloc(K,sizeof(double));  dxy2=(double*)calloc(K,sizeof(double));  nx1=(int*)calloc(K,sizeof(int));  nx2=(int*)calloc(K,sizeof(int));  ny1=(int*)calloc(K,sizeof(int));  ny2=(int*)calloc(K,sizeof(int));  epsx=(double*)calloc(K,sizeof(double));  epsy=(double*)calloc(K,sizeof(double));

⌨️ 快捷键说明

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