== Quote from dsimcha ([email protected])'s article > == Quote from Simen Kjaeraas ([email protected])'s article > > dsimcha wrote: > > > RangeExtra version 10^-20 is officially out. It consists of a small and > > > hopefully growing number of ranges that didn't make it into the new > > > Phobos > > > that I've gotten working reasonably well and I feel eventually belong in > > > Phobos. > > > > > > Docs / What's there: > > > http://cis.jhu.edu/~dsimcha/rangeextra.html > > > > > > Code: > > > http://dsource.org/projects/scrapple/browser/trunk/rangeextra/rangeextra.d > > > > > > License: > > > Dual licensed, Phobos license or BSD (Tango style). > > I had hoped reindex would give me access to true 'random' access ranges, > > but it > seems this does not work: > > auto b = reindex!( "uniform( 0, this.length )" )( [0,1,2,3,4].dup ); > > :p
> On the other hand, I really like the idea of a with-replacement random > sampling > primitive. This sounds like it belongs in RandomCover. Maybe Andrei can > extend > RandomCover (which already samples w/o replacement) to include a replacement > parameter. RandomCover w/ replacement == false would do what it does now. If > replacement == true, it would be an infinite range that samples with > replacement. Here's a first attempt: I took Andrei's RandomCover, fixed bug 2865 (This version of RandomCover passes basic statistical tests for uniformity of the distribution over the permutation space), and added a template overload to allow sampling with replacement. It's under the Phobos license to make it as easy as possible to add back to Phobos. I'll file an enhancement request. http://dsource.org/projects/scrapple/browser/trunk/rangeextra/randomcover.d
