Sha256: 04bdec04b33cd78edfa60d83860ddaf6199aa79aa0a887ff029fbf23f3a63867

Contents?: true

Size: 1.24 KB

Versions: 18

Compression:

Stored size: 1.24 KB

Contents

// 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.

// Remember a subset of a sequence of values, using a modest amount of memory

#ifndef ENCODINGS_COMPACT_LANG_DET_SUBSETSEQUENCE_H_
#define ENCODINGS_COMPACT_LANG_DET_SUBSETSEQUENCE_H_

#include "encodings/compact_lang_det/win/cld_basictypes.h"
#include "encodings/compact_lang_det/win/cld_google.h"


class SubsetSequence {
 public:
   void Init();
   void Add(uint8 e);
   void Extract(int n, uint8* dst);
   SubsetSequence() {Init();}
   ~SubsetSequence() {};

 private:
   uint8 Median3(int sub);
   void NewLevel();
   void DoCarries();
   void Flush();

   static const int kMaxLevel_ = 16;    // 3**16 ~=  43M (3**20 ~= 3.4B)
   static const int kMaxSeq_ = 128;

   int k_;
   int next_e_;
   int limit_e_;
   int level_limit_e_;
   uint8 seq_[kMaxSeq_];
   uint8 count_[kMaxLevel_ + 1];        // +1 allows graceful overflow

   DISALLOW_EVIL_CONSTRUCTORS(SubsetSequence);

   // Require enough room to end up with 40 entries plus carrying space
   COMPILE_ASSERT(kMaxSeq_ >= (kMaxLevel_ * 2 + 40), kMaxSeq__is_too_small);
};

#endif  // ENCODINGS_COMPACT_LANG_DET_SUBSETSEQUENCE_H_

Version data entries

18 entries across 18 versions & 4 rubygems

Version Path
cld-0.13.0 ext/cld/encodings/compact_lang_det/subsetsequence.h
language_detection-0.1.1 ext/cld/encodings/compact_lang_det/subsetsequence.h
cld-0.12.0 ext/cld/encodings/compact_lang_det/subsetsequence.h
language_detection-0.1.0 ext/cld/encodings/compact_lang_det/subsetsequence.h
cld-0.11.0 ext/cld/encodings/compact_lang_det/subsetsequence.h
cld-0.10.0 ext/cld/encodings/compact_lang_det/subsetsequence.h
cld-0.8.0 ext/cld/encodings/compact_lang_det/subsetsequence.h
cld-fixed-0.7.1 ext/cld/encodings/compact_lang_det/subsetsequence.h
cld-0.7.0 ext/cld/encodings/compact_lang_det/subsetsequence.h
language_detection-0.0.2 ext/cld/encodings/compact_lang_det/subsetsequence.h
language_detection-0.0.1 ext/cld/encodings/compact_lang_det/subsetsequence.h
cld-0.6.0 ext/cld/encodings/compact_lang_det/subsetsequence.h
cld-0.5.0 ext/cld/encodings/compact_lang_det/subsetsequence.h
krukid-cld-0.4.0 encodings/compact_lang_det/subsetsequence.h
cld-0.4.0 encodings/compact_lang_det/subsetsequence.h
cld-0.3.0 encodings/compact_lang_det/subsetsequence.h
cld-0.2.0 encodings/compact_lang_det/subsetsequence.h
cld-0.1.0 encodings/compact_lang_det/subsetsequence.h