AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

größere reele Typen (> extended)

Ein Thema von Alexander · begonnen am 26. Feb 2005 · letzter Beitrag vom 4. Mär 2005
Antwort Antwort
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

größere reele Typen (> extended)

  Alt 26. Feb 2005, 18:40
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?
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#2

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

  Alt 26. Feb 2005, 19:27
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
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#3

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

  Alt 26. Feb 2005, 19:40
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...
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

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

  Alt 27. Feb 2005, 13:59
Bei den Jedis gibts - glaube ich - welche oder eben negaHs DEC Math-Unit
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#5

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

  Alt 27. Feb 2005, 14:18
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
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#6

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

  Alt 2. Mär 2005, 21:37
Keiner eine Idee?
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#7

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

  Alt 2. Mär 2005, 21:56
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
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#8

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

  Alt 3. Mär 2005, 07:52
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
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#9

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

  Alt 3. Mär 2005, 12:44
Hi,
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 . 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?
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#10

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

  Alt 4. Mär 2005, 03:30
Hier in der DP, suche mal nach DECMath. Ich habe Versionen für D5,D6,D7 gepostet.

Gruß hagen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:16 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 by Thomas Breitkreuz