AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Noch'n Bug in Tokyo Community Edition? Betrifft denormale Fließkommazahlen und ldexp.
Thema durchsuchen
Ansicht
Themen-Optionen

Noch'n Bug in Tokyo Community Edition? Betrifft denormale Fließkommazahlen und ldexp.

Ein Thema von gammatester · begonnen am 20. Jul 2018 · letzter Beitrag vom 20. Jul 2018
Antwort Antwort
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#1

Noch'n Bug in Tokyo Community Edition? Betrifft denormale Fließkommazahlen und ldexp.

  Alt 20. Jul 2018, 16:29
Delphi-Version: 10.2 Tokyo
Ich habe noch ein wenig mehr in system.math gestöbert und dabei folgendes entdeckt (ich habe schon eine Frage auf https://stackoverflow.com/questions/...umbers-to-zero gestellt, weil es wieder etwas esoterisch ist).

Wenn jemand hier das bestätigen kann, und es nicht as-specified ist, würde ich noch einen QC-Issuereport schreiben.

Diese Beobachtung hätte mehr Auswirkungen als der AES-NI-Bug, da die gesamte Arithmetik betroffen wäre, denn denormale Fließkommazahlen sind ein wichtiger kleiner Baustein für genaue Arithmetik.

Geändert von gammatester (20. Jul 2018 um 19:52 Uhr) Grund: Mehr Infos im Titel.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#2

AW: Noch'n Bug in Tokyo Community Edition?

  Alt 20. Jul 2018, 16:43
Das kann gar nicht as designed sein, da das Verhalten bei 32 und 64 Bit unterschiedlich ist.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#3

AW: Noch'n Bug in Tokyo Community Edition?

  Alt 20. Jul 2018, 16:55
Das kann gar nicht as designed sein, da das Verhalten bei 32 und 64 Bit unterschiedlich ist.
Na ja, es gibt ja wesentliche Unterschiede bei der Fließkommaarithmetik von 32- und 64-Bit: 64-Bit arbeitet mit SSE und hat keine native 10-Byte-Extended.

Außerdem scheint bei CPUARM irgendeine Besonderheit vorzuliegen und man wollte es einheitlich machen. Das glaube ich zwar nicht, habe aber keine Stelle im Sourcecode gefunden, wo explizit ein Flush-to-Zero eingebaut ist.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#4

AW: Noch'n Bug in Tokyo Community Edition?

  Alt 20. Jul 2018, 17:00
Das glaube ich zwar nicht, habe aber keine Stelle im Sourcecode gefunden, wo explizit ein Flush-to-Zero eingebaut ist.
Das wird auch nicht explizit gemacht, sondern entsteht durch die Multiplikation zweier sehr kleiner Zahlen. Man kann das im Debugger nachvollziehen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#5

AW: Noch'n Bug in Tokyo Community Edition?

  Alt 20. Jul 2018, 17:09
[QUOTE=Uwe Raabe;1408125]
Das wird auch nicht explizit gemacht, sondern entsteht durch die Multiplikation zweier sehr kleiner Zahlen. Man kann das im Debugger nachvollziehen.
Ich würde hier dem Debugger nicht unbedingt trauen, was wird denn für x nach x := PDouble(@twopm1030)^ angezeigt?

Interessanterweise gibt es bei FPC-64 noch eine zusätzliche Variante: x*x wird richtig berechnet, aber x := ldexp(1,-1030) crasht mit EOverflow: Floating point overflow

Edit:
Da scheint noch mehr faul zu sein. Und vermutlich liegt das Problem in ldexp. Ich habe jetzt den Debugger angeworfen und x ist korrekt angezeigt nach der Konstantenzuweisung. Allerdings hat er mit auch x:=ldexp(1,-510) als 0 angezeigt und das wird durch writeln bestätigt.

Die 32-Bit-Version zeigt richtig an 9.32292591400026E-0156.

Geändert von gammatester (20. Jul 2018 um 17:21 Uhr)
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#6

AW: Noch'n Bug in Tokyo Community Edition?

  Alt 20. Jul 2018, 19:02
Wie scho im letzten Beitrag gesagt, ist ldexp das Problem: Es wird die Overload-Version für Single aufgerufen. Das wirkt sich nur für 64-Bit aus, weil die 32-Bit-Overloads praktisch identisch sind.

Wie kann man eigenlich in die Debg-DCUs rein-steppen?
Ich habe Linking with Debug und Debug-Configuration eingestellt, aber der Debugger verweigert die Sourcecode-Anzeige. Ich bin mir aber sicher, daß die Singleversion genommen wird, weil ich im CPU-Fenster sehe
Delphi-Quellcode:
call TSingleHelper.SpecialType
...
call TSingleHelper.BuildUp
Werde dann mal einen weiteren Issue-Report schreiben, letztlich geht es also 'nur' um eine Inkonstistenz zwischen 32- und 64-Bit.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#7

AW: Noch'n Bug in Tokyo Community Edition?

  Alt 20. Jul 2018, 19:13
Wie kann man eigenlich in die Debg-DCUs rein-steppen?
Projektoptionen -> Delphi-Compiler -> Compilieren -> Mit Debug-DCUs
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#8

AW: Noch'n Bug in Tokyo Community Edition?

  Alt 20. Jul 2018, 19:22
Wie kann man eigenlich in die Debg-DCUs rein-steppen?
Projektoptionen -> Delphi-Compiler -> Compilieren -> Mit Debug-DCUs
Danke, hat auf Anhieb funktioniert!
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Noch'n Bug in Tokyo Community Edition?

  Alt 20. Jul 2018, 19:42
Auch bei Fehlermeldungen bitte ich den Themen-Titel präziser zu wählen. Danke.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#10

AW: Noch'n Bug in Tokyo Community Edition? Betrifft denormale Fließkommazahlen und ld

  Alt 20. Jul 2018, 19:56
Auch bei Fehlermeldungen bitte ich den Themen-Titel präziser zu wählen. Danke.
Zu Befehl, passt es so?

Edit: Der QC-Eintrag ist https://quality.embarcadero.com/browse/RSP-20925

Geändert von gammatester (20. Jul 2018 um 21:30 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz