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

- Packages that use IndexRange
  Package | Description
  --- | ---
  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
    Modifier and Type | Method and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `IndexRange` | FederatedRange.`asIndexRange()`

    Methods in org.apache.sysds.runtime.controlprogram.federated with parameters of type IndexRange
    Modifier and Type | Method and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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` | 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` | CM_N_COVCell.`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` | MatrixCell.`zeroOutOperations(MatrixValue result, IndexRange range, boolean complementary)`
    `MatrixBlock` | MatrixBlock.`zeroOutOperations(MatrixValue result, IndexRange range, boolean complementary)`
    `MatrixValue` | CM_N_COVCell.`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
    Modifier and Type | Method and Description
    --- | ---
    `int` | MultiColumnEncoder.`getNumExtraCols(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)`
    `MultiColumnEncoder` | MultiColumnEncoder.`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
    Modifier and Type | Method and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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)`

Copyright © 2021 The Apache Software Foundation. All rights reserved.