AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte DECMath für Neu
Thema durchsuchen
Ansicht
Themen-Optionen

DECMath für Neu

Ein Thema von himitsu · begonnen am 18. Sep 2023 · letzter Beitrag vom 21. Sep 2023
Antwort Antwort
Benutzerbild von himitsu
himitsu
Registriert seit: 11. Okt 2003
Vielleicht hat es schon wer mitbekommen.
Ich hatte vor Kurzem begonnen das alte "öffentliche" DECMath erst ins GitHub zu verschieben (als Dokumentation),
sowie in eine Delphi7-DLL zu packen, um es für aktuelle Delphis verfügbar zu machen.
(ob und wann das DECMath nochmal neu, direkt für neue Delphis kommt ... wer weiß)

Als Quelle diente ein Verzeichnis (einst entpackte ZIP), welches ich auf meiner Platte fand.
Ursprünglich vermutlich bei Michael runtergeladen und entstanden aus jenem Thread.


Aktuell erstmal die Schnittstellen nahezu 1:1 umgesetzt. (Überlegung für ein Kapselung in Custom-ManagedRecords existiert.
einmal um die Standardoperatoren nutzen zu können, also + - div mod, sowie um die Codevervollständigung besser einzubeziehen ... optional, weil eigentlich war Hagen eher gegen sowas, aber seine Meinung bezog sich auf die damaligen einfachen "Record-Methoden")


Einige Methoden sind derzeit als deprecated markiert, weil dort aufgepasst werden muß.
Vor allem an TVarRec und array of const darf kann kein String/UnicodeString übergeben werden. (AnsiString, WideString und ShortString sind möglich)
Auch die Methoden mit TStream sind aktuell nicht benutzbar.




Also für Delphi 5, 6 und 7 ist es ja direkt nutzbar.
Über die neue DLL wäre es ab Delphi 2006 nutzbar (es gab mal DCUs für 2006 und 2007, aber die wurden nicht veröffentlicht),
aber durch einige Exceptions beim Programmende, und deren Bugfix, dürfte es nun vermutlich ab Delphi 2010/XE lauffähig sein (manuelles DelayedLoading).

Getestet wurde es mit Delphi 11.3

https://github.com/geheimniswelten/DECMath-Legacy
DECMath.dll und DECMath.pas ( DECMathTest.dpr )


DEC Part I ( Part_I\*.pas ) ist eine alte, bzw. andere Version und es sollte aufgepasst werden, dass es keine Überschneidung der Suchpfade mit dem aktuellen DEC gibt.
Aber egal, da das alte DEC eh niemand nutzt und es somit nicht in den Suchpfad gehört.

DEC Part II aka DECMath liegt nur als DCUs vor ( Archive\D7\*.dcu ) , sowie als Interface-Teil der PAS zur Dokumentation ( Archive\Part_II\LibIntf\*.pas )
Sowie neuerdings als DLL ( \Part_II\DECMath.dll aus DECMath.dpr mit Delphi 7 ) und zugehörige Imports-PAS ( \Part_II\DECMath.pas ) für neue Delphis.
Die Testanwendung DECMathTest.dpr lässt sich mit unterschiedlichen Delphis kompilieren, siehe Quelle (D7 und 11.3 liegen als EXE bei)
Suchpfade sind nicht nötig ... nur die DECMath.pas ins Programm aufnehmen und die DLL in EXE-Verzeichnis, bzw. in dem DLL-Suchpfaden.


PS: Falls hier noch jemandem was zu einfällt ...
https://www.delphipraxis.net/213692-pi-weltliste.html


Und nun nur noch eine kleine Linksammlung (TODO: bissl aufräumen und ins Git damit)

Hagen Reddmann (negaH) finde den Thread nicht
Wolfgang Ehrhardt (Gammatester) https://www.delphipraxis.net/200202-...mmatester.html
Michael Puff (Luckie) https://www.delphipraxis.net/204161-...erstorben.html
Robert Marquardt https://www.delphipraxis.net/105915-...marquardt.html

(Seiten gekapert und durch heimliche CasinoWerbung ersetzt)
www.wolfgang-ehrhardt.de https://web.archive.org/web/20190731...g-ehrhardt.de/
www.michael-puff.de http://backups.geheimniswelten.de/www.michael-puff.de/

Hagen DEC 5.1 https://www.delphipraxis.net/734016-post22.html
.
Laufzeitoptimierung eines Consolen-Programms https://www.delphipraxis.net/213644-...programms.html
Matheplanet : iterativer Benchmark https://matheplanet.com/matheplanet/...p?topic=263369
Mathe mit Strings (die deutsche StringMatheLib) https://www.delphipraxis.net/135569-...athelib-_.html
Unbegrenzt viele Nachkommastellen https://www.delphipraxis.net/12974-u...stellen-3.html
.
GitHub maelh : www.wolfgang-ehrhardt.de https://github.com/maelh/www.wolfgang-ehrhardt.de
GitHub Hadi : www.wolfgang-ehrhardt.de https://github.com/chadilukito/www.wolfgang-ehrhardt.de
.
Michael Puff : Delphi Encryption Compendium http://backups.geheimniswelten.de/ww.../DEC/index.htm
Delphi Encryption Compendium https://www.delphipraxis.net/22357-d...tml#post282158
DEC für 2009 (hier verfügbar) https://www.delphipraxis.net/123470-...erfuegbar.html
DEC / Delphi Encryption Compendium (Part I) https://github.com/MHumm/DelphiEncryptionCompendium
DEC für FPC https://github.com/decfpc/DelphiEncryptionCompendium
GetIt : Delphi Encryption Compendium Lite 6.3 https://getitnow.embarcadero.com/dec...mpendium-lite/

https://www.delphipraxis.net/43404-i...n-decmath.html
https://www.delphipraxis.net/43777-doku-zu-decmath.html
https://www.delphipraxis.net/58848-i...schneller.html
https://www.delphipraxis.net/59556-p...tml#post403685
https://www.delphipraxis.net/65354-s...robleme-2.html
https://www.delphipraxis.net/88261-f...nauigkeit.html
https://www.delphipraxis.net/107798-...tml#post734016
https://www.delphipraxis.net/172397-...dec-5-2-a.html
https://www.delphipraxis.net/203853-...tierung-4.html

https://www.delphipraxis.net/73917-e...eispiel-2.html
https://www.spiegel.de/wissenschaft/...0-000016310998
https://torry.net/author/hagen-reddmann
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (20. Sep 2023 um 02:38 Uhr)
 
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#2
  Alt 20. Sep 2023, 02:32
Exceptions beim Programmende wurden behoben. (bei/nach Entladen der DLL)

Ich war auf einen Bug im Delphi gestoßen, aber zum Glück ließ er sich einfach beheben.
VAR-Parameter einer Delphi-Funktion schrieb nicht in eine Inline-Variable und anschließend knallte es, weil dadurch das SharedMemory nicht funktionierte (GetMem und Co. zeigten auf NIL)
https://quality.embarcadero.com/browse/RSP-42368

Außerdem muß jetzt nicht mehr auf Unicode geachtet werden, denn in Parametern mit TVarRec und array of const wird der String/UnicodeString abgefangen und intern auf AnsiString gecastet.

Sowie die teilweise komplett inkompatible Klasse TStream, zwischen neueren Delphis und Delphi 7, wurde durch TBytes bzw. TArray<Byte> ersetzt.
(zumindestens in den meisten Funktionen ... in einigen Interface-Typen ging es noch nicht, aber Jenes ist erstmal weiterhin mit deprecated markiert und wirft bei Verwendung eine Compilermeldung ... falls jemand sowas liest )
Seit Equals, GetHashCode und ToString sind viele wichtige Offsets verschoben, vor allem jene zu VMT und ClassType.

Geändert von himitsu (20. Sep 2023 um 10:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

 
Delphi 7 Enterprise
 
#3
  Alt 21. Sep 2023, 13:11
Mal eine ganz andere Idee: Warum nicht golang verwenden (math/big) und die Funktionen über eine shared library in Delphi verfügbar machen?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#4
  Alt 21. Sep 2023, 14:52
Nja, hier geht es erstmal um eine Delphi-Komponnte, nur das aktuell die Quellcodes noch nicht öffentlich sind
und es aktuell auch noch nicht möglich ist das neu kompilieren zu lassen.

Hagen wollte kein Geld für ein neues Delphi ausgeben und eine konstenlose Version gab es damals nicht.
Daher gab er auch die neuen DCUs nicht offiziell raus, weil er zum Kompilieren die Trial genutzt hatte.
Deswegen nutze ich hierfür auch nur die offiziell öffentlichen Quellen. (auch wenn Hagen selbst sich nicht mehr beschweren könnte ... insgesammt 2 oder 3 aktuell immernoch lebende Leute müssten aber sein Erbe übernommen haben)

Geändert von himitsu (21. Sep 2023 um 15:21 Uhr)
  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 05:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz