نطاقات
المتغيرات
أفعال

sinh, sinhf, sinhl

من cppreference.com
< c | numeric | math
 
 
 
دوال رياضية شائعة
الدوال
عمليات بسيطة
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
دوال أسية ولوغارتمية ثابتة الأساس
(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)
ثوابت ماكرو
 
<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))
(دالة) [edit]
(C99)(C99)
تحسب ظل الزاوية الزائدي
(دالة) [edit]
(C99)(C99)(C99)
تحسب معكوس جيب الزاوية الزائدي (قاطع تمام الزاوية الزائدي) (arsinh(x))
(دالة) [edit]
(C99)(C99)(C99)
تحسب جيب الزاوية المركبة الزائدي
(دالة) [edit]