Esempio n. 1
0
double
test_dir2d_trig_method (void)
{
  double x=0, y=0, theta;
  gsl_ran_dir_2d_trig_method (r_global, &x, &y);
  theta = atan2(x,y);
  return theta;
}
void test_dir(void){
    double x,y,z, nd[SIZE] = { 0,0,0,0 };

    gsl_ran_dir_2d(rng, &x, &y);
    printf("gsl_ran_dir_2d\t[%.12f,%.12f]\n", x, y);

    gsl_ran_dir_2d_trig_method(rng, &x, &y);
    printf("gsl_ran_dir_2d_trig_method\t[%.12f,%.12f]\n", x, y);

    gsl_ran_dir_3d(rng, &x, &y, &z);
    printf("gsl_ran_dir_3d\t[%.12f,%.12f,%.12f]\n", x, y, z);

    /* perl needs to pass either outpdl or dims */
    gsl_ran_dir_nd(rng, SIZE, nd);
    printf("gsl_ran_dir_nd\t%d\t[%.12f,%.12f,%.12f,%.12f]\n", SIZE, nd[0], nd[1], nd[2], nd[3]);
}
Esempio n. 3
0
CAMLprim value ml_gsl_ran_dir_2d_trig_method(value rng)
{
  double x,y;
  gsl_ran_dir_2d_trig_method(Rng_val(rng), &x, &y);
  return copy_two_double(x, y);
}