XTCE 1.2 RTF Avatar
  1. OMG Issue

XTCE12 — FloatEncoding float formats -- MIL1750a, IEEE, bit size issues

  • Key: XTCE12-87
  • Legacy Issue Number: 14503
  • Status: closed  
  • Source: NASA ( Mr. James Kevin Rice)
  • Summary:

    Description Kevin Rice 2008-05-01 21:22:02 BST
    XTCE allows one to select in an attribute eithe MIL-1750A or IEEE-754 formats
    and the bitsizes 32, 64, or 128.

    This leaves out bitsize 48 for MIL-1750a – a bug.

    It also allows for combinations which are likely not legal: MIL 64, or MIL
    128.

    DEC floating point encoding must also be accounted for.

    MILSTD-1750A 16 bit integer should probably have a comment that it is not float, rather it is just signMagnitude integer encoding.

    Finally it misses IEEE extended double of 80 bits ...

  • Reported: XTCE 1.1 — Thu, 17 Sep 2009 04:00 GMT
  • Disposition: Resolved — XTCE 1.2
  • Disposition Summary:

    UPDATED - Propose to resolve the missing mappings in FloatDataEncoding

    Significant discussion has been had regarding how to address the mappings in the FloatDataEncoding. The following proposal appears to represent a consensus that balances correctness with backwards compatibility.

    First it is necessary to replace two core types. These are the FloatEncodingSizeInBitsType and FloatEncodingType. The replacements for these two types with annotation to assist in selection are as follows:

    <simpleType name="FloatEncodingSizeInBitsType">
    <restriction base="unsignedShort">
    <!-- IEEE754_2008 "half" and MILSTD_1750A -->
    <enumeration value="16">
    <annotation>
    <documentation xml:lang="en">At the time of this writing, 16 bit encoding size is only valid in cases of IEEE754 and vendor specific MILSTD_1750A variation that is not a part of the standard. This is not meant to preclude use in the event that future floating point formats may also define this value.</documentation>
    </annotation>
    </enumeration>
    <!-- IEEE754_1985 and MILSTD_1750A and DEC and IBM and TI -->
    <enumeration value="32">
    <annotation>
    <documentation xml:lang="en">At the time of this writing, 32 bit encoding size is only valid in cases of IEEE754_1985, IEEE754, MILSTD_1750A, DEC, IBM, and TI. This is not meant to preclude use in the event that future floating point formats may also define this value. The IEEE754 enumeration and the IEEE754_1985 enumeration are allowed in this case and the interpretation is the same.</documentation>
    </annotation>
    </enumeration>
    <!-- TI -->
    <enumeration value="40">
    <annotation>
    <documentation xml:lang="en">At the time of this writing, 40 bit encoding size is only valid in the case of TI. This is not meant to preclude use in the event that future floating point formats may also define this value.</documentation>
    </annotation>
    </enumeration>
    <!-- MILSTD_1750A -->
    <enumeration value="48">
    <annotation>
    <documentation xml:lang="en">At the time of this writing, 48 bit encoding size is only valid in the case of MILSTD_1750A. This is not meant to preclude use in the event that future floating point formats may also define this value.</documentation>
    </annotation>
    </enumeration>
    <!-- IEEE754_1985 and DEC and IBM -->
    <enumeration value="64">
    <annotation>
    <documentation xml:lang="en">At the time of this writing, 64 bit encoding size is only valid in cases of IEEE754_1985, IEEE754, DEC, and IBM. This is not meant to preclude use in the event that future floating point formats may also define this value. The IEEE754 enumeration and the IEEE754_1985 enumeration are allowed in this case and the interpretation is the same.</documentation>
    </annotation>
    </enumeration>
    <!-- IEEE754_1985 -->
    <enumeration value="80">
    <annotation>
    <documentation xml:lang="en">At the time of this writing, 80 bit encoding size is only valid in the case of IEEE754_1985. This is not meant to preclude use in the event that future floating point formats may also define this value.</documentation>
    </annotation>
    </enumeration>
    <!-- IEEE754_1985 -->
    <enumeration value="128">
    <annotation>
    <documentation xml:lang="en">At the time of this writing, 128 bit encoding size is only valid in the case of IEEE754_1985 and IEEE754. This is not meant to preclude use in the event that future floating point formats may also define this value. The IEEE754 enumeration and the IEEE754_1985 enumeration are allowed in this case and the interpretation is the same.</documentation>
    </annotation>
    </enumeration>
    </restriction>
    </simpleType>
    <simpleType name="FloatEncodingType">
    <restriction base="string">
    <enumeration value="IEEE754_1985"/>
    <enumeration value="IEEE754"/>
    <enumeration value="MILSTD_1750A"/>
    <enumeration value="DEC"/>
    <enumeration value="IBM"/>
    <enumeration value="TI"/>
    </restriction>
    </simpleType>

  • Updated: Tue, 10 Jul 2018 14:22 GMT