+ double length = go.size();
+ vector<double> input(8);
+ input[0] = pos/length;
+ input[1] = neg/length;
+
+ pair<int,int> seqs = longestSequences(go);
+
+ input[2] = seqs.first/length;
+ input[3] = seqs.second/length;
+
+ double cycles = countCycles(go);
+ input[4] = cycles/length;
+
+ vector<Component> comps = findComponents(go);
+
+ pos = 0;
+ neg = 0;
+ int un = 0;
+ for (vector<Component>::iterator c = comps.begin(); c != comps.end(); ++c){
+ if (c->sign > 0)
+ ++pos;
+ else if (c->sign < 0)
+ ++neg;
+ else
+ ++un;
+ }
+
+ input[5] = un/cycles;
+ input[6] = pos/cycles;
+ input[7] = neg/cycles;
+
+ double *output = fann_run(_ann,&input[0]);
+
+ priority_queue<pair<double,Model> > scores;
+ scores.push(pair<double,Model>(output[0],Model(new Models::X)));
+ scores.push(pair<double,Model>(output[1],Model(new Models::Zipper)));
+ scores.push(pair<double,Model>(output[2],Model(new Models::ModelImpl)));
+ scores.push(pair<double,Model>(output[3],Model(new Models::FatX)));
+ scores.push(pair<double,Model>(output[4],Model(new Models::Cloud)));