arkouda icon indicating copy to clipboard operation
arkouda copied to clipboard

Random number generation for non-uniform distributions

Open stress-tess opened this issue 1 year ago • 1 comments

There has been user desire for generating random numbers with respect to other distributions (normal in particular). But we should also consider adding other common distributions (power law, binomial, poisson, etc)

Right now we use fillRandom in chpl which doesn't seem to have the ability to specify distributions. I know there are ways of converting uniform into other distributions and bill did a power law conversion for the sort benchmarks. I'd rather not get too custom with it though since random number generation is very easy to mess up

I think we need to dive into how numpy does randomness to try and align ourselves with them as much as possible

  • [x] #2993
  • [x] #3008
  • [x] #3017
  • [x] #3066
  • [x] #3167
  • [x] #3183
  • [x] #3372
  • [x] #3373
  • [ ] #3374
  • [x] #3245
  • [ ] #3846

here is the full list of functions supported by numpy's generators that have yet to be implemented, categorized according to how important they seem to me (i.e. do I recognize it from the single stats class I've taken?)

remaining np random methods

Prioritized:

Not prioritized at the moment:

stress-tess avatar Feb 16 '24 18:02 stress-tess

I found the c code where numpy defines it's distributions. It uses pcg as it's random number generators, same as chapel. So it feels like we could do something similar, but there's more digging to be done to tell how well this ports to chpl

stress-tess avatar Feb 21 '24 00:02 stress-tess