src/ell/LT_Funnels.hh
Go to the documentation of this file.00001 #ifndef LT_FUNNELS_HH_
00002 #define LT_FUNNELS_HH_
00003
00004 namespace ell
00005 {
00006
00023 class LT_Funnels
00024 {
00025 protected:
00026
00030 class Node {
00031 public:
00033 const State* minimum;
00035 Node* saddleTo;
00037 const State* saddleValue;
00038 };
00039
00040 protected:
00041
00042
00043
00044 public:
00045 LT_Funnels();
00046 virtual ~LT_Funnels();
00047
00056 virtual
00057 bool
00058 addSaddle(const size_t i, const size_t j, const State* const s);
00059
00068 virtual
00069 bool
00070 addSaddle(const State* const m_i, const State* const m_j, const State* const s);
00071
00078 virtual
00079 const size_t
00080 addMin(const State* const m);
00081
00086 virtual
00087 const size_t
00088 getMinIndex(const State* const m) const;
00089
00092 virtual
00093 const size_t
00094 getMinCount() const;
00095
00099 virtual
00100 const State* const
00101 getMin(size_t i) const;
00102
00106 virtual
00107 const State* const
00108 getMFEState() const;
00109
00118 virtual
00119 double
00120 getDistance(const LandscapeTopology* const lt) const;
00121
00124 virtual
00125 void
00126 sort();
00127
00131 virtual
00132 bool
00133 isSorted() const;
00134
00137 virtual
00138 void
00139 clear();
00140
00145 virtual
00146 void
00147 write( std::ostream & out,
00148 const bool writeGraph = false ) const;
00149
00159 virtual
00160 std::pair<int,std::string>
00161 read( std::istream & in,
00162 const State * const templateState );
00163 };
00164
00165
00166
00167 }
00168
00169 #endif