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
    Modifier and Type | Field | Description
    --- | --- | ---
    `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, SAMPLE_FRACTION, SCALAR_VAR_NAME_PREFIX, UPDATE_INPLACE_PREFIX, VALUETYPE_PREFIX, VARIABLE_NAME_PLACEHOLDER`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `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
    Modifier and Type | Method | Description
    --- | --- | ---
    `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, getDataType, getEndColumn, getEndLine, getExecType, getFederatedOutput, getFilename, getID, getInputs, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getInstructions, getLevel, getOutputParameters, getOutputs, getPrivacyConstraint, getProducesIntermediateOutput, getReachable, getSimpleInstructionType, getType, getValueType, getVisited, isAllOutputsCP, isDataExecLocation, isVariable, prefetchActivated, prepInputOperand, prepInputOperand, prepOperand, prepOperand, prepOutputOperand, prepOutputOperand, prepOutputOperand, prepScalarInputOperand, prepScalarInputOperand, prepScalarLabel, prepScalarOperand, printErrorLocation, removeConsumer, removeOutput, replaceInput, resetVisitStatus, setAllPositions, setBeginColumn, setBeginLine, setConsumerCount, setDataType, setEndColumn, setEndLine, setExecType, setFederatedOutput, setFilename, setPrivacyConstraint, setValueType, setVisited`

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

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

- - ### Field Detail

    - #### OPCODE

          public static final String OPCODE

      See Also:
        Constant Field Values

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