exp, expf, expl
من cppreference.com
<tbody>
</tbody>
| معرفة في ملف <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
| |