src/ell/LandscapeTopology.hh
Go to the documentation of this file.00001 #ifndef LANDSCAPETOPOLOGY_HH_
00002 #define LANDSCAPETOPOLOGY_HH_
00003
00004 #include "ell/State.hh"
00005
00006 #include <string>
00007
00008 namespace ell {
00009
00016 class LandscapeTopology {
00017
00018 protected:
00019
00023 static
00024 bool isSmaller_E_S(const State* a, const State* b);
00025
00026
00027
00028 public:
00029
00032 static const size_t INVALID_INDEX;
00033
00035 virtual
00036 ~LandscapeTopology();
00037
00043 virtual
00044 bool
00045 addSaddle(const size_t i, const size_t j, const State* const s) = 0;
00046
00052 virtual
00053 bool
00054 addSaddle(const State* const m_i, const State* const m_j, const State* const s) = 0;
00055
00062 virtual
00063 const size_t
00064 addMin(const State* const m) = 0;
00065
00070 virtual
00071 const size_t
00072 getMinIndex(const State* const m) const = 0;
00073
00076 virtual
00077 const size_t
00078 getMinCount() const = 0;
00079
00083 virtual
00084 const State* const
00085 getMin(size_t i) const = 0;
00086
00091 virtual
00092 const State* const
00093 getMFEState() const = 0;
00094
00098 virtual
00099 double
00100 getRMSD(const LandscapeTopology* const lt) const = 0;
00101
00104 virtual
00105 void
00106 sort() = 0;
00107
00111 virtual
00112 bool
00113 isSorted() const = 0;
00114
00117 virtual
00118 void
00119 clear() = 0;
00120
00125 virtual
00126 void
00127 write( std::ostream & out, const std::string & StateDescription ) const = 0;
00128
00141 virtual
00142 std::pair<int,std::string>
00143 read( std::istream & in,
00144 const State * const templateState,
00145 const std::string & StateDescription ) = 0;
00146
00147 };
00148
00149 }
00150
00151
00152 #endif