Institut für Zuverlässiges Rechnen
Leiter:
Prof. Dr. Siegfried M. Rump
Einleitung
PROFIL (Programmer's Runtime Optimized Fast Interval Library) ist eine C++-Klassenbibliothek, die die gebräuchlichen reellen und Intervalloperationen anwenderfreundlich zur Verfügung stellt. Zur Zeit werden die folgenden Datentypen unterstützt:
INT, REAL, INTERVAL, Vektoren und Matrizen über diese Typen sowie komplexe Zahlen.
Alle Intervalloperationen in PROFIL basieren auf BIAS (Basic Interval Arithmetic Subroutines). Mit BIAS wird eine einheitliche Schnittstelle für die grundlegenden Intervalloperationen von skalaren bis hin zu Matrixoperationen definiert. Die Entwicklung von BIAS wurde dabei durch die folgenden Ziele gesteuert:
- Sehr effiziente Ausnutzung der Hardware
- Portabilität
- Unabhängigkeit von einer speziellen Intervalldarstellung
Zur Zeit existiert für die Serien IBM RS/6000, Sparc-Architekturen, HP9000/700
sowie für PCs mit Koprozessor unter Unix, Linux, Windows eine allgemeine, aber
dennoch sehr effiziente Version von BIAS.
Diese Version verwendet eine Intervalldarstellung der Form untere/obere Grenze sowie
gerichtete Rundungen und wurde bis auf die Rundungsumschaltung,
die als kleine Assemblerprogramme
implementiert wurden, komplett in C geschrieben.
Eine Anpassung an andere Architekturen beschränkt sich
auf die Routinen zur Rundungsumschaltung.
Auf Anfrage ist eine Fassung von BIAS für Architekturen ohne gerichtete
Rundungsumschaltung erhältlich.
Vergleiche mit anderen Intervallbibliotheken oder Programmierumgebungen zeigen
eine Geschwindigkeitssteigerung von bis zu einer Größenordnung.
PROFIL wird ständig weiter entwickelt.
Quelltexte
Der komplette Quelltext für PROFIL/BIAS ist als komprimierte (gzipped) tar-Datei erhältlich. Im Quelltext ist die Unterstützung von linearen Listen, automatischer Differentiation, Testmatrizen sowie eine einfache Implementierung eines globalen Optimierungsverfahrens enthalten.
29.01.2009: Version 2.0.8
Neu:
- PROFIL/BIAS unterstüzt ab nun ein Makefile target "check", um die (momentan Basis-)Funktionalität der Installation zu prüfen
- Es gibt eine neue Konfiguration für x86-64. Diese ist von einem aktuellen bug in glibcs libm betroffen, so dass PROFIL/BIAS nach jeder Intervalloperation den Rundungsmodus auf round–to–nearest zurücksetzen muss.
- BiasPowerI(pR, [0,0], pY>0) gibt nun [0,0] zurück anstelle einer Fehlermeldung.
- Die Speicherverwaltung war abhängig von einer 32Bit Architektur.
- Kleinere Fehler.
Dokumentation
Die komplette Dokumentation zu PROFIL/BIAS ist in Form einer komprimierten PostScript-Datei erhältlich.
Alte Version
Für Nostalgiker oder für hohe Kompatibilitätsanforderungen ist
die alte PROFIL/BIAS-Version
weiterhin verfügbar.
Christian Keil
c.keil@tu-harburg.de