Rechengenauigkeit erhöhen
Übersicht

Lutz-DevelopmentBetreff: Rechengenauigkeit erhöhen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich bräuchte für mathematische Operationen eine höhere Rechengenauigkeit als Float. Blitz unterstützt von Haus aus jedoch nicht einmal double ![]() Gibt es da eine DLL oder ähnliches, dass mindestens Double (oder sogar noch mehr) als Datentyp erlaubt? Vielen Dank für eure Hilfe. Gruß, Thomas |
||
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
eine DLL dafür kenne ih nicht, aber mit Binären Operationen könnte man eine Präzision weit über einen Double hinbekommen. Es wird wohl nur sehr viel langsamer werden, da die FPU dann nichtmehr im Spiel ist.
Eine Recherche über Logische Schlatungen etc. solte darüber Aufschluss geben. |
||
Lutz-Development |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
danke für die Antwort, aber Geschwindigkeit ist wohl auch unerlässlich. Wie müsste eine DLL aussehen, damit man neue mathematische Funktionen einbauen kann? Oder könnte man sich auch selbst mit Strings da was zusammenbasteln (oder wäre das wieder zu langsam?). Gruß, Thomas |
||
noir |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Lutz-Development welche bb version hast du?
wenn du bb3d, bb+ hast kannst du userlibs benutzen. du könntest dir zwar mit einer dll einen genaueren wert berechnen lassen, aber was bringt es dir? bb kann diesen dann nicht gebrauchen, du könntest ihn dann nur als string oder halt wieder als floatwert zurückgeben. |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
wird wohl nur mit strings gehen... oder mit 2 integer (=64bit)
du übergibst 2 32-bit-integer an eine DLL so daraus wird ein double errechnet. damit kannst du machen was du möchtest. Dann kannst du wieder 2 integer zurückliefern... um ergebnis anzuzeigen kannst du es in string umwandeln... naja alles so ein mischmasch... man muss es sich richtig ausdenken... bbmax unterstützt doubles übrigens direkt... PS: http://de.wikipedia.org/wiki/IEEE_754 http://de.wikipedia.org/wiki/Gleitkommazahl http://www.telecom.fh-htwchur....tkomma.htm |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
Lutz-Development |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich habe BB+. Vielleicht werde ich das ganze implementieren, vielleicht auch nicht - hab nicht mehr so viel Zeit dafür ![]() Gruß, Thomas |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe mir diese String Rechnen Functionen geschrieben,
allerdings sind die nicht optimiert, aber dafür unendlichgenau (was der Rechner so noch schafft)! hier mal mein Mini Taschenrechner, war nur zu Testzwecken: http://people.freenet.de/ralli...ionGui.exe die Speed wird angezeigt in der Statusleiste beim Teilen wird ein Oberstrich evt für Periode angezeigt zb 39/38 In diesem Prog rechne ich mit der + und - Function die eigens dafür geschrieben worden ist! http://people.freenet.de/ralli...vHanoi.exe |
||
[BB2D | BB3D | BB+]
|
Lutz-Development |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
könnte ich vielleicht die Libs dazu bekommen? Gruß, Thomas |
||
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn es für ein spiel ist wo mehr als 100 solcher werte notwendig sind, würd ich mit string-rechenfunktionen gar nicht anfangen.
vielleicht kannst du integer und float kombinieren. z.b.: über integer berechnest du grob die position und mit float gibst du die position exakt an. addieren und subtrahieren sollte kein prob. sein, aber frag mich nicht wie man solche mischwerte multipliziert. mfg stfighter |
||
Denken hilft! |
Demon |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Fixed Point könnte helfen ![]() Du nimmst einfach Integer und benutzt z.B. die ersten 16 Bit als Vorkommastellen, dann hast du zumindest da 100% Genauigkeit aber nicht die Reichweite wie bei Float. |
||
Don't drink and derive! |
Lutz-Development |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ist kein Spiel, sondern ein Mathe-Programm mit 2D-Ausgabe ![]() Es sind allerdings Millionen von Berechnungen nötig... ![]() Gruß, Thomas |
||
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie wärs mit java? ![]() (always use the right tool for the right work) mfg stfighter |
||
Denken hilft! |
Lutz-Development |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich brauche GUI + 2D Ausgabe. Und da habe ich Java zwar ausprobiert, aber wegen der Komplexität verworfen. BlitzBasic hingegen war optimal dafür.
Das Programm steht im Prinzip schon, ich würde mir für manche Rechenoperationen halt eine höhere Genauigkeit wünschen. Gruß, Thomas |
||
Demon |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In welchem Zahlenbereich befinden sich deine Rechnungen denn (Anzahl der Vorkommastellen/Nachkommastellen)? | ||
Don't drink and derive! |
- Zuletzt bearbeitet von Demon am Sa, Jan 08, 2005 13:39, insgesamt einmal bearbeitet
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich bin hier zwar im falschen forum um werbung für java zu machen *g*
aber libs für 2D ausgabe und gui unterstützung sowie mathe operationen sind in java voll implementiert. und soooo komplex ist es auch wieder nicht. nevertheless, shadow hast schon die besten lösungen gesagt. wenn dus über dll machst dann schreib am besten die ganze rechenlogik in der dll und übergib nur die benutzer ein- u. ausgabe. wenn du für jede einzelne berechnung zuerst in string( od. 2integer) umwandelst -> übergibst -> berechnest -> zurückgibst wirst du alt. mfg stfighter |
||
Denken hilft! |
Lutz-Development |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
sicherlich hat Java das implementiert, aber bis ich da die Sachen zusammengesucht hatte, dass die GUI auf Knopfdruck das 2D-Fenster neu zeichnen lässt, bin ich alt geworden ![]() Derzeit verwende ich Float - ansonsten je mehr Nachkommastellen, umso besser - double sollte schon ausreichen. Vorkommastellen nur wenige, 1-2. Wie schreibt man eine DLL - hab das noch nie gemacht - gibts da irgendwo ein gutes Tutorial dafür? Gruß, Thomas |
||
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
tutorials gibts im internet, aber dafür benötigst du trotzdem eine andere sprache.
c++ oder irgendsowas. |
||
Denken hilft! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group