Java, Mathematik-Berechnungen < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Aufgabe | Hallo an alle, ich habe folgende Fragen: |
1. hat jemand schon Erfahrungen mit Java in Verbindung mit einer anderen Prog.Sprache wie C/C++, die zu IEEE kompatibel ist, gehabt? Es ist bekannt dass Java nicht vollständig mit IEEE 754 floating point Arithmetik konform ist. Ich möchte mit einem Java Server/Client von einem Matlab zu einem anderen Matlab auf anderem Rechner Matrizen übertragen. Werden da womöglich durch die Datenkonversion falsche Ergebnisse / Matrizen / Zahlen übertragen.
2. Hat jemand schon mal versuch parallele Cholesky Zerlegung zu implementieren? Vielleicht gibt's dazu ein Paar Tips.
Danke
|
|
|
|
Hallo,
ich glaube die Inkompatibilität bezieht sich nur auf bestimmte Ausnahmebehandlungen etc. Intern wird deine Java-VM eh Deine CPU, wie auch andere Sprache (C/C++/Pascal/etc.) mit passendem Compiler/Interpreter, verwenden. Ich sehe da höchstens das Problem, in welcher Reihenfolge die einzelnen Bytes, die eine Zahl kodieren, versendet werden. Ich habe keine Ahnung, ob dies in irgendeiner Form standarisiert ist, oder genauso wie bei "Integers", verschiedene Ansätze gibt.
Andererseits dachte ich, Matlab kann exakt Rechnen und Fließkommazahlen beliebiger Genauigkeit (modulo Speicherverbrauch natürlich) verarbeiten. Oder ich verwechsele da was. In diesem Fall wäre das ganze sowieso Matlab spezifischer und man sollte in die passende Dokumentation schauen.
Gruß
Matthias Kretschmer
|
|
|
|
|
Status: |
(Frage) reagiert/warte auf Reaktion | Datum: | 01:00 Do 05.04.2007 | Autor: | viktory_hh |
Aufgabe | Hallo, danke erstmal für diese Antwort! Folgendes Problem: |
wenn Java bestimmte Flags wie z.B. Nan (not a Number ) oder inf (1/0) irgendwie anders behandelt als in ieee definiert, werden bei der übergabe der Parameter von Matlab an Java diese bestimmten Bits durch die Konversion nicht verändert?
ich glaube ich sollte das mal selbst ausprobieren. Aber wenn jemand schon mal das Problem gehabt hat, dann bin ich dankbar für die Antworten.
Poka
|
|
|
|
|
Hallo,
was ich eigentlich meinte war, dass die Darstellung die Gleiche ist, nur was passiert wenn man durch 0 teilt, etc. vielleicht etwas anderes. Also um genau zu sein, wie die arithmetische Einheit sich bei "annormalen Zahlen" verhält. Da das ganze intern auf eine passende FPU geschossen wird und die Leute bei Sun sicherlich keine "Trottel" sind, dürfte deswegen alleine schon kein Unterschied in der Darstellung bestehen. Allerdings je nach FPU verhält sich diese nicht 100% IEEE konform. Dies kann man teilweise Hardware-Seitig oder Software-Seitig beheben ist aber meistens mit Geschwindigkeitseinbußen versehen. Deswegen wird das häufig nicht gemacht (jedenfalls soweit meine Erinnerung zu dem "praktischen Kommentaren" meines Numerik Professors von damals -- ist schon etwas her).
Gruß
Matthias Kretschmer
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:20 Do 05.04.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|