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
`FunctionStatementBlock()`

### Method Summary

All Methods Instance Methods Concrete Methods
`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 Detail

#### FunctionStatementBlock

    public FunctionStatementBlock()

### Method Detail

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