亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ndtimes.c

?? 本文件采用Matlab軟件
?? C
字號:
/*

 Compute matrix product A*B  for ND slice matrices

 Usage
 -----

 C = ndtimes(A,B)


 Inputs
 -------

 A           Matrix (k x n x a1 x a2 x ... al)    L = (l + 2) dimensionnal

 B           Matrix (n x p x b1 x b2 x ... bs)    S = (s + 2) dimensionnal


 CONDITIONS !!

 ai = bi, i = 1,...., min(l , s)



 Ouputs
 -------

 C           Matrix C



 Example
 -------

 d  = 4;
 M  = 3; 
 N  = 10000;
 Q  = [3 1 0 0 ; 0 1 0 0 ; 0 0 3 1 ; 0 0 0 1];
 Fk = randn(d , d , M);
 Xk = randn(d , 1 , M , N); 
 Qk = Q(: , : , ones(1 , M)); 
 Nk = randn(d , 1 , M , N);
 C  = reshape( ndtimes(Fk , Xk) + ndtimes(permute(ndchol(Qk) , [2 1 3]) , Nk) , [d M N]);





 Compile with:
 ------------

 mex   ndtimes.c

 or


 mex  -f mexopts_intel10amd.bat -output ndtimes.dll ndtimes.c

 Author          S閎astien PARIS (sebastien.paris@lsis.org) (5/4/08)
 -------


*/



#include <malloc.h>
#include "mex.h"


/* --------------------------------------- DECLARATION  ------------------------------------- */


void ndtimes(double *, double * , double * , int  , int  , int , int * , int * ,  int * , int);


/* -------------------------------------------------------------------------------------------- */


void mexFunction( int nlhs, mxArray *plhs[] , int nrhs, const mxArray *prhs[] )

{
	
	
	const int *dimsA , *dimsB;
		
	int *dimsC;
	
	int *ind_tpA = NULL , *ind_tpB = NULL , *indA = NULL , *indB = NULL , *indC = NULL;
	
	double   *A, *B , *C;
	
	int  i, j , k , n , p , o, h , v  , numDimsA = 0 , numDimsB = 0 , numDimsC = 0 , sizC = 1 , tpA = 1,  tpB = 1 , rap_dim = 1;
	
	
	/* Check nargin */
	
	if(nrhs != 2)
		
	{
		
		mexErrMsgTxt("Two ND matrix are requiered");
		
	}
	
	
	
    /* ----------- Input ------------ */
	
	
	
	A        = mxGetPr(prhs[0]);
    
	numDimsA = mxGetNumberOfDimensions(prhs[0]);
    
	dimsA    = mxGetDimensions(prhs[0]);
	
	
	B        = mxGetPr(prhs[1]);
    
	numDimsB = mxGetNumberOfDimensions(prhs[1]);
    
	dimsB    = mxGetDimensions(prhs[1]);
	
	
	k        = dimsA[0];
	
	n        = dimsA[1];
	
	o        = dimsB[0];
	
	p        = dimsB[1];
	
	
	if (n != o)
	{
		mexErrMsgTxt("Inner dimensions are not matching !! A(k x n x ...) and B(n x p x ...)");
	}
	
	
	
	if (numDimsA > numDimsB)
		
	{
		
		for (i = 2 ; i<numDimsB ; i++)
			
		{
			tpA *= dimsA[i];
			
			
			tpB *= dimsB[i];
			
		}
		
		if (tpA != tpB)
		{
			mexErrMsgTxt("Dimensions > 2 are not matching");
		}
		
		for (i = numDimsB ; i <numDimsA ; i++)
			
		{
			
			tpA     *= dimsA[i];
			
			rap_dim *= dimsA[i];
			
		}
	}
	
	if (numDimsA <= numDimsB)
		
	{
		for (i=2 ; i<numDimsA ; i++)
			
		{
			tpA *= dimsA[i];
			
			tpB *= dimsB[i];
			
		}
		
		if (tpA != tpB)
		{
			
			mexErrMsgTxt("Dimensions > 2 are not matching");
		}
		
		for (i = numDimsA ; i <numDimsB ; i++)
			
		{
			
			tpB     *= dimsB[i];
			
			rap_dim *= dimsB[i];
			
		}
	}
	
	
	ind_tpA         = (int *)mxMalloc(tpA*sizeof(int));
	
	
	for (i=0 ; i<tpA ; i++)
		ind_tpA[i] = i;
	
	ind_tpB          = (int *)mxMalloc(tpB*sizeof(int));
	
	
	for (i=0 ; i<tpB ; i++)
		ind_tpB[i] = i;
	
	if (numDimsA > numDimsB)
		
	{
		
		indA    = (int *)mxMalloc(tpA*sizeof(int));
		
		indB    = (int *)mxMalloc(tpA*sizeof(int));
		
		indC    = (int *)mxMalloc(tpA*sizeof(int));
		
		for (i=0 ; i<rap_dim ; i++)
		{
			
			h = i*tpB;
			
			for (j=0 ; j<tpB ; j++)
			{						
				v       = j + h;
				
				indA[v] = v;
				
				indB[v] = ind_tpB[j];
				
				indC[v] = v;
			}
			
		}
		
		numDimsC     = numDimsA;
		
		dimsC        = (int *)mxMalloc(numDimsC*sizeof(int));
		
		dimsC[0]     = k;
		
		dimsC[1]     = p;
		
		sizC         = tpA;
		
		for (i = 2; i<numDimsC ; i++)
			
			dimsC[i] = dimsA[i];
		
	}
	
	if (numDimsA < numDimsB)
		
	{
		
		indA    = (int *)mxMalloc(tpB*sizeof(int));
		
		indB    = (int *)mxMalloc(tpB*sizeof(int));
		
		indC    = (int *)mxMalloc(tpB*sizeof(int));
		
		for (i=0 ; i<rap_dim ; i++)
		{
			
			h = i*tpA;
			
			for (j=0 ; j<tpA ; j++)
			{
				v       = j + h;
				
				indA[v] = ind_tpA[j];
				
				indB[v] = v;
				
				indC[v] = v;
			}
			
		}
		
		numDimsC     = numDimsB;
		
		dimsC        = (int *)mxMalloc(numDimsC*sizeof(int));
		
		dimsC[0]     = k;
		
		dimsC[1]     = p;
		
		sizC         = tpB;
		
		for (i = 2; i<numDimsC ; i++)
			
			dimsC[i] = dimsB[i];
		
	}
	
	if (numDimsA == numDimsB)
		
	{
		
		indA    = (int *)mxMalloc(tpB*sizeof(int));
		
		indB    = (int *)mxMalloc(tpB*sizeof(int));
		
		indC    = (int *)mxMalloc(tpB*sizeof(int));
		
		for (i=0 ; i<tpB ; i++)
		{
			
			indA[i] = i;
			
			indB[i] = i;
			
			indC[i] = i;
		}
		
		numDimsC     = numDimsB;
		
		dimsC        = (int *)mxMalloc(numDimsC*sizeof(int));
		
		dimsC[0]     = k;
		
		dimsC[1]     = p;
		
		sizC         = tpA;
		
		for (i = 2; i<numDimsC ; i++)
			
			dimsC[i] = dimsA[i];
		
	}
	
	
	plhs[0]      = mxCreateNumericArray(numDimsC, dimsC, mxDOUBLE_CLASS, mxREAL);
	
	C            = mxGetPr(plhs[0]);
	
	
	/* ----------------- Array multiplication ------------ */
	
	ndtimes(A, B , C , k , n , p , indA , indB , indC , sizC);
	
    /* ----------------------- Free space ---------------- */
	
	
	mxFree(indA);
	
	mxFree(indB);
	
	mxFree(indC);
	
	mxFree(ind_tpA);
	
	mxFree(ind_tpB);
	
	mxFree(dimsC);
}

/* ----------------------------------------------------------------------------------------------- */

void ndtimes(double *A, double *B , double *C , int k , int n , int p , int *indA , int *indB , int *indC , int sizC)

{
	
	int v , rA , rB , rC , t , l , i , tl , kp , kn , np , rAkn, lnrB , trCkp, rBnp , rCkp;
	
	
	kp = k*p;
	
	kn = k*n;
	
	np = n*p;
	
	for(v = 0 ; v<sizC ; v++)
		
	{
		
		rA   = indA[v];
		
		rB   = indB[v];
		
		rC   = indC[v];
		
		rBnp = rB*np; 
		
		rAkn = rA*kn;
		
		rCkp = rC*kp;
		
		for (t = 0 ; t<k ; t++)
		{
			
			trCkp = t + rCkp;
			
			for(l = 0 ; l<p ; l++)
				
			{
				tl     = l*k   + trCkp;
				
				lnrB   = l*n   + rBnp;
				
				C[tl]  = 0.0;
				
				for(i = 0 ; i<n ; i++)
					
					C[tl] += A[t + i*k + rAkn]*B[i + lnrB];
			}          
			
		}
	}
	
}







?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91激情在线视频| 日韩精品一区二区三区老鸭窝| 天堂影院一区二区| 国产嫩草影院久久久久| 在线成人免费视频| 91美女在线视频| 国产精品77777| 免费日韩伦理电影| 亚洲一区二区三区不卡国产欧美 | 亚洲三级电影全部在线观看高清| 91麻豆精品国产| 色狠狠一区二区三区香蕉| 国产成人亚洲综合a∨婷婷图片| 五月天中文字幕一区二区| 亚洲免费看黄网站| 亚洲国产高清aⅴ视频| 精品成人一区二区三区四区| 欧美日韩一区成人| 免费高清不卡av| 亚洲精品你懂的| 中文字幕一区二区视频| 久久天堂av综合合色蜜桃网| 欧美日韩精品一区二区三区蜜桃| 91论坛在线播放| 成人国产在线观看| 成人免费视频视频| 成人午夜av影视| 国产精品一区一区| 国产在线看一区| 国产一区不卡精品| 狠狠色综合播放一区二区| 久久国产尿小便嘘嘘尿| 蜜桃久久精品一区二区| 青椒成人免费视频| 美国十次综合导航| 久久99久久久欧美国产| 奇米888四色在线精品| 青草av.久久免费一区| 日本人妖一区二区| 蜜臀av性久久久久av蜜臀妖精| 日韩精品欧美精品| 日本一不卡视频| 美女一区二区久久| 极品瑜伽女神91| 国产成人啪免费观看软件| 国产成人精品一区二| 成人午夜看片网址| 91麻豆自制传媒国产之光| 91一区二区在线| 精品视频全国免费看| 4438x成人网最大色成网站| 欧美一区二区日韩| 久久一区二区视频| 中文av字幕一区| 亚洲精品中文在线影院| 亚洲综合精品自拍| 蜜臀99久久精品久久久久久软件| 久久99精品国产麻豆婷婷洗澡| 国产麻豆成人精品| 成人国产精品免费网站| 色综合婷婷久久| 欧美精品 国产精品| 精品第一国产综合精品aⅴ| 中文子幕无线码一区tr| 亚洲卡通动漫在线| 日本一道高清亚洲日美韩| 韩国一区二区三区| 99久久婷婷国产综合精品| 欧美午夜精品一区二区蜜桃| 日韩亚洲欧美综合| 国产午夜亚洲精品理论片色戒| 亚洲欧洲韩国日本视频| 午夜亚洲福利老司机| 久久国产精品99久久久久久老狼| 国产a视频精品免费观看| 色狠狠综合天天综合综合| 日韩三级中文字幕| 中文字幕一区二区三区视频| 丝袜亚洲另类丝袜在线| 国产精品99久久久久久似苏梦涵| 色综合久久综合中文综合网| 日韩精品一区二区三区在线| 最新久久zyz资源站| 奇米在线7777在线精品| 91免费在线视频观看| 日韩一级成人av| 亚洲伦理在线免费看| 国产一级精品在线| 欧美精品色一区二区三区| 国产欧美一区二区精品性| 亚洲一区二区三区四区五区黄| 国产自产高清不卡| 欧美午夜电影在线播放| 国产欧美综合色| 蜜桃久久精品一区二区| 色综合久久九月婷婷色综合| www国产精品av| 午夜成人免费视频| 色综合亚洲欧洲| 国产人伦精品一区二区| 麻豆国产欧美日韩综合精品二区 | 久久se这里有精品| 91久久精品网| 国产精品视频线看| 国产乱码字幕精品高清av| 欧美人与禽zozo性伦| 亚洲三级免费观看| 国产91精品入口| 2017欧美狠狠色| 日本亚洲天堂网| 欧美日韩一二三| 亚洲欧洲99久久| 岛国精品一区二区| 2021中文字幕一区亚洲| 午夜视频一区在线观看| 欧洲日韩一区二区三区| 日韩理论电影院| 成人午夜视频网站| 久久九九久久九九| 国产精品一区一区三区| 精品国产污网站| 久久精品99国产精品日本| 欧美美女网站色| 亚洲一区免费在线观看| 91丨九色丨蝌蚪丨老版| 国产精品短视频| www.99精品| 国产精品久久久久久久蜜臀| 国产精品18久久久久久久久久久久| 欧美大片顶级少妇| 激情小说欧美图片| 久久久久久久精| 国产在线日韩欧美| 国产三级精品视频| 国产成人av在线影院| 国产欧美综合色| av电影一区二区| 亚洲欧美偷拍另类a∨色屁股| 91蝌蚪porny九色| 亚洲激情成人在线| 欧洲精品一区二区三区在线观看| 亚洲精品视频在线| 在线观看亚洲a| 日韩福利视频导航| 欧美成人精品1314www| 国产在线不卡一区| 国产精品私人影院| 色婷婷久久久综合中文字幕| 亚洲动漫第一页| 5566中文字幕一区二区电影| 免费看黄色91| 欧美国产激情一区二区三区蜜月| jvid福利写真一区二区三区| 亚洲精选视频免费看| 欧美日本韩国一区二区三区视频| 奇米777欧美一区二区| 精品国产a毛片| 成人性生交大片免费看中文| 亚洲欧美另类综合偷拍| 欧美美女bb生活片| 韩日精品视频一区| 亚洲日本va午夜在线影院| 欧美精品日韩精品| 国内精品自线一区二区三区视频| 中文乱码免费一区二区| 91国偷自产一区二区三区成为亚洲经典 | 国产精品伦理一区二区| 色猫猫国产区一区二在线视频| 日韩av中文字幕一区二区| 久久蜜桃一区二区| 一本色道久久综合亚洲91| 免费看欧美美女黄的网站| 国产精品视频在线看| 欧美丰满少妇xxxxx高潮对白| 国产综合色产在线精品| 亚洲免费av观看| 精品美女在线观看| 91免费在线播放| 精品午夜久久福利影院| 一区二区视频免费在线观看| 欧美videofree性高清杂交| 99视频精品在线| 久久国产剧场电影| 亚洲男人的天堂网| 精品毛片乱码1区2区3区| 99视频精品免费视频| 久久精品国产第一区二区三区| 亚洲色图.com| 欧美精品一区二区三区蜜臀 | av一二三不卡影片| 奇米四色…亚洲| 亚洲欧美日韩小说| 精品国产伦一区二区三区观看体验| 色www精品视频在线观看| 国产剧情一区二区| 美国一区二区三区在线播放| 亚洲男人的天堂av| 日本一区二区动态图| 精品久久久久99| 欧美午夜精品一区二区三区|