internal double[] NextDoubleArray(int length) { if (length < 0) { throw new ArgumentOutOfRangeException(nameof(length), "Length must be greater than or equal to 0."); } double[] result = new double[length]; for (var i = 0; i < length; i++) { result[i] = NumberFactory.MakeDouble(NextULong()); } return(result); }
internal float[] NextFloatArray(int length) { if (length < 0) { throw new ArgumentOutOfRangeException(nameof(length), "Length must be greater than or equal to 0."); } float[] result = new float[length]; for (var i = 0; i < length; i++) { result[i] = NumberFactory.MakeFloat(NextUInt()); } return(result); }
internal uint NextUInt() { if (cachedIntSource) { cachedIntSource = false; return(NumberFactory.ExtractLow(intSource)); } else { intSource = NextULong(); cachedIntSource = true; return(NumberFactory.ExtractHigh(intSource)); } }
internal ushort NextUShort() { if (cachedShortSource) { cachedShortSource = false; return(NumberFactory.ExtractLow(shortSource)); } else { shortSource = NextUInt(); cachedShortSource = true; return(NumberFactory.ExtractHigh(shortSource)); } }
internal double NextDouble() { return(NumberFactory.MakeDouble(NextULong())); }
internal float NextFloat() { return(NumberFactory.MakeFloat(NextUInt())); }