Package org.apache.sysds.lops

## Class Nary

- java.lang.Object
- - org.apache.sysds.lops.Lop
  - - org.apache.sysds.lops.Nary

    public class Nary
    extends Lop

Lop to perform an operation on a variable number of operands.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.sysds.lops.Lop

`Lop.SimpleInstType, Lop.Type, Lop.VisitStatus`

### Field Summary

### Fields inherited from class org.apache.sysds.lops.Lop

`_beginColumn, _beginLine, _endColumn, _endLine, _filename, CP_CHILD_THREAD, CP_ROOT_THREAD_ID, DATATYPE_PREFIX, FILE_SEPARATOR, FRAME_VAR_NAME_PREFIX, INSTRUCTION_DELIMITOR, LITERAL_PREFIX, MATRIX_VAR_NAME_PREFIX, NAME_VALUE_SEPARATOR, OPERAND_DELIMITOR, PROCESS_PREFIX, SCALAR_VAR_NAME_PREFIX, UPDATE_INPLACE_PREFIX, VALUETYPE_PREFIX, VARIABLE_NAME_PLACEHOLDER`

### Constructor Summary

Constructors
`Nary​(Types.OpOpN operationType, Types.DataType dt, Types.ValueType vt, Lop[] inputLops, Types.ExecType et)`

### Method Summary

All Methods Instance Methods Concrete Methods
`String` `getInstructions​(String[] inputs, String output)` Generate the complete instruction string for this Lop.
`Types.OpOpN` `getOp()`
`String` `toString()` Method to have Lops print their state.

### Methods inherited from class org.apache.sysds.lops.Lop

`activatePrefetch, addInput, addOutput, addToDag, createReachable, getAggType, getBeginColumn, getBeginLine, getBroadcastInput, getComputeEstimate, getDataType, getEndColumn, getEndLine, getExecType, getFederatedOutput, getFilename, getID, getInput, getInputs, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getLevel, getNnz, getNumCols, getNumRows, getOutputMemoryEstimate, getOutputParameters, getOutputs, getPrivacyConstraint, getProducesIntermediateOutput, getReachable, getSimpleInstructionType, getTotalMemoryEstimate, getType, getValueType, getVisited, isAllOutputsCP, isAllOutputsGPU, isAsynchronousOp, isDataExecLocation, isExecCP, isExecGPU, isExecSpark, isVariable, isVisited, prefetchActivated, prepInputOperand, prepInputOperand, prepOperand, prepOperand, prepOutputOperand, prepOutputOperand, prepOutputOperand, prepScalarInputOperand, prepScalarInputOperand, prepScalarLabel, prepScalarOperand, printErrorLocation, removeConsumer, removeInput, removeOutput, replaceAllInputs, replaceAllOutputs, replaceInput, resetVisitStatus, setAllPositions, setAsynchronous, setBeginColumn, setBeginLine, setComputeEstimate, setConsumerCount, setDataType, setEndColumn, setEndLine, setExecType, setFederatedOutput, setFilename, setMemoryEstimates, setNewID, setPrivacyConstraint, setValueType, setVisited, setVisited`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### Nary

    public Nary​(Types.OpOpN operationType,
                Types.DataType dt,
                Types.ValueType vt,
                Lop[] inputLops,
                Types.ExecType et)

### Method Detail

#### toString

    public String toString()

Description copied from class: `Lop`
Method to have Lops print their state. This is for debugging purposes.

Specified by:
  `toString` in class `Lop`

#### getOp

    public Types.OpOpN getOp()

#### getInstructions

    public String getInstructions​(String[] inputs,
                                  String output)

Generate the complete instruction string for this Lop. This instruction string can have a variable number of input operands. It displays the following:

- Execution type (CP, SPARK, etc.)
- Operand delimiter (°)
- Opcode (printf, etc.)
- Operand delimiter (°)
- Variable number of inputs, each followed by an operand delimiter (°)
  - Input consists of (label · data type · value type · is literal)
- Output consisting of (label · data type · value type)

Example:
The following DML
`print('hello %s', 'world')`
generates the instruction string:
`CP°printf°hello %s·SCALAR·STRING·true°world·SCALAR·STRING·true°_Var1·SCALAR·STRING`

Overrides:
  `getInstructions` in class `Lop`