English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يستخدم fma() ثلاثة معلمات x، y و z، ويقوم بإرجاع x * y + z دون فقدان الدقة
هذه الوظيفة في<cmath>محدد في ملف الرأس.
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() ثلاثة معلمات.
x -المعلمة الأولى تضرب.
y -المعلمة الثانية تضرب مع x.
z -المعلمة الثالثة تضيف إلى نتيجة ضرب x و y.
نتيجة fma() x * y + z تعادلة دقة الحسابات، ويتم تقريبها مرة واحدة لتناسب نوع النتيجة.
#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