## Uses of Class
org.apache.sysds.runtime.matrix.operators.AggregateUnaryOperator

- Packages that use AggregateUnaryOperator
  Package | Description
  --- | ---
  org.apache.sysds.runtime.compress |
  org.apache.sysds.runtime.compress.colgroup |
  org.apache.sysds.runtime.compress.lib |
  org.apache.sysds.runtime.controlprogram.federated |
  org.apache.sysds.runtime.data |
  org.apache.sysds.runtime.instructions |
  org.apache.sysds.runtime.instructions.spark |
  org.apache.sysds.runtime.matrix.data |
  org.apache.sysds.runtime.meta |

- - ### Uses of AggregateUnaryOperator in org.apache.sysds.runtime.compress

    Methods in org.apache.sysds.runtime.compress with parameters of type AggregateUnaryOperator
    Modifier and Type | Method | Description
    --- | --- | ---
    `MatrixBlock` | CompressedMatrixBlock.`aggregateUnaryOperations​(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn, boolean inCP)` |
    `MatrixBlock` | CompressedMatrixBlock.`uaggouterchainOperations​(MatrixBlock mbLeft, MatrixBlock mbRight, MatrixBlock mbOut, BinaryOperator bOp, AggregateUnaryOperator uaggOp)` |

  - ### Uses of AggregateUnaryOperator in org.apache.sysds.runtime.compress.colgroup

    Methods in org.apache.sysds.runtime.compress.colgroup with parameters of type AggregateUnaryOperator
    Modifier and Type | Method | Description
    --- | --- | ---
    `double[]` | AColGroupCompressed.`preAggRows​(AggregateUnaryOperator op)` |
    `abstract void` | AColGroup.`unaryAggregateOperations​(AggregateUnaryOperator op, double[] c, int nRows, int rl, int ru)` | Unary Aggregate operator, since aggregate operators require new object output, the output becomes an uncompressed matrix.
    `void` | AColGroupCompressed.`unaryAggregateOperations​(AggregateUnaryOperator op, double[] c, int nRows, int rl, int ru)` |
    `void` | AColGroupCompressed.`unaryAggregateOperations​(AggregateUnaryOperator op, double[] c, int nRows, int rl, int ru, double[] preAgg)` |
    `void` | ColGroupUncompressed.`unaryAggregateOperations​(AggregateUnaryOperator op, double[] result, int nRows, int rl, int ru)` |

  - ### Uses of AggregateUnaryOperator in org.apache.sysds.runtime.compress.lib

    Methods in org.apache.sysds.runtime.compress.lib with parameters of type AggregateUnaryOperator
    Modifier and Type | Method | Description
    --- | --- | ---
    `static MatrixBlock` | CLALibCompAgg.`aggregateUnary​(CompressedMatrixBlock inputMatrix, MatrixBlock result, AggregateUnaryOperator op, int blen, MatrixIndexes indexesIn, boolean inCP)` |

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

    Methods in org.apache.sysds.runtime.controlprogram.federated with parameters of type AggregateUnaryOperator
    Modifier and Type | Method | Description
    --- | --- | ---
    `static MatrixBlock` | FederationUtils.`aggMatrix​(AggregateUnaryOperator aop, Future<FederatedResponse>[] ffr, Future<FederatedResponse>[] meanFfr, FederationMap map)` |
    `static MatrixBlock` | FederationUtils.`aggMatrix​(AggregateUnaryOperator aop, Future<FederatedResponse>[] ffr, FederationMap map)` |
    `static MatrixBlock` | FederationUtils.`aggProd​(Future<FederatedResponse>[] ffr, FederationMap fedMap, AggregateUnaryOperator aop)` |
    `static ScalarObject` | FederationUtils.`aggScalar​(AggregateUnaryOperator aop, Future<FederatedResponse>[] ffr)` |
    `static ScalarObject` | FederationUtils.`aggScalar​(AggregateUnaryOperator aop, Future<FederatedResponse>[] ffr, Future<FederatedResponse>[] meanFfr, FederationMap map)` |
    `static ScalarObject` | FederationUtils.`aggScalar​(AggregateUnaryOperator aop, Future<FederatedResponse>[] ffr, FederationMap map)` |

  - ### Uses of AggregateUnaryOperator in org.apache.sysds.runtime.data

    Methods in org.apache.sysds.runtime.data with parameters of type AggregateUnaryOperator
    Modifier and Type | Method | Description
    --- | --- | ---
    `BasicTensorBlock` | BasicTensorBlock.`aggregateUnaryOperations​(AggregateUnaryOperator op, BasicTensorBlock result)` | Aggregate a unary operation on this tensor.
    `static void` | LibTensorAgg.`aggregateUnaryTensor​(BasicTensorBlock in, BasicTensorBlock out, AggregateUnaryOperator uaop)` | Aggregate a tensor-block with the given unary operator.
    `static boolean` | LibTensorAgg.`isSupportedUnaryAggregateOperator​(AggregateUnaryOperator op)` | Determines whether the unary operator is supported.

  - ### Uses of AggregateUnaryOperator in org.apache.sysds.runtime.instructions

    Methods in org.apache.sysds.runtime.instructions that return AggregateUnaryOperator
    Modifier and Type | Method | Description
    --- | --- | ---
    `static AggregateUnaryOperator` | InstructionUtils.`parseAggregateUnaryRowIndexOperator​(String opcode, int numOutputs, int numThreads)` |
    `static AggregateUnaryOperator` | InstructionUtils.`parseBasicAggregateUnaryOperator​(String opcode)` |
    `static AggregateUnaryOperator` | InstructionUtils.`parseBasicAggregateUnaryOperator​(String opcode, int numThreads)` |
    `static AggregateUnaryOperator` | InstructionUtils.`parseBasicCumulativeAggregateUnaryOperator​(UnaryOperator uop)` |
    `static AggregateUnaryOperator` | InstructionUtils.`parseCumulativeAggregateUnaryOperator​(String opcode)` |

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

    Constructors in org.apache.sysds.runtime.instructions.spark with parameters of type AggregateUnaryOperator
    Constructor | Description
    --- | ---
    `RDDBinUaggChainFunction​(BinaryOperator bop, AggregateUnaryOperator uaggop)` |
    `RDDUAggFunction2​(AggregateUnaryOperator op, int blen)` |
    `RDDUTensorAggFunction2​(AggregateUnaryOperator op)` |

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

    Methods in org.apache.sysds.runtime.matrix.data with parameters of type AggregateUnaryOperator
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | LibMatrixOuterAgg.`aggregateMatrix​(MatrixBlock in1Val, MatrixBlock outVal, double[] bv, int[] bvi, BinaryOperator bOp, AggregateUnaryOperator uaggOp)` |
    `static void` | LibMatrixAgg.`aggregateUnaryMatrix​(MatrixBlock in, MatrixBlock out, AggregateUnaryOperator uaop)` |
    `static void` | LibMatrixAgg.`aggregateUnaryMatrix​(MatrixBlock in, MatrixBlock out, AggregateUnaryOperator uaop, int k)` |
    `MatrixValue` | CM_N_COVCell.`aggregateUnaryOperations​(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn)` |
    `MatrixValue` | CM_N_COVCell.`aggregateUnaryOperations​(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn, boolean inCP)` |
    `MatrixBlock` | MatrixBlock.`aggregateUnaryOperations​(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn)` |
    `MatrixBlock` | MatrixBlock.`aggregateUnaryOperations​(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn, boolean inCP)` |
    `MatrixValue` | MatrixCell.`aggregateUnaryOperations​(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn)` |
    `MatrixValue` | MatrixCell.`aggregateUnaryOperations​(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn, boolean inCP)` |
    `abstract MatrixValue` | MatrixValue.`aggregateUnaryOperations​(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn)` |
    `abstract MatrixValue` | MatrixValue.`aggregateUnaryOperations​(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn, boolean inCP)` |
    `MatrixValue` | WeightedCell.`aggregateUnaryOperations​(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn)` |
    `static boolean` | LibMatrixOuterAgg.`isRowIndexMax​(AggregateUnaryOperator uaggOp)` | This will return if uaggOp is of type RowIndexMax
    `static boolean` | LibMatrixOuterAgg.`isRowIndexMin​(AggregateUnaryOperator uaggOp)` | This will return if uaggOp is of type RowIndexMin
    `static boolean` | LibMatrixOuterAgg.`isSupportedUaggOp​(AggregateUnaryOperator uaggOp, BinaryOperator bOp)` |
    `static boolean` | LibMatrixAgg.`isSupportedUnaryAggregateOperator​(AggregateUnaryOperator op)` |
    `static void` | OperationsOnMatrixValues.`performAggregateUnary​(MatrixIndexes indexesIn, MatrixValue valueIn, MatrixIndexes indexesOut, MatrixValue valueOut, AggregateUnaryOperator op, int blen)` |
    `MatrixBlock` | MatrixBlock.`prepareAggregateUnaryOutput​(AggregateUnaryOperator op, MatrixValue result, int blen)` |
    `static int[]` | LibMatrixOuterAgg.`prepareRowIndices​(int iCols, double[] vmb, BinaryOperator bOp, AggregateUnaryOperator uaggOp)` |
    `static void` | LibMatrixAgg.`recomputeIndexes​(MatrixBlock out, AggregateUnaryOperator op, int blen, MatrixIndexes ix)` | Recompute outputs (e.g., maxindex or minindex) according to block indexes from MR.
    `static void` | LibMatrixOuterAgg.`resetOutputMatrix​(MatrixIndexes in1Ix, MatrixBlock in1Val, MatrixIndexes outIx, MatrixBlock outVal, AggregateUnaryOperator uaggOp)` | ReSet output matrix
    `static boolean` | LibMatrixAgg.`satisfiesMultiThreadingConstraints​(MatrixBlock in, MatrixBlock out, AggregateUnaryOperator uaop, int k)` |
    `MatrixBlock` | MatrixBlock.`uaggouterchainOperations​(MatrixBlock mbLeft, MatrixBlock mbRight, MatrixBlock mbOut, BinaryOperator bOp, AggregateUnaryOperator uaggOp)` |
    `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.

  - ### Uses of AggregateUnaryOperator in org.apache.sysds.runtime.meta

    Methods in org.apache.sysds.runtime.meta with parameters of type AggregateUnaryOperator
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | DataCharacteristics.`aggregateUnary​(DataCharacteristics dim, AggregateUnaryOperator op, DataCharacteristics dimOut)` |