Package org.apache.sysds.parser

# Class FunctionStatementBlock

java.lang.Object
org.apache.sysds.parser.LiveVariableAnalysis
org.apache.sysds.parser.StatementBlock
org.apache.sysds.parser.FunctionStatementBlock

All Implemented Interfaces:
  `Types.FunctionBlock`, `ParseInfo`

public class FunctionStatementBlock extends StatementBlock implements Types.FunctionBlock

## Field Summary

### Fields inherited from class org.apache.sysds.parser.StatementBlock

`DEFAULT_LOOP_REPETITIONS`

## Constructor Summary

Constructors
Constructor
Description
`FunctionStatementBlock()`

## Method Summary

Modifier and Type
Method
Description
`VariableSet`
`analyze(VariableSet loPassed)`
`VariableSet`
`analyze(VariableSet liPassed, VariableSet loPassed)`
`Types.FunctionBlock`
`cloneFunctionBlock()`
`FunctionOp.FunctionType`
`getFunctionOpType()`
`VariableSet`
`initializebackwardLV(VariableSet loPassed)`
`VariableSet`
`initializeforwardLV(VariableSet activeInPassed)`
For each statement: gen rule: for each variable read in current statement but not updated in any PRIOR statement, add to gen Handles case where variable both read and updated in same statement (i = i + 1, i needs to be added to gen) kill rule: for each variable updated in current statement but not read in this or any PRIOR statement, add to kill.
`boolean`
`isNondeterministic()`
`void`
`setAvgLoopDepRatio()`
`void`
`setNondeterministic(boolean flag)`
`VariableSet`
`validate(DMLProgram dmlProg, VariableSet ids, HashMap<String,ConstIdentifier> constVars, boolean conditional)`
TODO: DRB: This needs to be changed to reflect: 1) Default values for variables -- need to add R styled check here to make sure that once vars with default values start, they keep going to the right 2) The other parameters for External Functions

### Methods inherited from class org.apache.sysds.parser.StatementBlock

`addStatement, addStatementBlock, getBeginColumn, getBeginLine, getCheckpointPositions, getConstIn, getConstOut, getDMLProg, getEndColumn, getEndLine, getFilename, getHops, getInputstoSB, getLoopDepRatio, getLops, getName, getNumStatements, getOutputNamesofSB, getOutputsofSB, getSBID, getStatement, getStatements, getText, getUpdateInPlaceVars, hasHops, isMergeableFunctionCallBlock, isRecompileOnce, isRewritableFunctionCall, isSplitDag, mergeable, mergeFunctionCalls, mergeStatementBlocks, printBlockErrorLocation, printErrorLocation, printWarningLocation, raiseValidateError, raiseValidateError, requiresRecompilation, rewriteFunctionCallStatements, rHoistFunctionCallsFromExpressions, rHoistFunctionCallsFromExpressions, rHoistFunctionCallsFromExpressions, setBeginColumn, setBeginLine, setCheckpointPosition, setDMLProg, setEndColumn, setEndLine, setFilename, setHops, setLoopDepRatio, setLops, setParseInfo, setRecompileOnce, setSplitDag, setStatementFormatType, setStatementFormatType, setStatements, setText, setUpdateInPlaceVars, toString, updateRecompilationFlag`

### Methods inherited from class org.apache.sysds.parser.LiveVariableAnalysis

`getGen, getKill, getWarn, liveIn, liveOut, setGen, setKill, setLiveIn, setLiveOut, setReadVariables, setUpdatedVariables, updateLiveVariablesOut, variablesRead, variablesUpdated`

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

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

## Constructor Details

### FunctionStatementBlock

public FunctionStatementBlock()

## Method Details

### validate

public VariableSet validate(DMLProgram dmlProg, VariableSet ids, HashMap<String,ConstIdentifier> constVars, boolean conditional)
TODO: DRB: This needs to be changed to reflect: 1) Default values for variables -- need to add R styled check here to make sure that once vars with default values start, they keep going to the right 2) The other parameters for External Functions

Overrides:
  `validate` in class `StatementBlock`

### getFunctionOpType

public FunctionOp.FunctionType getFunctionOpType()

### initializeforwardLV

public VariableSet initializeforwardLV(VariableSet activeInPassed)
Description copied from class: `StatementBlock`
For each statement: gen rule: for each variable read in current statement but not updated in any PRIOR statement, add to gen Handles case where variable both read and updated in same statement (i = i + 1, i needs to be added to gen) kill rule: for each variable updated in current statement but not read in this or any PRIOR statement, add to kill.

Overrides:
  `initializeforwardLV` in class `StatementBlock`

### initializebackwardLV

public VariableSet initializebackwardLV(VariableSet loPassed)

Overrides:
  `initializebackwardLV` in class `StatementBlock`

### analyze

public VariableSet analyze(VariableSet loPassed)

Overrides:
  `analyze` in class `StatementBlock`

### analyze

public VariableSet analyze(VariableSet liPassed, VariableSet loPassed)

### setNondeterministic

public void setNondeterministic(boolean flag)

Overrides:
  `setNondeterministic` in class `StatementBlock`

### isNondeterministic

public boolean isNondeterministic()

Overrides:
  `isNondeterministic` in class `StatementBlock`

### setAvgLoopDepRatio

public void setAvgLoopDepRatio()

### cloneFunctionBlock

public Types.FunctionBlock cloneFunctionBlock()

Specified by:
  `cloneFunctionBlock` in interface `Types.FunctionBlock`