コード例 #1
0
ファイル: fermi_dirac.c プロジェクト: nchaimov/m3l-af
static
int
fd_series(const double j, const double x, double * result)
{
  const int nmax = 1000;
  int n;
  double sum = 0.0;
  double prev;
  double pow_factor = 1.0;
  double eta_factor;
  gsl_sf_eta_e(j + 1.0, &eta_factor);
  prev = pow_factor * eta_factor;
  sum += prev;
  for(n=1; n<nmax; n++) {
    double term;
    gsl_sf_eta_e(j+1.0-n, &eta_factor);
    pow_factor *= x/n;
    term = pow_factor * eta_factor;
    sum += term;
    if(fabs(term/sum) < GSL_DBL_EPSILON && fabs(prev/sum) < GSL_DBL_EPSILON) break;
    prev = term;
  }

  *result = sum;
  return GSL_SUCCESS;
}
コード例 #2
0
ファイル: zeta.c プロジェクト: cran/gsl
void eta(double *s, int *len, double *val, double *err, int *status)
{
	int i;
	gsl_sf_result result;
	gsl_set_error_handler_off();
  
	for(i = 0; i< *len ; i++){
		status[i] = gsl_sf_eta_e(s[i], &result) ;
		val[i] = result.val;
		err[i] = result.err;
	}
}  
コード例 #3
0
/// Dirichlet eta function.
double
dirichlet_eta(double x)
{
  gsl_sf_result result;
  int stat = gsl_sf_eta_e(x, &result);
  if (stat != GSL_SUCCESS)
    {
      std::ostringstream msg("Error in dirichlet_eta:");
      msg << " x=" << x;
      throw std::runtime_error(msg.str());
    }
  else
    return result.val;
}
コード例 #4
0
ファイル: VP_zeta.c プロジェクト: AnnaFowler/ExomeDepth
double gsl_sf_eta(const double s)
{
  EVAL_RESULT(gsl_sf_eta_e(s, &result));
}