## 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.frame.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
`static double[]` ColGroupUtils.`binaryDefRowLeft​(BinaryOperator op, double[] v, IColIndex colIndexes)` Calculate the result of performing the binary operation on an empty row to the left v op empty
`static double[]` ColGroupUtils.`binaryDefRowRight​(BinaryOperator op, double[] v, IColIndex colIndexes)` Calculate the result of performing the binary operation on an empty row to the right empty op v
`abstract AColGroup` AColGroup.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)` Perform a binary row operation.
`AColGroup` ColGroupConst.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupDDC.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupDDCFOR.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupEmpty.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupLinearFunctional.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupOLE.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupRLE.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupSDC.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupSDCFOR.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupSDCSingle.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupSDCSingleZeros.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupSDCZeros.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupUncompressed.`binaryRowOpLeft​(BinaryOperator op, double[] v, boolean isRowSafe)`
`abstract AColGroup` AColGroup.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)` Perform a binary row operation.
`AColGroup` ColGroupConst.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupDDC.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupDDCFOR.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupEmpty.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupLinearFunctional.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupOLE.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupRLE.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupSDC.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupSDCFOR.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupSDCSingle.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupSDCSingleZeros.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupSDCZeros.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`
`AColGroup` ColGroupUncompressed.`binaryRowOpRight​(BinaryOperator op, double[] v, boolean isRowSafe)`

### 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
`Dictionary` Dictionary.`binOpLeft​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` IdentityDictionary.`binOpLeft​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` IDictionary.`binOpLeft​(BinaryOperator op, double[] v, IColIndex colIndexes)` Apply binary row operation on the left side
`IDictionary` MatrixBlockDictionary.`binOpLeft​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` PlaceHolderDict.`binOpLeft​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` QDictionary.`binOpLeft​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` Dictionary.`binOpLeftAndAppend​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` IdentityDictionary.`binOpLeftAndAppend​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` IDictionary.`binOpLeftAndAppend​(BinaryOperator op, double[] v, IColIndex colIndexes)` Apply binary row operation on the left side with one extra row evaluating with zeros.
`IDictionary` MatrixBlockDictionary.`binOpLeftAndAppend​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` PlaceHolderDict.`binOpLeftAndAppend​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` QDictionary.`binOpLeftAndAppend​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`Dictionary` Dictionary.`binOpLeftWithReference​(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)`
`IDictionary` IdentityDictionary.`binOpLeftWithReference​(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)`
`IDictionary` IDictionary.`binOpLeftWithReference​(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)` Apply the binary operator such that each value is offset by the reference before application.
`MatrixBlockDictionary` MatrixBlockDictionary.`binOpLeftWithReference​(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)`
`IDictionary` PlaceHolderDict.`binOpLeftWithReference​(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)`
`IDictionary` QDictionary.`binOpLeftWithReference​(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)`
`Dictionary` Dictionary.`binOpRight​(BinaryOperator op, double[] v)`
`Dictionary` Dictionary.`binOpRight​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` IdentityDictionary.`binOpRight​(BinaryOperator op, double[] v)`
`IDictionary` IdentityDictionary.`binOpRight​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` IDictionary.`binOpRight​(BinaryOperator op, double[] v)` Apply binary row operation on the right side as with no columns to extract from v.
`IDictionary` IDictionary.`binOpRight​(BinaryOperator op, double[] v, IColIndex colIndexes)` Apply binary row operation on the right side.
`MatrixBlockDictionary` MatrixBlockDictionary.`binOpRight​(BinaryOperator op, double[] v)`
`MatrixBlockDictionary` MatrixBlockDictionary.`binOpRight​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` PlaceHolderDict.`binOpRight​(BinaryOperator op, double[] v)`
`IDictionary` PlaceHolderDict.`binOpRight​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` QDictionary.`binOpRight​(BinaryOperator op, double[] v)`
`IDictionary` QDictionary.`binOpRight​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` Dictionary.`binOpRightAndAppend​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` IdentityDictionary.`binOpRightAndAppend​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` IDictionary.`binOpRightAndAppend​(BinaryOperator op, double[] v, IColIndex colIndexes)` Apply binary row operation on the right side with one extra row evaluating with zeros.
`IDictionary` MatrixBlockDictionary.`binOpRightAndAppend​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` PlaceHolderDict.`binOpRightAndAppend​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary` QDictionary.`binOpRightAndAppend​(BinaryOperator op, double[] v, IColIndex colIndexes)`
`Dictionary` Dictionary.`binOpRightWithReference​(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)`
`IDictionary` IdentityDictionary.`binOpRightWithReference​(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)`
`IDictionary` IDictionary.`binOpRightWithReference​(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)` Apply the binary operator such that each value is offset by the reference before application.
`MatrixBlockDictionary` MatrixBlockDictionary.`binOpRightWithReference​(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)`
`IDictionary` PlaceHolderDict.`binOpRightWithReference​(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)`
`IDictionary` QDictionary.`binOpRightWithReference​(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)`

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

Methods in org.apache.sysds.runtime.compress.lib with parameters of type BinaryOperator
`static MatrixBlock` CLALibBinaryCellOp.`binaryOperationsLeft​(BinaryOperator op, CompressedMatrixBlock m1, MatrixBlock that, MatrixBlock result)`
`static MatrixBlock` CLALibBinaryCellOp.`binaryOperationsRight​(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.frame.data

Methods in org.apache.sysds.runtime.frame.data with parameters of type BinaryOperator
`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

### 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
`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
`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)`
`MatrixValue` CM_N_COVCell.`binaryOperations​(BinaryOperator op, MatrixValue thatValue, MatrixValue result)`
`MatrixBlock` MatrixBlock.`binaryOperations​(BinaryOperator op, MatrixValue thatValue)`
`MatrixBlock` MatrixBlock.`binaryOperations​(BinaryOperator op, MatrixValue thatValue, MatrixValue result)`
`MatrixValue` MatrixCell.`binaryOperations​(BinaryOperator op, MatrixValue thatValue, MatrixValue result)`
`abstract MatrixValue` MatrixValue.`binaryOperations​(BinaryOperator op, MatrixValue thatValue, MatrixValue result)`
`MatrixValue` CM_N_COVCell.`binaryOperationsInPlace​(BinaryOperator op, MatrixValue thatValue)`
`MatrixBlock` MatrixBlock.`binaryOperationsInPlace​(BinaryOperator op, MatrixValue thatValue)`
`MatrixValue` MatrixCell.`binaryOperationsInPlace​(BinaryOperator op, MatrixValue thatValue)`
`abstract MatrixValue` MatrixValue.`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`