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

Packages that use BinaryOperator
org.apache.sysds.runtime.compress
org.apache.sysds.runtime.compress.colgroup
org.apache.sysds.runtime.compress.colgroup.dictionary
org.apache.sysds.runtime.compress.lib
org.apache.sysds.runtime.data
org.apache.sysds.runtime.functionobjects
org.apache.sysds.runtime.instructions
org.apache.sysds.runtime.instructions.spark
org.apache.sysds.runtime.instructions.spark.functions
org.apache.sysds.runtime.matrix.data
org.apache.sysds.runtime.matrix.operators

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

Methods in org.apache.sysds.runtime.compress with parameters of type BinaryOperator
`MatrixBlock` CompressedMatrixBlock.`binaryOperations(BinaryOperator op, MatrixValue thatValue, MatrixValue result)`
`MatrixBlock` CompressedMatrixBlock.`binaryOperationsInPlace(BinaryOperator op, MatrixValue thatValue)`
`MatrixBlock` CompressedMatrixBlock.`binaryOperationsLeft(BinaryOperator op, MatrixValue thatValue, MatrixValue result)`
`MatrixBlock` CompressedMatrixBlock.`uaggouterchainOperations(MatrixBlock mbLeft, MatrixBlock mbRight, MatrixBlock mbOut, BinaryOperator bOp, AggregateUnaryOperator uaggOp)`

### Uses of BinaryOperator in org.apache.sysds.runtime.compress.colgroup

Methods in org.apache.sysds.runtime.compress.colgroup with parameters of type BinaryOperator
`abstract AColGroup` AColGroup.`binaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, boolean left)` Perform a binary row operation.
`AColGroup` ColGroupEmpty.`binaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, boolean left)`
`AColGroup` ColGroupSDC.`binaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, boolean left)`
`AColGroup` ColGroupUncompressed.`binaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, boolean left)`
`AColGroup` ColGroupSDCZeros.`binaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, boolean left)`
`AColGroup` ColGroupDDC.`binaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, boolean left)`
`AColGroup` ColGroupSDCSingle.`binaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, boolean left)`
`AColGroup` ColGroupRLE.`binaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, boolean left)`
`AColGroup` ColGroupOLE.`binaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, boolean left)`
`AColGroup` ColGroupSDCSingleZeros.`binaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, boolean left)`
`AColGroup` ColGroupConst.`binaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, boolean left)`

### Uses of BinaryOperator in org.apache.sysds.runtime.compress.colgroup.dictionary

Methods in org.apache.sysds.runtime.compress.colgroup.dictionary with parameters of type BinaryOperator
`ADictionary` ADictionary.`applyBinaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, int[] colIndexes, boolean left)` Apply binary row operation on this dictionary.
`QDictionary` QDictionary.`applyBinaryRowOpLeft(BinaryOperator op, double[] v, boolean sparseSafe, int[] colIndexes)`
`Dictionary` Dictionary.`applyBinaryRowOpLeft(BinaryOperator op, double[] v, boolean sparseSafe, int[] colIndexes)`
`ADictionary` MatrixBlockDictionary.`applyBinaryRowOpLeft(BinaryOperator op, double[] v, boolean sparseSafe, int[] colIndexes)`
`abstract ADictionary` ADictionary.`applyBinaryRowOpLeft(BinaryOperator op, double[] v, boolean sparseSafe, int[] colIndexes)` Apply binary row operation on this dictionary on the left side.
`QDictionary` QDictionary.`applyBinaryRowOpRight(BinaryOperator op, double[] v, boolean sparseSafe, int[] colIndexes)`
`Dictionary` Dictionary.`applyBinaryRowOpRight(BinaryOperator op, double[] v, boolean sparseSafe, int[] colIndexes)`
`ADictionary` MatrixBlockDictionary.`applyBinaryRowOpRight(BinaryOperator op, double[] v, boolean sparseSafe, int[] colIndexes)`
`abstract ADictionary` ADictionary.`applyBinaryRowOpRight(BinaryOperator op, double[] v, boolean sparseSafe, int[] colIndexes)` Apply binary row operation on this dictionary on the right side.

### Uses of BinaryOperator in org.apache.sysds.runtime.compress.lib

Methods in org.apache.sysds.runtime.compress.lib with parameters of type BinaryOperator
`static CompressedMatrixBlock` CLALibBinaryCellOp.`binaryMVRow(CompressedMatrixBlock m1, double[] v, CompressedMatrixBlock ret, BinaryOperator op, boolean left)`
`static MatrixBlock` CLALibBinaryCellOp.`binaryOperations(BinaryOperator op, CompressedMatrixBlock m1, MatrixBlock that, MatrixBlock result)`
`static MatrixBlock` CLALibBinaryCellOp.`binaryOperationsLeft(BinaryOperator op, CompressedMatrixBlock m1, MatrixBlock that, MatrixBlock result)`

### Uses of BinaryOperator in org.apache.sysds.runtime.data

Methods in org.apache.sysds.runtime.data with parameters of type BinaryOperator
`TensorBlock` TensorBlock.`binaryOperations(BinaryOperator op, TensorBlock thatValue, TensorBlock result)`
`static void` LibTensorBincell.`bincellOp(TensorBlock m1, TensorBlock m2, TensorBlock ret, BinaryOperator op)` tensor-tensor binary operations

### Uses of BinaryOperator in org.apache.sysds.runtime.functionobjects

Methods in org.apache.sysds.runtime.functionobjects that return BinaryOperator
`BinaryOperator` MinusMultiply.`setOp2Constant(double cnt)`
`BinaryOperator` PlusMultiply.`setOp2Constant(double cnt)`
`BinaryOperator` TernaryValueFunction.ValueFunctionWithConstant.`setOp2Constant(double cnt)`

### Uses of BinaryOperator in org.apache.sysds.runtime.instructions

Methods in org.apache.sysds.runtime.instructions that return BinaryOperator
`static BinaryOperator` InstructionUtils.`parseBinaryOperator(String opcode)`
`static BinaryOperator` InstructionUtils.`parseExtendedBinaryOperator(String opcode)`

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

Constructors in org.apache.sysds.runtime.instructions.spark with parameters of type BinaryOperator
Constructor and Description
`RDDBinUaggChainFunction(BinaryOperator bop, AggregateUnaryOperator uaggop)`

### Uses of BinaryOperator in org.apache.sysds.runtime.instructions.spark.functions

Constructors in org.apache.sysds.runtime.instructions.spark.functions with parameters of type BinaryOperator
Constructor and Description
`MatrixMatrixBinaryOpFunction(BinaryOperator op)`
`MatrixVectorBinaryOpPartitionFunction(BinaryOperator op, PartitionedBroadcast<MatrixBlock> binput, BinaryM.VectorType vtype)`
`OuterVectorBinaryOpFunction(BinaryOperator op, PartitionedBroadcast<MatrixBlock> binput)`
`TensorTensorBinaryOpFunction(BinaryOperator op)`
`TensorTensorBinaryOpPartitionFunction(BinaryOperator op, PartitionedBroadcast<TensorBlock> binput, boolean[] replicateDim)`

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

Methods in org.apache.sysds.runtime.matrix.data with parameters of type BinaryOperator
`static void` LibMatrixOuterAgg.`adjustRowIndicesMax(int[] vix, double[] vmb, BinaryOperator bOp)` This function adjusts indices to be leveraged in uarimaxXX functions.
`static void` LibMatrixOuterAgg.`adjustRowIndicesMin(int[] vix, double[] vmb, BinaryOperator bOp)` This function adjusts indices to be leveraged in uariminXX functions.
`static void` LibMatrixOuterAgg.`aggregateMatrix(MatrixBlock in1Val, MatrixBlock outVal, double[] bv, int[] bvi, BinaryOperator bOp, AggregateUnaryOperator uaggOp)`
`FrameBlock` FrameBlock.`binaryOperations(BinaryOperator bop, FrameBlock that, FrameBlock out)` This method performs the value comparison on two frames if the values in both frames are equal, not equal, less than, greater than, less than/greater than and equal to the output frame will store boolean value for each each comparison
`MatrixBlock` MatrixBlock.`binaryOperations(BinaryOperator op, MatrixValue thatValue)`
`abstract MatrixValue` MatrixValue.`binaryOperations(BinaryOperator op, MatrixValue thatValue, MatrixValue result)`
`MatrixValue` CM_N_COVCell.`binaryOperations(BinaryOperator op, MatrixValue thatValue, MatrixValue result)`
`MatrixValue` MatrixCell.`binaryOperations(BinaryOperator op, MatrixValue thatValue, MatrixValue result)`
`MatrixBlock` MatrixBlock.`binaryOperations(BinaryOperator op, MatrixValue thatValue, MatrixValue result)`
`abstract MatrixValue` MatrixValue.`binaryOperationsInPlace(BinaryOperator op, MatrixValue thatValue)`
`MatrixValue` CM_N_COVCell.`binaryOperationsInPlace(BinaryOperator op, MatrixValue thatValue)`
`MatrixValue` MatrixCell.`binaryOperationsInPlace(BinaryOperator op, MatrixValue thatValue)`
`MatrixBlock` MatrixBlock.`binaryOperationsInPlace(BinaryOperator op, MatrixValue thatValue)`
`static void` LibMatrixBincell.`bincellOp(MatrixBlock m1, MatrixBlock m2, MatrixBlock ret, BinaryOperator op)` matrix-matrix binary operations, MM, MV
`static void` LibMatrixBincell.`bincellOp(MatrixBlock m1, MatrixBlock m2, MatrixBlock ret, BinaryOperator op, int k)`
`static MatrixBlock` LibMatrixBincell.`bincellOpInPlace(MatrixBlock m1ret, MatrixBlock m2, BinaryOperator op)` NOTE: operations in place always require m1 and m2 to be of equal dimensions defaults to right side operations, updating the m1 matrix with like: m1ret op m2
`static MatrixBlock` LibMatrixBincell.`bincellOpInPlaceLeft(MatrixBlock m1ret, MatrixBlock m2, BinaryOperator op)` Left side operations, updating the m1 matrix like: m2 op m1ret
`static MatrixBlock` LibMatrixBincell.`bincellOpInPlaceRight(MatrixBlock m1ret, MatrixBlock m2, BinaryOperator op)` Right side operations, updating the m1 matrix like: m1ret op m2
`static boolean` LibMatrixOuterAgg.`isCompareOperator(BinaryOperator bOp)` This will return if uaggOp is of type RowIndexMin
`static boolean` LibMatrixBincell.`isSparseSafeDivide(BinaryOperator op, MatrixBlock rhs)`
`static boolean` LibMatrixOuterAgg.`isSupportedUaggOp(AggregateUnaryOperator uaggOp, BinaryOperator bOp)`
`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` OperationsOnMatrixValues.`performBinaryIgnoreIndexes(MatrixValue value1, MatrixValue value2, MatrixValue valueOut, BinaryOperator op)`
`static int[]` LibMatrixOuterAgg.`prepareRowIndices(int iCols, double[] vmb, BinaryOperator bOp, AggregateUnaryOperator uaggOp)`
`static int[]` LibMatrixOuterAgg.`prepareRowIndicesMax(int iCols, double[] vmb, BinaryOperator bOp)` This function will return max indices, based on column vector data.
`static int[]` LibMatrixOuterAgg.`prepareRowIndicesMin(int iCols, double[] vmb, BinaryOperator bOp)` This function will return min indices, based on column vector data.
`MatrixBlock` MatrixBlock.`uaggouterchainOperations(MatrixBlock mbLeft, MatrixBlock mbRight, MatrixBlock mbOut, BinaryOperator bOp, AggregateUnaryOperator uaggOp)`

### Uses of BinaryOperator in org.apache.sysds.runtime.matrix.operators

Fields in org.apache.sysds.runtime.matrix.operators declared as BinaryOperator
`BinaryOperator` AggregateOperator.`increOp`