Knüppel, OlafOlafKnüppel2021-05-072021-05-071994-09-01Computing 53 (3-4): 277-287 (1994-09-01)http://hdl.handle.net/11420/9473In den weit verbreiteten Programmiersprachen wird der Intervalldatentyp nicht unterstützt. Daher benötigt man für die Implementierung von Algorithmen, die auf Intervallarithmetik basieren, spezielle Programmierumgebungen oder zumindest spezielle Programmbibliotheken. In diesem Artikel stellen wir die C++-Klassenbibliothek PROFIL vor, die eine anwenderfreundliche Umgebung für die Implementierung von Intervallalgorithmen darstellt. Die Entwicklung von PROFIL wurde von den beiden Hauptzielen Geschwindigkeit und Portabilität geleitet. Daher basieren alle Intervalloperationen von PROFIL auf BIAS (Basic Interval Arithmetic Subroutines). BIAS definiert eine einheitliche und portable Schnittstelle für die grundlegenden Intervalloperationen von skalaren bis hin zu Matrixoperationen. Dabei ist die Schnittstelle unabhängig von einer speziellen Intervalldarstellung oder von speziellen Berechnungsmodi, erlaubt aber dennoch maschinenspezifische und schnelle Implementierungen. Basierend auf dieser allgemeinen Spezifikation stellen wir eine Implementierung in C vor, die eine Intervalldarstellung in der Form untere/obere Grenze sowie gerichtete Rundungen verwendet. Durch Verwendung eigener Assemblerroutinen (insgesamt nur ca. 10 Assemblerinstruktionen) zur Umschaltung der Rundung sowie durch weitestgehende Vermeidung überflüssiger Vorzeichentests und Rundungsumschaltungen wird der Aufwand für die Intervalloperationen drastisch reduziert. Dies ist insbesondere für RISC-Architekturen wichtig, auf denen Gleitkommaoperationen in wenigen Maschinentaktzyklen ausgeführt werden können. Vergleiche mit anderen Intervallpaketen zeigen eine Geschwindigkeitssteigerung um etwa eine Größenordnung. © 1994 Springer-Verlag.The interval data type is currently not supported in common programming languages. Therefore the implementation of algorithms using interval arithmetic requires special programming environments or at least special libraries. In this paper we present the C++ class library PROFIL which provides a user friendly environment for implementing interval algorithms. The main goals in the design of PROFIL were speed and portability. Therefore all interval operations in PROFIL use BIAS (Basic Interval Arithmetic Subroutines) [16]. BIAS defines a concise and portable interface for the basic scalar, vector, and matrix operations. The interface is independent of a specific interval representation or computation but permits machine specific and fast implementations. Based on this general specification we present an implementation in C using a lower/upper bound representation of intervals and directed roundings. By using few assembler instructions for switching the rounding modes and avoiding sign tests and rounding mode switches wherever possible, the computational costs of the interval operations were reduced significantly. This is especially important for RISC machines, where floating point instructions can be executed in few machine cycles. Comparisons with other interval arithmetic packages show an improvement in speed of about one order of magnitude. © 1994 Springer-Verlag.en1436-5057Computing19943-4277287Springer65G10C, C++IEEE-754 arithmetic standardInterval libraryInformatikMathematikPROFIL/BIAS : a fast interval library [PROFIL/BIAS : eine schnelle Intervallbibliothek]Journal Article10.1007/BF02307379Other