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

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

?? projdb.cpp

?? 數(shù)據(jù)挖掘中的序列模式挖掘算法clospan的C++實(shí)現(xiàn)
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// ProjDB.cpp: implementation of projected database structure.////////////////////////////////////////////////////////////////////////#include <sys/types.h>#include <sys/timeb.h>#include <string.h>#include "ProjDB.h"#include "Global.h"#include "MemMap.h"/*struct COUNTER{	int s_id;	    // last sequence updated this counter.	int count;	  // accumulated count.};*///////////////////////////////////////////////////////////////////////// variables.//////////////////////////////////////////////////////////////////////int n_proj_db =0;   // number of projected sequences processed.int n_max_mem=0;		// maximum memory usage by projected databases.int n_total_mem=0;	// total memory usage by projected databases.//struct COUNTER* inter=NULL;//struct COUNTER* intra=NULL;//int* inter_freq_idx=NULL;//int* intra_freq_idx=NULL;struct mem_map	*pDatasetMemMap=NULL;//////////////////////////////////////////////////////////////////////// functions.//////////////////////////////////////////////////////////////////////int InitProjDB(const char* filename){  inter=(struct COUNTER*)memalloc(sizeof(struct COUNTER)*gN_ITEMS);  intra=(struct COUNTER*)memalloc(sizeof(struct COUNTER)*gN_ITEMS);  inter_freq_idx=(int*)memalloc(sizeof(int)*gN_ITEMS);  intra_freq_idx=(int*)memalloc(sizeof(int)*gN_ITEMS);  pDatasetMemMap = CreateMemMap(filename, 1536*1024*1024);  return GetMemMapFileSize (pDatasetMemMap);}void CloseProjDB(){  freemem ((void**) &inter);  freemem ((void**) &intra);  freemem ((void**) &inter_freq_idx);  freemem ((void**) &intra_freq_idx);  CloseMemMap (&pDatasetMemMap);}///////////////////////////////////////////////// Procs added by Ramin////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////struct PROJ_DB* make_projdb_from_org_dataset(const double dSupport,                                              int* pnFreqCount){	int i=0, j=0, nSize=0, nCount=0, nPatLen=0, nMaxSeqLen=0, nSeqLen=0;  int *d=0, *dataset = (int*) GetStartOfMap (pDatasetMemMap);  int *lastAddr = (int*) GetLastAddrOfMap (pDatasetMemMap);  struct PROJ_DB* proj_db=NULL;  struct PROJ_DB* tempDB=NULL;  struct PROJ_SEQ* tempSeq=NULL;	struct COUNTER* pCnter=0;  *pnFreqCount = 0;	fprintf(gpStatusFile, "\tCounting 1-Item sets ... \n"); fflush(gpStatusFile);	ResetTimer(1);	memset( inter_freq_idx, 0, sizeof(int)*gN_ITEMS );	memset( inter, 0, sizeof(struct COUNTER)*gN_ITEMS );	// Scaning DB to count the frequent items.  for( nCount=0; dataset<lastAddr; dataset++ )	{		nCount++; nPatLen=nSeqLen=nPatLen=0;    for (; *dataset!=-2; dataset++)		{			for (; *dataset!=-1; dataset++)			{        // eat up consecutive identical numbers.        while (dataset[0]==dataset[1]) dataset++;				nPatLen++; nSeqLen++;				pCnter=inter + (*dataset);				if (pCnter->s_id<nCount) 				{					pCnter->s_id=nCount;					pCnter->count++;					if (dataset[2]!=-2) inter_freq_idx[*dataset]++;				} 				nSeqLen++;			}			nSeqLen++;		}		if (gMAX_PAT_LEN < nPatLen) gMAX_PAT_LEN = nPatLen;    if (nMaxSeqLen < nSeqLen) nMaxSeqLen=nSeqLen;	}  gnCustCount = nCount;	gSUP=(nCount*dSupport);	gMAX_PAT_LEN+=2; // since we don't use the first and last index.	gnArrLargeCount=(int*)memalloc(sizeof(int)*gMAX_PAT_LEN);	memset(gnArrLargeCount, 0, sizeof(int)*gMAX_PAT_LEN);#if defined( _FIND_CLOSED_SEQS )	gnResSizeCount = (int*) memalloc( sizeof(int) * gMAX_PAT_LEN );	memset( gnResSizeCount, 0, sizeof(int) * gMAX_PAT_LEN );#endif	buf_idx=(int*)memalloc(sizeof(int)*nMaxSeqLen);	memset(buf_idx, 0, sizeof(int)*nMaxSeqLen);#ifndef DISK_BASED	bufseq=(int*)memalloc(sizeof(int)*nMaxSeqLen);	memset(bufseq, 0, sizeof(int)*nMaxSeqLen);#endif////////////////////////////////////////////////////////// Added by Ramin. #if defined( _PERFORM_COMMON_PREFIX_CHECKING )	//if( gnArrLargeCount[1]>0 )  	{		//static int num = 0;		struct PROJ_DB * ProjDB = NULL;		Prefix * aPrefix = NULL;		// For original database intra is the same as inter.		memcpy( intra, inter, sizeof(struct COUNTER)*gN_ITEMS );				aPrefix = new Prefix( pDatasetMemMap );		if( !(*aPrefix).IsEmpty() )		{			//num++;			//printf( "=== Prefix %d ===> ", num );			//(*aPrefix).Print();			ProjDB = MakeProjDBFromOrg( pDatasetMemMap, aPrefix, nCount );			if( ProjDB )				*pnFreqCount = 1;			else				*pnFreqCount = 0;			proj_db = ProjDB;			delete aPrefix;			goto DONE;		} 		delete aPrefix;	}	#endif // defined( _PERFORM_COMMON_PREFIX_CHECKING )////////////////////////////////////////////////////////////////////////////////////// Added by Ramin. #if defined( _USE_OUTPUT_BUFFER )	Sequence ** tmpBuf;	tmpBuf = (Sequence **) memalloc( sizeof(Sequence *) * gN_ITEMS );#endif///////////////////////////////// Changed by Ramin	for (i=0; i<gN_ITEMS; i++) 	{		pCnter=inter + i;		if (pCnter->count>=gSUP)		{#if defined( _USE_OUTPUT_BUFFER )			tmpBuf[i] = OutputPattern( &i, 1, pCnter->count );#else			OutputPattern( &i, 1, pCnter->count );#endif			//fprintf(gpFreqFile, "(%d) : %f\n", i, double(pCnter->count)/double(gnCustCount));			//gnArrLargeCount[1]++;		}	}	//fprintf(gpStatusFile, " (%d items) (%.3f sec)\n", gnArrLargeCount[1], GetTimeDiff(1));///////////////////////////////	// If there are 1 item frequent seqs.  if( gnArrLargeCount[1]>0 )	{		ResetTimer(1);  	fprintf(gpStatusFile, "\tCreating projection DBs ... "); fflush(gpStatusFile);    *pnFreqCount = gnArrLargeCount[1];		n_total_mem+=(nSize=(gnArrLargeCount[1]*sizeof(struct PROJ_DB)));	  proj_db=(struct PROJ_DB*)memalloc(nSize);    for (nCount=i=0; i<gN_ITEMS; i++)		{		  if (inter[i].count>=gSUP)			{#if defined( _USE_OUTPUT_BUFFER )				proj_db[nCount].OutputBuf = tmpBuf[i];#endif			  proj_db[nCount].m_nPatLen=1;			  proj_db[nCount].m_pnPat = (int*)i;#if defined( _FIND_MAX_SEQS ) && !defined( _DO_NAIVE_APPROACH ) 			  proj_db[nCount].m_nMaxSup = (*(inter+i)).count;#else				#if defined (_ANOTHER_CLOSED_APPROACH)						proj_db[nCount].m_nMaxSup = (*(inter+i)).count;				#else						proj_db[nCount].m_nMaxSup = inter_freq_idx[i];				#endif		  #endif								n_total_mem+=(nSize=(inter_freq_idx[i]*sizeof(struct PROJ_SEQ)));			  proj_db[nCount].m_pProjSeq = (struct PROJ_SEQ*)memalloc(nSize);        memset (proj_db[nCount].m_pProjSeq, 0, nSize);			  proj_db[nCount].m_nVer = -1;			  proj_db[nCount].m_nSup = 0;				#if defined( _CALC_I_NUM_OF_ITEMS )					proj_db[nCount].NumOfItems = 0;					proj_db[nCount].ItemIsIntra=false;					proj_db[nCount].Item=i;				#endif			  inter_freq_idx[i] = nCount;			  nCount++;			} else inter_freq_idx[i]=-1;    }	  // scan database again, do projection    dataset = (int*) GetStartOfMap (pDatasetMemMap);			  for (nCount=0; dataset<lastAddr; dataset++)		{		  nCount++;      for (; *dataset!=-2; dataset++)			{ 			  for (; *dataset!=-1; dataset++)				{          // eat up consecutive identical numbers.          while (dataset[0]==dataset[1]) dataset++;					i=inter_freq_idx[*dataset];					// If this is the last item in Seq, or is not frequent, or an instance of this item has been seen in this seq before.					if (dataset[2]==-2 || i<0 || proj_db[i].m_nVer>=nCount) continue;					// Pointer to Proj_DB for this item.          tempDB = proj_db + i;					// Pointer to the next available Seq in this DB.          tempSeq = tempDB->m_pProjSeq + tempDB->m_nSup;					// Last sequence contributed to this DB.          tempDB->m_nVer = nCount;					#if defined( _CALC_I_NUM_OF_ITEMS )						(*tempDB).NumOfItems += (lastAddr - dataset);					#endif#ifdef DISK_BASED          tempDB->m_nSup++;          for (d=dataset+1, buf_idx[0]=int(d), j=1; d[2]!=-2; d++)					{             if( *d==*dataset && d[1]!=-1 )							buf_idx[j++] = int(d+1);          }          tempSeq->m_nProjCount = j;					if (j==1) 					{						tempSeq->m_ppSeq = (int**) buf_idx[0];					} else {						n_total_mem+=(nSize=sizeof(int*)*j);						tempSeq->m_ppSeq = (int**)memalloc(nSize);						memcpy (tempSeq->m_ppSeq, buf_idx, nSize);					}#else					buf_idx[0]=nSeqLen=0; d=dataset+1;					if (dataset[1]==-1) { bufseq[nSeqLen++]=*d; d++; }					for (j=1; *d!=-2; d++) 					{						for (; *d!=-1; d++) 						{							if (inter_freq_idx[*d]<0) continue;							bufseq[nSeqLen++]=*d;							if (*d==*dataset && d[1]!=-1) buf_idx[j++] = nSeqLen;						}						if (nSeqLen==0 || bufseq[nSeqLen-1]!=-1) bufseq[nSeqLen++]=-1;					}					if (nSeqLen<2) continue;          tempDB->m_nSup++;					bufseq[nSeqLen++]=-2;          tempSeq->m_nProjCount = j;					n_total_mem+=(nSize=sizeof(int*)*j);					tempSeq->m_ppSeq=(int**)memalloc(nSize);					n_total_mem+=(nSize=sizeof(int)*nSeqLen);					tempDB->m_nSeqSize=nSize;					tempSeq->m_ppSeq[0]=(int*)memalloc(nSize);					memcpy(tempSeq->m_ppSeq[0], bufseq, nSize);					for (i=1; i<j; i++) tempSeq->m_ppSeq[i]=tempSeq->m_ppSeq[0]+buf_idx[i];#endif			  }		  }	  }	  fprintf(gpStatusFile, " (%.3f sec)\n", GetTimeDiff(1)); fflush(gpStatusFile);  }#if defined( _USE_OUTPUT_BUFFER )	free( tmpBuf );#endif	n_max_mem = n_total_mem;  //PrintProjDBs(proj_db, *pnFreqCount);#if defined( _PERFORM_COMMON_PREFIX_CHECKING )DONE:#endif // defined( _PERFORM_COMMON_PREFIX_CHECKING )  return proj_db;}struct PROJ_DB* make_projdb_from_projected_db(const struct PROJ_DB* pDB,                                               int* pnFreqCount){  struct PROJ_DB* proj_db=NULL;	int i=0, j=0, k=0, l=0, m=0, nSize=0, nCount=0, nSeqLen=0, nProjCnt=0;  int *b=0, *d=0, *dataset=0;	bool bIntra=false, bIndx=false;  struct PROJ_DB* tempDB=NULL;  struct PROJ_SEQ* tempSeq=NULL;	struct COUNTER* pCnter=0;	#if defined( _CALC_I_NUM_OF_ITEMS )			int *lastAddr = (int*) GetLastAddrOfMap (pDatasetMemMap);  #endif  *pnFreqCount=0;	// number of frequent items  //PrintProjDBs(pDB, 1);  // scan database once, find inter- and intra- element frequent items  memset(intra, 0, sizeof(struct COUNTER)*gN_ITEMS);  memset(inter, 0, sizeof(struct COUNTER)*gN_ITEMS);  for (nCount=0; nCount<pDB->m_nSup;)	{    nCount++; nProjCnt=pDB->m_pProjSeq[nCount-1].m_nProjCount;    for (i=0; i<nProjCnt; i++)		{#ifdef DISK_BASED			if (nProjCnt==1) dataset = (int*) pDB->m_pProjSeq[nCount-1].m_ppSeq;      else dataset = pDB->m_pProjSeq[nCount-1].m_ppSeq[i];#else      dataset = pDB->m_pProjSeq[nCount-1].m_ppSeq[i];#endif      // counting intra-element items.	    for (; *dataset!=-1; dataset++)			{        // eat up consecutive identical numbers.        while (dataset[0]==dataset[1]) dataset++;				pCnter = intra + (*dataset);        if (pCnter->s_id<nCount)				{          pCnter->count++;          pCnter->s_id = nCount;        }      }      // for inter we only need to count the longest instance      // of a projected sequence. ie. the first one (i==0).      if (i!=0) 				continue;      for (dataset++; *dataset!=-2; dataset++)			{        // counting inter-element items.	      for (; *dataset!=-1; dataset++)				{          // eat up consecutive identical numbers.          while (dataset[0]==dataset[1]) dataset++;					pCnter = inter + (*dataset);					if (pCnter->s_id<nCount)					{						pCnter->count++;						pCnter->s_id = nCount;					}        }      }    }  }  for (j=k=i=0; i<gN_ITEMS; i++)	{    if (intra[i].count>=gSUP)	j++;    if (inter[i].count>=gSUP) k++;  }////////////////////////////////////////////////////////// Added by Ramin. #if defined( _PERFORM_COMMON_PREFIX_CHECKING )	//if( (*pDB).m_nSup < (gSUP*4)  ) // To turn common Prefix detection on for small DBs.	if( (j+k) > 0 )  	{		//static int num = 0;		struct PROJ_DB * ProjDB = NULL;		Prefix * aPrefix = NULL;				aPrefix = new Prefix( pDB );		//if( (*aPrefix).NumOfItemSets > 1 )		if( !(*aPrefix).IsEmpty() )		{			//num++;			//printf( "=== Prefix %d ===> ", num );			//(*aPrefix).Print();			ProjDB = MakeProjDB( pDB, aPrefix );			if( ProjDB )				*pnFreqCount = 1;			else				*pnFreqCount = 0;			proj_db = ProjDB;			delete aPrefix;			goto DONE;		} 		delete aPrefix;	}	#endif // defined( _PERFORM_COMMON_PREFIX_CHECKING )////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////				//Added by Ramin#if defined( _USE_OUTPUT_BUFFER )	if( (j+k) == 0 )  	{		//fprintf( gpFreqFile, "+===>>>>>>  Right Pattern  " );		//(*(*pDB).OutputBuf).Print( gpFreqFile );		EmptyBuffer( aSeqList, (*pDB).OutputBuf );	}#endif#if defined( _FIND_MAX_SEQS ) && !defined( _DO_NAIVE_APPROACH )	if( (j+k) == 0 )  	{		Sequence * aSeq = new Sequence( pDB, (*pDB).m_nMaxSup );		(*MainSeqTree).AddSeq( aSeq );	}#endif  if ((j+k) > 0)	{    *pnFreqCount = (j+k);		n_total_mem+=(nSize=(*pnFreqCount*sizeof(struct PROJ_DB)));    proj_db=(struct PROJ_DB*)memalloc(nSize);    memset (inter_freq_idx, -1, sizeof(int)*gN_ITEMS);    memset (intra_freq_idx, -1, sizeof(int)*gN_ITEMS);		n_total_mem+=sizeof(int)*((*pnFreqCount*(pDB->m_nPatLen+1))+k);    for (j=sizeof(int)*(pDB->m_nPatLen+1), nCount=i=0; i<gN_ITEMS; i++)		{      if (intra[i].count>=gSUP)			{

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美另类z0zxhd电影| 国产麻豆精品在线观看| 美女性感视频久久| 国产精品一区二区三区99| 福利一区二区在线观看| 91传媒视频在线播放| 91精品国产福利在线观看| 久久综合九色综合欧美98| 亚洲人成电影网站色mp4| 日精品一区二区三区| 丁香六月久久综合狠狠色| 欧美在线播放高清精品| 精品久久久久香蕉网| 亚洲日本韩国一区| 久久精品久久综合| 91在线小视频| 精品国产一区a| 亚洲乱码国产乱码精品精小说| 天堂成人国产精品一区| 国产成人精品一区二区三区四区 | 日韩午夜av电影| 国产精品色婷婷久久58| 午夜精品视频一区| 成人av资源在线| 在线综合视频播放| 亚洲欧美国产77777| 狠狠色2019综合网| 欧美三级午夜理伦三级中视频| 久久精品网站免费观看| 午夜精品久久久久久久久久久| 成人深夜在线观看| 91精品国产综合久久久蜜臀图片| 国产精品久线在线观看| 麻豆中文一区二区| 欧美亚洲国产一区二区三区va | 成人短视频下载| 欧美一区午夜精品| 一区二区三区电影在线播| 国产福利不卡视频| 欧美一区二区三区在线看| 国产精品女主播av| 国内精品久久久久影院一蜜桃| 欧美日韩国产一级二级| 国产精品的网站| 国产精品中文字幕一区二区三区| 4438x成人网最大色成网站| 亚洲综合在线第一页| 国产91精品久久久久久久网曝门| 日韩欧美国产综合| 亚洲va国产天堂va久久en| 色综合久久天天综合网| 中文字幕第一区二区| 国内外精品视频| 日韩午夜中文字幕| 日韩1区2区日韩1区2区| 欧美日韩国产精品成人| 亚洲欧美日韩久久精品| 97成人超碰视| 日韩美女久久久| 97精品国产97久久久久久久久久久久 | 亚洲精品你懂的| 国产成人av福利| 精品久久久久久最新网址| 毛片av一区二区| 日韩免费高清av| 天天操天天色综合| 欧美日韩高清影院| 性久久久久久久| 欧美日韩激情一区| 日韩精品亚洲专区| 欧美精品久久久久久久多人混战| 亚洲一区在线播放| 欧美三级乱人伦电影| 亚洲一卡二卡三卡四卡| 欧美天堂一区二区三区| 亚洲成人资源在线| 欧美猛男男办公室激情| 亚洲第一成人在线| 欧美一区二区私人影院日本| 天堂va蜜桃一区二区三区 | 老司机免费视频一区二区三区| 69堂成人精品免费视频| 亚洲福利一二三区| 欧美一区二区三区播放老司机| 日韩av中文字幕一区二区三区| 欧美一区二区日韩一区二区| 久久精品国产一区二区三| 欧美精品一区二区三| 美女脱光内衣内裤视频久久影院| 26uuu精品一区二区在线观看| 国产精品影视网| 中文字幕第一区二区| 色婷婷亚洲一区二区三区| 亚洲一区二区三区精品在线| 国产精品午夜电影| av网站一区二区三区| 亚洲激情一二三区| 欧美伦理电影网| 美女精品一区二区| 久久久精品国产免大香伊| 成人开心网精品视频| 久久亚洲精品国产精品紫薇| 国产成人亚洲综合a∨猫咪| 国产精品久久久久影院亚瑟| 色综合久久久久| 偷拍与自拍一区| www激情久久| 成年人网站91| 亚洲综合在线免费观看| 777奇米四色成人影色区| 国产黑丝在线一区二区三区| 欧美高清在线精品一区| 色一情一乱一乱一91av| 人人精品人人爱| 国产精品视频麻豆| 欧美日韩国产精品自在自线| 经典三级视频一区| 亚洲色图清纯唯美| 日韩欧美高清一区| 成人性生交大片免费看中文| 夜夜嗨av一区二区三区| 欧美一区二区在线免费观看| 国产成人精品影院| 亚洲成人三级小说| 久久久久国产精品麻豆ai换脸| 在线观看免费一区| 国内精品国产成人国产三级粉色| 亚洲天堂av一区| 精品国产乱码久久久久久闺蜜| 91亚洲午夜精品久久久久久| 免费成人你懂的| 成人欧美一区二区三区黑人麻豆| 欧美一区日韩一区| 97久久精品人人做人人爽50路 | 欧美xxxx老人做受| 99热精品一区二区| 蜜臀久久久久久久| 亚洲欧美偷拍另类a∨色屁股| 2022国产精品视频| 91成人在线精品| 北岛玲一区二区三区四区| 美腿丝袜亚洲色图| 一区二区三区电影在线播| 久久久噜噜噜久久人人看| 欧美日韩精品免费| 91麻豆123| 国产成人午夜视频| 奇米在线7777在线精品| 亚洲欧美日韩中文播放| 2024国产精品视频| 欧美一级在线视频| 在线一区二区观看| 成人免费毛片嘿嘿连载视频| 麻豆91在线观看| 亚洲成a人v欧美综合天堂| 国产精品视频观看| 精品久久久久香蕉网| 91精品久久久久久久99蜜桃| 在线一区二区三区| 91丨九色porny丨蝌蚪| 国产精品一区二区果冻传媒| 免费成人在线观看| 日韩综合在线视频| 亚洲图片欧美色图| 亚洲色图在线播放| 中文字幕制服丝袜一区二区三区 | 经典三级视频一区| 日韩高清欧美激情| 亚洲国产精品一区二区www| 国产精品麻豆视频| 国产精品美女久久久久久久| 久久精品日韩一区二区三区| 精品国产91九色蝌蚪| 欧美一区二区视频网站| 欧美精选午夜久久久乱码6080| 欧美视频自拍偷拍| 欧美亚洲动漫精品| 欧美视频在线观看一区| 91丨porny丨国产入口| 99国产一区二区三精品乱码| 春色校园综合激情亚洲| 国产69精品久久99不卡| 国产精品自在欧美一区| 日韩 欧美一区二区三区| 免费久久99精品国产| 日韩高清中文字幕一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 视频在线观看国产精品| 日本欧美韩国一区三区| 日日欢夜夜爽一区| 裸体歌舞表演一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 2024国产精品| 久久久久久一二三区| 视频一区视频二区在线观看| 亚洲一区二区精品3399| 视频一区二区三区在线| 日韩成人av影视| 国产一区二区不卡在线| 国产九色sp调教91|