void update() { set_nb(gv(Form2->Edit1->Text)); // nb = gv(Form2->Edit1->Text); // k = gv(Form2->Edit2->Text); set_k(gv(Form2->Edit2->Text)); set_E(doub_gv(Form2->Edit4->Text)); set_G(doub_gv(Form2->Edit5->Text)); // E = doub_gv(Form2->Edit4->Text); // G = doub_gv(Form2->Edit5->Text); }
int AES::cargar_fichero (char fichero[]) { ifstream flujo; flujo.open(fichero); if (flujo.is_open()) { string aux_k, aux_m; flujo>>aux_m; flujo>>aux_k; if ((aux_k.size()!=MAX*2)||(aux_m.size()!=MAX*2))//Error, no son 4x4=16*2=32 return 1; set_m(hexstr_to_binstr(aux_m)); set_k(hexstr_to_binstr(aux_k)); round_key = k; flujo.close(); return 0; }
int main(int argc, char **argv) { FILE *input; FILE *repeats = 0; FILE *output; int start_x, end_x, start_y, end_y; debug_config(progname); get_options(argc, argv, progname); unsigned long start_mem, cand_mem, table_mem; input = fopen(sequence_filename, "r"); if(!input) fatal("couldn't open %s: %s\n",sequence_filename,strerror(errno)); if(repeat_filename) { repeats = fopen(repeat_filename, "r"); if(!repeats) fatal("couldn't open %s: %s\n",repeat_filename,strerror(errno)); } if(output_filename) { output = fopen(output_filename, "w"); } else { output = stdout; } // Data is in the form: // >id metadata // data // >id metadata // data // >> // ... set_k(kmer_size); set_window_size(window_size); // If we only give one file, do an all vs. all // on them. if(!second_sequence_filename) { num_seqs = load_seqs(input); start_x = 0; end_x = num_seqs; start_y = 0; end_y = num_seqs; } // If we had two files, do not compare ones from // the same file to each other. else { FILE *input2 = fopen(second_sequence_filename, "r"); if(!input2) { fprintf(stderr, "Could not open file %s for reading.\n", second_sequence_filename); exit(1); } num_seqs = load_seqs_two_files(input, &end_x, input2, &end_y); start_x = 0; start_y = end_x; debug(D_DEBUG,"First file contains %d sequences, stored from (%d,%d].\n", end_x, start_x, end_x); debug(D_DEBUG,"Second file contains %d sequences, stored from (%d,%d].\n", end_y-end_x, start_y, end_y); } fclose(input); debug(D_DEBUG,"Loaded %d sequences\n",num_seqs); init_cand_table(num_seqs * 5); init_mer_table(num_seqs * 5); if(repeats) { int repeat_count = init_repeat_mer_table(repeats, 2000000, 0); fclose(repeats); debug(D_DEBUG,"Loaded %d repeated mers\n", repeat_count); } if(rectangle_size == -1) { // Do get_mem_avail*0.95 to leave some memory for overhead rectangle_size = DYNAMIC_RECTANGLE_SIZE(max_mem_kb); debug(D_DEBUG,"Mem avail: %lu, rectangle size: %d\n",(unsigned long)MEMORY_FOR_MERS(max_mem_kb), rectangle_size); } int curr_start_x = start_x; int curr_start_y = start_y; candidate_t *output_list = 0; int num_in_list; while(curr_start_y < end_y) { while(curr_start_x < end_x) { if(start_x == start_y) { debug(D_DEBUG,"Loading mer table (%d,%d)\n", curr_rect_x, curr_rect_y); } else { debug(D_DEBUG,"Loading mer table for [%d,%d) and [%d,%d)\n",curr_start_x, MIN(curr_start_x + rectangle_size, end_x), curr_start_y, MIN(curr_start_y + rectangle_size, end_y)); } start_mem = get_mem_usage(); load_mer_table_subset(curr_start_x, MIN(curr_start_x + rectangle_size, end_x), curr_start_y, MIN(curr_start_y + rectangle_size, end_y), (curr_start_x == curr_start_y)); table_mem = get_mem_usage(); debug(D_DEBUG,"Finished loading, now generating candidates\n"); debug(D_DEBUG,"Memory used: %lu\n", table_mem - start_mem); generate_candidates(); cand_mem = get_mem_usage(); debug(D_DEBUG,"Total candidates generated: %llu\n", (long long unsigned int) total_cand); debug(D_DEBUG,"Candidate memory used: %lu\n", cand_mem - table_mem); output_list = retrieve_candidates(&num_in_list); output_candidate_list(output, output_list, num_in_list); free(output_list); fflush(output); debug(D_DEBUG,"Now freeing\n"); free_cand_table(); free_mer_table(); debug(D_DEBUG,"Successfully output and freed!\n"); curr_rect_x++; curr_start_x += rectangle_size; } curr_rect_y++; curr_start_y += rectangle_size; curr_rect_x = curr_rect_y; if(start_y == 0) { curr_start_x = curr_start_y; } else { curr_start_x = start_x; } } fclose(output); return 0; }