diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nd-random.sc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/nd-random.sc b/src/nd-random.sc index 79f6cde..69bb93a 100644 --- a/src/nd-random.sc +++ b/src/nd-random.sc @@ -30,6 +30,15 @@ sphere. Write the result to X." (gsl-ran-dir-nd r (: x size) (: x data))) +(define (random-vector-in-sphere rng radius x) + (void (const gsl-rng*) double gsl-vector*) + "Generate a random vector distributed uniformly in a sphere of +RADIUS. Store the generated vector in X." + (random-direction-vector rng x) + (gsl-vector-scale x (* radius + (pow (gsl-ran-flat rng 0 1) + (/ (: x size)))))) + (define (rotate-from-nth-canonical x orient) ((static void) gsl-vector* (const gsl-vector*)) (let* ((n size-t (: x size)) |