/** * Get the BitArray for the index * * @param index * @return BitArray */ private BitArray getBitArray(long index) { int bin = getBin(index); BitArray answer = null; if (bin >= 0) { if (bin >= maxNumberOfArrays) { int overShoot = bin - maxNumberOfArrays + 1; while (overShoot > 0) { list.removeFirst(); longFirstIndex += BitArray.LONG_SIZE; list.add(new BitArray()); overShoot--; } bin = maxNumberOfArrays - 1; } answer = list.get(bin); if (answer == null) { answer = new BitArray(); list.set(bin, answer); } } return answer; }
BitArray bits = new BitArray(limit + 1, true); for (int i = 1; 3 * i + 1 < limit; i++)
BitArray bits = new BitArray(limit + 1, true); bits[0] = false; bits[1] = false;
class MyBitArray extends BitArray{ private BitArray a; private BitArray b; public MyBitArray(BitArray a, BitArray b) throws IllegalArgumentException { super(0); this.a = a == null ? new BitArray(0) : a; this.b = b == null ? new BitArray(0) : b; } public boolean get(int i){ if(i < a.length()){ return a.get(i); } return b.get(i - a.length()); } public int length(){ return a.length() + b.length(); } }
private Result doDecode(MonochromeBitmapSource image, Hashtable hints) throws ReaderException { int width = image.getWidth(); int height = image.getHeight(); BitArray row = new BitArray(width); boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER); RowNumberStrategy rowProvider = new RowNumberStrategy.ProgressiveScanRowStrategy(height); int rowNumber; while ((rowNumber = rowProvider.getNextRowNumber()) != -1){ ... }
/** * Get the BitArray for the index * * @param index * @return BitArray */ private BitArray getBitArray(long index) { int bin = getBin(index); BitArray answer = null; if (bin >= 0) { if (bin >= maxNumberOfArrays) { int overShoot = bin - maxNumberOfArrays + 1; while (overShoot > 0) { list.removeFirst(); longFirstIndex += BitArray.LONG_SIZE; list.add(new BitArray()); overShoot--; } bin = maxNumberOfArrays - 1; } answer = list.get(bin); if (answer == null) { answer = new BitArray(); list.set(bin, answer); } } return answer; }
/** * Get the BitArray for the index * * @param index * @return BitArray */ private BitArray getBitArray(long index) { int bin = getBin(index); BitArray answer = null; if (bin >= 0) { if (bin >= maxNumberOfArrays) { int overShoot = bin - maxNumberOfArrays + 1; while (overShoot > 0) { list.removeFirst(); longFirstIndex += BitArray.LONG_SIZE; list.add(new BitArray()); overShoot--; } bin = maxNumberOfArrays - 1; } answer = list.get(bin); if (answer == null) { answer = new BitArray(); list.set(bin, answer); } } return answer; }
/** * Get the BitArray for the index * * @param index * @return BitArray */ private BitArray getBitArray(long index) { int bin = getBin(index); BitArray answer = null; if (bin >= 0) { if (bin >= maxNumberOfArrays) { int overShoot = bin - maxNumberOfArrays + 1; while (overShoot > 0) { list.removeFirst(); longFirstIndex += BitArray.LONG_SIZE; list.add(new BitArray()); overShoot--; } bin = maxNumberOfArrays - 1; } answer = list.get(bin); if (answer == null) { answer = new BitArray(); list.set(bin, answer); } } return answer; }
/** * Get the BitArray for the index * * @param index * @return BitArray */ private BitArray getBitArray(long index) { int bin = getBin(index); BitArray answer = null; if (bin >= 0) { if (bin >= maxNumberOfArrays) { int overShoot = bin - maxNumberOfArrays + 1; while (overShoot > 0) { list.removeFirst(); firstIndex += BitArray.LONG_SIZE; list.add(new BitArray()); overShoot--; } bin = maxNumberOfArrays - 1; } answer = list.get(bin); if (answer == null) { answer = new BitArray(); list.set(bin, answer); } } return answer; }
... //imports and house keeping removed private static IEnumerable<Tuple<IList<T>,IList<T>>> SubsetImpl<T>(this IList<T> argList){ int elementCount=argList.Count; int bits=(1<<elementCount);//2 to the power of elementCount List<Tuple<IList<T>,IList<T>>> subsets=new List<Tuple<IList<T>, IList<T>>>(bits); for(int i=0;i<bits;i++){ int[] mask={i}; BitArray flags=new BitArray(mask); IList<T> incomb=new List<T>(); IList<T> outcomb=new List<T>(); for(int j=0;j<argList.Count;j++){ if( flags[j]){ incomb.Add(argList[j]); }else{ outcomb.Add(argList[j]); } } Tuple<IList<T>,IList<T>> t=new Tuple<IList<T>,IList<T>>(incomb,outcomb); subsets.Add(t); } return subsets; } ...