.. java:import:: fr.inria.tapenade.representation Block .. java:import:: fr.inria.tapenade.representation BlockStorage .. java:import:: fr.inria.tapenade.representation DiffPattern .. java:import:: fr.inria.tapenade.representation Instruction .. java:import:: fr.inria.tapenade.representation TapEnv .. java:import:: fr.inria.tapenade.representation TapList .. java:import:: fr.inria.tapenade.representation Unit .. java:import:: fr.inria.tapenade.utils BoolMatrix .. java:import:: fr.inria.tapenade.utils BoolVector .. java:import:: fr.inria.tapenade.utils TapPair .. java:import:: fr.inria.tapenade.utils TapTriplet .. java:import:: fr.inria.tapenade.utils Tree ActivityPattern =============== .. java:package:: fr.inria.tapenade.analysis :noindex: .. java:type:: public final class ActivityPattern Class that holds one activity pattern of a Unit and its blocks, together with the results of several data-flow analysis on this Unit for this activity pattern. Constructors ------------ ActivityPattern ^^^^^^^^^^^^^^^ .. java:constructor:: public ActivityPattern(Unit unit, boolean generalizable, boolean forceActive, int diffKind) :outertype: ActivityPattern ActivityPattern ^^^^^^^^^^^^^^^ .. java:constructor:: public ActivityPattern(Unit unit, BoolVector variedOnCall, BoolVector usefulOnExit, boolean generalizable, int diffKind) :outertype: ActivityPattern Methods ------- activities ^^^^^^^^^^ .. java:method:: public BlockStorage> activities() :outertype: ActivityPattern Activities for all blocks in this unit with this activity Pattern. adTBRTopDownContext ^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector adTBRTopDownContext() :outertype: ActivityPattern Initialization for TBR analysis. For the current Unit, the boolvector of the zones that are already TBR at the point of entry into the current Unit. adTBRTopDownContextOnDiffPtr ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector adTBRTopDownContextOnDiffPtr() :outertype: ActivityPattern avlXEffectsAdded ^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector avlXEffectsAdded() :outertype: ActivityPattern Temporary result, only for communication from BOTTOMUP_3 cgPhase to TOPDOWN_4 cgPhase: BoolVector of the zones added unconditionally to AvlX, downwards any call. avlXEffectsVisible ^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector avlXEffectsVisible() :outertype: ActivityPattern Temporary result, only for communication from BOTTOMUP_3 cgPhase to TOPDOWN_4 cgPhase: BoolVector of the zones NOT completely masked by each Unit to the AvlX analysis. avlXs ^^^^^ .. java:method:: public BlockStorage> avlXs() :outertype: ActivityPattern The other published result of ReqX analysis: vectors of AvlX zones between each pair of successive instructions. butRemainsInFwdSweep ^^^^^^^^^^^^^^^^^^^^ .. java:method:: public BlockStorage butRemainsInFwdSweep() :outertype: ActivityPattern Another result of TBR analysis. For each Instruction, true if, although this instruction may be recomputed, it must also be kept in the forward sweep. callActivity ^^^^^^^^^^^^ .. java:method:: public BoolVector callActivity() :outertype: ActivityPattern Result of activity analysis: Active zones upon entry into each subroutine. Storage, for each "procedure" Unit, of a BoolVector describing active zones upon call of the Unit. This is the "or" of all activities just before each call to the Unit. This is not redundant with the "internal" analysis result ((BoolVector[])topDownContexts.retrieve(unit))[VoC] because this is the real "activity" and that was only the "varied" info. Upon finishing activity analysis of the Unit, this value may be manipulated to force the differentiate call sites to perform diff var initialization upstream the diff call. In debugActivity mode only, contains the variedness upon call. callUsefulness ^^^^^^^^^^^^^^ .. java:method:: public BoolVector callUsefulness() :outertype: ActivityPattern Result of activity analysis, useful only in debugActivity mode, contains the usefulness upon call. callingPatterns ^^^^^^^^^^^^^^^ .. java:method:: public TapList callingPatterns() :outertype: ActivityPattern :return: the list of calling contexts that will use this activity pattern. copyReqExplicitInfos ^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void copyReqExplicitInfos(ActivityPattern model) :outertype: ActivityPattern Used in ReqExplicit analysis to initialize a standard ActivityPattern with its corresponding context ActivityPattern. diffLivenessTopDownContext ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public DiffLivenessAnalyzer.Context diffLivenessTopDownContext() :outertype: ActivityPattern The context object used in the top-down phase of DiffLiveness analysis to accumulate the contexts of the call sites of a function into a location that analysis of this function will retrieve. diffLivenesses ^^^^^^^^^^^^^^ .. java:method:: public BlockStorage>> diffLivenesses() :outertype: ActivityPattern Result of diffLiveness analysis: for each Unit that may be differentiated in reverse nocheckpoint mode ("split") or in tangent mode, for each Block, a TapList of diffLiveness BoolVector's between each pair of successive instructions. diffLivenessesCkp ^^^^^^^^^^^^^^^^^ .. java:method:: public BlockStorage>> diffLivenessesCkp() :outertype: ActivityPattern Result of diffLiveness analysis: for each Unit that may be differentiated in reverse checkpoint mode ("joint"), for each Block, a TapList of diffLiveness BoolVector's between each pair of successive instructions. diffOverwrites ^^^^^^^^^^^^^^ .. java:method:: public BlockStorage>> diffOverwrites() :outertype: ActivityPattern Result of diffLiveness analysis: for each Unit that may be differentiated in reverse nocheckpoint mode ("split") or in tangent mode, for each Block, a TapList of diffOverwrite BoolVector's between each pair of successive instructions. diffOverwritesCkp ^^^^^^^^^^^^^^^^^ .. java:method:: public BlockStorage>> diffOverwritesCkp() :outertype: ActivityPattern Result of diffLiveness analysis: for each Unit that may be differentiated in reverse checkpoint mode ("joint"), for each Block, a TapList of diffOverwrite BoolVector's between each pair of successive instructions. diffPattern ^^^^^^^^^^^ .. java:method:: public DiffPattern diffPattern() :outertype: ActivityPattern :return: The diffPattern that lead to the creation of this activity pattern. dump ^^^^ .. java:method:: public void dump() throws java.io.IOException :outertype: ActivityPattern entryAvlX ^^^^^^^^^ .. java:method:: public BoolVector entryAvlX() :outertype: ActivityPattern A secondary published result of ReqX analysis: BoolVector of AvlX zones (public) upon entry from the Unit. entryDiffLivenessesCkp ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector entryDiffLivenessesCkp() :outertype: ActivityPattern Result of 1st (BOTTOMUP) sweep of diffLiveness analysis: for each Unit, the BoolVector of its live (i.e. required) arguments upon call in the reverse-checkpointed mode. In other words, these are the variables of the Unit that are diff-live upon entry, if we suppose the diff-live set upon exit is emptyset. entryDiffLivenessesCkpOnDiffPtr ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector entryDiffLivenessesCkpOnDiffPtr() :outertype: ActivityPattern entryDiffOverwritesCkp ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector entryDiffOverwritesCkp() :outertype: ActivityPattern Result of 1st (BOTTOMUP) sweep of diffLiveness analysis: for the current Unit, the BoolVector of its diff-overwritten arguments upon call in the reverse-checkpointed mode. In other words, these are the variables of the Unit that are diff-overwritten upon entry, if we suppose the diff-overwritten set upon exit is emptyset. entryDiffOverwritesCkpOnDiffPtr ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector entryDiffOverwritesCkpOnDiffPtr() :outertype: ActivityPattern entryReqX ^^^^^^^^^ .. java:method:: public BoolVector entryReqX() :outertype: ActivityPattern A secondary published result of ReqX analysis: BoolVector of ReqX zones (public) upon entry into the Unit. exitActivity ^^^^^^^^^^^^ .. java:method:: public BoolVector exitActivity() :outertype: ActivityPattern Result of activity analysis: Active zones upon exit from each subroutine. Storage, for each "procedure" Unit, of a BoolVector describing active zones upon exit from the Unit. In other words, this should be equal to the Unit's "callActivities" times the Unit's dependence matrix. Upon finishing activity analysis of the Unit, this value may be manipulated to force the differentiate call sites to perform diff var initialization downstream the diff call. In debugActivity mode only, contains the variedness upon return. exitAvlX ^^^^^^^^ .. java:method:: public BoolVector exitAvlX() :outertype: ActivityPattern A secondary published result of ReqX analysis: BoolVector of AvlX zones (public) upon exit from the Unit. exitReqX ^^^^^^^^ .. java:method:: public BoolVector exitReqX() :outertype: ActivityPattern A secondary published result of ReqX analysis: BoolVector of ReqX zones (public) upon exit into the Unit. exitUsefulness ^^^^^^^^^^^^^^ .. java:method:: public BoolVector exitUsefulness() :outertype: ActivityPattern Result of activity analysis, useful only in debugActivity mode, contains the usefulness upon return. fragmentDiffLivenessesCkp ^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public TapPair fragmentDiffLivenessesCkp(Block ckpBlock) :outertype: ActivityPattern Returns the diff liveness info about one given checkpointed code fragment, here represented by its "main" Block "ckpBlock" getAnnotationForActivityPattern ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public static Object getAnnotationForActivityPattern(Tree tree, ActivityPattern pattern, String name) :outertype: ActivityPattern :param tree: The tree on which we search the annotation. :param name: The name of the annotation we search. :param pattern: The ActivityPattern for which we search the annotation. :return: The value found for this annotation, otherwise null. getCallingActivityPattern ^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public ActivityPattern getCallingActivityPattern(Unit caller, TapList dejaVu) :outertype: ActivityPattern getInstructionBoolInfo ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public static boolean getInstructionBoolInfo(BlockStorage info, Instruction instruction, int infoRk) :outertype: ActivityPattern initializeButRemainsInFwdSweep ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void initializeButRemainsInFwdSweep() :outertype: ActivityPattern initializeMayBeRecomputed ^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void initializeMayBeRecomputed() :outertype: ActivityPattern isActive ^^^^^^^^ .. java:method:: public boolean isActive() :outertype: ActivityPattern :return: true if this activityPattern is active, ie not all variables are inactive. isCalledBy ^^^^^^^^^^ .. java:method:: public boolean isCalledBy(Unit caller, ActivityPattern callerActivityPattern, TapList dejaVu) :outertype: ActivityPattern isContext ^^^^^^^^^ .. java:method:: public boolean isContext() :outertype: ActivityPattern True when this activity pattern is for "context" differentiation, i.e. outside the differentiated sub-call-tree. isDisconnected ^^^^^^^^^^^^^^ .. java:method:: public boolean isDisconnected() :outertype: ActivityPattern isDontDiff ^^^^^^^^^^ .. java:method:: public boolean isDontDiff() :outertype: ActivityPattern Conversely to "isForcedActive", this boolean is used to force non-differentiation of this Unit with respect to this ActivityPattern. cf F77:lha87 and ADActivityAnalyzer. isForcedActive ^^^^^^^^^^^^^^ .. java:method:: public boolean isForcedActive() :outertype: ActivityPattern This boolean is used to force active the "dummy" ActivityPattern that we create for a VarFunction that is called only in hidden places (external units) so that we must suppose it is active but we don't know in which way! cf F90:v459. isGeneralizable ^^^^^^^^^^^^^^^ .. java:method:: public boolean isGeneralizable() :outertype: ActivityPattern false if this pattern was created to exactly match a user request, and should therefore not be generalized. This should only happen for diff roots. localExitTBR ^^^^^^^^^^^^ .. java:method:: public BoolVector localExitTBR() :outertype: ActivityPattern Intermediate result of the 1st, bottom-up phase: TBR set upon exit, due only to operations inside the Unit. localExitTBROnDiffPtr ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector localExitTBROnDiffPtr() :outertype: ActivityPattern mayBeRecomputed ^^^^^^^^^^^^^^^ .. java:method:: public BlockStorage mayBeRecomputed() :outertype: ActivityPattern Another result of TBR analysis. For each Instruction, true if this Instruction is considered for recomputing its result rather than storing it (Store on kill). recomps ^^^^^^^ .. java:method:: public BlockStorage, TapList>>> recomps() :outertype: ActivityPattern Another result of TBR analysis. For each Unit of the CallGraph, for each Block, the TapList of the recomputations that we want to place on the way backwards between successive instructions. Each of these recomputations is itself a TapList of Instruction's. registerCallingActivityPattern ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void registerCallingActivityPattern(ActivityPattern callingPattern) :outertype: ActivityPattern removeAnnotationForActivityPattern ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public static void removeAnnotationForActivityPattern(Tree tree, ActivityPattern pattern, String name) :outertype: ActivityPattern Removes the annotation "name" for ActivityPattern "pattern" on this "tree". :param tree: The tree on which we remove the annotation. :param name: The name of the annotation we remove. :param pattern: The ActivityPattern for which we remove the annotation. reqXEffects ^^^^^^^^^^^ .. java:method:: public BoolMatrix reqXEffects() :outertype: ActivityPattern Temporary result, only for communication from BOTTOMUP_1 cgPhase to TOPDOWN_2 cgPhase: BoolMatrix of the effect of each Unit on its ReqX info, upwards any call. reqXEffectsAdded ^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector reqXEffectsAdded() :outertype: ActivityPattern Temporary result, only for communication from BOTTOMUP_1 cgPhase to TOPDOWN_2 cgPhase: BoolVector of the zones added unconditionally to ReqX, upwards any call. reqXs ^^^^^ .. java:method:: public BlockStorage> reqXs() :outertype: ActivityPattern The published result of ReqX analysis: vectors of ReqX zones between each pair of successive instructions. setActivities ^^^^^^^^^^^^^ .. java:method:: public void setActivities(BlockStorage> activities) :outertype: ActivityPattern setAdTBRTopDownContext ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setAdTBRTopDownContext(BoolVector adTBRTopDownContext) :outertype: ActivityPattern setAdTBRTopDownContextOnDiffPtr ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setAdTBRTopDownContextOnDiffPtr(BoolVector adTBRTopDownContextOnDiffPtr) :outertype: ActivityPattern setAnnotationForActivityPattern ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public static void setAnnotationForActivityPattern(Tree tree, ActivityPattern pattern, String name, Object val) :outertype: ActivityPattern Sets to "val" the value of annotation "name" for ActivityPattern "pattern" on this "tree". :param tree: The tree on which we set the annotation. :param name: The name of the annotation we set. :param pattern: The ActivityPattern for which we set the annotation. :param val: The value we set for this annotation. setAvlXEffectsAdded ^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setAvlXEffectsAdded(BoolVector avlXEffectsAdded) :outertype: ActivityPattern setAvlXEffectsVisible ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setAvlXEffectsVisible(BoolVector avlXEffectsVisible) :outertype: ActivityPattern setAvlXs ^^^^^^^^ .. java:method:: public void setAvlXs(BlockStorage> avlXs) :outertype: ActivityPattern setCallActivity ^^^^^^^^^^^^^^^ .. java:method:: public void setCallActivity(BoolVector callActivity) :outertype: ActivityPattern setCallUsefulness ^^^^^^^^^^^^^^^^^ .. java:method:: public void setCallUsefulness(BoolVector callUsefulness) :outertype: ActivityPattern setContext ^^^^^^^^^^ .. java:method:: public void setContext(boolean context) :outertype: ActivityPattern setDiffLivenessTopDownContext ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setDiffLivenessTopDownContext(DiffLivenessAnalyzer.Context diffLivenessTopDownContext) :outertype: ActivityPattern setDiffLivenesses ^^^^^^^^^^^^^^^^^ .. java:method:: public void setDiffLivenesses(BlockStorage>> diffLivenesses) :outertype: ActivityPattern setDiffLivenessesCkp ^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setDiffLivenessesCkp(BlockStorage>> diffLivenessesCkp) :outertype: ActivityPattern setDiffOverwrites ^^^^^^^^^^^^^^^^^ .. java:method:: public void setDiffOverwrites(BlockStorage>> diffOverwrites) :outertype: ActivityPattern setDiffOverwritesCkp ^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setDiffOverwritesCkp(BlockStorage>> diffOverwritesCkp) :outertype: ActivityPattern setDiffPattern ^^^^^^^^^^^^^^ .. java:method:: public void setDiffPattern(DiffPattern diffPattern) :outertype: ActivityPattern setDontDiff ^^^^^^^^^^^ .. java:method:: public void setDontDiff(boolean dontDiff) :outertype: ActivityPattern setEntryAvlX ^^^^^^^^^^^^ .. java:method:: public void setEntryAvlX(BoolVector entryAvlX) :outertype: ActivityPattern setEntryDiffLivenessesCkp ^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setEntryDiffLivenessesCkp(BoolVector entryDiffLivenessesCkp) :outertype: ActivityPattern setEntryDiffLivenessesCkpOnDiffPtr ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setEntryDiffLivenessesCkpOnDiffPtr(BoolVector entryDiffLivenessesCkpOnDiffPtr) :outertype: ActivityPattern setEntryDiffOverwritesCkp ^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setEntryDiffOverwritesCkp(BoolVector entryDiffOverwritesCkp) :outertype: ActivityPattern setEntryDiffOverwritesCkpOnDiffPtr ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setEntryDiffOverwritesCkpOnDiffPtr(BoolVector entryDiffOverwritesCkpOnDiffPtr) :outertype: ActivityPattern setEntryReqX ^^^^^^^^^^^^ .. java:method:: public void setEntryReqX(BoolVector entryReqX) :outertype: ActivityPattern setExitActivity ^^^^^^^^^^^^^^^ .. java:method:: public void setExitActivity(BoolVector exitActivity) :outertype: ActivityPattern setExitAvlX ^^^^^^^^^^^ .. java:method:: public void setExitAvlX(BoolVector exitAvlX) :outertype: ActivityPattern setExitReqX ^^^^^^^^^^^ .. java:method:: public void setExitReqX(BoolVector exitReqX) :outertype: ActivityPattern setExitUsefulness ^^^^^^^^^^^^^^^^^ .. java:method:: public void setExitUsefulness(BoolVector exitUsefulness) :outertype: ActivityPattern setForcedActive ^^^^^^^^^^^^^^^ .. java:method:: public void setForcedActive(boolean forcedActive) :outertype: ActivityPattern setFragmentDiffLivenessesCkp ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setFragmentDiffLivenessesCkp(Block ckpBlock, TapPair info) :outertype: ActivityPattern setInstructionBoolInfo ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public static void setInstructionBoolInfo(BlockStorage info, Instruction instruction, int infoRk, boolean value) :outertype: ActivityPattern setLocalExitTBR ^^^^^^^^^^^^^^^ .. java:method:: public void setLocalExitTBR(BoolVector localExitTBR) :outertype: ActivityPattern setLocalExitTBROnDiffPtr ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setLocalExitTBROnDiffPtr(BoolVector localExitTBROnDiffPtr) :outertype: ActivityPattern setRecomps ^^^^^^^^^^ .. java:method:: public void setRecomps(BlockStorage, TapList>>> recomps) :outertype: ActivityPattern setReqXEffects ^^^^^^^^^^^^^^ .. java:method:: public void setReqXEffects(BoolMatrix reqXEffects) :outertype: ActivityPattern setReqXEffectsAdded ^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setReqXEffectsAdded(BoolVector reqXEffectsAdded) :outertype: ActivityPattern setReqXs ^^^^^^^^ .. java:method:: public void setReqXs(BlockStorage> reqXs) :outertype: ActivityPattern setStaticActivity ^^^^^^^^^^^^^^^^^ .. java:method:: public void setStaticActivity(BoolVector staticActivity) :outertype: ActivityPattern setTbrs ^^^^^^^ .. java:method:: public void setTbrs(BlockStorage>> tbrs) :outertype: ActivityPattern setUsefulOnCallingSide ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setUsefulOnCallingSide(BoolVector usefulnessOnCallingSide) :outertype: ActivityPattern setUsefulnesses ^^^^^^^^^^^^^^^ .. java:method:: public void setUsefulnesses(BlockStorage> usefulnesses) :outertype: ActivityPattern staticActivity ^^^^^^^^^^^^^^ .. java:method:: public BoolVector staticActivity() :outertype: ActivityPattern Zones that are active all through the analyzed curUnit, and that are not even mentioned in the [before|after]Activ vectors because they are unused, unmodified and are therefore filtered out by activity analysis. Cf results*.results[index] in ResultsSet() in validation code SEISM. tbrs ^^^^ .. java:method:: public BlockStorage>> tbrs() :outertype: ActivityPattern Main result of TBR analysis. TBR set just before each instruction, for each Block of each Unit of the CallGraph. Actually, the TBR result is also stored as a Tree annotation, therefore this field is rarely used, e.g. for the save of local vars at the end of fwd sweeps (split mode), or for dumps. toString ^^^^^^^^ .. java:method:: @Override public String toString() :outertype: ActivityPattern unit ^^^^ .. java:method:: public Unit unit() :outertype: ActivityPattern :return: The Unit that this activity pattern refers/applies to. usefulOnCallingSide ^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector usefulOnCallingSide() :outertype: ActivityPattern Result of activity analysis, BoolVector of the (union of) public usefulness at the calling location(s) of this Unit. This usefulness is not filtered through the by-value formal arguments, so that it can be used to detect whether a by-value argument of the Unit needs a second adjoint (local) derivative to eventually add into the adjoint derivative actual argument. usefulOnExit ^^^^^^^^^^^^ .. java:method:: public BoolVector usefulOnExit() :outertype: ActivityPattern Useful on Exit of this unit. usefulnesses ^^^^^^^^^^^^ .. java:method:: public BlockStorage> usefulnesses() :outertype: ActivityPattern Usefulnesses for all blocks in this unit with this activity Pattern. varFunctionADActivities ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public TapTriplet[] varFunctionADActivities() :outertype: ActivityPattern Result of activity analysis: about functions passed as arguments. For each Unit, contains an array of the same length as the arguments list which contains, for each argument which is a function name and which is "active", the callActivity and exitUsefulness of this function. variedOnCall ^^^^^^^^^^^^ .. java:method:: public BoolVector variedOnCall() :outertype: ActivityPattern Varied on Call of this unit. walkUpToPatternOf ^^^^^^^^^^^^^^^^^ .. java:method:: public static void walkUpToPatternOf(ActivityPattern pattern, Unit unit, TapList collected, TapList dejaVu) :outertype: ActivityPattern zonesMPIiReceived ^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector zonesMPIiReceived() :outertype: ActivityPattern BoolVector of the zones for which this Unit does a AMPI_Irecv(), and therefore (if the zone is active) the adjoint must run a AMPI_Turn(). zonesMPIiReceivedLength ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public int zonesMPIiReceivedLength() :outertype: ActivityPattern zonesOfVarsHaveDiff ^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector zonesOfVarsHaveDiff() :outertype: ActivityPattern Result of activity analysis: BoolVector of the (diffKind) zones for which there will be a differentiated variable.