/** * Execute a function for each ID. * * @param action Action to execute */ default void forEach(Consumer<? super DBIDRef> action) { for(DBIDIter it = iter(); it.valid(); it.advance()) { action.accept(it); } } }
@Override public void deleteAll(DBIDs ids) { for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { delete(iter); } }
@Override public void insertAll(DBIDs ids) { List<MTreeEntry> objs = new ArrayList<>(ids.size()); for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { DBID id = DBIDUtil.deref(iter); final O object = relation.get(id); objs.add(createNewLeafEntry(id, object, Double.NaN)); } insertAll(objs); }
@Override public boolean addDBIDs(DBIDs ids) { // TODO: re-add: store.ensureCapacity(ids.size()); boolean success = false; for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { success |= store.add(DBIDUtil.asInteger(iter)); } return success; }
@Override public void deleteAll(DBIDs ids) { for (DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { delete(DBIDUtil.deref(iter)); } }
@Override public void deleteAll(DBIDs ids) { for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { delete(DBIDUtil.deref(iter)); } }
@Override public DBIDs chooseInitialMedoids(int k, DBIDs ids, DistanceQuery<? super O> distanceFunction) { DBIDIter iter = ids.iter(); ArrayModifiableDBIDs means = DBIDUtil.newArray(k); for(int i = 0; i < k && iter.valid(); i++, iter.advance()) { means.add(iter); } return means; }
@Override public void deleteAll(DBIDs ids) { for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { delete(DBIDUtil.deref(iter)); } }
/** * Clear (but reuse) all sets in the given storage. * * @param ids Ids to process * @param sets Sets to clear */ private void clearAll(DBIDs ids, WritableDataStore<HashSetModifiableDBIDs> sets) { for(DBIDIter it = ids.iter(); it.valid(); it.advance()) { sets.get(it).clear(); } }
@Override public void insertAll(DBIDs ids) { List<MkMaxEntry> objs = new ArrayList<>(ids.size()); for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { DBID id = DBIDUtil.deref(iter); final O object = relation.get(id); objs.add(createNewLeafEntry(id, object, Double.NaN)); } insertAll(objs); }
@Override public boolean removeDBIDs(DBIDs ids) { boolean success = false; for(DBIDIter id = ids.iter(); id.valid(); id.advance()) { success |= store.remove(DBIDUtil.asInteger(id)); } return success; }
@Override public void deleteAll(DBIDs ids) { for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { delete(DBIDUtil.deref(iter)); } }
@Override public DBIDs chooseInitialMedoids(int k, DBIDs ids, DistanceQuery<? super O> distanceFunction) { DBIDIter iter = ids.iter(); ArrayModifiableDBIDs means = DBIDUtil.newArray(k); for(int i = 0; i < k && iter.valid(); i++, iter.advance()) { means.add(iter); } return means; }
@Override public boolean removeDBIDs(DBIDs ids) { boolean success = false; for(DBIDIter id = ids.iter(); id.valid(); id.advance()) { success |= store.remove(DBIDUtil.asInteger(id)); } return success; }
@Override public boolean removeDBIDs(DBIDs ids) { boolean success = false; for(DBIDIter id = ids.iter(); id.valid(); id.advance()) { success |= store.remove(DBIDUtil.asInteger(id)); } return success; }
@Override public void insertAll(DBIDs ids) { List<MkMaxEntry> objs = new ArrayList<>(ids.size()); for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { DBID id = DBIDUtil.deref(iter); final O object = relation.get(id); objs.add(createNewLeafEntry(id, object, Double.NaN)); } insertAll(objs); }
private ROCResult computeROCResult(int size, SetDBIDs positiveids, DBIDs order) { if(order.size() != size) { throw new IllegalStateException("Iterable result doesn't match database size - incomplete ordering?"); } XYCurve roccurve = ROCEvaluation.materializeROC(new DBIDsTest(positiveids), new SimpleAdapter(order.iter())); double rocauc = XYCurve.areaUnderCurve(roccurve); return new ROCResult(roccurve, rocauc); }
@Override public boolean addDBIDs(DBIDs ids) { ensureSize(size + ids.size()); for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { store[size] = iter.internalGetIndex(); ++size; } return true; }
@Override public boolean addDBIDs(DBIDs ids) { ensureSize(size + ids.size()); for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { store[size] = iter.internalGetIndex(); ++size; } return true; }
@Override public DoubleDBIDList getRangeForDBID(DBIDRef id, double range) { ModifiableDoubleDBIDList result = DBIDUtil.newDistanceDBIDList(); for(DBIDIter iter = relation.getDBIDs().iter(); iter.valid(); iter.advance()) { final double currentSim = simQuery.similarity(id, iter); if(currentSim >= range) { result.add(currentSim, iter); } } result.sort(); return result; }