/** Adds all the elements of the given iterable at the end of this iterable. * * @param it the iterable producing the elements to be added. * @throws IOException */ public void addAll( Iterable<T> it ) throws IOException { for ( T x: it ) add( x ); }
protected void finalize() throws Throwable { try { if ( ! closed ) { LOGGER.warn( "This " + this.getClass().getName() + " [" + toString() + "] should have been closed." ); close(); } } finally { super.finalize(); } }
/** Returns the number of elements added so far, unless it is too big to fit in an integer (in which case this method will throw an * exception). * * @return the number of elements added so far. * @deprecated Use {@link #size64()} instead. */ @Override @Deprecated public int size() { final long size64 = size64(); if (size64 > Integer.MAX_VALUE) throw new IllegalStateException("The number of elements of this bit list (" + size64 + ") exceeds Integer.MAX_INT"); return (int)size64; }
final OfflineIterable<BitVector,LongArrayBitVector> offlineData = new OfflineIterable<>(BitVectors.OFFLINE_SERIALIZER, LongArrayBitVector.getInstance()); final LongArrayBitVector data = queue.take(); if (data == END_OF_SOLUTION_QUEUE) return null; offlineData.add(data); this.data = dataBitVector.asLongBigList(this.width); final OfflineIterator<BitVector, LongArrayBitVector> iterator = offlineData.iterator(); while(iterator.hasNext()) dataBitVector.append(iterator.next()); iterator.close(); offlineData.close();
int currLcp = 0; @SuppressWarnings("resource") final OfflineIterable<BitVector, LongArrayBitVector> lcps = new OfflineIterable<>(BitVectors.OFFLINE_SERIALIZER, LongArrayBitVector.getInstance()); final int[][] lcpLengths = IntBigArrays.newBigArray((n + bucketSize - 1) / bucketSize); int maxLcp = 0; lcps.add(prev.subVector(0, currLcp)); IntBigArrays.set(lcpLengths, b, currLcp); maxLcp = Math.max(maxLcp, currLcp); lcps.close();
@SuppressWarnings("resource") final OfflineIterable<BitVector,LongArrayBitVector> lcps = new OfflineIterable<>(BitVectors.OFFLINE_SERIALIZER, LongArrayBitVector.getInstance()); pl.expectedUpdates = n; pl.start("Scanning collection..."); lcps.add(prev.subVector(0, currLcp)); maxLcp = Math.max(maxLcp, currLcp); minLcp = Math.min(minLcp, currLcp); final int[][] lcpLength = IntBigArrays.newBigArray(lcps.size64()); long p = 0; for(final LongArrayBitVector bv : lcps) IntBigArrays.set(lcpLength, p++, (int)bv.length()); lcps.close();
emptyTrie = intermediateTrie.internalNodeRepresentations.size64() == 0; noDelimiters = intermediateTrie.delimiters == null || intermediateTrie.delimiters.size64() == 0; numDelimiters = intermediateTrie.delimiters.size64(); pl.expectedUpdates = intermediateTrie.internalNodeRepresentations.size64(); pl.start("Computing leaf ranker keys..."); intermediateTrie.internalNodeRepresentations.close(); intermediateTrie.internalNodeRepresentations = null; final OfflineIterator<BitVector, LongArrayBitVector> delimiterIterator = intermediateTrie.delimiters.iterator(); LongArrayBitVector bv = delimiterIterator.next(); int cmp; intermediateTrie.delimiters.close(); intermediateTrieChunkedHashStore.addAll(intermediateTrie.internalNodeKeys.iterator(), intermediateTrie.internalNodeSignatures.iterator()); intermediateTrie.internalNodeKeys.close(); intermediateTrie.internalNodeKeys = null; intermediateTrieChunkedHashStore.close();
/** Returns the number of elements added so far, unless it is too big to fit in an integer (in which case this method will throw an * exception). * * @return the number of elements added so far. */ public int size() { final long length = length(); if ( length > Integer.MAX_VALUE ) throw new IllegalStateException( "The number of elements of this bit list (" + length + ") exceeds Integer.MAX_INT" ); return (int)length; }
internalNodeRepresentations = new OfflineIterable<>(BitVectors.OFFLINE_SERIALIZER, LongArrayBitVector.getInstance()); internalNodeKeys = new OfflineIterable<>(BitVectors.OFFLINE_SERIALIZER, LongArrayBitVector.getInstance()); delimiters = new OfflineIterable<>(BitVectors.OFFLINE_SERIALIZER, LongArrayBitVector.getInstance()); labelIntermediateTrie(root, LongArrayBitVector.getInstance(), delimiters, internalNodeRepresentations, internalNodeKeys, internalNodeSignatures, seed, true);
offsetAndSeed = new long[numChunks + 1]; final OfflineIterable<BitVector, LongArrayBitVector> offlineData = new OfflineIterable<>(BitVectors.OFFLINE_SERIALIZER, LongArrayBitVector.getInstance()); final LongArrayBitVector data = queue.take(); if (data == END_OF_SOLUTION_QUEUE) return null; offlineData.add(data); final LongArrayBitVector dataBitVector = LongArrayBitVector.getInstance(); this.data = dataBitVector; final OfflineIterator<BitVector, LongArrayBitVector> iterator = offlineData.iterator(); while (iterator.hasNext()) dataBitVector.append(iterator.next()); iterator.close(); offlineData.close(); LOGGER.info("Completed.");
int currLcp = 0; @SuppressWarnings("resource") final OfflineIterable<BitVector, LongArrayBitVector> lcps = new OfflineIterable<>(BitVectors.OFFLINE_SERIALIZER, LongArrayBitVector.getInstance()); final int[][] lcpLengths = IntBigArrays.newBigArray(numBuckets); int maxLcp = 0; lcps.add(prev.subVector(0, currLcp)); IntBigArrays.set(lcpLengths, b, currLcp); maxLcp = Math.max(maxLcp, currLcp); lcps.close(); this.seed = chunkedHashStore.seed();
/** Returns the number of elements added so far, unless it is too big to fit in an integer (in which case this method will throw an * exception). * * @return the number of elements added so far. */ public int size() { final long length = length(); if ( length > Integer.MAX_VALUE ) throw new IllegalStateException( "The number of elements of this bit list (" + length + ") exceeds Integer.MAX_INT" ); return (int)length; }
offsetAndSeed = new long[numChunks + 1]; final OfflineIterable<BitVector, LongArrayBitVector> offlineData = new OfflineIterable<>(BitVectors.OFFLINE_SERIALIZER, LongArrayBitVector.getInstance()); final LongArrayBitVector data = queue.take(); if (data == END_OF_SOLUTION_QUEUE) return null; offlineData.add(data); final LongArrayBitVector dataBitVector = LongArrayBitVector.getInstance(); this.data = dataBitVector; final OfflineIterator<BitVector, LongArrayBitVector> iterator = offlineData.iterator(); while (iterator.hasNext()) dataBitVector.append(iterator.next()); iterator.close(); offlineData.close(); LOGGER.info("Completed.");
/** Adds all the elements of the given iterable at the end of this iterable. * * @param it the iterable producing the elements to be added. * @throws IOException */ public void addAll(final Iterable<T> it) throws IOException { for (final T x: it) add(x); }
protected void finalize() throws Throwable { try { if ( ! closed ) { LOGGER.warn( "This " + this.getClass().getName() + " [" + toString() + "] should have been closed." ); close(); } } finally { super.finalize(); } }
final OfflineIterable<BitVector,LongArrayBitVector> offlineData = new OfflineIterable<>(BitVectors.OFFLINE_SERIALIZER, LongArrayBitVector.getInstance()); final LongArrayBitVector data = queue.take(); if (data == END_OF_SOLUTION_QUEUE) return null; offlineData.add(data); for(iterator = offlineData.iterator(); iterator.hasNext();) { final LongBigList data = iterator.next().asLongBigList(width); for(long i = 0; i < data.size64(); i++) if (data.getLong(i) != 0) nonZero++; for(iterator = offlineData.iterator(); iterator.hasNext();) { final LongBigList data = iterator.next().asLongBigList(width); for(long i = 0; i < data.size64(); i++, j++) { final LongArrayBitVector dataBitVector = LongArrayBitVector.getInstance(m * width); this.data = dataBitVector.asLongBigList(width); for(iterator = offlineData.iterator(); iterator.hasNext();) dataBitVector.append(iterator.next()); iterator.close(); offlineData.close();
/** Adds all the elements of the given iterable at the end of this iterable. * * @param it the iterable producing the elements to be added. * @throws IOException */ public void addAll( Iterable<T> it ) throws IOException { for ( T x: it ) add( x ); }
@SuppressWarnings("deprecation") @Override protected void finalize() throws Throwable { try { if (! closed) { LoggerFactory.getLogger(this.getClass()).warn("This " + this.getClass().getName() + " [" + toString() + "] should have been closed."); close(); } } finally { super.finalize(); } }
new OfflineIterable<>(new Serializer<MutableLong, MutableLong>() { coefficients.clear(); pl.expectedUpdates = numChunks; pl.itemsName = "chunks"; for(int i = 0; i < numBuckets; i++) { l.setValue(cc0[i] + cc1[i] * p); coefficients.add(l); final OfflineIterator<MutableLong, MutableLong> iterator = coefficients.iterator(); coefficients.close();
void labelIntermediateTrie(final Node node, final LongArrayBitVector path, final OfflineIterable<BitVector, LongArrayBitVector> delimiters, final OfflineIterable<BitVector, LongArrayBitVector> representations, final OfflineIterable<BitVector, LongArrayBitVector> keys, final LongBigList internalNodeSignatures, final long seed, final boolean left) throws IOException { assert (node.left != null) == (node.right != null); final long parentPathLength = Math.max(0, path.length() - 1); if (node.left != null) { path.append(node.path); labelIntermediateTrie(node.left, path.append(0, 1), delimiters, representations, keys, internalNodeSignatures, seed, true); path.removeBoolean((int)(path.length() - 1)); final long h = Hashes.spooky4(path, seed); final long p = (-1L << Fast.mostSignificantBit(parentPathLength ^ path.length()) & path.length()); assert p <= path.length() : p + " > " + path.length(); assert path.length() == 0 || p > parentPathLength : p + " <= " + parentPathLength; keys.add(LongArrayBitVector.copy(path.subVector(0, p))); representations.add(path.copy()); assert Fast.length(path.length()) <= logW; if (DDDEBUG) System.err.println("Entering " + path + " with key (" + p + "," + path.subVector(0, p).hashCode() + ") " + path.subVector(0, p) + ", signature " + (h & signatureMask) + " and length " + (path.length() & logWMask) + "(value: " + ((h & signatureMask) << logW | (path.length() & logWMask)) + ")"); internalNodeSignatures.add((h & signatureMask) << logW | (path.length() & logWMask)); labelIntermediateTrie(node.right, path.append(1, 1), delimiters, representations, keys, internalNodeSignatures, seed, false); path.length(path.length() - node.path.length() - 1); } else { if (left) delimiters.add(LongArrayBitVector.copy(path.subVector(0, path.lastOne() + 1))); else delimiters.add(LongArrayBitVector.copy(path)); } }