Download tools/mosesdecoder/moses/Syntax/Cube.h from Quagmire1/wiki-cased: direct link, hf CLI and curl.
- Browser
- Download file 1.28 kB
-
https://huggingface.co/Quagmire1/wiki-cased/resolve/main/tools/mosesdecoder/moses/Syntax/Cube.h
- Command line
-
hf download hf://Quagmire1/wiki-cased/tools/mosesdecoder/moses/Syntax/Cube.h
-
curl -L -o Cube.h https://huggingface.co/Quagmire1/wiki-cased/resolve/main/tools/mosesdecoder/moses/Syntax/Cube.h
1.28 kB
| namespace Moses | |
| { | |
| namespace Syntax | |
| { | |
| // A cube -- in the cube pruning sense (see Chiang (2007)) -- that lazily | |
| // produces SHyperedge objects from a SHyperedgeBundle in approximately | |
| // best-first order. | |
| class Cube | |
| { | |
| public: | |
| Cube(const SHyperedgeBundle &); | |
| ~Cube(); | |
| SHyperedge *Pop(); | |
| SHyperedge *Top() const { | |
| return m_queue.top().first; | |
| } | |
| bool IsEmpty() const { | |
| return m_queue.empty(); | |
| } | |
| private: | |
| typedef boost::unordered_set<std::vector<int> > CoordinateSet; | |
| typedef std::pair<SHyperedge *, const std::vector<int> *> QueueItem; | |
| class QueueItemOrderer | |
| { | |
| public: | |
| bool operator()(const QueueItem &p, const QueueItem &q) const { | |
| return p.first->label.futureScore < q.first->label.futureScore; | |
| } | |
| }; | |
| typedef std::priority_queue<QueueItem, std::vector<QueueItem>, | |
| QueueItemOrderer> Queue; | |
| SHyperedge *CreateHyperedge(const std::vector<int> &); | |
| void CreateNeighbour(const std::vector<int> &); | |
| void CreateNeighbours(const std::vector<int> &); | |
| const SHyperedgeBundle &m_bundle; | |
| CoordinateSet m_visited; | |
| Queue m_queue; | |
| }; | |
| } // Syntax | |
| } // Moses | |