Re: Zahlendreher



Hi,

Stefan Ram wrote:
ram@xxxxxxxxxxxxxxxxxx (Stefan Ram) writes:
 ...
  Nimmt man "double" statt "float" so ergibt sich die
  monotone Sequenz:
 ...

Daher könnte der Effekt bei der Darstellung durch "float" entstehen.

Klar - bei double ist ja auch das Epsilon kleiner. Man müsste also einen gan anderen "Grenzbereich" als bei float untersuchen.


  Wie ich schon andeutete wird diese von der JLS anscheinend
  tatsächlich nicht mehr spezifiziert.

In der Tat...

  Natürlich ist es nicht das gleiche, ob man ein Literal gleich
  als "float" kennzeichnet oder erst nach "float" wandelt,

Ob das natürlich ist, sei mal dahin gestellt...

> aber
intern wird vielleicht der Umweg über "double" genommen.

Stimmt, ich meine das irgendwo in den Tiefen der langspec gelesen zu haben (erinnere mich aber nicht mehr, wo, weil von einem Paragraphen auf den anderen verwiesen wurde...)


  Wenn man keine "f"-Literale nimmt, sondern double-Literale mit
  "( float )" umformt, ergibt sich ebenfalls eine monotone
  Sequenz. Zum Vergleich die monotone mit "( float )" umgeformte
  Sequenz in der linken Spalte und die "f"-Literale in der
  rechten:

3d4ccccd     3d4ccccd
3d4ccccd     3d4ccccd
3d4ccccd     3d4cccce
3d4ccccd     3d4cccce
3d4ccccd     3d4cccce
3d4ccccd     3d4cccce
3d4cccce     3d4ccccd
3d4cccce     3d4ccccd
3d4cccce     3d4ccccd
3d4cccce     3d4cccce
3d4cccce     3d4cccce

Interessant!

  "round to nearest" ist im Web erklärt:

This is the default mode. It should be used unless there
is a specific need for one of the others. In this mode
results are rounded to the nearest representable value. If
the result is midway between two representable values, the
even representable is chosen. Even here means the
lowest-order bit is zero. This rounding mode prevents
statistical bias and guarantees numeric stability:
round-off errors in a lengthy calculation will remain
smaller than half of FLT_EPSILON.


http://www.gnu.org/software/libc/manual/html_node/Rounding.html

  Da steht nichts von Fehlerverteilung. Vielleicht ist das
  Verhalten der "f"-Literale so ja gar nicht beabsichtigt?

Du meinst, ein Bug!?

Ciao,
Ingo

.