---Brian Schott wrote: > I have been studying the variations on normalrand > some more and have a few improvements and some puzzlement > about J's behavior, too. [snip] > The original normalrand does NOT produce (a,b) pairs > of variates, but all the others do produce the variates in > pairs. The others produce (a,b) pairs of random varates in > different orders, they all produce valid pairs of variates.
I've just worked out the thing that normalrand does that the others don't: normalrand 3 4 _0.122699 _1.99223 _0.704035 _0.0808088 _0.250496 0.48138 0.764205 _0.794871 1.45207 _0.696283 _0.453133 1.01379 normalrand2 3 4 _1.66701 _0.640152 0 0 0.94087 _0.588251 0 0 1.0616 _0.662911 0 0 normalrand6a 3 4 |length error: normalrand6a | normalrand6a 3 4 Some small alterations fix that: normalrand2a=: 3 : 0 n =. >. -: */y a=. %: _2* ^. rand01 n b=. +: o. rand01 n r1 =. a * 2 o. b r2 =. a * 1 o. b y$r1,r2 ) normalrand6b=: ] $ ,@((2 1 o."0 1 +:@:o.@:rand01) *"1 [: %: _2&*@:^.@:rand01)@>[EMAIL PROTECTED]:@(*/) normalrand2a 3 4 0.63111367 1.3648031 _0.68584133 _0.74547942 _0.63025564 _1.4558397 _1.8241795 0.22040767 _0.49059304 1.8463946 _0.45497306 1.3861815 normalrand6b 3 4 0.67241889 0.95258629 _1.2074204 0.058530861 0.64824598 0.93121615 0.62299124 0.33683066 _1.3331847 _0.57881303 _0.45320203 0.44516874 10 ts 'normalrand numb' 0.024500181 10488320 10 ts 'normalrand2 numb' 0.017422885 4196608 10 ts 'normalrand2a numb' 0.017089022 4196608 10 ts 'normalrand6a numb' 0.016773354 2622592 10 ts 'normalrand6b numb' 0.017133078 2622656 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
