Lines Matching defs:fp
182 // It is passed a function object FP that should fingerprint entries
184 // VectorBiTable constructs the FP object. The user can instead
187 template <class I, class T, class FP>
190 explicit VectorBiTable(FP *fp = 0) : fp_(fp ? fp : new FP()) {}
195 ssize_t fp = (*fp_)(entry);
196 if (fp >= fp2id_.size())
197 fp2id_.resize(fp + 1);
198 I &id_ref = fp2id_[fp];
210 const FP &Fingerprint() const { return *fp_; }
213 FP *fp_;
223 // vector. The fingerprinting functor FP returns a unique fingerprint
227 template <class I, class T, class S, class FP, class H>
233 VectorHashBiTable(S *s, FP *fp, H *h,
237 fp_(fp),
256 uint64 fp = (*fp_)(entry);
257 if (fp2id_.size() <= fp)
258 fp2id_.resize(fp + 1, 0);
259 if (fp2id_[fp] == 0) {
261 fp2id_[fp] = id2entry_.size();
263 return fp2id_[fp] - 1; // NB: assoc_value = ID + 1
286 const FP &Fingerprint() const { return *fp_; }
327 FP *fp_; // Fingerprint used when hashing entry into vector
344 template <class I, class T, class S, class FP, class H>
345 const I VectorHashBiTable<I, T, S, FP, H>::kEmptyKey = -1;
347 template <class I, class T, class S, class FP, class H>
348 const I VectorHashBiTable<I, T, S, FP, H>::kCurrentKey = -2;