Seite 2 von 4
Verfasst: 21.08.2006 12:47
von DarkDragon
Kaeru Gaman hat geschrieben:(gibts da auch source von?)
Ja, PBOSL

.
Verfasst: 21.08.2006 12:47
von PureLust
Aber Quads als Fixkomma zu nehmen (also mit separater Kommaverschiebung z.B. per >> oder << ) sind verdammt langsam.
Da sind Doubles um einiges schneller.
Verfasst: 21.08.2006 21:28
von Andre
@bommelid: da schön öfters gefragt, gibts zu diesem Thema auch eine Information im PB-Handbuch. Schau mal im Kapitel "Variablen" an das Ende der Seite.
Verfasst: 22.08.2006 01:43
von MVXA
Wenn die BigNum Lib mit Strings rechnet, dann müsste man die Lib in
BigShit umbenennen

. Man kann sowas auch ganz einfach anders
lösen und das Resultat wäre auch noch wesentlich schneller.
Verfasst: 22.08.2006 09:14
von bommelid
Na dann nehme ich halt Fixpoint. Das hab ich, glaube ich zumindest, das letzte mal auf dem C64 gemacht. Damals für eine Basicerweiterung für Grafikbefehle. War sogar richtig fix das Ganze. Nur ob das hier auch so wird?
Verfasst: 22.08.2006 10:36
von Kaeru Gaman
PureLust hat geschrieben:Aber Quads als Fixkomma zu nehmen (also mit separater Kommaverschiebung z.B. per >> oder << ) sind verdammt langsam.
Da sind Doubles um einiges schneller.
wus? wo sind die "verdammt" langsam.
du rechnest von vorne herein mit der anderen einheit.
das ergebnis wird lediglich mit einem komma ausgegeben, sonst nix.
um bei dem euro-beispiel zu bleiben:
innerhalb deines programms wird niemals in euro gerechnet, immer nur mit hundertstel Cent.
die Euro stehen nur dahinter, wenn du bei der ausgabe aufm bildschirm
die letzten beiden stellen weglässt, und die dritte und vierte durchn komma abtrennst.
das ist nur optisch.
@bommelid
> das letzte mal auf dem C64 gemacht.
hu? dort mit strings oder was?
der C64 hatte doch grundsätzlich Floats, jedenfalls im standard-interpreter...
oder hast du 8bit-ASM cecodet...
@Andre
meinst du in der Help?
muss ich die aktuellste runterladen?
(wie gesagt, die formulierung "unbegrenzt" bei wertebereich ist schlichtweg falsch, auch der exponent hat eine grenze.)
Verfasst: 22.08.2006 14:22
von bommelid
Der C64 hatte auch die Möglichkeit mit Floats in Assembler zu rechenen. Das war aber in etwa so schnell, wie die Sachen mit dem Taschenrechner einzutippen.
Falls Du noch so ein Teil rumstehen hast, kannst Du ja spaßenshalber auch mal eine Kreisroutine in Basic schreiben und dazu sin()/cos() benutzen. Das dauert ewig. aber zum Glück gibts da auch andere Wege.
Verfasst: 22.08.2006 17:20
von remi_meier
Quads SIND in PB arschlahm

Verfasst: 23.08.2006 05:58
von MVXA
Kann man eigentlich für "Quads" eigentlich auch die MMX Extension nutzen?
Die MMX Register sind doch auch 64-Bit breit und mit MMX dürfte es doch
schneller sein oder irre ich mal wieder?
Verfasst: 23.08.2006 16:21
von remi_meier
Ja geht:
Code: Alles auswählen
a.q = 1314654654567
b.q = -33464646464643347
pbres.q = a + b
asmres.q
!MOVQ mm0, qword[v_a]
!PADDQ mm0, qword[v_b]
!MOVQ qword[v_asmres], mm0
!EMMS
Debug pbres
Debug asmres
Ist aber nur schneller, wenn du nicht oft zwischen FPU und MMX wechselst
und wenn du viele MMX-Rechnungen am Stück durchführen kannst.
Obwohl, man müsste einen Test machen, ev. ist es sogar so schneller als
PB.