X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=src%2Fgenealgorithms.h;h=59e8f9caee921c452553829d3b1e66bedf32250b;hb=refs%2Ftags%2Fv0.1;hp=1d74e7130862188d4ff8e0ad57bf8a656e7d6023;hpb=dcd966c5fca7dca53ca1f605f70f13f019d29771;p=germs.git diff --git a/src/genealgorithms.h b/src/genealgorithms.h index 1d74e71..59e8f9c 100644 --- a/src/genealgorithms.h +++ b/src/genealgorithms.h @@ -26,13 +26,18 @@ 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; }; @@ -44,6 +49,8 @@ struct Interval{ std::pair longestSequences(const GeneOrder& go); /** + * Uses the Robinson-Schensted algorithm on the gene order. Gives the longest + * increasing and decreasing subsequences. */ std::vector > robinsonSchensted(const GeneOrder& go); @@ -68,7 +75,9 @@ std::vector findComponents(const GeneOrder& go); std::vector 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 findIntervalsAtPoints(const std::vector& intervals);