Ansicht
Dokumentation

ABENFLOATING_POINT_FUNCTIONS - FLOATING POINT FUNCTIONS

ABENFLOATING_POINT_FUNCTIONS - FLOATING POINT FUNCTIONS

General Material Data   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- acos, sin, tanh, exp, log, sqrt, ...

... num_func( arg ) ...

Wirkung

Eingebaute Gleitpunktfunktion mit genau einem unbenannten Argument, für das eine Gleitpunktzahl erwartet wird. Gleitpunktfunktionen sind dahingehend überladen, dass der Rückgabewert vom Typ decfloat34 oder f sein kann. Es gilt die Einschränkung, dass dezimale Gleitpunktzahlen nur als Argumente von exp, log, log10 und sqrt möglich sind. Das Argument einer Gleitpunktfunktion muss außerhalb eines arithmetischen Ausdrucks ein einzelnes Datenobjekt und kann innerhalb eines arithmetischen Ausdrucks selbst ein arithmetischer Ausdruck sein.

Folgende Tabelle zeigt die Gleitpunktfunktion und ihre Wirkung.

Funktion num_func Bedeutung Definitionsbereich
acos Arcuscosinus [-1,1], kein decfloat34
asin Arcussinus [-1,1], kein decfloat34
atan Arcustangens -, kein decfloat34
cos Cosinus -, kein decfloat34
sin Sinus -, kein decfloat34
tan Tangens -, kein decfloat34
cosh Hyperbelcosinus -, kein decfloat34
sinh Hyperbelsinus -, kein decfloat34
tanh Hyperbeltangens -, kein decfloat34
exp Exponentialfunktion zur Basis e [-709, 709] für Typ f und [-14144, 14149] für Typ decfloat34
log natürlicher Logarithmus > 0
log10 Logarithmus zur Basis 10 > 0
sqrt Quadratwurzel >= 0

Bei den Funktionen, bei denen "kein decfloat34" angegeben ist, darf der Rechentyp derzeit nicht decfloat34 sein. Wenn eine dieser Funktionen in einem Ausdruck dieses Rechentyps angegeben ist, kommt es zu einem Syntaxfehler oder zur Ausnahme CX_SY_UNSUPPORTED_FUNCTION.

Für die Gleitpunktarithmetik, in der eine Gleitpunktfunktion berechnet wird, und den Datentyp des Rückgabewerts gilt folgendes:

  • Wenn das Argument vom Typ decfloat16 oder decfloat34 ist, wird eine Gleitpunktfunktion in dezimaler Gleitpunktarithmetik berechnet und der Rückgabewert ist vom Typ decfloat34.
  • Wenn eine Gleitpunktfunktion in einem arithmetischen Ausdruck verwendet wird, dessen Rechentyp decfloat34 ist, oder einen numerischen Ausdruck vom Typ decfloat34 als Argument enthält, berechnet sie ebenfalls einen Rückgabewert vom Typ decfloat34 und das Argument wird falls notwendig vorher in den Datentyp decfloat34 konvertiert.
  • In allen anderen Fällen berechnen Gleitpunktfunktionen mit binärer Gleitpunktarithmetik einen Rückgabewert vom Typ f und das Argument wird falls notwendig vorher in den Datentyp f konvertiert.

Für die Funktionen, für die ein Definitionsbereich angegeben ist, muss der Wert von arg in den angegebenen Grenzen liegen. Für die Exponentialfunktion exp ist die fehlerfreie Ausführung für Argumente innerhalb der Definitionsbereiche garantiert, da die Ergebnisse dann innerhalb der Wertebereiche für binäre bzw. dezimale Gleitpunktzahlen nach IEEE-754 liegen. Für Argumente kleiner -709 ist das Ergebnis bei binären Gleitpunktzahlen plattformabhängig entweder immer 0 oder es kommt ab einem bestimmten Wert zu einer behandelbaren Ausnahme der Klasse CX_SY_ARITHMETIC_OVERFLOW.

Die trigonometrischen Funktionen sin, cos und tan sind zwar für beliebige Argumente definiert, die Ergebnisse werden aber ungenau, wenn der Betrag des Arguments größer als etwa 100.000.000 ist.

Hinweise

  • Die Funktion atan ist bei ungeradzahligen Vielfachen von pi/2 zwar undefiniert, der Definitionsbereich für atan ist aber nicht eingeschränkt, da ein Argument der Funktion nie genau den Wert von pi/2 enthalten kann.

Beispiel

Die Ergebnisse in der internen Tabelle sollten alle den Wert 1 haben oder sehr nahe bei diesem liegen.

Ausnahmen

Behandelbare Ausnahmen

CX_SY_ARG_OUT_OF_DOMAIN

  • Ursache: Unzulässiger Aufruf von acos
    Laufzeitfehler: COMPUTE_ACOS_DOMAIN
  • Ursache: Unzulässiger Aufruf von asin
    Laufzeitfehler: COMPUTE_ASIN_DOMAIN
  • Ursache: Unzulässiger Aufruf von cos
    Laufzeitfehler: COMPUTE_COS_DOMAIN
  • Ursache: Unzulässiger Aufruf von log10
    Laufzeitfehler: COMPUTE_LOG10_ERROR
  • Ursache: Unzulässiger Aufruf von log
    Laufzeitfehler: COMPUTE_LOG_ERROR
  • Ursache: Unzulässiger Aufruf von sin
    Laufzeitfehler: COMPUTE_SIN_DOMAIN
  • Ursache: Unzulässiger Aufruf von sqrt
    Laufzeitfehler: COMPUTE_SQRT_DOMAIN
  • Ursache: Unzulässiger Aufruf von tan
    Laufzeitfehler: COMPUTE_TAN_DOMAIN





Vendor Master (General Section)   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9948 Date: 20240523 Time: 172355     sap01-206 ( 107 ms )