示例#1
0
/**
 * Description not yet available.
 * \param
 */
df1b2variable beta_deviate(const df1b2variable& _a,const df1b2variable& _b,
  const df1b2variable& _x,double eps)
{
  df1b2variable& x= (df1b2variable&)(_x);
  df1b2variable& a= (df1b2variable&)(_a);
  df1b2variable& b= (df1b2variable&)(_b);

  df1b2variable y=cumd_norm(x);
  y=.9999999*y+.00000005;

  df1b2variable z=inv_cumd_beta_stable(a,b,y,eps);

  return z;
}
示例#2
0
/**
 * Description not yet available.
 * \param
 */
double inv_cumd_t(double n,double u,double eps)
{
  double v,sgn;
  if (u<0.5)
  {
    v=2.0*u;
    sgn=-1.0;
  }
  else
  {
    v=2.0*(1.0-u);
    sgn=1.0;
  }
  double w=inv_cumd_beta_stable(0.5*n,0.5,v,eps);
  return sgn*sqrt(n*(1.0/w-1.0));
}
示例#3
0
/**
 * Description not yet available.
 * \param
 */
df1b2variable inv_cumd_t(const df1b2variable& n,const df1b2variable&  u,
  double eps)
{
  double sgn;
  df1b2variable v;
  if (value(u)<0.5)
  {
    v=2.0*u;
    sgn=-1.0;
  }
  else
  {
    v=2.0*(1.0-u);
    sgn=1.0;
  }
  df1b2variable pfive=0.5;
  df1b2variable w=inv_cumd_beta_stable(0.5*n,pfive,v,eps);
  return sgn*sqrt(n*(1.0/w-1.0));
}