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

Packages that use BinaryOperator
Package
Description
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.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
Modifier and Type
Method
Description
`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
Modifier and Type
Method
Description
`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`
ColGroupDDCLZW.`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)`
`AColGroup`
ColGroupUncompressedArray.`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`
ColGroupDDCLZW.`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)`
`AColGroup`
ColGroupUncompressedArray.`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
Modifier and Type
Method
Description
`IDictionary`
ADictionary.`binOpLeft(BinaryOperator op, double[] v, IColIndex colIndexes)`
`final Dictionary`
Dictionary.`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`
ADictionary.`binOpLeftAndAppend(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary`
Dictionary.`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`
ADictionary.`binOpLeftWithReference(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)`
`Dictionary`
Dictionary.`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`
ADictionary.`binOpRight(BinaryOperator op, double[] v)`
`IDictionary`
ADictionary.`binOpRight(BinaryOperator op, double[] v, IColIndex colIndexes)`
`Dictionary`
Dictionary.`binOpRight(BinaryOperator op, double[] v)`
`Dictionary`
Dictionary.`binOpRight(BinaryOperator op, double[] v, IColIndex colIndexes)`
`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`
ADictionary.`binOpRightAndAppend(BinaryOperator op, double[] v, IColIndex colIndexes)`
`IDictionary`
Dictionary.`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`
ADictionary.`binOpRightWithReference(BinaryOperator op, double[] v, IColIndex colIndexes, double[] reference, double[] newReference)`
`Dictionary`
Dictionary.`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)`

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

Methods in org.apache.sysds.runtime.compress.lib with parameters of type BinaryOperator
Modifier and Type
Method
Description
`static MatrixBlock`
CLALibBinaryCellOp.`binaryOperationsLeft(BinaryOperator op, CompressedMatrixBlock m1, MatrixBlock that)`
`static MatrixBlock`
CLALibBinaryCellOp.`binaryOperationsRight(BinaryOperator op, CompressedMatrixBlock m1, MatrixBlock that)`

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

Methods in org.apache.sysds.runtime.data with parameters of type BinaryOperator
Modifier and Type
Method
Description
`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
Modifier and Type
Method
Description
`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.instructions

Methods in org.apache.sysds.runtime.instructions that return BinaryOperator
Modifier and Type
Method
Description
`static BinaryOperator`
InstructionUtils.`parseBinaryOperator(String opcode)`
`static BinaryOperator`
InstructionUtils.`parseBinaryOperator(String opcode, int k)`
`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
Modifier
Constructor
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
Modifier
Constructor
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 that return BinaryOperator
Modifier and Type
Method
Description
`static BinaryOperator`
LibMatrixBincell.`replaceOpWithSparseSafeIfApplicable(MatrixBlock m1, MatrixBlock m2, BinaryOperator op)`
Methods in org.apache.sysds.runtime.matrix.data with parameters of type BinaryOperator
Modifier and Type
Method
Description
`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)`
`final 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)`
`MatrixBlock`
MatrixBlock.`binaryOperationsInPlace(BinaryOperator op, MatrixValue thatValue)`
`MatrixValue`
MatrixCell.`binaryOperationsInPlace(BinaryOperator op, MatrixValue thatValue)`
`abstract MatrixValue`
MatrixValue.`binaryOperationsInPlace(BinaryOperator op, MatrixValue thatValue)`
`static MatrixBlock`
LibMatrixBincell.`bincellOp(MatrixBlock m1, MatrixBlock m2, MatrixBlock ret, BinaryOperator op)`
`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`
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 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.
`static BinaryOperator`
LibMatrixBincell.`replaceOpWithSparseSafeIfApplicable(MatrixBlock m1, MatrixBlock m2, BinaryOperator op)`
`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
Modifier and Type
Field
Description
`final BinaryOperator`
AggregateOperator.`increOp`
Methods in org.apache.sysds.runtime.matrix.operators that return BinaryOperator
Modifier and Type
Method
Description
`BinaryOperator`
TernaryOperator.`setOp2Constant(double cnt)`