## Uses of Class
org.apache.sysds.runtime.util.IndexRange

Packages that use IndexRange
org.apache.sysds.hops
org.apache.sysds.runtime.compress
org.apache.sysds.runtime.controlprogram.caching
org.apache.sysds.runtime.controlprogram.federated
org.apache.sysds.runtime.instructions.spark
org.apache.sysds.runtime.matrix.data
org.apache.sysds.runtime.transform.encode
org.apache.sysds.runtime.util

### Uses of IndexRange in org.apache.sysds.hops

Methods in org.apache.sysds.hops with parameters of type IndexRange
`static boolean` OptimizerUtils.`isIndexingRangeBlockAligned(IndexRange ixrange, DataCharacteristics mc)` Indicates if the given indexing range is block aligned, i.e., it does not require global aggregation of blocks.

### Uses of IndexRange in org.apache.sysds.runtime.compress

Methods in org.apache.sysds.runtime.compress with parameters of type IndexRange
`void` CompressedMatrixBlock.`slice(ArrayList<IndexedMatrixValue> outlist, IndexRange range, int rowCut, int colCut, int blen, int boundaryRlen, int boundaryClen)`
`MatrixBlock` CompressedMatrixBlock.`zeroOutOperations(MatrixValue result, IndexRange range, boolean complementary)`

### Uses of IndexRange in org.apache.sysds.runtime.controlprogram.caching

Methods in org.apache.sysds.runtime.controlprogram.caching with parameters of type IndexRange
`String` MatrixObject.`getPartitionFileName(IndexRange pred, int blen)`
`MatrixBlock` MatrixObject.`readMatrixPartition(IndexRange pred)` NOTE: for reading matrix partitions, we could cache (in its real sense) the read block with soft references (no need for eviction, as partitioning only applied for read-only matrices).

### Uses of IndexRange in org.apache.sysds.runtime.controlprogram.federated

Methods in org.apache.sysds.runtime.controlprogram.federated that return IndexRange
`IndexRange` FederatedRange.`asIndexRange()`

Methods in org.apache.sysds.runtime.controlprogram.federated with parameters of type IndexRange
`FederationMap` FederationMap.`filter(IndexRange ixrange)`

### Uses of IndexRange in org.apache.sysds.runtime.instructions.spark

Methods in org.apache.sysds.runtime.instructions.spark with parameters of type IndexRange
`static MatrixBlock` MatrixIndexingSPInstruction.`inmemoryIndexing(org.apache.spark.api.java.JavaPairRDD<MatrixIndexes,MatrixBlock> in1, DataCharacteristics mcIn, DataCharacteristics mcOut, IndexRange ixrange)`

`static boolean`

MatrixIndexingSPInstruction.`isMultiBlockLookup(org.apache.spark.api.java.JavaPairRDD<?,?> in, DataCharacteristics mcIn, DataCharacteristics mcOut, IndexRange ixrange)`
Indicates if the given index range and input matrix exhibit the following properties: (1) existing hash partitioner, (2) out-of-core input matrix (larger than aggregated memory), (3) aligned indexing range (which does not required aggregation), and (4) the output fits twice in memory (in order to collect the result).

`static boolean` MatrixIndexingSPInstruction.`isSingleBlockLookup(DataCharacteristics mcIn, IndexRange ixrange)` Indicates if the given index range only covers a single blocks of the inputs matrix.

### Uses of IndexRange in org.apache.sysds.runtime.matrix.data

Methods in org.apache.sysds.runtime.matrix.data with parameters of type IndexRange
`FrameBlock` FrameBlock.`leftIndexingOperations(FrameBlock rhsFrame, IndexRange ixrange, FrameBlock ret)`
`MatrixBlock` MatrixBlock.`leftIndexingOperations(MatrixBlock rhsMatrix, IndexRange ixrange, MatrixBlock ret, MatrixObject.UpdateType update)`
`static void` OperationsOnMatrixValues.`performShift(IndexedMatrixValue in, IndexRange ixrange, int blen, long rlen, long clen, ArrayList<IndexedMatrixValue> outlist)`
`static void` OperationsOnMatrixValues.`performShift(Pair<Long,FrameBlock> in, IndexRange ixrange, int blenLeft, long rlen, long clen, ArrayList<Pair<Long,FrameBlock>> outlist)`
`static ArrayList<IndexedMatrixValue>` OperationsOnMatrixValues.`performSlice(IndexedMatrixValue in, IndexRange ixrange, int blen)`
`static List` OperationsOnMatrixValues.`performSlice(IndexRange ixrange, int blen, int iix, int jix, CacheBlock in)` Slice used in broadcasting matrix blocks for spark, since this slice up a given matrix into blocks.
`static ArrayList` OperationsOnMatrixValues.`performSlice(IndexRange ixrange, int blen, int iix, int jix, FrameBlock in)`
`static List` OperationsOnMatrixValues.`performSlice(IndexRange ixrange, int blen, int iix, int jix, MatrixBlock in)`
`static ArrayList<Pair<Long,FrameBlock>>` OperationsOnMatrixValues.`performSlice(Pair<Long,FrameBlock> in, IndexRange ixrange, int blen)` This function will get slice of the input frame block overlapping in overall slice(Range), slice has requested for.
`static void` OperationsOnMatrixValues.`performZeroOut(MatrixIndexes indexesIn, MatrixValue valueIn, MatrixIndexes indexesOut, MatrixValue valueOut, IndexRange range, boolean complementary)`
`abstract void` MatrixValue.`slice(ArrayList<IndexedMatrixValue> outlist, IndexRange range, int rowCut, int colCut, int blen, int boundaryRlen, int boundaryClen)` Slice out up to 4 matrixBlocks that are separated by the row and col Cuts.
`void` CM_N_COVCell.`slice(ArrayList<IndexedMatrixValue> outlist, IndexRange range, int rowCut, int colCut, int blen, int boundaryRlen, int boundaryClen)`
`void` MatrixCell.`slice(ArrayList<IndexedMatrixValue> outlist, IndexRange range, int rowCut, int colCut, int blen, int boundaryRlen, int boundaryClen)`
`void` MatrixBlock.`slice(ArrayList<IndexedMatrixValue> outlist, IndexRange range, int rowCut, int colCut, int blen, int boundaryRlen, int boundaryClen)`
`void` FrameBlock.`slice(ArrayList<Pair<Long,FrameBlock>> outlist, IndexRange range, int rowCut)`
`FrameBlock` FrameBlock.`slice(IndexRange ixrange, FrameBlock ret)`
`MatrixBlock` MatrixBlock.`slice(IndexRange ixrange, MatrixBlock ret)`
`static void` LibMatrixCUDA.`sliceOperations(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, IndexRange ixrange, String outputName)` Method to perform rightIndex operation for a given lower and upper bounds in row and column dimensions.
`FrameBlock` FrameBlock.`zeroOutOperations(FrameBlock result, IndexRange range, boolean complementary, int iRowStartSrc, int iRowStartDest, int blen, int iMaxRowsToCopy)` This function ZERO OUT the data in the slicing window applicable for this block.
`abstract MatrixValue` MatrixValue.`zeroOutOperations(MatrixValue result, IndexRange range, boolean complementary)`
`MatrixValue` CM_N_COVCell.`zeroOutOperations(MatrixValue result, IndexRange range, boolean complementary)`
`MatrixValue` MatrixCell.`zeroOutOperations(MatrixValue result, IndexRange range, boolean complementary)`
`MatrixBlock` MatrixBlock.`zeroOutOperations(MatrixValue result, IndexRange range, boolean complementary)`

### Uses of IndexRange in org.apache.sysds.runtime.transform.encode

Methods in org.apache.sysds.runtime.transform.encode with parameters of type IndexRange
`int` MultiColumnEncoder.`getNumExtraCols(IndexRange ixRange)`
`MultiColumnEncoder` MultiColumnEncoder.`subRangeEncoder(IndexRange ixRange)`
`LegacyEncoder` LegacyEncoder.`subRangeEncoder(IndexRange ixRange)` Returns a new Encoder that only handles a sub range of columns.
`LegacyEncoder` EncoderMVImpute.`subRangeEncoder(IndexRange ixRange)`
`EncoderOmit` EncoderOmit.`subRangeEncoder(IndexRange ixRange)`
`<T extends ColumnEncoder> MultiColumnEncoder` MultiColumnEncoder.`subRangeEncoder(IndexRange ixRange, Class<T> type)`

### Uses of IndexRange in org.apache.sysds.runtime.util

Methods in org.apache.sysds.runtime.util that return IndexRange
`IndexRange` IndexRange.`add(int delta)`
`static IndexRange` UtilFunctions.`getSelectedRangeForZeroOut(IndexedMatrixValue in, int blen, IndexRange indexRange)`
`static IndexRange` UtilFunctions.`getSelectedRangeForZeroOut(Pair<Long,FrameBlock> in, int blen, IndexRange indexRange, long lSrcRowIndex, long lDestRowIndex)`

Methods in org.apache.sysds.runtime.util with parameters of type IndexRange
`static IndexRange` UtilFunctions.`getSelectedRangeForZeroOut(IndexedMatrixValue in, int blen, IndexRange indexRange)`
`static IndexRange` UtilFunctions.`getSelectedRangeForZeroOut(Pair<Long,FrameBlock> in, int blen, IndexRange indexRange, long lSrcRowIndex, long lDestRowIndex)`
`static boolean` UtilFunctions.`isInBlockRange(MatrixIndexes ix, int blen, IndexRange ixrange)`
`static boolean` UtilFunctions.`isInFrameBlockRange(Long ix, int blen, IndexRange ixrange)`