Does Python have a long floating data type please?
David C. Ullrich
ullrich at math.okstate.edu
Sat Apr 1 14:07:35 EST 2000
Tim Peters wrote:
> [David C. Ullrich, notes some examples of dubious intervals computed
> by Jurjen N.E. Bos's real.py module]
One was dubious, the other was wrong. (Never mind...)
> Yes, and I've posted others in the past (including cases that aren't near
> 0).
Musta been before my time.
> Jurjen used a very clever storage-efficient representation, but didn't
> record correspondingly clever correctness arguments <wink>. Sometimes it's
> easy to see a bug, sometimes I have no idea what he was thinking.
>
> This isn't unusual for these kinds of pkgs, though! Correctness proofs can
> be quite involved. Valérie Ménissier-Morain has submitted a 59-page article
> giving correctness proofs for her version of this quest, available somewhere
> more-or-less obvious under
>
> http://pauillac.inria.fr/~menissier/
>
> > ... - at this point I decided to give up on real.py and make my own.
>
> Which is why there are a dozen packages like this out in the world each with
> its own set of unique subtle bugs <wink>. Since this stuff runs too slow to
> use for truly large problems anyway, I never understood why pkgs try to
> conserve storage at the cost of vastly subtler reasoning.
Exactly what convinced me that a real should be a pair of longRationals
(giving a lower bound and an upper bound for the "real" value). At least
the basic arithmetic operations seem simple enough that a person could
get them right, and they'd be obviously right.
> Guess it's seen
> as a challenge.
>
> personally-more-excited-by-things-that-are-obviously-right-than-by-
> things-that-aren't-obviously-wrong-ly y'rs - tim
class real:
def __init__(self, l, u):
self.l = l
self.u = u
def __add__(self, other):
return real(self.l + other.l, self.u + other.u)
Pretty exciting stuff. (Well, the correctness of __mul__
might not be obvious at one glance like __add__ above,
because of what happens if l < 0 and u > 0, but it should
nonetheless be extremely trivial to verify.)
DU
More information about the Python-list
mailing list