Package org.apache.sysds.parser

## Class ForStatementBlock

- java.lang.Object
- - org.apache.sysds.parser.LiveVariableAnalysis
  - - org.apache.sysds.parser.StatementBlock
    - - org.apache.sysds.parser.ForStatementBlock

All Implemented Interfaces:
  `ParseInfo`

Direct Known Subclasses:
  `ParForStatementBlock`

    public class ForStatementBlock
    extends StatementBlock

### Field Summary

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

`DEFAULT_LOOP_REPETITIONS`

### Constructor Summary

Constructors
`ForStatementBlock()`

### Method Summary

All Methods Instance Methods Concrete Methods
`VariableSet` `analyze​(VariableSet loPassed)`
`int` `getEstimateReps()`
`Hop` `getFromHops()`
`Lop` `getFromLops()`
`Hop` `getIncrementHops()`
`Lop` `getIncrementLops()`
`ArrayList<String>` `getInputstoSB()`
`IterablePredicate` `getIterPredicate()`
`Hop` `getToHops()`
`Lop` `getToLops()`
`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.

`void` `performConstantPropagation​(HashMap<String,​ConstIdentifier> currConstVars)`
`boolean` `requiresFromRecompilation()`
`boolean` `requiresIncrementRecompilation()`
`boolean` `requiresPredicateRecompilation()`
`boolean` `requiresToRecompilation()`
`void` `setFromHops​(Hop hops)`
`void` `setFromLops​(Lop lops)`
`void` `setIncrementHops​(Hop hops)`
`void` `setIncrementLops​(Lop lops)`
`void` `setToHops​(Hop hops)`
`void` `setToLops​(Lop lops)`
`boolean` `updatePredicateRecompilationFlags()`
`void` `updateRepetitionEstimates​(double repetitions)` Updates the repetition estimate for this statement block and all contained hops.
`VariableSet` `validate​(DMLProgram dmlProg, VariableSet ids, HashMap<String,​ConstIdentifier> constVars, boolean conditional)`

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

`addStatement, addStatementBlock, getBeginColumn, getBeginLine, getConstIn, getConstOut, getDMLProg, getEndColumn, getEndLine, getFilename, getHops, getLops, getName, getNumStatements, getOutputNamesofSB, getOutputsofSB, getSBID, getStatement, getStatements, getText, getUpdateInPlaceVars, hasHops, isMergeableFunctionCallBlock, isNondeterministic, isRewritableFunctionCall, isSplitDag, mergeable, mergeFunctionCalls, mergeStatementBlocks, printBlockErrorLocation, printErrorLocation, printWarningLocation, raiseValidateError, raiseValidateError, requiresRecompilation, rewriteFunctionCallStatements, rHoistFunctionCallsFromExpressions, rHoistFunctionCallsFromExpressions, rHoistFunctionCallsFromExpressions, setBeginColumn, setBeginLine, setDMLProg, setEndColumn, setEndLine, setFilename, setHops, setLops, setNondeterministic, setParseInfo, 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

#### ForStatementBlock

    public ForStatementBlock()

### Method Detail

#### getIterPredicate

    public IterablePredicate getIterPredicate()

#### validate

    public VariableSet validate​(DMLProgram dmlProg,
                                VariableSet ids,
                                HashMap<String,​ConstIdentifier> constVars,
                                boolean conditional)

Overrides:
  `validate` in class `StatementBlock`

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

#### setFromHops

    public void setFromHops​(Hop hops)

#### setToHops

    public void setToHops​(Hop hops)

#### setIncrementHops

    public void setIncrementHops​(Hop hops)

#### getFromHops

    public Hop getFromHops()

#### getToHops

    public Hop getToHops()

#### getIncrementHops

    public Hop getIncrementHops()

#### setFromLops

    public void setFromLops​(Lop lops)

#### setToLops

    public void setToLops​(Lop lops)

#### setIncrementLops

    public void setIncrementLops​(Lop lops)

#### getFromLops

    public Lop getFromLops()

#### getToLops

    public Lop getToLops()

#### getIncrementLops

    public Lop getIncrementLops()

#### getInputstoSB

    public ArrayList<String> getInputstoSB()

Overrides:
  `getInputstoSB` in class `StatementBlock`

#### analyze

    public VariableSet analyze​(VariableSet loPassed)

Overrides:
  `analyze` in class `StatementBlock`

#### performConstantPropagation

    public void performConstantPropagation​(HashMap<String,​ConstIdentifier> currConstVars)

#### updatePredicateRecompilationFlags

    public boolean updatePredicateRecompilationFlags()

#### requiresPredicateRecompilation

    public boolean requiresPredicateRecompilation()

#### requiresFromRecompilation

    public boolean requiresFromRecompilation()

#### requiresToRecompilation

    public boolean requiresToRecompilation()

#### requiresIncrementRecompilation

    public boolean requiresIncrementRecompilation()

#### getEstimateReps

    public int getEstimateReps()

#### updateRepetitionEstimates

    public void updateRepetitionEstimates​(double repetitions)

Description copied from class: `StatementBlock`
Updates the repetition estimate for this statement block and all contained hops. FunctionStatementBlocks are loaded from the function dictionary and repetitions are estimated for the contained statement blocks. This method is overridden in the subclasses of StatementBlock.

Overrides:
  `updateRepetitionEstimates` in class `StatementBlock`
Parameters:
  `repetitions` - estimated for this statement block