diff options
author | Patrick Simianer <p@simianer.de> | 2011-10-19 14:02:34 +0200 |
---|---|---|
committer | Patrick Simianer <p@simianer.de> | 2011-10-19 14:02:34 +0200 |
commit | 9beaeb42b71fa504bfa41a402cb17eb6ac4001af (patch) | |
tree | 0add4afabc526391753e4e6b9443a7bf21e3e2c3 /klm/lm/trie.hh | |
parent | ce3b4db94d40c111ede321ac6de2bb061a81c4af (diff) | |
parent | 09297047e446f49804d3f48bf320cdbd38d6396a (diff) |
merge upstream/master
Diffstat (limited to 'klm/lm/trie.hh')
-rw-r--r-- | klm/lm/trie.hh | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/klm/lm/trie.hh b/klm/lm/trie.hh index 53612064..06cc96ac 100644 --- a/klm/lm/trie.hh +++ b/klm/lm/trie.hh @@ -94,10 +94,19 @@ template <class Quant, class Bhiksha> class BitPackedMiddle : public BitPacked { void LoadedBinary() { bhiksha_.LoadedBinary(); } - bool Find(WordIndex word, float &prob, float &backoff, NodeRange &range) const; + bool Find(WordIndex word, float &prob, float &backoff, NodeRange &range, uint64_t &pointer) const; bool FindNoProb(WordIndex word, float &backoff, NodeRange &range) const; + NodeRange ReadEntry(uint64_t pointer, float &prob) { + uint64_t addr = pointer * total_bits_; + addr += word_bits_; + quant_.ReadProb(base_, addr, prob); + NodeRange ret; + bhiksha_.ReadNext(base_, addr + quant_.TotalBits(), pointer, total_bits_, ret); + return ret; + } + private: Quant quant_; Bhiksha bhiksha_; |