当前位置: 首页>>代码示例>>C++>>正文


C++ erf函数代码示例

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


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

示例1: simult_chi_huber

double
vpRobust::simultscale(vpColVector &x)
{
  unsigned int p = 6; //Number of parameters to be estimated.
  unsigned int n = x.getRows();
  double sigma2=0;
  /* long */ double Expectation=0;
  /* long */ double Sum_chi=0;
  /* long */ double chiTmp =0;

  for(unsigned int i=0; i<n; i++)
  {

    chiTmp = simult_chi_huber(x[i]);
    Expectation += chiTmp*(1-erf(chiTmp));
    Sum_chi += chiTmp;

#ifdef VP_DEBUG
#if VP_DEBUG_MODE == 3
    {
      std::cout << "erf = " << 1-erf(chiTmp) << std::endl;
      std::cout << "x[i] = " << x[i] <<std::endl;
      std::cout << "chi = " << chiTmp << std::endl;
      std::cout << "Sum chi = " << chiTmp*vpMath::sqr(sig_prev) << std::endl;
      std::cout << "Expectation = " << chiTmp*(1-erf(chiTmp)) << std::endl;
      //getchar();
    }
#endif
#endif
  }


  sigma2 = Sum_chi*vpMath::sqr(sig_prev)/((n-p)*Expectation);

#ifdef VP_DEBUG
#if VP_DEBUG_MODE == 3
  {
    std::cout << "Expectation = " << Expectation << std::endl;
    std::cout << "Sum chi = " << Sum_chi << std::endl;
    std::cout << "sig_prev" << sig_prev << std::endl;
    std::cout << "sig_out" << sqrt(fabs(sigma2)) << std::endl;
  }
#endif
#endif

  return sqrt(fabs(sigma2));

}
开发者ID:DaikiMaekawa,项目名称:visp,代码行数:48,代码来源:vpRobust.cpp

示例2: erf

Foam::scalar Foam::distributionModels::normal::sample() const
{

    scalar a = erf((minValue_ - expectation_)/variance_);
    scalar b = erf((maxValue_ - expectation_)/variance_);

    scalar y = rndGen_.sample01<scalar>();
    scalar x = erfInv(y*(b - a) + a)*variance_ + expectation_;

    // Note: numerical approximation of the inverse function yields slight
    //       inaccuracies

    x = min(max(x, minValue_), maxValue_);

    return x;
}
开发者ID:000861,项目名称:OpenFOAM-2.1.x,代码行数:16,代码来源:normal.C

示例3: erf

Foam::scalar Foam::pdfs::lognormal::sample() const
{

    scalar a = erf((minValue_ - expectation_)/variance_);
    scalar b = erf((maxValue_ - expectation_)/variance_);

    scalar y = rndGen_.scalar01();
    scalar x = erfInv(y*(b - a) + a)*variance_ + expectation_;

    // Note: numerical approximation of the inverse function yields slight
    //       inaccuracies

    x = min(max(exp(x), exp(minValue_)), exp(maxValue_));

    return log(x);
}
开发者ID:rbpiccinini,项目名称:codes,代码行数:16,代码来源:lognormal.C

示例4: trans_unif

static double trans_unif(double x , const arg_pack_type * arg) {
  double y;
  double min   = arg_pack_iget_double(arg , 0);
  double max   = arg_pack_iget_double(arg , 1);
  y = 0.5*(1 + erf(x/sqrt(2.0))); /* 0 - 1 */
  return y * (max - min) + min;
}
开发者ID:JacobStoren,项目名称:ert,代码行数:7,代码来源:trans_func.c

示例5: function

 double function(const double phi, double **data)
 {
   double alfa = (*data[2]);
   double tau = (*data[3]); 
   double X = erf((tau * phi - alfa) / sqrt((1 - tau) * (1 + tau)));
   return X * X * exp(- phi * phi / 2); // / (*data[4]);
 }
开发者ID:mikaem,项目名称:PMFpack,代码行数:7,代码来源:Integrator.cpp

示例6: erf

double
Partitioner::CodeCriteria::get_vote(const RegionStats *stats, std::vector<double> *votes) const
{
    if (votes!=NULL)
        votes->resize(dictionary.size(), NAN);

    double sum=0.0, total_wt=0.0;
    for (size_t cc_id=0; cc_id<criteria.size(); ++cc_id) {
        if (criteria[cc_id].weight <= 0.0)
            continue;

        size_t stat_id = stats->find_analysis(get_name(cc_id));
        if (-1==(ssize_t)stat_id)
            continue;

        double stat_val = stats->get_value(stat_id);
        if (!std::isnan(stat_val)) {
            double c = 0.0==criteria[cc_id].variance ?
                       (stat_val==criteria[cc_id].mean ? 1.0 : 0.0) :
                       1 + erf(-fabs(stat_val-criteria[cc_id].mean) / sqrt(2*criteria[cc_id].variance));
            if (votes)
                (*votes)[cc_id] = c;
            if (!std::isnan(c)) {
                sum += c * criteria[cc_id].weight;
                total_wt += criteria[cc_id].weight;
            }
        }
    }
    return total_wt>0.0 ? sum / total_wt : NAN;
}
开发者ID:Root-nix,项目名称:rose,代码行数:30,代码来源:PStatistics.C

示例7: sqrt

//! inverse error function is taken from NIST
double userFunctions::erfinv (double x)
{
    if (x < -1 || x > 1)
        return NAN;
    
    if (x == 0)
        return 0;
    
    int  sign_x;
    if (x > 0) {
        sign_x = 1;
    } else {
        sign_x = -1;
        x = -x;
    }
    
    double r;
    if (x <= 0.686) {
        double x2 = x * x;
        r = x * (((-0.140543331 * x2 + 0.914624893) * x2 + -1.645349621) * x2 + 0.886226899);
        r /= (((0.012229801 * x2 + -0.329097515) * x2 + 1.442710462) * x2 + -2.118377725) * x2 + 1;
    } else {
        double y = sqrt (-log((1 - x) / 2));
        r = (((1.641345311 * y + 3.429567803) * y + -1.62490649) * y + -1.970840454);
        r /= ((1.637067800 * y + 3.543889200) * y + 1);
    }
    
    r *= sign_x;
    x *= sign_x;
    
    r -= (erf(r) - x) / (2 / sqrt (M_PI) * exp(-r*r));
    
    return r;
}
开发者ID:auterpe,项目名称:Smilei_SEF,代码行数:35,代码来源:userFunctions.cpp

示例8: ndtr

double ndtr(double a)
{
double x, y, z;

if (isnan(a)) {
  mtherr("ndtr", DOMAIN);
  return (NAN);
}

x = a * SQRTH;
z = fabs(x);

if( z < SQRTH )
	y = 0.5 + 0.5 * erf(x);

else
	{
	y = 0.5 * erfc(z);

	if( x > 0 )
		y = 1.0 - y;
	}

return(y);
}
开发者ID:SaulAryehKohn,项目名称:aipy,代码行数:25,代码来源:ndtr.c

示例9: l_erf

static double
l_erf(char *nm)
{
    extern double  erf();

    return(erf(argument(1)));
}
开发者ID:MITSustainableDesignLab,项目名称:Daysim,代码行数:7,代码来源:biggerlib.c

示例10: Phi

/*c.d.f of Standard Normal*/
double Phi(double x)
{
  double tmp=x/sqrt(2.);
  tmp=1+erf(tmp); 

  return tmp/2;
}
开发者ID:mallyvai,项目名称:hashbash,代码行数:8,代码来源:df.c

示例11: cephes_normal

double
cephes_normal(double x)
{
	double arg, result, sqrt2=1.414213562373095048801688724209698078569672;

	if (x > 0) {
		arg = x/sqrt2;
		result = 0.5 * ( 1 + erf(arg) );
	}
	else {
		arg = -x/sqrt2;
		result = 0.5 * ( 1 - erf(arg) );
	}

	return( result);
}
开发者ID:drazil1234,项目名称:StreamCoding,代码行数:16,代码来源:cephes.c

示例12: WarningIn

void Foam::equationReader::evalDimsErfDimCheck
(
    const equationReader * eqnReader,
    const label index,
    const label i,
    const label storageOffset,
    label& storeIndex,
    dimensionSet& xDims,
    dimensionSet sourceDims
) const
{
    if
    (
        !xDims.dimensionless() && dimensionSet::debug
    )
    {
        WarningIn("equationReader::evalDimsErfDimCheck")
            << "Dimension error thrown for operation ["
            << equationOperation::opName
            (
                operator[](index)[i].operation()
            )
            << "] in equation " << operator[](index).name()
            << ", given by:" << token::NL << token::TAB
            << operator[](index).rawText();
    }
    dimensionedScalar ds("temp", xDims, 0.0);
    xDims.reset(erf(ds).dimensions());
    operator[](index)[i].assignOpDimsFunction
    (
        &Foam::equationReader::evalDimsErf
    );
}
开发者ID:Unofficial-Extend-Project-Mirror,项目名称:openfoam-extend-Breeder1.6-libraries-equationReaderExtension,代码行数:33,代码来源:equationReaderEvalDimsP.C

示例13: evalf

ex evalf( const ex& x )
{
	if( is_a<numeric>(x) )
		return bealab::erf( ex_to<numeric>(x).to_double() );
	else
		return erf(x).hold();
}
开发者ID:damianmarelli,项目名称:bealab,代码行数:7,代码来源:symbolic.cpp

示例14: ATF_TC_BODY

ATF_TC_BODY(erf_inf_pos, tc)
{
	const double x = 1.0L / 0.0L;

	if (erf(x) != 1.0)
		atf_tc_fail_nonfatal("erf(+Inf) != 1.0");
}
开发者ID:2asoft,项目名称:freebsd,代码行数:7,代码来源:t_erf.c

示例15: BoysFunction

/* ************************************************************************** */
solreal BoysFunction(const int m,solreal x)
{
   static const solreal srpo2=0.88622692545275801365e0; //$\sqrt{\pi}/2$
   solreal srx=sqrt(x);
   solreal F0=srpo2*erf(srx)/srx;
   if (m==0) {return F0;}
   solreal emx=exp(-x);
   solreal oo2x=0.5e0/x;
   if (m==1) {return ((F0-emx)*oo2x);}
   solreal oo2x2=oo2x*oo2x;
   if (m==2) {return (3.0e0*F0*oo2x2-emx*(oo2x+3.0e0*oo2x2));}
   solreal oo2x3=oo2x*oo2x2;
   if (m==3) {return (15.0e0*F0*oo2x3-emx*(oo2x+5.0e0*oo2x2+15.0e0*oo2x3));}
   solreal oo2x4=oo2x2*oo2x2;
   //std::cout << "oo2x4: " << oo2x4 << std::endl;
   if (m==4) {return (105.0e0*F0*oo2x4-emx*(oo2x+7.0e0*oo2x2+35.0e0*oo2x3+105.0e0*oo2x4));}
   solreal oo2x5=oo2x3*oo2x2;
   //std::cout << "oo2x5: " << oo2x5 << std::endl;
   if (m==5) {
      return (945.0e0*F0*oo2x5-emx*(oo2x+9.0e0*oo2x2+63.0e0*oo2x3+315.0e0*oo2x4+945.0e0*oo2x5));
   }
   solreal oo2x6=oo2x3*oo2x3;
   //std::cout << "oo2x6: " << oo2x6 << std::endl;
   if (m==6) {
      return (10395.0e0*F0*oo2x6-emx*(oo2x+11.0e0*oo2x2+99.0e0*oo2x3+693.0e0*oo2x4
                                       +3465.0e0*oo2x5+10395.0e0*oo2x6));
   }
#if DEBUG
   std::cout << "This value of m (" << m << ") is not implemented yet..." << std::endl;
#endif
   return 0.0e0;
}
开发者ID:jmsolano,项目名称:denstoolkit,代码行数:33,代码来源:solmath.cpp


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