Thanks, https://github.com/jsoftware/jsource/blob/master/jsrc/vrand.c#L625 now has AT(z)= XNUM; mvc(n*SZI, xv, SZI, MEMSET00);
(I believe nothing else bumps an allocated result's type in this fashion, so there's no point in turning this into a reused mechanism.) Thanks again, -- Raul On Thu, Jun 15, 2023 at 12:39 PM Henry Rich <[email protected]> wrote: > > No, it is not valid to change from INT to XNUM. Allocation of indirect > types clears the data area to 0 so that all atoms will be valid in case > there is an error before the block is completely filled in. When you > allocate as INT the data area is garbage. If you zero the data area you > will be OK. > > Henry Rich > > On Thu, Jun 15, 2023, 3:14 PM Raul Miller <[email protected]> wrote: > > > I've pushed a fix. The essence is > > https://github.com/jsoftware/jsource/blob/master/jsrc/vrand.c#L625 > > > > It's been a while since I've concerned myself with the details of > > array allocation, so I'd like to verify that AT(z)= XNUM is valid when > > z is a freshly allocated (and unpopulated) INT array. (The alternative > > would be to free z and allocate a fresh array for z.) > > > > Note also that J's estimate of the number of values which need to be > > rolled here is a bit high. The value of h as calculated at > > https://github.com/jsoftware/jsource/blob/master/jsrc/vrand.c#L803 is > > 20 for the example where I need to deal 5 XNUMs. This is not > > incorrect, but it is an opportunity for an efficiency gain. > > > > Thanks, > > > > -- > > Raul > > > > > > On Thu, Jun 15, 2023 at 9:21 AM Raul Miller <[email protected]> wrote: > > > > > > Good eye, I had overlooked that problem. > > > > > > That said, it's worth noting that 5 ? 1e99 runs into the same issue. > > > I'm not going to attempt a fix for that today. (But it's tempting to > > > think about implementing that in a fashion which would provide a > > > distribution which is equivalent to that which would be provided by > > > (5 ?&.x: 1e99), once I have fixed this problem.) > > > > > > Anyways, I should have a fix up within a few hours. > > > > > > Thanks, > > > > > > > > > -- > > > Raul > > > > > > On Thu, Jun 15, 2023 at 3:19 AM Henry Rich <[email protected]> wrote: > > > > > > > > That isn't sufficient, is it? The random numbers will be drawn from i. > > > > IMAX, won't they? If not, it's OK. > > > > > > > > hhr > > > > > > > > On Wed, Jun 14, 2023, 11:28 PM Raul Miller <[email protected]> > > wrote: > > > > > > > > > But that's not what i0() does: > > > > > > > > > > i0(1e99) returns IMAX > > > > > > > > > > Why should i0(x: 1e99) produce a domain error? > > > > > > > > > > Anyways, I've pushed a fix to jti0 for this issue. > > > > > > > > > > Please help me understand, if it's not acceptable. > > > > > > > > > > Thanks, > > > > > > > > > > -- > > > > > Raul > > > > > > > > > > On Wed, Jun 14, 2023 at 4:46 PM Henry Rich <[email protected]> > > wrote: > > > > > > > > > > > > The i0 gives domain error if the argument exceeds IMAX, which is > > what you > > > > > > are seeing. This looks like a bug to me. I think the algorithm > > for > > > > > deal > > > > > > would work if you just called roll with the extended arguments. > > Raul, > > > > > would > > > > > > you like to take that on? > > > > > > > > > > > > Henry Rich > > > > > > > > > > > > On Wed, Jun 14, 2023, 6:53 PM Raul Miller <[email protected]> > > wrote: > > > > > > > > > > > > > This error is coming from > > > > > > > > > > > > > > #0 jtjsignal (jt=0x7ffff7fc0200, e=3) at > > ../../../../jsrc/d.c:361 > > > > > > > #1 0x00007ffff34b131a in jtcvt () from > > > > > > > > > /mnt/c/cygwin64/home/15712/jsoftware/jsource/bin/linux/j64avx2/libj.so > > > > > > > #2 0x00007ffff350173e in jtvi (jt=0x7ffff7fc0200, w=0x4b4000) at > > > > > > > ../../../../jsrc/u.c:570 > > > > > > > #3 0x00007ffff3501562 in jti0 (jt=0x7ffff7fc0200, w=0x4b4000) at > > > > > > > ../../../../jsrc/u.c:238 > > > > > > > #4 0x00007ffff36fa6a1 in jtdeal (jt=0x7ffff7fc0200, > > a=0x7ffff3a3a680 > > > > > > > <Bnum+1088>, w=0x4b4000, > > > > > > > self=0x7ffff3a3b8c0 <primtab+2176>) at > > ../../../../jsrc/vrand.c:794 > > > > > > > > > > > > > > The issue seems to be the second i0 here > > > > > > > > > > > > > > RE(m=i0(a)); RE(c=n=i0(w)); // c starts as max#+1 > > > > > > > > > > > > > > In u.c, the comment on i0 is: > > > > > > > > > > > > > > // Extract the integer value from w, return it. Set error if > > > > > > > non-integral or non-atomic. Values whose abs > IMAX are > > converted to > > > > > > > IMAX/-IMAX > > > > > > > > > > > > > > I haven't yet figured out what's wrong with jti0 in this > > instance. > > > > > > > > > > > > > > FYI, > > > > > > > > > > > > > > -- > > > > > > > Raul > > > > > > > > > > > > > > On Wed, Jun 14, 2023 at 11:54 AM 'Veter Kamenev' via Beta > > > > > > > <[email protected]> wrote: > > > > > > > > > > > > > > > > Hi! > > > > > > > > > > > > > > > > 5 ? 2980293480239480239480239480239480239482039x > > > > > > > > > > > > > > > > |domain error, executing dyad ? > > > > > > > > |y must be a positive integer > > > > > > > > > > > > > > > > I read in NuVoc: > > > > > > > > > > > > > > > > y range of random number > > > > > > > > 0 floating-point value in interval (0,1) > > > > > > > > 1 0 (always) > > > > > > > > 2 Boolean > > > > > > > > >1 integer or extended integer from list i.y > > > > > > > > > > > > > > > > https://code.jsoftware.com/wiki/Vocabulary/query#dyadic > > > > > > > > > > > > > > > > Best wishes, > > > > > > > > Veter > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
