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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? marg_sparse_table.c

?? Bayes Net Toolbox for Matlab
?? C
字號(hào):
/* marg_sparse_table.c ../potential/tables*/

/******************************************/
/* 5 input & 1 output                     */
/* Big sparse table                       */
/* Big domain                             */
/* Big sizes                              */
/* onto                                   */
/* maximize, if missed, maximize=0        */
/*                                        */
/* small sparse table                     */
/******************************************/

#include <math.h>
#include <stdlib.h>
#include "mex.h"

int compare(const void* src1, const void* src2){
	int i1 = *(int*)src1 ;
	int i2 = *(int*)src2 ;
	return i1-i2 ;
}

void ind_subv(int index, const int *cumprod, int n, int *bsubv){
	int i;

	for (i = n-1; i >= 0; i--) {
		bsubv[i] = ((int)floor(index / cumprod[i]));
		index = index % cumprod[i];
	}
}

int subv_ind(const int n, const int *cumprod, const int *subv){
	int i, index=0;

	for(i=0; i<n; i++){
		index += subv[i] * cumprod[i];
	}
	return index;
}

mxArray* convert_table_to_sparse(const double *Table, const int *sequence, const int nzCounts, const int N){
	mxArray *spTable;
	int     i, temp, *irs, *jcs, count=0;
	double  *sr;

	spTable = mxCreateSparse(N, 1, nzCounts, mxREAL);
    sr  = mxGetPr(spTable);
    irs = mxGetIr(spTable);
    jcs = mxGetJc(spTable);

	jcs[0] = 0;
	jcs[1] = nzCounts;

	for(i=0; i<nzCounts; i++){
		irs[i] = sequence[count];
		count++;
		temp = sequence[count];
		sr[i] = Table[temp];
		count++;
	}
	return spTable;
}

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){
	int        i, j, count, bdim, sdim, NS, NZB, position, bindex, sindex, maximize, nzCounts=0;
	int        *mask, *sequence, *result, *bir, *bjc, *ssize, *bCumprod, *sCumprod, *bsubv, *ssubv;
	double     *sTable, *pbDomain, *psDomain, *pbSize, *bpr, *spr;
	const char *field_names[] = {"domain", "T", "sizes"};

	if(nrhs < 5) maximize = 0;
	else maximize = (int)mxGetScalar(prhs[4]);

	bdim = mxGetNumberOfElements(prhs[1]);
	sdim = mxGetNumberOfElements(prhs[3]);
	pbSize = mxGetPr(prhs[2]);
	pbDomain = mxGetPr(prhs[1]);
	psDomain = mxGetPr(prhs[3]);
	bpr = mxGetPr(prhs[0]);
	bir = mxGetIr(prhs[0]);
	bjc = mxGetJc(prhs[0]);
	NZB = bjc[1];

	if(sdim == 0){
		plhs[0] = mxCreateSparse(1, 1, 1, mxREAL);
		spr = mxGetPr(plhs[0]);
		bir = mxGetIr(plhs[0]);
		bjc = mxGetJc(plhs[0]);
		*spr = 0;
		*bir = 0;
		bjc[0] = 0;
		bjc[1] = 1;
		if(maximize){
			for(i=0; i<NZB; i++){
				*spr = (*spr < bpr[i])? bpr[i] : *spr;
			}
		}
		else{
			for(i=0; i<NZB; i++){
				*spr += bpr[i];
			}
		}	
		return;
	}

	mask = malloc(sdim * sizeof(int));
	count = 0;
	for(i=0; i<sdim; i++){
		for(j=0; j<bdim; j++){
			if(psDomain[i] == pbDomain[j]){
				mask[count] = j;
				count++;
				break;
			}
		}
	}
		
	sTable = malloc(NZB * sizeof(double));
	sequence = malloc(NZB * 2 * sizeof(double));
	bCumprod = malloc(bdim * sizeof(int));
	sCumprod = malloc(sdim * sizeof(int));
	bsubv = malloc(bdim * sizeof(int));
	ssubv = malloc(sdim * sizeof(int));
	ssize = malloc(sdim * sizeof(int));

	NS = 1;
	for(i=0; i<count; i++){
		ssize[i] = (int)pbSize[mask[i]];
		NS *= ssize[i];
	}

	for(i=0; i<NZB; i++)sTable[i] = 0;
	
	bCumprod[0] = 1;
	for(i=0; i<bdim-1; i++){
		bCumprod[i+1] = bCumprod[i] * (int)pbSize[i];
	}
	sCumprod[0] = 1;
	for(i=0; i<sdim-1; i++){
		sCumprod[i+1] = sCumprod[i] * ssize[i];
	}

	count = 0;
	for(i=0; i<NZB; i++){
		bindex = bir[i];
		ind_subv(bindex, bCumprod, bdim, bsubv);
		for(j=0; j<sdim; j++){
			ssubv[j] = bsubv[mask[j]];
		}
		sindex = subv_ind(sdim, sCumprod, ssubv);
		result = (int *) bsearch(&sindex, sequence, nzCounts, sizeof(int)*2, compare);
		if(result){
			position = (result - sequence) / 2;
			if(maximize) 
				sTable[position] = (sTable[position] < bpr[i]) ? bpr[i] : sTable[position];
			else sTable[position] += bpr[i];
		}
		else {
			if(maximize) 
				sTable[nzCounts] = (sTable[nzCounts] < bpr[i]) ? bpr[i] : sTable[nzCounts];
			else sTable[nzCounts] += bpr[i];
			sequence[count] = sindex;
			count++;
			sequence[count] = nzCounts;
			nzCounts++;
			count++;
		}
	}
	
	qsort(sequence, nzCounts, sizeof(int) * 2, compare);
	plhs[0] = convert_table_to_sparse(sTable, sequence, nzCounts, NS);

	free(sTable);
	free(sequence);
	free(mask);
	free(bCumprod);
	free(sCumprod);
	free(bsubv);
	free(ssubv);
	free(ssize);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品乱码妇女bbbb| 男男成人高潮片免费网站| 午夜精品久久久久久久蜜桃app| 日韩精品欧美成人高清一区二区| 高清av一区二区| 国产一区91精品张津瑜| 在线中文字幕一区| 欧美国产日本视频| 麻豆视频一区二区| 欧美亚洲精品一区| 国产精品久久久久四虎| 精品一区二区三区视频在线观看| 欧美影院午夜播放| 亚洲色图一区二区三区| 成人在线视频一区| 久久日韩粉嫩一区二区三区| 日本午夜精品视频在线观看| 欧美日韩中文字幕精品| 亚洲你懂的在线视频| 成人99免费视频| 国产欧美日韩亚州综合| 激情文学综合插| 日韩亚洲欧美在线观看| 午夜不卡av在线| 欧美视频一区二区三区在线观看| 亚洲女人****多毛耸耸8| 成年人午夜久久久| 欧美激情一区二区三区蜜桃视频 | 精品三级在线观看| 日韩av电影一区| 欧美老肥妇做.爰bbww视频| 伊人色综合久久天天| 色综合久久久久网| 亚洲免费观看高清完整版在线 | 日本午夜精品一区二区三区电影| 欧美日本一道本| 天使萌一区二区三区免费观看| 欧美日韩亚洲综合一区二区三区| 亚洲小说欧美激情另类| 欧美系列在线观看| 亚洲成在人线在线播放| 国产一本一道久久香蕉| 国产亚洲欧美在线| 国产精品69毛片高清亚洲| 国产欧美一区二区精品仙草咪| 国产酒店精品激情| 91成人免费网站| 午夜视频在线观看一区二区三区| 欧美日韩久久久一区| 日韩精品一卡二卡三卡四卡无卡| 欧美一区二区三区免费视频| 久久国内精品自在自线400部| 欧美成人女星排行榜| 久久激情五月婷婷| 国产欧美视频在线观看| 亚洲国产cao| 91麻豆精品国产91久久久使用方法 | 欧美在线免费播放| 亚洲国产另类av| 欧美日韩视频在线观看一区二区三区| 亚洲成人精品一区二区| 欧美精品色综合| 久久成人18免费观看| 国产日韩在线不卡| 91玉足脚交白嫩脚丫在线播放| 精品国产伦一区二区三区观看方式| 国产成人精品网址| 亚洲另类春色国产| 91麻豆精品国产自产在线观看一区| 美女视频黄免费的久久 | 制服丝袜亚洲播放| 国产一区二区三区精品欧美日韩一区二区三区| 国产欧美精品区一区二区三区 | 欧美日韩一区二区三区四区五区| 青娱乐精品在线视频| 国产亚洲污的网站| 色婷婷国产精品| 免费看日韩a级影片| 国产拍揄自揄精品视频麻豆| 欧美在线免费播放| 日本不卡视频一二三区| 国产精品无码永久免费888| 在线视频欧美区| 九色综合狠狠综合久久| 国产女人水真多18毛片18精品视频| 不卡视频一二三| 五月开心婷婷久久| 国产日韩高清在线| 欧美专区日韩专区| 国产资源在线一区| 亚洲中国最大av网站| 欧美精品一区视频| 99精品国产99久久久久久白柏| 午夜精品123| 中文字幕 久热精品 视频在线| 欧美日韩一区二区电影| 国产激情一区二区三区| 亚洲一区在线观看免费| 国产日产精品1区| 欧美精品第1页| 99国产精品99久久久久久| 美美哒免费高清在线观看视频一区二区 | 欧美午夜电影网| 精品一区二区三区的国产在线播放| 国产精品女同互慰在线看| 制服丝袜亚洲播放| 色94色欧美sute亚洲线路二| 亚洲人成网站精品片在线观看| 欧美区一区二区三区| 国产精品影视在线观看| 日韩影院精彩在线| 一区二区三区精密机械公司| 日本韩国欧美在线| 国产91精品欧美| 毛片av中文字幕一区二区| 一区二区成人在线观看| 国产日韩精品视频一区| 日韩情涩欧美日韩视频| 欧美日韩三级在线| 91视频免费播放| 国产剧情一区二区三区| 免费成人小视频| 亚洲mv在线观看| 亚洲九九爱视频| 国产精品理伦片| 久久久久久免费| 欧美r级电影在线观看| 欧美丰满一区二区免费视频| 99精品国产99久久久久久白柏| 国产成人免费视频精品含羞草妖精| 午夜天堂影视香蕉久久| 亚洲免费观看高清在线观看| 国产精品久久毛片a| 精品区一区二区| 欧美一级在线观看| 欧美日韩你懂得| 91国内精品野花午夜精品| 91在线精品一区二区| 成人综合在线观看| 国产乱人伦精品一区二区在线观看| 美洲天堂一区二卡三卡四卡视频| 亚洲午夜激情av| 亚洲另类中文字| 亚洲乱码一区二区三区在线观看| 中文字幕一区二区不卡| 国产精品丝袜在线| 国产精品系列在线| 国产精品久久久久婷婷二区次| 欧美激情在线免费观看| 国产人成一区二区三区影院| 国产亚洲精品超碰| 久久久精品影视| 欧美激情一区二区| 中文子幕无线码一区tr| 国产三级三级三级精品8ⅰ区| 精品国产乱码久久久久久浪潮 | 日本韩国欧美一区| 欧美午夜精品理论片a级按摩| 欧美图区在线视频| 欧美日韩国产免费一区二区| 91精品黄色片免费大全| 日韩限制级电影在线观看| 欧美大片免费久久精品三p| 欧美一级午夜免费电影| 91精品视频网| 欧美成人精品高清在线播放| 久久久久久99久久久精品网站| 国产欧美在线观看一区| 亚洲欧洲日产国产综合网| 玉米视频成人免费看| 一区二区三区中文在线| 亚洲一区视频在线| 蜜臀精品久久久久久蜜臀 | 亚洲综合久久久久| 天天影视网天天综合色在线播放| 免费av网站大全久久| 国产成人欧美日韩在线电影| av亚洲精华国产精华精华| 色吊一区二区三区| 日韩视频国产视频| 国产亚洲美州欧州综合国| 亚洲欧美视频在线观看视频| 亚洲福利视频一区| 精品伊人久久久久7777人| 国产成人精品亚洲777人妖| 91亚洲精品久久久蜜桃| 欧美浪妇xxxx高跟鞋交| 欧美精品一区二区精品网| 国产精品全国免费观看高清| 亚洲一区影音先锋| 精品无人区卡一卡二卡三乱码免费卡| 成人激情校园春色| 欧美视频三区在线播放| 精品国产一区二区国模嫣然| 国产精品美女久久久久久久网站| 亚洲国产欧美另类丝袜| 蜜臀av性久久久久蜜臀av麻豆| 国产激情精品久久久第一区二区| 91日韩在线专区| 日韩欧美国产一区二区三区|