Forum: Sonstige Fragen zu Delphi
by Andreas13,
7. Aug 2020
Gerade fällt mir eine wichtige Frage ein: Kompilierst Du für die 32-Bit-Plattform oder für 64-Bit?
Bei 64-Bit gilt LEIDER nämlich
Type
Extended = Double;
Forum: Sonstige Fragen zu Delphi
by Andreas13,
7. Aug 2020
Wenn ich meine Zahlen mit Deinen vergleiche, habe ich den Verdacht, daß JclMath.ArcCsc(x) nur mit Double-Zahlen arbeitet, oder wenigstens zeigt CheckEquals(..) nur Double-Ergebnisse an.
Forum: Sonstige Fragen zu Delphi
by Andreas13,
7. Aug 2020
Hallo,
für dein Beispiel x:= -3.98; sehen meine Ergebnisse wie folgt aus:
AMath.ArcCsc(-3.98) = -0.25397795477090606400
Math.ArcCsc(-3.98) = -0.25397795477090606400
Diff: AMath - Math = -2.71050543121376E-0020 // Fazit: intern sind sie doch unterschiedlich!
Der exakte Wert mittels Multipräzisions-Arithmetik (die ersten 50 Stellen) lautet:
ArcCsc(-3.98) exakt = ...
Forum: Sonstige Fragen zu Delphi
by Andreas13,
7. Aug 2020
Ja, natürlich: Wenn Du die Toleranz verkleinerst, wird eine noch geringere Abweichung als bedeutsam ausgewiesen. Vermutlich sind grobe Fehler in JclMath vorhanden. Könntest Du bitte den Quellcode der Implementierung der Funktion JclMath.ArcCsc(x: Extended) posten? Und Dein konkretes Zahlenbeispiel, in dem die falschen Quadranten rauskommen?
Gruß, Andreas