.. java:import:: fr.inria.tapenade.utils ILLang .. java:import:: fr.inria.tapenade.utils TapPair .. java:import:: fr.inria.tapenade.utils TapTriplet .. java:import:: fr.inria.tapenade.utils ToBool .. java:import:: fr.inria.tapenade.utils Tree .. java:import:: java.util Objects ArrayTypeSpec ============= .. java:package:: fr.inria.tapenade.representation :noindex: .. java:type:: public final class ArrayTypeSpec extends TypeSpec An array type. Constructors ------------ ArrayTypeSpec ^^^^^^^^^^^^^ .. java:constructor:: public ArrayTypeSpec(WrapperTypeSpec elementType, ArrayDim[] dimensions) :outertype: ArrayTypeSpec Create an array type on "elementType" with "dimensions". Methods ------- acceptsMultiDirDimension ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public boolean acceptsMultiDirDimension() :outertype: ArrayTypeSpec addDiffTypeSpec ^^^^^^^^^^^^^^^ .. java:method:: @Override protected void addDiffTypeSpec(SymbolTable symbolTable, SymbolTable srcSymbolTable) :outertype: ArrayTypeSpec addMultiDirDimension ^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override protected TypeSpec addMultiDirDimension(ArrayDim dimension) :outertype: ArrayTypeSpec addUsedSymbolsInType ^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public void addUsedSymbolsInType(TapList toDependsOn, SymbolTable symbolTable) :outertype: ArrayTypeSpec baseTypeName ^^^^^^^^^^^^ .. java:method:: @Override protected String baseTypeName() :outertype: ArrayTypeSpec baseTypeSpec ^^^^^^^^^^^^ .. java:method:: @Override public WrapperTypeSpec baseTypeSpec(boolean stopOnPointer) :outertype: ArrayTypeSpec buildConstantOne ^^^^^^^^^^^^^^^^ .. java:method:: @Override public Tree buildConstantOne() :outertype: ArrayTypeSpec buildConstantZero ^^^^^^^^^^^^^^^^^ .. java:method:: @Override public Tree buildConstantZero() :outertype: ArrayTypeSpec checkDimensions ^^^^^^^^^^^^^^^ .. java:method:: public void checkDimensions(Tree arrayAccessTree, SymbolTable symbolTable) :outertype: ArrayTypeSpec Tries to improve dimension info contained in this ArrayTypeSpec by incorporating info from the given arrayAccessTree. checkNoneDimensions ^^^^^^^^^^^^^^^^^^^ .. java:method:: public ArrayDim[] checkNoneDimensions(ArrayDim[] origDimensions, boolean localDecl, boolean addMultiDirDim, ArrayDim multiDirDimensionMax, String hintArrayNameInText, String hintArrayNameInIdent, Tree hintTreeSize, Tree nameTree, SymbolTable targetSymbolTable, NewSymbolHolder symbolHolder) :outertype: ArrayTypeSpec Check the given array of array-dimensions "origDimensions" for problematic cases. When necessary, builds and returns a new array of array-dimensions that is better for the symbols that use these dimensions and for their declaration instruction. Also returns a new array of dimensions when there is a vector dimension appended. Modification cases: -- orig dimension was "*" and we are targetting F90 so it must become ":" -- orig dimension was unspecified and we are building the type of a local var. -- orig dimension is known only at run-time so we can't use it for declaration. :return: the new array of array-dimensions, or none if the given array is fine. checkTypeSpecValidity ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override protected boolean checkTypeSpecValidity(TapList dejaVu) :outertype: ArrayTypeSpec collectUsedTrees ^^^^^^^^^^^^^^^^ .. java:method:: @Override public void collectUsedTrees(TapList toUsedTrees, TapList toDejaVu) :outertype: ArrayTypeSpec combineArrayWith ^^^^^^^^^^^^^^^^ .. java:method:: protected TypeSpec combineArrayWith(TypeSpec newActualTypeSpec) :outertype: ArrayTypeSpec computeSize ^^^^^^^^^^^ .. java:method:: @Override protected int computeSize() :outertype: ArrayTypeSpec containsAPointer ^^^^^^^^^^^^^^^^ .. java:method:: @Override public boolean containsAPointer() :outertype: ArrayTypeSpec containsMetaType ^^^^^^^^^^^^^^^^ .. java:method:: @Override protected boolean containsMetaType(TapList dejaVu) :outertype: ArrayTypeSpec containsUndefinedType ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public boolean containsUndefinedType() :outertype: ArrayTypeSpec containsUnknownDimension ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public boolean containsUnknownDimension() :outertype: ArrayTypeSpec copy ^^^^ .. java:method:: @Override public TypeSpec copy() :outertype: ArrayTypeSpec copyStopOnComposite ^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public TypeSpec copyStopOnComposite(Unit publishedUnit) :outertype: ArrayTypeSpec createDimensions ^^^^^^^^^^^^^^^^ .. java:method:: public static ArrayDim[] createDimensions(TapList dimsList) :outertype: ArrayTypeSpec :return: an array of dimensions from "dimsList". cumulActiveParts ^^^^^^^^^^^^^^^^ .. java:method:: @Override protected void cumulActiveParts(TapList diffInfos, SymbolTable symbolTable) :outertype: ArrayTypeSpec differentiateTypeSpec ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public WrapperTypeSpec differentiateTypeSpec(SymbolTable symbolTable, SymbolTable srcSymbolTable, int diffUnitSort, String fSuffix, boolean localDecl, boolean multiDirMode, ArrayDim multiDirDimensionMax, String hintArrayNameInText, String hintArrayNameInIdent, Tree hintArrayNameTree, Tree nameTree) :outertype: ArrayTypeSpec dimensions ^^^^^^^^^^ .. java:method:: public ArrayDim[] dimensions() :outertype: ArrayTypeSpec :return: The dimensions of the array, in the C-like order i.e. slow dimensions first. doUpdateAfterImports ^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public void doUpdateAfterImports(SymbolTable symbolTable, TapList dejaVu) :outertype: ArrayTypeSpec dump ^^^^ .. java:method:: @Override public void dump() throws java.io.IOException :outertype: ArrayTypeSpec elementType ^^^^^^^^^^^ .. java:method:: @Override public WrapperTypeSpec elementType() :outertype: ArrayTypeSpec generateTree ^^^^^^^^^^^^ .. java:method:: @Override public Tree generateTree(SymbolTable symbolTable, TapList dependsOn, TapList shortNames, boolean useShortNames, TapList dejaVu) :outertype: ArrayTypeSpec getAllDimensions ^^^^^^^^^^^^^^^^ .. java:method:: @Override public TapList getAllDimensions() :outertype: ArrayTypeSpec intToReal ^^^^^^^^^ .. java:method:: @Override public TypeSpec intToReal(TapList> dejaVu, SymbolTable symbolTable) :outertype: ArrayTypeSpec isArray ^^^^^^^ .. java:method:: @Override public boolean isArray() :outertype: ArrayTypeSpec isCharacter ^^^^^^^^^^^ .. java:method:: @Override public boolean isCharacter() :outertype: ArrayTypeSpec isDifferentiated ^^^^^^^^^^^^^^^^ .. java:method:: @Override public boolean isDifferentiated(TapList dejaVu) :outertype: ArrayTypeSpec isString ^^^^^^^^ .. java:method:: @Override public boolean isString() :outertype: ArrayTypeSpec isTarget ^^^^^^^^ .. java:method:: @Override public boolean isTarget() :outertype: ArrayTypeSpec linearizeAllDim ^^^^^^^^^^^^^^^ .. java:method:: protected ArrayDim linearizeAllDim() :outertype: ArrayTypeSpec Transforms array[n1:n2][p1:p2] into array[(n2-n1+1)*(p2-p1+1)]. localize ^^^^^^^^ .. java:method:: @Override protected TypeSpec localize(TapList> toAlreadyCopied, ToBool containsMeta) :outertype: ArrayTypeSpec modifiedBaseTypeSpec ^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public WrapperTypeSpec modifiedBaseTypeSpec() :outertype: ArrayTypeSpec needsADiffType ^^^^^^^^^^^^^^ .. java:method:: @Override public boolean needsADiffType(TapList dejaVu) :outertype: ArrayTypeSpec nestedLevelType ^^^^^^^^^^^^^^^ .. java:method:: @Override public TypeSpec nestedLevelType() :outertype: ArrayTypeSpec preciseDimensions ^^^^^^^^^^^^^^^^^ .. java:method:: @Override public TypeSpec preciseDimensions(TypeSpec complementType, TapList> dejaVu, SymbolTable symbolTable) :outertype: ArrayTypeSpec preciseSizeReferences ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void preciseSizeReferences(Tree refArrayTree, int newRefQuality) :outertype: ArrayTypeSpec Adds "size reference" info into this array type's ArrayDim. For each dimension's ArrayDim, inserts the info (if not already present with a better quality) that this dimension's size is the size of the corresponding dimension of variable "referenceName". precisionSize ^^^^^^^^^^^^^ .. java:method:: @Override public int precisionSize() :outertype: ArrayTypeSpec realToComplex ^^^^^^^^^^^^^ .. java:method:: @Override protected TypeSpec realToComplex(TapList> dejaVu, WrapperTypeSpec complexTypeSpec) :outertype: ArrayTypeSpec setDimensions ^^^^^^^^^^^^^ .. java:method:: public void setDimensions(ArrayDim[] dimensions) :outertype: ArrayTypeSpec Set the dimensions of the array. :param dimensions: The dimensions of the array, in the C-like order i.e. slow dimensions first. setElementType ^^^^^^^^^^^^^^ .. java:method:: public void setElementType(WrapperTypeSpec elementType) :outertype: ArrayTypeSpec setWrappedType ^^^^^^^^^^^^^^ .. java:method:: @Override public void setWrappedType(TypeSpec type) :outertype: ArrayTypeSpec showDimensions ^^^^^^^^^^^^^^ .. java:method:: public String showDimensions() :outertype: ArrayTypeSpec showType ^^^^^^^^ .. java:method:: @Override public String showType() :outertype: ArrayTypeSpec testComparesWith ^^^^^^^^^^^^^^^^ .. java:method:: @Override protected boolean testComparesWith(TypeSpec other, int comparison, TypeSpec toThis, TypeSpec toOther, TapList> dejaVu) :outertype: ArrayTypeSpec toString ^^^^^^^^ .. java:method:: @Override public String toString() :outertype: ArrayTypeSpec totalArrayLength ^^^^^^^^^^^^^^^^ .. java:method:: public static int totalArrayLength(TapList arrayDims) :outertype: ArrayTypeSpec :return: -1 if length is statically unknown, e.g. \ ``([3],[2:*])``\ returns -1. weakenForInference ^^^^^^^^^^^^^^^^^^ .. java:method:: @Override protected TypeSpec weakenForInference(int comparison) :outertype: ArrayTypeSpec wrappedType ^^^^^^^^^^^ .. java:method:: @Override public TypeSpec wrappedType() :outertype: ArrayTypeSpec