void coulomb_wave_sphF_array(double *L_min, int *kmax, double *eta, double *x, int *len, double *fc_array, double *F_exponent, int* status) { int i; gsl_set_error_handler_off(); for(i = 0; i< *len ; i++){ status[i] = gsl_sf_coulomb_wave_sphF_array(*L_min, *kmax, eta[i], x[i], fc_array+i*(*kmax+1), F_exponent+i); } }
static VALUE rb_gsl_sf_coulomb_wave_sphF_array(VALUE obj, VALUE Lmin, VALUE kmax, VALUE eta, VALUE x) { int status; size_t size; gsl_vector *v = NULL, *v2 = NULL; CHECK_FIXNUM(kmax); Need_Float(Lmin); Need_Float(eta); Need_Float(x); size = FIX2INT(kmax); v = gsl_vector_alloc(size); v2 = gsl_vector_alloc(size); status = gsl_sf_coulomb_wave_sphF_array(NUM2DBL(Lmin), size, NUM2DBL(eta), NUM2DBL(x), v->data, v2->data); return rb_ary_new3(3, Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v), Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v2), INT2FIX(status)); }
/** * C++ version of gsl_sf_coulomb_wave_sphF_array(). * @param lam_min A real value * @param kmax An integer * @param eta A real value * @param x A real value * @param fc_array An array * @param F_exponent A double * @return Error code on failure */ inline int wave_sphF_array( double lam_min, int kmax, double eta, double x, double* fc_array, double* F_exponent ){ return gsl_sf_coulomb_wave_sphF_array( lam_min, kmax, eta, x, fc_array, F_exponent ); }