Package org.apache.sysds.runtime.instructions.cp

## Class MultiReturnParameterizedBuiltinCPInstruction

- java.lang.Object
- - org.apache.sysds.runtime.instructions.Instruction
  - - org.apache.sysds.runtime.instructions.cp.CPInstruction
    - - org.apache.sysds.runtime.instructions.cp.ComputationCPInstruction
      - - org.apache.sysds.runtime.instructions.cp.MultiReturnParameterizedBuiltinCPInstruction

All Implemented Interfaces:
  `LineageTraceable`

    public class MultiReturnParameterizedBuiltinCPInstruction
    extends ComputationCPInstruction

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.sysds.runtime.instructions.cp.CPInstruction

`CPInstruction.CPType`

### Nested classes/interfaces inherited from class org.apache.sysds.runtime.instructions.Instruction

`Instruction.IType`

### Field Summary

### Fields inherited from class org.apache.sysds.runtime.instructions.cp.ComputationCPInstruction

`input1, input2, input3, input4, output`

### Fields inherited from class org.apache.sysds.runtime.instructions.Instruction

`DATATYPE_PREFIX, FEDERATED_INST_PREFIX, GPU_INST_PREFIX, INSTRUCTION_DELIM, LITERAL_PREFIX, OPERAND_DELIM, SP_INST_PREFIX, VALUETYPE_PREFIX`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`org.apache.commons.lang3.tuple.Pair<String,​LineageItem>[]` `getLineageItems​(ExecutionContext ec)` Obtain lineage trace of an instruction with multiple outputs.
`boolean` `getMetaReturn()`
`CPOperand` `getOutput​(int i)`
`String[]` `getOutputNames()`
`List<CPOperand>` `getOutputs()`
`boolean` `hasSingleLineage()` Obtain meta data on number of outputs and thus, number of lineage items.
`static MultiReturnParameterizedBuiltinCPInstruction` `parseInstruction​(String str)`
`void` `processInstruction​(ExecutionContext ec)` This method should be used to execute the instruction.

### Methods inherited from class org.apache.sysds.runtime.instructions.cp.ComputationCPInstruction

`getInputs, getLineageItem, getOutput, getOutputVariableName, hasFrameInput`

### Methods inherited from class org.apache.sysds.runtime.instructions.cp.CPInstruction

`getCPInstructionType, getGraphString, getType, postprocessInstruction, preprocessInstruction, requiresLabelUpdate, updateLabels`

### Methods inherited from class org.apache.sysds.runtime.instructions.Instruction

`getBeginColumn, getBeginLine, getEndColumn, getEndLine, getExtendedOpcode, getFilename, getInstID, getInstructionString, getLineNum, getOpcode, getOperator, printMe, setInstID, setLocation, setLocation, setLocation, setLocation, toString, updateInstructionThreadID`

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

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

### Method Detail

#### getOutput

    public CPOperand getOutput​(int i)

#### getOutputs

    public List<CPOperand> getOutputs()

#### getOutputNames

    public String[] getOutputNames()

#### parseInstruction

    public static MultiReturnParameterizedBuiltinCPInstruction parseInstruction​(String str)

#### processInstruction

    public void processInstruction​(ExecutionContext ec)

Description copied from class: `Instruction`
This method should be used to execute the instruction.

Specified by:
  `processInstruction` in class `CPInstruction`
Parameters:
  `ec` - execution context

#### hasSingleLineage

    public boolean hasSingleLineage()

Description copied from interface: `LineageTraceable`
Obtain meta data on number of outputs and thus, number of lineage items.

Returns:
  true iff instruction has a single output

#### getLineageItems

    public org.apache.commons.lang3.tuple.Pair<String,​LineageItem>[] getLineageItems​(ExecutionContext ec)

Description copied from interface: `LineageTraceable`
Obtain lineage trace of an instruction with multiple outputs.

Parameters:
  `ec` - execution context w/ live variables
Returns:
  pairs of (output variable name, output lineage item)

#### getMetaReturn

    public boolean getMetaReturn()