sinh, sinhf, sinhl
من cppreference.com
<tbody>
</tbody>
| معرفة في ملف <math.h>
|
||
float sinhf( float arg ); |
(1) | (منذ C99) |
double sinh( double arg ); |
(2) | |
long double sinhl( long double arg ); |
(3) | (منذ C99) |
| معرفة في ملف <tgmath.h>
|
||
#define sinh( arg ) |
(4) | (منذ C99) |
1-3) تحسب جيب الزاوية الزائدي
arg (وحدة القياس هو القياس الدائري).4) ماكرو عام النوع: إذا كان المعطى من النوع
long double يتم استدعاء sinhl. أما إذا كان المعطى عدد صحيح أو من النوع double يتم استدعاء sinh. فيما عدا ذلك يتم استدعاء sinhf. إذا كان المعطى عددا مركبا يتم استدعاء الدالة المركبة المناسبة (csinhf أو csinh أو csinhl).المعطيات
| arg | - | عدد ذو فاصلة عائمة يعبر عن زاوية مقاسة بالتقدير الدائري |
القيمة المُرجعة
في حالة النجاح, تُرجع جيب الزاوية الزائدي arg أي
| earg -e-arg |
| 2 |
لو كان الفشل نتيجة للطفح (Overflow) يتم إرجاع ±HUGE_VAL أو ±HUGE_VALF أو ±HUGE_VALL.
لو كان هناك خطأ في المدى نتيجة الطفح لأسفل (Underflow) يتم إرجاع القيمة الصحيحة بعد التقريب.
التعامل مع الأخطاء
يتم الإبلاغ عن الأخطاء كما هو موضح في math_errhandling.
إذا كانت البيئة تدعم حسابات الفاصلة العائمة طبقا للـ IEEE (المعيار IEC 60559 تحديدا):
- لو كان المعطى ±0 أو ±∞ يتم إرجاعه دون تعديل
- لو كان المعطى NaN يتم إرجاع NaN
ملحوظات
تشترط POSIX أن يتم إرجاع arg كما هي في حالة الـ Underflow. مالم يكن ذلك ممكنا يتم إرجاع قيمة تحددها البيئة بشرط ألا تزيد عن DBL_MIN و FLT_MIN و LDBL_MIN.
مثال
قم بتشغيل هذا الكود:
#include <stdio.h>
#include <math.h>
#include <errno.h>
#include <fenv.h>
#pragma STDC FENV_ACCESS ON
int main(void)
{
printf("sinh(1) = %f\nsinh(-1)=%f\n", sinh(1), sinh(-1));
printf("log(sinh(1) + cosh(1))=%f\n", log(sinh(1)+cosh(1)));
// special values
printf("sinh(+0) = %f\nsinh(-0)=%f\n", sinh(0.0), sinh(-0.0));
// error handling
errno=0; feclearexcept(FE_ALL_EXCEPT);
printf("sinh(710.5) = %f\n", sinh(710.5));
if(errno == ERANGE) perror(" errno == ERANGE");
if(fetestexcept(FE_OVERFLOW)) puts(" FE_OVERFLOW raised");
}
خرج ممكن:
sinh(1) = 1.175201
sinh(-1)=-1.175201
log(sinh(1) + cosh(1))=1.000000
sinh(+0) = 0.000000
sinh(-0)=-0.000000
sinh(710.5) = inf
errno == ERANGE: Numerical result out of range
FE_OVERFLOW raised
أنظر أيضا
(C99)(C99) |
تحسب جيب تمام الزاوية الزائدي (ch(x)) (دالة) |
(C99)(C99) |
تحسب ظل الزاوية الزائدي (دالة) |
(C99)(C99)(C99) |
تحسب معكوس جيب الزاوية الزائدي (قاطع تمام الزاوية الزائدي) (arsinh(x)) (دالة) |
(C99)(C99)(C99) |
تحسب جيب الزاوية المركبة الزائدي (دالة) |
مقالة مرجع C++ عن sinh
| |