ALIs
kommt nochIMSL-Bibliotheken
Die verschiedenen IMSL-Bibliotheken am LRZ
Die Hersteller- und Lieferfirma der numerischen Bibliotheken ist Visual Numerics, Inc., wobei IMSL ein "registered trademark" von Visual Numerics, Inc. ist.
Mit der Kündigung des Wartungsvertrags mit VNI zu Ende 1997 wurde die IMSL-Software am LRZ praktisch eingefroren (ein Update der C-Library erfolgte noch im Dezember 1998) und verschwindet wegen der Kopplung der Lizenzen an feste Rechner immer weiter: wie z.B. die IMSL Fortran 90 MP Library, die nur an Cray-Rechnern zur Verfügung stand.
Jetzt sind noch die IMSL-Installationen an den Sun-Workstations übriggeblieben:
- Fortran Numerical Libraries (FNL) Version 3.0,
formal bestehend aus MATH/Library und STAT/Library, wobei die SFUN-Library (spezielle Funktionen) in der MATH-Library enthalten ist. Die Dokumentation enthält nach wie vor die Teile MATH, STAT und SFUN.
Installierte Version:
Von IMSL als Binärversion geliefert (unter Solaris Version 2.3, SPARCompiler FORTRAN 2.0.1 erzeugt) - C Numerical Libraries (CNL) Version 2.0
Die C Bibliothek besteht aus den gleichen Teilen wie die Fortran Bibliothek, die entsprechenden Funktionsnamen sind der Dokumentation zu entnehmen.
Installierte Version:
Von IMSL als Binärversion geliefert (unter Solaris Version 2.3, SPARCompiler C 3.0 erzeugt) - Exponent
Graphics (EG) Version 2.1
Diese Grafikbibliothek ist über selbst zu schreibende C- bzw. (nach der später erfolgten Erweiterung) auch über eigene Fortran-Programme zu benutzen. Dabei enthält sie auch eine Untermenge von numerischen Routinen in C bzw. Fortran, die für unmittelbare grafische Darstellungen von Kurven, Flächen, Körpern usw. als Berechnungsgrundlage notwendig sind. Über Modifikationen von Attributen und Parametern innerhalb gewisser Files kann man ein Problem variieren, ohne es immer wieder neu übersetzen zu müssen. Durch diese Vielfalt grafischer Gestaltungsmöglichkeit war sie als geeignete Ergänzung zur numerischen IMSL-Bibliothek gedacht.
Dokumentation zur numerischen IMSL-Bibliothek
- Herstellerdokumentation:
MATH/Library User's Manual STAT/Library User's Manual SFUN/library User's Manual(Benutzerleihschrift (3 Softcoverbände) über Benutzersekretariat) - Die über /client/bin/imslhelp an den Suns als aufrufbar
konzipierte Online-Dokumentation ist wegen zu grosser Abhängigkeit von
der Herstellerprogrammierung praktisch nicht mehr benutzbar
(insbesondere nicht unter VistaExceed, vielleicht noch an
X-Terminals).
Voraussetzung war dabei eine richtig gesetzte DISPLAY-Environmentvariable.
Single- und Double-Precision-Variante der IMSL-Subroutinen:
Im Gegensatz zu NAG gibt es innerhalb der IMSL-Bibliothek jede Routine
sowohl in single als auch in double Precision. Um zur
Double-Precision-Variante einer Subroutine zu gelangen, wird dem Namen
der Single-Precision-Routine ein D vorangestellt. Etwas differenzierter
ist die Namensgebung bei den BLAS-Routinen.
Die Auswahl - single oder double Precision - kann daher bei IMSL im
Verhältnis zur notwendigen Genauigkeit bzw. zur Verfahrensgenauigkeit
erfolgen.
Um aber vergleichsweise die Genauigkeit von Rechnungen auf den alten
Mainframes auch auf den Suns zu erzielen, müßten rein schematisch die
Double-Precision-Varianten jeder in single Precision verwendeten
IMSL-Subroutine aufgerufen werden.
Vgl. auch die Hinweise zur
Verwendung der Double-Precion-Version für die NAG-Library.
Inhalt der numerischen IMSL-Bibliotheken
Der Inhalt für f77- und C-Bibliothek ist gleich:
MATH/Library
Linear Systems
Eigensystem Analysis
Interpolation and Approximation
Integration and Differentiation
Differential Equations
Transforms
Nonlinear Equations
Optimization
Basic Matrix/Vector Operations
Utilities
STAT/Library
Basic Statistics
Regression
Correlation
Analysis of Variance
Categorical and Discrete Data Analysis
Nonparametric Statistics
Test of Goodness of Fit and Randomness
Time Series Analysis and Forecasting
Covariance Structures and Factor Analysis
Discriminant Analysis
Cluster Analysis
Sampling
Survival Analysis, Life Testing and Reliability
Multidimensional Scaling
Density and Hazard Estimation
Line Printer Graphics
Probability Distribution Functions
Random Number Generation
Utilities
Mathematical Support
SFUN/Library
Special Functions
Zugriff auf die Bibliotheken
Die zwei Teilbibliotheken der IMSL-Library (MATH und STAT) sind zu einer einzigen Bibliothek IMSL zusammengefaßt.
Der Anschluß von IMSL-Unterprogrammen an ein Benutzerprogramm am
Sun-Cluster unter Solaris:
Ausführliche Information steht im File
/client/doc/imsl und sollte
unbedingt beachtet werden.
Anders als bei bisherigen Installationen:
- Das Setzen einer Environmentvariablen ist erforderlich, die den Zugang zum Lizenzfile ermöglicht.
- Außer der Angabe von -limsl beim Laden sind noch weitere Bibliotheken zuzuladen, am besten über eine vorher gesetzte Environmentvariable.
- Speziell für die C-Library wurde im Zuge des Updates auf die
Version 2.0 dieser Library ein Setup-Script bereitgestellt. In
Abhängigkeit der zu verwendenden Shell setzt man eins der folgenden
Kommandos ab:
bzw.source /client/bin/imsl_cnl.setup.csh
Aus dem Script selbst entnimmt man, welche Environment-Variablen gesetzt werden und verwendbar sind.. imsl_cnl.setup.sh
Fehlerbehandlung in IMSL
Zur Fehlerbehandlung sind üblicherweise drei Fragen zu beantworten:
- Was wird im Fehlerfall getan? (Wird eine Fehlermeldung ausgegeben? Wird die Programmausfürung abgebrochen?)
- Wohin werden gegebenenfalls die Fehlermeldungen geschrieben?
- Wie erfärt das aufrufende Programm, ob und welche Fehler vorliegen?
Die Fehlerbehandlung erfolgt ausschließlich über Dienstroutinen.
UMACH Kanalnummer für Fehlermeldungen setzen oder abfragen. IERCD Fehlercode abfragen. ERSET Aktion für Fehlerfall definieren (Meldung drucken?, STOP?).
Das Verhalten im Fehlerfall wird durch die Routine ERSET gesteuert.
Für jede der fünf Fehlerstufen ("severity level") kann angegeben werden,
ob eine Fehlermeldung zu schreiben ist und ob die Programmausfürung
abzubrechen ist. Der Fehlercode kann nach der Rückkehr aus einer
IMSL-Routine mit der parameterlosen IMSL-Function IERCD abgefragt
werden:
ICODE = IERCD ()
Die Kanalnummern für die Ein-/Ausgabe durch IMSL-Routinen (und damit auch für Fehlermeldungen) wird durch die Routine UMACH verwaltet. Die entsprechenden Aufrufe sind:
CALL UMACH (2, NOUT) für Abfrage,
CALL UMACH (-2, NOUT) für neue Definition.
Voreingestellt ist Kanal 6.
Die Version IMSL 2.0 ermölicht die Ausgabe der IMSL-Fehlermeldungen auf
ein separates File:
CALL UMACH (3, NOUT) für Abfrage,
CALL UMACH (-3, NOUT) für neue Definition.
Voreinstellung ist ebenso Kanal 6.
Namenskonflikte zu anderen Bibliotheken
Keine Probleme verursachen:
BLAS-Routinen in mehreren Bibliotheken
IMSL Version 2 : Hier erfolgten Umbenennungen wegen Namenskonflikten.
PGOPT ersetzt PAGE
CPSEC ersetzt CTIME
TIMDY ersetzt DTIME