示例#1
0
double GetCoulombNormalization(double Z, int l, double k)
{
	double eta = Z / k;
	gsl_sf_result C;
	int error = gsl_sf_coulomb_CL_e(l, eta, &C);
	return C.val;
}
示例#2
0
文件: coulomb.c 项目: cran/gsl
void coulomb_CL(double *L, double *eta, 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_coulomb_CL_e(L[i], eta[i], &result) ;
		val[i] = result.val;
		err[i] = result.err;
	}
}  
示例#3
0
文件: coulomb.c 项目: nchaimov/m3l-af
/* cl[0] .. cl[kmax] = C_{lam_min}(eta) .. C_{lam_min+kmax}(eta)
 */
int
gsl_sf_coulomb_CL_array(double lam_min, int kmax, double eta, double * cl)
{
  int k;
  gsl_sf_result cl_0;
  gsl_sf_coulomb_CL_e(lam_min, eta, &cl_0);
  cl[0] = cl_0.val;

  for(k=1; k<=kmax; k++) {
    double L = lam_min + k;
    cl[k] = cl[k-1] * sqrt(L*L + eta*eta)/(L*(2.0*L+1.0));
  }

  return GSL_SUCCESS;
}
示例#4
0
      /**
       * C++ version of gsl_sf_coulomb_CL_e().
       * @param L A real value
       * @param eta A real value
       * @param result The result as a @c gsl::sf::result object
       * @return Error code on failure
       */
      inline int CL_e( double L, double eta, result& result ){
	return gsl_sf_coulomb_CL_e( L, eta, &result ); }