void CNode::SplitNode(const NodeParams& childrenparams) { // set up a continuous split if (childrenparams.split_class() == 0) { SetStrategy(true); } else { SetStrategy(false); // the types are confused here leftcategory_.resize(1 + (unsigned long)childrenparams.split_value()); std::copy(childrenparams.get_ordering().begin(), childrenparams.get_ordering().begin() + leftcategory_.size(), leftcategory_.begin()); } split_var_ = childrenparams.split_variable(); splitvalue_ = childrenparams.split_value(); improvement_ = childrenparams.get_improvement(); // Check that our nodes are defined if (!childrenparams.nodes_have_obs()) { throw gbm_exception::Failure("Best split has no observations!"); } left_node_ptr_.reset(new CNode(childrenparams.get_left_def())); right_node_ptr_.reset(new CNode(childrenparams.get_right_def())); missing_node_ptr_.reset(new CNode(childrenparams.get_missing_def())); }
globle SYMBOL_HN *SetStrategyCommand() { DATA_OBJECT argPtr; char *argument; int oldStrategy = Strategy; /*=====================================================*/ /* Check for the correct number and type of arguments. */ /*=====================================================*/ if (ArgCountCheck("set-strategy",EXACTLY,1) == -1) { return((SYMBOL_HN *) AddSymbol(GetStrategyName(GetStrategy()))); } if (ArgTypeCheck("set-strategy",1,SYMBOL,&argPtr) == FALSE) { return((SYMBOL_HN *) AddSymbol(GetStrategyName(GetStrategy()))); } argument = DOToString(argPtr); /*=============================================*/ /* Set the strategy to the specified strategy. */ /*=============================================*/ if (strcmp(argument,"depth") == 0) { SetStrategy(DEPTH_STRATEGY); } else if (strcmp(argument,"breadth") == 0) { SetStrategy(BREADTH_STRATEGY); } else if (strcmp(argument,"lex") == 0) { SetStrategy(LEX_STRATEGY); } else if (strcmp(argument,"mea") == 0) { SetStrategy(MEA_STRATEGY); } else if (strcmp(argument,"complexity") == 0) { SetStrategy(COMPLEXITY_STRATEGY); } else if (strcmp(argument,"simplicity") == 0) { SetStrategy(SIMPLICITY_STRATEGY); } else if (strcmp(argument,"random") == 0) { SetStrategy(RANDOM_STRATEGY); } else { ExpectedTypeError1("set-strategy",1, "symbol with value depth, breadth, lex, mea, complexity, simplicity, or random"); return((SYMBOL_HN *) AddSymbol(GetStrategyName(GetStrategy()))); } /*=======================================*/ /* Return the old value of the strategy. */ /*=======================================*/ return((SYMBOL_HN *) AddSymbol(GetStrategyName(oldStrategy))); }
BOOL FAR PASCAL ExecDlg ( HWND hDlg, unsigned message, WORD wParam, LONG lParam) { switch (message) { case WM_INITDIALOG: { WPARAM item; SetWindowText ( hDlg, (LPSTR)"Execution Options" ); /*-----------------------------+ | Initalize Strategy Combo Box | +-----------------------------*/ #if CONFLICT_RESOLUTION_STRATEGIES SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Depth")); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Breadth")); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "LEX")); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "MEA")); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Complexity")); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Simplicity")); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Random")); switch ( GetStrategy()) { case DEPTH_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Depth")); break; case BREADTH_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Breadth")); break; case LEX_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"LEX")); break; case MEA_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"MEA")); break; case COMPLEXITY_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Complexity")); break; case SIMPLICITY_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Simplicity")); break; case RANDOM_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Random")); break; } #else SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Depth")); item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Depth")); #endif SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_SETCURSEL, item, 0); /*-----------------------------+ | Initalize Salience Combo Box | +-----------------------------*/ #if DYNAMIC_SALIENCE SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_ADDSTRING,0,(LPARAM)((LPSTR) "When Defined")); SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_ADDSTRING,0,(LPARAM)((LPSTR) "When Activated")); SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Every Cycle")); switch (GetSalienceEvaluation()) { case WHEN_DEFINED: item = (int) SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_FINDSTRING,0,(LPARAM)((LPSTR) "When Defined")); break; case WHEN_ACTIVATED: item = (int) SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_FINDSTRING,0,(LPARAM)((LPSTR) "When Activated")); break; case EVERY_CYCLE: item = (int) SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_FINDSTRING,0,(LPARAM)((LPSTR) "Every Cycle")); break; } #else SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_ADDSTRING,0,(LPARAM)((LPSTR) "When Defined")); item = SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_FINDSTRING,0,(LPARAM)((LPSTR) "When Defined")); #endif SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_SETCURSEL, item, 0); /*-----------------------------------+ | Disable Incremental reset check box | | if any rules are in the system. | +------------------------------------*/ if ( GetNextDefrule (NULL) != NULL ) { EnableWindow(GetDlgItem(hDlg, IDC_WATCH_ALL ), TRUE); } /*----------------------------+ | Initalize Other Check Boxes | +----------------------------*/ SetCheckBox(hDlg, IDC_EXE_STATIC, GetStaticConstraintChecking()); SetCheckBox(hDlg, IDC_EXE_DYNAMIC, GetDynamicConstraintChecking()); SetCheckBox(hDlg, IDC_EXE_AUTO, GetAutoFloatDividend()); #if DEFGLOBAL_CONSTRUCT SetCheckBox(hDlg, IDC_EXE_GLOBAL, GetResetGlobals()); #endif #if DEFTEMPLATE_CONSTRUCT SetCheckBox(hDlg, IDC_EXE_FACT, GetFactDuplication()); #endif #if INCREMENTAL_RESET & (! RUN_TIME) SetCheckBox(hDlg, IDC_EXE_RESET, GetIncrementalReset()); #endif #if (!RUN_TIME) SetCheckBox(hDlg, IDC_EXE_SEQUENCE, GetSequenceOperatorRecognition()); #endif return (TRUE); } case WM_COMMAND: { switch ( wParam ) { case IDC_OK: { int value; char Msg[40]; #if DYNAMIC_SALIENCE /*--------------------------+ | Decode Salience Combo Box | +--------------------------*/ value = (int) SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_GETCURSEL, 0, 0); SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_GETLBTEXT, value, (LONG)Msg ); if ( strcmp (Msg, "When Defined" ) == 0 ) SetSalienceEvaluation(WHEN_DEFINED); else if (strcmp(Msg, "When Activated" ) == 0) SetSalienceEvaluation(WHEN_ACTIVATED); else SetSalienceEvaluation(EVERY_CYCLE); #endif #if CONFLICT_RESOLUTION_STRATEGIES /*--------------------------+ | Decode Strategy Combo Box | +--------------------------*/ value = (int) SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_GETCURSEL, 0, 0); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_GETLBTEXT, value, (LONG)Msg ); if ( strcmp (Msg, "Depth" ) == 0 ) SetStrategy(DEPTH_STRATEGY); else if (strcmp(Msg, "Breadth" ) == 0) SetStrategy(BREADTH_STRATEGY); else if (strcmp(Msg, "LEX") == 0 ) SetStrategy(LEX_STRATEGY); else if (strcmp(Msg, "MEA") == 0 ) SetStrategy(MEA_STRATEGY); else if (strcmp(Msg, "Complexity") == 0 ) SetStrategy(COMPLEXITY_STRATEGY); else if (strcmp(Msg, "Simplicity") == 0 ) SetStrategy(SIMPLICITY_STRATEGY); else SetStrategy(RANDOM_STRATEGY); #endif /*-------------------------+ | Decode Other Check Boxes | +-------------------------*/ SetStaticConstraintChecking ( IsDlgButtonChecked(hDlg, IDC_EXE_STATIC)); SetDynamicConstraintChecking ( IsDlgButtonChecked(hDlg, IDC_EXE_DYNAMIC)); SetAutoFloatDividend ( IsDlgButtonChecked(hDlg, IDC_EXE_AUTO)); #if DEFGLOBAL_CONSTRUCT SetResetGlobals ( IsDlgButtonChecked(hDlg, IDC_EXE_GLOBAL)); #endif #if DEFTEMPLATE_CONSTRUCT SetFactDuplication( IsDlgButtonChecked(hDlg, IDC_EXE_FACT)); #endif #if INCREMENTAL_RESET & (! RUN_TIME ) SetIncrementalReset ( IsDlgButtonChecked(hDlg, IDC_EXE_RESET)); #endif #if ( ! RUN_TIME ) SetSequenceOperatorRecognition ( IsDlgButtonChecked(hDlg, IDC_EXE_SEQUENCE)); #endif } case IDC_CANCEL: { EndDialog( hDlg, IDOK); return (TRUE); } /*-------------------+ | Toggle Check Boxes | +-------------------*/ case IDC_EXE_RESET: case IDC_EXE_STATIC: case IDC_EXE_DYNAMIC: case IDC_EXE_GLOBAL: case IDC_EXE_FACT: case IDC_EXE_AUTO: case IDC_EXE_SEQUENCE: { SetCheckBox ( hDlg, wParam, !IsDlgButtonChecked (hDlg, wParam)); return (TRUE); } } } } return (FALSE); }