X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=src%2Fgenealgorithms.h;h=7f07d17f47476f617018e62494b7cb0ed9e738c6;hb=e44303f027e957d05c9e9418fbd68171f3707599;hp=b0e75b9f65790e184eabe46b6bf9ec9dba8d1002;hpb=65f449adad91a229757c0317c27ad9fb87a4d222;p=germs.git diff --git a/src/genealgorithms.h b/src/genealgorithms.h index b0e75b9..7f07d17 100644 --- a/src/genealgorithms.h +++ b/src/genealgorithms.h @@ -27,6 +27,9 @@ class GeneOrder; 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; @@ -46,7 +49,12 @@ std::vector > robinsonSchensted(const GeneOrder& go); /** * Counts the number of cycles in the gene order. */ -int countCycles(const GeneOrder& go); +size_t countCycles(const GeneOrder& go); + +/** + * Calculates the inversion distance for this gene order + */ +size_t inversionDistance(const GeneOrder& go); /** * Finds the components in the gene order.