On Wednesday, 23 November 2016 at 10:27:00 UTC, Joseph Rushton Wakeling wrote:
On Wednesday, 23 November 2016 at 05:58:47 UTC, Ilya Yaroshenko wrote:
### Example of API+implementation bug:

#### Bug: RNGs has min and max params (hello C++). But, they are not used when an uniform integer number is generated : `uniform!ulong` / `uniform!ulong(0, 100)`.

#### Solution: In Mir Rundom any RNGs must generate all 8/16/32/64 bits uniformly. It is RNG problem how to do it.

Alternative solution: functionality that expects the full unsigned integer word (UIntType) to be filled with random bits, should validate that the min/max values of the generator correspond to UIntType.min and UIntType.max.

That introduces less breaking change, creates less divergence with the C++11 standard, and preserves more flexibility for the future.

Good point, will add this. --Ilya

Reply via email to