Yes, what I was attempting to state in my message
when I said, '(my) f2' which further down in the
message is defined as:
f2 =: 3 : 'y * ?($y)$0'
to which your original response was correctly
directed (thank you again). As usual with "timing
discussions" - many angels dancing on the pin
head here....
- joey
At 08:15 -0700 2008/07/01, Roger Hui wrote:
Timing is not everything. In this case f2 is computing
something weird and possibly misleading: All the
elements of a row are the same. e.g.
f2 3 4$9
2.06843 2.06843 2.06843 2.06843
5.20443 5.20443 5.20443 5.20443
1.00311 1.00311 1.00311 1.00311
f3 3 4$9
3.36383 8.62184 6.76132 4.76392
8.01329 7.10008 0.285073 3.84514
0.950537 6.16313 0.214141 3.56592
----- Original Message -----
From: "R.E. Boss" <[EMAIL PROTECTED]>
Date: Monday, June 30, 2008 23:56
Subject: RE: [Jprogramming] Random number generation
To: 'Programming forum' <[email protected]>
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