blob: 88dff748a961fc89a84ffc31795c64dc6763920b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
@code{(require 'random-inexact)}
@ftindex random-inexact
@defun random:uniform
@defunx random:uniform state
Returns an uniformly distributed inexact real random number in the
range between 0 and 1.
@end defun
@defun random:exp
@defunx random:exp state
Returns an inexact real in an exponential distribution with mean 1. For
an exponential distribution with mean @var{u} use
@w{@code{(* @var{u} (random:exp))}}.
@end defun
@defun random:normal
@defunx random:normal state
Returns an inexact real in a normal distribution with mean 0 and
standard deviation 1. For a normal distribution with mean @var{m} and
standard deviation @var{d} use
@w{@code{(+ @var{m} (* @var{d} (random:normal)))}}.
@end defun
@deffn {Procedure} random:normal-vector! vect
@deffnx {Procedure} random:normal-vector! vect state
Fills @var{vect} with inexact real random numbers which are independent
and standard normally distributed (i.e., with mean 0 and variance 1).
@end deffn
@deffn {Procedure} random:hollow-sphere! vect
@deffnx {Procedure} random:hollow-sphere! vect state
Fills @var{vect} with inexact real random numbers the sum of whose
squares is equal to 1.0. Thinking of @var{vect} as coordinates in space
of dimension n = @code{(vector-length @var{vect})}, the coordinates are
uniformly distributed over the surface of the unit n-shere.
@end deffn
@deffn {Procedure} random:solid-sphere! vect
@deffnx {Procedure} random:solid-sphere! vect state
Fills @var{vect} with inexact real random numbers the sum of whose
squares is less than 1.0. Thinking of @var{vect} as coordinates in
space of dimension @var{n} = @code{(vector-length @var{vect})}, the
coordinates are uniformly distributed within the unit @var{n}-shere.
The sum of the squares of the numbers is returned.
@end deffn
|