File tree Expand file tree Collapse file tree 1 file changed +15
-19
lines changed Expand file tree Collapse file tree 1 file changed +15
-19
lines changed Original file line number Diff line number Diff line change @@ -224,31 +224,27 @@ get_normal_pair(float8 *x1, float8 *x2)
224
224
v2 ,
225
225
s ;
226
226
227
- for (;;)
227
+ do
228
228
{
229
- u1 = (float8 ) random () / (float8 ) RAND_MAX ;
230
- u2 = (float8 ) random () / (float8 ) RAND_MAX ;
229
+ u1 = (float8 ) random () / (float8 ) MAX_RANDOM_VALUE ;
230
+ u2 = (float8 ) random () / (float8 ) MAX_RANDOM_VALUE ;
231
231
232
232
v1 = (2.0 * u1 ) - 1.0 ;
233
233
v2 = (2.0 * u2 ) - 1.0 ;
234
234
235
- s = pow (v1 , 2 ) + pow (v2 , 2 );
235
+ s = v1 * v1 + v2 * v2 ;
236
+ } while (s >= 1.0 );
236
237
237
- if (s >= 1.0 )
238
- continue ;
239
-
240
- if (s == 0 )
241
- {
242
- * x1 = 0 ;
243
- * x2 = 0 ;
244
- }
245
- else
246
- {
247
- * x1 = v1 * sqrt ((-2.0 * log (s )) / s );
248
- * x2 = v2 * sqrt ((-2.0 * log (s )) / s );
249
- }
250
-
251
- return ;
238
+ if (s == 0 )
239
+ {
240
+ * x1 = 0 ;
241
+ * x2 = 0 ;
242
+ }
243
+ else
244
+ {
245
+ s = sqrt ((-2.0 * log (s )) / s );
246
+ * x1 = v1 * s ;
247
+ * x2 = v2 * s ;
252
248
}
253
249
}
254
250
You can’t perform that action at this time.
0 commit comments