NAME
get_random_unit_vector - Gets a uniform random vector
SYNOPSIS
#include "m/m_vector.h"
Example compile flags (system dependent):
-DLINUX_X86_64 -DLINUX_X86_64_OPTERON -DGNU_COMPILER
-I/home/kobus/include
-L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
-lKJB -lfftw3 -lgsl -lgslcblas -ljpeg -lSVM -lstdc++ -lpthread -lSLATEC -lg2c -lacml -lacml_mv -lblas -lg2c -lncursesw
int get_random_unit_vector
(
Vector **target_vpp,
int length
);
DESCRIPTION
this routine gets a random unit-vector of the specified length, uniformly
distributed on the unit-sphere. This routine uses rejection sampling to get
truly uniform samples. The rejection rate is just below 50% for a 3-vector,
69% for a 4-vector, 83% for a 5-vector, 92% for a 6-vector, and approaches
100% asymtotically above 6 dimensions. Thus, this isn't recommended for
dimensions above 4, and a warning will display in this case.
RETURNS
NO_ERROR on success and ERROR on failure This routine will only fail if
storage allocation fails.
DISCLAIMER
This software is not adequatedly tested. It is recomended that
results are checked independantly where appropriate.
AUTHOR
Kobus Barnard
DOCUMENTER
Kobus Barnard
SEE ALSO
get_unity_vector
,
get_zero_vector
,
get_initialized_vector
,
get_target_vector
,
free_vector
,
get_random_vector
,
get_random_vector_2
,
vp_get_indexed_vector
,
get_zero_indexed_vector
,
get_random_indexed_vector
,
get_target_indexed_vector
,
free_indexed_vector
,
ascend_sort_indexed_vector
,
descend_sort_indexed_vector
,
get_target_vector_vector
,
free_vector_vector
,
allocate_2D_vp_array
,
free_2D_vp_array_and_vectors
,
get_target_v3
,
free_v3
,
get_target_v4
,
free_v4