| |
| |
| #ifndef TCG_SEQUENCE_OPS_H |
| #define TCG_SEQUENCE_OPS_H |
| |
| |
| |
| |
| |
| |
| |
| |
| namespace tcg |
| { |
| namespace sequence_ops |
| { |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| template <typename It, typename Pen> |
| struct EdgeEvaluator { |
| typedef It iterator_type; |
| typedef Pen penalty_type; |
| |
| public: |
| EdgeEvaluator() {} |
| virtual ~EdgeEvaluator() {} |
| |
| |
| |
| |
| |
| virtual iterator_type furthestFrom(const iterator_type &a) = 0; |
| |
| |
| |
| |
| |
| |
| virtual penalty_type penalty(const iterator_type &a, const iterator_type &b) = 0; |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| template <typename ranit_type, typename edge_eval, typename containers_reader> |
| bool minimalPath(ranit_type begin, ranit_type end, edge_eval &evaluator, containers_reader &output); |
| } |
| } |
| |
| #endif |
| |
| #ifdef INCLUDE_HPP |
| #include "hpp/sequence_ops.hpp" |
| #endif |
| |