Download tools/mosesdecoder/moses2/SCFG/Stacks.cpp from Quagmire1/wiki-cased: direct link, hf CLI and curl.
- Browser
- Download file 1.17 kB
-
https://huggingface.co/Quagmire1/wiki-cased/resolve/main/tools/mosesdecoder/moses2/SCFG/Stacks.cpp
- Command line
-
hf download hf://Quagmire1/wiki-cased/tools/mosesdecoder/moses2/SCFG/Stacks.cpp
-
curl -L -o Stacks.cpp https://huggingface.co/Quagmire1/wiki-cased/resolve/main/tools/mosesdecoder/moses2/SCFG/Stacks.cpp
1.17 kB
| using namespace std; | |
| namespace Moses2 | |
| { | |
| namespace SCFG | |
| { | |
| Stacks::~Stacks() | |
| { | |
| for (size_t i = 0; i < m_cells.size(); ++i) { | |
| std::vector<Stack*> &inner = m_cells[i]; | |
| for (size_t j = 0; j < inner.size(); ++j) { | |
| Stack *stack = inner[j]; | |
| delete stack; | |
| } | |
| } | |
| } | |
| void Stacks::Init(SCFG::Manager &mgr, size_t size) | |
| { | |
| m_cells.resize(size); | |
| for (size_t startPos = 0; startPos < size; ++startPos) { | |
| std::vector<Stack*> &inner = m_cells[startPos]; | |
| inner.reserve(size - startPos); | |
| for (size_t endPos = startPos; endPos < size; ++endPos) { | |
| inner.push_back(new Stack(mgr)); | |
| } | |
| } | |
| } | |
| void Stacks::OutputStacks() const | |
| { | |
| size_t size = m_cells.size(); | |
| for (size_t startPos = 0; startPos < size; ++startPos) { | |
| cerr.width(3); | |
| cerr << startPos << " "; | |
| } | |
| cerr << endl; | |
| for (size_t width = 1; width <= size; width++) { | |
| for( size_t space = 0; space < width-1; space++ ) { | |
| cerr << " "; | |
| } | |
| for (size_t startPos = 0; startPos <= size-width; ++startPos) { | |
| cerr.width(3); | |
| cerr << GetStack(startPos, width).GetSize() << " "; | |
| } | |
| cerr << endl; | |
| } | |
| } | |
| } | |
| } | |