@Override public void clear() { impl = MutableSparseIntSet.makeEmpty(); }
public void clear() { data = new Object[DEF_INITIAL_SIZE]; indices = MutableSparseIntSet.makeEmpty(); }
@Override public MutableSparseIntSet make() { return MutableSparseIntSet.makeEmpty(); }
public SparseVector() { data = new Object[DEF_INITIAL_SIZE]; indices = MutableSparseIntSet.makeEmpty(); }
public BimodalMutableIntSet() { impl = MutableSparseIntSet.makeEmpty(); }
public SemiSparseMutableIntSet() { this(MutableSparseIntSet.makeEmpty()); }
public SparseVector() { data = new Object[DEF_INITIAL_SIZE]; indices = MutableSparseIntSet.makeEmpty(); }
public SparseVector() { data = new Object[DEF_INITIAL_SIZE]; indices = MutableSparseIntSet.makeEmpty(); }
private OrdinalSet<InstanceKey> toOrdinalSet(InstanceKey[] ik) { MutableSparseIntSet s = MutableSparseIntSet.makeEmpty(); for (InstanceKey element : ik) { int index = instanceKeys.getMappedIndex(element); if (index != -1) { s.add(index); } else { assert index != -1 : "instance " + element + " not mapped!"; } } return new OrdinalSet<>(s, instanceKeys); }
private static IntSet getDomain(IBinaryNaturalRelation r) { MutableIntSet result = MutableSparseIntSet.makeEmpty(); int maxKeyValue = r.maxKeyValue(); for (int i = 0; i <= maxKeyValue; i++) { if (r.getRelated(i) != null) { result.add(i); } } return result; }
private static IntSet getDomain(IBinaryNaturalRelation r) { MutableIntSet result = MutableSparseIntSet.makeEmpty(); int maxKeyValue = r.maxKeyValue(); for (int i = 0; i <= maxKeyValue; i++) { if (r.getRelated(i) != null) { result.add(i); } } return result; }
private OrdinalSet<InstanceKey> toOrdinalSet(InstanceKey[] ik) { MutableSparseIntSet s = MutableSparseIntSet.makeEmpty(); for (InstanceKey element : ik) { int index = instanceKeys.getMappedIndex(element); if (index != -1) { s.add(index); } else { assert index != -1 : "instance " + element + " not mapped!"; } } return new OrdinalSet<>(s, instanceKeys); }
/** * TODO: optimize * */ public SparseIntSet toSparseIntSet() { MutableSparseIntSet result = MutableSparseIntSet.makeEmpty(); for (IntIterator it = intIterator(); it.hasNext();) { result.add(it.next()); } return result; }
/** * TODO: optimize * */ public SparseIntSet toSparseIntSet() { MutableSparseIntSet result = MutableSparseIntSet.makeEmpty(); for (IntIterator it = intIterator(); it.hasNext();) { result.add(it.next()); } return result; }
@Override public IntSet getPredNodeNumbers(IExplodedBasicBlock node) { MutableSparseIntSet result = MutableSparseIntSet.makeEmpty(); for (IExplodedBasicBlock ebb : Iterator2Iterable.make(getPredNodes(node))) { result.add(getNumber(ebb)); } return result; }
@Override public IntSet getPredNodeNumbers(IExplodedBasicBlock node) { MutableSparseIntSet result = MutableSparseIntSet.makeEmpty(); for (IExplodedBasicBlock ebb : Iterator2Iterable.make(getPredNodes(node))) { result.add(getNumber(ebb)); } return result; }
/** * TODO: optimize * */ public SparseIntSet toSparseIntSet() { MutableSparseIntSet result = MutableSparseIntSet.makeEmpty(); for (IntIterator it = intIterator(); it.hasNext();) { result.add(it.next()); } return result; }
/** * Flow function composition * * @return { (x, z) | (x, y) \in g, (y, z) \in f } */ private static IUnaryFlowFunction compose(final IUnaryFlowFunction f, final IUnaryFlowFunction g) { return d1 -> { final MutableSparseIntSet set = MutableSparseIntSet.makeEmpty(); g.getTargets(d1).foreach(x -> set.addAll(f.getTargets(x))); return set; }; }
@Override public IntSet getTargets(int d1) { // first, gen this statement int factNum = domain.getMappedIndex(cha.lookupClass(newInstr.getConcreteType())); assert factNum != -1; MutableSparseIntSet result = MutableSparseIntSet.makeEmpty(); result.add(factNum); // if incoming statement is some different statement that defs the same static field, kill it; otherwise, keep it if (d1 != factNum) { result.add(d1); } return result; }
@Override public IntSet getTargets(int d1) { // first, gen this statement int factNum = domain.getMappedIndex(cha.lookupClass(getInstr.getDeclaredField().getDeclaringClass())); assert factNum != -1; MutableSparseIntSet result = MutableSparseIntSet.makeEmpty(); result.add(factNum); // if incoming statement is some different statement that defs the same static field, kill it; otherwise, keep it if (d1 != factNum) { result.add(d1); } return result; }