# Package org.apache.sysds.hops

Class Summary
AggBinaryOp
AggUnaryOp
BinaryOp
DataGenOp: A DataGenOp can be rand (or matrix constructor), sequence, and sample - these operators have different parameters and use a map of parameter type to hop position.
DataOp: A DataOp can be either a persistent read/write or transient read/write - writes will always have at least one input, but all types can have parameters (e.g., for csv literals of delimiter, header, etc).
DnnOp
FunctionOp: This FunctionOp represents the call to a DML-bodied or external function.
Hop
IndexingOp
LeftIndexingOp
LiteralOp
MemoTable: Memoization Table (hop id, worst-case matrix characteristics).
MultiThreadedHop: Optional hop interface, to be implemented by multi-threaded hops.
NaryOp: The NaryOp Hop allows for a variable number of operands.
OptimizerUtils
ParameterizedBuiltinOp: Defines the HOP for calling an internal function (with custom parameters) from a DML script.
QuaternaryOp: Note: this hop should be called AggQuaternaryOp in consistency with AggUnaryOp and AggBinaryOp; however, since there does not exist a real QuaternaryOp yet - we can leave it as is for now.
ReorgOp: Reorg (cell) operation: aij Properties: Symbol: ', rdiag, rshape, rsort 1 Operand (except sort and reshape take additional arguments) Semantic: change indices (in mapper or reducer) NOTE MB: reshape integrated here because (1) ParameterizedBuiltinOp requires name-value pairs for params and (2) most importantly semantic of reshape is exactly a reorg op.
TernaryOp: Primary use cases for now, are `quantile (<n-1-matrix>, <n-1-matrix>, <literal>): quantile (A, w, 0.5)` `quantile (<n-1-matrix>, <n-1-matrix>, <scalar>): quantile (A, w, s)` `interquantile (<n-1-matrix>, <n-1-matrix>, <scalar>): interquantile (A, w, s)` Keep in mind, that we also have binaries for it w/o weights.
UnaryOp

Enum Summary
AggBinaryOp.MMultMethod
AggBinaryOp.SparkAggType
BinaryOp.AppendMethod
BinaryOp.MMBinaryMethod
FunctionOp.FunctionType
LeftIndexingOp.LeftIndexingMethod
OptimizerUtils.MemoryManager: Memory managers (static partitioned, unified)
OptimizerUtils.OptimizationLevel: Optimization Types for Compilation O0 STATIC - Decisions for scheduling operations on CP/MR are based on predefined set of rules, which check if the dimensions are below a fixed/static threshold (OLD Method of choosing between CP and MR).

Exception Summary
HopsException: Exception occurring in the HOP level.