Exemple #1
0
  void load(unsigned int K, const Corpus& corpus) {
		//	K_(K), V_(corpus.getV()) {
		K_ = K;
		V_ = corpus.getV();

		indices_.resize(V_);
		lengths_.resize(V_);

		indices_[0] = 0;
		lengths_[0] = min(corpus.getWordCount(0), K);
		int total = lengths_[0];

		for (unsigned int ii = 1; ii < V_; ++ii) {
			lengths_[ii] = min(corpus.getWordCount(ii), K);
			indices_[ii] = indices_[ii - 1] + lengths_[ii - 1];
			total += lengths_[ii];
		}

		data_.resize(total);
		for (unsigned int ii = 0; ii < total; ++ii) {
			data_[ii] = 0;
		}
		// Set up M_ and mask_
		M_ = ceil(log2(K));
		mask_ = (1L << (M_)) - 1;
	}