/** * Given an all index and * the intended indexes, return an * index array containing a combination of all elements * for slicing and overriding particular indexes where necessary * @param arr the array to resolve indexes for * @param intendedIndexes the indexes specified by the user * @return the resolved indexes (containing all where nothing is specified, and the intended index * for a particular dimension otherwise) */ public static INDArrayIndex[] resolve(INDArray arr, INDArrayIndex... intendedIndexes) { return resolve(NDArrayIndex.allFor(arr), intendedIndexes); }
public static INDArrayIndex[] resolve(long[] shape, INDArrayIndex... intendedIndexes) { /** * If it's a vector and index asking for a scalar just return the array */ if (intendedIndexes.length >= shape.length || Shape.isVector(shape) && intendedIndexes.length == 1) { if (Shape.isRowVectorShape(shape) && intendedIndexes.length == 1) { INDArrayIndex[] ret = new INDArrayIndex[2]; ret[0] = NDArrayIndex.point(0); long size; if (1 == shape[0] && shape.length == 2) size = shape[1]; else size = shape[0]; ret[1] = validate(size, intendedIndexes[0]); return ret; } List<INDArrayIndex> retList = new ArrayList<>(intendedIndexes.length); for (int i = 0; i < intendedIndexes.length; i++) { if (i < shape.length) retList.add(validate(shape[i], intendedIndexes[i])); else retList.add(intendedIndexes[i]); } return retList.toArray(new INDArrayIndex[retList.size()]); } List<INDArrayIndex> retList = new ArrayList<>(intendedIndexes.length + 1); int numNewAxes = 0; if (Shape.isMatrix(shape) && intendedIndexes.length == 1) {
indexes = NDArrayIndex.resolve(arr.shapeInfoDataBuffer(), indexes); if (tryShortCircuit(indexes)) { return;
return this; indexes = NDArrayIndex.resolve(shapeInfoDataBuffer(), indexes); ShapeOffsetResolution resolution = new ShapeOffsetResolution(this); resolution.exec(indexes);
return this; indexes = NDArrayIndex.resolve(shapeInfoDataBuffer(), indexes); ShapeOffsetResolution resolution = new ShapeOffsetResolution(this); resolution.exec(indexes);
return this; indexes = NDArrayIndex.resolve(shapeInfoDataBuffer(), indexes); ShapeOffsetResolution resolution = new ShapeOffsetResolution(this); resolution.exec(indexes);
/** * Given an all index and * the intended indexes, return an * index array containing a combination of all elements * for slicing and overriding particular indexes where necessary * @param arr the array to resolve indexes for * @param intendedIndexes the indexes specified by the user * @return the resolved indexes (containing all where nothing is specified, and the intended index * for a particular dimension otherwise) */ public static INDArrayIndex[] resolve(INDArray arr, INDArrayIndex... intendedIndexes) { return resolve(NDArrayIndex.allFor(arr), intendedIndexes); }
indexes = NDArrayIndex.resolve(arr.shapeInfoDataBuffer(), indexes); if (tryShortCircuit(indexes)) { return;
indexes = NDArrayIndex.resolve(shapeInfoDataBuffer(), indexes); ShapeOffsetResolution resolution = new ShapeOffsetResolution(this); resolution.exec(indexes);