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

📄 bvr_delta.c

📁 best routing protocol
💻 C
字号:
/* * [delta] = bvr_delta(beacon_vectors, C_k) *  * * Inputs: * Outputs: */#include <mex.h>#include <string.h>void bvr_delta(double * delta,			   double* beacon_vectors, double *C_k,int n, int k, int r){		int i,j, index, src, dest, offset, idx;		double delta_plus;		double delta_minus, diff;		double *C_k_dest;				/*mexPrintf("n=%d,r=%d,k=%d\n",n,r,k);		mexPrintf("beacon(1,1)%f,(2,1)%f\n",beacon_vectors[0],beacon_vectors[1]);		*/		for (dest=0; dest<n ; dest++){				C_k_dest = C_k + dest;								for (src=0,offset=dest*n; src<n; src++){						delta_plus =0.0;						delta_minus = 0.0;						for (i=0; i<k; i++){								idx = (int)(C_k_dest[i*n]-1);																diff = beacon_vectors[src+idx*n]-beacon_vectors[dest+idx*n];								if (diff>0.)										delta_plus += diff;								else										delta_minus -= diff;								delta[offset+i*n*n]=10*delta_plus+delta_minus;								/*								mexPrintf("src,%d,dest %d, i%d,%f(offset %d)\n",src,dest,i, delta[offset+i*n*n],offset+i*n*n);								*/						}						offset+=1;				}		}				return;}void mexFunction(int nlhs, mxArray** plhs,                 int nrhs, const mxArray** prhs){    int n, k, r, n1;	int dims[3];	    if (nrhs != 2)        mxErrMsgTxt("Too few arguments");	    n = mxGetM(prhs[0]);    r = mxGetN(prhs[0]);	n1 = mxGetM(prhs[1]);	k = mxGetN(prhs[1]);		if (n1!=n)			mxErrMsgTxt("Beacons numbers don't match");		dims[0]=n;	dims[1]=n;	dims[2]=k;		plhs[0] = mxCreateNumericArray(3, dims, mxDOUBLE_CLASS, mxREAL);	bvr_delta(mxGetPr(plhs[0]),			  mxGetPr(prhs[0]), mxGetPr(prhs[1]), n,k,r);	    /*dijkstra(mxGetPr(plhs[0]), mxGetPr(plhs[1]), mxGetPr(plhs[2]),             mxGetJc(prhs[0]), mxGetIr(prhs[0]), mxGetPr(prhs[0]),             s, n);*/}

⌨️ 快捷键说明

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