These are chat archives for libmir/public

22nd
Nov 2016
Joseph Rushton Wakeling
@WebDrake
Nov 22 2016 00:09
@9il good to see you starting work on this
Might be worth taking a glance at https://github.com/WebDrake/hap, less for the code (the class-based approach isn't satisfactory IMO) but for the general structure & organization of stuff
& there's probably some worthwhile documentation changes too
I also did some work to offer better copyright credits than are in Phobos (I tracked down various uncredited authors)
A couple of important notes: (i) we can see "generators" as covering all entities that are producers of uniformly-distributed random bits
and there are 2 distinct types: "random engines", which are pseudo-random, and "random devices", which (at least as far as the computer program is concerned) are "true" sources of randomness
So, it could be worth having a random.generator package that has 2 further sub-divisions, random.generator.engine and random.generator.device
(ii) there's a module that I called adaptor but a much better description of it is that these are random algorithms
Joseph Rushton Wakeling
@WebDrake
Nov 22 2016 00:15
i.e. they are algorithms in the same sense as std.algorithm, but unlike those in std.algorithm, there are random events in the popFront
this is stuff like randomCover and randomSample
You might also want to take the generators from https://github.com/WebDrake/dxorshift (happy to submit a PR with those if they are interesting to you)
Ilya Yaroshenko
@9il
Nov 22 2016 06:29
Hey @WebDrake, yes please open a PR for additional xorshift algorithms. Please unroll the loops
Nicholas Wilson
@thewilsonator
Nov 22 2016 06:30
xorfish. hehehe.
Ilya Yaroshenko
@9il
Nov 22 2016 06:30
:smile:
Andrea Fontana
@trikko
Nov 22 2016 08:57
Ilya any plan to support CMWC algorithm?
Ilya Yaroshenko
@9il
Nov 22 2016 09:02
Can be added. Would you open a PR?
There is a C implementation that can be used to start https://en.wikipedia.org/wiki/Multiply-with-carry
Also it should be reworked to generate exactly 32 or 64 bit numbers. Basic algorithms has CMWC_C_MAX