public int[] computeUnlimitedChunking(List<Dimension> dims, int elemSize) { int maxElements = defaultChunkSize / elemSize; int[] result = fillRightmost(convertUnlimitedShape(dims), maxElements); long resultSize = new Section(result).computeSize(); if (resultSize < minChunksize) { maxElements = minChunksize / elemSize; result = incrUnlimitedShape(dims, result, maxElements); } return result; }
public int[] computeUnlimitedChunking(List<Dimension> dims, int elemSize) { int maxElements = defaultChunkSize / elemSize; int[] result = fillRightmost(convertUnlimitedShape(dims), maxElements); long resultSize = new Section(result).computeSize(); if (resultSize < minChunksize) { maxElements = minChunksize / elemSize; result = incrUnlimitedShape(dims, result, maxElements); } return result; }
@Override public long[] computeChunking(Variable v) { /* check attribute int[] resultFromAtt = computeChunkingFromAttribute(v); if (resultFromAtt != null) return convertToLong(resultFromAtt); */ int maxElements = defaultChunkSize / v.getElementSize(); // no unlimited dimensions if (!v.isUnlimited()) { int[] result = fillRightmost(v.getShape(), maxElements); return convertToLong(result); } // unlimited case int[] result = computeUnlimitedChunking(v.getDimensions(), v.getElementSize()); return convertToLong(result); }
@Override public long[] computeChunking(Variable v) { // check attribute int[] resultFromAtt = computeChunkingFromAttribute(v); if (resultFromAtt != null) return convertToLong(resultFromAtt); int maxElements = defaultChunkSize / v.getElementSize(); // no unlimited dimensions if (!v.isUnlimited()) { int[] result = fillRightmost(v.getShape(), maxElements); return convertToLong(result); } // unlimited case int[] result = computeUnlimitedChunking(v.getDimensions(), v.getElementSize()); return convertToLong(result); }