The prototypes of the Coulomb functions are declared in the header file gsl_sf_coulomb.h.  Both bound state and scattering solutions are available.

Normalized Hydrogenic Bound States
----------------------------------

 -- Function: double gsl_sf_hydrogenicR_1 (double Z, double R)
 -- Function: int gsl_sf_hydrogenicR_1_e (double Z, double R, gsl_sf_result * RESULT)
     These routines compute the lowest-order normalized hydrogenic bound state radial wavefunction $R_1 := 2Z \sqrtZ \exp(-Z r)$ R_1 := 2Z \sqrt{Z} \exp(-Z r).

 -- Function: double gsl_sf_hydrogenicR (int N, int L, double Z, double R)
 -- Function: int gsl_sf_hydrogenicR_e (int N, int L, double Z, double R, gsl_sf_result * RESULT)
     These routines compute the N-th normalized hydrogenic bound state radial wavefunction,

          R_n := 2 (Z^{3/2}/n^2) \sqrt{(n-l-1)!/(n+l)!} \exp(-Z r/n) (2Zr/n)^l
                    L^{2l+1}_{n-l-1}(2Zr/n).

     where L^a_b(x) is the generalized Laguerre polynomial (see Laguerre Functions). The normalization is chosen such that the wavefunction \psi is given by $\psi(n,l,r) = R_n Y_lm$ \psi(n,l,r) = R_n Y_{lm}.

Coulomb Wave Functions
----------------------

The Coulomb wave functions F_L(\eta,x), G_L(\eta,x) are described in Abramowitz & Stegun, Chapter 14.  Because there can be a large dynamic range of values for these functions, overflows are handled gracefully.  If an overflow occurs, GSL_EOVRFLW is signalled and exponent(s) are returned through the modifiable parameters EXP_F, EXP_G. The full solution can be reconstructed from the following relations,

     F_L(eta,x)  =  fc[k_L] * exp(exp_F)
     G_L(eta,x)  =  gc[k_L] * exp(exp_G)

     F_L'(eta,x) = fcp[k_L] * exp(exp_F)
     G_L'(eta,x) = gcp[k_L] * exp(exp_G)

 -- Function: int gsl_sf_coulomb_wave_FG_e (double ETA, double X, double L_F, int K, gsl_sf_result * F, gsl_sf_result * FP, gsl_sf_result * G, gsl_sf_result * GP, double * EXP_F, double * EXP_G)
     This function computes the Coulomb wave functions F_L(\eta,x), $G_L-k(\eta,x)$ G_{L-k}(\eta,x) and their derivatives F'_L(\eta,x), $G'_L-k(\eta,x)$ G'_{L-k}(\eta,x) with respect to x.  The parameters are restricted to L, L-k > -1/2, x > 0 and integer k.  Note that L itself is not restricted to being an integer. The results are stored in the parameters F, G for the function values and FP, GP for the derivative values.  If an overflow occurs, GSL_EOVRFLW is returned and scaling exponents are stored in the modifiable parameters EXP_F, EXP_G.

 -- Function: int gsl_sf_coulomb_wave_F_array (double L_MIN, int KMAX, double ETA, double X, double FC_ARRAY[], double * F_EXPONENT)
     This function computes the Coulomb wave function F_L(\eta,x) for L = Lmin \dots Lmin + kmax, storing the results in FC_ARRAY. In the case of overflow the exponent is stored in F_EXPONENT.

 -- Function: int gsl_sf_coulomb_wave_FG_array (double L_MIN, int KMAX, double ETA, double X, double FC_ARRAY[], double GC_ARRAY[], double * F_EXPONENT, double * G_EXPONENT)
     This function computes the functions F_L(\eta,x), G_L(\eta,x) for L = Lmin \dots Lmin + kmax storing the results in FC_ARRAY and GC_ARRAY.  In the case of overflow the exponents are stored in F_EXPONENT and G_EXPONENT.

 -- Function: int gsl_sf_coulomb_wave_FGp_array (double L_MIN, int KMAX, double ETA, double X, double FC_ARRAY[], double FCP_ARRAY[], double GC_ARRAY[], double GCP_ARRAY[], double * F_EXPONENT, double * G_EXPONENT)
     This function computes the functions F_L(\eta,x), G_L(\eta,x) and their derivatives F'_L(\eta,x), G'_L(\eta,x) for L = Lmin \dots Lmin + kmax storing the results in FC_ARRAY, GC_ARRAY, FCP_ARRAY and GCP_ARRAY. In the case of overflow the exponents are stored in F_EXPONENT and G_EXPONENT.

 -- Function: int gsl_sf_coulomb_wave_sphF_array (double L_MIN, int KMAX, double ETA, double X, double FC_ARRAY[], double F_EXPONENT[])
     This function computes the Coulomb wave function divided by the argument F_L(\eta, x)/x for L = Lmin \dots Lmin + kmax, storing the results in FC_ARRAY.  In the case of overflow the exponent is stored in F_EXPONENT. This function reduces to spherical Bessel functions in the limit \eta \to 0.

Coulomb Wave Function Normalization Constant
--------------------------------------------

The Coulomb wave function normalization constant is defined in Abramowitz 14.1.7.

 -- Function: int gsl_sf_coulomb_CL_e (double L, double ETA, gsl_sf_result * RESULT)
     This function computes the Coulomb wave function normalization constant C_L(\eta) for L > -1.

 -- Function: int gsl_sf_coulomb_CL_array (double LMIN, int KMAX, double ETA, double CL[])
     This function computes the Coulomb wave function normalization constant C_L(\eta) for L = Lmin \dots Lmin + kmax, Lmin > -1.