• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ cosh函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中cosh函数的典型用法代码示例。如果您正苦于以下问题:C++ cosh函数的具体用法?C++ cosh怎么用?C++ cosh使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了cosh函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: coshl

double coshl( double x )				{
    return (double)cosh((double) x);
}
开发者ID:X0rg,项目名称:darling,代码行数:3,代码来源:ld64.c


示例2: _d0_sinh

inline double _d0_sinh(double arg)         { return (cosh(arg)); }
开发者ID:sufism,项目名称:qucs_chs,代码行数:1,代码来源:comp_4bit.analogfunction.cpp


示例3: inv

 inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const
 {
     double L, LC, sinC;
     L= atan(sinh((xy_x*this->m_par.a - this->m_proj_parm.XS)/this->m_proj_parm.n2)/cos((xy_y*this->m_par.a - this->m_proj_parm.YS)/this->m_proj_parm.n2));
     sinC= sin((xy_y*this->m_par.a - this->m_proj_parm.YS)/this->m_proj_parm.n2)/cosh((xy_x*this->m_par.a - this->m_proj_parm.XS)/this->m_proj_parm.n2);
     LC= log(pj_tsfn(-1.0*asin(sinC),0.0,0.0));
     lp_lon= L/this->m_proj_parm.n1;
     lp_lat= -1.0*pj_phi2(exp((LC-this->m_proj_parm.c)/this->m_proj_parm.n1),this->m_par.e);
     /*fprintf(stderr,"inv:\nL      =%16.13f\nsinC   =%16.13f\nLC     =%16.13f\nXY(%16.4f,%16.4f)=LP(%16.13f,%16.13f)\n",L,sinC,LC,((xy_x/this->m_par.ra)+this->m_par.x0)/this->m_par.to_meter,((xy_y/this->m_par.ra)+this->m_par.y0)/this->m_par.to_meter,lp_lon+this->m_par.lam0,lp_lat);*/
 }
开发者ID:VTREEM,项目名称:IFCPlusPlus_old,代码行数:10,代码来源:gstmerc.hpp


示例4: Reel

/*!
  \return Une reference sur une Constante contenant notre nouveau Rationnel.
  \sa Reel
  \sa <a href = "http://www.cplusplus.com/reference/clibrary/cmath/coh/">cosh</a>
*/
Constante& Rationnel::cosinush()const
{
    Reel* res = new Reel(cosh((float)num/den));
    return *res;
}
开发者ID:BenFradet,项目名称:LO21,代码行数:10,代码来源:rationnel.cpp


示例5: g_psr_disk

double g_psr_disk (double *k, size_t dim, void *params)
{   
    double rdd,zdd,r0,p0,beta,ita,h1,h2,H;
    double rd,zd;
    double xs,ys,xl,yl;
    double p_disk,p_pulsar;
    double A,a,B,E;
    double r1;
    double b,l;
    double Deff;
    double F;
    //double v,vl,vb,vrot,vrot_disk,sigma_y,sigma_z,mean_vl,mean_vb,sigma_vl,sigma_vb,vlfunc,vbfunc;
    double M;
    double alpha;
    double v,vl,vb,vol,vob,vdl,vdb,vsl,vsb,vdx,vdy,vdz,vsx,vsy,vsz,sigma_vdx,sigma_vdy,sigma_vdz,sigma_vsx,sigma_vsy,sigma_vsz,vdxfunc,vdyfunc,vdzfunc,vsxfunc,vsyfunc,vszfunc,vrot,vrot_disk;
    double d,R;
    double re,delta_func;

    r0=8.0; // kpc

    //l=k[8];
    //b=k[9];
    //b=-2.75*3.1415926/180.0;
    //l=1.16*3.1415926/180.0;
    b=0.000001;
    l=0.000001;
    //b=5.0*3.1415926/180.0;
    //l=5.0*3.1415926/180.0;

    if ( k[0] <= k[1] )
    {
        F=0.0;
    }
    else
    {
    d=k[1]*sin(b);
    R=sqrt(r0*r0+d*d-2.0*r0*d*cos(l));
    if ((d*d+R*R-r0*r0)/(2.0*d*R)>1.0)         alpha=acos(1);
    else if ((d*d+R*R-r0*r0)/(2.0*d*R)<-1.0)    alpha=acos(-1);
    else alpha=acos((d*d+R*R-r0*r0)/(2.0*d*R));
    if(sin(l)<0) alpha=-1*alpha;
    //alpha=acos( (d*d+R*R-r0*r0)/(2.0*d*R)>0.0 ? (d*d+R*R-r0*r0)/(2.0*d*R)-1e-8 : (d*d+R*R-r0*r0)/(2.0*d*R)+1e-8);
    //alpha=asin(r0*sin(l)/R);
    //alpha=2.0*3.1415926-asin(r0*sin(l)/R);

    M=1.4;

    // source distribution: disk
    rdd=sqrt(k[0]*k[0]*cos(b)*cos(b)-2.0*k[0]*r0*cos(b)*cos(l)+r0*r0);
    zdd=k[0]*sin(b);
    xs=-k[0]*cos(b)*cos(l)+r0;
    ys=k[0]*cos(b)*sin(l);

    //p0=0.0493*pow(10,9); // M*kpc^(-3)
    p0=1.388789*0.0493*pow(10.0,9.0); // kpc^(-3)
    //p0=1.3888*0.0493*pow(10.0,9.0); // kpc^(-3)
    //p0=0.0493*pow(10.0,9.0)/3.1; // kpc^(-3)
    beta=0.565;
    h1=0.270; // kpc
    h2=0.440; // kpc
    H=2.75; // kpc

    if (((rdd/9.025)+0.114)<=0.670)
    {
        ita=0.670;
    }
    else
    {
        ita=(rdd/9.025)+0.114;
    }

    //p_disk=(p0/ita)*exp(-(rdd-r0)/H)*((1.0-beta)*pow(cosh(zdd/(ita*h1)),-2.0)+beta*exp(-fabs(zdd)/(ita*h2)));  // :disk
    if (k[0]<5.0)
    {
        p_disk=(p0/ita)*exp(-(rdd-r0)/H)*((1.0-beta)*pow(cosh(zdd/(ita*h1)),-2.0)+beta*exp(-fabs(zdd)/(ita*h2)));  // :disk
    }
    else
    {
        p_disk=(1.0/pow(k[0],4.0))*(p0/ita)*exp(-(rdd-r0)/H)*((1.0-beta)*pow(cosh(zdd/(ita*h1)),-2.0)+beta*exp(-fabs(zdd)/(ita*h2)));  // :disk
    }

    // lens distribution: psr

    //A=41.0*1.6*pow(10.0,6.0); // kpc^(-2)
    //A=41.0*8.61*pow(10.0,6.0); // kpc^(-2)  by Lorimer 2006
    //A=2000.0*4.5*pow(10.0,5.0); // kpc^(-2)    by Kaspi 2006
    A=2000.0*10000/1.18; // kpc^(-2)    by Kaspi 2006
    //A=1.37*2000.0; // kpc^(-2)    by Kaspi 2006
    //A=2000.0*10000/5.15; // kpc^(-2)    by Kaspi 2006
    r1=0.55;  // kpc
    a=1.64;
    //B=9.01;
    B=4.01;
    E=0.05; // kpc

    rd=sqrt(k[1]*k[1]*cos(b)*cos(b)-2.0*k[1]*r0*cos(b)*cos(l)+r0*r0);
    zd=k[1]*sin(b);
    xl=-k[1]*cos(b)*cos(l)+r0;
    yl=k[1]*cos(b)*sin(l);

//.........这里部分代码省略.........
开发者ID:shidai,项目名称:microlensing_old,代码行数:101,代码来源:timescale_00_beta-2.c


示例6: if

void ExprCopy::visit(const ExprCosh& e)  { if (unary_copy(e,cosh )) clone.insert(e,&cosh (EXPR)); }
开发者ID:dvinc,项目名称:ibex-lib,代码行数:1,代码来源:ibex_ExprCopy.cpp


示例7: optimise_call

void optimise_call(ExprNode *node)
{
	DBL result = 0.0;
	bool have_result = true;;

	if(node->op != OP_CALL)
		return;
	if(node->child == NULL)
		return;
	if(node->child->op != OP_CONSTANT)
		return;

	switch(node->call.token)
	{
		case SIN_TOKEN:
			result = sin(node->child->number);
			break;
		case COS_TOKEN:
			result = cos(node->child->number);
			break;
		case TAN_TOKEN:
			result = tan(node->child->number);
			break;
		case ASIN_TOKEN:
			result = asin(node->child->number);
			break;
		case ACOS_TOKEN:
			result = acos(node->child->number);
			break;
		case ATAN_TOKEN:
			result = atan(node->child->number);
			break;
		case SINH_TOKEN:
			result = sinh(node->child->number);
			break;
		case COSH_TOKEN:
			result = cosh(node->child->number);
			break;
		case TANH_TOKEN:
			result = tanh(node->child->number);
			break;
		case ASINH_TOKEN:
			result = asinh(node->child->number);
			break;
		case ACOSH_TOKEN:
			result = acosh(node->child->number);
			break;
		case ATANH_TOKEN:
			result = atanh(node->child->number);
			break;
		case ABS_TOKEN:
			result = fabs(node->child->number);
			break;
		case RADIANS_TOKEN:
			result = node->child->number * M_PI / 180.0;
			break;
		case DEGREES_TOKEN:
			result = node->child->number * 180.0 / M_PI;
			break;
		case FLOOR_TOKEN:
			result = floor(node->child->number);
			break;
		case INT_TOKEN:
			result = (int)(node->child->number);
			break;
		case CEIL_TOKEN:
			result = ceil(node->child->number);
			break;
		case SQRT_TOKEN:
			result = sqrt(node->child->number);
			break;
		case EXP_TOKEN:
			result = exp(node->child->number);
			break;
		case LN_TOKEN:
			if(node->child->number > 0.0)
				result = log(node->child->number);
			else
				Error("Domain error in 'ln'.");
			break;
		case LOG_TOKEN:
			if(node->child->number > 0.0)
				result = log10(node->child->number);
			else
				Error("Domain error in 'log'.");
			break;
		case MIN_TOKEN:
			have_result = false;
			break;
		case MAX_TOKEN:
			have_result = false;
			break;
		case ATAN2_TOKEN:
			have_result = false;
			break;
		case POW_TOKEN:
			have_result = false;
			break;
		case MOD_TOKEN:
			have_result = false;
//.........这里部分代码省略.........
开发者ID:obeoneji,项目名称:light_field_personal,代码行数:101,代码来源:fnsyntax.cpp


示例8: atan2

bool Function::nonLinear(double &x, double &y) {
  double phi = atan2(y, x);
  double r = sqrt(x * x + y * y);
  switch (_nonLinear) {
  case 0:
    break;
  case 1:
    x = sin(x);
    y = sin(y);
    break;
  case 2:
    x = x / pow(r, 2);
    y = y / pow(r, 2);
    break;
  case 3:
    x = r * cos(phi + r);
    y = r * sin(phi + r);
    break;
  case 4:
    x = r * cos(phi * 2);
    y = r * sin(phi * 2);
    break;
  case 5:
    x = phi / M_PI;
    y = r - 1;
    break;
  case 6:
    x = r * sin(phi + r);
    y = r * cos(phi - r);
    break;
  case 7:
    x = r * sin(phi * r);
    y = 0 - cos(phi * r);
    break;
  case 8:
    x = phi * sin(M_PI * r) / M_PI;
    y = phi * cos(M_PI * r) / M_PI;
    break;
  case 9:
    x = (cos(phi) + sin(r)) / r;
    y = (sin(phi) - cos(r)) / r;
    break;
  case 10: {
    x = sin(phi) / r;
    y = cos(phi) * r;
    break;
  }
  case 11: {
    x = sin(phi) * cos(r);
    y = cos(phi) * sin(r);
    break;
  }
  case 12: {
    x = r * pow(sin(phi + r), 3);
    y = r * pow(cos(phi - r), 3);
    break;
  }
  case 13: {
    double omega = randomTo(2) ? M_PI : 0;
    x = sqrt(r) * cos((phi / 2) + omega);
    y = sqrt(r) * sin((phi / 2) + omega);
    break;
  }
  case 14: {
    x = (2 * r / (r + 1)) * x;
    y = (2 * r / (r + 1)) * y;
    break;
  }
  case 15: {
    double nx = cos(M_PI * x) * cosh(y);
    double ny = (0 - sin(M_PI * x)) * sinh(y);
    x = nx;
    y = ny;
    break;
  }
  default:
    return false;
  }
  return true;
}
开发者ID:jvesely,项目名称:ignitor,代码行数:80,代码来源:function.cpp


示例9: __ieee754_cosh

double ICACHE_FLASH_ATTR __ieee754_cosh(double x) {
    return cosh(x);
}
开发者ID:thachdovan,项目名称:SMeshStudio,代码行数:3,代码来源:libc_replacements.c


示例10: __mth_i_dcosh

double
__mth_i_dcosh(double d)
{
  return cosh(d);
}
开发者ID:heinerbilch,项目名称:flang,代码行数:5,代码来源:dcosh.c


示例11: v

 //-----------------------------------------------------------------------
 void FunCmplxCosH::Eval(ptr_val_type &ret, const ptr_val_type *a_pArg, int)
 {
   cmplx_type v(a_pArg[0]->GetFloat(), a_pArg[0]->GetImag());
   *ret = cosh(v);
 }
开发者ID:ArashPartow,项目名称:math-parser-benchmark-project,代码行数:6,代码来源:mpFuncCmplx.cpp


示例12: domath

void
domath  (void)
{
#ifndef NO_DOUBLE
  double f1;
  double f2;

  int i1;

  f1 = acos (0.0);
  fprintf( stdout, "acos           : %f\n", f1);

  f1 = acosh (0.0);
  fprintf( stdout, "acosh          : %f\n", f1);

  f1 = asin (1.0);
  fprintf( stdout, "asin           : %f\n", f1);

  f1 = asinh (1.0);
  fprintf( stdout, "asinh          : %f\n", f1);

  f1 = atan (M_PI_4);
  fprintf( stdout, "atan           : %f\n", f1);

  f1 = atan2 (2.3, 2.3);
  fprintf( stdout, "atan2          : %f\n", f1);

  f1 = atanh (1.0);
  fprintf( stdout, "atanh          : %f\n", f1);

  f1 = cbrt (27.0);
  fprintf( stdout, "cbrt           : %f\n", f1);

  f1 = ceil (3.5);
  fprintf( stdout, "ceil           : %f\n", f1);

  f1 = copysign (3.5, -2.5);
  fprintf( stdout, "copysign       : %f\n", f1);

  f1 = cos (M_PI_2);
  fprintf( stdout, "cos            : %f\n", f1);

  f1 = cosh (M_PI_2);
  fprintf( stdout, "cosh           : %f\n", f1);

  f1 = erf (42.0);
  fprintf( stdout, "erf            : %f\n", f1);

  f1 = erfc (42.0);
  fprintf( stdout, "erfc           : %f\n", f1);

  f1 = exp (0.42);
  fprintf( stdout, "exp            : %f\n", f1);

  f1 = exp2 (0.42);
  fprintf( stdout, "exp2           : %f\n", f1);

  f1 = expm1 (0.00042);
  fprintf( stdout, "expm1          : %f\n", f1);

  f1 = fabs (-1.123);
  fprintf( stdout, "fabs           : %f\n", f1);

  f1 = fdim (1.123, 2.123);
  fprintf( stdout, "fdim           : %f\n", f1);

  f1 = floor (0.5);
  fprintf( stdout, "floor          : %f\n", f1);
  f1 = floor (-0.5);
  fprintf( stdout, "floor          : %f\n", f1);

  f1 = fma (2.1, 2.2, 3.01);
  fprintf( stdout, "fma            : %f\n", f1);

  f1 = fmax (-0.42, 0.42);
  fprintf( stdout, "fmax           : %f\n", f1);

  f1 = fmin (-0.42, 0.42);
  fprintf( stdout, "fmin           : %f\n", f1);

  f1 = fmod (42.0, 3.0);
  fprintf( stdout, "fmod           : %f\n", f1);

  /* no type-specific variant */
  i1 = fpclassify(1.0);
  fprintf( stdout, "fpclassify     : %d\n", i1);

  f1 = frexp (42.0, &i1);
  fprintf( stdout, "frexp          : %f\n", f1);

  f1 = hypot (42.0, 42.0);
  fprintf( stdout, "hypot          : %f\n", f1);

  i1 = ilogb (42.0);
  fprintf( stdout, "ilogb          : %d\n", i1);

  /* no type-specific variant */
  i1 = isfinite(3.0);
  fprintf( stdout, "isfinite       : %d\n", i1);

//.........这里部分代码省略.........
开发者ID:FullMentalPanic,项目名称:RTEMS_NEW_TOOL_CHAIN,代码行数:101,代码来源:domath.c


示例13: LibCosh

void LibCosh(struct ParseState *Parser, struct Value *ReturnValue, struct Value **Param, int NumArgs)
{
    ReturnValue->Val->FP = cosh(Param[0]->Val->FP);
}
开发者ID:lieff,项目名称:lvg,代码行数:4,代码来源:clibrary.c


示例14: r_cosh

double r_cosh(real *x)
#endif
{
return( cosh(*x) );
}
开发者ID:DanIverson,项目名称:OpenVnmrJ,代码行数:5,代码来源:r_cosh.c


示例15: coshf

float
coshf(float x)
{
  return (float) cosh(x);
}
开发者ID:aosm,项目名称:gcc3,代码行数:5,代码来源:stubs.c


示例16: c_dd_cosh

 void c_dd_cosh(const double *a, double *b) {
     dd_real bb;
     bb = cosh(dd_real(a));
     TO_DOUBLE_PTR(bb, b);
 }
开发者ID:aoki-t,项目名称:libqd,代码行数:5,代码来源:c_dd.cpp


示例17: coshl

long double
coshl(long double x)
{
  return cosh((double) x);
}
开发者ID:aosm,项目名称:gcc3,代码行数:5,代码来源:stubs.c


示例18: bessel_ik

void bessel_ik( double xnu, double x, double *ri, double *rk, double *rip, double *rkp ) {

    const double EPS = 1.0e-16;
    const double FPMIN = 1.0e-30;
    const int MAXIT = 10000;
    const double XMIN = 2.0;

    int i, l, nl;
    double a, a1, b, c, d, del, del1, delh, dels, e, f, fact, fact2, ff,
           gam1, gam2, gammi, gampl, h, p, pimu, q, q1, q2, qnew, ril, ril1, rimu,
           rip1, ripl, ritemp, rk1, rkmu, rkmup, rktemp, s, sum, sum1, x2, xi, xi2, xmu, xmu2;

    if ( x <= 0.0 || xnu < 0.0 ) nrerror( "Bad arguments in bessel_ik." );

    nl = (int)(xnu + 0.5);

    xmu = xnu - nl;
    xmu2 = xmu*xmu;
    xi = 1.0/x;
    xi2 = 2.0*xi;
    h = xnu*xi;
    if ( h < FPMIN ) h = FPMIN;
    b = xi2*xnu;
    d = 0.0;
    c = h;
    for ( i = 1; i <= MAXIT; ++i ) {
        b += xi2;
        d = 1.0/(b + d);
        c = b + 1.0/c;
        del = c*d;
        h = del*h;
        if ( fabs(del-1.0) < EPS ) break;
    }
    if ( i > MAXIT ) nrerror( "Argument x too large in bessel_ik; try asymptotic expansion." );
    ril = FPMIN;
    ripl = h*ril;
    ril1 = ril;
    rip1 = ripl;
    fact = xnu*xi;
    for ( l = nl; l >= 1; --l ) {
        ritemp = fact*ril + ripl;
        fact -= xi;
        ripl = fact*ritemp + ril;
        ril = ritemp;
    }
    f= ripl/ril;
    if ( x < XMIN ) {
        x2 = 0.5*x;
        pimu = PI*xmu;
        fact = (fabs(pimu) < EPS ? 1.0 : pimu/sin(pimu));
        d = -log(x2);
        e = xmu*d;
        fact2 = (fabs(e) < EPS ? 1.0 : sinh(e)/e);
        bessel_cheb( xmu, &gam1, &gam2, &gampl, &gammi );
        ff = fact*(gam1*cosh(e) + gam2*fact2*d);
        sum = ff;
        e = exp(e);
        p = 0.5*e/gampl;
        q = 0.5/(e*gammi);
        c = 1.0;
        d = x2*x2;
        sum1 = p;
        for ( i = 1; i <= MAXIT; ++i ) {
            ff = (i*ff + p + q)/(i*i - xmu2);
            c *= d/i;
            p /= i - xmu;
            q /= i + xmu;
            del = c*ff;
            sum += del;
            del1 = c*(p - i*ff);
            sum1 += del1;
            if ( fabs(del) < EPS*fabs(sum) ) break;
        }
        if ( i > MAXIT ) nrerror("Bessel k series failed to converge in bessel_jy." );
        rkmu = sum;
        rk1 = sum1*xi2;
    } else {
        b = 2.0*(1.0 + x);
        d = 1.0/b;
        h = delh = d;
        q1 = 0.0;
        q2 = 1.0;
        a1 = 0.25 - xmu2;
        q = c = a1;
        a = -a1;
        s = 1.0 + q*delh;
        for ( i = 2; i <= MAXIT; ++i ) {
            a -= 2*(i - 1);
            c = -a*c/i;
            qnew = (q1 - b*q2)/a;
            q1 = q2;
            q2 = qnew;
            q += c*qnew;
            b += 2.0;
            d = 1.0/(b + a*d);
            delh = (b*d - 1.0)*delh;
            h += delh;
            dels = q*delh;
            s += dels;
            if ( fabs(dels/s) < EPS ) break;
//.........这里部分代码省略.........
开发者ID:emsr,项目名称:tr29124_test,代码行数:101,代码来源:bessel_general.c


示例19: diskthick

double diskthick (double z)                 //  vertical mass distribution
{                                           //
    return 1.0/pow(cosh(z / z0), 2.0);      //
}                                           //
开发者ID:nmuldavin,项目名称:NBodyIntegrator,代码行数:4,代码来源:makegalaxy.cpp


示例20: bessel_jy

void bessel_jy( double xnu, double x, double *rj, double *ry, double *rjp, double *ryp ) {

    const double  EPS    =  1.0e-16;
    const double  FPMIN  =  1.0e-30;
    const int     MAXIT  =  10000;
    const double  XMIN   =  2.0;

    int i, isign, l, nl;
    double a, b, br, bi, c, cr, ci, d, del, del1, den, di, dlr, dli, dr, e, f, fact, fact2,
           fact3, ff, gam, gam1, gam2, gammi, gampl, h, p, pimu, pimu2, q, r, rjl,
           rjl1, rjmu, rjp1, rjpl, rjtemp, ry1, rymu, rymup, rytemp, sum, sum1,
           temp, w, x2, xi, xi2, xmu, xmu2;

    if ( x <= 0.0 || xnu < 0.0 ) nrerror( "Bad arguments in bessel_jy." );

    nl = ( x < XMIN ? (int)(xnu + 0.5) : imax( 0, (int)(xnu - x + 1.5) ) );

    xmu = xnu - nl;
    xmu2 = xmu*xmu;
    xi = 1.0/x;
    xi2 = 2.0*xi;
    w = xi2/PI;
    isign = 1;
    h = xnu*xi;
    if ( h < FPMIN ) h = FPMIN;
    b = xi2*xnu;
    d = 0.0;
    c = h;
    for ( i = 1; i <= MAXIT; ++i ) {
        b += xi2;
        d = b - d;
        if ( fabs(d) < FPMIN ) d = FPMIN;
        c = b - 1.0/c;
        if ( fabs(c) < FPMIN ) c = FPMIN;
        d = 1.0/d;
        del = c*d;
        h = del*h;
        if ( d < 0.0 ) isign = -isign;
        if ( fabs(del - 1.0) < EPS ) break;
    }
    if ( i > MAXIT ) nrerror( "Argument x too large in bessel_jy; try asymptotic expansion." );
    rjl = isign*FPMIN;
    rjpl = h*rjl;
    rjl1 = rjl;
    rjp1 = rjpl;
    fact = xnu*xi;
    for ( l = nl; l >= 1; --l ) {
        rjtemp = fact*rjl + rjpl;
        fact -= xi;
        rjpl = fact*rjtemp - rjl;
        rjl = rjtemp;
    }
    if ( rjl == 0.0 ) rjl = EPS;
    f= rjpl/rjl;
    if ( x < XMIN ) {
        x2 = 0.5*x;
        pimu = PI*xmu;
        fact = ( fabs(pimu) < EPS ? 1.0 : pimu/sin(pimu) );
        d = -log(x2);
        e = xmu*d;
        fact2 = ( fabs(e) < EPS ? 1.0 : sinh(e)/e );
        bessel_cheb( xmu, &gam1, &gam2, &gampl, &gammi );
        ff = (2.0/PI)*fact*(gam1*cosh(e) + gam2*fact2*d);
        e = exp(e);
        p = e/(PI*gampl);
        q = 1.0/(e*PI*gammi);
        pimu2 = 0.5*pimu;
        fact3 = (fabs(pimu2) < EPS ? 1.0 : sin(pimu2)/pimu2 );
        r = PI*pimu2*fact3*fact3;
        c = 1.0;
        d = -x2*x2;
        sum = ff + r*q;
        sum1 = p;
        for ( i = 1; i <= MAXIT; ++i ) {
            ff = (i*ff + p + q)/(i*i - xmu2);
            c *= d/i;
            p /= i - xmu;
            q /= i + xmu;
            del = c*(ff + r*q);
            sum += del;
            del1 = c*p - i*del;
            sum1 += del1;
            if ( fabs(del) < EPS*(1.0 + fabs(sum)) ) break;
        }
        if ( i > MAXIT ) nrerror("Bessel y series failed to converge in bessel_jy." );
        rymu = -sum;
        ry1 = -sum1*xi2;
        rymup = xmu*xi*rymu - ry1;
        rjmu = w/(rymup - f*rymu);
    } else {
        a = 0.25 - xmu2;
        q = 1.0;
        p = -0.5*xi;
        br = 2.0*x;
        bi = 2.0;
        fact = a*xi/(p*p + q*q);
        cr = br + q*fact;
        ci = bi + p*fact;
        den = br*br + bi*bi;
        dr = br/den;
//.........这里部分代码省略.........
开发者ID:emsr,项目名称:tr29124_test,代码行数:101,代码来源:bessel_general.c



注:本文中的cosh函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ cosl函数代码示例发布时间:2022-05-30
下一篇:
C++ cosf函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap