f3=: 3 : 'y * ($y) [EMAIL PROTECTED] 0' f2=: 3 : 'y * ?(#y)#0' ts 'f2 Y' [Y=:1000 1000$9 0.0098060407 8402944 ts 'f3 Y' 0.034617353 16781696
R.E. Boss > -----Oorspronkelijk bericht----- > Van: [EMAIL PROTECTED] [mailto:programming- > [EMAIL PROTECTED] Namens Joey K Tuttle > Verzonden: maandag 30 juni 2008 19:41 > Aan: Programming forum > Onderwerp: Re: [Jprogramming] Random number generation > > Interestingly, I see almost no change in speed/space between (my) f2 and > f3... > > ts 'f2 1000 1000$9' > 0.231313 2.20224e7 > ts 'f3 1000 1000$9' > 0.235067 2.0974e7 > > Well - I guess a million bytes in space saving is > nothing to sneeze at (used to be a lot of > memory...) so I applaud the optimization work you > have done! > > Thanks - joey > > At 10:08 -0700 2008/06/30, Roger Hui wrote: > >To gain more speed (and reduce space), use: > > > >f3=: 3 : 'y * ($y) [EMAIL PROTECTED] 0' > > > >[EMAIL PROTECTED] is supported by special code. The difference > >is most striking for random booleans: > > > > ts=: 6!:2 , 7!:[EMAIL PROTECTED] > > > > ts '1e6 [EMAIL PROTECTED] 2' > >0.00275063 1.04934e6 > > ts '?1e6$2' > >0.00555685 5.24352e6 > > > > > > > >----- Original Message ----- > >From: Joey K Tuttle <[EMAIL PROTECTED]> > >Date: Monday, June 30, 2008 8:54 > >Subject: RE: [Jprogramming] Random number generation > >To: Programming forum <[email protected]> > >Cc: 'Programming forum' <[email protected]> > > > >> Not to quibble... but > >> > >> f2 =: 3 : 'y * ?(#y)#0' > >> > >> has a related trouble to the original post with > >> argument rank > 1 ... f1 is actually better in > >> extending "to work with arrays of any shape". To > >> try to gain some speed, perhaps you really meant > >> to say: > >> > >> f2 =: 3 : 'y * ?($y)$0' > >> > >> - joey > >> > >> > >> At 10:59 -0400 2008/06/30, Henry Rich wrote: > >> >What you executed was: > >> > > >> >3 3 * ?0 > >> > > >> >which is > >> > > >> >3 3 * (?0) > >> > > >> >in other words, you asked for one number, then multiplied it by > >> 3 twice. > >> > > >> > > >> >You could have your verb apply to atoms by giving it a rank of 0: > >> > > >> > f1 =: 3 : 'y * ?0'"0 > >> > > >> >Or, you could design it to work with arrays of any shape: > >> > > >> > f2 =: 3 : 'y * ?(#y)#0' > >> > > >> >Working with bigger arrays is faster, but perhaps not by enough > >> >to be worth the trouble. Depends on your application. > >> > > >> >Henry Rich > >> > > >> > > >> >> -----Original Message----- > >> >> From: [EMAIL PROTECTED] > >> >> [mailto:[EMAIL PROTECTED] On Behalf Of > >> >> Benoît Roesslinger > >> >> Sent: Monday, June 30, 2008 10:46 AM > >> >> To: [email protected] > >> >> Subject: [Jprogramming] Random number generation > >> >> > >> >> Hi, > >> >> > >> >> I am new to J and when doing some experiments with random > >> >> number generation > >> >> I stumbled across the following behavior, which wasn't what > >> >> I'd expect : > >> >> > >> >> f=: 3 : 'y * ?0' > >> >> f 3 > >> >> 2.91414 > >> >> f 3 > >> >> 0.139888 > >> >> f 3 > >> >> 0.990328 > >> >> > >> >> OK so far, but when I tried: > >> >> > >> >> f 3 3 > >> >> > >> >> it gives me : > >> >> > >> >> 0.0403801 0.0403801 (same values!) > >> >> > >> >> whereas I'd expect a behavior much like the one of '?'... > >> >> Is this behavior normal ? > >> >> Suppose I want to create a function to generate a random > >> >> deviate from a > >> >> distribution (normal for instance) with some parameters (mean > >> >> and sd for > >> >> instance) that will work in the same fashion as '?', ie > >> it is > >> >> possible to > >> >> generate lots of random deviates at once using code > >> such as : > >> >> distri 100 $ > >> >> x, where x would represent parameters, what is the best > >> way to go ? > >> >> > >> >> Many thanks in advance! > >> >> > >> >> Benoît. > >---------------------------------------------------------------------- > >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
