PeterO.RandomGenerator.NonZeroUniform C# (CSharp) Method

NonZeroUniform() private method

private NonZeroUniform ( ) : double
return double
        private double NonZeroUniform()
        {
            var b = new byte[7];
              long lb = 0;
              do {
            this.valueIrg.GetBytes(b, 0, 7);
            lb = b[0] & 0xffL;
            lb |= (b[1] & 0xffL) << 8;
            lb |= (b[2] & 0xffL) << 16;
            lb |= (b[3] & 0xffL) << 24;
            lb |= (b[4] & 0xffL) << 32;
            lb |= (b[5] & 0xffL) << 40;
            lb |= (b[6] & 0xfL) << 48;
              } while (lb == 0);
              lb |= 0x3ffL << 52;
              return BitConverter.Int64BitsToDouble(lb) - 1.0;
        }