Lines Matching defs:Subset
105 float delta; // Quantization delta for subset weights
221 typedef slist<Element> Subset;
222 typedef map<Label, Subset*> LabelMap;
246 Subset *subset = new Subset;
247 subset->push_front(element);
248 return FindState(subset);
252 Subset *subset = subsets_[s];
254 for (typename Subset::iterator siter = subset->begin();
255 siter != subset->end();
264 // Finds the state corresponding to a subset. Only creates a new state
265 // if the subset is not found in the subset hash. FindState takes
266 // ownership of the subset argument (so that it doesn't have to copy it
270 // associative container subset_hash_ are of the form (subset,
271 // id(subset) + 1), i.e. subset_hash_[subset] > 0 if subset has been
273 // subset_hash_[subset] creates a new pair (subset, 0). As a result,
274 // subset_hash_[subset] == 0 iff subset is new.
275 StateId FindState(Subset *subset) {
276 StateId &assoc_value = subset_hash_[subset];
277 if (assoc_value == 0) { // subset wasn't present; assign it a new ID
278 subsets_.push_back(subset);
281 delete subset;
301 // Constructs destination subsets per label. At return, subset
305 Subset *src_subset = subsets_[s];
307 for (typename Subset::iterator siter = src_subset->begin();
317 Subset* &dest_subset = (*label_map)[arc.ilabel];
319 dest_subset = new Subset;
326 // with subset DEST_SUBSET (as created by LabelSubsets).
327 void AddArc(StateId s, Label label, Subset *dest_subset) {
333 typename Subset::iterator oiter;
334 for (typename Subset::iterator diter = dest_subset->begin();
357 // Divides out label weight from destination subset elements.
360 for (typename Subset::iterator diter = dest_subset->begin();
374 // Comparison object for hashing Subset(s). Subsets are not sorted in this
385 // NULL for each state in the subset arguments. When this operator
388 bool operator()(Subset* subset1, Subset* subset2) const {
392 // Loads first subset elements in element vector.
393 for (typename Subset::iterator iter1 = subset1->begin();
400 // Checks second subset matches first via element vector.
401 for (typename Subset::iterator iter2 = subset2->begin();
408 for (typename Subset::iterator iter1 = subset1->begin();
423 // Hash function for Subset to Fst states. Subset elements are not
425 // under subset reordering.
428 size_t operator()(const Subset* subset) const {
430 for (typename Subset::const_iterator iter = subset->begin();
431 iter != subset->end();
447 float delta_; // Quantization delta for subset weights
453 // Maps from StateId to Subset.
454 vector<Subset *> subsets_;
456 // Hashes from Subset to its StateId in the output automaton.
457 typedef hash_map<Subset *, StateId, SubsetKey, SubsetEqual>
684 float delta; // Quantization delta for subset weights