Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Thanks to the laws of serendipity, I just ran into the paper by Michel Hack on "On Intermediate 
Precision Requirements for Correctly-Rounding Decimal-to-Binary Floating-Point Conversion."  The 
PDF is one of the papers available at <http://www.informatik.uni-trier.de/Reports/TR-08-2004/>.  
The references are all valuable, with citation of the work of David Matula and others.  I recall 
that Guy Steele looked at this issue in the work on Common Lisp, but I no longer have source 
information.  I suspect that Java and Fortress work would address this, especially because Java 
specifies IEEE binary as the internal form.

There may be other papers in this family that are of interest in taking the bumps out of the use of 
decimal floating-point values in the persistent form of cell values in spreadsheet documents and in 
formulas having decimal-notation literal values, especially where the internal use is via 
conversion to and then from a decimal-incommensurate arithmetic.

I am changing the subject so this thread is recognized for where it has wandered. I've also 
stitched the part related to number drift and conversion fidelity back in.

 - Dennis

-----Original Message-----
From: Dennis E. Hamilton [mailto:dennis.hamilton@acm.org] 
Sent: Wednesday, June 20, 2012 10:57
To: 'Thorsten Behrens'
Cc: 'libreoffice-dev'
Subject: RE: Difficulties with Flat XML under source control

It occurs to me that Postscript and PDF have dealt with this for imaging models that work 
consistently.  Here, the "in" is to a renderer, but the model for representation of decimal 
expressions of find-sensitivity values seems to have been handled (for years).  Those 
specifications may be some help too.

 - Dennis

-----Original Message-----
From: Thorsten [mailto:netsroth@googlemail.com] On Behalf Of Thorsten Behrens
Sent: Wednesday, June 20, 2012 06:32
To: Dennis E. Hamilton
Cc: 'libreoffice-dev'
Subject: Re: Difficulties with Flat XML under source control

Dennis E. Hamilton wrote:
For out-in (which this is, presumably), you want to record a
decimal expression of the internal value that will convert back to
the exact internal value on re-input.  (The in-out case is that
the input conversion provide whatever internal representation that
will convert to the read value on re-output.  Without additional
information, it is generally very difficult to have these be the
same.)

It is also desirable, of course, that any other ODF consumer use
the same technique so that its in-out conversion satisfies the
out-in condition of the original source of the decimal expression
of the value.  

Hi Dennis,

yes - but in a first approximation, one can probably relax this a
bit (for the use case at hand): only _after_ the first save
operation this needs to hold. Also, most people would probably be
contempt with this to work for *one* ODF editing application.

It is also desirable, of course, that any other ODF consumer use
the same technique so that its in-out conversion satisfies the
out-in condition of the original source of the decimal expression
of the value.  

Note that there's a difference between spreadsheet values (for which
I think de facto the above holds true - likely everyone stores those
in IEEE doubles), and other content: consumers might employ rather
complex transformations to arrive at internal values, given e.g. a
gradient center coordinate - asking for common behaviour is very
close to asking for a common ODF application model.

Cheers,

-- Thorsten

-----Original Message-----
From: libreoffice-bounces+dennis.hamilton=acm.org@lists.freedesktop.org 
[mailto:libreoffice-bounces+dennis.hamilton=acm.org@lists.freedesktop.org] On Behalf Of Thorsten 
Behrens
Sent: Wednesday, June 20, 2012 05:49
To: Johannes Sixt
Cc: libreoffice-dev
Subject: Re: Difficulties with Flat XML under source control

Johannes Sixt wrote:
- Measurements change. E.g. (just to pick one case), in
<style:graphic-properties> the draw:visible-area-width changes from
6.088cm to 6.089cm. Is there a remedy to avoid changes of this kind?

    Ah; nasty, some rounding problem / internal representation issue -
possibly again looking at the code we could do better here to make it
more predictable; possibly using more precision we could do better
(doubles instead of floats) ?

Probably. Looking at this again, these changes seem to happen only for
draw:visible-area-*. Hence, it may also be a matter of conversion
between screen dimensions (pixels?) and cm/mm/in/etc.

Hrm, yeah - and we *really* don't want this slow drift - any chance
you can file a bug with a preferrably small sample doc?

Thanks,

-- Thorsten


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.