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
    Constructor | Description
    --- | ---
    `ForStatementBlock()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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