## Uses of Class
org.apache.sysds.common.Types.OpOp2

- Packages that use Types.OpOp2
  Package | Description
  --- | ---
  org.apache.sysds.common |
  org.apache.sysds.hops |
  org.apache.sysds.hops.rewrite |
  org.apache.sysds.lops |
  org.apache.sysds.runtime.matrix.operators |

- - ### Uses of Types.OpOp2 in org.apache.sysds.common

    Methods in org.apache.sysds.common that return Types.OpOp2
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Types.OpOp2` | Types.OpOp2.`valueOf​(String name)` | Returns the enum constant of this type with the specified name.
    `static Types.OpOp2` | Types.OpOp2.`valueOfByOpcode​(String opcode)` |
    `static Types.OpOp2[]` | Types.OpOp2.`values()` | Returns an array containing the constants of this enum type, in the order they are declared.

  - ### Uses of Types.OpOp2 in org.apache.sysds.hops

    Methods in org.apache.sysds.hops that return Types.OpOp2
    Modifier and Type | Method | Description
    --- | --- | ---
    `Types.OpOp2` | BinaryOp.`getComplementPPredOperation()` |
    `Types.OpOp2` | BinaryOp.`getOp()` |

    Methods in org.apache.sysds.hops with parameters of type Types.OpOp2
    Modifier and Type | Method | Description
    --- | --- | ---
    `static double` | OptimizerUtils.`getBinaryOpSparsity​(double sp1, double sp2, Types.OpOp2 op, boolean worstcase)` | Estimates the result sparsity for matrix-matrix binary operations (A op B)
    `static double` | OptimizerUtils.`getBinaryOpSparsityConditionalSparseSafe​(double sp1, Types.OpOp2 op, LiteralOp lit)` |
    `static long` | OptimizerUtils.`getOuterNonZeros​(long n1, long n2, long nnz1, long nnz2, Types.OpOp2 op)` |
    `static boolean` | OptimizerUtils.`isBinaryOpConditionalSparseSafe​(Types.OpOp2 op)` | Determines if a given binary op is potentially conditional sparse safe.
    `static boolean` | OptimizerUtils.`isBinaryOpConditionalSparseSafeExact​(Types.OpOp2 op, LiteralOp lit)` | Determines if a given binary op with scalar literal guarantee an output sparsity which is exactly the same as its matrix input sparsity.
    `static boolean` | OptimizerUtils.`isBinaryOpSparsityConditionalSparseSafe​(Types.OpOp2 op, LiteralOp lit)` |
    `void` | BinaryOp.`setOp​(Types.OpOp2 iop)` |

    Constructors in org.apache.sysds.hops with parameters of type Types.OpOp2
    Constructor | Description
    --- | ---
    `AggBinaryOp​(String l, Types.DataType dt, Types.ValueType vt, Types.OpOp2 innOp, Types.AggOp outOp, Hop in1, Hop in2)` |
    `BinaryOp​(String l, Types.DataType dt, Types.ValueType vt, Types.OpOp2 o, Hop inp1, Hop inp2)` |
    `QuaternaryOp​(String l, Types.DataType dt, Types.ValueType vt, Types.OpOp4 o, Hop inW, Hop inU, Hop inV, boolean umult, Types.OpOp1 uop, Types.OpOp2 sop)` |

  - ### Uses of Types.OpOp2 in org.apache.sysds.hops.rewrite

    Methods in org.apache.sysds.hops.rewrite with parameters of type Types.OpOp2
    Modifier and Type | Method | Description
    --- | --- | ---
    `static BinaryOp` | HopRewriteUtils.`createBinary​(Hop input1, Hop input2, Types.OpOp2 op)` |
    `static BinaryOp` | HopRewriteUtils.`createBinary​(Hop input1, Hop input2, Types.OpOp2 op, boolean outer)` |
    `static int` | HopRewriteUtils.`getValidOpPos​(Types.OpOp2 input, Types.OpOp2... validTab)` |
    `static boolean` | HopRewriteUtils.`isBinary​(Hop hop, Types.OpOp2 type)` |
    `static boolean` | HopRewriteUtils.`isBinary​(Hop hop, Types.OpOp2... types)` |
    `static boolean` | HopRewriteUtils.`isBinary​(Hop hop, Types.OpOp2 type, int maxParents)` |
    `static boolean` | HopRewriteUtils.`isBinaryMatrixScalar​(Hop hop, Types.OpOp2 type, double val)` |
    `static boolean` | HopRewriteUtils.`isValidOp​(Types.OpOp2 input, Types.OpOp2... validTab)` |
    `static boolean` | HopRewriteUtils.`isValidOuterBinaryOp​(Types.OpOp2 op)` |

  - ### Uses of Types.OpOp2 in org.apache.sysds.lops

    Methods in org.apache.sysds.lops that return Types.OpOp2
    Modifier and Type | Method | Description
    --- | --- | ---
    `Types.OpOp2` | Binary.`getOperationType()` |
    `Types.OpOp2` | BinaryM.`getOperationType()` |
    `Types.OpOp2` | BinaryScalar.`getOperationType()` |

    Methods in org.apache.sysds.lops with parameters of type Types.OpOp2
    Modifier and Type | Method | Description
    --- | --- | ---
    `static String` | BinaryM.`getOpcode​(Types.OpOp2 op)` |

    Constructors in org.apache.sysds.lops with parameters of type Types.OpOp2
    Constructor | Description
    --- | ---
    `Binary​(Lop input1, Lop input2, Types.OpOp2 op, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` | Constructor to perform a binary operation.
    `Binary​(Lop input1, Lop input2, Types.OpOp2 op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int k)` |
    `BinaryM​(Lop input1, Lop input2, Types.OpOp2 op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, boolean colVector)` | Constructor to perform a binary operation.
    `BinaryScalar​(Lop input1, Lop input2, Types.OpOp2 op, Types.DataType dt, Types.ValueType vt)` | Constructor to perform a scalar operation
    `BinaryUAggChain​(Lop input1, Types.OpOp2 bop, Types.AggOp uaop, Types.Direction uadir, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` | Constructor to setup a map mult chain without weights
    `TernaryAggregate​(Lop input1, Lop input2, Lop input3, Types.AggOp aggOp, Types.OpOp2 binOp, Types.Direction direction, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int k)` |
    `UAggOuterChain​(Lop input1, Lop input2, Types.AggOp uaop, Types.Direction uadir, Types.OpOp2 bop, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` | Constructor to setup a unaryagg outer chain

  - ### Uses of Types.OpOp2 in org.apache.sysds.runtime.matrix.operators

    Methods in org.apache.sysds.runtime.matrix.operators that return Types.OpOp2
    Modifier and Type | Method | Description
    --- | --- | ---
    `Types.OpOp2` | BinaryOperator.`getBinaryOperatorOpOp2()` | Method for getting the hop binary operator type for a given function object.