]> ruin.nu Git - germs.git/blobdiff - src/genealgorithms.h
adding countCycles, findComponents, findIntervals declaration, with initial tests
[germs.git] / src / genealgorithms.h
index 4c519a7e3167a40384893a86dea243f20d1ac6d9..4c938e394bd42fa1ea3eb710239811dd32277e99 100644 (file)
 
 class GeneOrder;
 
+struct Component{
+       Component(int b,int e,int s):begin(b),end(e),sign(s){}
+       int begin;
+       int end;
+       int sign;
+};
+typedef std::pair<size_t,size_t> Interval;
+
 /**
  * Returns the length of the longest increasing sequence and the longest
  * decreasing sequence.
@@ -35,5 +43,20 @@ std::pair<int,int> longestSequences(const GeneOrder& go);
  */
 std::vector<std::vector<int> > robinsonSchensted(const GeneOrder& go);
 
+/**
+ * Counts the number of cycles in the gene order.
+ */
+int countCycles(const GeneOrder& go);
+
+/**
+ * Finds the components in the gene order.
+ */
+std::vector<Component> findComponents(const GeneOrder& go);
+
+/**
+ * Find intervals.
+ */
+std::vector<Interval> findIntervals(const GeneOrder& go);
+
 #endif