Bug bei Float Variablen?

Fragen und Bugreports zur PureBasic 4.0-Beta.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Kaeru Gaman hat geschrieben:(gibts da auch source von?)
Ja, PBOSL ;-) .
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Beitrag 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.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag 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.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag 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.
Bild
bommelid
Beiträge: 17
Registriert: 03.04.2006 22:22

Beitrag 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?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
bommelid
Beiträge: 17
Registriert: 03.04.2006 22:22

Beitrag 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.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Quads SIND in PB arschlahm /:->
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag 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?
Bild
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag 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.
Gesperrt