pow(3)

الاسم
pow، powf، powl - دوال الرفع إلى قوة

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

موجز
#include <math.h>

double pow(double x, double y);
float powf(float x, float y);
long double powl(long double x, long double y);

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

powf()، powl():
    _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
        || /* Since glibc 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

الوصف
تُرجع هذه الدوال قيمة x مرفوعة إلى قوة y.

قيمة الإرجاع
عند النجاح، تُرجع هذه الدوال قيمة x إلى قوة y.

إذا فاضت النتيجة، يحدث خطأ نطاق، وتُرجع الدوال HUGE_VAL أو HUGE_VALF أو HUGE_VALL على التوالي، مع الإشارة الصحيحة رياضيًا.

إذا تدفقت النتيجة تحت المستوى، ولم تكن قابلة للتمثيل، يحدث خطأ نطاق، وتُعاد 0.0 مع الإشارة المناسبة.

إذا كان x هو +0 أو -0، وكان y عددًا صحيحًا فرديًا أقل من 0، يحدث خطأ قطب وتُعاد HUGE_VAL أو HUGE_VALF أو HUGE_VALL، بنفس إشارة x.

إذا كان x هو +0 أو -0، وكان y أقل من 0 وليس عددًا صحيحًا فرديًا، يحدث خطأ قطب وتُعاد +HUGE_VAL أو +HUGE_VALF أو +HUGE_VALL.

إذا كان x هو +0 (-0)، وكان y عددًا صحيحًا فرديًا أكبر من 0، تكون النتيجة +0 (-0).

إذا كان x هو 0، وكان y أكبر من 0 وليس عددًا صحيحًا فرديًا، تكون النتيجة +0.

إذا كان x هو -1، وكان y لا نهاية موجبة أو لا نهاية سالبة، تكون النتيجة 1.0.

إذا كان x هو +1، تكون النتيجة 1.0 (حتى إذا كان y قيمة NaN).

إذا كان y هو 0، تكون النتيجة 1.0 (حتى إذا كان x قيمة NaN).

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

إذا كانت القيمة المطلقة لـ x أقل من 1، وكان y لا نهاية سالبة، تكون النتيجة لا نهاية موجبة.

إذا كانت القيمة المطلقة لـ x أكبر من 1، وكان y لا نهاية سالبة، تكون النتيجة +0.

إذا كانت القيمة المطلقة لـ x أقل من 1، وكان y لا نهاية موجبة، تكون النتيجة +0.

إذا كانت القيمة المطلقة لـ x أكبر من 1، وكان y لا نهاية موجبة، تكون النتيجة لا نهاية موجبة.

إذا كان x لا نهاية سالبة، وكان y عددًا صحيحًا فرديًا أقل من 0، تكون النتيجة -0.

إذا كانت x سالبة لانهائية، و y أقل من 0 وليست عددًا صحيحًا فرديًا، تكون النتيجة +0.

إذا كانت x سالبة لانهائية، و y عددًا صحيحًا فرديًا أكبر من 0، تكون النتيجة سالبة لانهائية.

إذا كانت x سالبة لانهائية، و y أكبر من 0 وليست عددًا صحيحًا فرديًا، تكون النتيجة موجبة لانهائية.

إذا كانت x موجبة لانهائية، و y أقل من 0، تكون النتيجة +0.

إذا كانت x موجبة لانهائية، و y أكبر من 0، تكون النتيجة موجبة لانهائية.

باستثناء ما هو محدد أعلاه، إذا كانت x أو y قيمة NaN، تكون النتيجة NaN.

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

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

خطأ في المجال: x سالبة، و y عدد محدود غير صحيح
    تُضبط errno على EDOM. وُيرفع استثناء نقطة عائمة غير صالح (FE_INVALID).

خطأ قطبي: x صفر، و y سالبة
    يُضبط errno على ERANGE (لكن راجع BUGS). ويُثار استثناء نقطة عائمة للقسمة على صفر (FE_DIVBYZERO).

خطأ في النطاق: النتيجة تفيض
    تُضبط errno على ERANGE. وُيرفع استثناء تجاوز نقطة عائمة (FE_OVERFLOW).

خطأ في النطاق: النتيجة تتدفق سفليًا
    يُضبط errno على ERANGE. ويُثار استثناء فيض سفلي للنقطة العائمة (FE_UNDERFLOW).

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

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

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

النسخة التي تُعيد double تتوافق أيضًا مع SVr4، و 4.3BSD، و C89.

العلل

  أخطاء تاريخية (وُصلت الآن)
قبل glibc 2.28، على بعض البنى (مثل x86-64)، قد تكون pow() أبطأ بأكثر من 10,000 مرة لبعض المدخلات مقارنة بمدخلات قريبة أخرى. هذا يؤثر فقط على pow()، وليس على powf() أو powl(). وُصلت هذه المشكلة في glibc 2.28.

وُصل عدد من الأخطاء في تنفيذ glibc لـ pow() في glibc 2.16.

في إصدار glibc 2.9 وما قبله، عند حدوث خطأ قطبي (pole error)، يُضبط errno على EDOM بدلاً من ERANGE الذي يفرضه معيار POSIX. ومنذ glibc 2.10، تقوم glibc بالإجراء الصحيح.

في glibc 2.3.2 والإصدارات الأقدم، عند حدوث خطأ فيض أو تدفق سفلي، تُولد pow() في glibc استثناء نقطة عائمة غير صالح وهمي (FE_INVALID) بالإضافة إلى استثناء الفيض أو التدفق السفلي.

انظر أيضًا
cbrt(3)، cpow(3)، sqrt(3)

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

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

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