Die Funktionen der EGL-Bibliothek 'mathLib' führen allgemeine mathematische und trigonometrische Funktionen aus.
Der Eingabe- und Ausgabetyp der meisten mathLib-Funktionen ist FLOAT, sodass die Funktionen für ein breites Spektrum an zuordnungskompatiblen Werten ausgeführt werden können. Hierbei ist zu beachten, dass bei der Konvertierung von Dezimalwerten in Gleitkommawerte und umgekehrt möglicherweise ein gewisses Maß an Genauigkeit verloren gehen kann.
Die mathLib-Funktionen können auf jedem Zielsystemen in sowohl für COBOL als auch für Java™ generiertem Code verwendet werden. Im Fall von Java verwendet EGL Methoden in der Java-Klasse 'StrictMath', die zu den EGL-Funktionen äquivalent sind. Dadurch wird sichergestellt, dass das Laufzeitverhalten für jede Java Virtual Machine gleich ist.
Die folgende Tabelle enthält eine Liste der Funktionen in der Systembibliothek 'mathLib'.
| Systemfunktion/Aufruf | Beschreibung |
|---|---|
| Ergebnis = abs (numerische_Variable) | Gibt den absoluten Wert von 'numerische_Variable' zurück. |
| Ergebnis = acos (numerische_Variable) | Gibt den Bogenkosinus von 'numerische_Variable' zurück. |
| Ergebnis = asin (numerische_Variable) | Gibt den Bogensinus von 'numerische_Variable' zurück. |
| assign (Quelle, Ziel) | Behält das Rundungsverhalten aus Version 6 bei, wenn der Wert von 'Quelle' zu 'Ziel' zugeordnet wird. |
| Ergebnis = atan (numerische_Variable) | Gibt den Bogentangens von 'numerische_Variable' zurück. |
| Ergebnis = atan2 (numerische_Variable1, numerische_Variable2) | Berechnet den Prinzipalwert des Bogentangens von 'numerische_Variable1'/'numerische_Variable2' unter Verwendung der Vorzeichen beider Argumente zwecks Ermittlung des Quadranten des Rückgabewerts. |
| Ergebnis = ceiling (numerische_Variable) | Gibt die kleinste ganze Zahl zurück, die nicht kleiner als 'numerische_Variable' ist. |
| Ergebnis = cos (numerische_Variable) | Gibt den Kosinus von 'numerische_Variable' zurück. |
| Ergebnis = cosh (numerische_Variable) | Gibt den Hyperbelkosinus von 'numerische_Variable' zurück. |
| Ergebnis = decimals (numerische_Variable) | Gibt die Anzahl der Dezimalstellen zurück, die für 'numerische_Variable' definiert ist. |
| Ergebnis = exp (numerische_Variable) | Gibt den exponentiellen Wert von 'numerische_Variable' zurück. |
| Ergebnis = floor (numerische_Variable) | Gibt die größte ganze Zahl zurück, die nicht größer ist als 'numerische_Variable'. |
| Ergebnis = frexp (numerische_Variable, ganze_Zahl) | Zerlegt eine Zahl in eine normalisierte Bruchzahl im Bereich 0,5 bis 1 (der zurückgegebene Wert) und eine Potenz von 2 (die in 'ganze_Zahl' zurückgegeben wird). |
| Ergebnis = ldexp (numerische_Variable, ganze_Zahl) | Gibt 'numerische_Variable' mal 2 hoch 'ganze_Zahl' zurück. |
| Ergebnis = log (numerische_Variable) | Gibt den natürlichen Logarithmus von 'numerische_Variable' zurück. |
| Ergebnis = log10 (numerische_Variable) | Gibt den dekadischen Logarithmus (zur Basis 10) von 'numerische_Variable' zurück. |
| Ergebnis = max (numerische_Variable1, numerische_Variable2) | Gibt den größeren Wert von 'numerische_Variable1' und 'numerische_Variable2' zurück. |
| Ergebnis = min (numerische_Variable1, numerische_Variable2) | Gibt den kleineren Wert von 'numerische_Variable1' und 'numerische_Variable2' zurück. |
| Ergebnis = modf (numerische_Variable1, numerische_Variable2) |
|
| Ergebnis = pow (numerische_Variable1, numerische_Variable2) | Gibt 'numerische_Variable1' hoch 'numerische_Variable2' zurück. |
| Ergebnis = precision (numerische_Variable) | Gibt die maximale Genauigkeit (in Dezimalstellen) für 'numerische_Variable' zurück. |
| Ergebnis = round (numerische_Variable, ganze_Zahl) | Rundet eine Zahl oder einen Ausdruck auf den nächstliegenden Wert (beispielsweise die nächste Tausenderstelle) und gibt das Ergebnis zurück. |
| Ergebnis = sin (numerische_Variable) | Gibt den Sinus von 'numerische_Variable' zurück. |
| Ergebnis = sinh (numerische_Variable) | Gibt den Hyperbelsinus von 'numerische_Variable' zurück. |
| Ergebnis = sqrt (numerische_Variable) | Gibt die Quadratwurzel von 'numerische_Variable' zurück, wenn 'numerische_Variable' größer-gleich null ist. |
| Ergebnis = tan (numerische_Variable) | Gibt den Tangens von 'numerische_Variable' zurück. |
| Ergebnis = tanh (numerische_Variable) | Gibt den Hyperbeltangens von 'numerische_Variable' zurück. |
Die folgende Tabelle zeigt, wie 'mathLib'-Funktionen auf Fehler reagieren. Es gelten zwei unterschiedliche Szenarios. Im Standardszenario löst EGL die in der zweiten Spalte angegebene Ausnahmebedingung aus. Das andere Szenario tritt im Ausnahmemodus von Version 6 auf (siehe V6-Ausnahmebedingungskompatibilität verwenden). In diesem Fall löst EGL keine Ausnahmebedingung aus, und 'sysVar.errorCode' wird auf den Wert in der dritten Spalte gesetzt.
| Fehler | EGL-Ausnahmebedingung (Standard) | sysVar.errorCode (Ausnahmebedingungen Version 6) |
|---|---|---|
| Ungültige Eingabe | RuntimeException (Laufzeitausnahmebedingung) | 00000008 |
| Wert kann der Zielvariablen nicht zugeordnet werden | RuntimeException (Laufzeitausnahmebedingung) | 00000012 |
| Sonstige | Sonstige | 00000016 |