Package org.apache.sysds.lops

## Class AppendG

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

    public class AppendG
    extends Lop

TODO Additional compiler enhancements: 1) Partial Shuffle Elimination - Any full or aligned blocks could be directly output from the mappers to the result index. We only need to shuffle, sort and aggregate partial blocks. However, this requires piggybacking changes, i.e., (1) operations with multiple result indexes, and (2) multiple operations with the same result index. 2) Group Elimination for Append Chains - If we have chains of rappend each intermediate is shuffled and aggregated. This is unnecessary if all offsets are known in advance. We could directly pack all rappends in one GMR map-phase followed by one group and subsequent aggregate. However, this requires an n-ary rappend or group (with multiple inputs).

### Nested Class Summary

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

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

### Field Summary

Fields
`static String` `OPCODE`

### 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
`AppendG​(Lop input1, Lop input2, Lop input3, Lop input4, Types.DataType dt, Types.ValueType vt, boolean cbind, Types.ExecType et)`

### Method Summary

All Methods Instance Methods Concrete Methods
`String` `getInstructions​(String input_index1, String input_index2, String input_index3, String input_index4, String output_index)` Method should be overridden if needed
`void` `init​(Lop input1, Lop input2, Lop input3, Lop input4, Types.DataType dt, Types.ValueType vt, Types.ExecType et)`
`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, getPipelineID, 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, setPipelineID, setValueType, setVisited, setVisited`

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

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

### Field Detail

#### OPCODE

    public static final String OPCODE

### Constructor Detail

#### AppendG

    public AppendG​(Lop input1,
                   Lop input2,
                   Lop input3,
                   Lop input4,
                   Types.DataType dt,
                   Types.ValueType vt,
                   boolean cbind,
                   Types.ExecType et)

### Method Detail

#### init

    public void init​(Lop input1,
                     Lop input2,
                     Lop input3,
                     Lop input4,
                     Types.DataType dt,
                     Types.ValueType vt,
                     Types.ExecType et)

#### 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`

#### getInstructions

    public String getInstructions​(String input_index1,
                                  String input_index2,
                                  String input_index3,
                                  String input_index4,
                                  String output_index)

Description copied from class: `Lop`
Method should be overridden if needed

Overrides:
  `getInstructions` in class `Lop`
Parameters:
  `input_index1` - input 1
  `input_index2` - input 2
  `input_index3` - input 3
  `input_index4` - input 4
  `output_index` - output
Returns:
  instructions as string