]> ruin.nu Git - germs.git/blobdiff - src/genealgorithms.h
DOC: more doxygen documentation
[germs.git] / src / genealgorithms.h
index 6bc133fa96174478746cd828659a476e02ea52ec..59e8f9caee921c452553829d3b1e66bedf32250b 100644 (file)
 #include <vector>
 
 class GeneOrder;
+struct Component;
 
-struct Component{
-       Component(int b,int e,int s):begin(b),end(e),sign(s){}
-       bool operator==(const Component& c){
-               return begin == c.begin && end == c.end && sign == c.sign;
-       }
-       int begin;
-       int end;
-       int sign;
-};
-
+/**
+ * Simple interval struct, holds the indexes + information if the interval is
+ * oriented or not.
+ */
 struct Interval{
        Interval(size_t f,size_t s,bool o = false):first(f),second(s),oriented(o){}
        bool operator==(const Interval& i){
                return first == i.first && second == i.second && oriented == i.oriented;
        }
+       //!The start index for this elementary interval
        size_t first;
+       //!The end interval for this elementary interval
        size_t second;
        bool oriented;
 };
@@ -52,6 +49,8 @@ struct Interval{
 std::pair<int,int> longestSequences(const GeneOrder& go);
 
 /**
+ * Uses the Robinson-Schensted algorithm on the gene order. Gives the longest
+ * increasing and decreasing subsequences.
  */
 std::vector<std::vector<int> > robinsonSchensted(const GeneOrder& go);
 
@@ -76,7 +75,9 @@ std::vector<Component> findComponents(const GeneOrder& go);
 std::vector<Interval> findIntervals(const GeneOrder& go);
 
 /**
- * Creates a list with the intervals at each point.
+ * Creates a list with the intervals at each point. The first and second members
+ * of the returned Intervals are elementary intervals that start, or end, at the
+ * specific point.
  */
 std::vector<Interval> findIntervalsAtPoints(const std::vector<Interval>& intervals);