English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل الأساسيات لـ C++

تحكم في عملية C++

الوظائف في C++

مجموعات بيانات C++ و 字ائن

هياكل بيانات C++

كلاس C++ و实体

المراجع في C++

الوراثة في C++

دليل STL لـ C++

دليل C++

استخدامات وظيفة fma() في C++ ومثال

المكتبة <cmath>

يستخدم fma() ثلاثة معلمات x، y و z، ويقوم بإرجاع x * y + z دون فقدان الدقة

هذه الوظيفة في<cmath>محدد في ملف الرأس.

نموذج fma() [من معيار C ++ 11]

double fma(double x, double y, double z);
float fma(float x, float y, float z);
long double fma(long double x, long double y, long double z); 
Promoted fma(Type1 x, Type2 y, Type z); // يستخدم لدمج أنواع الحسابات

من C ++ 11، إذا كانت المعلمات التي يتم تمريرها إلى fma() هي long double، فإن نوع العودة يتم ترقيته إلى long double. وإلا، يتم ترقيته إلى double.

[رياضيات] x * y + z = fma(x, y, z) [لغة C++]

معلمات fma()

يقبل fma() ثلاثة معلمات.

  • x -المعلمة الأولى تضرب.

  • y -المعلمة الثانية تضرب مع x.

  • z -المعلمة الثالثة تضيف إلى نتيجة ضرب x و y.

قيمة fma() العودة

نتيجة fma() x * y + z تعادلة دقة الحسابات، ويتم تقريبها مرة واحدة لتناسب نوع النتيجة.

مثال: كيف يعمل fma()؟

#include <cmath>
using namespace std;
int main()
{
    double x = 2.0, y = 3.1, z = 3.0, result;
    result = fma(x, y, z);
    cout << "fma(x, y, z) = " << result << endl;
    long double xLD = 3.4, resultLD;
    resultLD = fma(xLD, y, z);
    cout << "fma(xLD, y, z) = " << resultLD << endl;
    return 0;
}

عند تشغيل هذا البرنامج، الناتج سيكون:

fma(x, y, z) = 9.2
fma(xLD, y, z) = 13.54

المكتبة <cmath>