class GeneOrder;
struct Component;
-
+/**
+ * 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;
};
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);
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);