From 0cfa01c973b6ead3b8a8d4dd84f2d28ece0bac04 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 26 Feb 2021 19:44:19 +0530 Subject: Add hollow cone vector generation example. * examples/generate-hollow-cone-vector.c: New file. --- examples/generate-hollow-cone-vector.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 examples/generate-hollow-cone-vector.c (limited to 'examples') diff --git a/examples/generate-hollow-cone-vector.c b/examples/generate-hollow-cone-vector.c new file mode 100644 index 0000000..52cdc2d --- /dev/null +++ b/examples/generate-hollow-cone-vector.c @@ -0,0 +1,32 @@ +#include + +// Dimension of the vector to generate +#define DIMENSION 10 +// Minimum angle from the axis of the cone +#define THETA_MIN M_PI/4 +// Maximum angle from the axis of the cone +#define THETA_MAX M_PI/3 + +int main () +{ + // Initialize random number generator. + gsl_rng_env_setup(); + gsl_rng* r = gsl_rng_alloc(gsl_rng_default); + // Allocate vector to be generated. + gsl_vector *x = gsl_vector_alloc(DIMENSION); + // Allocate and initialize central axis of cone. + gsl_vector *axis = gsl_vector_alloc(DIMENSION); + gsl_vector_set_all(axis, 1/sqrt(DIMENSION)); + + // Generate random vector on spherical cap of hollow cone. + hollow_cone_random_vector(r, axis, THETA_MIN, THETA_MAX, x); + + // Print out generated vector. + gsl_vector_fprintf(stdout, x, "%g"); + + // Free allocated memory. + gsl_vector_free(axis); + gsl_vector_free(x); + gsl_rng_free(r); + return 0; +} -- cgit v1.2.3