## Uses of Class
org.apache.sysds.lops.Lop

- Packages that use Lop
  Package | Description
  --- | ---
  org.apache.sysds.hops |
  org.apache.sysds.hops.codegen |
  org.apache.sysds.lops |
  org.apache.sysds.lops.compile |
  org.apache.sysds.lops.compile.linearization |
  org.apache.sysds.parser |
  org.apache.sysds.runtime.instructions |

- - ### Uses of Lop in org.apache.sysds.hops

    Methods in org.apache.sysds.hops that return Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `Lop` | DnnOp.`constructDnnLops​(Types.ExecType et, ArrayList<Hop> inputs)` |
    `Lop` | AggBinaryOp.`constructLops()` | NOTE: overestimated mem in case of transpose-identity matmult, but 3/2 at worst and existing mem estimate advantageous in terms of consistency hops/lops, and some special cases internally materialize the transpose for better cache locality
    `Lop` | AggUnaryOp.`constructLops()` |
    `Lop` | BinaryOp.`constructLops()` |
    `Lop` | DataGenOp.`constructLops()` |
    `Lop` | DataOp.`constructLops()` |
    `Lop` | DnnOp.`constructLops()` |
    `Lop` | FunctionOp.`constructLops()` |
    `abstract Lop` | Hop.`constructLops()` |
    `Lop` | IndexingOp.`constructLops()` |
    `Lop` | LeftIndexingOp.`constructLops()` |
    `Lop` | LiteralOp.`constructLops()` |
    `Lop` | NaryOp.`constructLops()` | Construct the corresponding Lops for this Hop
    `Lop` | ParameterizedBuiltinOp.`constructLops()` |
    `Lop` | QuaternaryOp.`constructLops()` |
    `Lop` | ReorgOp.`constructLops()` |
    `Lop` | TernaryOp.`constructLops()` |
    `Lop` | UnaryOp.`constructLops()` |
    `static Lop` | BinaryOp.`constructSPAppendLop​(Hop left, Hop right, Types.DataType dt, Types.ValueType vt, boolean cbind, Hop current)` |
    `static Lop` | Hop.`createOffsetLop​(Hop hop, boolean repCols)` |
    `Lop` | Hop.`getLops()` |

    Methods in org.apache.sysds.hops with parameters of type Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Hop.`setLops​(Lop lops)` |
    `void` | Hop.`updateLopFedOut​(Lop lop)` |
    `void` | Hop.`updateLopFedOut​(Lop lop, Types.ExecType execType, FEDInstruction.FederatedOutput fedOut)` |

  - ### Uses of Lop in org.apache.sysds.hops.codegen

    Methods in org.apache.sysds.hops.codegen that return Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `Lop` | SpoofFusedOp.`constructLops()` |

  - ### Uses of Lop in org.apache.sysds.lops

    Subclasses of Lop in org.apache.sysds.lops
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `Append` |
    `class` | `AppendG` | TODO Additional compiler enhancements: 1) Partial Shuffle Elimination - Any full or aligned blocks could be directly output from the mappers to the result index.
    `class` | `AppendGAlignedSP` |
    `class` | `AppendM` |
    `class` | `AppendR` |
    `class` | `Binary` | Lop to perform binary operation.
    `class` | `BinaryM` | Lop to perform binary operation.
    `class` | `BinaryScalar` | Lop to perform binary scalar operations.
    `class` | `BinaryUAggChain` |
    `class` | `CentralMoment` | Lop to perform cross product operation
    `class` | `Checkpoint` | Lop for checkpoint operations.
    `class` | `Compression` |
    `class` | `CoVariance` | Lop to compute covariance between two 1D matrices
    `class` | `CSVReBlock` | Lop to convert CSV data into SystemDS data format
    `class` | `Ctable` | Lop to perform ternary operation.
    `class` | `CumulativeOffsetBinary` |
    `class` | `CumulativePartialAggregate` |
    `class` | `Data` | Lop to represent data objects.
    `class` | `DataGen` | Defines a LOP that generates data.
    `class` | `DeCompression` |
    `class` | `DnnTransform` |
    `class` | `Federated` |
    `class` | `FunctionCallCP` |
    `class` | `GroupedAggregate` | Lop to perform grouped aggregates
    `class` | `GroupedAggregateM` | Lop to perform mr map-side grouped aggregates (restriction: sum, w/o weights, ngroups), groups broadcasted
    `class` | `LeftIndex` |
    `class` | `Local` |
    `class` | `MapMult` |
    `class` | `MapMultChain` |
    `class` | `MatMultCP` |
    `class` | `MMCJ` | Lop to perform cross product operation
    `class` | `MMRJ` | Lop to perform cross product operation
    `class` | `MMTSJ` | Lop to perform transpose-identity operation (t(X)%*%X or X%*%t(X)), used to represent CP and MR instruction but in case of MR there is an additional Aggregate at the reducers.
    `class` | `MMZip` | Lop to perform zip matrix multiplication
    `class` | `Nary` | Lop to perform an operation on a variable number of operands.
    `class` | `ParameterizedBuiltin` | Defines a LOP for functions.
    `class` | `PartialAggregate` | Lop to perform a partial aggregation.
    `class` | `PickByCount` |
    `class` | `PMapMult` |
    `class` | `PMMJ` |
    `class` | `ReBlock` | Lop to perform reblock operation
    `class` | `RightIndex` |
    `class` | `SortKeys` |
    `class` | `SpoofFused` |
    `class` | `Sql` |
    `class` | `Ternary` | Lop to perform Sum of a matrix with another matrix multiplied by Scalar.
    `class` | `TernaryAggregate` |
    `class` | `Transform` |
    `class` | `UAggOuterChain` | TODO Currently this lop only support the right hand side in distributed cache.
    `class` | `Unary` | Lop to perform following operations: with one operand -- NOT(A), ABS(A), SQRT(A), LOG(A) with two operands where one of them is a scalar -- H=H*i, H=H*5, EXP(A,2), LOG(A,2)
    `class` | `UnaryCP` |
    `class` | `WeightedCrossEntropy` |
    `class` | `WeightedCrossEntropyR` |
    `class` | `WeightedDivMM` |
    `class` | `WeightedDivMMR` |
    `class` | `WeightedSigmoid` |
    `class` | `WeightedSigmoidR` |
    `class` | `WeightedSquaredLoss` |
    `class` | `WeightedSquaredLossR` |
    `class` | `WeightedUnaryMM` |
    `class` | `WeightedUnaryMMR` |

    Methods in org.apache.sysds.lops that return Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `Lop` | AppendM.`getBroadcastInput()` |
    `Lop` | Binary.`getBroadcastInput()` |
    `Lop` | LeftIndex.`getBroadcastInput()` |
    `Lop` | Lop.`getBroadcastInput()` | Method to get the input to be broadcast.
    `Lop` | MapMult.`getBroadcastInput()` |
    `Lop` | MapMultChain.`getBroadcastInput()` |
    `Lop` | PMMJ.`getBroadcastInput()` |
    `Lop` | ParameterizedBuiltin.`getNamedInput​(String name)` |
    `Lop` | Data.`getNamedInputLop​(String name)` |
    `Lop` | Data.`getNamedInputLop​(String name, String defaultVal)` |

    Methods in org.apache.sysds.lops that return types with arguments of type Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `ArrayList<Lop>` | FunctionCallCP.`getFunctionOutputs()` |
    `HashMap<String,​Lop>` | Data.`getInputParams()` | method to get inputParams
    `ArrayList<Lop>` | Lop.`getInputs()` | Method to get input of Lops
    `ArrayList<Lop>` | Lop.`getOutputs()` | Method to get output of Lops

    Methods in org.apache.sysds.lops with parameters of type Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Lop.`addInput​(Lop op)` | Method to add input to Lop
    `void` | Lop.`addOutput​(Lop op)` | Method to add output to Lop
    `static SortKeys` | SortKeys.`constructSortByValueLop​(Lop input1, Lop input2, SortKeys.OperationTypes op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int numThreads)` |
    `static SortKeys` | SortKeys.`constructSortByValueLop​(Lop input1, SortKeys.OperationTypes op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int numThreads)` |
    `void` | Append.`init​(Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt)` |
    `void` | AppendG.`init​(Lop input1, Lop input2, Lop input3, Lop input4, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `void` | AppendGAlignedSP.`init​(Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt)` |
    `void` | AppendM.`init​(Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `void` | AppendR.`init​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `void` | Lop.`removeOutput​(Lop op)` | Method to remove output from Lop
    `void` | Lop.`replaceInput​(Lop oldInp, Lop newInp)` | Method to replace an input to a Lop
    `static void` | PartialAggregate.`setDimensionsBasedOnDirection​(Lop lop, long dim1, long dim2, long blen, Types.Direction dir)` |

    Method parameters in org.apache.sysds.lops with type arguments of type Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Lop.`addToDag​(Dag<Lop> dag)` | Method to recursively add LOPS to a DAG
    `void` | LopProperties.`setLevel​(ArrayList<Lop> inputs)` |
    `void` | LopProperties.`setProperties​(ArrayList<Lop> inputs, Types.ExecType et)` |

    Constructors in org.apache.sysds.lops with parameters of type Lop
    Constructor | Description
    --- | ---
    `Append​(Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt, boolean cbind, Types.ExecType et)` |
    `AppendG​(Lop input1, Lop input2, Lop input3, Lop input4, Types.DataType dt, Types.ValueType vt, boolean cbind, Types.ExecType et)` |
    `AppendGAlignedSP​(Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt, boolean cbind)` |
    `AppendM​(Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt, boolean cbind, boolean partitioned, Types.ExecType et)` |
    `AppendR​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, boolean cbind, Types.ExecType et)` |
    `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
    `CentralMoment​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, int numThreads, Types.ExecType et)` |
    `CentralMoment​(Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt, int numThreads, Types.ExecType et)` |
    `Checkpoint​(Lop input, Types.DataType dt, Types.ValueType vt, String level)` | TODO change string parameter storage.level to StorageLevel as soon as we can assume that Spark libraries are always available.
    `Compression​(Lop input, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int singletonLookupKey)` |
    `CoVariance​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, int numThreads, Types.ExecType et)` |
    `CoVariance​(Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt, int numThreads, Types.ExecType et)` |
    `CSVReBlock​(Lop input, int blen, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `Ctable​(Lop[] inputLops, Ctable.OperationTypes op, Types.DataType dt, Types.ValueType vt, boolean ignoreZeros, boolean outputEmptyBlocks, Types.ExecType et)` |
    `Ctable​(Lop[] inputLops, Ctable.OperationTypes op, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `CumulativeOffsetBinary​(Lop data, Lop offsets, Types.DataType dt, Types.ValueType vt, double init, boolean broadcast, Types.AggOp op, Types.ExecType et)` |
    `CumulativeOffsetBinary​(Lop data, Lop offsets, Types.DataType dt, Types.ValueType vt, Types.AggOp op, Types.ExecType et)` |
    `CumulativePartialAggregate​(Lop input, Types.DataType dt, Types.ValueType vt, Types.AggOp op, Types.ExecType et)` |
    `Data​(Types.OpOpData op, Lop input, HashMap<String,​Lop> inputParametersLops, String name, String literal, Types.DataType dt, Types.ValueType vt, Types.FileFormat fmt)` | Constructor to setup read or write LOP In case of write: `input` must be provided.
    `DeCompression​(Lop input, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `DnnTransform​(Lop input, Types.OpOpDnn op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int k, double intermediateMemBudget)` | Constructor when we have one input.
    `DnnTransform​(Lop input1, Lop input2, Types.OpOpDnn op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int k)` |
    `DnnTransform​(Lop input1, Lop input2, Lop input3, Types.OpOpDnn op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int k)` |
    `LeftIndex​(Lop lhsInput, Lop rhsInput, Lop rowL, Lop rowU, Lop colL, Lop colU, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `LeftIndex​(Lop lhsInput, Lop rhsInput, Lop rowL, Lop rowU, Lop colL, Lop colU, Types.DataType dt, Types.ValueType vt, Types.ExecType et, LeftIndex.LixCacheType type)` |
    `Local​(Lop input, Types.DataType dt, Types.ValueType vt)` |
    `MapMult​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, boolean rightCache, boolean partitioned, boolean emptyBlocks, AggBinaryOp.SparkAggType aggtype)` | Constructor to setup a partial Matrix-Vector Multiplication for Spark
    `MapMultChain​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` | Constructor to setup a map mult chain without weights
    `MapMultChain​(Lop input1, Lop input2, Lop input3, MapMultChain.ChainType chain, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` | Constructor to setup a map mult chain with weights
    `MatMultCP​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `MatMultCP​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, Types.ExecType et, boolean isLeftTransposed, boolean isRightTransposed)` |
    `MatMultCP​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int k)` |
    `MatMultCP​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int k, boolean isLeftTransposed, boolean isRightTransposed)` |
    `MMCJ​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, boolean outputEmptyBlocks, AggBinaryOp.SparkAggType aggtype, Types.ExecType et)` |
    `MMCJ​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, MMCJ.MMCJType type, Types.ExecType et)` | Constructor to perform a cross product operation.
    `MMRJ​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` | Constructor to perform a cross product operation.
    `MMTSJ​(Lop input1, Types.DataType dt, Types.ValueType vt, Types.ExecType et, MMTSJ.MMTSJType type)` |
    `MMTSJ​(Lop input1, Types.DataType dt, Types.ValueType vt, Types.ExecType et, MMTSJ.MMTSJType type, boolean multiPass)` |
    `MMTSJ​(Lop input1, Types.DataType dt, Types.ValueType vt, Types.ExecType et, MMTSJ.MMTSJType type, boolean multiPass, int k)` |
    `MMZip​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, boolean tRewrite, Types.ExecType et)` |
    `Nary​(Types.OpOpN operationType, Types.DataType dt, Types.ValueType vt, Lop[] inputLops, Types.ExecType et)` |
    `PartialAggregate​(Lop input, Types.AggOp op, Types.Direction direct, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int k)` |
    `PartialAggregate​(Lop input, Types.AggOp op, Types.Direction direct, Types.DataType dt, Types.ValueType vt, AggBinaryOp.SparkAggType aggtype, Types.ExecType et)` |
    `PickByCount​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, PickByCount.OperationTypes op, Types.ExecType et)` |
    `PickByCount​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt, PickByCount.OperationTypes op, Types.ExecType et, boolean inMemoryInput)` |
    `PMapMult​(Lop input1, Lop input2, Types.DataType dt, Types.ValueType vt)` |
    `PMMJ​(Lop pminput, Lop rightinput, Lop nrow, Types.DataType dt, Types.ValueType vt, boolean partitioned, boolean emptyBlocks, Types.ExecType et)` | Constructor to setup a Permutation Matrix Multiplication
    `ReBlock​(Lop input, int blen, Types.DataType dt, Types.ValueType vt, boolean outputEmptyBlocks, Types.ExecType et)` |
    `RightIndex​(Lop input, Lop rowL, Lop rowU, Lop colL, Lop colU, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `RightIndex​(Lop input, Lop rowL, Lop rowU, Lop colL, Lop colU, Types.DataType dt, Types.ValueType vt, Types.ExecType et, boolean forleft)` |
    `RightIndex​(Lop input, Lop rowL, Lop rowU, Lop colL, Lop colU, Types.DataType dt, Types.ValueType vt, AggBinaryOp.SparkAggType aggtype, Types.ExecType et)` |
    `SortKeys​(Lop input, boolean desc, SortKeys.OperationTypes op, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `SortKeys​(Lop input1, Lop input2, SortKeys.OperationTypes op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int numThreads)` |
    `SortKeys​(Lop input, SortKeys.OperationTypes op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int numThreads)` |
    `Ternary​(Types.OpOp3 op, Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int numThreads)` |
    `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)` |
    `Transform​(Lop[] inputs, Types.ReOrgOp op, Types.DataType dt, Types.ValueType vt, boolean outputEmptyBlock, Types.ExecType et)` |
    `Transform​(Lop[] inputs, Types.ReOrgOp op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, boolean bSortIndInMem)` |
    `Transform​(Lop[] inputs, Types.ReOrgOp op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, boolean bSortIndInMem, int k)` |
    `Transform​(Lop[] inputs, Types.ReOrgOp op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int k)` |
    `Transform​(Lop input, Types.ReOrgOp op, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `Transform​(Lop input, Types.ReOrgOp op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, boolean bSortIndInMem)` |
    `Transform​(Lop input, Types.ReOrgOp op, 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
    `Unary​(Lop input1, Types.OpOp1 op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int numThreads, boolean inplace)` | Constructor to perform a unary operation with 1 input.
    `Unary​(Lop input1, Lop input2, Types.OpOp1 op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int numThreads)` | Constructor to perform a unary operation with 2 inputs
    `UnaryCP​(Lop input, Types.OpOp1 op, Types.DataType dt, Types.ValueType vt)` |
    `UnaryCP​(Lop input, Types.OpOp1 op, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` | Constructor to perform a scalar operation
    `WeightedCrossEntropy​(Lop input1, Lop input2, Lop input3, Lop input4, Types.DataType dt, Types.ValueType vt, WeightedCrossEntropy.WCeMMType wt, Types.ExecType et)` |
    `WeightedCrossEntropyR​(Lop input1, Lop input2, Lop input3, Lop input4, Types.DataType dt, Types.ValueType vt, WeightedCrossEntropy.WCeMMType wt, boolean cacheU, boolean cacheV, Types.ExecType et)` |
    `WeightedDivMM​(Lop input1, Lop input2, Lop input3, Lop input4, Types.DataType dt, Types.ValueType vt, WeightedDivMM.WDivMMType wt, Types.ExecType et)` |
    `WeightedDivMMR​(Lop input1, Lop input2, Lop input3, Lop input4, Types.DataType dt, Types.ValueType vt, WeightedDivMM.WDivMMType wt, boolean cacheU, boolean cacheV, Types.ExecType et)` |
    `WeightedSigmoid​(Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt, WeightedSigmoid.WSigmoidType wt, Types.ExecType et)` |
    `WeightedSigmoidR​(Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt, WeightedSigmoid.WSigmoidType wt, boolean cacheU, boolean cacheV, Types.ExecType et)` |
    `WeightedSquaredLoss​(Lop input1, Lop input2, Lop input3, Lop input4, Types.DataType dt, Types.ValueType vt, WeightedSquaredLoss.WeightsType wt, Types.ExecType et)` |
    `WeightedSquaredLossR​(Lop input1, Lop input2, Lop input3, Lop input4, Types.DataType dt, Types.ValueType vt, WeightedSquaredLoss.WeightsType wt, boolean cacheU, boolean cacheV, Types.ExecType et)` |
    `WeightedUnaryMM​(Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt, WeightedUnaryMM.WUMMType wt, Types.OpOp1 op, Types.ExecType et)` |
    `WeightedUnaryMMR​(Lop input1, Lop input2, Lop input3, Types.DataType dt, Types.ValueType vt, WeightedUnaryMM.WUMMType wt, Types.OpOp1 op, boolean cacheU, boolean cacheV, Types.ExecType et)` |

    Constructor parameters in org.apache.sysds.lops with type arguments of type Lop
    Constructor | Description
    --- | ---
    `Data​(Types.OpOpData op, Lop input, HashMap<String,​Lop> inputParametersLops, String name, String literal, Types.DataType dt, Types.ValueType vt, Types.FileFormat fmt)` | Constructor to setup read or write LOP In case of write: `input` must be provided.
    `DataGen​(Types.OpOpDG op, DataIdentifier id, HashMap<String,​Lop> inputParametersLops, String baseDir, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` | Creates a new Rand-LOP.
    `Federated​(HashMap<String,​Lop> inputLops, Types.DataType dataType, Types.ValueType valueType)` |
    `FunctionCallCP​(ArrayList<Lop> inputs, String fnamespace, String fname, String[] inputNames, String[] outputNames, ArrayList<Hop> outputHops, boolean opt, Types.ExecType et)` |
    `FunctionCallCP​(ArrayList<Lop> inputs, String fnamespace, String fname, String[] inputNames, String[] outputNames, Types.ExecType et)` |
    `GroupedAggregate​(HashMap<String,​Lop> inputParameterLops, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `GroupedAggregate​(HashMap<String,​Lop> inputParameterLops, Types.DataType dt, Types.ValueType vt, Types.ExecType et, boolean broadcastGroups)` |
    `GroupedAggregate​(HashMap<String,​Lop> inputParameterLops, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int k)` |
    `GroupedAggregateM​(HashMap<String,​Lop> inputParameterLops, Types.DataType dt, Types.ValueType vt, boolean partitioned, Types.ExecType et)` |
    `ParameterizedBuiltin​(HashMap<String,​Lop> paramLops, Types.ParamBuiltinOp op, Types.DataType dt, Types.ValueType vt, Types.ExecType et)` |
    `ParameterizedBuiltin​(HashMap<String,​Lop> paramLops, Types.ParamBuiltinOp op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, boolean bRmEmptyBC)` |
    `ParameterizedBuiltin​(HashMap<String,​Lop> paramLops, Types.ParamBuiltinOp op, Types.DataType dt, Types.ValueType vt, Types.ExecType et, int k)` |
    `SpoofFused​(ArrayList<Lop> inputs, Types.DataType dt, Types.ValueType vt, Class<?> cla, SpoofCompiler.GeneratorAPI api, String genVarName, int k, Types.ExecType etype)` |
    `Sql​(HashMap<String,​Lop> inputParametersLops, Types.DataType dt, Types.ValueType vt)` |

  - ### Uses of Lop in org.apache.sysds.lops.compile

    Classes in org.apache.sysds.lops.compile with type parameters of type Lop
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `Dag<N extends Lop>` | Class to maintain a DAG of lops and compile it into runtime instructions, incl piggybacking into jobs.
    `class` | `LopComparator<N extends Lop>` | Comparator class used in sorting the LopDAG in topological order.

    Methods in org.apache.sysds.lops.compile with parameters of type Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | Dag.`addNode​(Lop node)` | Method to add a node to the DAG.

  - ### Uses of Lop in org.apache.sysds.lops.compile.linearization

    Methods in org.apache.sysds.lops.compile.linearization that return types with arguments of type Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `static List<Lop>` | ILinearize.`linearize​(List<Lop> v)` |

    Method parameters in org.apache.sysds.lops.compile.linearization with type arguments of type Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `static List<Lop>` | ILinearize.`linearize​(List<Lop> v)` |

  - ### Uses of Lop in org.apache.sysds.parser

    Methods in org.apache.sysds.parser that return Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `Lop` | ForStatementBlock.`getFromLops()` |
    `Lop` | ForStatementBlock.`getIncrementLops()` |
    `Lop` | IfStatementBlock.`getPredicateLops()` |
    `Lop` | WhileStatementBlock.`getPredicateLops()` |
    `Lop` | ForStatementBlock.`getToLops()` |

    Methods in org.apache.sysds.parser that return types with arguments of type Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `ArrayList<Lop>` | StatementBlock.`getLops()` |

    Methods in org.apache.sysds.parser with parameters of type Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | ForStatementBlock.`setFromLops​(Lop lops)` |
    `void` | ForStatementBlock.`setIncrementLops​(Lop lops)` |
    `void` | IfStatementBlock.`setPredicateLops​(Lop predicateLops)` |
    `void` | WhileStatementBlock.`setPredicateLops​(Lop predicateLops)` |
    `void` | ForStatementBlock.`setToLops​(Lop lops)` |

    Method parameters in org.apache.sysds.parser with type arguments of type Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | StatementBlock.`setLops​(ArrayList<Lop> lops)` |

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

    Methods in org.apache.sysds.runtime.instructions with parameters of type Lop
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Instruction.`setLocation​(Lop lop)` |
    `void` | Instruction.`setPrivacyConstraint​(Lop lop)` |