bool SchurPrecond<TAlgebra>:: preprocess(SmartPtr<MatrixOperator<matrix_type, vector_type> > A) { try{ // status UG_DLOG(SchurDebug, 2, "\n% Initializing SCHUR precond: \n"); m_pA = A; if(check_requirements() == false) return false; // Determine slicing for SchurComplementOperator std::vector<slice_desc_type> skeletonMark; get_skeleton_slicing(A, skeletonMark); // create & init local Schur complement object if(create_and_init_local_schur_complement(A, skeletonMark) == false) return false; // configure schur complement solver init_skeleton_solver(); // status UG_DLOG(SchurDebug, 1, "\n% 'SchurPrecond::init()' done!\n"); // we're done return true; }UG_CATCH_THROW("SchurPrecond::" << __FUNCTION__ << " failed"); return false; } /* end 'SchurPrecond::preprocess()' */
//-------------------------------------------------------------------------------------------------- void check_requirements( Node *n ) { if(n == NIL) { return; } if(n->color == RED) { check(n->left->color == BLACK, "check_requirements: n->left->color != BLACK"); check(n->right->color == BLACK, "check_requirements: n->right->color != BLACK"); check(n->parent->color == BLACK, "check_requirements: n->parent->color != BLACK"); } check_requirements(n->left); check_requirements(n->right); error: return; }
int main(int argc, char *argv[]) { char *dev, errbuf[PCAP_ERRBUF_SIZE]; pcap_t *handle; print_app_banner(); check_requirements(); init_pcap(); return(0); }
int create_live_local_session(char **session_path, char **session_name, int print) { int ret; char *name; int sudo = 0; ret = check_requirements(&sudo); name = random_session_name(); if (!name) { ret = -1; goto end; } ret = check_session_name(name, sudo); if (ret < 0) { goto end_free; } ret = live_local_session(name, sudo); if (ret < 0) { goto end_free; } ret = enable_events(name, sudo); if (ret < 0) { goto end_free; } ret = add_contexts(name, sudo); if (ret < 0) { goto end_free; } ret = start(name, sudo, 0, print); if (ret < 0) { goto end_free; } if (session_path) *session_path = live_path(name); if (session_name) { *session_name = name; goto end; } end_free: free(name); end: return ret; }
int create_local_session() { int ret; char *name; int sudo = 0; ret = check_requirements(&sudo); name = random_session_name(); if (!name) { ret = -1; goto end; } ret = check_session_name(name, sudo); if (ret < 0) { goto end_free; } ret = local_session(name, sudo); if (ret < 0) { goto end_free; } ret = enable_events(name, sudo); if (ret < 0) { goto end_free; } ret = add_contexts(name, sudo); if (ret < 0) { goto end_free; } ret = start(name, sudo, 1, 1); if (ret < 0) { goto end_free; } end_free: free(name); end: return ret; }
int main (int argc, char *argv[]) { setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); signal (SIGCHLD, on_sigchld); gtk_init (&argc, &argv); gconf_client = gconf_client_get_default (); gconf_client_add_dir (gconf_client, CONF_DIR, GCONF_CLIENT_PRELOAD_NONE, NULL); gconf_client_notify_add (gconf_client, CONF_STASHES, on_change_conf_stashes, NULL, NULL, NULL); read_config (); check_requirements (); // festering mount points std::vector<CryptPoint>::iterator it; for (it = cryptPoints.begin (); it != cryptPoints.end (); ++it) { if (!config_keep_mountpoints) rmdir ((*it).GetMountDir ()); } sico = gtk_status_icon_new_from_stock (GTK_STOCK_DIALOG_AUTHENTICATION); g_signal_connect(G_OBJECT(sico), "activate", G_CALLBACK(sico_activated), NULL); g_signal_connect(G_OBJECT(sico), "popup-menu", G_CALLBACK(sico_right_button_activated), NULL); create_stash_wizard = new CreateStashWizard (); import_stash_wizard = new ImportStashWizard (); config_dialog = new ConfigDialog (); gtk_main (); return 0; }
void insert( const char *name ) { debug("Insert node: %s", name); // Is name exceeding MAX_NAME_LENGTH chars? unsigned int len = strlen(name); // MAX_NAME_LENGTH is 59 bytes+'\0' check(len<MAX_NAME_LENGTH, "Insert: Name exceeds maximal length."); // Allocate and initialize a new node Node *n = malloc(sizeof(Node)); check_mem(n); n->parent = NULL; n->left = NIL; n->right = NIL; n->color = RED; strncpy(n->name, name, len); n->name[len] = '\0'; if(root == NULL) { ins_count = 0; dbl_count = 0; del_count = 0; root = n; } else { // if already exsits skip if(find_by_name(n->name)) { debug("Insert node: %salready exists", n->name); dbl_count++; free(n); return; } // search for the proper place to include the node Node *current = root; while (1) { // debug("Cmp %s with %s", n->name, current->name); int res = strcmp(n->name, current->name); if(res < 0) { if(current->left == NIL) { current->left = n; n->parent = current; break; } else { current = current->left; } } else if(res > 0) { if(current->right == NIL) { current->right = n; n->parent = current; break; } else { current = current->right; } } } } // ensure red black tree properties fix_rb_tree(n); ins_count++; debug("Insert Counter: %d\n", ins_count); // check for properties check_requirements(root); error: return; }