int main(void){ init_heap_and_dp(); #ifdef DEBUG_MODE print_heap(HEAP_MAX_LENGTH); #endif /* Heap sort */ mark_start(); heap_sort(HEAP_MAX_LENGTH); mark_stop(); get_time_difference(&time_count); printf("Time taken by heap sort: %d\n",(int)time_count.tv_usec); #ifdef DEBUG_MODE print_heap(HEAP_MAX_LENGTH); #endif #ifdef DEBUG_MODE printf("Sort with bitmap.\n"); #endif /* Bitmap sort algorithm */ mark_start(); for (i = 1; i < HEAP_MAX_LENGTH; i++){ set_bit_in_map((unsigned)array[i]); } mark_stop(); get_time_difference(&time_count); printf("Time taken by bitmap sort: %d\n",(int)time_count.tv_usec); #ifdef DEBUG_MODE show_bitmap(); for (i = 1; i < MAP_MAX_LENGTH; i++){ if (check_bit_in_map(i)){ printf("%u\t", i); } } printf("\n"); #endif /* Algorithm: dp */ printf("This is dp result: %d\n", dp_demo(5)); /* Algorithm: BP(artificial network) */ test_aritificial_neural_network(); /* Algorithm: manacher */ test_manacher(); return 0; }
/* ------------------------------------------------------------- // ------ MAIN - replace this by your own aplication! // ------------------------------------------------------------- */ int main(int argn, char *argv[]) { int multipnm=1; job_t job; JOB = &job; setvbuf(stdout, (char *) NULL, _IONBF, 0); /* not buffered */ while (multipnm==1) { job_init(&job); process_arguments(&job, argn, argv); mark_start(&job); multipnm = read_picture(&job); /* separation of main and rest for using as lib this will be changed later => introduction of set_option() for better communication to the engine */ if (multipnm<0) break; /* read error */ /* call main loop */ pgm2asc(&job); mark_end(&job); print_output(&job); job_free(&job); } return 0; }
void edit_interface_rep::key_press (string gkey) { string zero= "a"; zero[0]= '\0'; string key= replace (gkey, "<#0>", zero); if (pre_edit_mark != 0) { ASSERT (sh_mark == 0, "invalid shortcut during pre-edit"); mark_cancel (pre_edit_mark); pre_edit_s= ""; pre_edit_mark= 0; } if (starts (key, "pre-edit:") ) { interrupt_shortcut (); string s= key (9, N(key)); if (s == "") return; int i, n= N(s), pos= N(s); for (i=0; i<n; i++) if (s[i] == ':' && is_int (s (0, i))) { int k= as_int (s (0, i)); s= s (i+1, n); pos= 0; for (int j=0; j<k && pos<N(s); j++) tm_char_forwards (s, pos); break; } pre_edit_s= s; pre_edit_mark= new_marker (); mark_start (pre_edit_mark); archive_state (); insert_tree (compound ("pre-edit", s), path (0, pos)); return; } string new_sh= N(sh_s)==0? key: sh_s * " " * key; if (try_shortcut (new_sh)) return; if (new_sh != key) { interrupt_shortcut (); if (try_shortcut (key)) return; } string rew= sv->kbd_post_rewrite (key); if (N(rew) == 1) { int i ((unsigned char) rew[0]); if ((i >= 32 && i <= 127) || (i >= 128 && i <= 255) || (i == 25)) if (!inside_active_graphics ()) { archive_state (); call ("kbd-insert", rew); } interrupt_shortcut (); } else if (contains_unicode_char (rew)) { archive_state (); call ("kbd-insert", key); interrupt_shortcut (); } else if (DEBUG_KEYBOARD) debug_keyboard << "unrecognized key " << key << ". " << "Undefined shortcut or key missing in the encoding files.\n"; }
bool edit_interface_rep::try_shortcut (string comb) { int status; command cmd; string shorth; string help; sv->get_keycomb (comb, status, cmd, shorth, help); //cout << "Try " << comb << " -> " << shorth << ", " << help //<< "; " << sh_mark << ", " << status << "\n"; if (status != 0) { if (status >= 3) { interrupt_shortcut (); status -= 3; if (status == 0) return false; } else { if (sh_mark != 0 && !mark_cancel (sh_mark)) { sh_mark= 0; return false; } } sh_s= comb; sh_mark= new_marker (); mark_start (sh_mark); archive_state (); string rew_s= sv->kbd_post_rewrite (sh_s); tree rew= sv->kbd_system_rewrite (rew_s); if (N(help)>0) set_message (help, rew); tree rhs= (shorth == rew_s? tree (""): sv->kbd_system_rewrite (shorth)); //cout << "Shortcut: " << sh_s << " -> " << rew << "\n"; if ((search_forwards (" ", comb) >= 0 && comb != " ") || (search_forwards ("-", comb) >= 0 && comb != "-")) { tree t= rhs; if (is_compound (t, "render-key", 1)) t= t[0]; if (is_func (t, WITH)) t= t[N(t)-1]; string r= as_string (t); if (starts (r, "<") && !starts (r, "<#")) if (cork_to_utf8 (r) != r) rhs= tree (CONCAT, rhs, " (" * r(1, N(r)-1) * ")"); call ("set-temporary-message", tree (CONCAT, "keyboard shortcut: ", rew), rhs, shorth == ""? 1: 3000); } if ((status & 1) == 1) cmd (); else if (N(shorth) > 0) call ("kbd-insert", shorth); //cout << "Mark= " << sh_mark << "\n"; return true; } return false; }
/* ------------------------------------------------------------- // ------ MAIN - replace this by your own aplication! // ------------------------------------------------------------- */ int main(int argn, char *argv[]) { int multipnm=1; job_t job1, *job; /* fixme, dont want global variables for lib */ job=OCR_JOB=&job1; setvbuf(stdout, (char *) NULL, _IONBF, 0); /* not buffered */ job_init(job); /* init cfg and db */ process_arguments(job, argn, argv); /* load character data base (JS1002: now outside pgm2asc) */ if ( job->cfg.mode & 2 ) /* check for db-option flag */ load_db(job); /* load_db uses readpnm() and would conflict with multi images */ while (multipnm==1) { /* multi-image loop */ job_init_image(job); /* single image */ mark_start(job); multipnm = read_picture(job); /* separation of main and rest for using as lib this will be changed later => introduction of set_option() for better communication to the engine */ if (multipnm<0) break; /* read error */ /* call main loop */ pgm2asc(job); mark_end(job); print_output(job); job_free_image(job); } return ((multipnm<0)?multipnm:0); /* -1=255 on error, 0 ok */ }
char* gocr_main(job_t* job) { int multipnm=1; char* output; setvbuf(stdout, (char *) NULL, _IONBF, 0); /* not buffered */ /* load character data base (JS1002: now outside pgm2asc) */ if ( job->cfg.mode & 2 ) /* check for db-option flag */ load_db(job); /* load_db uses readpnm() and would conflict with multi images */ while (multipnm==1) { /* multi-image loop */ job_init_image(job); /* single image */ mark_start(job); multipnm = read_picture(job); /* separation of main and rest for using as lib this will be changed later => introduction of set_option() for better communication to the engine */ if (multipnm<0) break; /* read error */ /* call main loop */ pgm2asc(job); mark_end(job); output = print_output(job); job_free_image(job); } // return ((multipnm<0)?multipnm:0); /* -1=255 on error, 0 ok */ return output; }