예제 #1
0
void create_models ( Widget parent )
{
Arg			args[10];
Cardinal		argcnt;
Widget			pane, form, rowcol;
static char		first = 1;

/*------------------------------------------------------------*/

/* Create a popup shell & list widget for the file list. */
	argcnt = 0;
	XtSetArg(args[argcnt], XmNcolormap, gemmap); argcnt++;
	XtSetArg(args[argcnt], XmNvisual,   gemvis); argcnt++;
	model_toplevel = XmCreateBulletinBoardDialog(parent,
			"ModelSelect",args, argcnt);

/*
 * models and files were read through create_model_menu()
 * first time
 */
	if ( !first ) {
		get_models();
		first = 0;
	}

	pane = XtVaCreateManagedWidget("modelpane",
				xmPanedWindowWidgetClass,
				model_toplevel,
				XmNsashWidth,  1,
				XmNsashHeight, 1,
				NULL);

	rowcol = XtVaCreateManagedWidget("ModelRC",
				  xmRowColumnWidgetClass, pane,
				  XmNorientation, XmVERTICAL,
				  XmNpacking, XmPACK_COLUMN,
				  NULL );

	create_model_list(rowcol);

	form = XtVaCreateManagedWidget("ModelFileFrame",
				  xmFormWidgetClass, pane,
				  NULL );

	model_filelist(form);

	rowcol = XtVaCreateManagedWidget("ModelConfirm",
				  xmRowColumnWidgetClass, pane,
				  XmNorientation, XmHORIZONTAL,
				  NULL );

	create_std_buttons( rowcol, (XtCallbackProc)model_confirm );

}
예제 #2
0
void create_model_menu ( Widget parent )
{
int	   ii;
long	   jj;
Widget	   widget, submenu, ssubmenu;
Arg	    args[5];
Cardinal    argcnt;

/*----------------------------------------------------------------------*/

	get_models();

	argcnt = 0;
	XtSetArg(args[argcnt], XmNcolormap, gemmap); argcnt++;
	XtSetArg(args[argcnt], XmNvisual,   gemvis); argcnt++;
	submenu = XmCreatePulldownMenu( XtParent(parent), "submenu",
					args, argcnt);

	XtVaSetValues(parent, XmNsubMenuId, submenu, NULL);

	for(ii = 0; ii < ModelNo; ii++) {
		widget = XtVaCreateManagedWidget ( ModelStr[ii].model_name,
				   xmCascadeButtonWidgetClass, submenu,
				   NULL );

		if ( ModelStr[ii].nfile > 0 ) {

		   argcnt = 0;
		   XtSetArg(args[argcnt], XmNcolormap, gemmap); argcnt++;
		   XtSetArg(args[argcnt], XmNvisual,   gemvis); argcnt++;
		   ssubmenu = XmCreatePulldownMenu( submenu, "submenu",
					args, argcnt);

		   XtVaSetValues( widget, XmNsubMenuId, ssubmenu, NULL);

		   for( jj=0; jj < ModelStr[ii].nfile; jj++) {
		      widget = XtVaCreateManagedWidget (
				   ModelStr[ii].file_names[jj],
				   xmPushButtonWidgetClass, ssubmenu,
				   XmNuserData, ii,
				   NULL );

		      XtAddCallback(widget, XmNactivateCallback,
				(XtCallbackProc)menu_select_models,
				(XtPointer)jj );
		   }

		}
	}

}
예제 #3
0
void make_test_train(bool async)
{
    auto estimator = train_estimator(async);
    const auto centers = estimator->get_trained_centers();
    const auto exp_centers = mkcol({5.5, 8});
    assert_equal_containers(exp_centers, centers, SPOT);
    const auto& models = estimator->get_models();
    assert_equal(2u, models.size());
    const auto X = get_X();
    assert_equal_containers(X, models[0]->train_X, SPOT);
    assert_equal_containers(X, models[1]->train_X, SPOT);
    const auto target1 = mkcol({dyes, dyes, dno, dno, dno});
    const auto target2 = mkcol({dno, dno, dyes, dyes, dyes});
    assert_equal_containers(target1, models[0]->train_y, SPOT);
    assert_equal_containers(target2, models[1]->train_y, SPOT);
}
예제 #4
0
/*=====================================================================*/
void update_modellist ( void ) 
{
    get_models();
}