On Apr 30, 3:03 am, Bill Hart <[EMAIL PROTECTED]> wrote:
> Paul Zimmermann commented to me that he doubts qd has proofs of
> correctness associated with it, as mpfr does.
>
> The main advantage of qd is that it is a fixed precision package,
> which is faster than multiprecision but subject to overflow if not
> used correctly.
>
> If a port of mpfr were created to be built on the new fmpz type in the
> mpir package we want to create to replace GMP, arithmetic for small
> floats may be considerably faster, but in general you will never beat
> a fixed precision package for small precision. Someone ought to figure/
> find out which parts of qd have proofs available and write them for
> the cases where they are not. Writing proofs for the transcendental
> functions may be quite hard, but it should be straightforward to
> produce them for the basic arithmetic operations, and indeed this is
> what we should be using qd for in SAGE in my opinion.
>
> Often getting a few extra bits of precision can add nearly a factor of
> two in time since the number of branches and floating point operations
> essentially doubles. This also happens in the use of floating point to
> do precomputed inverses, as happens in FLINT. Packages can offer both
> options if this is practical, but this is not a matter of errors vs
> speed. It is a matter of required precision vs speed.
>
> Bill.
>
> On 29 Apr, 15:41, "William Stein" <[EMAIL PROTECTED]> wrote:
>
> > On Tue, Apr 29, 2008 at 1:46 AM, mabshoff
>
> > <[EMAIL PROTECTED]> wrote:
>
> > >  On Apr 29, 10:33 am, Francois <[EMAIL PROTECTED]> wrote:
> > >  <SNIP>
>
> > >  Hi Francois,
>
> > >  > > Once you get some answer from upstream please open a ticket. I find 
> > > it
> > >  > > odd that the defaults are this way to say the least.
>
> > >  > I did email the author about the precision here is what he has to say:
>
> > >  > For ieee-add, it all depends on what kind of error bound you need.
> > >  > If enabled, the error satisfies
>
> > >  >   |e| <= |a+b| * epsilon
>
> > >  > It not enabled, the error satisfies
>
> > >  >   |e| <= epsilon * max (|a|, |b|)
>
> > >  > For most uses the second one is just fine, but some times one needs
> > >  > the
> > >  > first one.
>
> > >  > Sloppy-mul and sloppy div usually degrades by few bits, so maybe you
> > >  > lose a digit of accuracy.  For double-double, the degredation is
> > >  > smaller.
>
> > >  Ok. Thanks for finding out.
>
> > >  > ================
> > >  > The answer is not qualified by processors. He didn't say anything
> > >  > about performance (I asked).
>
> > >  Ok.  Is there anybody out there who can run some quick test with a
> > >  decent runtime using quaddouble only in a tight loop, preferably in
> > >  pure C? We can pay in credit ;)
>
> > By the way, my understanding is that by far the main advantage of
> > quaddouble over mpfr is that it uses a very simple data structure,
> > which makes quaddouble more suitable for numerical linear algebra and
> > applications that involve supercomputing.
>
> >  -- William

If you read the pdf document that comes with qd it states in chapter
9,
that they don't have a proof of correctness for the basic routines.
They rely
on an assumption that has apparently not been proved to be valid.
The document includes a proof on the error bound of the quad-double
addition.

Francois
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to