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

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

?? dfa.c

?? julius version 4.12.about sound recognition.
?? C
字號:
/* * Copyright (c) 1991-2007 Kawahara Lab., Kyoto University * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology * Copyright (c) 2005-2007 Julius project team, Nagoya Institute of Technology * All rights reserved */#include "mkfa.h"#include "dfa.h"#include "nfa.h"void r_makeDFA( FA *fa );ARC *unifyFA( FA *dstFA, ARC *prevarc, ARC *curarc, FA *prevFA );void usArc2nsArc( FA *fa );void connectUnifyFA( FA *fa, int inp, FA *nextFA, FLAG reserved,		    CLASSFLAGS accpt, CLASSFLAGS start );ARC *unconnectFA( FA *srcFA, ARC *arcPrev, ARC *arc );void killFA( FA *fa );void killIsolatedLoop( FA *vanishFA, FA *curFA );int chkIsolatedLoop( FA *vanishFA, FA *curFA );UNIFYARC *appendUnifyArc( UNIFYARC *top, int inp, FA *fa, int reserved );FALIST *appendGroup( FALIST *groupTop, FA *fa );FALIST *insertFAlist( FALIST *top, FALIST *preAtom, FALIST *nextAtom, FA *fa );FA *chkGroup( FALIST *group, CLASSFLAGS accptFlag,	     CLASSFLAGS startFlag, FLAG *newFlag );int cmpFAlist( FALIST *group1, FALIST *group2 );FALIST *volatileFA( FALIST *volatileList, FA *fa );void unvolatileFA( FALIST *volatileList );void verboseGroup( FALIST *group );static FALIST *GroupList = NULL; /* $B>uBVM;9g$5$l$??7>uBV$N%j%9%H(B */static int DFAtravTotal = 0;   /* DFA$B:n@.;~$KN)$A4s$C$?%N!<%I?t(B */static int DFAtravSuccess = 0; /* $B$=$N$&$A:#$^$G$KN)$A4s$C$F$$$J$+$C$??t(B */static int FAprocessed = 0;    /* $B8=:_$N%9%F%C%W$K$*$$$F=hM}$5$l$?(BFA$B$N?t(B */extern int FAtotal;            /* FA$B$NAm?t(B */extern FA *FAlist;             /* FA$B%M%C%H%o!<%/$K$*$1$k3+;O(BFA$B$N%]%$%s%?(B */extern char FAfile[ 1024 ];    /* FA$B%U%!%$%kL>(B(DFAorNFA) */extern int SW_Verbose;extern int SW_Quiet;extern int SW_SemiQuiet;extern int SW_Compati;extern int NoNewLine;          /* $BJ#?t$NI=<(%b!<%I$G2~9TLdBj$r2r7h$9$k(B */extern char Clipboard[ 1024 ]; /* sprintf$BMQ$N0l;~=q$-9~$_%P%C%U%!(B */void makeDFA( void ){    if( !SW_Quiet ){	fprintf( stderr, "Now making deterministic finite automaton" );	NoNewLine = 1;    }    r_makeDFA( FAlist );    if( !SW_Quiet ){	fprintf( stderr, "\rNow making deterministic finite automaton[%d/%d] \n", FAprocessed, FAtotal );	if( FAtotal != FAprocessed ){	    fprintf( stderr, "* %d released FA nodes are left on isolated loop\n", FAtotal - FAprocessed );	}	NoNewLine = 0;    }    /* $B2?$+%P%0$,$"$C$?$H$-62$$$,8IN)%k!<%W$N%A%'%C%/$,(B       $BIT2DG=$J$N$G$7$g$&$,$J$$(B */    FAtotal = FAprocessed;    if( SW_Verbose ){	verboseMes( "** traversing efficiency ( success/total )" );	verboseMes( "r_makeDFA:     %d/%d(%d%%)",		DFAtravSuccess, DFAtravTotal, 100*DFAtravSuccess/DFAtravTotal);    }    newLineAdjust();    freeFAlist( GroupList );}void r_makeDFA( FA *fa ){    ARC *prevarc = NULL;    ARC *curarc;    int inp;    int bundleNum;    FLAG reserved = 0;    int i;    FLAG newFlag;    FALIST *volatileList = NULL;    CLASSFLAGS unifyAccptFlag;    CLASSFLAGS unifyStartFlag;    verboseMes( "[func]r_makeDFA(FA %08x)", (long)fa );    DFAtravTotal++;    if( fa->traversed == 1 ){	verboseMes( "traversed..." );	return;    }    fa->traversed = 1;    DFAtravSuccess++;    FAprocessed++;    if( !SW_SemiQuiet ){	fprintf( stderr, "\rNow making deterministic finite automaton[%d/%d] ", FAprocessed, FAtotal );	NoNewLine = 1;    }    curarc = fa->nsList;    while( curarc != NULL ){	FA *unifyingDstFA = NULL;	{	    ARC *arc = curarc;	    int inp = arc->inp;	    FALIST *group = NULL;	    CLASSFLAGS accptFlag = 0;	    CLASSFLAGS startFlag = 0;	    bundleNum = 0;	    while( 1 ){		if( arc == NULL || arc->inp != inp ) break;		group = appendGroup( group, arc->fa );		accptFlag |= arc->fa->accpt;		startFlag |= arc->fa->start;		arc = arc->next;		bundleNum++;	    }	    if( bundleNum > 1 ){		unifyingDstFA = chkGroup( group, accptFlag,					 startFlag,&newFlag );	    } else {		/* $B$3$N2<(B4$B9T$O%V%m%C%/30$N(Bwhile$B$KBP$7$F$N$b$N(B */		freeFAlist( group );		prevarc = curarc;		curarc = curarc->next;		continue;	    }	}	inp = curarc->inp;	unifyAccptFlag = 0;	unifyStartFlag = 0;	for( i = 0; i < bundleNum; i++ ){	    unifyAccptFlag |= curarc->accpt;	    unifyStartFlag |= curarc->start;	    if( !newFlag ){/*		volatileList = volatileFA( volatileList, curarc->ns );*/		curarc = unconnectFA( fa, prevarc, curarc );	    } else {		if( curarc->fa == fa /* self-loop */ ){		    reserved = 1;/*		    volatileList = volatileFA( volatileList, fa );*/		    curarc = unconnectFA( fa, prevarc, curarc );		} else {		    curarc = unifyFA( unifyingDstFA, prevarc, curarc, fa );		}	    }	}	connectUnifyFA( fa, inp, unifyingDstFA, reserved,		       unifyAccptFlag, unifyStartFlag );	reserved = 0;    }    usArc2nsArc( fa );/*    unvolatileFA( volatileList );*/    curarc = fa->nsList;    while( curarc != NULL ){	r_makeDFA( curarc->fa );	curarc = curarc->next;    }}void connectUnifyFA( FA *fa, int inp, FA *nextFA, FLAG reserved,		    CLASSFLAGS accpt, CLASSFLAGS start ){    /* unifyFA$B$X$N%"!<%/$N%j%9%H$KF~NO$N<-=q=g$GE,@Z0LCV$KA^F~(B       $B$^$?F1$8$b$N$,$"$k>l9gEPO?$7$J$$(B */    /* nextFA $B$N(BpsNum$B$r%$%s%/%j%a%s%H$7$J$$(B */    UNIFYARC *newArc;    UNIFYARC *curArc = NULL;    UNIFYARC *nextArc;    UNIFYARC *top = fa->usList;    if( (newArc = calloc( 1, sizeof(UNIFYARC) )) == NULL ){	errMes( "Can't alloc forward arc buffer of finite automaton." );    }    newArc->inp = inp;    newArc->us = nextFA;    newArc->reserved = reserved;    newArc->accpt = accpt;    newArc->start = start;    if( (nextArc = top) != NULL ){	while( 1 ){	    if( nextArc->inp > inp ) break;	    if( nextArc->inp == inp && nextArc->us == nextFA ) return;	    curArc = nextArc;	    if( (nextArc = nextArc->next) == NULL ) break;	}    }    if( curArc == NULL ){	newArc->next = top;	fa->usList = newArc;    } else {	newArc->next = nextArc;	curArc->next = newArc;    }}void usArc2nsArc( FA *fa ){    UNIFYARC *uptr;    UNIFYARC *disused_uptr;    ARC *nptr;    ARC *newarc;    uptr = fa->usList;    while( uptr != NULL ){	if( (newarc = calloc( 1, sizeof(ARC) )) == NULL ){	    errMes( "Can't alloc forward arc buffer of finite automaton." );	}	connectFA( fa, uptr->inp, uptr->us, uptr->accpt, uptr->start );	uptr = uptr->next;    }        uptr = fa->usList;    while( uptr != NULL ){	if( uptr->reserved ){	    uptr->us->accpt |= fa->accpt;	    nptr = fa->nsList;	    while( nptr != NULL ){		connectFA( uptr->us, nptr->inp, nptr->fa, nptr->accpt, nptr->start );		nptr = nptr->next;	    }	}	disused_uptr = uptr;	uptr = uptr->next;	free( disused_uptr );    }}FALIST *volatileFA( FALIST *volatileList, FA *fa ){    FALIST *atom;    if( (atom = malloc( sizeof(FALIST) )) == NULL ){	errMes( "Can't alloc FA list buffer." );    }    fa->volatiled = 1;    atom->fa = fa;    atom->next = volatileList;    return( atom );}void unvolatileFA( FALIST *volatileList ){    FALIST *atom;    FA *fa;    while( volatileList != NULL ){	atom = volatileList;	fa = atom->fa;	fa->volatiled = 0;/*	if( chkIsolatedLoop( fa, fa ) ){	    killIsolatedLoop( fa, fa );	}*/	volatileList = volatileList->next;	free( atom );    }}ARC *unifyFA( FA *dstFA, ARC *prevarc, ARC *curarc, FA *prevFA ){    FA *srcFA = curarc->fa;    ARC *arc = srcFA->nsList;    dstFA->accpt |= srcFA->accpt;    while( arc != NULL ){	connectFA( dstFA, arc->inp, arc->fa, arc->accpt, arc->start );	arc = arc->next;    }    return( unconnectFA( prevFA, prevarc, curarc ) );}ARC *unconnectFA( FA *srcFA, ARC *arcPrev, ARC *arc )/* $B@Z$C$?%"!<%/$N<!$N%"!<%/$rJV$9(B */{    /* $B;XDj$NA0%N!<%I$H$N@\B3$r@Z$j!">CLG$9$Y$-$J$i<!%N!<%I$9$Y$F$H$N@\B3$r(B       $B@Z$C$F>CLG$5$;$k!#(B*/    ARC *arcNext = arc->next;    FA *vanishFA;    if( arcPrev == NULL ){	srcFA->nsList = arcNext;    } else {	arcPrev->next = arcNext;    }    vanishFA = arc->fa;    free( arc );    if( --vanishFA->psNum == 0 ){	killFA( vanishFA );    }/* else if( chkIsolatedLoop( vanishFA, vanishFA ) ){	killIsolatedLoop( vanishFA, vanishFA );    }*/    return( arcNext );}void killFA( FA *fa ){    ARC *arc = fa->nsList;    verboseMes( "a FA node is vanished" );    while( arc != NULL ){	arc = unconnectFA( fa, NULL, arc );    }    free( fa );    FAtotal--;}int chkIsolatedLoop( FA *vanishFA, FA *curFA )/* $B$b$7<+J,$,>CLG$9$k$H2>Dj$7$?$i<+J,$X$N%"!<%/$,L5$/$J$k$+$r%A%'%C%/(B   $B$9$J$o$A%k!<%W$K$h$k@8$-;D$j$r6n=|$9$k(B */{    ARC *arc;    int result;    if( curFA->volatiled ) return( 0 );    if( curFA->psNum > 1 ) return( 0 );    arc = curFA->nsList;    while( arc != NULL ){	FA *nextFA = arc->fa;	if( nextFA == vanishFA ) return( 1 );	result = chkIsolatedLoop( vanishFA, nextFA );	if( result ) return( 1 );	arc = arc->next;    }    return( 0 );}void killIsolatedLoop( FA *vanishFA, FA *curFA )/* $B$b$7<+J,$,>CLG$9$k$H2>Dj$7$?$i<+J,$X$N%"!<%/$,L5$/$J$k$+$r%A%'%C%/(B   $B$9$J$o$A%k!<%W$K$h$k@8$-;D$j$r6n=|$9$k(B */{    ARC *arc;    ARC *prevarc = NULL;    if( curFA->volatiled ) return;    if( curFA->psNum > 1 ) return;    arc = curFA->nsList;    while( arc != NULL ){	FA *nextFA = arc->fa;	if( nextFA != vanishFA ){	    unconnectFA( curFA, prevarc, arc );	}	prevarc = arc;	arc = arc->next;    }    free( curFA );    FAtotal--;}FALIST *appendGroup( FALIST *groupTop, FA *fa ){    /* fa$B$,M;9g>uBV$G$J$$$J$i(BFA$B$N%]%$%s%?$r%=!<%H$7$F%0%k!<%W%j%9%H$X(B       $BM;9g>uBV$J$i$=$N9=@.%j%9%H$H%0%k!<%W%j%9%H$r9g$o$;$F%=!<%H$9$k(B */    FALIST *preAtom = NULL;    FALIST *curAtom = groupTop;    FALIST *srcCurAtom = NULL;    long cmp;    if( fa->group == NULL ){	while( curAtom != NULL ){	    cmp = (long)fa - (long)curAtom->fa;	    if( cmp == 0 ) return( groupTop );	    if( cmp < 0 ) break;	    preAtom = curAtom;	    curAtom = curAtom->next;	}	return( insertFAlist( groupTop, preAtom, curAtom, fa ) );    } else {	/* srcCurAtom$B$,%=!<%H$5$l$F$$$k$3$H$rMxMQ$9$l$P$b$C$H=hM}$,B.$/$J$k$,(B	   $B$=$&$9$k$H$J$<$+>uBV?t$,B?>/A}$($F$7$^$&$N$GI,$:$7$bJ]>Z$5$l$F$$$J$$$+$b(B	   "for"$B$NCm<a$r<h$C$F!"(BpreAtom = NULL; curAtom = groupTop;(2$B8D=j(B) $B$r;&$9(B */	for( srcCurAtom = fa->group; srcCurAtom != NULL;	    srcCurAtom = srcCurAtom->next ){	    if( curAtom == NULL ){		groupTop = insertFAlist( groupTop, preAtom, curAtom, srcCurAtom->fa );		preAtom = NULL;		curAtom = groupTop;	    }/*		for( ; srcCurAtom != NULL; srcCurAtom = srcCurAtom->next ){		    groupTop = insertFAlist( groupTop, preAtom, NULL, srcCurAtom->fa );		    if( preAtom == NULL ){			preAtom = groupTop->next;		    } else {			preAtom = preAtom->next;		    }		}		break;	    }*/	    cmp = (long)srcCurAtom->fa - (long)curAtom->fa;	    if( cmp == 0 ) continue;	    if( cmp < 0 ){		groupTop = insertFAlist( groupTop, preAtom, curAtom, srcCurAtom->fa );		preAtom = NULL;		curAtom = groupTop;	    } else {		preAtom = curAtom;		curAtom = curAtom->next;	    }	}	return( groupTop );    }}FALIST *insertFAlist( FALIST *top, FALIST *preAtom, FALIST *nextAtom, FA *fa ){    FALIST *atom;    if( (atom = malloc( sizeof(FALIST) )) == NULL ){	errMes( "Can't alloc group buffer for unifying FA" );    }    atom->fa = fa;    if( preAtom == NULL ){	atom->next = nextAtom;	return( atom );    } else {	preAtom->next = atom;	atom->next = nextAtom;	return( top );    }}FA *chkGroup( FALIST *group, CLASSFLAGS accptFlag ,	     CLASSFLAGS startFlag, FLAG *newFlag ){    FALIST *curGroupList = GroupList;    FALIST *preGroupList = NULL;    int cmp;    FA *fa;    while( curGroupList != NULL ){	cmp = cmpFAlist( curGroupList->fa->group, group );	if( cmp == 0 ){	    if( SW_Compati || (accptFlag == curGroupList->fa->accpt	       || startFlag == curGroupList->fa->start) ){		freeFAlist( group );		*newFlag = 0;		return( curGroupList->fa );	    }	}	if( cmp < 0 ) break;	preGroupList = curGroupList;	curGroupList = curGroupList->next;    }    if( SW_Verbose ){ 	verboseGroup( group );    }    fa = makeNewFA();    GroupList = insertFAlist( GroupList, preGroupList, curGroupList, fa );    fa->group = group;    fa->accpt = accptFlag;    fa->start = startFlag;    *newFlag = 1;    return( fa );}void verboseGroup( FALIST *group ){    verboseMes( "Created New Group" );    while( group != NULL ){	verboseMes( "  FAadr: %08x", (long)group->fa );	group = group->next;    }}int cmpFAlist( FALIST *group1, FALIST *group2 ){    long cmp;    while( 1 ){	if( group1 == NULL && group2 == NULL ) return( 0 );	if( group1 == NULL ) return( -1 );	if( group2 == NULL ) return( 1 );	cmp = (long)group1->fa - (long)group2->fa;	if( cmp != 0 ) return( cmp );	group1 = group1->next;	group2 = group2->next;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一级中文字幕一区二区| 日韩精品午夜视频| 久久精品夜色噜噜亚洲a∨| 欧美绝品在线观看成人午夜影视 | 欧美精品第1页| 欧美日精品一区视频| 欧美日韩mp4| 欧美一区二区在线看| 欧美成人在线直播| 精品国产乱码久久久久久闺蜜| 欧美大片在线观看一区| 日韩欧美一级精品久久| 久久在线观看免费| 久久精品夜夜夜夜久久| 中文字幕一区二区在线观看| 亚洲欧美在线观看| 一区二区激情小说| 亚洲成精国产精品女| 美国欧美日韩国产在线播放| 乱中年女人伦av一区二区| 国产一区二区三区在线观看免费 | 亚洲精品久久久久久国产精华液| 亚洲三级在线播放| 亚洲国产欧美一区二区三区丁香婷| 亚洲va韩国va欧美va精品| 麻豆精品久久精品色综合| 国产精品白丝jk黑袜喷水| av在线不卡网| 欧美日韩夫妻久久| 国产清纯在线一区二区www| 国产精品美日韩| 五月天一区二区| 国产精品资源在线| 欧美特级限制片免费在线观看| 欧美一区日韩一区| 国产精品久久影院| 亚洲一区二区三区四区在线免费观看 | 91精品国产福利| 国产女主播一区| 首页国产丝袜综合| 国产成人av电影在线播放| 欧美三级一区二区| 国产精品网曝门| 热久久免费视频| 色婷婷综合久久久久中文一区二区 | av电影天堂一区二区在线| 欧美日韩亚洲综合在线 | 韩国女主播成人在线| 欧美性受xxxx| 中文字幕成人网| 免费国产亚洲视频| 日本精品免费观看高清观看| 久久久精品黄色| 日本中文字幕一区二区有限公司| 白白色亚洲国产精品| 日韩精品一区二区三区视频播放 | 欧美精品久久99久久在免费线| 欧美激情一区二区三区在线| 美女视频第一区二区三区免费观看网站| 97精品国产97久久久久久久久久久久| 精品对白一区国产伦| 婷婷成人激情在线网| 色8久久人人97超碰香蕉987| 亚洲国产成人自拍| 国产麻豆精品在线| 精品av综合导航| 日韩电影在线观看网站| 欧美日韩久久久一区| 一区二区久久久久久| 色综合中文字幕国产| 中文字幕第一区| 风流少妇一区二区| 久久久av毛片精品| 激情综合一区二区三区| 精品剧情在线观看| 激情综合网最新| 精品黑人一区二区三区久久| 久久99精品久久久久久久久久久久| 在线成人免费观看| 日本不卡视频在线观看| 欧美一区午夜视频在线观看| 男人的j进女人的j一区| 日韩一区二区不卡| 精品一区二区三区蜜桃| 久久久五月婷婷| 成人午夜免费视频| 国产精品毛片大码女人| 欧美日本在线看| 午夜成人在线视频| 日韩欧美亚洲一区二区| 国产一区二区不卡在线| 欧美经典一区二区| 91网站在线播放| 亚洲大片精品永久免费| 欧美一级日韩不卡播放免费| 精品一区二区综合| 国产精品久久久久久亚洲毛片 | 日韩午夜电影av| 国产精品性做久久久久久| 国产视频一区在线观看| eeuss鲁一区二区三区| 亚洲精品免费电影| 欧美一区二区三区四区久久| 国产精品2024| 亚洲男同1069视频| 日韩一区二区麻豆国产| 成人精品小蝌蚪| 午夜电影一区二区| 国产日韩综合av| 欧美日韩在线直播| 国产一区二区精品久久99| 亚洲日本电影在线| 91精品国产aⅴ一区二区| 成人激情小说乱人伦| 亚洲国产成人精品视频| 国产日韩欧美一区二区三区乱码| 91啪在线观看| 久久av老司机精品网站导航| 亚洲欧美日韩国产一区二区三区 | 亚洲免费观看高清完整版在线| 91精品婷婷国产综合久久性色| 国产精选一区二区三区 | 欧美xxxx在线观看| 91啪亚洲精品| 国产精品一区专区| 日韩一区精品字幕| 亚洲视频一区二区免费在线观看| 日韩精品一区二区三区四区| 在线视频欧美区| 亚洲国产精品视频| 国产精品免费视频观看| 精品久久免费看| 欧美疯狂做受xxxx富婆| 91视频精品在这里| 成人性生交大片免费看在线播放 | 成人中文字幕合集| 免费美女久久99| 亚洲h在线观看| 亚洲黄网站在线观看| 国产精品色在线观看| 久久夜色精品一区| 日韩一区二区高清| 91精品免费观看| 在线观看91av| 欧美精品 日韩| 日韩一区二区在线观看视频播放| 欧美色综合网站| 欧美视频一二三区| 欧美三区免费完整视频在线观看| 欧美怡红院视频| 欧美性猛片aaaaaaa做受| 91成人国产精品| 欧美私人免费视频| 欧美日韩专区在线| 欧美精品在线观看播放| 欧美一卡2卡三卡4卡5免费| 欧美久久免费观看| 欧美一区二区三区系列电影| 日韩精品资源二区在线| 精品动漫一区二区三区在线观看| 久久夜色精品国产欧美乱极品| 久久综合狠狠综合久久激情| 欧美激情一区二区三区不卡| 国产精品家庭影院| 一区二区三区在线观看网站| 亚洲va天堂va国产va久| 蜜桃在线一区二区三区| 男人操女人的视频在线观看欧美| 麻豆专区一区二区三区四区五区| 亚洲国产中文字幕| 精品一区二区三区影院在线午夜| 国产一区二区三区黄视频 | av电影在线不卡| 欧美日韩国产精品自在自线| 日韩精品在线一区二区| 国产性做久久久久久| 亚洲视频一区二区在线| 三级一区在线视频先锋| 国产伦精品一区二区三区免费迷 | 国产区在线观看成人精品| 2019国产精品| 国产精品乱码一区二区三区软件| 精品国产一区二区三区忘忧草| 欧美v亚洲v综合ⅴ国产v| 精品久久久久久无| 在线欧美一区二区| 2020国产精品| 亚洲欧洲av另类| 一区二区三区欧美视频| 精品一区二区日韩| 成人午夜视频免费看| 色婷婷久久99综合精品jk白丝| 中文一区一区三区高中清不卡| 国产精品国产三级国产普通话三级 | 日本二三区不卡| 开心九九激情九九欧美日韩精美视频电影| 热久久久久久久| 久久精品国产亚洲aⅴ| 国产suv一区二区三区88区| 91蜜桃视频在线|