totalNelemsDone += chunk.getNelems(); next.setDelegate( chunk);
totalNelemsDone += chunk.getNelems(); chunk.setSrcPos(startSrcPos + chunk.getSrcElem() * elemSize); next = chunk;
totalNelemsDone += chunk.getNelems(); next.setDelegate( chunk);
totalNelemsDone += chunk.getNelems(); next.setDelegate( chunk);
totalNelemsDone += chunk.getNelems(); chunk.setSrcPos(startSrcPos + chunk.getSrcElem() * elemSize); next = chunk;
totalNelemsDone += chunk.getNelems(); chunk.setSrcPos(startSrcPos + chunk.getSrcElem() * elemSize); next = chunk;
public Chunk next() { IndexChunker.Chunk result; if (needInner > 0) { result = nextInner(false, 0); } else { result = nextOuter(); int nelems = getMaxElem( result.getSrcElem()); if (nelems < result.getNelems()) result = nextInner(true, nelems); } done += result.getNelems(); doneInner += result.getNelems(); needInner -= result.getNelems(); if (debugNext) System.out.println(" next chunk: " + result); return result; }
public Chunk next() { IndexChunker.Chunk result = null; if (needInner > 0) { result = nextInner(false, 0); } else { result = nextOuter(); int nelems = getMaxElem( result.getSrcElem()); if (nelems < result.getNelems()) result = nextInner(true, nelems); } done += result.getNelems(); doneInner += result.getNelems(); needInner -= result.getNelems(); if (debugNext) System.out.println(" next chunk: " + result); return result; }
private IndexChunker.Chunk nextInner(boolean first, int nelems) { if (first) { chunkInner.setNelems(nelems); chunkInner.setDestElem( chunkOuter.getDestElem()); needInner = chunkOuter.getNelems(); doneInner = 0; } else { chunkInner.incrDestElem( chunkInner.getNelems()); // increment using last chunks' value nelems = getMaxElem( chunkOuter.getSrcElem() + doneInner); nelems = Math.min(nelems, needInner); chunkInner.setNelems(nelems); // set this chunk's value } chunkInner.setSrcElem( chunkOuter.getSrcElem() + doneInner); chunkInner.setSrcPos( getFilePos( chunkOuter.getSrcElem() + doneInner)); return chunkInner; }
private Chunk nextInner(boolean first, int nbytes) { if (first) { chunkInner.setNelems(nbytes / elemSize); chunkInner.setDestElem( chunkOuter.getDestElem()); needInner = chunkOuter.getNelems(); doneInner = 0; } else { chunkInner.incrDestElem( chunkInner.getNelems()); // increment using last chunks' value nbytes = getMaxBytes( (chunkOuter.getSrcElem() + doneInner) * elemSize); nbytes = Math.min(nbytes, needInner * elemSize); chunkInner.setNelems(nbytes / elemSize); // set this chunk's value } chunkInner.setSrcPos( getFilePos( (chunkOuter.getSrcElem() + doneInner) * elemSize)); return chunkInner; }
public Chunk next() { IndexChunker.Chunk result; if (needInner > 0) { result = nextInner(false, 0); } else { result = nextOuter(); int nelems = getMaxElem( result.getSrcElem()); if (nelems < result.getNelems()) result = nextInner(true, nelems); } done += result.getNelems(); doneInner += result.getNelems(); needInner -= result.getNelems(); if (debugNext) System.out.println(" next chunk: " + result); return result; }
private IndexChunker.Chunk nextInner(boolean first, int nelems) { if (first) { chunkInner.setNelems(nelems); chunkInner.setDestElem( chunkOuter.getDestElem()); needInner = chunkOuter.getNelems(); doneInner = 0; } else { chunkInner.incrDestElem( chunkInner.getNelems()); // increment using last chunks' value nelems = getMaxElem( chunkOuter.getSrcElem() + doneInner); nelems = Math.min(nelems, needInner); chunkInner.setNelems(nelems); // set this chunk's value } chunkInner.setSrcElem( chunkOuter.getSrcElem() + doneInner); chunkInner.setSrcPos( getFilePos( chunkOuter.getSrcElem() + doneInner)); return chunkInner; }
private IndexChunker.Chunk nextInner(boolean first, int nelems) { if (first) { chunkInner.setNelems(nelems); chunkInner.setDestElem( chunkOuter.getDestElem()); needInner = chunkOuter.getNelems(); doneInner = 0; } else { chunkInner.incrDestElem( chunkInner.getNelems()); // increment using last chunks' value nelems = getMaxElem( chunkOuter.getSrcElem() + doneInner); nelems = Math.min(nelems, needInner); chunkInner.setNelems(nelems); // set this chunk's value } chunkInner.setSrcElem( chunkOuter.getSrcElem() + doneInner); chunkInner.setSrcPos( getFilePos( chunkOuter.getSrcElem() + doneInner)); return chunkInner; }
private Chunk nextInner(boolean first, int nbytes) { if (first) { chunkInner.setNelems(nbytes / elemSize); chunkInner.setDestElem( chunkOuter.getDestElem()); needInner = chunkOuter.getNelems(); doneInner = 0; } else { chunkInner.incrDestElem( chunkInner.getNelems()); // increment using last chunks' value nbytes = getMaxBytes( (chunkOuter.getSrcElem() + doneInner) * elemSize); nbytes = Math.min(nbytes, needInner * elemSize); chunkInner.setNelems(nbytes / elemSize); // set this chunk's value } chunkInner.setSrcPos( getFilePos( (chunkOuter.getSrcElem() + doneInner) * elemSize)); return chunkInner; }
public int getNelems() { return delegate.getNelems(); } public long getDestElem() {
public int getNelems() { return delegate.getNelems(); } public long getDestElem() {
public int getNelems() { return delegate.getNelems(); } public long getDestElem() {
private Chunk nextInner(boolean first, int nbytes) { if (first) { chunkInner.setNelems(nbytes / elemSize); chunkInner.setDestElem( chunkOuter.getDestElem()); needInner = chunkOuter.getNelems(); doneInner = 0; } else { chunkInner.incrDestElem( chunkInner.getNelems()); // increment using last chunks' value nbytes = getMaxBytes( (chunkOuter.getSrcElem() + doneInner) * elemSize); nbytes = Math.min(nbytes, needInner * elemSize); chunkInner.setNelems(nbytes / elemSize); // set this chunk's value } chunkInner.setSrcPos( getFilePos( (chunkOuter.getSrcElem() + doneInner) * elemSize)); return chunkInner; }
@Test public void testFull() throws InvalidRangeException { int[] shape = new int[] {123,22,92,12}; Section section = new Section(shape); IndexChunker index = new IndexChunker(shape, section); assert index.getTotalNelems() == section.computeSize(); IndexChunker.Chunk chunk = index.next(); assert chunk.getNelems() == section.computeSize(); assert !index.hasNext(); }
@Test public void testPart() throws InvalidRangeException { int[] full = new int[] {2, 10, 20}; int[] part = new int[] {2, 5, 20}; Section section = new Section(part); IndexChunker index = new IndexChunker(full, section); assert index.getTotalNelems() == section.computeSize(); IndexChunker.Chunk chunk = index.next(); assert chunk.getNelems() == section.computeSize()/2; }