IMSL Productivity Toolkit

Walter Haider

Am Fachbereichsrechner Mathematik-Studierende (fbma) steht das IMSL Productivity Toolkit von Visual Numerics, Inc. (IMSL wurde 1993 von VNI übernommen) zur Verfügung, das aus folgenden Komponenten besteht:

Verwendung

Für alle Produktkomponenten gilt: um die einzelnen Komponenten verwenden zu können, müssen zuerst einige Umgebungsvariablen gesetzt und Aliases definiert werden.

Dies erfolgt bei Verwendung einer C-Shell (csh) durch Ausführen oder Einfügen von
source /cs/vni/ipt/bin/iptsetup.csh
in das .cshrc-File bzw. bei Verwendung einer Bourne-Shell (sh) oder Korn-Shell (ksh) durch Ausführen oder Einfügen von
. /cs/vni/ipt/bin/iptsetup.sh
in das .profile-File.

Um die Exponent Graphics und die Online-Dokumentation verwenden zu können, muß auch die DISPLAY-Variable gesetzt sein:
setenv DISPLAY nodename:0
in einer C-Shell (csh)
bzw.
DISPLAY="nodename:0"
in einer Bourne-Shellsh) oder Korn-Shell (ksh)

Ausführliche Informationen über die Verwendung der einzelnen Produkte enthalten die Dateien /usr/local/ imsl/product/readme (installationsbezogene Angaben) und /usr/local/imsl/product/users_note (Angaben des Herstellers), dabei bedeutet product

fnl für IMSL FORTRAN Numerical Libraries
cnl für IMSL C Numerical Libraries
eg für IMSL Exponent Graphics

Dokumentation

Die für alle Produktkomponenten gemeinsame Hypertext Online-Dokumentation erhält man durch Aufruf von iptdoc.

Zu fast allen Unterprogrammen werden Beispiele angeboten, die auch als Vorlage zur Programmerstellung dienen können.

User Manuals liegen bei mir zur Ansicht auf (EDV-Zentrum, Wiedner Hauptstraße 8-10, 2. Stock, roter Bereich, DC02O14).

IMSL FORTRAN Numerical Libraries

Es stehen die IMSL FORTRAN Numerical Libraries (MATH/LIBRARY, MATH/LIBRARY Special Functions, STAT/LIBRARY) als "shared library" (Default-Annahme) und als "archive library" (static library) zur Verfügung.

Zum Unterschied zur NAG FORTRAN Library werden von den meisten Routinen sowohl eine single als auch eine double Precision-Version angeboten. Wird dem Namen der single Precision-Version einer Routine ein D vorangestellt, so erhält man die double Precision-Version dieser. Es kann daher leicht eine Anpassung an die geforderte Genauigkeit vorgenommen werden.

Zur graphischen Darstellung der numerischen Ergebnisse bietet die IMSL Exponent Graphics (FORTRAN 77) eine Vielfalt an Gestaltungsmöglichkeiten an (siehe /usr/local/ imsl/eg/readme).

Beispiel für die Verwendung der "shared libraries" (Default-Annahme):

$FC -o exec_program $FFLAGS fortran_program.f $LINK_FNL
exec_program

Beispiel für die Verwendung der "static libraries":

$FC -o exec_program $FFLAGS fortran_program.f LINK_FNL_STATIC
exec_program

Dabei bedeuten:

fortran_program Filename für das Fortran Programm
exec_program Filename für das ausführbare Programm
FC Variable für Fortran Compiler
FFLAGS Variable für Fortran Compiler Options (es erfolgt keine Optimierung)
LINK_FNL Variable für Link Options Standardannahme: shared Libraries (LINK_FNL_SHARED)
LINK_FNL_SHARED Variable für Link Options zum Linken mit den shared Fortran Numerical Libraries
LINK_FNL_STATIC
Variable für Link Options zum Linken mit den static Fortran Numerical Libraries

IMSL C Numerical Libraries

Es stehen die IMSL C Numerical Libraries (C/Math/ Library und C/Stat/Library) als "shared library" (Default-Annahme) und als "archive library" (static library) zur Verfügung.

Von den meisten Routinen wird sowohl eine type float als auch eine type double Version angeboten (Prefix imsl_f_ bzw. imsl_d_).

Als C-Compiler wird der ANSI C-Compiler empfohlen, daher sind auch die Testbeispiele für diesen Compiler vorbereitet.

Zur graphischen Darstellung der numerischen Ergebnisse bietet die IMSL Exponent Graphics (für C) eine Vielfalt an Gestaltungsmöglichkeiten an (siehe /usr/local/ imsl/eg/readme).

Beispiel für die Verwendung der "shared libraries" (Default-Annahme):

$CC -o exec_program $CFLAGS C_program.c $LINK_CNL
exec_program

Beispiel für die Verwendung der "static libraries":

$CC -o exec_program $CFLAGS C_program.c $LINK_CNL_STATIC
exec_program

Dabei bedeuten:

C_program Filename für das C Programm, das eine #include imsl.h Anweisung beinhalten muß.
exec_program Filename für das ausführbare Programm
CC Variable für C Compiler
CFLAGS Variable für C Compiler Options (es erfolgt keine Optimierung)
LINK_CNL Variable für Link Options Standardannahme: shared Libraries (LINK_CNL_SHARED)
LINK_CNL_SHARED Variable für Link Options zum Linken mit den shared C Numerical Libraries
LINK_CNL_STATIC Variable für Link Options zum Linken mit den static C Numerical Libraries

IMSL Exponent Graphics

IMSL Exponent Graphics (EG) ist eine Sammlung von FORTRAN 77 und ANSI C Unterprogrammen und bietet mehr als 30 2D und 3D Standard Plot-Typen (Application Functions), mehr als 60 Unterprogramme zur graphischen mathematischen Unterstützung (Support Functions), fast 300 vom Anwender zu spezifizierende Plot-Attributen und interaktive Möglichkeiten zur Manipulation von Daten und Plot-Attributen (attributes for controlling plot features).

Es stehen eine "shared library"-Version (Default-Annahme) und eine "archive library"-Version (static library) zur Verfügung.

Zur graphischen Darstellung der numerischen Ergebnisse, gewonnen aus Anwendungen der IMSL FORTRAN Numerical Libraries oder IMSL C Numerical Libraries, bietet die EG eine Vielfalt an Gestaltungsmöglichkeiten an.

Konzept:

Der eigentliche Start erfolgt durch Ausführen eines übersetzten und geladenen FORTRAN 77 oder C Programmes, das die entsprechenden EG-Funktionen aufruft und zu dem use- und tag-Files als Direktiven-Files gehören können.

Beispiel für die Verwendung der "shared library" (Default-Annahme):

$LC -o exec_program $LFLAGS application_program.l $LINK_EG

Beispiel für die Verwendung der "static library":

$LC -o exec_program $LFLAGS application_program.l $LINK_EG_STATIC

Dabei bedeuten:

L,l Programmiersprache: F bzw. f für FORTRAN 77
C bzw. c für ANSI C
application_program Filename für das L Programm
exec_program Filename für das ausführbare Programm
LC Variable für L Compiler
LFLAGS Variable für LCompiler Optionen (es erfolgt keine Optimierung)
LINK_EG Variable für Link Optionen, Standardannahme: shared EG Library (LINK_EG_SHARED)
LINK_EG_SHARED Variable für Link Optionen zum Linken mit der shared Exponent Graphics Library
LINK_EG_STATIC Variable für Link Optionen zum Linken mit der static Exponent Graphics Library

Für einen ersten Versuch bzw., um sich die Graphik zuerst am Bildschirm ansehen zu können, sollte man in seinem application_program beim Aufruf der Ploterzeugungs-Funktionen al_plot, al_interact oder al_multiple_plot den Integer-Parameter unit=0 setzen, um einen Dialog zur Auswahl eines Geräte-Drivers einzuleiten:

exec_program
Enter
n [plot [file]] DEVICE n [optional plot node,
output file]
? LIST available device numbers, names, descriptions
t TOGGLE the meaning of q to leave graphics OPEN
q EXIT this routine, CLOSE
(shutdown) graphics
To continue, click the mouse on the plot

Choice: z.B.: 1 CR es erscheint ein neues Fenster mit der erstellten Graphik
11 CR Ausgabe der Graphik in ein PostScript-File vnieg.ps in Landscape-Orientation
12 CR Ausgabe der Graphik in ein PostScript-File vnieg.ps in Portrait-Orientation
q CR EXIT

Dokumentation

In der Hypertext Online-Dokumentation zur EG (iptdoc) wird neben der Beschreibung der einzelnen EG-Attribute und EG-Funktionen auch mindestens ein Beispiel dazu angeboten.

Zur Veranschaulichung der graphischen Möglichkeiten steht "Exponent Graphics Demonstration" zur Verfügung und kann mit

egdemo

aufgerufen werden. Gezeigt werden 2D, 3D und interaktive Anwendungen. Auch von diesen Beispielprogrammen kann der FORTRAN- und C Source-Code eingesehen werden.

Bei Schwierigkeiten mit den IMSL-Produkten wenden Sie sich bitte an mich (Klappe 5492). Beachten Sie auch die entsprechenden WWW-Seiten URL:/museum/edvz/zserv/sw-dir.

Das IMSL Productivity Toolkit ist auch als Campussoftware-Produkt erhältlich.


Zum Inhaltsverzeichnis, Pipeline 19, Juni 1996