def delete_group(self, domain_name, group_id): """ Delete a passed-in group id """ # FIXME add snaity check here? # add to list of groups for this domain group_coords = util.unique_axes_pos( self._get_axispos_for_domain(domain_name), group_id, [self.domain_groups[dn] for dn in self.axes]) for g in group_coords: del self.components[g] del self.components_dp_count[g] self.domain_groups[domain_name].remove(group_id)
def delete_group(self, domain_name, group_id): """ Delete a passed-in group id """ # FIXME add snaity check here? # add to list of groups for this domain group_coords = util.unique_axes_pos(self._get_axispos_for_domain(domain_name), group_id, [self.domain_groups[dn] for dn in self.axes]) for g in group_coords: del self.components[g] del self.components_dp_count[g] self.domain_groups[domain_name].remove(group_id)
def remove_entity_from_group(self, type_name, group_id, entity_pos): """ """ uap = util.unique_axes_pos(self.get_axes_pos(type_name), entity_pos, [range(g) for n, g in self.relation_def]) for p in uap: group_coord = self._get_groups(p) v = self.data[p] if -1 not in group_coord: # FIXME is this the correct way? cur_ss = self.suffstats[group_coord] self.suffstats[group_coord] = self.model.ss_rem(cur_ss, self.hps,v) self.component_dp_count[group_coord] -= 1 self.group_assignments[type_name][entity_pos] = -1
def remove_entity_from_group(self, type_name, group_id, entity_pos): """ """ uap = util.unique_axes_pos(self.get_axes_pos(type_name), entity_pos, [range(g) for n, g in self.relation_def]) for p in uap: group_coord = self._get_groups(p) v = self.data[p] if -1 not in group_coord: # FIXME is this the correct way? cur_ss = self.suffstats[group_coord] self.suffstats[group_coord] = self.model.ss_rem( cur_ss, self.hps, v) self.component_dp_count[group_coord] -= 1 self.group_assignments[type_name][entity_pos] = -1
def add_entity_to_group(self, type_name, group_id, entity_pos): """ """ uap = util.unique_axes_pos(self.get_axes_pos(type_name), entity_pos, [range(g) for n, g in self.relation_def]) assert self.group_assignments[type_name][entity_pos] == NOT_ASSIGNED self.group_assignments[type_name][entity_pos] = group_id for p in uap: group_coord = self._get_groups(p) v = self.data[p] if -1 not in group_coord: # FIXME is this the correct way? cur_ss = self.suffstats[group_coord] self.suffstats[group_coord] = self.model.ss_add(cur_ss, self.hps, v) self.component_dp_count[group_coord] += 1
def add_entity_to_group(self, type_name, group_id, entity_pos): """ """ uap = util.unique_axes_pos(self.get_axes_pos(type_name), entity_pos, [range(g) for n, g in self.relation_def]) assert self.group_assignments[type_name][entity_pos] == NOT_ASSIGNED self.group_assignments[type_name][entity_pos] = group_id for p in uap: group_coord = self._get_groups(p) v = self.data[p] if -1 not in group_coord: # FIXME is this the correct way? cur_ss = self.suffstats[group_coord] self.suffstats[group_coord] = self.model.ss_add( cur_ss, self.hps, v) self.component_dp_count[group_coord] += 1
def create_group(self, domain_name, rng): """ Return a group ID, a unique group handle. Do not use the RNG in most situations """ new_gid = self.group_id self.domain_groups[domain_name].add(new_gid) # add to list of groups for this domain group_coords = util.unique_axes_pos( self._get_axispos_for_domain(domain_name), new_gid, [self.domain_groups[dn] for dn in self.axes]) for g in group_coords: self.components[g] = self.model.create_ss(self.hps) self.components_dp_count[g] = 0 self.group_id += 1 return new_gid
def create_group(self, domain_name, rng): """ Return a group ID, a unique group handle. Do not use the RNG in most situations """ new_gid = self.group_id self.domain_groups[domain_name].add(new_gid) # add to list of groups for this domain group_coords = util.unique_axes_pos(self._get_axispos_for_domain(domain_name), new_gid, [self.domain_groups[dn] for dn in self.axes]) for g in group_coords: self.components[g] = self.model.create_ss(self.hps) self.components_dp_count[g] = 0 self.group_id += 1 return new_gid