@@ -409,32 +409,16 @@ public double Uniform(double max) {
409409 * @return A 64-bit floating-point number.
410410 */
411411 public double Uniform () {
412- byte [] b = new byte [7 ];
413- this .valueIrg .GetBytes (b , 0 , 7 );
414- long lb = (long )b [0 ] & 0xffL ;
415- lb |= ((long )b [1 ] & 0xffL ) << 8 ;
416- lb |= ((long )b [2 ] & 0xffL ) << 16 ;
417- lb |= ((long )b [3 ] & 0xffL ) << 24 ;
418- lb |= ((long )b [4 ] & 0xffL ) << 32 ;
419- lb |= ((long )b [5 ] & 0xffL ) << 40 ;
420- lb |= ((long )b [6 ] & 0xfL ) << 48 ;
421- lb |= 0x3ffL << 52 ;
422- return Double .longBitsToDouble (lb ) - 1.0 ;
412+ return this .UniformLong (9007199254740992L )/9007199254740992.0 ;
423413 }
424414
425415 /**
426416 * Returns a uniformly-distributed 32-bit floating-point number from 0 and up,
427417 * but less than 1.
428- * @return A 64 -bit floating-point number.
418+ * @return A 32 -bit floating-point number.
429419 */
430420 public double UniformSingle () {
431- byte [] b = new byte [3 ];
432- this .valueIrg .GetBytes (b , 0 , 3 );
433- int lb = (int )b [0 ] & 0xff ;
434- lb |= ((int )b [1 ] & 0xff ) << 8 ;
435- lb |= ((int )b [2 ] & 0x7f ) << 16 ;
436- lb |= 0x7f << 23 ;
437- return Float .intBitsToFloat (lb ) - 1.0 ;
421+ return this .UniformInt (16777216 )/16777216.0f ;
438422 }
439423
440424 /**
0 commit comments