exp, expf, expl
من cppreference.com
| معرفة في ملف <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) |
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) (دالة) |
| (C99)(C99)(C99) |
تحسب e مرفوعة لأس معين ثم يطرح منها واحد (ex-1) (دالة) |
| (C99)(C99) |
تحسب اللوغاريتم الطبيعي (الأساس e) (ln(x)) (دالة) |
| (C99)(C99)(C99) |
تحسب ناتج رفع e لأس مركب معطى (دالة) |
| مقالة مرجع C++ عن exp
|

