コード例 #1
2
ファイル: ChiSquare.c プロジェクト: AlexandreMertens/MoMEMta
static real ChiSquare(creal x, cint df)
{
  real y;

  if( df <= 0 ) return -999;

  if( x <= 0 ) return 0;
  if( x > 1000*df ) return 1;

  if( df > 1000 ) {
    if( x < 2 ) return 0;
    y = 2./(9*df);
    y = (powx(x/df, 1/3.) - (1 - y))/sqrtx(y);
    if( y > 5 ) return 1;
    if( y < -18.8055 ) return 0;
    return Normal(y);
  }

  y = .5*x;

  if( df & 1 ) {
    creal sqrty = sqrtx(y);
    real h = Erf(sqrty);
    count i;

    if( df == 1 ) return h;

    y = sqrty*expx(-y)/.8862269254527579825931;
    for( i = 3; i < df; i += 2 ) {
      h -= y;
      y *= x/i;
    }
    y = h - y;
  }
  else {
    real term = expx(-y), sum = term;
    count i;

    for( i = 1; i < df/2; ++i )
      sum += term *= y/i;
    y = 1 - sum;
  }

  return Max(0., y);
}
コード例 #2
0
ファイル: function-call-1.c プロジェクト: 0day-ci/gcc
float
init (int x, int y)
{
  int x1 = identity (identity (identity (identity (x))));
  int y1 = identity (identity (identity (identity (y))));

  int x2 = expx (x1, 2);
  int y2 = expx (y1, 2);

  return (x2 + y2);
}