[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [office-comment] Integer Overflow and number Types in ODF
2008/7/7 David A. Wheeler <dwheeler@dwheeler.com>: >> The IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std >> 754-1985) implements various formats for representing floating-point >> values. ODF seems to omit any clear specification in this regard, and >> also seems to imply that only one format should be used. > > If you can point to a place where it _requires_ one format, let me know; > that should be removed. > > We can't reasonably reference the binary format; at no time do we > use a binary format. And I don't think we can actually mandate the > exact IEEE rules for floating-point operations, either. How about the following, from another spec that does mandate ANSI/IEEE 754-1985, is implemented and works. On overflow and underflow situations during arithmetic operations conforming implementations ·must· behave as follows: * For xs:float and xs:double operations, overflow behavior ·must· be conformant with [IEEE 754-1985]. This specification allows the following options: Raising an error [err:FOAR0002] via an overflow trap. Returning INF or -INF. Returning the largest (positive or negative) non-infinite number. * For xs:float and xs:double operations, underflow behavior ·must· be conformant with [IEEE 754-1985]. This specification allows the following options: Raising an error [err:FOAR0002] via an underflow trap. Returning 0.0E0 or +/- 2**Emin or a denormalized value; where Emin is the smallest possible xs:float or xs:double exponent. * For xs:decimal operations, overflow behavior ·must· raise an error [err:FOAR0002]. On underflow, 0.0 must be returned. * For xs:integer operations, implementations that support limited-precision integer operations · must· select from the following options: They ·may· choose to always raise an error [err:FOAR0002]. They ·may· provide an ·implementation-defined· mechanism that allows users to choose between raising an error and returning a result that is modulo the largest representable integer value. See [ISO 10967]. I think that is clear? regards -- Dave Pawson XSLT XSL-FO FAQ. http://www.dpawson.co.uk
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]