src/ell/LT_MinimaSet.hh
Go to the documentation of this file.00001 #ifndef MINIMANET_
00002 #define MINIMANET_
00003
00004 #include "ell/LandscapeTopology.hh"
00005 #include "ell/State.hh"
00006
00007 #include <vector>
00008 #include <iostream>
00009 #include <string>
00010
00011 namespace ell {
00012
00013
00020 class LT_MinimaSet: public LandscapeTopology {
00021
00022 protected:
00024 mutable std::vector<const State*> vMinima;
00026 size_t mfeIndex;
00028 bool sorted;
00029
00030 public:
00031
00034 static const std::string LT_ID;
00035
00037 LT_MinimaSet();
00039 LT_MinimaSet(const LT_MinimaSet& toCopy);
00041 virtual
00042 ~LT_MinimaSet();
00043
00045
00051 virtual
00052 bool
00053 addSaddle(const size_t i, const size_t j, const State* const s);
00054
00060 virtual
00061 bool
00062 addSaddle(const State* const m_i, const State* const m_j, const State* const s);
00063
00070 virtual
00071 const size_t
00072 addMin(const State* const m);
00073
00078 virtual
00079 const size_t
00080 getMinIndex(const State* const m) const;
00081
00084 virtual
00085 const size_t
00086 getMinCount() const;
00087
00091 virtual
00092 const State* const
00093 getMin(size_t i) const;
00094
00097 virtual
00098 const std::vector<const State*> &
00099 getAllMin() const;
00100
00105 virtual
00106 const State* const
00107 getMFEState() const;
00108
00111 virtual
00112 void
00113 sort();
00114
00118 virtual
00119 bool
00120 isSorted() const;
00121
00130 virtual
00131 double
00132 getDistance(const LandscapeTopology* const lt) const;
00133
00136 virtual
00137 void
00138 clear();
00139
00144 virtual
00145 void
00146 write( std::ostream & out,
00147 const bool writeGraph = false ) const;
00148
00158 virtual
00159 std::pair<int,std::string>
00160 read( std::istream & in,
00161 const State * const templateState );
00162
00163
00167 virtual
00168 LT_MinimaSet&
00169 operator = ( const LT_MinimaSet& toCopy );
00170
00171 };
00172
00173 }
00174
00175
00176
00177 #endif