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

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

?? init_pot.c

?? 貝葉斯網絡的matlab實現。可以創建貝葉斯網絡、訓練模型
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* C mex init_pot for in @jtree_sparse_inf_engine directory               */
/* The file enter_evidence.m in directory @jtree_sparse_inf_engine call it*/

/**************************************/
/* init_pot.c has 5 input & 2 output  */
/* engine                             */
/* clqs                               */
/* pots                               */
/* pot_type                           */
/* onodes                             */
/*                                    */
/* clpot                              */
/* seppot                             */
/**************************************/
#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;
}

void compute_fixed_weight(int *weight, const double *pbSize, const int *dmask, const int *bCumprod, const int ND, const int diffdim){
	int i, j;
	int *eff_cumprod, *subv, *diffsize, *diff_cumprod;

	subv = malloc(diffdim * sizeof(int));
	eff_cumprod = malloc(diffdim * sizeof(int));
	diffsize = malloc(diffdim * sizeof(int));
	diff_cumprod = malloc(diffdim * sizeof(int));
	for(i=0; i<diffdim; i++){
		eff_cumprod[i] = bCumprod[dmask[i]];
		diffsize[i] = (int)pbSize[dmask[i]];
	}
	diff_cumprod[0] = 1;
	for(i=0; i<diffdim-1; i++){
		diff_cumprod[i+1] = diff_cumprod[i] * diffsize[i];
	}
	for(i=0; i<ND; i++){
		ind_subv(i, diff_cumprod, diffdim, subv);
		weight[i] = 0;
		for(j=0; j<diffdim; j++){
			weight[i] += eff_cumprod[j] * subv[j];
		}
	}
	free(eff_cumprod);
	free(subv);
	free(diffsize);
	free(diff_cumprod);
}

void reset_nzmax(mxArray *spArray, const int old_nzmax, const int new_nzmax){
	double *ptr;
	void   *newptr;
	int    *ir, *jc;
	int    nbytes;

	if(new_nzmax == old_nzmax) return;
	nbytes = new_nzmax * sizeof(*ptr);
	ptr = mxGetPr(spArray);
	newptr = mxRealloc(ptr, nbytes);
	mxSetPr(spArray, newptr);
	nbytes = new_nzmax * sizeof(*ir);
	ir = mxGetIr(spArray);
	newptr = mxRealloc(ir, nbytes);
	mxSetIr(spArray, newptr);
	jc = mxGetJc(spArray);
	jc[0] = 0;
	jc[1] = new_nzmax;
	mxSetNzmax(spArray, new_nzmax);
}

mxArray* convert_ill_table_to_sparse(const double *bigTable, const int *sequence, const int nzCounts, const int NB){
	mxArray *spTable;
	int     i, temp, *irs, *jcs, count=0;
	double  *sr;

	spTable = mxCreateSparse(NB, 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] = bigTable[temp];
		count++;
	}
	return spTable;
}

void multiply_null_by_fuPot(mxArray *bigPot, const mxArray *smallPot){
	int     i, j, count, NB, NS, siz_b, siz_s, ndim, nzCounts=0;
	int     *mask, *sx, *sy, *cpsy, *subs, *s, *cpsy2, *bir, *bjc;
	double  *pbDomain, *psDomain, *pbSize, *psSize, *spr, *bpr, value;
	mxArray *pTemp, *pTemp1;

	pTemp = mxGetField(bigPot, 0, "domain");
	pbDomain = mxGetPr(pTemp);
	siz_b = mxGetNumberOfElements(pTemp);
	pTemp = mxGetField(smallPot, 0, "domain");
	psDomain = mxGetPr(pTemp);
	siz_s = mxGetNumberOfElements(pTemp);

	pTemp = mxGetField(bigPot, 0, "sizes");
	pbSize = mxGetPr(pTemp);
	pTemp = mxGetField(smallPot, 0, "sizes");
	psSize = mxGetPr(pTemp);

	NB = 1;
	for(i=0; i<siz_b; i++){
		NB *= (int)pbSize[i];
	}
	NS = 1;
	for(i=0; i<siz_s; i++){
		NS *= (int)psSize[i];
	}

	pTemp = mxGetField(smallPot, 0, "T");
	spr = mxGetPr(pTemp);

	pTemp1 = mxCreateSparse(NB, 1, NB, mxREAL);
	bpr = mxGetPr(pTemp1);
	bir = mxGetIr(pTemp1);
	bjc = mxGetJc(pTemp1);
	bjc[0] = 0;
	bjc[1] = NB;

	if(NS == 1){
		value = *spr;
		for(i=0; i<NB; i++){
			bpr[i] = value;
			bir[i] = i;
		}
		nzCounts = NB;
		pTemp = mxGetField(bigPot, 0, "T");
		if(pTemp)mxDestroyArray(pTemp);
		reset_nzmax(pTemp1, NB, nzCounts);
		mxSetField(bigPot, 0, "T", pTemp1);
		return;
	}

	if(NS == NB){
		for(i=0; i<NB; i++){
			if(spr[i] != 0){
				bpr[nzCounts] = spr[i];
				bir[nzCounts] = i;
				nzCounts++;
			}
		}
		pTemp = mxGetField(bigPot, 0, "T");
		if(pTemp)mxDestroyArray(pTemp);
		reset_nzmax(pTemp1, NB, nzCounts);
		mxSetField(bigPot, 0, "T", pTemp1);
		return;
	}

	mask = malloc(siz_s * sizeof(int));
	count = 0;
	for(i=0; i<siz_s; i++){
		for(j=0; j<siz_b; j++){
			if(psDomain[i] == pbDomain[j]){
				mask[count] = j;
				count++;
				break;
			}
		}
	}
	
	ndim = siz_b;
	sx = (int *)malloc(sizeof(int)*ndim);
	sy = (int *)malloc(sizeof(int)*ndim);
	for(i=0; i<ndim; i++){
		sx[i] = (int)pbSize[i];
		sy[i] = 1;
	}
	for(i=0; i<count; i++){
		sy[mask[i]] = sx[mask[i]];
	}

	s = (int *)malloc(sizeof(int)*ndim);
	*(cpsy = (int *)malloc(sizeof(int)*ndim)) = 1;
	subs =   (int *)malloc(sizeof(int)*ndim);
	cpsy2 =  (int *)malloc(sizeof(int)*ndim);
	for(i = 0; i < ndim; i++){
		subs[i] = 0;
		s[i] = sx[i] - 1;
	}
			
	for(i = 0; i < ndim-1; i++){
		cpsy[i+1] = cpsy[i]*sy[i]--;
		cpsy2[i] = cpsy[i]*sy[i];
	}
	cpsy2[ndim-1] = cpsy[ndim-1]*(--sy[ndim-1]);

	for(j=0; j<NB; j++){
		if(*spr != 0){
			bpr[nzCounts] = *spr;
			bir[nzCounts] = j;
			nzCounts++;
		}
		for(i = 0; i < ndim; i++){
			if(subs[i] == s[i]){
				subs[i] = 0;
				if(sy[i])
					spr -= cpsy2[i];
			}
			else{
				subs[i]++;
				if(sy[i])
					spr += cpsy[i];
				break;
			}
		}
	}

	pTemp = mxGetField(bigPot, 0, "T");
	if(pTemp)mxDestroyArray(pTemp);
	reset_nzmax(pTemp1, NB, nzCounts);
	mxSetField(bigPot, 0, "T", pTemp1);

	free(sx);
	free(sy);
	free(s);
	free(cpsy);
	free(subs);
	free(cpsy2);
    free(mask);
}

void multiply_null_by_spPot(mxArray *bigPot, const mxArray *smallPot){
	int     i, j, count, count1, match, temp, bdim, sdim, diffdim, NB, NS, ND, NZB, NZS, bindex, sindex, nzCounts=0;
	int     *samemask, *diffmask, *sir, *sjc, *bCumprod, *sCumprod, *ssubv, *sequence, *weight;
	double  *bigTable, *pbDomain, *psDomain, *pbSize, *psSize, *spr;
	mxArray *pTemp, *pTemp1;

	pTemp = mxGetField(bigPot, 0, "domain");
	pbDomain = mxGetPr(pTemp);
	bdim = mxGetNumberOfElements(pTemp);
	pTemp = mxGetField(smallPot, 0, "domain");
	psDomain = mxGetPr(pTemp);
	sdim = mxGetNumberOfElements(pTemp);

	pTemp = mxGetField(bigPot, 0, "sizes");
	pbSize = mxGetPr(pTemp);
	pTemp = mxGetField(smallPot, 0, "sizes");
	psSize = mxGetPr(pTemp);

	NB = 1;
	for(i=0; i<bdim; i++){
		NB *= (int)pbSize[i];
	}
	NS = 1;
	for(i=0; i<sdim; i++){
		NS *= (int)psSize[i];
	}
	ND = NB / NS;

	if(ND == 1){
		pTemp = mxGetField(bigPot, 0, "T");
		if(pTemp)mxDestroyArray(pTemp);
		pTemp1 = mxGetField(smallPot, 0, "T");
		pTemp = mxDuplicateArray(pTemp1);
		mxSetField(bigPot, 0, "T", pTemp);
		return;
	}

	pTemp = mxGetField(smallPot, 0, "T");
	spr = mxGetPr(pTemp);
	sir = mxGetIr(pTemp);
	sjc = mxGetJc(pTemp);
	NZS = sjc[1];

	NZB = ND * NZS;

	diffdim = bdim - sdim;
	sequence = malloc(NZB * 2 * sizeof(int));
	bigTable = malloc(NZB * sizeof(double));
	samemask = malloc(sdim * sizeof(int));
	diffmask = malloc(diffdim * sizeof(int));
	bCumprod = malloc(bdim * sizeof(int));
	sCumprod = malloc(sdim * sizeof(int));
	weight = malloc(ND * sizeof(int));
	ssubv = malloc(sdim * sizeof(int));

	count = 0;
	count1 = 0;
	for(i=0; i<bdim; i++){
		match = 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区免费| 欧美激情一区三区| 91久久精品国产91性色tv| 国产一区二区三区免费| 天天亚洲美女在线视频| 久久激五月天综合精品| 国产亚洲一区二区三区四区| 免费看黄色91| 欧美激情一区在线观看| 欧美一级黄色大片| 欧美三区在线视频| 91丨porny丨户外露出| 国产精品一品二品| 久久福利资源站| 日韩成人一区二区| 肉色丝袜一区二区| 亚洲与欧洲av电影| 欧美xxxxxxxxx| 国产福利精品导航| 亚洲一区在线视频| 国产精品色婷婷久久58| 99在线精品视频| 国产精品国模大尺度视频| 丰满岳乱妇一区二区三区| 亚洲一区二区三区影院| 国产精品美女久久久久久久久| www.亚洲人| 国产大陆a不卡| 亚洲成人一区二区在线观看| 精品国产乱码久久久久久牛牛| 91麻豆视频网站| 国产一区91精品张津瑜| 亚洲国产精品v| 91亚洲精品乱码久久久久久蜜桃| 奇米精品一区二区三区在线观看 | 国产精品人妖ts系列视频| 一本一道波多野结衣一区二区| 夜夜亚洲天天久久| 日韩一区二区三区精品视频| 欧美高清视频www夜色资源网| 欧美一级午夜免费电影| 久久久亚洲精品石原莉奈| 国产精品九色蝌蚪自拍| 偷拍自拍另类欧美| 久久精品国产一区二区三 | 性久久久久久久久| 精品午夜久久福利影院| 国产很黄免费观看久久| 激情另类小说区图片区视频区| 久久99国产乱子伦精品免费| 蜜桃91丨九色丨蝌蚪91桃色| 五月开心婷婷久久| 美腿丝袜在线亚洲一区| 狠狠色2019综合网| 国产999精品久久久久久绿帽| 99久久国产综合精品麻豆| 欧洲精品视频在线观看| 51精品国自产在线| 欧美韩国日本不卡| 一区二区三区精品视频| 成人网在线播放| 成人午夜精品在线| 欧美刺激脚交jootjob| 五月婷婷激情综合| 久久久综合精品| 麻豆精品一区二区三区| 色视频成人在线观看免| 日本三级亚洲精品| 亚洲国产高清在线观看视频| 欧美日韩美少妇| 国产一区高清在线| 亚洲视频免费看| 91麻豆精品91久久久久同性| 成人一区二区三区视频在线观看| 亚洲福利视频一区| 亚洲国产岛国毛片在线| 日韩一区二区在线看片| 99久久精品免费观看| 久久91精品国产91久久小草| 亚洲黄色片在线观看| 久久亚洲精精品中文字幕早川悠里 | 亚洲国产va精品久久久不卡综合| 久久亚洲精精品中文字幕早川悠里| 欧美日韩在线播放三区| 国产不卡在线视频| 男女激情视频一区| 亚洲精品欧美综合四区| 国产色产综合产在线视频| 欧美日韩高清一区二区不卡| 国产成+人+日韩+欧美+亚洲| 免费人成黄页网站在线一区二区| 亚洲色图.com| 国产欧美日韩精品在线| 欧美一区二区成人6969| 在线观看三级视频欧美| www.欧美日韩| 韩国精品一区二区| 视频一区在线播放| 一区二区三区国产| 国产精品久久久久影院老司| 久久色成人在线| 欧美一区二区美女| 欧美日韩黄色影视| 色综合久久88色综合天天免费| 国产精品影视在线观看| 美女脱光内衣内裤视频久久网站 | 午夜在线成人av| 亚洲丝袜精品丝袜在线| 中文字幕 久热精品 视频在线| 精品成人a区在线观看| 91精品国产一区二区人妖| 欧美性生活久久| 色av成人天堂桃色av| 成人免费毛片aaaaa**| 国产精品一二三四五| 蜜桃视频在线一区| 轻轻草成人在线| 图片区小说区区亚洲影院| 亚洲另类春色国产| 亚洲色图欧美偷拍| 亚洲免费大片在线观看| 亚洲同性gay激情无套| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品2024| 国产一区二区三区免费播放| 国内精品嫩模私拍在线| 国模冰冰炮一区二区| 麻豆精品一区二区三区| 久久精工是国产品牌吗| 激情久久五月天| 国产馆精品极品| 成人亚洲精品久久久久软件| 国产91在线看| 成人h精品动漫一区二区三区| 粉嫩在线一区二区三区视频| 国产凹凸在线观看一区二区| 国产成人一区二区精品非洲| 成人黄色a**站在线观看| 成人aaaa免费全部观看| 91丨porny丨在线| 欧美色综合久久| 欧美二区在线观看| 日韩午夜激情免费电影| 久久欧美中文字幕| 中文字幕精品一区| 亚洲女同一区二区| 亚洲国产综合在线| 免费成人在线播放| 国产一区二区精品在线观看| 成人一区二区视频| 日本精品裸体写真集在线观看| 欧美日韩在线三区| 欧美精品久久一区二区三区| 精品国产乱码久久久久久蜜臀| 国产拍揄自揄精品视频麻豆| 国产精品护士白丝一区av| 亚洲综合一区二区三区| 丝袜脚交一区二区| 国产一区中文字幕| 99免费精品视频| 欧美精品日韩一区| 久久综合久久99| 亚洲同性同志一二三专区| 午夜欧美一区二区三区在线播放| 老司机精品视频一区二区三区| 国产激情一区二区三区四区 | 色综合久久中文字幕| 欧美日韩国产在线播放网站| 91精品国产乱码| 中文字幕乱码亚洲精品一区| 亚洲亚洲精品在线观看| 国产在线视频精品一区| 91影院在线免费观看| 777久久久精品| 国产喂奶挤奶一区二区三区| 亚洲综合色区另类av| 精品午夜一区二区三区在线观看| 99精品视频一区二区| 欧美久久一二三四区| 国产亚洲欧美日韩日本| 亚洲国产精品久久久久秋霞影院| 狠狠色丁香久久婷婷综合丁香| 色综合久久天天综合网| 精品国产乱码久久久久久久久 | 国产精品青草久久| 香蕉久久夜色精品国产使用方法 | 国产精品久久久久天堂| 亚洲国产裸拍裸体视频在线观看乱了| 狠狠色综合播放一区二区| 日本电影欧美片| 久久嫩草精品久久久精品| 亚洲综合视频网| 大陆成人av片| 欧美一级日韩不卡播放免费| 国产精品九色蝌蚪自拍| 久久爱另类一区二区小说| 欧美影视一区在线| 亚洲国产精品av| 久久成人羞羞网站| 欧美综合一区二区|