int GBKernelComputation::calc() { // First find the skeleton for (int i = 0; i < gb.length(); i++) new_pairs(i); // Debug code GBMatrix *mm = new GBMatrix(G); for (int p = 0; p < syzygies.length(); p++) mm->append(GR->gbvector_copy(syzygies[p])); buffer o; Matrix *m = mm->to_matrix(); if (M2_gbTrace >= 5) { o << "skeleton = " << newline; m->text_out(o); emit(o.str()); } // Sort the skeleton now? // Now reduce each one of these elements for (int j = 0; j < syzygies.length(); j++) { gbvector *v = s_pair(syzygies[j]); reduce(v, syzygies[j]); } return COMP_DONE; }
void Forwarder::read_data_structure_from_stream(std::ifstream &in) { read_token_or_exit(in, "orig_alphabet_size"); orig_alphabet_size = read_or_exit<size_t>(in, "original alphabet size"); read_token_or_exit(in, "orig_seq_length"); orig_seq_length = read_or_exit<size_t>(in, "original alphabet size"); read_token_or_exit(in, "nStates2alphabet_size"); while(!read_token_or_tell(in, "symbol2pair")) { size_t no_states = read_or_exit<size_t>(in, "no_states"); nStates2alphabet_size[no_states] = read_or_exit<size_t>(in, "alphabet_size"); } for(size_t i = orig_alphabet_size; i < nStates2alphabet_size.begin()->second; ++i) { unsigned pair_symbol = read_or_exit<unsigned>(in, "pair symbol"); unsigned left_symbol = read_or_exit<unsigned>(in, "left symbol"); unsigned right_symbol = read_or_exit<unsigned>(in, "right symbol"); symbol2pair[pair_symbol] = s_pair(left_symbol, right_symbol); } }