Index: third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/tote.h |
=================================================================== |
--- third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/tote.h (revision 0) |
+++ third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/tote.h (revision 0) |
@@ -0,0 +1,89 @@ |
+// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef I18N_ENCODINGS_COMPACT_LANG_DET_TOTE_H_ |
+#define I18N_ENCODINGS_COMPACT_LANG_DET_TOTE_H_ |
+ |
+#include <stdio.h> |
+#include "third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/win/cld_basictypes.h" |
+ |
+// Take a set of <key, value> pairs and tote them up. |
+// After explicitly sorting, retrieve top key, value pairs |
+class Tote { |
+ public: |
+ Tote(); |
+ ~Tote(); |
+ void Reinit(); |
+ void AddGram(); |
+ void Add(uint8 ikey, int idelta); |
+ void AddBytes(int ibytes) {byte_count_ += ibytes;} |
+ int CurrentTopKey(); |
+ void Sort(int n); |
+ void Dump(FILE* f); |
+ uint16 GetGramCount() const {return gram_count_;} |
+ uint16 GetIncrCount() const {return incr_count_;} |
+ int GetByteCount() const {return byte_count_;} |
+ int MaxSize() const {return kMaxSize_;} |
+ uint8 Key(int i) const {return key_[i];} |
+ int Value(int i) const {return value_[i];} |
+ void SetGramCount(uint16 v) {gram_count_ = v;} |
+ void SetIncrCount(uint16 v) {incr_count_ = v;} |
+ void SetKey(int i, int v) {key_[i] = v;} |
+ void SetValue(int i, int v) {value_[i] = v;} |
+ |
+ private: |
+ static const int kMaxSize_ = 24; |
+ uint16 gram_count_; // Number of quadgrams/etc. scored |
+ uint16 incr_count_; // Number of Add calls (1-3 per gram) |
+ int byte_count_; // Bytes of text scored |
+ // Align at multiple of 8 bytes |
+ uint8 key_[kMaxSize_]; // Lang unassigned = 0, valid = 1..255 |
+ int value_[kMaxSize_]; // Probability score sum |
+}; |
+ |
+ |
+// Take a set of <key, value, reliability> triples and tote them up. |
+// After explicitly sorting, retrieve top key, value, reliability triples |
+class ToteWithReliability { |
+ public: |
+ ToteWithReliability(); |
+ ~ToteWithReliability(); |
+ void Reinit(); |
+ void Add(uint8 ikey, int ibytes, int score, int ireliability); |
+ int Find(uint8 ikey); |
+ void AddClosePair(int subscr, int val) {closepair_[subscr] += val;} |
+ int CurrentTopKey(); |
+ void Sort(int n); |
+ void Dump(FILE* f); |
+ |
+ ////void AddSeq(uint8 ikey) {ss_.Add(ikey);} |
+ ////void ExtractSeq(int n, uint8* dst) {ss_.Extract(n, dst);} |
+ |
+ int GetIncrCount() const {return incr_count_;} |
+ int GetClosePair(int subscr) const {return closepair_[subscr];} |
+ int MaxSize() const {return kMaxSize_;} |
+ uint8 Key(int i) const {return key_[i];} |
+ int Value(int i) const {return value_[i];} |
+ int Score(int i) const {return score_[i];} |
+ int Reliability(int i) const {return reliability_[i];} |
+ void SetKey(int i, int v) {key_[i] = v;} |
+ void SetValue(int i, int v) {value_[i] = v;} |
+ void SetScore(int i, int v) {score_[i] = v;} |
+ void SetReliability(int i, int v) {reliability_[i] = v;} |
+ |
+ private: |
+ static const int kMaxSize_ = 24; |
+ static const int kMaxClosePairSize_ = 8; |
+ int incr_count_; // Number of Add calls |
+ int sorted_; // Contents have been sorted, cannot Add |
+ // Align at multiple of 8 bytes |
+ int closepair_[kMaxClosePairSize_]; |
+ uint8 key_[kMaxSize_]; // Lang unassigned = 0, valid = 1..255 |
+ int value_[kMaxSize_]; // Bytecount this lang |
+ int score_[kMaxSize_]; // Probability score sum |
+ int reliability_[kMaxSize_]; // Percentage 0..100 |
+ ////SubsetSequence ss_; |
+}; |
+ |
+#endif // I18N_ENCODINGS_COMPACT_LANG_DET_TOTE_H_ |
Property changes on: third_party\cld\bar\toolbar\cld\i18n\encodings\compact_lang_det\tote.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |