My instinct (for "please invent for me the fastest possible low fidelity floating point prng algorithm") is to look at RC4 for inspiration, permuting the order of a large table of float32s and constantly modifying them as well. This could be pared down to three index accesses, a floating add/subtract, and a 32-bit swap.
On Mon, Feb 25, 2019 at 3:16 PM Rob Pike <r...@golang.org> wrote: > If you don't need precision, just generate ints and scale them. > > -rob > > > On Tue, Feb 26, 2019 at 9:39 AM DrGo <salah.mah...@gmail.com> wrote: > >> Thanks Ian, >> The std lib float32 is slow for my purpose. In my benchmarking it is >> actually slower than the float64. But I don’t even need float16 precision. >> I am working on implementing othe alias method for sampling from a fixed >> freq dist with possibly thousands of arbitrary values. So the rng doesn’t >> need to be precise or high quality because of rounding eg a rn of .67895 >> might end up selecting the same arbitrary value as .67091 or even .65!! >> https://en.m.wikipedia.org/wiki/Alias_method >> >> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.