]> ruin.nu Git - germs.git/blobdiff - src/modelidentifier.cpp
More help output
[germs.git] / src / modelidentifier.cpp
index 98fae9bbc48c2261dec4648efd6edb3b4733a435..a7c67b82c77c5ed3e01335158755221693b2f09d 100644 (file)
@@ -22,6 +22,8 @@
 #include "genealgorithms.h"
 
 #include <doublefann.h>
+#include "models.h"
+#include "model.h"
 
 using namespace std;
 
@@ -36,7 +38,7 @@ ModelIdentifier::~ModelIdentifier(){
        fann_destroy(_ann);
 }
 
-std::map<ModelIdentifier::Model,double> ModelIdentifier::identify(const GeneOrder& go){
+priority_queue<pair<double,Model> > ModelIdentifier::identify(const GeneOrder& go){
        int pos = 0;
        int neg = 0;
        for (GeneOrder::iterator g = go.begin(); g != go.end(); ++g){
@@ -78,11 +80,11 @@ std::map<ModelIdentifier::Model,double> ModelIdentifier::identify(const GeneOrde
 
        double *output = fann_run(_ann,&input[0]);
 
-       map<Model,double> scores;
-       scores[X] = output[0];
-       scores[Zipper] = output[1];
-       scores[Whirl] = output[2];
-       scores[FatX] = output[3];
-       scores[Cloud] = output[4];
+       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::Whirl)));
+       scores.push(pair<double,Model>(output[3],Model(new Models::FatX)));
+       scores.push(pair<double,Model>(output[4],Model(new Models::Cloud)));
        return scores;
 }