mex_w_times_x_symmetric.c

来自「对图像分割归一化算法进行编程」· C语言 代码 · 共 57 行

C
57
字号
/*================================================================* mex_w_times_x_symmetric.c = used by ncuthard2.m in eigensolver.** Examples: *     mex_w_times_x_c_symmetric(x,triu(A)) = A*x;     *     A is sparse and symmetric, but x is full** Timothee Cour, Oct 12, 2003.% test sequence:    m=100;
    n=50;    
    x=rand(n,1);
    A=sprand(m,n,0.01);    
    y2 = mex_w_times_x_c_symmetric(x,triu(A));
    y1=A*x;
    max(abs(y1-y2))
*=================================================================*/# include "math.h"# include "mex.h"# include "a_times_b_cmplx.c"
/*# include "a_times_b.c"*/
void mexFunction(    int nargout,    mxArray *out[],    int nargin,    const mxArray *in[]){    int np, nc, *ir, *jc;    double *x, *y, *pr;        if (nargin < 2) {/*voir*/        mexErrMsgTxt("Four input arguments required !");    }    if (nargout>1) {        mexErrMsgTxt("Too many output arguments.");    }        	x = mxGetPr(in[0]);        pr = mxGetPr(in[1]);        ir = mxGetIr(in[1]);        jc = mxGetJc(in[1]);       	np = mxGetM(in[1]);    	nc = mxGetN(in[1]);    	        	out[0] = mxCreateDoubleMatrix(np,1,mxREAL);	y = mxGetPr(out[0]);		CSRsymm_VecMult_CAB_double(np,nc,pr,ir,jc,x,y); } 

⌨️ 快捷键说明

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