المتغيرات
فضاءات التسمية
أفعال

exp, expf, expl

من cppreference.com
< c‏ | numeric‏ | math
 
 
 
دوال رياضية شائعة
الدوال
عمليات بسيطة
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
دوال أسية ولوغارتمية ثابتة الأساس
exp
(C99)
(C99)
(C99)
(C99)
دوال أسية وجذور
(C99)
(C99)
دوال حساب المثلثات والدول الزائدية
(C99)
(C99)
(C99)
دالة الخطأ ودالة غاوس
(C99)
(C99)
(C99)
(C99)
إيجاد أقرب عدد صحيح لفاصلة عائمة (float)
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
دوال التعديل على الفاصلة العائمة (float)
(C99)(C99)
(C99)
(C99)
التصنيف والمقارنة
(C99)
(C99)
(C99)
ثوابت ماكرو
 
معرفة في ملف <math.h>
float       expf( float arg );
(1) (منذ C99)
double      exp( double arg );
(2)
long double expl( long double arg );
(3) (منذ C99)
معرفة في ملف <tgmath.h>
#define exp( arg )
(4) (منذ C99)
1-3) تحسب ناتج رفع e (عدد Euler‏, ‎2.7182818‎) للأس المعطى ‎arg‎
4) ماكرو عام النوع: إذا كان المعطى ‎arg‎ من النوع long double يتم استدعاء ‎expl‎. أما إذا كان ‎arg‎ عدد صحيح أو من النوع double يتم استدعاء ‎exp‎. فيما عدا ذلك يتم استدعاء ‎expf‎. إذا كان ‎arg‎ عددا مركبا يتم استدعاء الدالة المركبة المناسبة (cexpf أو cexp أو cexpl.)

محتويات

[تعديل] المعطيات

arg - عدد ذو فاصلة عائمة

[تعديل] القيمة المُرجعة

في حالة النجاح, تُرجع ناتج رفع e لللأس ‎arg‎ (‏‎ ‏‎ earg
‎ ‎).

لو كان هناك خطأ قطبي أو في المدى نتيجة الطفح (Overflow) يتم إرجاع ±HUGE_VAL أو ±HUGE_VALF, أو ±HUGE_VALL.

لو كان هناك خطأ في المدى نتيجة الطفح لأسفل (Underflow) يتم إرجاع القيمة الصحيحة بعد التقريب.

[تعديل] التعامل مع الأخطاء

يتم الإبلاغ عن الأخطاء كما هو موضح في math_errhandling.

إذا كانت البيئة تدعم حسابات الفاصلة العائمة طبقا للـ IEEE (المعيار IEC 60559 تحديدا):

  • لو كان المعطى ±0, يتم إرجاع 1
  • لو كان المعطى -∞, يتم إرجاع +0
  • لو كان المعطى +∞, يتم إرجاع +∞
  • لو كان المعطى NaN, يتم إرجاع NaN

[تعديل] ملحوظات

لأنواع الـ double المتوافقة مع الـ ,IEEE يحدث Overflow عند 709.8 < arg و Underflow عند arg < -708.4.


[تعديل] مثال

#include <stdio.h>
#include <math.h>
#include <float.h>
#include <errno.h>
#include <fenv.h>
#pragma STDC FENV_ACCESS ON
int main(void)
{
    printf("exp(1) = %f\n", exp(1));
    printf("FV of $100, continuously compounded at 3%% for 1 year = %f\n",
            100*exp(0.03));
    // special values
    printf("exp(-0) = %f\n", exp(-0.0));
    printf("exp(-Inf) = %f\n", exp(-INFINITY));
    //error handling
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("exp(710) = %f\n", exp(710));
    if(errno == ERANGE) perror("    errno == ERANGE");
    if(fetestexcept(FE_OVERFLOW)) puts("    FE_OVERFLOW raised");
}

خرج ممكن:

exp(1) = 2.718282
FV of $100, continuously compounded at 3% for 1 year = 103.045453
exp(-0) = 1.000000
exp(-Inf) = 0.000000
exp(710) = inf
    errno == ERANGE: Numerical result out of range
    FE_OVERFLOW raised

[تعديل] أنظر أيضا

(C99)(C99)(C99)
تحسب 2 مرفوعة لأس معين (2x)
(دالة) [edit]
(C99)(C99)(C99)
تحسب e مرفوعة لأس معين ثم يطرح منها واحد (ex-1)
(دالة) [edit]
(C99)(C99)
تحسب اللوغاريتم الطبيعي (الأساس e) ‏‎ (ln(x))‎
(دالة) [edit]
(C99)(C99)(C99)
تحسب ناتج رفع e لأس مركب معطى
(دالة) [edit]