Esempio n. 1
0
static VALUE rb_gsl_sf_coulomb_wave_FGp_array(VALUE obj, VALUE Lmin, VALUE kmax,
					 VALUE eta, VALUE x)
{
  double F_exponent, G_exponent;
  int status;
  size_t size;
  gsl_vector *vf = NULL, *vg = NULL, *vfp = NULL, *vgp = NULL;
  VALUE fary, gary, fpary, gpary;
  CHECK_FIXNUM(kmax);
  Need_Float(Lmin); Need_Float(eta); Need_Float(x);
  size = FIX2INT(kmax);
  vf = gsl_vector_alloc(size);
  vfp = gsl_vector_alloc(size);
  vg = gsl_vector_alloc(size);
  vgp = gsl_vector_alloc(size);

  status = gsl_sf_coulomb_wave_FGp_array(NUM2DBL(Lmin), size, NUM2DBL(eta), 
				     NUM2DBL(x), vf->data, vfp->data, 
				     vg->data, vgp->data,
				     &F_exponent, &G_exponent);
  fary = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vf);
  fpary =Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vfp);
  gary = Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vg);
  gpary =Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vgp);
  return rb_ary_new3(7, fary, fpary, gary, gpary,
		     rb_float_new(F_exponent), rb_float_new(G_exponent),
		     INT2FIX(status));
}
Esempio n. 2
0
File: coulomb.c Progetto: cran/gsl
void coulomb_wave_FGp_array(double *L_min, int *kmax, double *eta, double *x, int *len, double *fc_array, double *fcp_array, double *gc_array, double *gcp_array, double *F_exponent, double *G_exponent, int* status)
{
	int i;
	gsl_set_error_handler_off();
	
	for(i = 0; i< *len ; i++){
		status[i] = gsl_sf_coulomb_wave_FGp_array(*L_min, *kmax, eta[i], x[i], fc_array+i*(*kmax+1), fcp_array+i*(*kmax+1), gc_array+i*(*kmax+1), gcp_array+i*(*kmax+1), F_exponent+i, G_exponent+i);
	}
}
Esempio n. 3
0
      /**
       * C++ version of gsl_sf_coulomb_wave_FGp_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 fcp_array An array
       * @param gc_array An array
       * @param gcp_array An array
       * @param F_exponent A double
       * @param G_exponent A double
       * @return Error code on failure
       */
      inline int wave_FGp_array( double lam_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 ){
	return gsl_sf_coulomb_wave_FGp_array( lam_min, kmax, eta, x, fc_array, fcp_array,
					      gc_array, gcp_array, F_exponent, G_exponent ); }