Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi größere reele Typen (> extended) (https://www.delphipraxis.net/41141-groessere-reele-typen-extended.html)

Alexander 26. Feb 2005 17:40


größere reele Typen (> extended)
 
Hallo,
ich suche derzeit für ein kleines mathematisches Programm eine Implementierung eines reelen Typen, mit wesentlich mehr Nachkommastellen als z.B. der Extended-Typ. Das ganze soll dabei aber noch so einfach zu handeln sein wie ein normaler Datentyp.
Gibt es da was kostenloses für Delphi?

malo 26. Feb 2005 18:27

Re: größere reele Typen (> extended)
 
Schau doch mal in der OH nach Delphi-Referenz durchsuchenextended ;)

Der Typ Delphi-Referenz durchsuchencurrency hat zum Beispiel 4 Nachkommastellen ;)

Hoffe, dir geholfen zu haben :)

Alexander 26. Feb 2005 18:40

Re: größere reele Typen (> extended)
 
Zitat:

Zitat von malo
Schau doch mal in der OH nach Delphi-Referenz durchsuchenextended ;)

Der Typ Delphi-Referenz durchsuchencurrency hat zum Beispiel 4 Nachkommastellen ;)

Hoffe, dir geholfen zu haben :)

Ich glaube du verstehst mich nicht ganz. Mir ist klar wieviele Stellen der Extended hat, da brauche ich nicht nachzukucken...
Ich suche halt eine Möglichkeit, mit der ich wesentlich "längere" Zahlen (nicht nur Nachkommastellen) nutzen kann. Dazu muss natürlich noch passende mathematische Methoden für z.B. Multiplikation geben...

Khabarakh 27. Feb 2005 12:59

Re: größere reele Typen (> extended)
 
Bei den Jedis gibts - glaube ich - welche oder eben negaHs DEC Math-Unit

Alexander 27. Feb 2005 13:18

Re: größere reele Typen (> extended)
 
Zitat:

Zitat von Khabarakh
Bei den Jedis gibts - glaube ich - welche oder eben negaHs DEC Math-Unit

So weit ich weiß, kann Hagens Mathe-Unit doch keine Dezimalzahlen oder ?

Alexander 2. Mär 2005 20:37

Re: größere reele Typen (> extended)
 
Keiner eine Idee?

Binärbaum 2. Mär 2005 20:56

Re: größere reele Typen (> extended)
 
Zitat:

Zitat von Alexander
Keiner eine Idee?

Doch, aber eine ziemlich miese:
Man könnte die Zahlen auch in Strings abspeichern und mit den Strings rechnen.
Dafür müsste man dann allerdings alle Rechenoperationen selbst implementieren, und das kann ziemlich umständlich werden, wenn man dann mehr machen will als nur Grundrechenoperationen (Addition, Subtraktion, Multiplikation, Division).
Deshalb ist es wohl besser, die Komponenten vom JEDI zu nehmen, oder die Mathe-Unit von Hagen.

MfG
Binärbaum

negaH 3. Mär 2005 06:52

Re: größere reele Typen (> extended)
 
Zitat:

So weit ich weiß, kann Hagens Mathe-Unit doch keine Dezimalzahlen oder ?
Das stimmt auch, und denoch kannst du mit Gebrochenen Zahlen rechnen. DECMath enthält den Datentyp IRational, der einen Bruch repräsentiert.
Auch deine zweite Forderung nach Einfachheit der Anwendung erfüllt DECMath:


Delphi-Quellcode:
var
  A,B,C: IRational;
begin
  NSet(A, 1, 3);      // A = 1/3
  NSet(B, 4, 5);      // B = 1/5
  NSet(C, 0.12345678);

  NMul(A, C);
  NAdd(A, B);
 
  WriteLn( NStr(A) );

// auf Bruch zugreifen

  WriteLn( NStr(A.N) ); // Numerator
  WriteLn( NStr(A.D) ); // Denumerator
end;
Klar, du müsstest noch einige Spezialfunktionen selber basteln zb. Wurzel usw. Allerdings hast du bei den IRational einen entscheidenden Vorteil gegenüber jedem Fließkommadatentyp -> sie haben immer eine wesentlich höhere Genauigkeit, in fact genauer geht es garnicht mehr :) Fließkommadatentypen sind wesentlich komplexer in der Programmierung ermöglichen dann aber eine enfachere Anwendung weil man einmal die Gesamtgenauigkeit festlegen kann und dann seine Formel reinhämmert. Bei IRational wäre das im Grunde ebenso einfach und denoch muß man bei seinen Formeln genauer auf die erzielten Genauigkeiten achten.

Da man wie oben gesehen auf den Nummerator und Denummerator des Bruches Zugriff hat kann man jede Formel auch auf die Anwendung von Ganzzahlen hin optimieren und umstellen und so die maximal höchste Auflösung/Genauigkeit erreichen.

Ansonsten, bevor du mit DECMath oder den JEDI's (wobei ich nicht weis wo die eine arbitrary Integer/Floatingpoint Library haben sollen ?) was anfängst solltest du dich mal im C++,C#,JAVA Sektor umschauen. Es gibt dort eine wesentlich größere Auswahl. ApFloat kann ich empfehlen.

Gruß Hagen

Alexander 3. Mär 2005 11:44

Re: größere reele Typen (> extended)
 
Hi,
Zitat:

Zitat von negaH
Das stimmt auch, und denoch kannst du mit Gebrochenen Zahlen rechnen. DECMath enthält den Datentyp IRational, der einen Bruch repräsentiert.
Auch deine zweite Forderung nach Einfachheit der Anwendung erfüllt DECMath:

Aha. Das wusste ich gar nicht :oops:. Das schaut wirklich einfach zu bedienen aus ;).

Zitat:

Klar, du müsstest noch einige Spezialfunktionen selber basteln zb. Wurzel usw. Allerdings hast du bei den IRational einen entscheidenden Vorteil gegenüber jedem Fließkommadatentyp -> sie haben immer eine wesentlich höhere Genauigkeit, in fact genauer geht es garnicht mehr :) Fließkommadatentypen sind wesentlich komplexer in der Programmierung ermöglichen dann aber eine enfachere Anwendung weil man einmal die Gesamtgenauigkeit festlegen kann und dann seine Formel reinhämmert. Bei IRational wäre das im Grunde ebenso einfach und denoch muß man bei seinen Formeln genauer auf die erzielten Genauigkeiten achten.
Da ich mit den üblichen Rechenarten auskommen kann, brauche ich wohl keine Spezialfunktionen. Daher kann ich mir das da relativ einfach machen ;)

Zitat:

Ansonsten, bevor du mit DECMath oder den JEDI's (wobei ich nicht weis wo die eine arbitrary Integer/Floatingpoint Library haben sollen ?) was anfängst solltest du dich mal im C++,C#,JAVA Sektor umschauen. Es gibt dort eine wesentlich größere Auswahl. ApFloat kann ich empfehlen.
Dafür habe ich leider momentan nicht die nötige Zeit. Das ganze brauche ich für meine Facharbei und die muss in 1 1/2 Wochen fertig sein ;). Aber da mich das Thema interessiert, versuche ich mich danach da mal einzuarbeiten ;).

Vielen Dank, schon mal Hagen.
Aber eine Sache noch, kannst du die aktuelle Version noch mal hochladen oder mir sagen, wo es sie zum Download gibt?

negaH 4. Mär 2005 02:30

Re: größere reele Typen (> extended)
 
Hier in der DP, suche mal nach DECMath. Ich habe Versionen für D5,D6,D7 gepostet.

Gruß hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz