fma(3)

الاسم
fma، fmaf، fmal - ضرب وجمع الفاصلة العائمة

المكتبة
مكتبة الرياضيات (libm، -lm)

موجز
#include <math.h>

double fma(double x, double y, double z);
float fmaf(float x, float y, float z);
long double fmal(long double x, long double y, long double z);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

fma()، fmaf()، fmal():
    _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

الوصف
تحسب هذه الدوال x * y + z. يُقرّب الناتج كعملية ثلاثية واحدة وفقًا لنمط التقريب الحالي (انظر fenv(3)).

قيمة الإرجاع
تُرجع هذه الدوال قيمة x * y + z، مقرّبة كعملية ثلاثية واحدة.

إذا كان x أو y هو NaN، فسيُعاد NaN.

إذا كان x ضرب y لا نهاية مضبوطة، و z لا نهاية بالإشارة المعاكسة، يحدث خطأ نطاق، وتُعاد قيمة NaN.

إذا كان أحد x أو y لا نهاية، والآخر 0، و z ليس NaN، يحدث خطأ نطاق، وتُعاد قيمة NaN.

إذا كان أحد x أو y لا نهاية، والآخر 0، و z هو NaN، يحدث خطأ نطاق، وتُعاد قيمة NaN.

إذا كان x ضرب y ليس لا نهاية ضرب صفر (أو العكس)، و z هو NaN، تُعاد قيمة NaN.

إذا فاض الناتج، يحدث خطأ نطاق، وتُعاد لا نهاية بالإشارة الصحيحة.

إذا نقص الناتج، يحدث خطأ نطاق، وتُعاد 0 بإشارة.

الأخطاء
انظر math_error(7) لمعلومات حول كيفية تحديد ما إذا كان قد حدث خطأ عند استدعاء هذه الدوال.

الأخطاء التالية يمكن أن تحدث:

خطأ نطاق: x * y + z أو x * y غير صالح.
    رُفع استثناء نقطة عائمة غير صالحة (FE_INVALID).

خطأ في النطاق: طفح في النتيجة
    يُثار استثناء طفح النقطة العائمة (FE_OVERFLOW).

خطأ في النطاق: فيض تحتي في النتيجة
    رُفع استثناء نقص تدفق نقطة عائمة (FE_UNDERFLOW).

هذه الدوال لا تضبط errno.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
fma(), fmaf(), fmal() | سلامة الخيوط | MT-Safe

المعايير
C11, POSIX.1-2008.

التاريخ
glibc 2.1. C99، POSIX.1-2001.

انظر أيضًا
remainder(3)، remquo(3)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.