ASM - fyl2x langsammer als Log10 oder Log ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: ASM - fyl2x langsammer als Log10 oder Log ?

Beitrag von NicTheQuick »

ccode_new hat geschrieben:
Die letzte Dezimal-Stelle (4) ist falsch, es müsste gerundet 3 sein (29...).
Wie kommst du denn darauf ?
Wolfram Alpha macht es richtig.
Bild
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: ASM - fyl2x langsammer als Log10 oder Log ?

Beitrag von ccode_new »

Ah ok!

dekadischer Logarithmus: Log10((54321.123456789)
Log(54321.123456789) / Log(10)

-> Ach diese Ungenauigkeiten: Alles nach: 4.73496874334237 ist Blödsinn.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
Helle
Beiträge: 566
Registriert: 11.11.2004 16:13
Wohnort: Magdeburg

Re: ASM - fyl2x langsammer als Log10 oder Log ?

Beitrag von Helle »

Der Wert 4.734968743342376 ist ja o.K., Double (64-Bit) liefert in diesem Bereich 16 gültige Ziffern (signifikante Digits). Der Log10-Rückgabe-Wert ist $4012F09BA570F36E und das ergibt 4.7349687433423763849305032636038959026336669921875, aber die Ziffern ab ...376 sind nur schmückendes Beiwerk und nicht relevant (könnten aber einen Übertrag auf die 16.Ziffer bewirken).
Als Erklärung für die hohen Log/Log10-Zeiten wie bei ccode_new hatte ich vermutet/gehofft, das da andere, genauere Algorithmen im Spiel sind; offensichtlich aber nicht. Wobei StrD() eh alles wieder bügelt...
Es ist nicht so einfach :mrgreen: !
Ist ja auch etwas OT.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: ASM - fyl2x langsammer als Log10 oder Log ?

Beitrag von STARGÅTE »

Helle hat geschrieben:Ist ja auch etwas OT.
Finde ich garnicht. Ich finde es sehr interessant, diese ganzen Unterschiede zu sehen.
Und auch die Frage auf Genauigkeit ist auch für mich relevant.

Wenn sich jetzt herausstellt, dass Log10 oder Log von PB unter Windows schneller sind, aber hin und wieder ungenaue Stellen am Ende haben, dann muss ich so oder so Log2 nehmen mit FYL2X.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Helle
Beiträge: 566
Registriert: 11.11.2004 16:13
Wohnort: Magdeburg

Re: ASM - fyl2x langsammer als Log10 oder Log ?

Beitrag von Helle »

Hmmm, ohne 80-Bit-Programmierung wird das aber auch nicht genauer...
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: ASM - fyl2x langsammer als Log10 oder Log ?

Beitrag von ccode_new »

Mein Wunsch wären größere/genauere Fließkomma Standard-Typen bei PureBasic (long double, etc.) (mit welchen aber auch intern gerechnet werden muss.)
:mrgreen:
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: ASM - fyl2x langsammer als Log10 oder Log ?

Beitrag von STARGÅTE »

Helle hat geschrieben:Hmmm, ohne 80-Bit-Programmierung wird das aber auch nicht genauer...
Es geht mir nicht unbedingt darum, dass ich mehr stellen brauche, aber wenn ich eine Float oder Double nutze, dann sollte die entsprechenden Stellen der bereitgestellten Präzision auch stimmen.

ccode_new hat geschrieben:Mein Wunsch wären größere/genauere Fließkomma Standard-Typen bei PureBasic (long double, etc.) (mit welchen aber auch intern gerechnet werden muss.)
:mrgreen:
Naja aber wirklich brauchen tut man das im "alltäglichen Gebrauch" nicht wirklich.
Und an den stellen, dann denen Double nicht reichen, reichen (end Endeffekt) auch keine long doubles oder mehr.
Dann muss man selbst etwas schreiben (*grins*) oder auf vorhandenes wie GMP zurückgreifen.
Zuletzt geändert von STARGÅTE am 05.05.2018 21:43, insgesamt 1-mal geändert.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: ASM - fyl2x langsammer als Log10 oder Log ?

Beitrag von ccode_new »

An STARGÅTE:

Jepp, brauchen tut man dat net wirklich tuen tuen.

Aber wenn dat better klappen tuen täte mit de Berechnung, wäre dat auch net schlecht.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: ASM - fyl2x langsammer als Log10 oder Log ?

Beitrag von ccode_new »

Hallo STARGÅTE,

deine Log2-Funktion ist unter Linux nur so schnell weil sie nicht korrekt funktioniert.
Übergibt man deiner Log2-Funktion statt einem Double-Wert einen Float-Wert ergibt sich folgendes:

Log2() --> 102.4ns
Log10() --> 102.1ns
Log() --> 94.7ns

(ohne Debugger)
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Antworten