In J602 I get ^o.j.-:i. 3 4 1 6.12323e_17j1 _1j1.22465e_16 _1.83697e_16j_1 1j_2.44929e_16 3.06162e_16j1 _1j3.67394e_16 _4.28626e_16j_1 1j_4.89859e_16 5.51091e_16j1 _1j6.12323e_16 _2.44991e_15j_1
>________________________________ >Fra: Roger Hui <[email protected]> >Til: Programming forum <[email protected]> >Sendt: 18:07 lørdag den 29. oktober 2011 >Emne: Re: [Jprogramming] 32- & 64-bit PRNGs > >Ah yes, _1j1.22461e_16. I can't do much about the 1.22461e_16 >(welcome to the ugly realities of floating point arithmetic), but I >can do this: > > ^@o. j. 0.5 * i. 3 4 >1 0j1 _1 0j_1 >1 0j1 _1 0j_1 >1 0j1 _1 0j_1 > > ^@o. j. 2e9 + 0.5 * i. 3 4 >1 0j1 _1 0j_1 >1 0j1 _1 0j_1 >1 0j1 _1 0j_1 > >(In J7.01.) > > > >On Sat, Oct 29, 2011 at 8:48 AM, Linda Alvord <[email protected]> wrote: >> Here's what I was thinking: >> >> >> -^1p1*0j1 >> 1j_1.22465e_16 >> >> I forgot that "i" is 0j1 (quite a coincidence?) in J >> >> Also, it was always more satisfying to me that the result is 1. >> >> However, we do agree. >> >> -^1p1*0j1 >> 1j_1.22465e_16 >> >> >> -----Original Message----- >> From: [email protected] >> [mailto:[email protected]] On Behalf Of Roger Hui >> Sent: Friday, October 28, 2011 11:48 AM >> To: Programming forum >> Subject: Re: [Jprogramming] 32- & 64-bit PRNGs >> >> Isn't that just saying that (^1)^0 is 1? On the other hand: >> >> _1 = ^ 1p1 * 0j1 >> 1 >> >> http://www.jsoftware.com/jwiki/Essays/Euler%27s%20Identity >> >> >> >> On Fri, Oct 28, 2011 at 12:48 AM, Linda Alvord <[email protected]> >> wrote: >>> Ken might have answered that God must be an awesome mathematician, since he >>> might have understood God better than most. >>> >>> (^1)^-o.i.1 >>> 1 >>> >>> >>> -----Original Message----- >>> From: [email protected] >>> [mailto:[email protected]] On Behalf Of Ian Clark >>> Sent: Thursday, October 27, 2011 2:38 PM >>> To: Programming forum >>> Subject: Re: [Jprogramming] 32- & 64-bit PRNGs >>> >>> I wonder if Carl Sagan, like Feynman, wasn't having joke after joke at >>> his audience's expense? (APWJ p 136, see also end of: >>> http://www.jsoftware.com/jwiki/Doc/Articles/Play151) >>> >>> The probability of any given finite pattern turning up in the first N >>> digits of a random sequence tends to 1 as N tends to infinity. The >>> aforementioned site estimates the odds for various values of N: >>> http://www.angio.net/pi/piquery#likely >>> >>> Sagan didn't say how many digits Ellie had to search (N) for her >>> (initially undefined) pattern. Was N sufficiently low to reject the >>> null hypothesis? The implication is: it wasn't. Nor is pi a random >>> series (it's pseudo-random). And when you're reading the Mind of God >>> -- does the null hypothesis have any cause to exist? -- viz is there >>> any merit in *guessing* the Mind of God? >>> >>> Nor is it the first time in the novel Ellie is the victim of illusion >>> (the alien deludes her he's her father... and yet she knows that). >>> >>> The whole novel is shot through with existential jokes, playing-off >>> science against sentiment. Once I spotted that I was ready to forgive >>> Sagan any amount of Slartibartfastian pseudo-engineering of pi. >>> >>> >>> On Thu, Oct 27, 2011 at 1:51 PM, Roger Hui <[email protected]> >>> wrote: >>>>> For initial experiments, there's already a site which stores the first >>>>> 200M digits of pi, for hobbyists wanting to do Carl Sagan >>>>> "Contact"-type research: >>>> >>>> When I first read that in "Contact" years ago it knocked down by >>>> several notches my respect for the novel. Even the Almighty doesn't >>>> have any choice about the digits of π, right? What's He/She going to >>>> do about the various power series, f'instance? >>>> >>>> >>>> >>>> On Thu, Oct 27, 2011 at 5:26 AM, Ian Clark <[email protected]> wrote: >>>>> Being old enough to have learned my electronics before the digital >>>>> age, I wonder if it isn't time to reconsider shot noise as a source of >>>>> random numbers. It has a forensic advantage in lottery draws, and >>>>> monte-carlo simulations of fraught political topics like climate >>>>> change, by taking the "pseudo" out of "pseudo-random". >>>>> >>>>> For years the UK gov ran a device called ERNIE >>>>> http://en.wikipedia.org/wiki/ERNIE#ERNIE >>>>> to pick premium bonds (a savings scheme where the interest payable was >>>>> put in a monthly draw). >>>>> >>>>> A device to generate binary digits from electronic noise would be so >>>>> simple it ought to be fitted as standard to today's desktop computers. >>>>> Failing that, if I had a serious need for true random numbers I'd >>>>> experiment with an open microphone line using Audacity to save the >>>>> number stream as a WAV. >>>>> >>>>> Need a reproducible number stream? With the amount of free storage >>>>> space in the "cloud" (I currently have access to around 2 GB and I >>>>> don't remember asking for it) why not just store it? I also have a 1TB >>>>> disk drive, mostly lying empty. >>>>> >>>>> For initial experiments, there's already a site which stores the first >>>>> 200M digits of pi, for hobbyists wanting to do Carl Sagan >>>>> "Contact"-type research: >>>>> http://www.angio.net/pi/piquery >>>>> Aside: ought the hunt for meaningful sequences in pi to be called >>>>> perimancy? :-) >>>>> >>>>> >>>>> >>>>> On Fri, Oct 14, 2011 at 8:30 PM, Zsbán Ambrus <[email protected]> wrote: >>>>>> On Fri, Oct 14, 2011 at 2:33 PM, Zsbán Ambrus <[email protected]> wrote: >>>>>>> On Fri, Oct 14, 2011 at 1:08 PM, Ewart Shaw <[email protected]> wrote: >>>>>>>> I want to generate pseudorandom sequences that are the same for 32- & >>>>>>>> 64-bit J. >>>>>>> >>>>>>> Have you tried the other random generators the (9!:43) foreign makes >>>>>>> available? I'd guess some of them are the same for 32 and 64 bit J. >>>>>> >>>>>> Hmm, from a quick test, it seems Roger is right: none of the built in >>>>>> generators give the same results on the 32-bit and 64-bit J. >>>>>> >>>>>> Let's use the random generation functions from GSL ( >>>>>> http://www.gnu.org/software/gsl/ ) then. This example implements >>>>>> roll, but not deal. >>>>>> >>>>>> >>>>>> $ cat rngwrap.c >>>>>> #include <gsl/gsl_rng.h> >>>>>> >>>>>> /* >>>>>> Allocate a new random generator of the Mersenne Twister algorithm >>>>>> and initialize it with the default seed. >>>>>> */ >>>>>> gsl_rng * >>>>>> wrap_newrng(void) { >>>>>> gsl_rng *g = gsl_rng_alloc(gsl_rng_mt19937); >>>>>> return g; >>>>>> } >>>>>> >>>>>> $ cat rngwrap.ijs >>>>>> NB. random generator functions from GSL >>>>>> rngobj=: <'./rngwrap.so wrap_newrng > x'15!:0$0 >>>>>> rollint=: './rngwrap.so gsl_rng_uniform_int > x *c x'15!:0 rngobj;] >>>>>> rollflo=: './rngwrap.so gsl_rng_uniform_pos > d *c'15!:0 (,<rngobj)"_ >>>>>> roll=: rollflo`rollint`[:@.*"0 :[: >>>>>> >>>>>> $ gcc -Wall -O -fpic -lm -lgslcblas -lgsl -shared -o rngwrap.so rngwrap.c >>>>>> $ jconsole rngwrap.ijs >>>>>> roll (10$1e4),5$0 >>>>>> 9997 1629 2826 9472 2316 4849 9574 7443 5400 7399 0.759944 0.658637 >>>>>> 0.315638 0.804403 0.519672 >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >>> >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >---------------------------------------------------------------------- >For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
