--- ray/src/common/multisamp.c 2003/02/25 02:47:21 2.4 +++ ray/src/common/multisamp.c 2024/07/02 18:04:08 2.7 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: multisamp.c,v 2.4 2003/02/25 02:47:21 greg Exp $"; +static const char RCSid[] = "$Id: multisamp.c,v 2.7 2024/07/02 18:04:08 greg Exp $"; #endif /* * Binary space partitioning curve for multidimensional sampling. @@ -9,19 +9,22 @@ static const char RCSid[] = "$Id: multisamp.c,v 2.4 20 #include "copyright.h" +#include + #include "random.h" + +/* Convert 1-dimensional sample to N dimensions */ void -multisamp(t, n, r) /* convert 1-dimensional sample to N dimensions */ -double t[]; /* returned N-dimensional vector */ -register int n; /* number of dimensions */ -double r; /* 1-dimensional sample [0,1) */ +multisamp(double t[], int n, double r) { int j; - register int i, k; + int i, k; int ti[8]; double s; + while (n > 8) + t[--n] = frandom(); i = n; while (i-- > 0) ti[i] = 0; @@ -35,5 +38,5 @@ double r; /* 1-dimensional sample [0,1) */ } i = n; while (i-- > 0) - t[i] = 1./256. * (ti[i] + frandom()); + t[i] = (1./256.) * (ti[i] + frandom()); }