.. 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 ToObject .. java:import:: fr.inria.tapenade.utils Tree PrimitiveTypeSpec ================= .. java:package:: fr.inria.tapenade.representation :noindex: .. java:type:: public final class PrimitiveTypeSpec extends TypeSpec A primitive type. Constructors ------------ PrimitiveTypeSpec ^^^^^^^^^^^^^^^^^ .. java:constructor:: public PrimitiveTypeSpec(String name) :outertype: PrimitiveTypeSpec Creates a new primitive type with the given "name". Methods ------- acceptsMultiDirDimension ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public boolean acceptsMultiDirDimension() :outertype: PrimitiveTypeSpec addWith ^^^^^^^ .. java:method:: protected TypeSpec addWith(WrapperTypeSpec type) :outertype: PrimitiveTypeSpec Composition rules for PrimitiveTypeSpec: .. parsed-literal:: We start from the following definitions: ?INTEGER == INTEGER or REAL or COMPLEX ?REAL == REAL or COMPLEX ?COMPLEX == COMPLEX (therefore ?COMPLEX is useless) Composition rules are symmetric, but for implementation, we make them assymetric to keep/return the left type ("this") whenever possible. ([llh] Not sure this is a good choice. Maybe the result should share with neither left nor right type?) [code 0] is for other primitive types (Strings, Fortran Logicals, etc...) [code 1] INTEGER addWith INTEGER => INTEGER [code 1] INTEGER addWith ?INTEGER => ?INTEGER [code 1] INTEGER addWith REAL => REAL [code 1] INTEGER addWith ?REAL => ?REAL [code 1] INTEGER addWith COMPLEX => COMPLEX [code 2] ?INTEGER addWith ?INTEGER => ?INTEGER [code 2] ?INTEGER addWith REAL => ?REAL [code 2] ?INTEGER addWith ?REAL => ?REAL [code 2] ?INTEGER addWith COMPLEX => COMPLEX [code 3] REAL addWith REAL => REAL [code 3] REAL addWith ?REAL => ?REAL [code 3] REAL addWith COMPLEX => COMPLEX [code 4] ?REAL addWith ?REAL => ?REAL [code 4] ?REAL addWith COMPLEX => COMPLEX [code 5] COMPLEX addWith COMPLEX => COMPLEX baseTypeName ^^^^^^^^^^^^ .. java:method:: @Override protected String baseTypeName() :outertype: PrimitiveTypeSpec buildConstantOne ^^^^^^^^^^^^^^^^ .. java:method:: @Override public Tree buildConstantOne() :outertype: PrimitiveTypeSpec buildConstantZero ^^^^^^^^^^^^^^^^^ .. java:method:: @Override public Tree buildConstantZero() :outertype: PrimitiveTypeSpec buildRealConstantZero ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public static Tree buildRealConstantZero() :outertype: PrimitiveTypeSpec :return: a Tree that is a good enough zero in the given environment. cloneAsUndefinedNumeric ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override protected TypeSpec cloneAsUndefinedNumeric(boolean undefined) :outertype: PrimitiveTypeSpec computeSize ^^^^^^^^^^^ .. java:method:: @Override protected int computeSize() :outertype: PrimitiveTypeSpec double:8 float:4 long:8 int:4 short:2 byte:1 char:2 boolean:4 reference:4. copy ^^^^ .. java:method:: @Override public TypeSpec copy() :outertype: PrimitiveTypeSpec :return: a copy of this type. copyStopOnComposite ^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public TypeSpec copyStopOnComposite(Unit publishedUnit) :outertype: PrimitiveTypeSpec 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: PrimitiveTypeSpec dump ^^^^ .. java:method:: @Override public void dump() throws java.io.IOException :outertype: PrimitiveTypeSpec generateTree ^^^^^^^^^^^^ .. java:method:: @Override public Tree generateTree(SymbolTable symbolTable, TapList dependsOn, TapList shortNames, boolean useShortNames, TapList dejaVu) :outertype: PrimitiveTypeSpec intToReal ^^^^^^^^^ .. java:method:: @Override public TypeSpec intToReal(TapList> dejaVu, SymbolTable symbolTable) :outertype: PrimitiveTypeSpec isAugmentedDouble ^^^^^^^^^^^^^^^^^ .. java:method:: public boolean isAugmentedDouble() :outertype: PrimitiveTypeSpec :return: True if this type is the augmented type for overloading-based AD. isCharacter ^^^^^^^^^^^ .. java:method:: @Override public boolean isCharacter() :outertype: PrimitiveTypeSpec isComplex ^^^^^^^^^ .. java:method:: public boolean isComplex() :outertype: PrimitiveTypeSpec :return: True if this type is "complex". isDifferentiated ^^^^^^^^^^^^^^^^ .. java:method:: @Override public boolean isDifferentiated(TapList dejaVu) :outertype: PrimitiveTypeSpec isInteger ^^^^^^^^^ .. java:method:: public boolean isInteger() :outertype: PrimitiveTypeSpec :return: True if this type is "integer". isProbablyRealOrComplex ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean isProbablyRealOrComplex() :outertype: PrimitiveTypeSpec :return: True if this type, possibly yet undefined, can/will be either "float" or "complex". isReal ^^^^^^ .. java:method:: public boolean isReal() :outertype: PrimitiveTypeSpec :return: True if this type is "float". isRealOrComplex ^^^^^^^^^^^^^^^ .. java:method:: public boolean isRealOrComplex() :outertype: PrimitiveTypeSpec :return: True if this type is either "float" or "complex". isUndefinedNumeric ^^^^^^^^^^^^^^^^^^ .. java:method:: @Override protected boolean isUndefinedNumeric() :outertype: PrimitiveTypeSpec localize ^^^^^^^^ .. java:method:: @Override protected TypeSpec localize(TapList> toAlreadyCopied, ToBool containsMeta) :outertype: PrimitiveTypeSpec name ^^^^ .. java:method:: public String name() :outertype: PrimitiveTypeSpec The name of this primitive type. needsADiffType ^^^^^^^^^^^^^^ .. java:method:: @Override public boolean needsADiffType(TapList dejaVu) :outertype: PrimitiveTypeSpec precisionSize ^^^^^^^^^^^^^ .. java:method:: @Override public int precisionSize() :outertype: PrimitiveTypeSpec realToComplex ^^^^^^^^^^^^^ .. java:method:: @Override protected TypeSpec realToComplex(TapList> dejaVu, WrapperTypeSpec complexTypeSpec) :outertype: PrimitiveTypeSpec setPrimitiveTypeSize ^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void setPrimitiveTypeSize(int primitiveTypeSize) :outertype: PrimitiveTypeSpec The size in bytes of this primitive type. setUndefinedNumeric ^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override protected void setUndefinedNumeric(boolean value) :outertype: PrimitiveTypeSpec showType ^^^^^^^^ .. java:method:: @Override public String showType() :outertype: PrimitiveTypeSpec testComparesWith ^^^^^^^^^^^^^^^^ .. java:method:: @Override protected boolean testComparesWith(TypeSpec other, int comparison, TypeSpec toThis, TypeSpec toOther, TapList> dejaVu) :outertype: PrimitiveTypeSpec toString ^^^^^^^^ .. java:method:: @Override public String toString() :outertype: PrimitiveTypeSpec weakenForInference ^^^^^^^^^^^^^^^^^^ .. java:method:: @Override protected TypeSpec weakenForInference(int comparison) :outertype: PrimitiveTypeSpec