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

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

?? hooks.c

?? 這是vc開發的數據挖掘算法中的決策樹算法之see5算法源代碼.
?? C
?? 第 1 頁 / 共 5 頁
字號:
	if ( Buff[BN+2] == ':' && Buff[BN+5] == ':' &&	     isdigit(Buff[BN+1]) &&	     isdigit(Buff[BN+3]) && isdigit(Buff[BN+4]) &&	     isdigit(Buff[BN+6]) && isdigit(Buff[BN+7]) )	{	    memcpy(Time, Buff+BN, 8);	    Time[8] = '\00';	    if ( (F = TimeToSecs(Time)) == 0 )	    {		Error(BADDEF1, Time, "time");	    }	    BN += 8;	}	else	{	    F = strtod(Buff+BN, &EndPtr);	    /*  Check for period after integer  */	    if ( EndPtr > Buff+BN+1 && *(EndPtr-1) == '.' )	    {		EndPtr--;	    }	    BN = EndPtr - Buff;	}	Dump(OP_NUM, F, Nil, Fi);    }    else    if ( (o = FindOne(Funcs)) >= 0 )    {	BN += 3;	if ( ! Find("(") ) FailSyn("'(' after function name");	BN++;	if ( ! Expression() ) FailSyn("expression");	if ( ! Find(")") ) FailSyn("')' after function argument");	BN++;	DumpOp((char)(OP_SIN + o), Fi);    }    else    if ( Buff[BN] == '?' )    {	BN++;	if ( TStack[TSN-1].Type == 'N' )	{	    Dump(OP_NUM, _UNK.cval, Nil, Fi);	}	else	{	    Dump(OP_STR, 0, Nil, Fi);	}    }    else    if ( ! memcmp(Buff+BN, "N/A", 3) )    {	BN += 3;	if ( TStack[TSN-1].Type == 'N' )	{	    Dump(OP_NUM, _NA.cval, Nil, Fi);	}	else	{	    Dump(OP_STR, 0, strdup("N/A"), Fi);	}    }    else    {	return false;    }    return true;}/*************************************************************************//*									 *//*	Skip spaces and check for specific string			 *//*									 *//*************************************************************************/Boolean Find(String S)/*      ----  */{    if ( Buff[BN] == ' ' ) BN++;    return ( ! Buff[BN] ? false : ! memcmp(Buff+BN, S, strlen(S)) );}/*************************************************************************//*									 *//*	Find one of a zero-terminated list of alternatives		 *//*									 *//*************************************************************************/int FindOne(String *Alt)/*  -------  */{    int	a;    for ( a = 0 ; Alt[a] ; a++ )    {	if ( Find(Alt[a]) ) return a;    }    return -1;}/*************************************************************************//*									 *//*	Find an attribute name						 *//*									 *//*************************************************************************/Attribute FindAttName()/*        -----------  */{    Attribute	Att, LongestAtt=0;    ForEach(Att, 1, MaxAtt-1)    {	if ( ! Exclude(Att) && Find(AttName[Att]) )	{	    if ( ! LongestAtt ||		 strlen(AttName[Att]) > strlen(AttName[LongestAtt]) )	    {		LongestAtt = Att;	    }	}    }    if ( LongestAtt && ( MaxClass == 1 || ClassThresh ) &&	 ! strcmp(ClassName[1], AttName[LongestAtt]) )    {	Error(BADDEF4, Nil, Nil);    }    return LongestAtt;}/*************************************************************************//*									 *//*	Error message routines.  Syntax errors come from the		 *//*	recursive descent parser, semantics errors from the routines	 *//*	that build up the equivalent polish				 *//*									 *//*************************************************************************/void DefSyntaxError(String Msg)/*   --------------  */{    String	RestOfText;    int		i=10;    if ( ! PreviousError )    {	RestOfText = Buff + BN;	/*  Abbreviate text if longer than 12 characters  */	if ( CharWidth(RestOfText) > 12 )	{#ifdef UTF8	    /*  Find beginning of UTF-8 character  */	    for ( ; (RestOfText[i] & 0x80) ; i++)		;#endif	    RestOfText[i] = RestOfText[i+1] = '.';	}	Error(BADDEF1, RestOfText, Msg);	PreviousError = true;    }}void DefSemanticsError(int Fi, String Msg, int OpCode)/*   -----------------  */{    char	Exp[1000], XMsg[1000], Op[1000];    if ( ! PreviousError )    {	/*  Abbreviate the input if necessary  */	if ( BN - Fi > 23 )	{	    sprintf(Exp, "%.10s...%.10s", Buff+Fi, Buff+BN-10);	}	else	{	    sprintf(Exp, "%.*s", BN - Fi, Buff+Fi);	}	switch ( OpCode )	{	    case OP_AND:	sprintf(Op, "%s", "and"); break;	    case OP_OR:		sprintf(Op, "%s", "or"); break;	    case OP_SEQ:	    case OP_EQ:		sprintf(Op, "%s", "="); break;	    case OP_SNE:	    case OP_NE:		sprintf(Op, "%s", "<>"); break;	    case OP_GT:		sprintf(Op, "%s", ">"); break;	    case OP_GE:		sprintf(Op, "%s", ">="); break;	    case OP_LT:		sprintf(Op, "%s", "<"); break;	    case OP_LE:		sprintf(Op, "%s", "<="); break;	    case OP_PLUS:	sprintf(Op, "%s", "+"); break;	    case OP_MINUS:	sprintf(Op, "%s", "-"); break;	    case OP_UMINUS:	sprintf(Op, "%s", "unary -"); break;	    case OP_MULT:	sprintf(Op, "%s", "*"); break;	    case OP_DIV:	sprintf(Op, "%s", "/"); break;	    case OP_MOD:	sprintf(Op, "%s", "%"); break;	    case OP_POW:	sprintf(Op, "%s", "^"); break;	    case OP_SIN:	sprintf(Op, "%s", "sin"); break;	    case OP_COS:	sprintf(Op, "%s", "cos"); break;	    case OP_TAN:	sprintf(Op, "%s", "tan"); break;	    case OP_LOG:	sprintf(Op, "%s", "log"); break;	    case OP_EXP:	sprintf(Op, "%s", "exp"); break;	    case OP_INT:	sprintf(Op, "%s", "int");	}	sprintf(XMsg, "%s with '%s'", Msg, Op);	Error(BADDEF2, Exp, XMsg);	PreviousError = true;    }}/*************************************************************************//*									 *//*	Reverse polish routines.  These use a model of the stack	 *//*	during expression evaluation to detect type conflicts etc	 *//*									 *//*************************************************************************/void Dump(char OpCode, ContValue F, String S, int Fi)/*   ----  */{    if ( Buff[Fi] == ' ' ) Fi++;    if ( ! UpdateTStack(OpCode, F, S, Fi) ) return;    /*  Make sure enough room for this element  */    if ( DN >= DefSize-1 )    {	Realloc(AttDef[MaxAtt], DefSize += 100, DefElt);    }    DefOp(AttDef[MaxAtt][DN]) = OpCode;    if ( OpCode == OP_ATT || OpCode == OP_STR )    {	DefSVal(AttDef[MaxAtt][DN]) = S;    }    else    {	DefNVal(AttDef[MaxAtt][DN]) = F;    }    DN++;}void DumpOp(char OpCode, int Fi)/*   ------  */{    Dump(OpCode, 0, Nil, Fi);}Boolean UpdateTStack(char OpCode, ContValue F, String S, int Fi)/*      ------------  */{    if ( TSN >= TStackSize )    {	Realloc(TStack, TStackSize += 50, EltRec);    }    switch ( OpCode )    {	case OP_ATT:		TStack[TSN].Type = ( Continuous((long) S) ? 'N' : 'S' );		break;	case OP_NUM:		TStack[TSN].Type = 'N';		break;	case OP_STR:		TStack[TSN].Type = 'S';		break;	case OP_AND:	case OP_OR:		if ( TStack[TSN-2].Type != 'B' || TStack[TSN-1].Type != 'B' )		{		    FailSem("non-logical value");		}		TSN -= 2;		break;	case OP_EQ:	case OP_NE:		if ( TStack[TSN-2].Type != TStack[TSN-1].Type )		{		    FailSem("incompatible values");		}		TSN -= 2;		TStack[TSN].Type = 'B';		break;	case OP_GT:	case OP_GE:	case OP_LT:	case OP_LE:		if ( TStack[TSN-2].Type != 'N' || TStack[TSN-1].Type != 'N' )		{		    FailSem("non-arithmetic value");		}		TSN -= 2;		TStack[TSN].Type = 'B';		break;	case OP_SEQ:	case OP_SNE:		if ( TStack[TSN-2].Type != 'S' || TStack[TSN-1].Type != 'S' )		{		    FailSem("incompatible values");		}		TSN -= 2;		TStack[TSN].Type = 'B';		break;	case OP_PLUS:	case OP_MINUS:	case OP_MULT:	case OP_DIV:	case OP_MOD:	case OP_POW:		if ( TStack[TSN-2].Type != 'N' || TStack[TSN-1].Type != 'N' )		{		    FailSem("non-arithmetic value");		}		TSN -= 2;		break;	case OP_UMINUS:		if ( TStack[TSN-1].Type != 'N' )		{		    FailSem("non-arithmetic value");		}		TSN--;		break;	case OP_SIN:	case OP_COS:	case OP_TAN:	case OP_LOG:	case OP_EXP:	case OP_INT:		if ( TStack[TSN-1].Type != 'N' )		{		    FailSem("non-arithmetic argument");		}		TSN--;    }    TStack[TSN].Fi = Fi;    TStack[TSN].Li = BN-1;    TSN++;    return true;}/*************************************************************************//*									 *//*	Evaluate an implicit attribute for a case			 *//*									 *//*************************************************************************/#define	CUnknownVal(AV)		(AV.cval==_UNK.cval)#define	DUnknownVal(AV)		(AV.dval==_UNK.dval)#define DUNA(a)	(DUnknownVal(XStack[a]) || NotApplicVal(XStack[a]))#define CUNA(a)	(CUnknownVal(XStack[a]) || NotApplicVal(XStack[a]))#define	C1(x)	(CUNA(XSN-1) ? _UNK.cval : (x))#define	C2(x)	(CUNA(XSN-1) || CUNA(XSN-2) ? _UNK.cval : (x))#define	CD2(x)	(CUNA(XSN-1) || CUNA(XSN-2) ? _UNK.dval : (x))#define	D2(x)	(DUNA(XSN-1) || DUNA(XSN-2) ? _UNK.dval : (x))AttValue EvaluateDef(Definition D, Description Case)/*       -----------  */{    XStackElt	XStack[100];			/* allows 100-level nesting  */    int		XSN=0, DN, bv1, bv2, Mult;    double	cv1, cv2;    String	sv1, sv2;    Attribute	Att;    DefElt	DElt;    AttValue	ReturnVal;    for ( DN = 0 ; ; DN++)    {	switch ( DefOp((DElt = D[DN])) )	{	    case OP_ATT:		    Att = (long) DefSVal(DElt);#if defined PREDICT || defined SEE5 && defined WIN32 && ! defined _CONSOLE		    GetValue(Att);#endif		    if ( Continuous(Att) )		    {			XStack[XSN++].cval = CVal(Case, Att);		    }		    else		    {			XStack[XSN++].sval =			    ( Unknown(Case, Att) && ! NotApplic(Case, Att) ? 0 :			      AttValName[Att][XDVal(Case, Att)] );		    }		    break;	    case OP_NUM:		    XStack[XSN++].cval = DefNVal(DElt);		    break;	    case OP_STR:		    XStack[XSN++].sval = DefSVal(DElt);		    break;	    case OP_AND:		    bv1 = XStack[XSN-2].dval;		    bv2 = XStack[XSN-1].dval;		    XStack[XSN-2].dval = ( bv1 == 3 || bv2 == 3 ? 3 :					   D2(bv1 == 2 && bv2 == 2 ? 2 : 3) );		    XSN--;		    break;	    case OP_OR:		    bv1 = XStack[XSN-2].dval;		    bv2 = XStack[XSN-1].dval;		    XStack[XSN-2].dval = ( bv1 == 2 || bv2 == 2 ? 2 :					   D2(bv1 == 2 || bv2 == 2 ? 2 : 3) );		    XSN--;		    break;	    case OP_EQ:		    cv1 = XStack[XSN-2].cval;		    cv2 = XStack[XSN-1].cval;		    XStack[XSN-2].dval = ( cv1 == cv2 ? 2 : 3 );		    XSN--;		    break;	    case OP_NE:		    cv1 = XStack[XSN-2].cval;		    cv2 = XStack[XSN-1].cval;		    XStack[XSN-2].dval = ( cv1 != cv2 ? 2 : 3 );		    XSN--;		    break;	    case OP_GT:		    cv1 = XStack[XSN-2].cval;		    cv2 = XStack[XSN-1].cval;		    XStack[XSN-2].dval = CD2(cv1 > cv2 ? 2 : 3);		    XSN--;		    break;	    case OP_GE:		    cv1 = XStack[XSN-2].cval;		    cv2 = XStack[XSN-1].cval;		    XStack[XSN-2].dval = CD2(cv1 >= cv2 ? 2 : 3);		    XSN--;		    break;	    case OP_LT:		    cv1 = XStack[XSN-2].cval;		    cv2 = XStack[XSN-1].cval;		    XStack[XSN-2].dval = CD2(cv1 < cv2 ? 2 : 3);		    XSN--;		    break;	    case OP_LE:		    cv1 = XStack[XSN-2].cval;		    cv2 = XStack[XSN-1].cval;		    XStack[XSN-2].dval = CD2(cv1 <= cv2 ? 2 : 3);		    XSN--;		    break;	    case OP_SEQ:		    sv1 = XStack[XSN-2].sval;		    sv2 = XStack[XSN-1].sval;		    XStack[XSN-2].dval =			( ! sv1 && ! sv2 ? 2 :			  ! sv1 || ! sv2 ? 3 :			  ! strcmp(sv1, sv2) ? 2 : 3 );		    XSN--;		    break;	    case OP_SNE:		    sv1 = XStack[XSN-2].sval;		    sv2 = XStack[XSN-1].sval;		    XStack[XSN-2].dval =			( ! sv1 && ! sv2 ? 3 :			  ! sv1 || ! sv2 ? 2 :			  strcmp(sv1, sv2) ? 2 : 3 );		    XSN--;		    break;	    case OP_PLUS:		    cv1 = XStack[XSN-2].cval;		    cv2 = XStack[XSN-1].cval;		    XStack[XSN-2].cval = C2(cv1 + cv2);		    XSN--;		    break;	    case OP_MINUS:		    cv1 = XStack[XSN-2].cval;		    cv2 = XStack[XSN-1].cval;		    XStack[XSN-2].cval = C2(cv1 - cv2);		    XSN--;		    break;	    case OP_MULT:		    cv1 = XStack[XSN-2].cval;		    cv2 = XStack[XSN-1].cval;		    XStack[XSN-2].cval = C2(cv1 * cv2);		    XSN--;		    break;	    case OP_DIV:		    /*  Note: have to set precision of result  */		    cv1 = XStack[XSN-2].cval;		    cv2 = XStack[XSN-1].cval;		    if ( ! cv2 ||			 CUnknownVal(XStack[XSN-2]) ||			 CUnknownVal(XStack[XSN-1]) ||			 NotApplicVal(XStack[XSN-2]) ||			 NotApplicVal(XStack[XSN-1]) )		    {			XStack[XSN-2].cval = _UNK.cval;		    }		    else		    {			Mult = Denominator(cv1);			cv1 = cv1 / cv2;			while ( fabs(cv2) > 1 )			{			    Mult *= 10;			    cv2 /= 10;			}			XStack[XSN-2].cval = rint(cv1 * Mult) / Mult;		    }		    XSN--;		    break;	    case OP_MOD:		    cv1 = XStack[XSN-2].cval;		    cv2 = XStack[XSN-1].cval;		    XStack[XSN-2].cval = C2(fmod(cv1, cv2));		    XSN--;		    break;	    case OP_POW:		    cv1 = XStack[XSN-2].cval;		    cv2 = XStack[XSN-1].cval;		    XStack[XSN-2].cval =			( CUNA(XSN-1) || CUNA(XSN-2) ||			  ( cv1 < 0 && ceil(cv2) != cv2 ) ? _UNK.cval :			  pow(cv1, cv2) );		    XSN--;		    break;	    case OP_UMINUS:		    cv1 = XStack[XSN-1].cval;		    XStack[XSN-1].cval = C1(-cv1);		    break;	    case OP_SIN:		    cv1 = XStack[XSN-1].cval;		    XStack[XSN-1].cval = C1(sin(cv1));		    break;	    case OP_COS:		    cv1 = XStack[XSN-1].cval;		    XStack[XSN-1].cval = C1(cos(cv1));		    break;	    case OP_TAN:		    cv1 = XStack[XSN-1].cval;		    XStack[XSN-1].cval = C1(tan(cv1));		    break;	    case OP_LOG:		    cv1 = XStack[XSN-1].cval;		    XStack[XSN-1].cval =			( CUNA(XSN-1) || cv1 <= 0 ? _UNK.cval : log(cv1) );		    break;	    case OP_EXP:		    cv1 = XStack[XSN-1].cval;		    XStack[XSN-1].cval = C1(exp(cv1));		    break;	    case OP_INT:		    cv1 = XStack[XSN-1].cval;		    XStack[XSN-1].cval = C1(rint(cv1));		    break;	    case OP_END:		    ReturnVal.dval = XStack[0].dval;		    return ReturnVal;	}    }}/*************************************************************************//*									 *//*	Routines for reading model files				 *//*	--------------------------------				 *//*									 *//*************************************************************************/Boolean	BINARY=false;int	Entry;char*	Prop[]={"null",		"att",

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av在线不卡电影| 欧美国产在线观看| 国产亲近乱来精品视频| 亚洲免费在线观看| 国产乱码精品一区二区三区av| 一本高清dvd不卡在线观看 | 琪琪一区二区三区| 不卡视频免费播放| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲综合图片区| 色综合久久久久综合体| 久久精品一区二区| 久久国产精品99精品国产| 欧美在线免费视屏| 亚洲精品伦理在线| 成人三级伦理片| 久久久久久久综合狠狠综合| 日本欧美在线观看| 欧美乱妇15p| 亚洲福利视频一区二区| 一本色道综合亚洲| 一区二区三区在线播放| 91浏览器在线视频| 亚洲欧美日韩精品久久久久| 成人黄色av电影| 中文字幕免费一区| 大陆成人av片| 中文成人av在线| 成人18视频日本| 一色屋精品亚洲香蕉网站| 成人午夜精品在线| 亚洲欧洲av在线| 99久精品国产| 一区二区三区不卡视频| 欧美性猛交一区二区三区精品| 亚洲视频在线一区二区| 91蝌蚪porny成人天涯| 亚洲美女区一区| 色菇凉天天综合网| 日韩专区一卡二卡| 日韩精品自拍偷拍| 国产成人av一区二区| 亚洲国产精品成人久久综合一区| 成人免费视频app| 亚洲日本成人在线观看| 欧美三区在线视频| 蜜臀精品一区二区三区在线观看| 欧美一区二区三区色| 精品中文字幕一区二区小辣椒| 精品国产91亚洲一区二区三区婷婷 | 亚洲一区二区精品久久av| 欧美中文字幕不卡| 久久精品国产99国产精品| 久久久精品蜜桃| 99re6这里只有精品视频在线观看| 亚洲乱码一区二区三区在线观看| 欧美又粗又大又爽| 久久草av在线| 亚洲欧洲精品天堂一级| 欧美视频在线观看一区| 激情综合色播激情啊| 国产精品成人免费在线| 精品视频1区2区| 国产在线精品免费av| 亚洲视频资源在线| 欧美成人一区二区三区片免费 | 国模一区二区三区白浆| 国产精品美女一区二区三区| 在线观看亚洲专区| 国产在线视频精品一区| 亚洲综合另类小说| 久久久久久久电影| 欧美情侣在线播放| 成人av手机在线观看| 日本欧美在线观看| 亚洲精品水蜜桃| 精品福利在线导航| 欧美系列一区二区| 国产aⅴ精品一区二区三区色成熟| 亚洲一区二区四区蜜桃| 国产三级一区二区| 91精品国产乱码久久蜜臀| 91在线观看免费视频| 精品在线视频一区| 亚洲国产成人av网| 国产精品二区一区二区aⅴ污介绍| 日韩视频一区二区三区| 在线看不卡av| 99精品欧美一区| 国产成人99久久亚洲综合精品| 日韩电影在线观看网站| 一区二区三区四区乱视频| 欧美精彩视频一区二区三区| 日韩欧美一区在线| 69av一区二区三区| 欧美日韩亚洲综合| 在线观看中文字幕不卡| 91污在线观看| 不卡电影免费在线播放一区| 国产在线观看免费一区| 免费欧美高清视频| 日本91福利区| 日产国产高清一区二区三区| 亚洲精品国产a| 亚洲免费视频中文字幕| 国产精品国产精品国产专区不蜜 | 日日欢夜夜爽一区| 午夜精品久久久久久久久| 亚洲丝袜另类动漫二区| 亚洲欧洲日韩综合一区二区| 欧美国产成人在线| 亚洲国产经典视频| 中文成人av在线| 亚洲欧洲av一区二区三区久久| 中文在线资源观看网站视频免费不卡| 久久久久久麻豆| 久久精品一区二区三区四区| 久久亚洲免费视频| 欧美国产日韩亚洲一区| 日本一区二区三区高清不卡| 国产欧美日韩精品一区| 国产欧美一区二区三区鸳鸯浴| 国产日韩亚洲欧美综合| 国产精品另类一区| 亚洲精品成人精品456| 亚洲综合在线电影| 香蕉乱码成人久久天堂爱免费| 爽好久久久欧美精品| 日本亚洲免费观看| 国产自产视频一区二区三区| 国产99久久久国产精品潘金网站| 亚洲高清久久久| 狠狠色丁香久久婷婷综合_中| 国产激情视频一区二区在线观看| gogogo免费视频观看亚洲一| 色婷婷久久一区二区三区麻豆| 欧美在线|欧美| 精品成人一区二区三区| 中文av一区特黄| 亚洲成人免费观看| 国产精品一区二区在线播放| 91蜜桃免费观看视频| 欧美丰满高潮xxxx喷水动漫| 精品国产第一区二区三区观看体验| 国产精品国产精品国产专区不蜜| 亚洲国产精品人人做人人爽| 另类小说综合欧美亚洲| 99久久综合99久久综合网站| 欧美三级日本三级少妇99| 久久久久久日产精品| 亚洲国产精品嫩草影院| 国产美女视频91| 欧美日韩大陆一区二区| 久久久www免费人成精品| 亚洲一区在线观看免费 | 婷婷久久综合九色国产成人 | 国产精品三级视频| 午夜精品久久久久久久久久久| 国产成人综合在线| 欧美午夜不卡在线观看免费| 久久久亚洲欧洲日产国码αv| 亚洲男人天堂av网| 国产伦精品一区二区三区免费| 色av成人天堂桃色av| 久久亚洲精华国产精华液| 亚洲午夜私人影院| 波多野结衣精品在线| 日韩欧美激情四射| 亚洲福利视频导航| 99久久精品免费看国产免费软件| 日韩精品中文字幕一区| 天天av天天翘天天综合网| 91在线观看视频| 中文字幕av一区二区三区| 狠狠色综合播放一区二区| 制服丝袜一区二区三区| 一区二区三区中文字幕精品精品 | 国产精品免费久久久久| 国产美女精品人人做人人爽| 欧美日本韩国一区二区三区视频| 国产精品少妇自拍| 国产一区 二区| 精品盗摄一区二区三区| 免费高清视频精品| 欧美老肥妇做.爰bbww| 一区二区三区四区亚洲| 色综合久久精品| 国产精品传媒视频| av一区二区三区| 亚洲欧洲日韩女同| 99精品国产热久久91蜜凸| 国产色婷婷亚洲99精品小说| 激情丁香综合五月| 26uuu另类欧美亚洲曰本| 麻豆精品一区二区综合av| 欧美一区二区在线观看| 理论片日本一区| 精品国产制服丝袜高跟| 国产一区二三区| 中文字幕免费在线观看视频一区|