## Uses of Class
org.apache.sysds.runtime.controlprogram.caching.MatrixObject

- Packages that use MatrixObject
  Package | Description
  --- | ---
  org.apache.sysds.api.mlcontext |
  org.apache.sysds.hops.rewrite |
  org.apache.sysds.runtime.codegen |
  org.apache.sysds.runtime.controlprogram.caching |
  org.apache.sysds.runtime.controlprogram.context |
  org.apache.sysds.runtime.controlprogram.federated |
  org.apache.sysds.runtime.controlprogram.paramserv |
  org.apache.sysds.runtime.controlprogram.paramserv.dp |
  org.apache.sysds.runtime.controlprogram.paramserv.homomorphicEncryption |
  org.apache.sysds.runtime.controlprogram.parfor |
  org.apache.sysds.runtime.controlprogram.parfor.opt |
  org.apache.sysds.runtime.instructions.cp |
  org.apache.sysds.runtime.instructions.fed |
  org.apache.sysds.runtime.instructions.gpu.context |
  org.apache.sysds.runtime.instructions.spark.utils |
  org.apache.sysds.runtime.lineage |
  org.apache.sysds.runtime.matrix.data |
  org.apache.sysds.runtime.util |

- - ### Uses of MatrixObject in org.apache.sysds.api.mlcontext

    Methods in org.apache.sysds.api.mlcontext that return MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static MatrixObject` | MLContextConversionUtil.`binaryBlocksToMatrixObject​(org.apache.spark.api.java.JavaPairRDD<MatrixIndexes,​MatrixBlock> binaryBlocks)` | Convert a `JavaPairRDD<MatrixIndexes, MatrixBlock>` to a `MatrixObject`.
    `static MatrixObject` | MLContextConversionUtil.`binaryBlocksToMatrixObject​(org.apache.spark.api.java.JavaPairRDD<MatrixIndexes,​MatrixBlock> binaryBlocks, MatrixMetadata matrixMetadata)` | Convert a `JavaPairRDD<MatrixIndexes, MatrixBlock>` to a `MatrixObject`.
    `static MatrixObject` | MLContextConversionUtil.`dataFrameToMatrixObject​(org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> dataFrame)` | Convert a `DataFrame` to a `MatrixObject`.
    `static MatrixObject` | MLContextConversionUtil.`dataFrameToMatrixObject​(org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> dataFrame, MatrixMetadata matrixMetadata)` | Convert a `DataFrame` to a `MatrixObject`.
    `static MatrixObject` | MLContextConversionUtil.`doubleMatrixToMatrixObject​(String variableName, double[][] doubleMatrix)` | Convert a two-dimensional double array to a `MatrixObject`.
    `static MatrixObject` | MLContextConversionUtil.`doubleMatrixToMatrixObject​(String variableName, double[][] doubleMatrix, MatrixMetadata matrixMetadata)` | Convert a two-dimensional double array to a `MatrixObject`.
    `MatrixObject` | MLResults.`getMatrixObject​(String outputName)` | Obtain an output as a `MatrixObject`
    `static MatrixObject` | MLContextConversionUtil.`javaRDDStringCSVToMatrixObject​(org.apache.spark.api.java.JavaRDD<String> javaRDD)` | Convert a `JavaRDD<String>` in CSV format to a `MatrixObject`
    `static MatrixObject` | MLContextConversionUtil.`javaRDDStringCSVToMatrixObject​(org.apache.spark.api.java.JavaRDD<String> javaRDD, MatrixMetadata matrixMetadata)` | Convert a `JavaRDD<String>` in CSV format to a `MatrixObject`
    `static MatrixObject` | MLContextConversionUtil.`javaRDDStringIJVToMatrixObject​(org.apache.spark.api.java.JavaRDD<String> javaRDD, MatrixMetadata matrixMetadata)` | Convert a `JavaRDD<String>` in IJV format to a `MatrixObject` .
    `static MatrixObject` | MLContextConversionUtil.`matrixBlockToMatrixObject​(String variableName, MatrixBlock matrixBlock, MatrixMetadata matrixMetadata)` | Convert a `MatrixBlock` to a `MatrixObject`.
    `static MatrixObject` | MLContextConversionUtil.`rddStringCSVToMatrixObject​(org.apache.spark.rdd.RDD<String> rdd)` | Convert a `RDD<String>` in CSV format to a `MatrixObject`
    `static MatrixObject` | MLContextConversionUtil.`rddStringCSVToMatrixObject​(org.apache.spark.rdd.RDD<String> rdd, MatrixMetadata matrixMetadata)` | Convert a `RDD<String>` in CSV format to a `MatrixObject`
    `static MatrixObject` | MLContextConversionUtil.`rddStringIJVToMatrixObject​(org.apache.spark.rdd.RDD<String> rdd, MatrixMetadata matrixMetadata)` | Convert a `RDD<String>` in IJV format to a `MatrixObject`.
    `MatrixObject` | Matrix.`toMatrixObject()` | Obtain the matrix as a SystemDS MatrixObject.
    `static MatrixObject` | MLContextConversionUtil.`urlToMatrixObject​(URL url, MatrixMetadata matrixMetadata)` | Convert a matrix at a URL to a `MatrixObject`.

    Methods in org.apache.sysds.api.mlcontext with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static double[][]` | MLContextConversionUtil.`matrixObjectTo2DDoubleArray​(MatrixObject matrixObject)` | Convert a `MatrixObject` to a two-dimensional double array.
    `static org.apache.spark.api.java.JavaPairRDD<MatrixIndexes,​MatrixBlock>` | MLContextConversionUtil.`matrixObjectToBinaryBlocks​(MatrixObject matrixObject, SparkExecutionContext sparkExecutionContext)` | Convert a `MatrixObject` to a `JavaPairRDD<MatrixIndexes, MatrixBlock>`.
    `static org.apache.spark.sql.Dataset<org.apache.spark.sql.Row>` | MLContextConversionUtil.`matrixObjectToDataFrame​(MatrixObject matrixObject, SparkExecutionContext sparkExecutionContext, boolean isVectorDF)` | Convert a `MatrixObject` to a `DataFrame`.
    `static org.apache.spark.api.java.JavaRDD<String>` | MLContextConversionUtil.`matrixObjectToJavaRDDStringCSV​(MatrixObject matrixObject)` | Convert a `MatrixObject` to a `JavaRDD<String>` in CSV format.
    `static org.apache.spark.api.java.JavaRDD<String>` | MLContextConversionUtil.`matrixObjectToJavaRDDStringIJV​(MatrixObject matrixObject)` | Convert a `MatrixObject` to a `JavaRDD<String>` in IJV format.
    `static List<String>` | MLContextConversionUtil.`matrixObjectToListStringCSV​(MatrixObject matrixObject)` | Convert a `MatrixObject` to a `List<String>` in CSV format.
    `static List<String>` | MLContextConversionUtil.`matrixObjectToListStringIJV​(MatrixObject matrixObject)` | Convert a `MatrixObject` to a `List<String>` in IJV format.
    `static org.apache.spark.rdd.RDD<String>` | MLContextConversionUtil.`matrixObjectToRDDStringCSV​(MatrixObject matrixObject)` | Convert a `MatrixObject` to a `RDD<String>` in CSV format.
    `static org.apache.spark.rdd.RDD<String>` | MLContextConversionUtil.`matrixObjectToRDDStringIJV​(MatrixObject matrixObject)` | Convert a `MatrixObject` to a `RDD<String>` in IJV format.

    Constructors in org.apache.sysds.api.mlcontext with parameters of type MatrixObject
    Constructor | Description
    --- | ---
    `Matrix​(MatrixObject matrixObject, SparkExecutionContext sparkExecutionContext)` |

  - ### Uses of MatrixObject in org.apache.sysds.hops.rewrite

    Methods in org.apache.sysds.hops.rewrite with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | HopRewriteUtils.`copyLineNumbers​(MatrixObject mo, Hop tread)` |
    `static DataOp` | HopRewriteUtils.`createTransientRead​(String name, MatrixObject mo)` |

  - ### Uses of MatrixObject in org.apache.sysds.runtime.codegen

    Methods in org.apache.sysds.runtime.codegen that return MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `MatrixObject` | SpoofCUDACellwise.`execute​(ExecutionContext ec, ArrayList<MatrixObject> inputs, ArrayList<ScalarObject> scalarObjects, String outputName)` |
    `MatrixObject` | SpoofCUDAOperator.`execute​(ExecutionContext ec, ArrayList<MatrixObject> inputs, ArrayList<ScalarObject> scalarObjects, String outputName)` |
    `MatrixObject` | SpoofCUDARowwise.`execute​(ExecutionContext ec, ArrayList<MatrixObject> inputs, ArrayList<ScalarObject> scalarObjects, String outputName)` |

    Methods in org.apache.sysds.runtime.codegen with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `default void` | SpoofCUDAOperator.`packDataForTransfer​(ExecutionContext ec, ArrayList<MatrixObject> inputs, ArrayList<ScalarObject> scalarObjects, MatrixObject out_obj, int num_inputs, int ID, long grix, boolean tB1, jcuda.Pointer[] ptr)` |
    `default void` | SpoofCUDAOperator.`prepareMatrixPointers​(ByteBuffer buf, ExecutionContext ec, MatrixObject mo, boolean tB1)` |

    Method parameters in org.apache.sysds.runtime.codegen with type arguments of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `ScalarObject` | SpoofCUDACellwise.`execute​(ExecutionContext ec, ArrayList<MatrixObject> inputs, ArrayList<ScalarObject> scalarObjects)` |
    `MatrixObject` | SpoofCUDACellwise.`execute​(ExecutionContext ec, ArrayList<MatrixObject> inputs, ArrayList<ScalarObject> scalarObjects, String outputName)` |
    `ScalarObject` | SpoofCUDAOperator.`execute​(ExecutionContext ec, ArrayList<MatrixObject> inputs, ArrayList<ScalarObject> scalarObjects)` |
    `MatrixObject` | SpoofCUDAOperator.`execute​(ExecutionContext ec, ArrayList<MatrixObject> inputs, ArrayList<ScalarObject> scalarObjects, String outputName)` |
    `ScalarObject` | SpoofCUDARowwise.`execute​(ExecutionContext ec, ArrayList<MatrixObject> inputs, ArrayList<ScalarObject> scalarObjects)` |
    `MatrixObject` | SpoofCUDARowwise.`execute​(ExecutionContext ec, ArrayList<MatrixObject> inputs, ArrayList<ScalarObject> scalarObjects, String outputName)` |
    `static boolean` | SpoofRowwise.`hasMatrixObjectSideInput​(ArrayList<MatrixObject> inputs)` |
    `default void` | SpoofCUDAOperator.`packDataForTransfer​(ExecutionContext ec, ArrayList<MatrixObject> inputs, ArrayList<ScalarObject> scalarObjects, MatrixObject out_obj, int num_inputs, int ID, long grix, boolean tB1, jcuda.Pointer[] ptr)` |

  - ### Uses of MatrixObject in org.apache.sysds.runtime.controlprogram.caching

    Constructors in org.apache.sysds.runtime.controlprogram.caching with parameters of type MatrixObject
    Constructor | Description
    --- | ---
    `MatrixObject​(MatrixObject mo)` | Copy constructor that copies meta data but NO data.

  - ### Uses of MatrixObject in org.apache.sysds.runtime.controlprogram.context

    Methods in org.apache.sysds.runtime.controlprogram.context that return MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `MatrixObject` | ExecutionContext.`allocateGPUMatrixObject​(String varName, long numRows, long numCols)` | Allocates the `GPUObject` for a given LOPS Variable (eg.
    `static MatrixObject` | ExecutionContext.`createMatrixObject​(MatrixBlock mb)` |
    `static MatrixObject` | ExecutionContext.`createMatrixObject​(DataCharacteristics dc)` |
    `MatrixObject` | ExecutionContext.`getMatrixInputForGPUInstruction​(String varName, String opcode)` |
    `MatrixObject` | ExecutionContext.`getMatrixObject​(String varname)` |
    `MatrixObject` | ExecutionContext.`getMatrixObject​(CPOperand input)` |

    Methods in org.apache.sysds.runtime.controlprogram.context that return types with arguments of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `Pair<MatrixObject,​Boolean>` | ExecutionContext.`getDenseMatrixOutputForGPUInstruction​(String varName, long numRows, long numCols)` | Allocates a dense matrix on the GPU (for output)
    `Pair<MatrixObject,​Boolean>` | ExecutionContext.`getDenseMatrixOutputForGPUInstruction​(String varName, long numRows, long numCols, boolean initialize)` |
    `Pair<MatrixObject,​Boolean>` | ExecutionContext.`getSparseMatrixOutputForGPUInstruction​(String varName, long numRows, long numCols, long nnz)` | Allocates a sparse matrix in CSR format on the GPU.
    `Pair<MatrixObject,​Boolean>` | ExecutionContext.`getSparseMatrixOutputForGPUInstruction​(String varName, long numRows, long numCols, long nnz, boolean initialize)` |

    Methods in org.apache.sysds.runtime.controlprogram.context with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `PartitionedBroadcast<MatrixBlock>` | SparkExecutionContext.`getBroadcastForMatrixObject​(MatrixObject mo)` |
    `long` | ExecutionContext.`getGPUDensePointerAddress​(MatrixObject obj)` |
    `CSRPointer` | ExecutionContext.`getGPUSparsePointerAddress​(MatrixObject obj)` |
    `org.apache.spark.api.java.JavaPairRDD<?,​?>` | SparkExecutionContext.`getRDDHandleForMatrixObject​(MatrixObject mo, Types.FileFormat fmt)` |
    `org.apache.spark.api.java.JavaPairRDD<?,​?>` | SparkExecutionContext.`getRDDHandleForMatrixObject​(MatrixObject mo, Types.FileFormat fmt, int numParts, boolean inclEmpty)` |
    `void` | SparkExecutionContext.`setBroadcastHandle​(MatrixObject mo)` |

  - ### Uses of MatrixObject in org.apache.sysds.runtime.controlprogram.federated

    Methods in org.apache.sysds.runtime.controlprogram.federated that return MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `MatrixObject` | MatrixLineagePair.`getMO()` |

    Methods in org.apache.sysds.runtime.controlprogram.federated with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | FederationUtils.`checkFedMapType​(MatrixObject mo)` |
    `static MatrixLineagePair` | MatrixLineagePair.`of​(MatrixObject mo, LineageItem li)` |

    Constructors in org.apache.sysds.runtime.controlprogram.federated with parameters of type MatrixObject
    Constructor | Description
    --- | ---
    `MatrixLineagePair​(MatrixObject mo, LineageItem li)` |

  - ### Uses of MatrixObject in org.apache.sysds.runtime.controlprogram.paramserv

    Methods in org.apache.sysds.runtime.controlprogram.paramserv that return MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static MatrixObject` | ParamservUtils.`createShallowCopy​(MatrixObject mo)` |
    `MatrixObject` | PSWorker.`getFeatures()` |
    `MatrixObject` | PSWorker.`getLabels()` |
    `static MatrixObject` | ParamservUtils.`newMatrixObject​(MatrixBlock mb)` |
    `static MatrixObject` | ParamservUtils.`newMatrixObject​(MatrixBlock mb, boolean cleanup)` |
    `static MatrixObject` | ParamservUtils.`sliceMatrix​(MatrixObject mo, long rl, long rh)` | Slice the matrix

    Methods in org.apache.sysds.runtime.controlprogram.paramserv with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static HEParamServer` | HEParamServer.`create​(ListObject model, String aggFunc, Statement.PSUpdateType updateType, Statement.PSFrequency freq, ExecutionContext ec, int workerNum, String valFunc, int numBatchesPerEpoch, MatrixObject valFeatures, MatrixObject valLabels, int nbatches)` |
    `static LocalParamServer` | LocalParamServer.`create​(ListObject model, String aggFunc, Statement.PSUpdateType updateType, Statement.PSFrequency freq, ExecutionContext ec, int workerNum, String valFunc, int numBatchesPerEpoch, MatrixObject valFeatures, MatrixObject valLabels, int nbatches, boolean modelAvg)` |
    `static MatrixObject` | ParamservUtils.`createShallowCopy​(MatrixObject mo)` |
    `static org.apache.spark.api.java.JavaPairRDD<Integer,​scala.Tuple2<MatrixBlock,​MatrixBlock>>` | SparkParamservUtils.`doPartitionOnSpark​(SparkExecutionContext sec, MatrixObject features, MatrixObject labels, Statement.PSScheme scheme, int workerNum)` |
    `void` | PSWorker.`setFeatures​(MatrixObject features)` |
    `void` | PSWorker.`setLabels​(MatrixObject labels)` |
    `static MatrixObject` | ParamservUtils.`sliceMatrix​(MatrixObject mo, long rl, long rh)` | Slice the matrix

  - ### Uses of MatrixObject in org.apache.sysds.runtime.controlprogram.paramserv.dp

    Fields in org.apache.sysds.runtime.controlprogram.paramserv.dp with type parameters of type MatrixObject
    Modifier and Type | Field | Description
    --- | --- | ---
    `List<MatrixObject>` | DataPartitionFederatedScheme.Result.`_pFeatures` |
    `List<MatrixObject>` | DataPartitionFederatedScheme.Result.`_pLabels` |
    `List<MatrixObject>` | DataPartitionLocalScheme.Result.`pFeatures` |
    `List<MatrixObject>` | DataPartitionLocalScheme.Result.`pLabels` |

    Methods in org.apache.sysds.runtime.controlprogram.paramserv.dp with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `DataPartitionFederatedScheme.Result` | FederatedDataPartitioner.`doPartitioning​(MatrixObject features, MatrixObject labels)` |
    `DataPartitionFederatedScheme.Result` | BalanceToAvgFederatedScheme.`partition​(MatrixObject features, MatrixObject labels, int seed)` |
    `abstract DataPartitionFederatedScheme.Result` | DataPartitionFederatedScheme.`partition​(MatrixObject features, MatrixObject labels, int seed)` |
    `DataPartitionFederatedScheme.Result` | KeepDataOnWorkerFederatedScheme.`partition​(MatrixObject features, MatrixObject labels, int seed)` |
    `DataPartitionFederatedScheme.Result` | ReplicateToMaxFederatedScheme.`partition​(MatrixObject features, MatrixObject labels, int seed)` |
    `DataPartitionFederatedScheme.Result` | ShuffleFederatedScheme.`partition​(MatrixObject features, MatrixObject labels, int seed)` |
    `DataPartitionFederatedScheme.Result` | SubsampleToMinFederatedScheme.`partition​(MatrixObject features, MatrixObject labels, int seed)` |

    Constructor parameters in org.apache.sysds.runtime.controlprogram.paramserv.dp with type arguments of type MatrixObject
    Constructor | Description
    --- | ---
    `Result​(List<MatrixObject> pFeatures, List<MatrixObject> pLabels, int workerNum, DataPartitionFederatedScheme.BalanceMetrics balanceMetrics, List<Double> weightingFactors)` |
    `Result​(List<MatrixObject> pFeatures, List<MatrixObject> pLabels)` |

  - ### Uses of MatrixObject in org.apache.sysds.runtime.controlprogram.paramserv.homomorphicEncryption

    Methods in org.apache.sysds.runtime.controlprogram.paramserv.homomorphicEncryption that return MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `MatrixObject` | SEALServer.`average​(CiphertextMatrix encrypted_sum, PlaintextMatrix[] partial_plaintexts)` | averages the partial decryptions

    Methods in org.apache.sysds.runtime.controlprogram.paramserv.homomorphicEncryption with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `CiphertextMatrix` | SEALClient.`encrypt​(MatrixObject plaintext)` | encrypts one block of data with public key stored statically and returns it setPublicKey() must have been called before calling this

  - ### Uses of MatrixObject in org.apache.sysds.runtime.controlprogram.parfor

    Methods in org.apache.sysds.runtime.controlprogram.parfor that return MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `MatrixObject` | DataPartitioner.`createPartitionedMatrixObject​(MatrixObject in, String fnameNew)` |
    `MatrixObject` | DataPartitioner.`createPartitionedMatrixObject​(MatrixObject in, String fnameNew, boolean force)` |
    `MatrixObject` | DataPartitioner.`createPartitionedMatrixObject​(MatrixObject in, MatrixObject out, boolean force)` | Creates a partitioned matrix object based on the given input matrix object, according to the specified split format.
    `MatrixObject` | ResultMergeLocalAutomatic.`executeParallelMerge​(int par)` |
    `MatrixObject` | ResultMergeLocalFile.`executeParallelMerge​(int par)` |
    `MatrixObject` | ResultMergeLocalMemory.`executeParallelMerge​(int par)` |
    `MatrixObject` | ResultMergeRemoteSpark.`executeParallelMerge​(int par)` |
    `MatrixObject` | ResultMergeRemoteSparkWCompare.`executeParallelMerge​(int par)` |
    `MatrixObject` | ResultMergeLocalAutomatic.`executeSerialMerge()` |
    `MatrixObject` | ResultMergeLocalFile.`executeSerialMerge()` |
    `MatrixObject` | ResultMergeLocalMemory.`executeSerialMerge()` |
    `MatrixObject` | ResultMergeRemoteSpark.`executeSerialMerge()` |
    `MatrixObject` | ResultMergeRemoteSparkWCompare.`executeSerialMerge()` |

    Methods in org.apache.sysds.runtime.controlprogram.parfor with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `MatrixObject` | DataPartitioner.`createPartitionedMatrixObject​(MatrixObject in, String fnameNew)` |
    `MatrixObject` | DataPartitioner.`createPartitionedMatrixObject​(MatrixObject in, String fnameNew, boolean force)` |
    `MatrixObject` | DataPartitioner.`createPartitionedMatrixObject​(MatrixObject in, MatrixObject out, boolean force)` | Creates a partitioned matrix object based on the given input matrix object, according to the specified split format.
    `static RemoteParForJobReturn` | RemoteDPParForSpark.`runJob​(long pfid, String itervar, String matrixvar, String program, HashMap<String,​byte[]> clsMap, String resultFile, MatrixObject input, ExecutionContext ec, ParForProgramBlock.PartitionFormat dpf, Types.FileFormat fmt, boolean tSparseCol, boolean enableCPCaching, int numReducers)` |

    Constructors in org.apache.sysds.runtime.controlprogram.parfor with parameters of type MatrixObject
    Constructor | Description
    --- | ---
    `ResultMergeLocalAutomatic​(MatrixObject out, MatrixObject[] in, String outputFilename, boolean accum)` |
    `ResultMergeLocalFile​(MatrixObject out, MatrixObject[] in, String outputFilename, boolean accum)` |
    `ResultMergeLocalMemory​(MatrixObject out, MatrixObject[] in, String outputFilename, boolean accum)` |
    `ResultMergeMatrix​(MatrixObject out, MatrixObject[] in, String outputFilename, boolean accum)` |
    `ResultMergeRemoteSpark​(MatrixObject out, MatrixObject[] in, String outputFilename, boolean accum, ExecutionContext ec, int numMappers, int numReducers)` |

  - ### Uses of MatrixObject in org.apache.sysds.runtime.controlprogram.parfor.opt

    Methods in org.apache.sysds.runtime.controlprogram.parfor.opt with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static boolean` | OptimizerRuleBased.`allowsBinaryCellPartitions​(MatrixObject mo, ParForProgramBlock.PartitionFormat dpf)` |

  - ### Uses of MatrixObject in org.apache.sysds.runtime.instructions.cp

    Constructors in org.apache.sysds.runtime.instructions.cp with parameters of type MatrixObject
    Constructor | Description
    --- | ---
    `TriggerBroadcastTask​(ExecutionContext ec, MatrixObject mo)` |
    `TriggerRemoteOperationsTask​(MatrixObject mo)` |

  - ### Uses of MatrixObject in org.apache.sysds.runtime.instructions.fed

    Methods in org.apache.sysds.runtime.instructions.fed with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | MultiReturnParameterizedBuiltinFEDInstruction.`encodeFederatedFrames​(FederationMap fedMapping, MultiColumnEncoder globalencoder, MatrixObject transformedMat)` |
    `void` | UnaryMatrixFEDInstruction.`processCumulativeInstruction​(ExecutionContext ec, MatrixObject mo1)` |

  - ### Uses of MatrixObject in org.apache.sysds.runtime.instructions.gpu.context

    Methods in org.apache.sysds.runtime.instructions.gpu.context that return MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `MatrixObject` | GPUObject.`getMatrixObject()` |

    Methods in org.apache.sysds.runtime.instructions.gpu.context with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `GPUObject` | GPUContext.`createGPUObject​(MatrixObject mo)` | Instantiates a new `GPUObject` initialized with the given `MatrixObject`.
    `GPUObject` | GPUContext.`shallowCopyGPUObject​(GPUObject source, MatrixObject mo)` | Shallow copy the given source `GPUObject` to a new `GPUObject` and assign that to the given `MatrixObject`.

    Constructors in org.apache.sysds.runtime.instructions.gpu.context with parameters of type MatrixObject
    Constructor | Description
    --- | ---
    `GPUObject​(GPUContext gCtx, GPUObject that, MatrixObject mat)` |

  - ### Uses of MatrixObject in org.apache.sysds.runtime.instructions.spark.utils

    Methods in org.apache.sysds.runtime.instructions.spark.utils with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static long` | SparkUtils.`getNonZeros​(MatrixObject mo)` |
    `static void` | SparkUtils.`postprocessUltraSparseOutput​(MatrixObject mo, DataCharacteristics mcOut)` |

  - ### Uses of MatrixObject in org.apache.sysds.runtime.lineage

    Methods in org.apache.sysds.runtime.lineage with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static FederatedResponse` | LineageItemUtils.`setUDFResponse​(FederatedUDF udf, MatrixObject mo)` |

  - ### Uses of MatrixObject in org.apache.sysds.runtime.matrix.data

    Methods in org.apache.sysds.runtime.matrix.data that return MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static MatrixObject` | LibMatrixCUDA.`getDenseMatrixOutputForGPUInstruction​(ExecutionContext ec, String instName, String name, long numRows, long numCols)` | Helper method to get the output block (allocated on the GPU) Also records performance information into `Statistics`
    `static MatrixObject` | LibMatrixCUDA.`getDenseMatrixOutputForGPUInstruction​(ExecutionContext ec, String instName, String name, long numRows, long numCols, boolean initialize)` |
    `static MatrixObject` | LibMatrixCuMatMult.`matmult​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject left, MatrixObject right, String outputName, boolean isLeftTransposed, boolean isRightTransposed)` | Matrix multiply on GPU Examines sparsity and shapes and routes call to appropriate method from cuBLAS or cuSparse C = op(A) x op(B) The user is expected to call ec.releaseMatrixOutputForGPUInstruction(outputName);

    Methods in org.apache.sysds.runtime.matrix.data with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | LibMatrixCUDA.`abs​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "abs" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`acos​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "acos" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`asin​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "asin" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`atan​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "atan" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`axpy​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName, double constant)` | Performs daxpy operation
    `static void` | LibMatrixCuDNN.`batchNormalizationBackward​(GPUContext gCtx, String instName, MatrixObject image, MatrixObject dout, MatrixObject scale, MatrixObject dX, MatrixObject dScale, MatrixObject dBias, double epsilon, MatrixObject resultSaveMean, MatrixObject resultSaveInvVariance)` | This method computes the backpropagation errors for image, scale and bias of batch normalization layer
    `static void` | LibMatrixCuDNN.`batchNormalizationForwardInference​(GPUContext gCtx, String instName, MatrixObject image, MatrixObject scale, MatrixObject bias, MatrixObject runningMean, MatrixObject runningVar, MatrixObject ret, double epsilon)` | Performs the forward BatchNormalization layer computation for inference
    `static void` | LibMatrixCuDNN.`batchNormalizationForwardTraining​(GPUContext gCtx, String instName, MatrixObject image, MatrixObject scale, MatrixObject bias, MatrixObject runningMean, MatrixObject runningVar, MatrixObject ret, MatrixObject retRunningMean, MatrixObject retRunningVar, double epsilon, double exponentialAverageFactor, MatrixObject resultSaveMean, MatrixObject resultSaveInvVariance)` | Performs the forward BatchNormalization layer computation for training
    `static void` | LibMatrixCUDA.`biasAdd​(GPUContext gCtx, String instName, MatrixObject input, MatrixObject bias, MatrixObject outputBlock)` | Performs the operation corresponding to the DML script: ones = matrix(1, rows=1, cols=Hout*Wout) output = input + matrix(bias %*% ones, rows=1, cols=F*Hout*Wout) This operation is often followed by conv2d and hence we have introduced bias_add(input, bias) built-in function
    `static void` | LibMatrixCUDA.`biasMultiply​(GPUContext gCtx, String instName, MatrixObject input, MatrixObject bias, MatrixObject outputBlock)` | Performs the operation corresponding to the DML script: ones = matrix(1, rows=1, cols=Hout*Wout) output = input * matrix(bias %*% ones, rows=1, cols=F*Hout*Wout) This operation is often followed by conv2d and hence we have introduced bias_add(input, bias) built-in function
    `static void` | LibMatrixCUDA.`cbind​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName)` |
    `static void` | LibMatrixCUDA.`ceil​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "ceil" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`channelSums​(GPUContext gCtx, String instName, MatrixObject input, MatrixObject outputBlock, long C, long HW)` | Perform channel_sums operations: out = rowSums(matrix(colSums(A), rows=C, cols=HW))
    `static void` | LibMatrixCuDNN.`conv2d​(GPUContext gCtx, String instName, MatrixObject image, MatrixObject filter, MatrixObject outputBlock, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, double intermediateMemoryBudget)` | Performs a 2D convolution
    `static void` | LibMatrixCuDNN.`conv2dBackwardData​(GPUContext gCtx, String instName, MatrixObject filter, MatrixObject dout, MatrixObject output, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, double intermediateMemoryBudget)` | This method computes the backpropogation errors for previous layer of convolution operation
    `static void` | LibMatrixCuDNN.`conv2dBackwardFilter​(GPUContext gCtx, String instName, MatrixObject image, MatrixObject dout, MatrixObject outputBlock, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, double intermediateMemoryBudget)` | This method computes the backpropogation errors for filter of convolution operation
    `static void` | LibMatrixCuDNN.`conv2dBiasAdd​(GPUContext gCtx, String instName, MatrixObject image, MatrixObject bias, MatrixObject filter, MatrixObject output, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, double intermediateMemoryBudget)` | Does a 2D convolution followed by a bias_add
    `static void` | LibMatrixCUDA.`cos​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "cos" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`cosh​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "cosh" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`cumulativeScan​(ExecutionContext ec, GPUContext gCtx, String instName, String kernelFunction, MatrixObject in, String outputName)` | Cumulative scan
    `static void` | LibMatrixCUDA.`cumulativeSumProduct​(ExecutionContext ec, GPUContext gCtx, String instName, String kernelFunction, MatrixObject in, String outputName)` | Cumulative sum-product kernel cascade invokation
    `static void` | LibMatrixCUDA.`exp​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "exp" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`floor​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "floor" operation on a matrix on the GPU
    `static jcuda.Pointer` | LibMatrixCUDA.`getDensePointer​(GPUContext gCtx, MatrixObject input, String instName)` | Convenience method to get jcudaDenseMatrixPtr.
    `static jcuda.Pointer` | LibMatrixCuDNN.`getDensePointerForCuDNN​(GPUContext gCtx, MatrixObject image, String instName, int numRows, int numCols)` | Convenience method to get jcudaDenseMatrixPtr.
    `static long` | LibMatrixCUDA.`getNnz​(GPUContext gCtx, String instName, MatrixObject mo, boolean recomputeDenseNNZ)` | Note: if the matrix is in dense format, it explicitly re-computes the number of nonzeros.
    `static boolean` | LibMatrixCUDA.`isInSparseFormat​(GPUContext gCtx, MatrixObject mo)` |
    `static void` | LibMatrixCUDA.`log​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "log" operation on a matrix on the GPU
    `static MatrixObject` | LibMatrixCuMatMult.`matmult​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject left, MatrixObject right, String outputName, boolean isLeftTransposed, boolean isRightTransposed)` | Matrix multiply on GPU Examines sparsity and shapes and routes call to appropriate method from cuBLAS or cuSparse C = op(A) x op(B) The user is expected to call ec.releaseMatrixOutputForGPUInstruction(outputName);
    `static void` | LibMatrixCUDA.`matmultTSMM​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject left, String outputName, boolean isLeftTransposed)` | Performs tsmm, A %*% A' or A' %*% A, on GPU by exploiting cublasDsyrk(...)
    `static void` | LibMatrixCUDA.`matrixMatrixArithmetic​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName, boolean isLeftTransposed, boolean isRightTransposed, BinaryOperator op)` | Performs elementwise arithmetic operation specified by op of two input matrices in1 and in2
    `static void` | LibMatrixCUDA.`matrixMatrixRelational​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName, BinaryOperator op)` | Performs elementwise operation relational specified by op of two input matrices in1 and in2
    `static void` | LibMatrixCUDA.`matrixScalarArithmetic​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName, boolean isInputTransposed, ScalarOperator op)` | Entry point to perform elementwise matrix-scalar arithmetic operation specified by op
    `static void` | LibMatrixCUDA.`matrixScalarOp​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName, boolean isInputTransposed, ScalarOperator op)` | Utility to do matrix-scalar operation kernel
    `static void` | LibMatrixCUDA.`matrixScalarRelational​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName, ScalarOperator op)` | Entry point to perform elementwise matrix-scalar relational operation specified by op
    `static void` | LibMatrixCuDNN.`pooling​(GPUContext gCtx, String instName, MatrixObject image, MatrixObject outputBlock, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, LibMatrixDNN.PoolingType poolingType, double intermediateMemoryBudget)` | performs maxpooling on GPU by exploiting cudnnPoolingForward(...)
    `static void` | LibMatrixCuDNN.`poolingBackward​(GPUContext gCtx, String instName, MatrixObject image, MatrixObject dout, MatrixObject maxpoolOutput, MatrixObject outputBlock, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, LibMatrixDNN.PoolingType poolingType, double intermediateMemoryBudget)` | Performs maxpoolingBackward on GPU by exploiting cudnnPoolingBackward(...) This method computes the backpropogation errors for previous layer of maxpooling operation
    `static void` | LibMatrixCUDA.`rbind​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName)` |
    `static void` | LibMatrixCuDNN.`relu​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName)` | Performs the relu operation on the GPU.
    `static void` | LibMatrixCUDA.`reluBackward​(GPUContext gCtx, String instName, MatrixObject input, MatrixObject dout, MatrixObject outputBlock)` | This method computes the backpropagation errors for previous layer of relu operation
    `static void` | LibMatrixCUDA.`round​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "round" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`sigmoid​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "sigmoid" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`sign​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "sign" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`sin​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "sin" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`sinh​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "sinh" operation on a matrix on the GPU
    `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.
    `static void` | LibMatrixCuDNN.`softmax​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "softmax" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`solve​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName)` | Implements the "solve" function for systemds Ax = B (A is of size m*n, B is of size m*1, x is of size n*1)
    `static void` | LibMatrixCUDA.`sqrt​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "sqrt" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`tan​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "tan" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`tanh​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` | Performs an "tanh" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`transpose​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName)` | Transposes the input matrix using cublasDgeam
    `static void` | LibMatrixCUDA.`unaryAggregate​(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String output, AggregateUnaryOperator op)` | Entry point to perform Unary aggregate operations on the GPU.

    Constructors in org.apache.sysds.runtime.matrix.data with parameters of type MatrixObject
    Constructor | Description
    --- | ---
    `LibMatrixCuDNNInputRowFetcher​(GPUContext gCtx, String instName, MatrixObject image)` | Initialize the input fetcher

  - ### Uses of MatrixObject in org.apache.sysds.runtime.util

    Methods in org.apache.sysds.runtime.util with parameters of type MatrixObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static ListObject` | AutoDiff.`getBackward​(MatrixObject mo, ArrayList<Data> lineage, ExecutionContext adec)` |
    `static List<Data>` | AutoDiff.`parseNComputeAutoDiffFromLineage​(MatrixObject mo, String mainTrace, ArrayList<String> names, ExecutionContext ec)` |